<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>135030</bug_id>
          
          <creation_ts>2014-07-17 15:43:08 -0700</creation_ts>
          <short_desc>Simplify WebOriginDataManager(Proxy) and rename to UIProcessOriginDataManager and ChildProcessOriginDataManager</short_desc>
          <delta_ts>2014-07-17 18:04:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>mkwst</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1023127</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-07-17 15:43:08 -0700</bug_when>
    <thetext>Simplify WebOriginDataManager(Proxy) and rename to UIProcessOriginDataManager and ChildProcessOriginDataManager

What is today called a &quot;WebOriginDataManagerProxy&quot; that exists in a WebProcess will actually exist in any ChildProcess type (Web, Networking, Database).

The WebOriginDataManager is still UIProcess-only.

So the renaming is pretty clear.

At the same time, I&apos;ll be removing cruft (like the change notification client stuff) that we don&apos;t have a need for right now.  It can always be added back later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023130</commentid>
    <comment_count>1</comment_count>
      <attachid>235097</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-07-17 15:49:06 -0700</bug_when>
    <thetext>Created attachment 235097
Patch v1 - Rename, remove some cruft, add callbacks for all 3 API methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023131</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-17 15:52:06 -0700</bug_when>
    <thetext>Attachment 235097 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/C/WKOriginDataManager.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/C/WKContext.cpp:50:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/UIProcessOriginDataManager.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/UIProcessOriginDataManager.cpp:83:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/UIProcessOriginDataManager.cpp:108:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/UIProcessOriginDataManager.cpp:132:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/Shared/ChildProcessOriginDataManager.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/UIProcessOriginDataManager.h:56:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/UIProcessOriginDataManager.h:57:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/UIProcessOriginDataManager.h:58:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 10 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023133</commentid>
    <comment_count>3</comment_count>
      <attachid>235097</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-07-17 15:55:08 -0700</bug_when>
    <thetext>Comment on attachment 235097
Patch v1 - Rename, remove some cruft, add callbacks for all 3 API methods.

Not going to do this right now.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235097</attachid>
            <date>2014-07-17 15:49:06 -0700</date>
            <delta_ts>2014-07-17 15:55:07 -0700</delta_ts>
            <desc>Patch v1 - Rename, remove some cruft, add callbacks for all 3 API methods.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>87825</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBlZDNkMzkyLi5mNDJiNmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNjYg
QEAKIDIwMTQtMDctMTcgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAg
ICAgIFNpbXBsaWZ5IFdlYk9yaWdpbkRhdGFNYW5hZ2VyKFByb3h5KSBhbmQgcmVuYW1lIHRvIFVJ
UHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyIGFuZCBDaGlsZFByb2Nlc3NPcmlnaW5EYXRhTWFuYWdl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1MDMw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBpcyBsYXJnZWx5IGEgcmVuYW1lLiAgTG90cyBvZiBncmVlbiwgYnV0IGV2ZW4gbW9yZSBy
ZWQuCisKKyAgICAgICAgVGhpbmdzIGFyZSBwcmV0dHkgc2VsZiBleHBsYW5hdG9yeSwgc28gSSB3
b27igJl0IGJlIGdvaW5nIGludG8gYW55IGRldGFpbCBoZXJlLgorCisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMubWFrZToKKworICAgICAgICAqIFNoYXJlZC9DaGlsZFByb2Nlc3NPcmlnaW5EYXRh
TWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpDaGlsZFByb2Nlc3NPcmlnaW5E
YXRhTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViS2l0OjpDaGlsZFByb2Nl
c3NPcmlnaW5EYXRhTWFuYWdlcjo6Q2hpbGRQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXIpOgorICAg
ICAgICAoV2ViS2l0OjpDaGlsZFByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlcjo6Z2V0T3JpZ2lucyk6
CisgICAgICAgIChXZWJLaXQ6OkNoaWxkUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyOjpkZWxldGVF
bnRyaWVzRm9yT3JpZ2luKToKKyAgICAgICAgKFdlYktpdDo6Q2hpbGRQcm9jZXNzT3JpZ2luRGF0
YU1hbmFnZXI6OmRlbGV0ZUFsbEVudHJpZXMpOgorICAgICAgICAqIFNoYXJlZC9DaGlsZFByb2Nl
c3NPcmlnaW5EYXRhTWFuYWdlci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmguCisgICAgICAgICogU2hhcmVk
L0NoaWxkUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2Vy
Lm1lc3NhZ2VzLmluLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgorICAgICAgICAoV0tDb250
ZXh0R2V0T3JpZ2luRGF0YU1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS09y
aWdpbkRhdGFNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRUeXBl
SUQpOgorICAgICAgICAoV0tPcmlnaW5EYXRhTWFuYWdlckdldE9yaWdpbnMpOgorICAgICAgICAo
V0tPcmlnaW5EYXRhTWFuYWdlckRlbGV0ZUVudHJpZXNGb3JPcmlnaW4pOgorICAgICAgICAoV0tP
cmlnaW5EYXRhTWFuYWdlckRlbGV0ZUFsbEVudHJpZXMpOgorICAgICAgICAoV0tPcmlnaW5EYXRh
TWFuYWdlclN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyk6IERlbGV0ZWQuCisgICAgICAgIChXS09yaWdp
bkRhdGFNYW5hZ2VyU3RvcE9ic2VydmluZ0NoYW5nZXMpOiBEZWxldGVkLgorICAgICAgICAoV0tP
cmlnaW5EYXRhTWFuYWdlclNldENoYW5nZUNsaWVudCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIuaDoKKworICAgICAgICAqIFVJUHJvY2Vz
cy9VSVByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpVSVByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAo
V2ViS2l0OjpVSVByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6VUlQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXI6OlVJUHJvY2Vzc09yaWdpbkRhdGFNYW5h
Z2VyKToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXI6On5VSVBy
b2Nlc3NPcmlnaW5EYXRhTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlVJUHJvY2Vzc09yaWdp
bkRhdGFNYW5hZ2VyOjpjb250ZXh0RGVzdHJveWVkKToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9j
ZXNzT3JpZ2luRGF0YU1hbmFnZXI6OnByb2Nlc3NEaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6
OlVJUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyOjpzaG91bGRUZXJtaW5hdGUpOgorICAgICAgICAo
V2ViS2l0OjpVSVByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlcjo6cmVmV2ViQ29udGV4dFN1cHBsZW1l
bnQpOgorICAgICAgICAoV2ViS2l0OjpVSVByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlcjo6ZGVyZWZX
ZWJDb250ZXh0U3VwcGxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OlVJUHJvY2Vzc09yaWdpbkRh
dGFNYW5hZ2VyOjpnZXRPcmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6VUlQcm9jZXNzT3JpZ2lu
RGF0YU1hbmFnZXI6OmRpZEdldE9yaWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpVSVByb2Nlc3NP
cmlnaW5EYXRhTWFuYWdlcjo6ZGVsZXRlRW50cmllc0Zvck9yaWdpbik6CisgICAgICAgIChXZWJL
aXQ6OlVJUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyOjpkZWxldGVBbGxFbnRyaWVzKToKKworICAg
ICAgICAqIFVJUHJvY2Vzcy9VSVByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlci5oOiBSZW5hbWVkIGZy
b20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvVUlQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMu
aW46IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHA6IFJlbW92ZWQuCisgICAgICAgICog
VUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaDogUmVtb3Zl
ZC4KKworICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKworICAg
ICAgICAqIFdlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5jcHA6IFJl
bW92ZWQuCisKKzIwMTQtMDctMTcgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgor
CiAgICAgICAgIENyYXNoIGluIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6On5TZXJ2aWNlc092
ZXJsYXlDb250cm9sbGVyLgogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTc2MjIxNzI+IGFuZCBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1MDIyCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9E
ZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDU5Mzg2Y2IuLjgwODMzMmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdDIvRGVy
aXZlZFNvdXJjZXMubWFrZQpAQCAtNDQsNyArNDQsNiBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktp
dDIpL1dlYlByb2Nlc3MvTWVkaWFDYWNoZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL05l
dHdvcmsgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zIFwKLSAgICAk
KFdlYktpdDIpL1dlYlByb2Nlc3MvT3JpZ2luRGF0YSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9j
ZXNzL1BsdWdpbnMgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIFwK
ICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvU2Nyb2xsaW5nIFwKQEAgLTY5LDYgKzY4LDcgQEAg
VlBBVEggPSBcCiAKIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIEF1dGhlbnRpY2F0aW9uTWFu
YWdlciBcCisgICAgQ2hpbGRQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXIgXAogICAgIEN1c3RvbVBy
b3RvY29sTWFuYWdlciBcCiAgICAgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkgXAogICAgIERh
dGFiYXNlUHJvY2VzcyBcCkBAIC05OSw2ICs5OSw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAog
ICAgIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIgXAogICAgIFN0b3JhZ2VBcmVhTWFwIFwK
ICAgICBTdG9yYWdlTWFuYWdlciBcCisgICAgVUlQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXIgXAog
ICAgIFZpZXdHZXN0dXJlQ29udHJvbGxlciBcCiAgICAgVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxl
Y3RvciBcCiAgICAgVmlld1VwZGF0ZURpc3BhdGNoZXIgXApAQCAtMTI0LDggKzEyNSw2IEBAIE1F
U1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyIFwKICAgICBXZWJN
ZWRpYUNhY2hlTWFuYWdlclByb3h5IFwKICAgICBXZWJOb3RpZmljYXRpb25NYW5hZ2VyIFwKLSAg
ICBXZWJPcmlnaW5EYXRhTWFuYWdlciBcCi0gICAgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSBc
CiAgICAgV2ViUGFnZSBcCiAgICAgV2ViUGFnZUdyb3VwUHJveHkgXAogICAgIFdlYlBhZ2VQcm94
eSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzT3JpZ2lu
RGF0YU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc09yaWdp
bkRhdGFNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOGFi
YWM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vz
c09yaWdpbkRhdGFNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNoaWxkUHJvY2Vzc09yaWdp
bkRhdGFNYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3MuaCIKKyNpbmNsdWRlICJT
ZWN1cml0eU9yaWdpbkRhdGEuaCIKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3NPcmlnaW5EYXRhTWFu
YWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiVUlQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXJNZXNz
YWdlcy5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY29uc3QgY2hhciogQ2hpbGRQcm9jZXNzT3Jp
Z2luRGF0YU1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICByZXR1cm4gIkNoaWxkUHJv
Y2Vzc09yaWdpbkRhdGFNYW5hZ2VyIjsKK30KKworQ2hpbGRQcm9jZXNzT3JpZ2luRGF0YU1hbmFn
ZXI6OkNoaWxkUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyKENoaWxkUHJvY2VzcyogY2hpbGRQcm9j
ZXNzKQorICAgIDogbV9jaGlsZFByb2Nlc3MoY2hpbGRQcm9jZXNzKQoreworICAgIG1fY2hpbGRQ
cm9jZXNzLT5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkNoaWxkUHJvY2Vzc09yaWdpbkRh
dGFNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKK30KKwordm9pZCBDaGls
ZFByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlcjo6Z2V0T3JpZ2lucyhXS09yaWdpbkRhdGFUeXBlcywg
dWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICAvLyBGSVhNRTogcG9wdWxhdGUgb3JpZ2lucwor
CisgICAgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4gaWRlbnRpZmllcnM7CisKKyAgICBtX2No
aWxkUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6VUlQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXI6OkRp
ZEdldE9yaWdpbnMoaWRlbnRpZmllcnMsIGNhbGxiYWNrSUQpLCAwKTsKK30KKwordm9pZCBDaGls
ZFByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlcjo6ZGVsZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdp
bkRhdGFUeXBlcywgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiwgdWludDY0X3QgY2FsbGJhY2tJ
RCkKK3sKKyAgICAvLyBGSVhNRTogZGVsZXRlIGVudHJpZXMgZm9yIG9yaWdpbgorCisgICAgbV9j
aGlsZFByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OlVJUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyOjpE
aWREZWxldGVFbnRyaWVzRm9yT3JpZ2luKGNhbGxiYWNrSUQpLCAwKTsKK30KKwordm9pZCBDaGls
ZFByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlcjo6ZGVsZXRlQWxsRW50cmllcyhXS09yaWdpbkRhdGFU
eXBlcywgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICAvLyBGSVhNRTogZGVsZXRlIGVudHJp
ZXMKKworICAgIG1fY2hpbGRQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpVSVByb2Nlc3NPcmlnaW5E
YXRhTWFuYWdlcjo6RGlkRGVsZXRlQWxsRW50cmllcyhjYWxsYmFja0lEKSwgMCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0No
aWxkUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hp
bGRQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5jNjBiZTdjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0NoaWxkUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyLmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ2hpbGRQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXJf
aAorI2RlZmluZSBDaGlsZFByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlcl9oCisKKyNpbmNsdWRlICJD
aGlsZFByb2Nlc3NTdXBwbGVtZW50LmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisj
aW5jbHVkZSAiV0tPcmlnaW5EYXRhTWFuYWdlci5oIgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgQ2hpbGRQcm9jZXNzOworc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKKwor
Y2xhc3MgQ2hpbGRQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXIgOiBwdWJsaWMgQ2hpbGRQcm9jZXNz
U3VwcGxlbWVudCwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShDaGlsZFByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlcik7CitwdWJsaWM6CisgICAg
Q2hpbGRQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXIoQ2hpbGRQcm9jZXNzKik7CisKKyAgICBzdGF0
aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIGdl
dE9yaWdpbnMoV0tPcmlnaW5EYXRhVHlwZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIHZv
aWQgZGVsZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdpbkRhdGFUeXBlcywgY29uc3QgU2VjdXJp
dHlPcmlnaW5EYXRhJiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCBkZWxldGVBbGxF
bnRyaWVzKFdLT3JpZ2luRGF0YVR5cGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKworICAgIC8v
IElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKKworICAg
IENoaWxkUHJvY2VzcyogbV9jaGlsZFByb2Nlc3M7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIENoaWxkUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlci5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NPcmlnaW5EYXRh
TWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5h
OGVhMTI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJv
Y2Vzc09yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjcgQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwK
KyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gQ2hp
bGRQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXIgeworICAgIHZvaWQgR2V0T3JpZ2lucyh1aW50MzJf
dCB0eXBlcywgdWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICB2b2lkIERlbGV0ZUVudHJpZXNGb3JP
cmlnaW4odWludDMyX3QgdHlwZXMsIFdlYktpdDo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbklk
ZW50aWZpZXIsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgdm9pZCBEZWxldGVBbGxFbnRyaWVz
KHVpbnQzMl90IHR5cGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQorfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmluZGV4IDgwMjIxYTkuLjJkM2RhZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTkwLDcgKzkwLDcg
QEAgY2xhc3MgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI7CiBjbGFzcyBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzOwogY2xhc3MgV2ViT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eTsKLWNsYXNzIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHk7CitjbGFzcyBVSVByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlcjsKIGNsYXNzIFdlYlBhZ2VHcm91
cDsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIGNsYXNzIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcjsK
QEAgLTEzNiw3ICsxMzYsNyBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tOb3RpZmljYXRpb25Qcm92
aWRlclJlZiwgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIpCiBXS19BRERfQVBJX01BUFBJTkcoV0tO
b3RpZmljYXRpb25SZWYsIFdlYk5vdGlmaWNhdGlvbikKIFdLX0FERF9BUElfTUFQUElORyhXS09w
ZW5QYW5lbFBhcmFtZXRlcnNSZWYsIFdlYk9wZW5QYW5lbFBhcmFtZXRlcnMpCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclJlZiwgV2ViT3BlblBhbmVsUmVzdWx0
TGlzdGVuZXJQcm94eSkKLVdLX0FERF9BUElfTUFQUElORyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVm
LCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5KQorV0tfQUREX0FQSV9NQVBQSU5HKFdLT3JpZ2lu
RGF0YU1hbmFnZXJSZWYsIFVJUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyKQogV0tfQUREX0FQSV9N
QVBQSU5HKFdLUGFnZUdyb3VwUmVmLCBXZWJQYWdlR3JvdXApCiBXS19BRERfQVBJX01BUFBJTkco
V0tQYWdlUmVmLCBXZWJQYWdlUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tQbHVnaW5TaXRl
RGF0YU1hbmFnZXJSZWYsIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKaW5kZXggOWViZWI1My4uYzhmMzZmZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKQEAgLTQ3
LDcgKzQ3LDcgQEAKICNpbmNsdWRlICJXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmgiCiAjaW5j
bHVkZSAiV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eS5oIgotI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHku
aCIKKyNpbmNsdWRlICJVSVByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlci5oIgogI2luY2x1ZGUgIldl
YlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaCIKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQog
I2luY2x1ZGUgIldlYkRhdGFiYXNlTWFuYWdlclByb3h5LmgiCkBAIC00NTcsNyArNDU3LDcgQEAg
V0tSZXNvdXJjZUNhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRSZXNvdXJjZUNhY2hlTWFuYWdl
cihXS0NvbnRleHRSZWYgY29udGV4dFIKIAogV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBXS0NvbnRl
eHRHZXRPcmlnaW5EYXRhTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKIHsKLSAgICBy
ZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5zdXBwbGVtZW50PFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHk+KCkpOworICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29udGV4dFJlZiktPnN1
cHBsZW1lbnQ8VUlQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXI+KCkpOwogfQogCiB2b2lkIFdLQ29u
dGV4dFN0YXJ0TWVtb3J5U2FtcGxlcihXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tEb3VibGVS
ZWYgaW50ZXJ2YWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tPcmlnaW5EYXRhTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tPcmlnaW5EYXRhTWFuYWdlci5jcHAKaW5kZXggY2U5ZDNiMi4uY2U3MzA3MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2Vy
LmNwcApAQCAtMjcsNDEgKzI3LDMwIEBACiAjaW5jbHVkZSAiV0tPcmlnaW5EYXRhTWFuYWdlci5o
IgogCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaW5jbHVkZSAiV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eS5oIgorI2luY2x1ZGUgIlVJUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyLmgiCiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIFdLVHlwZUlEIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRU
eXBlSUQoKQogewotICAgIHJldHVybiB0b0FQSShXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpB
UElUeXBlKTsKKyAgICByZXR1cm4gdG9BUEkoVUlQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXI6OkFQ
SVR5cGUpOwogfQogCi12b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRPcmlnaW5zKFdLT3JpZ2lu
RGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdLT3JpZ2luRGF0YVR5cGVzIHR5
cGVzLCB2b2lkKiBjb250ZXh0LCBXS09yaWdpbkRhdGFNYW5hZ2VyR2V0T3JpZ2luc0Z1bmN0aW9u
IGNhbGxiYWNrKQordm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyR2V0T3JpZ2lucyhXS09yaWdpbkRh
dGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyUmVmLCBXS09yaWdpbkRhdGFUeXBlcyB0eXBl
cywgdm9pZCogY29udGV4dCwgV0tPcmlnaW5EYXRhTWFuYWdlckdldE9yaWdpbnNDYWxsYmFja0Z1
bmN0aW9uIGNhbGxiYWNrKQogewogICAgIHRvSW1wbChvcmlnaW5EYXRhTWFuYWdlclJlZiktPmdl
dE9yaWdpbnModHlwZXMsIHRvR2VuZXJpY0NhbGxiYWNrRnVuY3Rpb24oY29udGV4dCwgY2FsbGJh
Y2spKTsKIH0KIAotdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyRGVsZXRlRW50cmllc0Zvck9yaWdp
bihXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyUmVmLCBXS09yaWdpbkRh
dGFUeXBlcyB0eXBlcywgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW5SZWYpCit2b2lkIFdLT3Jp
Z2luRGF0YU1hbmFnZXJEZWxldGVFbnRyaWVzRm9yT3JpZ2luKFdLT3JpZ2luRGF0YU1hbmFnZXJS
ZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzLCBXS1NlY3Vy
aXR5T3JpZ2luUmVmIG9yaWdpblJlZiwgdm9pZCogY29udGV4dCwgV0tPcmlnaW5EYXRhTWFuYWdl
ckRlbGV0ZUVudHJpZXNDYWxsYmFja0Z1bmN0aW9uIGNhbGxiYWNrKQogewotICAgIHRvSW1wbChv
cmlnaW5EYXRhTWFuYWdlclJlZiktPmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4odHlwZXMsIHRvSW1w
bChvcmlnaW5SZWYpKTsKKyAgICB0b0ltcGwob3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5kZWxldGVF
bnRyaWVzRm9yT3JpZ2luKHR5cGVzLCB0b0ltcGwob3JpZ2luUmVmKSwgW2NvbnRleHQsIGNhbGxi
YWNrXShDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7CisgICAgICAgIGNhbGxiYWNrKGVycm9y
ICE9IENhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUgPyB0b0FQSShBUEk6OkVycm9yOjpjcmVhdGUo
KS5nZXQoKSkgOiAwLCBjb250ZXh0KTsKKyAgICB9KTsKIH0KIAotdm9pZCBXS09yaWdpbkRhdGFN
YW5hZ2VyRGVsZXRlQWxsRW50cmllcyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFN
YW5hZ2VyUmVmLCBXS09yaWdpbkRhdGFUeXBlcyB0eXBlcykKK3ZvaWQgV0tPcmlnaW5EYXRhTWFu
YWdlckRlbGV0ZUFsbEVudHJpZXMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFu
YWdlclJlZiwgV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMsIHZvaWQqIGNvbnRleHQsIFdLT3JpZ2lu
RGF0YU1hbmFnZXJEZWxldGVFbnRyaWVzQ2FsbGJhY2tGdW5jdGlvbiBjYWxsYmFjaykKIHsKLSAg
ICB0b0ltcGwob3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5kZWxldGVBbGxFbnRyaWVzKHR5cGVzKTsK
LX0KLQotdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyU3RhcnRPYnNlcnZpbmdDaGFuZ2VzKFdLT3Jp
Z2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdLT3JpZ2luRGF0YVR5cGVz
IHR5cGVzKQotewotICAgIHRvSW1wbChvcmlnaW5EYXRhTWFuYWdlclJlZiktPnN0YXJ0T2JzZXJ2
aW5nQ2hhbmdlcyh0eXBlcyk7Ci19Ci0KLXZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlclN0b3BPYnNl
cnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYs
IFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzKQotewotICAgIHRvSW1wbChvcmlnaW5EYXRhTWFuYWdl
clJlZiktPnN0b3BPYnNlcnZpbmdDaGFuZ2VzKHR5cGVzKTsKLX0KLQotdm9pZCBXS09yaWdpbkRh
dGFNYW5hZ2VyU2V0Q2hhbmdlQ2xpZW50KFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0
YU1hbmFnZXJSZWYsIGNvbnN0IFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGllbnRCYXNlICpj
bGllbnQpCi17Ci0gICAgdG9JbXBsKG9yaWdpbkRhdGFNYW5hZ2VyUmVmKS0+c2V0Q2hhbmdlQ2xp
ZW50KGNsaWVudCk7CisgICAgdG9JbXBsKG9yaWdpbkRhdGFNYW5hZ2VyUmVmKS0+ZGVsZXRlQWxs
RW50cmllcyh0eXBlcywgW2NvbnRleHQsIGNhbGxiYWNrXShDYWxsYmFja0Jhc2U6OkVycm9yIGVy
cm9yKSB7CisgICAgICAgIGNhbGxiYWNrKGVycm9yICE9IENhbGxiYWNrQmFzZTo6RXJyb3I6Ok5v
bmUgPyB0b0FQSShBUEk6OkVycm9yOjpjcmVhdGUoKS5nZXQoKSkgOiAwLCBjb250ZXh0KTsKKyAg
ICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09y
aWdpbkRhdGFNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmln
aW5EYXRhTWFuYWdlci5oCmluZGV4IDgyN2JkNTUuLjdmYzI5NjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIuaApAQCAtMzUs
NTEgKzM1LDI2IEBAIGV4dGVybiAiQyIgewogZW51bSB7CiAgICAga1dLQXBwbGljYXRpb25DYWNo
ZU9yaWdpbkRhdGEgPSAxIDw8IDAsCiAgICAga1dLQ29va2llT3JpZ2luRGF0YSA9IDEgPDwgMSwK
LSAgICBrV0tEYXRhYmFzZU9yaWdpbkRhdGEgPSAxIDw8IDIsCisgICAga1dLSW5kZXhlZERhdGFi
YXNlT3JpZ2luRGF0YSA9IDEgPDwgMiwKICAgICBrV0tLZXlWYWx1ZVN0b3JhZ2VPcmlnaW5EYXRh
ID0gMSA8PCAzLAogICAgIGtXS01lZGlhQ2FjaGVPcmlnaW5EYXRhID0gMSA8PCA0LAogICAgIGtX
S1BsdWdpbkRhdGFPcmlnaW5EYXRhID0gMSA8PCA1LAogICAgIGtXS1Jlc291cmNlQ2FjaGVPcmln
aW5EYXRhID0gMSA8PCA2LAorICAgIGtXS1dlYlNRTERhdGFiYXNlT3JpZ2luRGF0YSA9IDEgPDwg
NywKIAotICAgIGtXS0FsbE9yaWdpbkRhdGEgPSAoMSA8PCA3KSAtIDEKKyAgICBrV0tBbGxPcmln
aW5EYXRhID0gMHhGRkZGRkZGRiwKIH07CiB0eXBlZGVmIHVpbnQzMl90IFdLT3JpZ2luRGF0YVR5
cGVzOwogCiBXS19FWFBPUlQgV0tUeXBlSUQgV0tPcmlnaW5EYXRhTWFuYWdlckdldFR5cGVJRCgp
OwogCi10eXBlZGVmIHZvaWQgKCpXS09yaWdpbkRhdGFNYW5hZ2VyR2V0T3JpZ2luc0Z1bmN0aW9u
KShXS0FycmF5UmVmLCBXS0Vycm9yUmVmLCB2b2lkKik7Ci1XS19FWFBPUlQgdm9pZCBXS09yaWdp
bkRhdGFNYW5hZ2VyR2V0T3JpZ2lucyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFN
YW5hZ2VyLCBXS09yaWdpbkRhdGFUeXBlcyB0eXBlcywgdm9pZCogY29udGV4dCwgV0tPcmlnaW5E
YXRhTWFuYWdlckdldE9yaWdpbnNGdW5jdGlvbiBmdW5jdGlvbik7Cit0eXBlZGVmIHZvaWQgKCpX
S09yaWdpbkRhdGFNYW5hZ2VyR2V0T3JpZ2luc0NhbGxiYWNrRnVuY3Rpb24pKFdLQXJyYXlSZWYs
IFdLRXJyb3JSZWYsIHZvaWQqKTsKK1dLX0VYUE9SVCB2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJH
ZXRPcmlnaW5zKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXIsIFdLT3Jp
Z2luRGF0YVR5cGVzIHR5cGVzLCB2b2lkKiBjb250ZXh0LCBXS09yaWdpbkRhdGFNYW5hZ2VyR2V0
T3JpZ2luc0NhbGxiYWNrRnVuY3Rpb24gZnVuY3Rpb24pOwogCi1XS19FWFBPUlQgdm9pZCBXS09y
aWdpbkRhdGFNYW5hZ2VyRGVsZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdpbkRhdGFNYW5hZ2Vy
UmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBXS09yaWdpbkRhdGFUeXBlcyB0eXBlcywgV0tTZWN1cml0
eU9yaWdpblJlZiBvcmlnaW4pOwotV0tfRVhQT1JUIHZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlckRl
bGV0ZUFsbEVudHJpZXMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlciwg
V0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMpOwordHlwZWRlZiB2b2lkICgqV0tPcmlnaW5EYXRhTWFu
YWdlckRlbGV0ZUVudHJpZXNDYWxsYmFja0Z1bmN0aW9uKShXS0Vycm9yUmVmLCB2b2lkKik7CitX
S19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyRGVsZXRlRW50cmllc0Zvck9yaWdpbihX
S09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBXS09yaWdpbkRhdGFUeXBl
cyB0eXBlcywgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIHZvaWQqIGNvbnRleHQsIFdLT3Jp
Z2luRGF0YU1hbmFnZXJEZWxldGVFbnRyaWVzQ2FsbGJhY2tGdW5jdGlvbiBmdW5jdGlvbik7CitX
S19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyRGVsZXRlQWxsRW50cmllcyhXS09yaWdp
bkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBXS09yaWdpbkRhdGFUeXBlcyB0eXBl
cywgdm9pZCogY29udGV4dCwgV0tPcmlnaW5EYXRhTWFuYWdlckRlbGV0ZUVudHJpZXNDYWxsYmFj
a0Z1bmN0aW9uIGZ1bmN0aW9uKTsKIAotLy8gT3JpZ2luRGF0YU1hbmFnZXIgQ2xpZW50Ci10eXBl
ZGVmIHZvaWQgKCpXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2FsbGJhY2spKFdLT3JpZ2luRGF0
YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXIsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwot
Ci10eXBlZGVmIHN0cnVjdCBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50QmFzZSB7Ci0g
ICAgY29uc3Qgdm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjbGllbnRJbmZvOwotICAgIGludCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKLX0gV0tP
cmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudEJhc2U7Ci0KLXR5cGVkZWYgc3RydWN0IFdLT3Jp
Z2luRGF0YU1hbmFnZXJDaGFuZ2VDbGllbnRWMCB7Ci0gICAgV0tPcmlnaW5EYXRhTWFuYWdlckNo
YW5nZUNsaWVudEJhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOwotCi0g
ICAgLy8gVmVyc2lvbiAwLgotICAgIFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2hhbmdlOwotfSBXS09yaWdpbkRh
dGFNYW5hZ2VyQ2hhbmdlQ2xpZW50VjA7Ci0KLWVudW0geyBrV0tPcmlnaW5EYXRhTWFuYWdlckNo
YW5nZUNsaWVudFZlcnNpb24gPSAwIH07Ci10eXBlZGVmIHN0cnVjdCBXS09yaWdpbkRhdGFNYW5h
Z2VyQ2hhbmdlQ2xpZW50IHsKLSAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247Ci0gICAgY29uc3Qgdm9p
ZCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjbGllbnRJbmZvOwotCi0gICAgLy8gVmVyc2lvbiAwLgotICAgIFdLT3JpZ2luRGF0YU1hbmFn
ZXJDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2hh
bmdlOwotfSBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50IFdLX0RFUFJFQ0FURUQoIlVz
ZSBhbiBleHBsaWNpdCB2ZXJzaW9uZWQgc3RydWN0IGluc3RlYWQiKTsKLQotV0tfRVhQT1JUIHZv
aWQgV0tPcmlnaW5EYXRhTWFuYWdlclN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFN
YW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBXS09yaWdpbkRhdGFUeXBlcyB0eXBlcyk7Ci1X
S19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyU3RvcE9ic2VydmluZ0NoYW5nZXMoV0tP
cmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlciwgV0tPcmlnaW5EYXRhVHlwZXMg
dHlwZXMpOwotV0tfRVhQT1JUIHZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlclNldENoYW5nZUNsaWVu
dChXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5nZXIsIGNvbnN0IFdLT3JpZ2lu
RGF0YU1hbmFnZXJDaGFuZ2VDbGllbnRCYXNlKiBjbGllbnQpOwogI2lmZGVmIF9fY3BsdXNwbHVz
CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9VSVByb2Nl
c3NPcmlnaW5EYXRhTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVUlQcm9j
ZXNzT3JpZ2luRGF0YU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjdiOWM2MDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
VUlQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTUxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVJUHJvY2Vzc09yaWdp
bkRhdGFNYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKKyNpbmNs
dWRlICJXZWJDb250ZXh0LmgiCisjaW5jbHVkZSAiQ2hpbGRQcm9jZXNzT3JpZ2luRGF0YU1hbmFn
ZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlVJUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyTWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJXZWJTZWN1cml0eU9yaWdpbi5oIgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY29uc3QgY2hhciogVUlQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXI6OnN1cHBsZW1lbnRO
YW1lKCkKK3sKKyAgICByZXR1cm4gIlVJUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyIjsKK30KKwor
UGFzc1JlZlB0cjxVSVByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlcj4gVUlQcm9jZXNzT3JpZ2luRGF0
YU1hbmFnZXI6OmNyZWF0ZShXZWJDb250ZXh0KiBjb250ZXh0KQoreworICAgIHJldHVybiBhZG9w
dFJlZihuZXcgVUlQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXIoY29udGV4dCkpOworfQorCitVSVBy
b2Nlc3NPcmlnaW5EYXRhTWFuYWdlcjo6VUlQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXIoV2ViQ29u
dGV4dCogY29udGV4dCkKKyAgICA6IFdlYkNvbnRleHRTdXBwbGVtZW50KGNvbnRleHQpCit7Cisg
ICAgY29udGV4dC0+YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVSVByb2Nlc3NPcmlnaW5E
YXRhTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7Cit9CisKK1VJUHJvY2Vz
c09yaWdpbkRhdGFNYW5hZ2VyOjp+VUlQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXIoKQoreworfQor
Cit2b2lkIFVJUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyOjpjb250ZXh0RGVzdHJveWVkKCkKK3sK
KyAgICBpbnZhbGlkYXRlQ2FsbGJhY2tNYXAobV9hcnJheUNhbGxiYWNrcywgQ2FsbGJhY2tCYXNl
OjpFcnJvcjo6T3duZXJXYXNJbnZhbGlkYXRlZCk7CisgICAgaW52YWxpZGF0ZUNhbGxiYWNrTWFw
KG1fdm9pZENhbGxiYWNrcywgQ2FsbGJhY2tCYXNlOjpFcnJvcjo6T3duZXJXYXNJbnZhbGlkYXRl
ZCk7Cit9CisKK3ZvaWQgVUlQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXI6OnByb2Nlc3NEaWRDbG9z
ZShXZWJQcm9jZXNzUHJveHkqKQoreworICAgIC8vIEZJWE1FOiBJbnZhbGlkZSBhbnkgY2FsbGJh
Y2tzIHJlbGF0ZWQgdG8gdGhpcyBzcGVjaWZpYyBXZWJQcm9jZXNzLgorfQorCitib29sIFVJUHJv
Y2Vzc09yaWdpbkRhdGFNYW5hZ2VyOjpzaG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5Kikg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9hcnJheUNhbGxiYWNrcy5pc0VtcHR5KCkgJiYgbV92b2lk
Q2FsbGJhY2tzLmlzRW1wdHkoKTsKK30KKwordm9pZCBVSVByb2Nlc3NPcmlnaW5EYXRhTWFuYWdl
cjo6cmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKQoreworICAgIEFQSTo6T2JqZWN0OjpyZWYoKTsK
K30KKwordm9pZCBVSVByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlcjo6ZGVyZWZXZWJDb250ZXh0U3Vw
cGxlbWVudCgpCit7CisgICAgQVBJOjpPYmplY3Q6OmRlcmVmKCk7Cit9CisKK3ZvaWQgVUlQcm9j
ZXNzT3JpZ2luRGF0YU1hbmFnZXI6OmdldE9yaWdpbnMoV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMs
IHN0ZDo6ZnVuY3Rpb248dm9pZCAoQVBJOjpBcnJheSosIENhbGxiYWNrQmFzZTo6RXJyb3IpPiBj
YWxsYmFja0Z1bmN0aW9uKQoreworICAgIC8vIEZJWE1FOiBUaGlzIGlzbid0IHRoZSByaWdodCB0
aGluZyB0byBkby4KKyAgICAvLyBJZiBXZWJQcm9jZXNzZXMgZG9uJ3QgbmVlZCB0byBoZWFyIHRo
aXMgbWVzc2FnZSAoYmFzZWQgb24gdGhlIGRhdGEgdHlwZXMpLCB0aGVuIHdlIHNob3VsZG4ndCB0
ZWxsIHRoZW0uCisgICAgLy8gSWYgV2ViUHJvY2Vzc2VzIGRvIG5lZWQgdG8gaGVhciB0aGlzIG1l
c3NhZ2UsIHRoZW4gd2UgbmVlZCBhbiBpbmRpdmlkdWFsIGNhbGxiYWNrIGZvciBlYWNoIFdlYlBy
b2Nlc3MgdG8gYWNjdW11bGF0ZSB0aGVpciByZXNwb25zZXMuCisKKyAgICBSZWZQdHI8QXJyYXlD
YWxsYmFjaz4gY2FsbGJhY2sgPSBBcnJheUNhbGxiYWNrOjpjcmVhdGUoV1RGOjptb3ZlKGNhbGxi
YWNrRnVuY3Rpb24pKTsKKworICAgIGlmICghY29udGV4dCgpKSB7CisgICAgICAgIGNhbGxiYWNr
LT5pbnZhbGlkYXRlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB1aW50NjRfdCBj
YWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKKyAgICBtX2FycmF5Q2FsbGJhY2tz
LnNldChjYWxsYmFja0lELCBjYWxsYmFjay5yZWxlYXNlKCkpOworCisgICAgY29udGV4dCgpLT5z
ZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2FyeShNZXNzYWdlczo6Q2hp
bGRQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXI6OkdldE9yaWdpbnModHlwZXMsIGNhbGxiYWNrSUQp
KTsKK30KKwordm9pZCBVSVByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlcjo6ZGlkR2V0T3JpZ2lucyhj
b25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2luRGF0YXMsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpCit7CisgICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0gbV9hcnJh
eUNhbGxiYWNrcy50YWtlKGNhbGxiYWNrSUQpOworICAgIHBlcmZvcm1BUElDYWxsYmFja1dpdGhT
ZWN1cml0eU9yaWdpbkRhdGFWZWN0b3Iob3JpZ2luRGF0YXMsIGNhbGxiYWNrLmdldCgpKTsKK30K
Kwordm9pZCBVSVByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlcjo6ZGVsZXRlRW50cmllc0Zvck9yaWdp
bihXS09yaWdpbkRhdGFUeXBlcyB0eXBlcywgV2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgc3Rk
OjpmdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4gY2FsbGJhY2tGdW5jdGlvbikK
K3sKKyAgICAvLyBGSVhNRTogVGhpcyBpc24ndCB0aGUgcmlnaHQgdGhpbmcgdG8gZG8uCisgICAg
Ly8gSWYgV2ViUHJvY2Vzc2VzIGRvbid0IG5lZWQgdG8gaGVhciB0aGlzIG1lc3NhZ2UgKGJhc2Vk
IG9uIHRoZSBkYXRhIHR5cGVzKSwgdGhlbiB3ZSBzaG91bGRuJ3QgdGVsbCB0aGVtLgorICAgIC8v
IElmIFdlYlByb2Nlc3NlcyBkbyBuZWVkIHRvIGhlYXIgdGhpcyBtZXNzYWdlLCB0aGVuIHdlIG5l
ZWQgYW4gaW5kaXZpZHVhbCBjYWxsYmFjayBmb3IgZWFjaCBXZWJQcm9jZXNzIHRvIGFjY3VtdWxh
dGUgdGhlaXIgcmVzcG9uc2VzLgorCisgICAgUmVmUHRyPFZvaWRDYWxsYmFjaz4gY2FsbGJhY2sg
PSBWb2lkQ2FsbGJhY2s6OmNyZWF0ZShXVEY6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOworCisg
ICAgaWYgKCFjb250ZXh0KCkpIHsKKyAgICAgICAgY2FsbGJhY2stPmludmFsaWRhdGUoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFj
ay0+Y2FsbGJhY2tJRCgpOworICAgIG1fdm9pZENhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgY2Fs
bGJhY2sucmVsZWFzZSgpKTsKKworICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBzZWN1cml0eU9yaWdp
bkRhdGE7CisgICAgc2VjdXJpdHlPcmlnaW5EYXRhLnByb3RvY29sID0gb3JpZ2luLT5zZWN1cml0
eU9yaWdpbigpLnByb3RvY29sKCk7CisgICAgc2VjdXJpdHlPcmlnaW5EYXRhLmhvc3QgPSBvcmln
aW4tPnNlY3VyaXR5T3JpZ2luKCkuaG9zdCgpOworICAgIHNlY3VyaXR5T3JpZ2luRGF0YS5wb3J0
ID0gb3JpZ2luLT5zZWN1cml0eU9yaWdpbigpLnBvcnQoKTsKKworICAgIGNvbnRleHQoKS0+c2Vu
ZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6OkNoaWxk
UHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyOjpEZWxldGVFbnRyaWVzRm9yT3JpZ2luKHR5cGVzLCBz
ZWN1cml0eU9yaWdpbkRhdGEsIGNhbGxiYWNrSUQpKTsKK30KKwordm9pZCBVSVByb2Nlc3NPcmln
aW5EYXRhTWFuYWdlcjo6ZGVsZXRlQWxsRW50cmllcyhXS09yaWdpbkRhdGFUeXBlcyB0eXBlcywg
c3RkOjpmdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4gY2FsbGJhY2tGdW5jdGlv
bikKK3sKKyAgICAvLyBGSVhNRTogVGhpcyBpc24ndCB0aGUgcmlnaHQgdGhpbmcgdG8gZG8uCisg
ICAgLy8gSWYgV2ViUHJvY2Vzc2VzIGRvbid0IG5lZWQgdG8gaGVhciB0aGlzIG1lc3NhZ2UgKGJh
c2VkIG9uIHRoZSBkYXRhIHR5cGVzKSwgdGhlbiB3ZSBzaG91bGRuJ3QgdGVsbCB0aGVtLgorICAg
IC8vIElmIFdlYlByb2Nlc3NlcyBkbyBuZWVkIHRvIGhlYXIgdGhpcyBtZXNzYWdlLCB0aGVuIHdl
IG5lZWQgYW4gaW5kaXZpZHVhbCBjYWxsYmFjayBmb3IgZWFjaCBXZWJQcm9jZXNzIHRvIGFjY3Vt
dWxhdGUgdGhlaXIgcmVzcG9uc2VzLgorCisgICAgUmVmUHRyPFZvaWRDYWxsYmFjaz4gY2FsbGJh
Y2sgPSBWb2lkQ2FsbGJhY2s6OmNyZWF0ZShXVEY6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwor
CisgICAgaWYgKCFjb250ZXh0KCkpIHsKKyAgICAgICAgY2FsbGJhY2stPmludmFsaWRhdGUoKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxs
YmFjay0+Y2FsbGJhY2tJRCgpOworICAgIG1fdm9pZENhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwg
Y2FsbGJhY2sucmVsZWFzZSgpKTsKKworICAgIGNvbnRleHQoKS0+c2VuZFRvQWxsUHJvY2Vzc2Vz
UmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6OkNoaWxkUHJvY2Vzc09yaWdpbkRh
dGFNYW5hZ2VyOjpEZWxldGVBbGxFbnRyaWVzKHR5cGVzLCBjYWxsYmFja0lEKSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1VJUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
VUlQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi45YzljYTA3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1VJUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyLmgKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgVUlQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXJfaAorI2RlZmlu
ZSBVSVByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlcl9oCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIK
KyNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIu
aCIKKyNpbmNsdWRlICJXS09yaWdpbkRhdGFNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViQ29udGV4
dFN1cHBsZW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBJUEMgewor
Y2xhc3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlNl
Y3VyaXR5T3JpZ2luOworc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKKwordHlwZWRlZiBHZW5l
cmljQ2FsbGJhY2s8QVBJOjpBcnJheSo+IEFycmF5Q2FsbGJhY2s7CisKK2NsYXNzIFVJUHJvY2Vz
c09yaWdpbkRhdGFNYW5hZ2VyIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6
VHlwZTo6T3JpZ2luRGF0YU1hbmFnZXI+LCBwdWJsaWMgV2ViQ29udGV4dFN1cHBsZW1lbnQsIHBy
aXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBj
aGFyKiBzdXBwbGVtZW50TmFtZSgpOworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8VUlQcm9jZXNz
T3JpZ2luRGF0YU1hbmFnZXI+IGNyZWF0ZShXZWJDb250ZXh0Kik7CisgICAgdmlydHVhbCB+VUlQ
cm9jZXNzT3JpZ2luRGF0YU1hbmFnZXIoKTsKKworICAgIHZvaWQgZ2V0T3JpZ2lucyhXS09yaWdp
bkRhdGFUeXBlcywgc3RkOjpmdW5jdGlvbjx2b2lkIChBUEk6OkFycmF5KiwgQ2FsbGJhY2tCYXNl
OjpFcnJvcik+KTsKKyAgICB2b2lkIGRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV0tPcmlnaW5EYXRh
VHlwZXMsIFdlYlNlY3VyaXR5T3JpZ2luKiwgc3RkOjpmdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jh
c2U6OkVycm9yKT4pOworICAgIHZvaWQgZGVsZXRlQWxsRW50cmllcyhXS09yaWdpbkRhdGFUeXBl
cywgc3RkOjpmdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4pOworCisgICAgdXNp
bmcgQVBJOjpPYmplY3Q6OnJlZjsKKyAgICB1c2luZyBBUEk6Ok9iamVjdDo6ZGVyZWY7CisKK3By
aXZhdGU6CisgICAgZXhwbGljaXQgVUlQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXIoV2ViQ29udGV4
dCopOworCisgICAgdm9pZCBkaWRHZXRPcmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdp
bkRhdGE+JiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCBkaWREZWxldGVFbnRyaWVz
Rm9yT3JpZ2luKHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIHZvaWQgZGlkRGVsZXRlQWxsRW50
cmllcyh1aW50NjRfdCBjYWxsYmFja0lEKTsKKworICAgIC8vIFdlYkNvbnRleHRTdXBwbGVtZW50
CisgICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKFdlYlByb2Nlc3NQcm94eSopIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KikgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKSBvdmVycmlk
ZTsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVy
cmlkZTsKKworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxBcnJheUNhbGxiYWNrPj4gbV9h
cnJheUNhbGxiYWNrczsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8Vm9pZENhbGxiYWNr
Pj4gbV92b2lkQ2FsbGJhY2tzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBVSVByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvVUlQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVUlQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXIubWVzc2Fn
ZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzRkYTVhOQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9VSVByb2Nlc3NPcmlnaW5EYXRh
TWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI3IEBACisjIENvcHlyaWdodCAoQykgMjAx
MSwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisj
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+IFVJUHJvY2Vzc09yaWdpbkRh
dGFNYW5hZ2VyIHsKKyAgICBEaWRHZXRPcmlnaW5zKFZlY3RvcjxXZWJLaXQ6OlNlY3VyaXR5T3Jp
Z2luRGF0YT4gb3JpZ2luSWRlbnRpZmllcnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIERp
ZERlbGV0ZUVudHJpZXNGb3JPcmlnaW4odWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgRGlkRGVs
ZXRlQWxsRW50cmllcyh1aW50NjRfdCBjYWxsYmFja0lEKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmQyYzUzMi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSwxNTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmgiCi0KLSNpbmNsdWRlICJT
ZWN1cml0eU9yaWdpbkRhdGEuaCIKLSNpbmNsdWRlICJXZWJDb250ZXh0LmgiCi0jaW5jbHVkZSAi
V2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYlNlY3VyaXR5T3JpZ2luLmgiCi0K
LW5hbWVzcGFjZSBXZWJLaXQgewotCi1jb25zdCBjaGFyKiBXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5OjpzdXBwbGVtZW50TmFtZSgpCi17Ci0gICAgcmV0dXJuICJXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5IjsKLX0KLQotUGFzc1JlZlB0cjxXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5PiBXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5OjpjcmVhdGUoV2ViQ29udGV4dCogY29udGV4dCkKLXsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkoY29udGV4dCkp
OwotfQotCi1XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5KFdlYkNvbnRleHQqIGNvbnRleHQpCi0gICAgOiBXZWJDb250ZXh0U3VwcGxlbWVudChjb250
ZXh0KQotewotICAgIGNvbnRleHQtPmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7Ci19Ci0K
LVdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6On5XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5KCkK
LXsKLX0KLQotCi12b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmNvbnRleHREZXN0cm95
ZWQoKQotewotICAgIGludmFsaWRhdGVDYWxsYmFja01hcChtX2FycmF5Q2FsbGJhY2tzLCBDYWxs
YmFja0Jhc2U6OkVycm9yOjpPd25lcldhc0ludmFsaWRhdGVkKTsKLX0KLQotdm9pZCBXZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5Ojpwcm9jZXNzRGlkQ2xvc2UoV2ViUHJvY2Vzc1Byb3h5KikKLXsK
LSAgICBpbnZhbGlkYXRlQ2FsbGJhY2tNYXAobV9hcnJheUNhbGxiYWNrcywgQ2FsbGJhY2tCYXNl
OjpFcnJvcjo6UHJvY2Vzc0V4aXRlZCk7Ci19Ci0KLWJvb2wgV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eTo6c2hvdWxkVGVybWluYXRlKFdlYlByb2Nlc3NQcm94eSopIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIG1fYXJyYXlDYWxsYmFja3MuaXNFbXB0eSgpOwotfQotCi12b2lkIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHk6OnJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkKLXsKLSAgICBBUEk6Ok9iamVj
dDo6cmVmKCk7Ci19Ci0KLXZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGVyZWZXZWJD
b250ZXh0U3VwcGxlbWVudCgpCi17Ci0gICAgQVBJOjpPYmplY3Q6OmRlcmVmKCk7Ci19Ci0KLXZv
aWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6Z2V0T3JpZ2lucyhXS09yaWdpbkRhdGFUeXBl
cyB0eXBlcywgc3RkOjpmdW5jdGlvbjx2b2lkIChBUEk6OkFycmF5KiwgQ2FsbGJhY2tCYXNlOjpF
cnJvcik+IGNhbGxiYWNrRnVuY3Rpb24pCi17Ci0gICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNh
bGxiYWNrID0gQXJyYXlDYWxsYmFjazo6Y3JlYXRlKFdURjo6bW92ZShjYWxsYmFja0Z1bmN0aW9u
KSk7Ci0KLSAgICBpZiAoIWNvbnRleHQoKSkgewotICAgICAgICBjYWxsYmFjay0+aW52YWxpZGF0
ZSgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgdWludDY0X3QgY2FsbGJhY2tJRCA9
IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7Ci0gICAgbV9hcnJheUNhbGxiYWNrcy5zZXQoY2FsbGJh
Y2tJRCwgY2FsbGJhY2sucmVsZWFzZSgpKTsKLQotICAgIC8vIEZJWE1FIChNdWx0aS1XZWJQcm9j
ZXNzKTogPHJkYXI6Ly9wcm9ibGVtLzEyMjM5NzY1PiBNYWtlIG1hbmlwdWxhdGluZyBjYWNoZSBp
bmZvcm1hdGlvbiB3b3JrIHdpdGggcGVyLXRhYiBXZWJQcm9jZXNzLgotICAgIGNvbnRleHQoKS0+
c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6Oldl
Yk9yaWdpbkRhdGFNYW5hZ2VyOjpHZXRPcmlnaW5zKHR5cGVzLCBjYWxsYmFja0lEKSk7Ci19Ci0K
LXZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGlkR2V0T3JpZ2lucyhjb25zdCBWZWN0
b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2luRGF0YXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
Ci17Ci0gICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0gbV9hcnJheUNhbGxiYWNr
cy50YWtlKGNhbGxiYWNrSUQpOwotICAgIHBlcmZvcm1BUElDYWxsYmFja1dpdGhTZWN1cml0eU9y
aWdpbkRhdGFWZWN0b3Iob3JpZ2luRGF0YXMsIGNhbGxiYWNrLmdldCgpKTsKLX0KLQotdm9pZCBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkZWxldGVFbnRyaWVzRm9yT3JpZ2luKFdLT3JpZ2lu
RGF0YVR5cGVzIHR5cGVzLCBXZWJTZWN1cml0eU9yaWdpbiogb3JpZ2luKQotewotICAgIGlmICgh
Y29udGV4dCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBTZWN1cml0eU9yaWdpbkRhdGEgc2Vj
dXJpdHlPcmlnaW5EYXRhOwotICAgIHNlY3VyaXR5T3JpZ2luRGF0YS5wcm90b2NvbCA9IG9yaWdp
bi0+c2VjdXJpdHlPcmlnaW4oKS5wcm90b2NvbCgpOwotICAgIHNlY3VyaXR5T3JpZ2luRGF0YS5o
b3N0ID0gb3JpZ2luLT5zZWN1cml0eU9yaWdpbigpLmhvc3QoKTsKLSAgICBzZWN1cml0eU9yaWdp
bkRhdGEucG9ydCA9IG9yaWdpbi0+c2VjdXJpdHlPcmlnaW4oKS5wb3J0KCk7Ci0KLSAgICAvLyBG
SVhNRSAoTXVsdGktV2ViUHJvY2Vzcyk6IDxyZGFyOi8vcHJvYmxlbS8xMjIzOTc2NT4gTWFrZSBt
YW5pcHVsYXRpbmcgY2FjaGUgaW5mb3JtYXRpb24gd29yayB3aXRoIHBlci10YWIgV2ViUHJvY2Vz
cy4KLSAgICBjb250ZXh0KCktPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhlbUlmTmVj
ZXNzYXJ5KE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6RGVsZXRlRW50cmllc0Zvck9y
aWdpbih0eXBlcywgc2VjdXJpdHlPcmlnaW5EYXRhKSk7Ci19Ci0KLXZvaWQgV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsRW50cmllcyhXS09yaWdpbkRhdGFUeXBlcyB0eXBlcykK
LXsKLSAgICBpZiAoIWNvbnRleHQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gRklYTUUg
KE11bHRpLVdlYlByb2Nlc3MpOiA8cmRhcjovL3Byb2JsZW0vMTIyMzk3NjU+IE1ha2UgbWFuaXB1
bGF0aW5nIGNhY2hlIGluZm9ybWF0aW9uIHdvcmsgd2l0aCBwZXItdGFiIFdlYlByb2Nlc3MuCi0g
ICAgY29udGV4dCgpLT5zZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2Fy
eShNZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OkRlbGV0ZUFsbEVudHJpZXModHlwZXMp
KTsKLX0KLQotdm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpzdGFydE9ic2VydmluZ0No
YW5nZXMoV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMpCi17Ci0gICAgaWYgKCFjb250ZXh0KCkpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIGNvbnRleHQoKS0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVu
Y2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpTdGFy
dE9ic2VydmluZ0NoYW5nZXModHlwZXMpKTsKLX0KLQotdm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5OjpzdG9wT2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFUeXBlcyB0eXBlcykKLXsK
LSAgICBpZiAoIWNvbnRleHQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY29udGV4dCgpLT5z
ZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2FyeShNZXNzYWdlczo6V2Vi
T3JpZ2luRGF0YU1hbmFnZXI6OlN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyh0eXBlcykpOwotfQotCi12
b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnNldENoYW5nZUNsaWVudChjb25zdCBXS09y
aWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50QmFzZSAqY2xpZW50KQotewotICAgIG1fY2xpZW50
LmluaXRpYWxpemUoY2xpZW50KTsKLX0KLQotdm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
OjpkaWRDaGFuZ2UoKQotewotICAgIG1fY2xpZW50LmRpZENoYW5nZSh0aGlzKTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NmRiNDVkNi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eS5oCisrKyAvZGV2L251bGwKQEAgLTEsOTEgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpZm5kZWYgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eV9oCi0jZGVmaW5l
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlfaAotCi0jaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0j
aW5jbHVkZSAiR2VuZXJpY0NhbGxiYWNrLmgiCi0jaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgi
Ci0jaW5jbHVkZSAiV0tPcmlnaW5EYXRhTWFuYWdlci5oIgotI2luY2x1ZGUgIldlYkNvbnRleHRT
dXBwbGVtZW50LmgiCi0jaW5jbHVkZSAiV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNs
aWVudC5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIElQQyB7Ci1jbGFzcyBD
b25uZWN0aW9uOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViU2VjdXJpdHlP
cmlnaW47Ci1zdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwotCi10eXBlZGVmIEdlbmVyaWNDYWxs
YmFjazxBUEk6OkFycmF5Kj4gQXJyYXlDYWxsYmFjazsKLQotY2xhc3MgV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6Ok9y
aWdpbkRhdGFNYW5hZ2VyPiwgcHVibGljIFdlYkNvbnRleHRTdXBwbGVtZW50LCBwcml2YXRlIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgY2hhciogc3Vw
cGxlbWVudE5hbWUoKTsKLQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHk+IGNyZWF0ZShXZWJDb250ZXh0Kik7Ci0gICAgdmlydHVhbCB+V2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eSgpOwotCi0gICAgdm9pZCBnZXRPcmlnaW5zKFdLT3JpZ2luRGF0YVR5cGVz
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKEFQSTo6QXJyYXkqLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4p
OwotICAgIHZvaWQgZGVsZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdpbkRhdGFUeXBlcywgV2Vi
U2VjdXJpdHlPcmlnaW4qKTsKLSAgICB2b2lkIGRlbGV0ZUFsbEVudHJpZXMoV0tPcmlnaW5EYXRh
VHlwZXMpOwotCi0gICAgdm9pZCBzdGFydE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhVHlw
ZXMpOwotICAgIHZvaWQgc3RvcE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhVHlwZXMpOwot
ICAgIHZvaWQgc2V0Q2hhbmdlQ2xpZW50KGNvbnN0IFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VD
bGllbnRCYXNlKik7Ci0KLSAgICB1c2luZyBBUEk6Ok9iamVjdDo6cmVmOwotICAgIHVzaW5nIEFQ
STo6T2JqZWN0OjpkZXJlZjsKLQotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5KFdlYkNvbnRleHQqKTsKLQotICAgIHZvaWQgZGlkR2V0T3JpZ2lucyhjb25z
dCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwotICAg
IHZvaWQgZGlkQ2hhbmdlKCk7Ci0KLSAgICAvLyBXZWJDb250ZXh0U3VwcGxlbWVudAotICAgIHZp
cnR1YWwgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lk
IHByb2Nlc3NEaWRDbG9zZShXZWJQcm9jZXNzUHJveHkqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkVGVybWluYXRlKFdlYlByb2Nlc3NQcm94eSopIGNvbnN0IG92ZXJyaWRlOwot
ICAgIHZpcnR1YWwgdm9pZCByZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpIG92ZXJyaWRlOwotICAg
IHZpcnR1YWwgdm9pZCBkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkgb3ZlcnJpZGU7Ci0KLSAg
ICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7Ci0K
LSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8QXJyYXlDYWxsYmFjaz4+IG1fYXJyYXlDYWxs
YmFja3M7Ci0KLSAgICBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50IG1fY2xp
ZW50OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDc2ZDc2YjQuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIC9kZXYv
bnVsbApAQCAtMSwyNiArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1l
dDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKLSMgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotIyBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotIyBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0j
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksCi0jIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0KLW1lc3NhZ2VzIC0+IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkgewotICAgIERpZEdl
dE9yaWdpbnMoVmVjdG9yPFdlYktpdDo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5JZGVudGlm
aWVycywgdWludDY0X3QgY2FsbGJhY2tJRCk7Ci0gICAgRGlkQ2hhbmdlKCkKLX0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hh
bmdlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZjFlZTgyMC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0MSAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCIKLQotI2luY2x1ZGUgIldLQVBJQ2Fz
dC5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotdm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5Q2hhbmdlQ2xpZW50OjpkaWRDaGFuZ2UoV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSogb3Jp
Z2luRGF0YU1hbmFnZXIpCi17Ci0gICAgaWYgKCFtX2NsaWVudC5kaWRDaGFuZ2UpCi0gICAgICAg
IHJldHVybjsKLQotICAgIG1fY2xpZW50LmRpZENoYW5nZSh0b0FQSShvcmlnaW5EYXRhTWFuYWdl
ciksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHlDaGFuZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDJmZWE4MDguLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaAorKysgL2Rldi9udWxsCkBAIC0x
LDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHlDaGFuZ2VDbGllbnRfaAotI2RlZmluZSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdl
Q2xpZW50X2gKLQotI2luY2x1ZGUgIkFQSUNsaWVudC5oIgotI2luY2x1ZGUgIldLT3JpZ2luRGF0
YU1hbmFnZXIuaCIKLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotCi1uYW1lc3BhY2UgQVBJIHsK
LXRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdl
Q2xpZW50QmFzZT4gewotICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS09yaWdpbkRhdGFNYW5hZ2Vy
Q2hhbmdlQ2xpZW50VjA+IFZlcnNpb25zOwotfTsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0K
LWNsYXNzIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk7Ci0KLWNsYXNzIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQgOiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tPcmlnaW5EYXRh
TWFuYWdlckNoYW5nZUNsaWVudEJhc2U+IHsKLXB1YmxpYzoKLSAgICB2b2lkIGRpZENoYW5nZShX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Kik7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQK
LQotI2VuZGlmIC8vIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDVhNzg0NzguLjYxOTgzYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc4Niw2ICs3ODYsMTUgQEAKIAkJNTEwNjREMzYxODk3
ODFDNDAwNEIyRkVCIC8qIFNRTGl0ZUlEQkN1cnNvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwNjREMzQxODk3ODFDNDAwNEIyRkVCIC8qIFNRTGl0
ZUlEQkN1cnNvci5oICovOyB9OwogCQk1MTA2RDdDMjE4QkRCRTczMDAwQUIxNjYgLyogQ29udGV4
dE1lbnVDb250ZXh0RGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTA2RDdCRjE4QkRCRTczMDAwQUIxNjYgLyogQ29udGV4dE1lbnVDb250ZXh0
RGF0YS5jcHAgKi87IH07CiAJCTUxMDZEN0M0MThCREJFNzMwMDBBQjE2NiAvKiBDb250ZXh0TWVu
dUNvbnRleHREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTA2RDdDMDE4QkRCRTczMDAwQUIxNjYgLyogQ29udGV4dE1lbnVDb250ZXh0RGF0YS5o
ICovOyB9OworCQk1MTBBOTM2ODE5Nzg3RjkxMDA0OUQ1QTAgLyogQ2hpbGRQcm9jZXNzT3JpZ2lu
RGF0YU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTEwQTkzNjIxOTc4N0Y4NTAwNDlENUEwIC8qIENoaWxkUHJvY2Vzc09yaWdpbkRhdGFN
YW5hZ2VyLmNwcCAqLzsgfTsKKwkJNTEwQTkzNjkxOTc4N0Y5NTAwNDlENUEwIC8qIENoaWxkUHJv
Y2Vzc09yaWdpbkRhdGFNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTBBOTM2MzE5Nzg3Rjg1MDA0OUQ1QTAgLyogQ2hpbGRQcm9jZXNzT3Jp
Z2luRGF0YU1hbmFnZXIuaCAqLzsgfTsKKwkJNTEwQTkzNzAxOTc4N0ZDQTAwNDlENUEwIC8qIFVJ
UHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEE5MzZBMTk3ODdGQkIwMDQ5RDVBMCAvKiBVSVByb2Nlc3NP
cmlnaW5EYXRhTWFuYWdlci5jcHAgKi87IH07CisJCTUxMEE5MzcxMTk3ODdGQ0EwMDQ5RDVBMCAv
KiBVSVByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwQTkzNkIxOTc4N0ZCQjAwNDlENUEwIC8qIFVJUHJvY2Vz
c09yaWdpbkRhdGFNYW5hZ2VyLmggKi87IH07CisJCTUxMEE5MzdBMTk3ODgxQzYwMDQ5RDVBMCAv
KiBVSVByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBBOTM3NDE5Nzg4MTYwMDA0
OUQ1QTAgLyogVUlQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICov
OyB9OworCQk1MTBBOTM3QjE5Nzg4MUM2MDA0OUQ1QTAgLyogVUlQcm9jZXNzT3JpZ2luRGF0YU1h
bmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTEwQTkzNzUxOTc4ODE2MDAwNDlENUEwIC8qIFVJUHJvY2Vzc09yaWdpbkRhdGFNYW5h
Z2VyTWVzc2FnZXMuaCAqLzsgfTsKKwkJNTEwQTkzN0MxOTc4ODFDQjAwNDlENUEwIC8qIENoaWxk
UHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEE5MzcyMTk3ODgxNjAwMDQ5RDVB
MCAvKiBDaGlsZFByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87
IH07CisJCTUxMEE5MzdEMTk3ODgxQ0IwMDQ5RDVBMCAvKiBDaGlsZFByb2Nlc3NPcmlnaW5EYXRh
TWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTBBOTM3MzE5Nzg4MTYwMDA0OUQ1QTAgLyogQ2hpbGRQcm9jZXNzT3JpZ2luRGF0
YU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OworCQk1MTBBOTM3RTE5Nzg4MjFBMDA0OUQ1QTAgLyog
V0tPcmlnaW5EYXRhTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzU1NDIyQkExODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFn
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1
MTBBRkZCOTE2NTQyMDQ4MDAxQkEwNUUgLyogV2ViUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwQUZGQjcxNjU0MjA0ODAw
MUJBMDVFIC8qIFdlYlJlc291cmNlTG9hZGVyLmNwcCAqLzsgfTsKIAkJNTEwQUZGQkExNjU0MjA0
ODAwMUJBMDVFIC8qIFdlYlJlc291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBBRkZCODE2NTQyMDQ4MDAxQkEwNUUgLyogV2ViUmVz
b3VyY2VMb2FkZXIuaCAqLzsgfTsKIAkJNTEwQ0M4NDkxNjEzQzg1QzAwRDAzRUQzIC8qIE5ldHdv
cmtQcm9jZXNzLmFwcCBpbiBDb3B5IEZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxMENDODBFMTYxM0M3OTkwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2Vzcy5hcHAgKi87
IH07CkBAIC0xMDA0LDEyICsxMDEzLDYgQEAKIAkJNzUzRTNFMEQxODg3Mzk4NTAwMTg4NDk2IC8q
IFNlc3Npb25UcmFja2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDc1M0UzRTBCMTg4NzM5NzMwMDE4ODQ5NiAvKiBTZXNzaW9uVHJhY2tlci5jcHAg
Ki87IH07CiAJCTc1M0UzRTBFMTg4NzM5ODkwMDE4ODQ5NiAvKiBTZXNzaW9uVHJhY2tlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzUzRTNFMDkxODg3
Mzk0QjAwMTg4NDk2IC8qIFNlc3Npb25UcmFja2VyLmggKi87IH07CiAJCTc1NTQyMkJEMTgwNjJC
QjIwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkI5MTgwNjJCOUMwMDQ2RjZBOCAvKiBX
S09yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLzsgfTsKLQkJNzU1NDIyQzQxODA2MkJGOTAwNDZGNkE4
IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQkUxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwICovOyB9OwotCQk3NTU0MjJDQjE4MDY1MDAyMDA0NkY2
QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQzYxODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyLmNwcCAqLzsgfTsKLQkJNzU1NDIyQ0MxODA3NzNDRTAwNDZGNkE4IC8qIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3NTU0MjJDNzE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFn
ZXIuaCAqLzsgfTsKLQkJNzU5Q0NENTgxODA4RjE2NDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzU5Q0NENTQxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwICovOyB9OwotCQk3NTlDQ0Q1OTE4MDhGMTY5
MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU5Q0NENTUxODA4RjE2
MDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCAqLzsg
fTsKLQkJNzU5Q0NENUExODA4RjYxNjAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQy
MkJGMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggKi87IH07
CiAJCTc1QThEMkM4MTg3Q0NGQUIwMEMzOUM5RSAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NUE4RDJDNDE4N0ND
RjlGMDBDMzlDOUUgLyogX1dLV2Vic2l0ZURhdGFTdG9yZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc1QThEMkM5MTg3Q0NGQUYwMEMzOUM5RSAv
KiBfV0tXZWJzaXRlRGF0YVN0b3JlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzVBOEQyQzUxODdDQ0Y5RjAwQzM5QzlFIC8qIF9XS1dlYnNpdGVEYXRh
U3RvcmUubW0gKi87IH07CiAJCTc1QThEMkQ2MTg3RDFDMEUwMEMzOUM5RSAvKiBfV0tXZWJzaXRl
RGF0YVN0b3JlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDc1QThEMkQ0MTg3RDFDMDEwMEMzOUM5RSAvKiBfV0tXZWJzaXRlRGF0YVN0b3Jl
SW50ZXJuYWwuaCAqLzsgfTsKQEAgLTEwMTcsMTAgKzEwMjAsNiBAQAogCQk3NUE4RDJEODE4N0Qz
MDQwMDBDMzlDOUUgLyogV0tTZXNzaW9uUmVmLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1QThEMkQwMTg3RDE3QkYwMEMzOUM5RSAvKiBXS1Nlc3Np
b25SZWYuY3BwICovOyB9OwogCQk3NUE4RDJFMTE4N0RFQzFBMDBDMzlDOUUgLyogQVBJU2Vzc2lv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVBOEQy
REUxODdERTg3NDAwQzM5QzlFIC8qIEFQSVNlc3Npb24uaCAqLzsgfTsKIAkJNzVBOEQyRTIxODdE
RUMxRTAwQzM5QzlFIC8qIEFQSVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzVBOEQyREQxODdERTg3NDAwQzM5QzlFIC8qIEFQSVNlc3Np
b24uY3BwICovOyB9OwotCQk3NUU3NDlFOTE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0
YU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzVFNzQ5RTUxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKLQkJNzVFNzQ5RUExODBEQkI5ODAw
MDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1RTc0OUU2MTgwREJCOTgwMDA4OEJBNiAv
KiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VzLmggKi87IH07Ci0JCTc1RTc0OUVCMTgwREJC
OTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1RTc0OUU3
MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLzsgfTsKLQkJNzVFNzQ5RUMxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzVFNzQ5RTgxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oICovOyB9OwogCQk3NjJCNzQ4RDEyMEJDNzVDMDA4MTkzMzkg
LyogV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc2MkI3NDg0MTIwQkJBMkQwMDgxOTMzOSAvKiBXS1ByZWZlcmVu
Y2VzUmVmUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTc4MDFDMDk5MTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc4MDFDMDk1
MTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0LmNwcCAqLzsgfTsKIAkJNzgwMUMw
OUExNDIyOTBDNDAwRkFGOUFGIC8qIFdlYkhpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc4MDFDMDk2MTQyMjkwQzQwMEZBRjlBRiAv
KiBXZWJIaXRUZXN0UmVzdWx0LmggKi87IH07CkBAIC0yNzk0LDYgKzI3OTMsMTYgQEAKIAkJNTEw
NjREMzQxODk3ODFDNDAwNEIyRkVCIC8qIFNRTGl0ZUlEQkN1cnNvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTUUxpdGVJREJDdXJzb3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTEwNkQ3QkYxOEJEQkU3MzAwMEFCMTY2IC8qIENvbnRleHRNZW51Q29udGV4
dERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29udGV4dE1l
bnVDb250ZXh0RGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDZEN0Mw
MThCREJFNzMwMDBBQjE2NiAvKiBDb250ZXh0TWVudUNvbnRleHREYXRhLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRleHRNZW51Q29udGV4dERhdGEuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEwQTkzNjIxOTc4N0Y4NTAwNDlENUEwIC8qIENoaWxkUHJv
Y2Vzc09yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IENoaWxkUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNTEwQTkzNjMxOTc4N0Y4NTAwNDlENUEwIC8qIENoaWxkUHJvY2Vzc09y
aWdpbkRhdGFNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoaWxk
UHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTUxMEE5MzY0MTk3ODdGODUwMDQ5RDVBMCAvKiBDaGlsZFByb2Nlc3NPcmlnaW5EYXRhTWFuYWdl
ci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDaGlsZFByb2Nlc3NPcmlnaW5E
YXRhTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEw
QTkzNkExOTc4N0ZCQjAwNDlENUEwIC8qIFVJUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVJUHJvY2Vzc09yaWdpbkRhdGFN
YW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEwQTkzNkIxOTc4N0ZC
QjAwNDlENUEwIC8qIFVJUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFVJUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMEE5MzZDMTk3ODdGQkIwMDQ5RDVBMCAvKiBVSVByb2Nl
c3NPcmlnaW5EYXRhTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBV
SVByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTEwQTkzNzIxOTc4ODE2MDAwNDlENUEwIC8qIENoaWxkUHJvY2Vzc09yaWdp
bkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENoaWxkUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEwQTkzNzMxOTc4ODE2MDAwNDlE
NUEwIC8qIENoaWxkUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2hpbGRQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXJNZXNz
YWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTBBOTM3NDE5Nzg4MTYwMDA0
OUQ1QTAgLyogVUlQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVUlQcm9jZXNzT3JpZ2luRGF0YU1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MTBBOTM3NTE5Nzg4MTYwMDA0OUQ1QTAgLyogVUlQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXJNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVSVByb2Nlc3NPcmlnaW5E
YXRhTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMEFG
RkI3MTY1NDIwNDgwMDFCQTA1RSAvKiBXZWJSZXNvdXJjZUxvYWRlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJSZXNvdXJjZUxvYWRlci5jcHA7IHBhdGggPSBO
ZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTEwQUZGQjgxNjU0MjA0ODAwMUJBMDVFIC8qIFdlYlJlc291cmNlTG9hZGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlJlc291cmNlTG9hZGVyLmg7IHBhdGggPSBO
ZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxMEFGRkNFMTY1NDJDQkQwMDFCQTA1RSAvKiBXZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IG5hbWUgPSBXZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbjsgcGF0aCA9IE5ldHdvcmsvV2Vi
UmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0zMDM3LDE0ICszMDQ2LDYgQEAKIAkJNzUzRTNFMEIxODg3Mzk3MzAwMTg4NDk2IC8qIFNlc3Np
b25UcmFja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlc3Np
b25UcmFja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU1NDIyQjkxODA2
MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV0tPcmlnaW5EYXRhTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTc1NTQyMkJBMTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRh
dGFNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLT3JpZ2luRGF0
YU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzU1NDIyQkUxODA2MkJF
NDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTc1NTQyMkJGMTgwNjJCRTQwMDQ2RjZBOCAvKiBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNzU1NDIyQzAxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzU1NDIy
QzYxODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcDsgcGF0
aCA9IE9yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk3NTU0MjJDNzE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1h
bmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViT3JpZ2luRGF0YU1h
bmFnZXIuaDsgcGF0aCA9IE9yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzU1NDIyQzgxODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFdlYk9y
aWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluOyBwYXRoID0gT3JpZ2luRGF0YS9XZWJPcmlnaW5E
YXRhTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzU5
Q0NENTQxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VD
bGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTc1OUNDRDU1MTgwOEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5Q2hhbmdlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNzVBOEQyQzQxODdDQ0Y5RjAwQzM5QzlFIC8qIF9XS1dlYnNpdGVEYXRhU3RvcmUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLV2Vic2l0ZURhdGFTdG9yZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NUE4RDJDNTE4N0NDRjlGMDBDMzlDOUUg
LyogX1dLV2Vic2l0ZURhdGFTdG9yZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IF9XS1dlYnNpdGVEYXRhU3RvcmUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTc1QThEMkQwMTg3RDE3QkYwMEMzOUM5RSAvKiBXS1Nlc3Npb25SZWYuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tTZXNzaW9uUmVmLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMwNTIsMTAgKzMwNTMsNiBAQAogCQk3NUE4RDJENDE4
N0QxQzAxMDBDMzlDOUUgLyogX1dLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NUE4RDJERDE4N0RFODc0MDBDMzlDOUUgLyog
QVBJU2Vzc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBUElT
ZXNzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzVBOEQyREUxODdERTg3
NDAwQzM5QzlFIC8qIEFQSVNlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQVBJU2Vzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3NUU3NDlFNTE4
MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3NUU3
NDlFNjE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3Nh
Z2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTc1RTc0OUU3MTgwREJCOTgwMDA4
OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3NUU3
NDlFODE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NjJCNzQ4MTEy
MEJCQTAxMDA4MTkzMzkgLyogRm9udFNtb290aGluZ0xldmVsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEZvbnRTbW9vdGhpbmdMZXZlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3NjJCNzQ4NDEyMEJCQTJEMDA4MTkzMzkgLyogV0tQcmVmZXJlbmNlc1JlZlBy
aXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcmVmZXJlbmNlc1Jl
ZlByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzgwMUMwOTUxNDIyOTBD
NDAwRkFGOUFGIC8qIFdlYkhpdFRlc3RSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViSGl0VGVzdFJlc3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC00Mzc2LDYgKzQzNzMsOSBAQAogCQkJCUJDMzA2NUY5MTI1OTM0NEUwMEU3MTI3
OCAvKiBDYWNoZU1vZGVsLmggKi8sCiAJCQkJMUEyRDk1NkUxMjg0ODU2NDAwMUVCOTYyIC8qIENo
aWxkUHJvY2Vzcy5jcHAgKi8sCiAJCQkJMUEyRDk1NkQxMjg0ODU2NDAwMUVCOTYyIC8qIENoaWxk
UHJvY2Vzcy5oICovLAorCQkJCTUxMEE5MzYyMTk3ODdGODUwMDQ5RDVBMCAvKiBDaGlsZFByb2Nl
c3NPcmlnaW5EYXRhTWFuYWdlci5jcHAgKi8sCisJCQkJNTEwQTkzNjMxOTc4N0Y4NTAwNDlENUEw
IC8qIENoaWxkUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyLmggKi8sCisJCQkJNTEwQTkzNjQxOTc4
N0Y4NTAwNDlENUEwIC8qIENoaWxkUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmlu
ICovLAogCQkJCUUxNTEzQzY0MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGlsZFByb2Nlc3NQcm94eS5j
cHAgKi8sCiAJCQkJRTE1MTNDNjUxNjZFQUJCMjAwMTQ5RkNCIC8qIENoaWxkUHJvY2Vzc1Byb3h5
LmggKi8sCiAJCQkJMjkwRjQyNzExNzJBMEM3NDAwOTM5RkYwIC8qIENoaWxkUHJvY2Vzc1N1cHBs
ZW1lbnQuaCAqLywKQEAgLTU1MDMsMTYgKzU1MDMsNiBAQAogCQkJbmFtZSA9IG1hYzsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07Ci0JCTc1NTQyMkM1MTgwNjRGRkMwMDQ2RjZBOCAv
KiBPcmlnaW5EYXRhICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgK
LQkJCQk3NTU0MjJDNjE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3Bw
ICovLAotCQkJCTc1NTQyMkM3MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdl
ci5oICovLAotCQkJCTc1NTQyMkM4MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFu
YWdlci5tZXNzYWdlcy5pbiAqLywKLQkJCSk7Ci0JCQluYW1lID0gT3JpZ2luRGF0YTsKLQkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07CiAJCTdDNkU3MEY4MThCMkQ0N0UwMEYyNEUyRSAv
KiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC01
NjEyLDcgKzU2MDIsNiBAQAogCQkJCTMzRDNBM0JEMTMzOTYwOTgwMDcwOUJFNCAvKiBNZWRpYUNh
Y2hlICovLAogCQkJCTUxMDVCMEQyMTYyRjdBNUUwMEUyNzcwOSAvKiBOZXR3b3JrICovLAogCQkJ
CTMxMDk5OTc0MTQ2QzhBQTgwMDI5REVCOSAvKiBOb3RpZmljYXRpb25zIChVc2VyKSAqLywKLQkJ
CQk3NTU0MjJDNTE4MDY0RkZDMDA0NkY2QTggLyogT3JpZ2luRGF0YSAqLywKIAkJCQkxQTZGQjdB
QTExRTY0QjQ5MDBEQjEzNzEgLyogUGx1Z2lucyAqLywKIAkJCQkzMzM2NzYyQjEzMEM5OTc4MDA2
QzlERTIgLyogUmVzb3VyY2VDYWNoZSAqLywKIAkJCQkwRjU5NDc4QzE4N0IzQjJBMDA0Mzc4NTcg
LyogU2Nyb2xsaW5nICovLApAQCAtNTc4Nyw2ICs1Nzc2LDkgQEAKIAkJCQkxQUE0MTdDOTEyQzAw
Q0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXIuaCAqLywKIAkJCQkxQkI0MTdDOTEyQzAwQ0NBMDAy
QkU2N0IgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcCAqLywKIAkJCQkxQ0M0MTdDOTEyQzAw
Q0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmggKi8sCisJCQkJNTEwQTkzNkEx
OTc4N0ZCQjAwNDlENUEwIC8qIFVJUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLywKKwkJ
CQk1MTBBOTM2QjE5Nzg3RkJCMDA0OUQ1QTAgLyogVUlQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXIu
aCAqLywKKwkJCQk1MTBBOTM2QzE5Nzg3RkJCMDA0OUQ1QTAgLyogVUlQcm9jZXNzT3JpZ2luRGF0
YU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJMUEwRjI5RTExMjBCNDQ0MjAwNTNEMUI5IC8q
IFZpc2l0ZWRMaW5rUHJvdmlkZXIuY3BwICovLAogCQkJCTFBMEYyOUUyMTIwQjQ0NDIwMDUzRDFC
OSAvKiBWaXNpdGVkTGlua1Byb3ZpZGVyLmggKi8sCiAJCQkJMUE2MDIyNDkxOEMxNkIwODAwQzNF
OEM5IC8qIFZpc2l0ZWRMaW5rUHJvdmlkZXIubWVzc2FnZXMuaW4gKi8sCkBAIC01ODU5LDExICs1
ODUxLDYgQEAKIAkJCQkzM0QzQTNCOTEzMzk2MDYyMDA3MDlCRTQgLyogV2ViTWVkaWFDYWNoZU1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQlCQzFERkVBMzEyQjMxRjg3MDA1REY3MzAg
LyogV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgKi8sCiAJCQkJQkMxREZFQTIx
MkIzMUY4NzAwNURGNzMwIC8qIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuaCAqLywK
LQkJCQk3NTU0MjJCRjE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eS5oICovLAotCQkJCTc1NTQyMkJFMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5LmNwcCAqLywKLQkJCQk3NTU0MjJDMDE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKLQkJCQk3NTlDQ0Q1NDE4MDhGMTYw
MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAgKi8s
Ci0JCQkJNzU5Q0NENTUxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHlDaGFuZ2VDbGllbnQuaCAqLywKIAkJCQk1MTUzNTY5QTEyOTFCMUQyMDAwNzQ5REMgLyogV2Vi
UGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCAqLywKIAkJCQk1MTUzNTY5QjEyOTFCMUQyMDAwNzQ5
REMgLyogV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmggKi8sCiAJCQkJQkM3QjYyMDUxMjlBMEE2
NzAwRDE3NEE0IC8qIFdlYlBhZ2VHcm91cC5jcHAgKi8sCkBAIC02NzIwLDEzICs2NzA3LDE1IEBA
CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk1MTJGNThBMDEyQTg4M0FEMDA2Mjk1MzAgLyogQXV0aGVu
dGljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk1MTJGNThBMTEyQTg4
M0FEMDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZXMuaCAqLywKLQkJCQlF
MTE1QzcxNTE5MEY4QTI1MDBFQ0M1MTYgLyogY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXMuc2Ig
Ki8sCi0JCQkJRTE3QUUyQzIxNkI5QzYzQTAwMUM0MkYxIC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0
d29ya1Byb2Nlc3Muc2IgKi8sCi0JCQkJRTE5NjdFMzcxNTBBQjVFMjAwQzczMTY5IC8qIGNvbS5h
cHBsZS5XZWJQcm9jZXNzLnNiICovLAorCQkJCTUxMEE5MzcyMTk3ODgxNjAwMDQ5RDVBMCAvKiBD
aGlsZFByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJ
NTEwQTkzNzMxOTc4ODE2MDAwNDlENUEwIC8qIENoaWxkUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2Vy
TWVzc2FnZXMuaCAqLywKIAkJCQkyOTg0RjU4NjE2NEJBMDk1MDA0QkMwQzYgLyogQ3VzdG9tUHJv
dG9jb2xNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkyOTg0RjU4NzE2NEJBMDk1
MDA0QkMwQzYgLyogQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyTWVzc2FnZXMuaCAqLywKIAkJCQkyOTg0
RjU3QTE2NEI5MTVGMDA0QkMwQzYgLyogQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwICovLAogCQkJCTI5ODRGNTdCMTY0QjkxNUYwMDRCQzBDNiAvKiBDdXN0b21Q
cm90b2NvbE1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJRTExNUM3MTUxOTBGOEEyNTAw
RUNDNTE2IC8qIGNvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzLnNiICovLAorCQkJCUUxN0FFMkMy
MTZCOUM2M0EwMDFDNDJGMSAvKiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiICov
LAorCQkJCUUxOTY3RTM3MTUwQUI1RTIwMEM3MzE2OSAvKiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5z
YiAqLywKIAkJCQk1MUQwRDQzNDE4M0IzNTNEMDA5NzA0MUQgLyogRGF0YWJhc2VQcm9jZXNzSURC
Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJNTFEMEQ0MzUxODNCMzUzRDAw
OTcwNDFEIC8qIERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb25NZXNzYWdlcy5oICovLAogCQkJ
CTUxMkE5NzVFMTgwRTAzMTYwMDM5QTE0OSAvKiBEYXRhYmFzZVByb2Nlc3NNZXNzYWdlUmVjZWl2
ZXIuY3BwICovLApAQCAtNjc4Myw2ICs2NzcyLDggQEAKIAkJCQkxQTMzNERFQzE2REU4Rjg4MDA2
QThFMzggLyogU3RvcmFnZUFyZWFNYXBNZXNzYWdlcy5oICovLAogCQkJCTFBQjMxQTk0MTZCQzY4
ODEwMEY2REJDOSAvKiBTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJ
MUFCMzFBOTUxNkJDNjg4MTAwRjZEQkM5IC8qIFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywK
KwkJCQk1MTBBOTM3NDE5Nzg4MTYwMDA0OUQ1QTAgLyogVUlQcm9jZXNzT3JpZ2luRGF0YU1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTUxMEE5Mzc1MTk3ODgxNjAwMDQ5RDVBMCAv
KiBVSVByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VzLmggKi8sCiAJCQkJMkQxQjVENUIx
ODU4NjlDODAwNkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8sCiAJCQkJMkQxQjVENUMxODU4NjlDODAwNkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJv
bGxlck1lc3NhZ2VzLmggKi8sCiAJCQkJMkQ4MTlCOUYxODYyODAwRTAwMUYwM0QxIC8qIFZpZXdH
ZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtNjgzMywx
MCArNjgyNCw2IEBACiAJCQkJMzNEM0EzQzcxMzM5NjE3OTAwNzA5QkU0IC8qIFdlYk1lZGlhQ2Fj
aGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovLAogCQkJCTMxQkE5MjQ4MTQ4ODMwODEwMDYyRURC
NSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkz
MUJBOTI0OTE0ODgzMDgxMDA2MkVEQjUgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2Vz
LmggKi8sCi0JCQkJNzVFNzQ5RTUxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKLQkJCQk3NUU3NDlFNjE4MERCQjk4MDAwODhCQTYg
LyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oICovLAotCQkJCTc1RTc0OUU3MTgwREJC
OTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCAqLywKLQkJCQk3NUU3NDlFODE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJMjlENTVERUYxNjFCRjlGMTAwMzFBMkUzIC8qIFdl
YlBhZ2VHcm91cFByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkyOUQ1NURGMDE2MUJG
OUYxMDAzMUEyRTMgLyogV2ViUGFnZUdyb3VwUHJveHlNZXNzYWdlcy5oICovLAogCQkJCUMwQ0U3
MjlFMTI0N0U3MUQwMEJDMEVDNCAvKiBXZWJQYWdlTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAg
LTcyOTUsNiArNzI4Miw4IEBACiAJCQkJMUFDNUZGQzIxNzRCRkQxQjAwMDE0ODNEIC8qIFBsdWdp
blByb2Nlc3NBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTBFQzkwNjEyNEMwQUI4
MDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBMEVDOTBGMTI0QzBBRjUwMDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMEE5MzdEMTk3ODgxQ0IwMDQ5RDVBMCAvKiBDaGls
ZFByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1
MTBBOTM2OTE5Nzg3Rjk1MDA0OUQ1QTAgLyogQ2hpbGRQcm9jZXNzT3JpZ2luRGF0YU1hbmFnZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBNzg2NUJBMTZDQUM3MTUwMEFDRTgzQSAvKiBQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbk1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEy
QkI2RDExNDExN0I0RDAwMEYzNUQ0IC8qIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBMkQ5MEQyMTI4MUM5NjYwMDFFQjk2MiAvKiBQbHVnaW5Q
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKQEAgLTczMzksNyArNzMy
OCw5IEBACiAJCQkJRTE4RTY5MTgxNjlCNjY3QjAwOUI2NjcwIC8qIFNlY0l0ZW1TaGltUHJveHlN
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzMxNTI5NzYxMzBEMENCMjAwRUQyNDgzIC8q
IFNlY3VyaXR5T3JpZ2luRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBMjBENTExOEFENTBF
MDAwNUQxRUQ0IC8qIFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNTEwQTkzN0IxOTc4ODFDNjAwNDlENUEwIC8qIFVJUHJvY2Vzc09yaWdpbkRhdGFNYW5h
Z2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQ0I3OTg3MTkxRUNBREQwMDZBNkE2
MSAvKiBYUENQdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMEE5MzdFMTk3ODgyMUEwMDQ5RDVB
MCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTY0MjBFNTEy
RENFMkZGMDBDQUFFMkMgLyogU2hhcmVhYmxlQml0bWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MTIxNzQ2MTE2NEMyMEUzMDAzN0E1QzEgLyogU2hhcmVhYmxlUmVzb3VyY2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBMjRCRUQ1MTIwODk0RDEwMEZCQjA1OSAvKiBTaGFyZWRNZW1vcnkuaCBpbiBI
ZWFkZXJzICovLApAQCAtNzQxMywxNCArNzQwNCwxMiBAQAogCQkJCTFBNjUwOUNFMThCNDE0NjIw
MDYxNDMzMiAvKiBXS1Byb2Nlc3NQb29sUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4
NzFCNUMxMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzAzMkQ3NzEwRjQzNzhEMDA1OEMxNUEgLyogV2ViQ29udGV4dE1lbnVDbGllbnQuaCBp
biBIZWFkZXJzICovLAotCQkJCTc1RTc0OUVDMTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMjkzNUQ4MTI4
OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTAwQjk2NjE2MThFMjRDQkEwMENFMUY4OCAvKiBBUElGaW5kQ2xpZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQUU1MkY5ODE5MjAyNjcyMDBBMUZBMzcgLyogV0tDb250ZXh0Q29uZmlndXJhdGlv
blJlZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEwRkJCOUIxMjg4Qzk1RTAwQUZGREY0IC8qIFdl
YkNvbnRleHRNZW51SXRlbURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQUNCQjgyMTI3QThC
QUQwMEQyMDNCOSAvKiBXZWJDb250ZXh0TWVudVByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QUI4QTFGNDE4NDAwQjhGMDBFOUFFNjkgLyogV0tQYWdlRmluZENsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNzVFNzQ5RUExODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QTY0RTU1MThGMzhFM0MwMEVCMzBGMSAv
KiBfV0tGb3JtRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQUNCQkEwMTI3QThGMkMw
MEQyMDNCOSAvKiBXZWJDb250ZXh0TWVudVByb3h5TWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Q0NCNzVDNjEyMDNBMUNFMDAyMjJEMUIgLyogV2ViQ29udGV4dE1lc3NhZ2VLaW5kcy5oIGluIEhl
YWRlcnMgKi8sCkBAIC03Nzc3LDcgKzc3NjYsNiBAQAogCQkJCTM3M0NFQUQ4MTg1OTU1M0YwMDhD
MzYzRCAvKiBXS1BhZ2VQb2xpY3lDbGllbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUE2NkJGOEYxOEEwNTJFRDAwMjA3MUI0IC8qIFdLV2ViVmlld0ludGVybmFsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzQwNzYxQTEyNEZGMDM3MDA2OEYyMEEgLyogV0tTdHJpbmdDRi5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNzU5Q0NENTkxODA4RjE2OTAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTA5OTgwMTI1
NkE5ODIwMDA4Mzc1NiAvKiBXS1N0cmluZ1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUx
NzUwOTVBMTg5NzI0OTcwMDQwOEZBQyAvKiBJREJJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQTNDODg4MDE4QTVBQkFFMDBDNEM5NjIgLyogV0tQcmVmZXJlbmNlc0ludGVybmFsLmgg
aW4gSGVhZGVycyAqLywKQEAgLTc3OTAsMTYgKzc3NzgsMTUgQEAKIAkJCQkxQTYyODBDNTE5MTk5
NDlGMDA2QUQ5RjkgLyogV2ViS2l0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTNFM0UwRTE4ODcz
OTg5MDAxODg0OTYgLyogU2Vzc2lvblRyYWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3
NjBFMTI0RkYwMjcwMDY4RjIwQSAvKiBXS1VSTFJlc3BvbnNlLmggaW4gSGVhZGVycyAqLywKLQkJ
CQk3NTlDQ0Q1QTE4MDhGNjE2MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMjZGMTBCRTgxOTE4N0UyRTAwMUQwRTY4IC8qIFdLU3ludGhl
dGljQ2xpY2tUYXBHZXN0dXJlUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2
MkIxMjRGRjA0MDAwNjhGMjBBIC8qIFdLVVJMUmVzcG9uc2VOUy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRjYxMTNFMjkxMjZDRTE5QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzg2OTlCNzExNkFBREFBMDAyQTkyNUIgLyogV0tWaWV3SW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMjU2RTM4MThBMUE3ODgwMDZGQjkyMiAvKiBX
S05hdmlnYXRpb25BY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJGQTYxNzlGMTJGMEI5OUQw
MDMzRTBDQSAvKiBXS1ZpZXdQcml2YXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQk3NTU0MjJDQzE4
MDc3M0NFMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUM1RTFBRkU5MTZCMjBCNzUwMDZDQzFGMiAvKiBXS1dlYkFyY2hpdmUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUM1RTFBRkVCMTZCMjBCN0UwMDZDQzFGMiAvKiBXS1dlYkFyY2hpdmVSZXNvdXJj
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTEwQTkzNzExOTc4N0ZDQTAwNDlENUEwIC8qIFVJUHJv
Y2Vzc09yaWdpbkRhdGFNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkU2N0EyNTE5MTBC
OUQxMDAwMDRBQjcgLyogUHJvY2Vzc1Rocm90dGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5
ODlEODIxNjFBN0U1RDAwMEQ0NkQzIC8qIFdLV2ViUHJvY2Vzc1BsdWdJbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZDQjRFNjgxOEJCRTNEOTAwMEZDRkM5IC8qIFdLVGV4dElucHV0V2luZG93Q29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC04ODMwLDcgKzg4MTcsNiBAQAogCQkJCUJDRUU3
REM2MTI4QjY0NUQwMDk4MjdEQSAvKiBJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MUZBMkQ3NDE1MjEyREYxMDBDMUJBMEIgLyogSW5qZWN0ZWRCdW5kbGVET01X
aW5kb3dFeHRlbnNpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0OTg2MTkxMjREMTBFMjAw
RDgzNEUxIC8qIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQk3NUU3NDlFOTE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyMDRFRTYxMUM4M0VBOTAwOEYz
Mzc1IC8qIEluamVjdGVkQnVuZGxlTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM4MTQ3RDYx
MkY2NkQzMTAwN0IyQzMyIC8qIEluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkyNjg0MDU0QzE4Qjg2QzM1MDAyMkMzOEIgLyogVmlzaWJsZUNvbnRl
bnRSZWN0VXBkYXRlSW5mby5jcHAgaW4gU291cmNlcyAqLywKQEAgLTg4NDEsNyArODgyNyw2IEBA
CiAJCQkJQkMxNEUxMDkxMjBCOTA1RTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlUGFnZUZvcm1D
bGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDQjRFNjkxOEJCRTNEOTAwMEZDRkM5IC8q
IFdLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNENUM2
NkEwMTM0QjlEMzgwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTc1NTQyMkNCMTgwNjUwMDIwMDQ2RjZBOCAvKiBXZWJP
cmlnaW5EYXRhTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREExRTRGRjE4QzAyQjZB
MDBEQkM5MjkgLyogV0tQREZWaWV3Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBOEM2QTgxMUUz
QkE1RjAwODEyRkI3IC8qIEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRkNCNEU2NzE4QkJFM0Q5MDAwRkNGQzkgLyogV0tQcmludGluZ1ZpZXcu
bW0gaW4gU291cmNlcyAqLywKQEAgLTg4ODMsNiArODg2OCw3IEBACiAJCQkJMDBCOTY2MTkxOEUy
NUFFMTAwQ0UxRjg4IC8qIEZpbmRDbGllbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUU1QjdG
QjExRTdBRUQyMDBCQTY3NjcgLyogTmV0c2NhcGVQbHVnaW5NYWMubW0gaW4gU291cmNlcyAqLywK
IAkJCQk3QzM2MUQ3MjE5MjdGQTM2MDAzNkE1OUQgLyogV2ViU2NyaXB0TWVzc2FnZUhhbmRsZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTEwQTkzN0MxOTc4ODFDQjAwNDlENUEwIC8qIENoaWxk
UHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFBNEE5QzU1MTJCODE2Q0YwMDhGRTk4NCAvKiBOZXRzY2FwZVBsdWdpbk1vZHVsZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTRBOUM5QTEyQjgyMUNEMDA4RkU5ODQgLyogTmV0c2Nh
cGVQbHVnaW5Nb2R1bGVNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUE1ODg5MzExRUU3MDQw
MDA2MUI4ODIgLyogTmV0c2NhcGVQbHVnaW5TdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC04
OTY3LDYgKzg5NTMsNyBAQAogCQkJCTJERDEzQkQ1MThGN0RBREQwMEUxMzBBMSAvKiBGaW5kQ29u
dHJvbGxlcklPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBNzg2NUI5MTZDQUM3MTUwMEFDRTgz
QSAvKiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUEyQkI2RDAxNDExN0I0RDAwMEYzNUQ0IC8qIFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxMEE5
MzcwMTk3ODdGQ0EwMDQ5RDVBMCAvKiBVSVByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxQTJEOTBEMzEyODFDOTY2MDAxRUI5NjIgLyogUGx1Z2luUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUE0NzkyMzEyQTU5
RkQ5MDA4MjM2QzMgLyogUGx1Z2luUHJvY2Vzc01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFB
N0UzNzc4MThFNEE0RkUwMDNEMEZGRiAvKiBXS1NjcmlwdE1lc3NhZ2UubW0gaW4gU291cmNlcyAq
LywKQEAgLTg5ODQsNyArODk3MSw2IEBACiAJCQkJMEZDQjRFNTAxOEJCRTA0NDAwMEZDRkM5IC8q
IFdLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBQzEzMzY3
MTg1NjVCNTcwMEYzRUMwNSAvKiBVc2VyRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTJE
OTIyMTEyODFEQzFCMDAxRUI5NjIgLyogUGx1Z2luUHJveHlNYWMubW0gaW4gU291cmNlcyAqLywK
LQkJCQk3NTU0MjJDNDE4MDYyQkY5MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQThFRkE3MDEyNTJCODQxMDBGNzA2N0YgLyogUGx1
Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzVBOEQyRDgx
ODdEMzA0MDAwQzM5QzlFIC8qIFdLU2Vzc2lvblJlZi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkz
NzFBMTk0MTE4MjREMjkzMDBGMzJBNUUgLyogV0tOU0RpY3Rpb25hcnkubW0gaW4gU291cmNlcyAq
LywKQEAgLTkxMzAsNiArOTExNiw3IEBACiAJCQkJQkMxMTFBNUUxMTJGNEZCQjAwMzM3QkFCIC8q
IFdlYkVkaXRvckNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTIzN0Y2MDEyNDQxQ0Ez
MDA3ODA0NzIgLyogV2ViRWRpdG9yQ2xpZW50TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1
NzU2MTMxMjZFMDEzODAwNkYwRjEyIC8qIEFQSUVycm9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTUxMEE5MzdBMTk3ODgxQzYwMDQ5RDVBMCAvKiBVSVByb2Nlc3NPcmlnaW5EYXRhTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzExMUFFMDExMkY1QkMyMDAz
MzdCQUIgLyogV2ViRXJyb3JzTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE3Mjg0NDgxOTU5
RjgwNDAwMDdCQ0U1IC8qIFNlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUFGQTNBQzgxOEU2MUM2MTAwM0NDQkFFIC8qIFdLVXNlckNvbnRlbnRDb250cm9sbGVy
Lm1tIGluIFNvdXJjZXMgKi8sCkBAIC05MTU0LDYgKzkxNDEsNyBAQAogCQkJCUNENzNCQTUzMTMx
QjY0NUIwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk3NTU0MjJCRDE4MDYyQkIyMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlDRDczQkE0RTEzMUFDREI3MDBFRURFRDIgLyogV2ViRnVsbFNj
cmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTEwQTkz
NjgxOTc4N0Y5MTAwNDlENUEwIC8qIENoaWxkUHJvY2Vzc09yaWdpbkRhdGFNYW5hZ2VyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTFBNDIyRjhFMThCMjlDNjQwMEQ4Q0Q5NiAvKiBIaXN0b3J5Q2xp
ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUZCMDBBQzgxODVGNzY0NjAwMTkxNDJFIC8qIFdL
V2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNENkY3NUY0
MTMxQjY2RDAwMEQ2QjIxRSAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtOTI1Niw3ICs5MjQ0LDYgQEAKIAkJCQkxQTAwMkQ0ODE5NkIzNDVEMDBCOUFE
NDQgLyogU2Vzc2lvblN0YXRlQ29kaW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMzMDY4MjUx
MjVBNkI5NDAwRTcxMjc4IC8qIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUY3NTA2QjAxODU5MTYyQzAwRUMwRkY3IC8qIFdLV2ViUHJvY2Vzc1Bs
dWdJblNjcmlwdFdvcmxkLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNzVFNzQ5RUIxODBEQkI5ODAw
MDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTEyMTI3QzMxOTA4MjM5QTAwREFGMzVDIC8qIFdlYlBhc3RlYm9h
cmRPdmVycmlkZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMzMDY2QkUxMjVBNDQyMTAwRTcx
Mjc4IC8qIFdlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkMxMTFCMTExMTJGNUU0RjAwMzM3QkFCIC8qIFdlYlByb2Nlc3NQcm94eS5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTkzNDksNyArOTMzNiw2IEBACiAJCQkJMUFFNTJGOTExOTIwMURBNzAwQTFGQTM3
IC8qIEFQSUNvbnRleHRDb25maWd1cmF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzMDkz
NDVBMTMxNUI5OTgwMDk3QTdCQyAvKiBXS0Nvb2tpZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTEyRjU4RjkxMkE4OEE1NDAwNjI5NTMwIC8qIFdLQ3JlZGVudGlhbC5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQk3NTlDQ0Q1ODE4MDhGMTY0MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTVCMUM1MDE4
OTg2MDZGMDA0RkNGOUIgLyogV0tOYXZpZ2F0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0
MDc1RjcxMjRGRjAyNzAwNjhGMjBBIC8qIFdLRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
NjJBNzY2MTEyQjFBQkVEMDAwNUYxQjYgLyogV0tEYXRhYmFzZU1hbmFnZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEv
V2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Pcmln
aW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDIwNjI0My4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09y
aWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTAz
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiV2ViT3JpZ2luRGF0YU1hbmFnZXIuaCIKLQotI2luY2x1ZGUgIkNoaWxkUHJvY2Vzcy5oIgot
I2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgotI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVu
dENvZGVycy5oIgotI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCIKLSNp
bmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxX
ZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdp
bkhhc2guaD4KLQotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY29uc3QgY2hhciogV2ViT3JpZ2luRGF0
YU1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKCkKLXsKLSAgICByZXR1cm4gIldlYk9yaWdpbkRhdGFN
YW5hZ2VyIjsKLX0KLQotV2ViT3JpZ2luRGF0YU1hbmFnZXI6OldlYk9yaWdpbkRhdGFNYW5hZ2Vy
KENoaWxkUHJvY2VzcyogY2hpbGRQcm9jZXNzKQotICAgIDogbV9jaGlsZFByb2Nlc3MoY2hpbGRQ
cm9jZXNzKQotewotICAgIG1fY2hpbGRQcm9jZXNzLT5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsK
LX0KLQotdm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlcjo6Z2V0T3JpZ2lucyhXS09yaWdpbkRhdGFU
eXBlcywgdWludDY0X3QgY2FsbGJhY2tJRCkKLXsKLSAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0
eU9yaWdpbj4+IG9yaWdpbnM7Ci0KLSAgICAvLyBGSVhNRTogcG9wdWxhdGUgb3JpZ2lucwotCi0g
ICAgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4gaWRlbnRpZmllcnM7Ci0gICAgaWRlbnRpZmll
cnMucmVzZXJ2ZUNhcGFjaXR5KG9yaWdpbnMuc2l6ZSgpKTsKLQotICAgIEhhc2hTZXQ8UmVmUHRy
PFNlY3VyaXR5T3JpZ2luPj46Oml0ZXJhdG9yIGVuZCA9IG9yaWdpbnMuZW5kKCk7Ci0gICAgSGFz
aFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+Pjo6aXRlcmF0b3IgaSA9IG9yaWdpbnMuYmVnaW4o
KTsKLSAgICBmb3IgKDsgaSAhPSBlbmQ7ICsraSkgewotICAgICAgICBSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+IG9yaWdpbiA9ICppOwotCi0gICAgICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW5E
YXRhOwotICAgICAgICBvcmlnaW5EYXRhLnByb3RvY29sID0gb3JpZ2luLT5wcm90b2NvbCgpOwot
ICAgICAgICBvcmlnaW5EYXRhLmhvc3QgPSBvcmlnaW4tPmhvc3QoKTsKLSAgICAgICAgb3JpZ2lu
RGF0YS5wb3J0ID0gb3JpZ2luLT5wb3J0KCk7Ci0KLSAgICAgICAgaWRlbnRpZmllcnMudW5jaGVj
a2VkQXBwZW5kKG9yaWdpbkRhdGEpOwotICAgIH0KLQotICAgIG1fY2hpbGRQcm9jZXNzLT5zZW5k
KE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpEaWRHZXRPcmlnaW5zKGlkZW50
aWZpZXJzLCBjYWxsYmFja0lEKSwgMCk7Ci19Ci0KLXZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXI6
OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV0tPcmlnaW5EYXRhVHlwZXMsIGNvbnN0IFNlY3VyaXR5
T3JpZ2luRGF0YSYgb3JpZ2luRGF0YSkKLXsKLSAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9y
aWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUob3JpZ2luRGF0YS5wcm90b2NvbCwgb3JpZ2lu
RGF0YS5ob3N0LCBvcmlnaW5EYXRhLnBvcnQpOwotICAgIGlmICghb3JpZ2luKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICAvLyBGSVhNRTogZGVsZXRlIGVudHJpZXMgZm9yIG9yaWdpbgotfQotCi12
b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyOjpkZWxldGVBbGxFbnRyaWVzKFdLT3JpZ2luRGF0YVR5
cGVzKQotewotICAgIC8vIEZJWE1FOiBkZWxldGUgZW50cmllcwotfQotCi12b2lkIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyOjpzdGFydE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhVHlwZXMpCi17
Ci0gICAgLy8gRklYTUU6IHN0YXJ0IG9ic2VydmluZyBjaGFuZ2VzCi19Ci0KLXZvaWQgV2ViT3Jp
Z2luRGF0YU1hbmFnZXI6OnN0b3BPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YVR5cGVzKQot
ewotICAgIC8vIEZJWE1FOiBzdG9wIG9ic2VydmluZyBjaGFuZ2VzCi19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5E
YXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09y
aWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggY2IxZGJkYi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09y
aWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDYzICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYk9yaWdpbkRhdGFNYW5hZ2VyX2gK
LSNkZWZpbmUgV2ViT3JpZ2luRGF0YU1hbmFnZXJfaAotCi0jaW5jbHVkZSAiTWVzc2FnZVJlY2Vp
dmVyLmgiCi0jaW5jbHVkZSAiV0tPcmlnaW5EYXRhTWFuYWdlci5oIgotI2luY2x1ZGUgIldlYlBy
b2Nlc3NTdXBwbGVtZW50LmgiCi0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBD
aGlsZFByb2Nlc3M7Ci1zdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwotCi1jbGFzcyBXZWJPcmln
aW5EYXRhTWFuYWdlciA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVudCwgcHVibGljIElQQzo6
TWVzc2FnZVJlY2VpdmVyIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJPcmlnaW5EYXRh
TWFuYWdlcik7Ci1wdWJsaWM6Ci0gICAgV2ViT3JpZ2luRGF0YU1hbmFnZXIoQ2hpbGRQcm9jZXNz
Kik7Ci0KLSAgICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsKLQotICAgIHZv
aWQgZGVsZXRlQWxsRW50cmllcyhXS09yaWdpbkRhdGFUeXBlcyk7Ci0KLXByaXZhdGU6Ci0gICAg
dm9pZCBnZXRPcmlnaW5zKFdLT3JpZ2luRGF0YVR5cGVzLCB1aW50NjRfdCk7Ci0gICAgdm9pZCBk
ZWxldGVFbnRyaWVzRm9yT3JpZ2luKFdLT3JpZ2luRGF0YVR5cGVzLCBjb25zdCBTZWN1cml0eU9y
aWdpbkRhdGEmKTsKLSAgICB2b2lkIHN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFU
eXBlcyk7Ci0gICAgdm9pZCBzdG9wT2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFUeXBlcyk7
Ci0KLSAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJp
ZGU7Ci0KLSAgICBDaGlsZFByb2Nlc3MqIG1fY2hpbGRQcm9jZXNzOwotfTsKLQotfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBXZWJPcmlnaW5EYXRhTWFuYWdlcl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1h
bmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEv
V2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDY5NGU2MzguLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9P
cmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyAvZGV2L251bGwK
QEAgLTEsMjkgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0j
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECi0jIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECi0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSMgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgotIyBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLAotIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
Ci1tZXNzYWdlcyAtPiBXZWJPcmlnaW5EYXRhTWFuYWdlciB7Ci0gICAgdm9pZCBHZXRPcmlnaW5z
KHVpbnQzMl90IHR5cGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQotICAgIHZvaWQgRGVsZXRlRW50
cmllc0Zvck9yaWdpbih1aW50MzJfdCB0eXBlcywgV2ViS2l0OjpTZWN1cml0eU9yaWdpbkRhdGEg
b3JpZ2luSWRlbnRpZmllcikKLSAgICB2b2lkIERlbGV0ZUFsbEVudHJpZXModWludDMyX3QgdHlw
ZXMpCi0gICAgdm9pZCBTdGFydE9ic2VydmluZ0NoYW5nZXModWludDMyX3QgdHlwZXMpCi0gICAg
dm9pZCBTdG9wT2JzZXJ2aW5nQ2hhbmdlcyh1aW50MzJfdCB0eXBlcykKLX0K
</data>

          </attachment>
      

    </bug>

</bugzilla>