<?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>221122</bug_id>
          
          <creation_ts>2021-01-28 23:38:27 -0800</creation_ts>
          <short_desc>Remove unused GraphicsContextGL::Destination enum class</short_desc>
          <delta_ts>2021-01-29 13:27:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>kbr</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1723626</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-01-28 23:38:27 -0800</bug_when>
    <thetext>It was used by Chromium port.
Bug 45939 – Add entry points to GraphicsContext3D needed for Chromium compositor port</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723628</commentid>
    <comment_count>1</comment_count>
      <attachid>418706</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-01-28 23:43:05 -0800</bug_when>
    <thetext>Created attachment 418706
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723632</commentid>
    <comment_count>2</comment_count>
      <attachid>418708</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-01-28 23:50:17 -0800</bug_when>
    <thetext>Created attachment 418708
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723633</commentid>
    <comment_count>3</comment_count>
      <attachid>418709</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-01-28 23:56:21 -0800</bug_when>
    <thetext>Created attachment 418709
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723820</commentid>
    <comment_count>4</comment_count>
      <attachid>418753</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-01-29 12:03:14 -0800</bug_when>
    <thetext>Created attachment 418753
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723837</commentid>
    <comment_count>5</comment_count>
      <attachid>418753</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2021-01-29 12:48:38 -0800</bug_when>
    <thetext>Comment on attachment 418753
Patch

r+ once the style issues are addressed and the EWS is happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723850</commentid>
    <comment_count>6</comment_count>
      <attachid>418764</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-01-29 13:24:44 -0800</bug_when>
    <thetext>Created attachment 418764
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723852</commentid>
    <comment_count>7</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-01-29 13:26:25 -0800</bug_when>
    <thetext>Committed r272075: &lt;https://trac.webkit.org/changeset/272075&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723853</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-29 13:27:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/73769262&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418706</attachid>
            <date>2021-01-28 23:43:05 -0800</date>
            <delta_ts>2021-01-28 23:52:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221122-20210129164304.patch</filename>
            <type>text/plain</type>
            <size>33264</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMDQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzE4ZDQwNmI5YWFkYWI3
ZGNhZWFhNTE4Y2JjZGFiZTU5OWQ4ZDAxMC4uYWYzZjk5NzZlNDNmYWFiZjAwYWY2MzdlNDZhMjc2
MDJhNDNmMDdmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTAxLTI4ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFJlbW92ZSB1
bnVzZWQgR3JhcGhpY3NDb250ZXh0R0w6OkRlc3RpbmF0aW9uIGVudW0gY2xhc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTEyMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IHdhcyB1c2VkIGJ5IENo
cm9taXVtIHBvcnQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHRHTC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4
dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
bmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xBTkdMRUxheWVyLmNwcDoKKyAgICAgICAgKE5pY29z
aWE6OkdDR0xBTkdMRUxheWVyOjpHQ0dMQU5HTEVMYXllcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xBTkdMRUxheWVyLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xMYXllci5jcHA6
CisgICAgICAgIChOaWNvc2lhOjpHQ0dMTGF5ZXI6OkdDR0xMYXllcik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xMYXllci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTEVTLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0xQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMUHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xQcml2YXRlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xQ
cml2YXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29u
dGV4dEdMVGV4dHVyZU1hcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXI6OlRleHR1cmVNYXBwZXJH
Q0dMUGxhdGZvcm1MYXllcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5oOgorCiAyMDIxLTAxLTI4ICBNeWxlcyBDLiBN
YXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgTWlub3IgY2xlYW51cCBp
biBDU1NGb250RmFjZVNldENsaWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmgKaW5kZXggMmFkMTQ3ZjZlYWI5NGNmM2JkZjAz
YmM2ZmRjMjExN2Q0YWUwMDUwNC4uNzNhYjZjOWU2Y2FlNDgzODNmMzM1NTIzMmExMmFiNzJhNDc4
OTEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0R0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHRHTC5oCkBAIC03NDksMTEgKzc0OSw2IEBAIHB1YmxpYzoKICAgICAgICAgTnVt
Rm9ybWF0cwogICAgIH07CiAKLSAgICBlbnVtIGNsYXNzIERlc3RpbmF0aW9uIDogdWludDhfdCB7
Ci0gICAgICAgIE9mZnNjcmVlbiwKLSAgICAgICAgRGlyZWN0bHlUb0hvc3RXaW5kb3csCi0gICAg
fTsKLQogICAgIGVudW0gY2xhc3MgQ2hhbm5lbEJpdHMgOiB1aW50OF90IHsKICAgICAgICAgUmVk
ID0gMSwKICAgICAgICAgR3JlZW4gPSAyLApAQCAtOTE1LDcgKzkxMCw3IEBAIHB1YmxpYzoKICAg
ICAvLyBIb3N0V2luZG93IG1pZ2h0IGFmZmVjdCB0aGUgZGVjaXNpb24gd2hpY2ggYmFja2VuZCBp
cyB0byBiZSB1c2VkLgogICAgIHN0YXRpYyBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0w+IGNyZWF0
ZShjb25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmLCBIb3N0V2luZG93Kik7CiAKLSAg
ICBHcmFwaGljc0NvbnRleHRHTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMsIERlc3RpbmF0
aW9uID0gRGVzdGluYXRpb246Ok9mZnNjcmVlbiwgR3JhcGhpY3NDb250ZXh0R0wqIHNoYXJlZENv
bnRleHQgPSBudWxscHRyKTsKKyAgICBHcmFwaGljc0NvbnRleHRHTChHcmFwaGljc0NvbnRleHRH
TEF0dHJpYnV0ZXMsIEdyYXBoaWNzQ29udGV4dEdMKiBzaGFyZWRDb250ZXh0ID0gbnVsbHB0cik7
CiAgICAgdmlydHVhbCB+R3JhcGhpY3NDb250ZXh0R0woKSA9IGRlZmF1bHQ7CiAKICAgICB2b2lk
IGFkZENsaWVudChDbGllbnQmIGNsaWVudCkgeyBtX2NsaWVudHMuYWRkKCZjbGllbnQpOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQppbmRleCAzNGFmYzgyMGIy
ZGI4Mjg4ZGNmZTE3MWQ4NjQ4MzY4NzExNjk4MmYyLi44NDJmYjVmYWRhMTA0YzkwNzIzOTM4MDNh
NDU5MmNjYTJhYWVjYTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29j
b2EubW0KQEAgLTEyOCwxMiArMTI4LDggQEAgc3RhdGljIGJvb2wgbmVlZHNFQUdMT25NYWMoKQog
I2VuZGlmCiAKIAotUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRycywgSG9z
dFdpbmRvdyogaG9zdFdpbmRvdywgR3JhcGhpY3NDb250ZXh0R0w6OkRlc3RpbmF0aW9uIGRlc3Rp
bmF0aW9uKQorUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRH
TE9wZW5HTDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRycywgSG9zdFdp
bmRvdyogaG9zdFdpbmRvdykKIHsKLSAgICAvLyBUaGlzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3Qg
Y3VycmVudGx5IHN1cHBvcnQgcmVuZGVyaW5nIGRpcmVjdGx5IHRvIHRoZSBIb3N0V2luZG93Lgot
ICAgIGlmIChkZXN0aW5hdGlvbiA9PSBEZXN0aW5hdGlvbjo6RGlyZWN0bHlUb0hvc3RXaW5kb3cp
Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotCiAgICAgLy8gTWFrZSBzcGFjZSBmb3IgdGhlIGlu
Y29taW5nIGNvbnRleHQgaWYgd2UncmUgZnVsbC4KICAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5yZWN5Y2xlQ29udGV4dElmTmVjZXNzYXJ5KCk7CiAg
ICAgaWYgKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmhh
c1Rvb01hbnlDb250ZXh0cygpKQpAQCAtMTY1LDcgKzE2MSw3IEBAIFJlZjxHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTD4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZUZvckdQVVByb2Nlc3Mo
Y29uc3QKIH0KIAogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmRvdyosIEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMKiBzaGFyZWRDb250ZXh0LCBHcmFwaGljc0NvbnRleHRHTElPU3Vy
ZmFjZVN3YXBDaGFpbiogc3dhcENoYWluKQotICAgIDogR3JhcGhpY3NDb250ZXh0R0woYXR0cnMs
IERlc3RpbmF0aW9uOjpPZmZzY3JlZW4sIHNoYXJlZENvbnRleHQpCisgICAgOiBHcmFwaGljc0Nv
bnRleHRHTChhdHRycywgc2hhcmVkQ29udGV4dCkKIHsKICAgICBtX2lzRm9yV2ViR0wyID0gYXR0
cnMud2ViR0xWZXJzaW9uID09IEdyYXBoaWNzQ29udGV4dEdMV2ViR0xWZXJzaW9uOjpXZWJHTDI7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEv
dGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTEFOR0xFTGF5ZXIuY3BwCmluZGV4
IDgxYTk1MjY5ZGU1N2UzNGNmZGRkNDAzM2Q3NDY2NmZmMTIyNjc2MjkuLjhkZjlmNzliY2MyZWJi
MDVhNzhiZTgzOWFiZWEwNjVlOWFiZmFjOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmlj
b3NpYUdDR0xBTkdMRUxheWVyLmNwcApAQCAtMTY2LDE3ICsxNjYsMTAgQEAgUGxhdGZvcm1HcmFw
aGljc0NvbnRleHRHTCBHQ0dMQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjpwbGF0Zm9ybUNvbnRl
eHQoKSBjb25zdAogICAgIHJldHVybiBtX2NvbnRleHQ7CiB9CiAKLUdDR0xBTkdMRUxheWVyOjpH
Q0dMQU5HTEVMYXllcihHcmFwaGljc0NvbnRleHRHTE9wZW5HTCYgY29udGV4dCwgR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0w6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKQorR0NHTEFOR0xFTGF5ZXI6
OkdDR0xBTkdMRUxheWVyKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMJiBjb250ZXh0KQogICAgIDog
R0NHTExheWVyKGNvbnRleHQpCisgICAgLCBtX2FuZ2xlQ29udGV4dChBTkdMRUNvbnRleHQ6OmNy
ZWF0ZUNvbnRleHQoKSkKIHsKLSAgICBzd2l0Y2ggKGRlc3RpbmF0aW9uKSB7Ci0gICAgY2FzZSBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTDo6RGVzdGluYXRpb246Ok9mZnNjcmVlbjoKLSAgICAgICAg
bV9hbmdsZUNvbnRleHQgPSBBTkdMRUNvbnRleHQ6OmNyZWF0ZUNvbnRleHQoKTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6RGVzdGluYXRpb246OkRp
cmVjdGx5VG9Ib3N0V2luZG93OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgfQogfQogCiBHQ0dMQU5HTEVMYXllcjo6fkdDR0xBTkdMRUxheWVyKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4
bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xBTkdMRUxheWVyLmgKaW5kZXggNzM4OGU1
N2MxZjgxMjkxZDRjNTVhMGYwMjEzM2U3MWNjYTY5NWI3YS4uN2YyMWRhNTkwODFhOGE4ZDNkNjU2
MmRmMzgyNDU3ZWIyMTZlNmQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xBTkdMRUxheWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xB
TkdMRUxheWVyLmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogICAgICAgICBFR0xTdXJmYWNl
IG1fc3VyZmFjZSB7IG51bGxwdHIgfTsKICAgICB9OwogCi0gICAgR0NHTEFOR0xFTGF5ZXIoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wmLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRH
TE9wZW5HTDo6RGVzdGluYXRpb24pOworICAgIEdDR0xBTkdMRUxheWVyKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMJik7CiAgICAgdmlydHVhbCB+R0NHTEFOR0xFTGF5ZXIoKTsKIAog
ICAgIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTExh
eWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFw
L05pY29zaWFHQ0dMTGF5ZXIuY3BwCmluZGV4IDgzNjE4MzczOGE2ZjFhZTJmMzA1NmIyY2E5ODdk
MTNmZWNkZDg2MzUuLjQ5YWFmMjlmZWMxOGNiMjU2YjQ2MmMyNjIyMjQ0YmUxMGRiOGMwZTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFw
L05pY29zaWFHQ0dMTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuY3BwCkBAIC01MywxOCArNTMsMTEg
QEAgR0NHTExheWVyOjpHQ0dMTGF5ZXIoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wmIGNvbnRleHQp
CiB7CiB9CiAKLUdDR0xMYXllcjo6R0NHTExheWVyKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMJiBj
b250ZXh0LCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24p
CitHQ0dMTGF5ZXI6OkdDR0xMYXllcihHcmFwaGljc0NvbnRleHRHTE9wZW5HTCYgY29udGV4dCkK
ICAgICA6IG1fY29udGV4dChjb250ZXh0KQogICAgICwgbV9jb250ZW50TGF5ZXIoTmljb3NpYTo6
Q29udGVudExheWVyOjpjcmVhdGUoTmljb3NpYTo6Q29udGVudExheWVyVGV4dHVyZU1hcHBlcklt
cGw6OmNyZWF0ZUZhY3RvcnkoKnRoaXMpKSkKIHsKLSAgICBzd2l0Y2ggKGRlc3RpbmF0aW9uKSB7
Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6RGVzdGluYXRpb246Ok9mZnNjcmVl
bjoKLSAgICAgICAgbV9nbENvbnRleHQgPSBHTENvbnRleHQ6OmNyZWF0ZU9mZnNjcmVlbkNvbnRl
eHQoJlBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheUZvckNvbXBvc2l0aW5nKCkpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpEZXN0aW5hdGlv
bjo6RGlyZWN0bHlUb0hvc3RXaW5kb3c6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgICAgICBicmVhazsKLSAgICB9CisgICAgbV9nbENvbnRleHQgPSBHTENvbnRleHQ6OmNyZWF0
ZU9mZnNjcmVlbkNvbnRleHQoJlBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheUZvckNvbXBv
c2l0aW5nKCkpOwogfQogCiBHQ0dMTGF5ZXI6On5HQ0dMTGF5ZXIoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xM
YXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAv
Tmljb3NpYUdDR0xMYXllci5oCmluZGV4IGFiZjA0YmI3ZWZlYWI1NmIxOTA2YzA4YzI3ZDg1MGZm
NjA2NjBjOTMuLjI3NTdlNDZiZTBkYTM2NDY4NThjMDIxY2IwNmE2ODdmNzBjMjU0NmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05p
Y29zaWFHQ0dMTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9u
aWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTExheWVyLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3Mg
R0NHTExheWVyIDogcHVibGljIENvbnRlbnRMYXllclRleHR1cmVNYXBwZXJJbXBsOjpDbGllbnQg
ewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIGV4cGxpY2l0IEdD
R0xMYXllcihXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTCYpOwotICAgIEdDR0xMYXll
cihXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTCYsIFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMOjpEZXN0aW5hdGlvbik7CisgICAgR0NHTExheWVyKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMJik7CiAKICAgICB2aXJ0dWFsIH5HQ0dMTGF5ZXIoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaAppbmRleCA4ZDdiYjM1MGZhYmQwOGZhODE5Njhi
YTQ5NGNhY2NmYjdjMDlmZjhhLi5lMGUzOWFjZDUyOGYwYzg3ZjI0OWE3NjkwYTQxMjMzNzA2OTY5
N2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaApAQCAtOTYsNyArOTYsNyBA
QCBjbGFzcyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTFByaXZhdGU7CiBjbGFzcyBXRUJDT1JFX0VY
UE9SVCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCBmaW5hbCA6IHB1YmxpYyBHcmFwaGljc0NvbnRl
eHRHTAogewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVu
R0w+IGNyZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBEZXN0
aW5hdGlvbiA9IERlc3RpbmF0aW9uOjpPZmZzY3JlZW4pOworICAgIHN0YXRpYyBSZWZQdHI8R3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0w+IGNyZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMs
IEhvc3RXaW5kb3cqKTsKICAgICB2aXJ0dWFsIH5HcmFwaGljc0NvbnRleHRHTE9wZW5HTCgpOwog
CiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC01MTMsNyArNTEzLDcgQEAgcHJpdmF0ZToKICNpZiBQ
TEFURk9STShDT0NPQSkKICAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRl
eHRHTEF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogc2hh
cmVkQ29udGV4dCA9IG51bGxwdHIsIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWlu
KiA9IG51bGxwdHIpOwogI2Vsc2UKLSAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGlj
c0NvbnRleHRHTEF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBEZXN0aW5hdGlvbiA9IERlc3RpbmF0
aW9uOjpPZmZzY3JlZW4sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBzaGFyZWRDb250ZXh0ID0g
bnVsbHB0cik7CisgICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xB
dHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIHNoYXJlZENv
bnRleHQgPSBudWxscHRyKTsKICNlbmRpZgogCiAgICAgLy8gQ2FsbGVkIG9uY2UgYnkgYWxsIHRo
ZSBwdWJsaWMgZW50cnkgcG9pbnRzIHRoYXQgZXZlbnR1YWxseSBjYWxsIE9wZW5HTC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHRHTE9wZW5HTEVTLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTEVTLmNwcAppbmRleCBiYWFiZGUwNzkxNDY1ZjNm
ODNlNjZmZjI5MGVhMTRlYzE4NmIyN2Q0Li41YzllZmIyZWE0OTZiMmJkNWI0ZGJlYzcxNTRlYjZm
MjQ3ZWU5ODgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xFUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMRVMuY3BwCkBA
IC0yNzYsMTIgKzI3Niw4IEBAIEV4dGVuc2lvbnNHTCYgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6
OmdldEV4dGVuc2lvbnMoKQogI2VuZGlmCiAKICNpZiBQTEFURk9STShXSU4pICYmIFVTRShDQSkK
LVJlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6
OmNyZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRv
dyogaG9zdFdpbmRvdywgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkRlc3RpbmF0aW9uIGRlc3Rp
bmF0aW9uKQorUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRH
TE9wZW5HTDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBI
b3N0V2luZG93KiBob3N0V2luZG93KQogewotICAgIC8vIFRoaXMgaW1wbGVtZW50YXRpb24gZG9l
c24ndCBjdXJyZW50bHkgc3VwcG9ydCByZW5kZXJpbmcgZGlyZWN0bHkgdG8gdGhlIEhvc3RXaW5k
b3cuCi0gICAgaWYgKGRlc3RpbmF0aW9uID09IERlc3RpbmF0aW9uOjpEaXJlY3RseVRvSG9zdFdp
bmRvdykKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgCiAgICAgc3RhdGljIGJvb2wgaW5p
dGlhbGl6ZWQgPSBmYWxzZTsKICAgICBzdGF0aWMgYm9vbCBzdWNjZXNzID0gdHJ1ZTsKICAgICBp
ZiAoIWluaXRpYWxpemVkKSB7CkBAIC0yOTYsMTAgKzI5MiwxMCBAQCBSZWZQdHI8R3JhcGhpY3ND
b250ZXh0R0xPcGVuR0w+IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoR3JhcGhpY3ND
b250ZXh0RwogICAgIHJldHVybiBhZG9wdFJlZihuZXcgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wo
YXR0cmlidXRlcywgaG9zdFdpbmRvdywgcmVuZGVyU3R5bGUpKTsKIH0KIAotR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0
cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6
OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogc2hhcmVk
Q29udGV4dCkKLSAgICA6IEdyYXBoaWNzQ29udGV4dEdMKGF0dHJpYnV0ZXMsIGRlc3RpbmF0aW9u
LCBzaGFyZWRDb250ZXh0KQorR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2lu
ZG93KiwgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIHNoYXJlZENvbnRleHQpCisgICAgOiBHcmFw
aGljc0NvbnRleHRHTChhdHRyaWJ1dGVzLCBzaGFyZWRDb250ZXh0KQogICAgICwgbV9jb21waWxl
cihpc0dMRVMyQ29tcGxpYW50KCkgPyBTSF9FU1NMX09VVFBVVCA6IFNIX0dMU0xfQ09NUEFUSUJJ
TElUWV9PVVRQVVQpCi0gICAgLCBtX3ByaXZhdGUobWFrZVVuaXF1ZTxHcmFwaGljc0NvbnRleHRH
TE9wZW5HTFByaXZhdGU+KHRoaXMsIGRlc3RpbmF0aW9uKSkKKyAgICAsIG1fcHJpdmF0ZShtYWtl
VW5pcXVlPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0ZT4odGhpcykpCiB7CiAgICAgQVNT
RVJUX1VOVVNFRChzaGFyZWRDb250ZXh0LCAhc2hhcmVkQ29udGV4dCk7CiAgICAgaWYgKCFtYWtl
Q29udGV4dEN1cnJlbnQoKSkKQEAgLTMwOSwzMyArMzA1LDMxIEBAIEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0
ZXMgYXR0CiAgICAgdmFsaWRhdGVBdHRyaWJ1dGVzKCk7CiAgICAgYXR0cmlidXRlcyA9IGNvbnRl
eHRBdHRyaWJ1dGVzKCk7IC8vIFRoZXkgbWF5IGhhdmUgY2hhbmdlZCBkdXJpbmcgdmFsaWRhdGlv
bi4KIAotICAgIGlmIChkZXN0aW5hdGlvbiA9PSBEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuKSB7Ci0g
ICAgICAgIC8vIENyZWF0ZSBhIHRleHR1cmUgdG8gcmVuZGVyIGludG8uCi0gICAgICAgIDo6Z2xH
ZW5UZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKLSAgICAgICAgOjpnbEJpbmRUZXh0dXJlKEdMX1RF
WFRVUkVfMkQsIG1fdGV4dHVyZSk7Ci0gICAgICAgIDo6Z2xUZXhQYXJhbWV0ZXJmKEdMX1RFWFRV
UkVfMkQsIEdMX1RFWFRVUkVfTUFHX0ZJTFRFUiwgR0xfTElORUFSKTsKLSAgICAgICAgOjpnbFRl
eFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NSU5fRklMVEVSLCBHTF9MSU5F
QVIpOwotICAgICAgICA6OmdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJF
X1dSQVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7Ci0gICAgICAgIDo6Z2xUZXhQYXJhbWV0ZXJpKEdM
X1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9ULCBHTF9DTEFNUF9UT19FREdFKTsKLSAgICAg
ICAgOjpnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIDApOworICAgIC8vIENyZWF0ZSBhIHRl
eHR1cmUgdG8gcmVuZGVyIGludG8uCisgICAgOjpnbEdlblRleHR1cmVzKDEsICZtX3RleHR1cmUp
OworICAgIDo6Z2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBtX3RleHR1cmUpOworICAgIDo6
Z2xUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfTUFHX0ZJTFRFUiwgR0xf
TElORUFSKTsKKyAgICA6OmdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhUVVJF
X01JTl9GSUxURVIsIEdMX0xJTkVBUik7CisgICAgOjpnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVS
RV8yRCwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0UpOworICAgIDo6Z2xUZXhQ
YXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9ULCBHTF9DTEFNUF9UT19F
REdFKTsKKyAgICA6OmdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgMCk7CiAgICAgICAgIAot
ICAgICAgICAvLyBDcmVhdGUgYW4gRkJPLgotICAgICAgICA6OmdsR2VuRnJhbWVidWZmZXJzKDEs
ICZtX2Zibyk7Ci0gICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1f
ZmJvKTsKKyAgICAvLyBDcmVhdGUgYW4gRkJPLgorICAgIDo6Z2xHZW5GcmFtZWJ1ZmZlcnMoMSwg
Jm1fZmJvKTsKKyAgICA6OmdsQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX2Zibyk7
CiAgICAgICAgIAotICAgICAgICBtX3N0YXRlLmJvdW5kRHJhd0ZCTyA9IG1fc3RhdGUuYm91bmRS
ZWFkRmJvID0gbV9mYm87Ci0gICAgICAgIGlmICghYXR0cmlidXRlcy5hbnRpYWxpYXMgJiYgKGF0
dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKSkKLSAgICAgICAgICAgIDo6Z2xH
ZW5SZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7CisgICAgbV9zdGF0ZS5i
b3VuZERyYXdGQk8gPSBtX3N0YXRlLmJvdW5kUmVhZEZibyA9IG1fZmJvOworICAgIGlmICghYXR0
cmlidXRlcy5hbnRpYWxpYXMgJiYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRl
cHRoKSkKKyAgICAgICAgOjpnbEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhTdGVuY2lsQnVm
ZmVyKTsKICAgICAgICAgCi0gICAgICAgIC8vIENyZWF0ZSBhIG11bHRpc2FtcGxlIEZCTy4KLSAg
ICAgICAgaWYgKGF0dHJpYnV0ZXMuYW50aWFsaWFzKSB7Ci0gICAgICAgICAgICA6OmdsR2VuRnJh
bWVidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRkJPKTsKLSAgICAgICAgICAgIDo6Z2xCaW5kRnJh
bWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOwotICAgICAgICAgICAg
bV9zdGF0ZS5ib3VuZERyYXdGQk8gPSBtX3N0YXRlLmJvdW5kUmVhZEZCTyA9IG1fbXVsdGlzYW1w
bGVGQk87Ci0gICAgICAgICAgICA6OmdsR2VuUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBs
ZUNvbG9yQnVmZmVyKTsKLSAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwgfHwgYXR0
cmlidXRlcy5kZXB0aCkKLSAgICAgICAgICAgICAgICA6OmdsR2VuUmVuZGVyYnVmZmVycygxLCAm
bV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZlcik7Ci0gICAgICAgIH0KKyAgICAvLyBDcmVh
dGUgYSBtdWx0aXNhbXBsZSBGQk8uCisgICAgaWYgKGF0dHJpYnV0ZXMuYW50aWFsaWFzKSB7Cisg
ICAgICAgIDo6Z2xHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOworICAgICAg
ICA6OmdsQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX211bHRpc2FtcGxlRkJPKTsK
KyAgICAgICAgbV9zdGF0ZS5ib3VuZERyYXdGQk8gPSBtX3N0YXRlLmJvdW5kUmVhZEZCTyA9IG1f
bXVsdGlzYW1wbGVGQk87CisgICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRp
c2FtcGxlQ29sb3JCdWZmZXIpOworICAgICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0
dHJpYnV0ZXMuZGVwdGgpCisgICAgICAgICAgICA6OmdsR2VuUmVuZGVyYnVmZmVycygxLCAmbV9t
dWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgfQogICAgIAogICAgIC8vIEFOR0xF
IGluaXRpYWxpemF0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xQ
cml2YXRlLmNwcAppbmRleCA1ODM3OTllYjMyNmZlNDEwYTZkMGRjNGY4Y2E4MmJkZWUwNDRmMjcy
Li5jNTIwOWZhZjA1ZTgzOWI5MDQxZDNkMjk0MDM5YWJjODViZDFjNmY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xQcml2YXRlLmNwcApAQCAtMjksMTYgKzI5LDkg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1HcmFwaGljc0NvbnRleHRHTE9wZW5HTFByaXZh
dGU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0ZShHcmFwaGljc0NvbnRleHRHTE9wZW5H
TCosIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbikKK0dy
YXBoaWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xQcml2
YXRlKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKikKIHsKLSAgICBzd2l0Y2ggKGRlc3RpbmF0aW9u
KSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6RGVzdGluYXRpb246Ok9mZnNj
cmVlbjoKLSAgICAgICAgbV9nbENvbnRleHQgPSBHTENvbnRleHQ6OmNyZWF0ZU9mZnNjcmVlbkNv
bnRleHQoJlBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheUZvckNvbXBvc2l0aW5nKCkpOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpEZXN0aW5h
dGlvbjo6RGlyZWN0bHlUb0hvc3RXaW5kb3c6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgICAgICBicmVhazsKLSAgICB9CisgICAgbV9nbENvbnRleHQgPSBHTENvbnRleHQ6OmNy
ZWF0ZU9mZnNjcmVlbkNvbnRleHQoJlBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheUZvckNv
bXBvc2l0aW5nKCkpOwogfQogCiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTFByaXZhdGU6On5HcmFw
aGljc0NvbnRleHRHTE9wZW5HTFByaXZhdGUoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0xQcml2YXRlLmgKaW5kZXggMWFmMmRkNmFkOWM4YTA1ZjQ4NTU4
ZjU5OTFiZTM0NDE1NzA3ZDNlNi4uYzkzOGRkZDJhODIxZjgzMDY1ZWIxNWI4OWVlYjA3OGI4MDMz
MTcyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTFByaXZhdGUuaApA
QCAtMzEsNyArMzEsNyBAQCBjbGFzcyBCaXRtYXBUZXh0dXJlR0w7CiBjbGFzcyBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTFByaXZhdGUgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgotICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0ZShHcmFwaGljc0NvbnRleHRH
TE9wZW5HTCosIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpEZXN0aW5hdGlvbik7CisgICAgR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0xQcml2YXRlKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKik7CiAg
ICAgfkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0ZSgpOwogICAgIGJvb2wgbWFrZUNvbnRl
eHRDdXJyZW50KCk7CiAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCBwbGF0Zm9ybUNvbnRl
eHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAK
aW5kZXggYzJmNGEyMzYxYTBhZjcxM2UxZTQ2ZjQwYTQxNmQ0YWNkYzBmNTI5Zi4uNTIzNjA1ZWRj
ODVkMGVkMmYzYzc1YTA0ZjQyZTU3YjgwNGI5OTVjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBo
aWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAKQEAgLTcwLDEyICs3MCw4IEBAIHN0YXRpYyBE
ZXF1ZTxHcmFwaGljc0NvbnRleHRHTE9wZW5HTCosIE1heEFjdGl2ZUNvbnRleHRzPiYgYWN0aXZl
Q29udGV4dHMoKQogICAgIHJldHVybiBzX2FjdGl2ZUNvbnRleHRzOwogfQogCi1SZWZQdHI8R3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0w+IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoR3Jh
cGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqIGhvc3RXaW5k
b3csIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbikKK1Jl
ZlB0cjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNy
ZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRvdyog
aG9zdFdpbmRvdykKIHsKLSAgICAvLyBUaGlzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgY3VycmVu
dGx5IHN1cHBvcnQgcmVuZGVyaW5nIGRpcmVjdGx5IHRvIHRoZSBIb3N0V2luZG93LgotICAgIGlm
IChkZXN0aW5hdGlvbiA9PSBEZXN0aW5hdGlvbjo6RGlyZWN0bHlUb0hvc3RXaW5kb3cpCi0gICAg
ICAgIHJldHVybiBudWxscHRyOwotCiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxz
ZTsKICAgICBzdGF0aWMgYm9vbCBzdWNjZXNzID0gdHJ1ZTsKICAgICBpZiAoIWluaXRpYWxpemVk
KSB7CkBAIC0xMTAsMTcgKzEwNiwxNyBAQCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0RwogfQogCiAj
aWYgVVNFKEFOR0xFKQotR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93
KiwgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBHcmFw
aGljc0NvbnRleHRHTE9wZW5HTCogc2hhcmVkQ29udGV4dCkKLSAgICA6IEdyYXBoaWNzQ29udGV4
dEdMKGF0dHJpYnV0ZXMsIGRlc3RpbmF0aW9uLCBzaGFyZWRDb250ZXh0KQorR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0
cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wq
IHNoYXJlZENvbnRleHQpCisgICAgOiBHcmFwaGljc0NvbnRleHRHTChhdHRyaWJ1dGVzLCBzaGFy
ZWRDb250ZXh0KQogewogICAgIEFTU0VSVF9VTlVTRUQoc2hhcmVkQ29udGV4dCwgIXNoYXJlZENv
bnRleHQpOwogI2lmIEVOQUJMRShXRUJHTDIpCiAgICAgbV9pc0ZvcldlYkdMMiA9IGF0dHJpYnV0
ZXMud2ViR0xWZXJzaW9uID09IEdyYXBoaWNzQ29udGV4dEdMV2ViR0xWZXJzaW9uOjpXZWJHTDI7
CiAjZW5kaWYKICNpZiBVU0UoTklDT1NJQSkKLSAgICBtX25pY29zaWFMYXllciA9IFdURjo6bWFr
ZVVuaXF1ZTxOaWNvc2lhOjpHQ0dMQU5HTEVMYXllcj4oKnRoaXMsIGRlc3RpbmF0aW9uKTsKKyAg
ICBtX25pY29zaWFMYXllciA9IFdURjo6bWFrZVVuaXF1ZTxOaWNvc2lhOjpHQ0dMQU5HTEVMYXll
cj4oKnRoaXMpOwogI2Vsc2UKLSAgICBtX3RleG1hcExheWVyID0gV1RGOjptYWtlVW5pcXVlPFRl
eHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcj4oKnRoaXMsIGRlc3RpbmF0aW9uKTsKKyAgICBt
X3RleG1hcExheWVyID0gV1RGOjptYWtlVW5pcXVlPFRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1M
YXllcj4oKnRoaXMpOwogI2VuZGlmCiAgICAgYm9vbCBzdWNjZXNzID0gbWFrZUNvbnRleHRDdXJy
ZW50KCk7CiAgICAgQVNTRVJUX1VOVVNFRChzdWNjZXNzLCBzdWNjZXNzKTsKQEAgLTEyOCw2OCAr
MTI0LDY2IEBAIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5H
TChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0CiAgICAgdmFsaWRhdGVBdHRyaWJ1dGVz
KCk7CiAgICAgYXR0cmlidXRlcyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7IC8vIFRoZXkgbWF5IGhh
dmUgY2hhbmdlZCBkdXJpbmcgdmFsaWRhdGlvbi4KIAotICAgIGlmIChkZXN0aW5hdGlvbiA9PSBE
ZXN0aW5hdGlvbjo6T2Zmc2NyZWVuKSB7Ci0gICAgICAgIEdMZW51bSB0ZXh0dXJlVGFyZ2V0ID0g
ZHJhd2luZ0J1ZmZlclRleHR1cmVUYXJnZXQoKTsKLSAgICAgICAgLy8gQ3JlYXRlIGEgdGV4dHVy
ZSB0byByZW5kZXIgaW50by4KLSAgICAgICAgZ2w6OkdlblRleHR1cmVzKDEsICZtX3RleHR1cmUp
OwotICAgICAgICBnbDo6QmluZFRleHR1cmUodGV4dHVyZVRhcmdldCwgbV90ZXh0dXJlKTsKLSAg
ICAgICAgZ2w6OlRleFBhcmFtZXRlcmYodGV4dHVyZVRhcmdldCwgR0xfVEVYVFVSRV9NQUdfRklM
VEVSLCBHTF9MSU5FQVIpOwotICAgICAgICBnbDo6VGV4UGFyYW1ldGVyZih0ZXh0dXJlVGFyZ2V0
LCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7Ci0gICAgICAgIGdsOjpUZXhQYXJh
bWV0ZXJpKHRleHR1cmVUYXJnZXQsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdF
KTsKLSAgICAgICAgZ2w6OlRleFBhcmFtZXRlcmkodGV4dHVyZVRhcmdldCwgR0xfVEVYVFVSRV9X
UkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOwotICAgICAgICBnbDo6QmluZFRleHR1cmUodGV4dHVy
ZVRhcmdldCwgMCk7Ci0KLSAgICAgICAgLy8gQ3JlYXRlIGFuIEZCTy4KLSAgICAgICAgZ2w6Okdl
bkZyYW1lYnVmZmVycygxLCAmbV9mYm8pOwotICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdM
X0ZSQU1FQlVGRkVSLCBtX2Zibyk7CisgICAgR0xlbnVtIHRleHR1cmVUYXJnZXQgPSBkcmF3aW5n
QnVmZmVyVGV4dHVyZVRhcmdldCgpOworICAgIC8vIENyZWF0ZSBhIHRleHR1cmUgdG8gcmVuZGVy
IGludG8uCisgICAgZ2w6OkdlblRleHR1cmVzKDEsICZtX3RleHR1cmUpOworICAgIGdsOjpCaW5k
VGV4dHVyZSh0ZXh0dXJlVGFyZ2V0LCBtX3RleHR1cmUpOworICAgIGdsOjpUZXhQYXJhbWV0ZXJm
KHRleHR1cmVUYXJnZXQsIEdMX1RFWFRVUkVfTUFHX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICBn
bDo6VGV4UGFyYW1ldGVyZih0ZXh0dXJlVGFyZ2V0LCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdM
X0xJTkVBUik7CisgICAgZ2w6OlRleFBhcmFtZXRlcmkodGV4dHVyZVRhcmdldCwgR0xfVEVYVFVS
RV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0UpOworICAgIGdsOjpUZXhQYXJhbWV0ZXJpKHRleHR1
cmVUYXJnZXQsIEdMX1RFWFRVUkVfV1JBUF9ULCBHTF9DTEFNUF9UT19FREdFKTsKKyAgICBnbDo6
QmluZFRleHR1cmUodGV4dHVyZVRhcmdldCwgMCk7CisKKyAgICAvLyBDcmVhdGUgYW4gRkJPLgor
ICAgIGdsOjpHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fZmJvKTsKKyAgICBnbDo6QmluZEZyYW1lYnVm
ZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX2Zibyk7CiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJ
Q1MpCi0gICAgICAgIGdsOjpHZW5UZXh0dXJlcygxLCAmbV9jb21wb3NpdG9yVGV4dHVyZSk7Ci0g
ICAgICAgIGdsOjpCaW5kVGV4dHVyZSh0ZXh1cmVUeXBlLCBtX2NvbXBvc2l0b3JUZXh0dXJlKTsK
LSAgICAgICAgZ2w6OlRleFBhcmFtZXRlcmYodGV4dXJlVHlwZSwgR0xfVEVYVFVSRV9NQUdfRklM
VEVSLCBHTF9MSU5FQVIpOwotICAgICAgICBnbDo6VGV4UGFyYW1ldGVyZih0ZXh1cmVUeXBlLCBH
TF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7Ci0gICAgICAgIGdsOjpUZXhQYXJhbWV0
ZXJpKHRleHVyZVR5cGUsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsKLSAg
ICAgICAgZ2w6OlRleFBhcmFtZXRlcmkodGV4dXJlVHlwZSwgR0xfVEVYVFVSRV9XUkFQX1QsIEdM
X0NMQU1QX1RPX0VER0UpOwotCi0gICAgICAgIGdsOjpHZW5UZXh0dXJlcygxLCAmbV9pbnRlcm1l
ZGlhdGVUZXh0dXJlKTsKLSAgICAgICAgZ2w6OkJpbmRUZXh0dXJlKHRleHVyZVR5cGUsIG1faW50
ZXJtZWRpYXRlVGV4dHVyZSk7Ci0gICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJmKHRleHVyZVR5cGUs
IEdMX1RFWFRVUkVfTUFHX0ZJTFRFUiwgR0xfTElORUFSKTsKLSAgICAgICAgZ2w6OlRleFBhcmFt
ZXRlcmYodGV4dXJlVHlwZSwgR0xfVEVYVFVSRV9NSU5fRklMVEVSLCBHTF9MSU5FQVIpOwotICAg
ICAgICBnbDo6VGV4UGFyYW1ldGVyaSh0ZXh1cmVUeXBlLCBHTF9URVhUVVJFX1dSQVBfUywgR0xf
Q0xBTVBfVE9fRURHRSk7Ci0gICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJpKHRleHVyZVR5cGUsIEdM
X1RFWFRVUkVfV1JBUF9ULCBHTF9DTEFNUF9UT19FREdFKTsKLQotICAgICAgICBnbDo6QmluZFRl
eHR1cmUodGV4dXJlVHlwZSwgMCk7CisgICAgZ2w6OkdlblRleHR1cmVzKDEsICZtX2NvbXBvc2l0
b3JUZXh0dXJlKTsKKyAgICBnbDo6QmluZFRleHR1cmUodGV4dHVyZVRhcmdldCwgbV9jb21wb3Np
dG9yVGV4dHVyZSk7CisgICAgZ2w6OlRleFBhcmFtZXRlcmYodGV4dHVyZVRhcmdldCwgR0xfVEVY
VFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOworICAgIGdsOjpUZXhQYXJhbWV0ZXJmKHRleHR1
cmVUYXJnZXQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICBnbDo6VGV4
UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LCBHTF9URVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9f
RURHRSk7CisgICAgZ2w6OlRleFBhcmFtZXRlcmkodGV4dHVyZVRhcmdldCwgR0xfVEVYVFVSRV9X
UkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOworCisgICAgZ2w6OkdlblRleHR1cmVzKDEsICZtX2lu
dGVybWVkaWF0ZVRleHR1cmUpOworICAgIGdsOjpCaW5kVGV4dHVyZSh0ZXh0dXJlVGFyZ2V0LCBt
X2ludGVybWVkaWF0ZVRleHR1cmUpOworICAgIGdsOjpUZXhQYXJhbWV0ZXJmKHRleHR1cmVUYXJn
ZXQsIEdMX1RFWFRVUkVfTUFHX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICBnbDo6VGV4UGFyYW1l
dGVyZih0ZXh0dXJlVGFyZ2V0LCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7Cisg
ICAgZ2w6OlRleFBhcmFtZXRlcmkodGV4dHVyZVRhcmdldCwgR0xfVEVYVFVSRV9XUkFQX1MsIEdM
X0NMQU1QX1RPX0VER0UpOworICAgIGdsOjpUZXhQYXJhbWV0ZXJpKHRleHR1cmVUYXJnZXQsIEdM
X1RFWFRVUkVfV1JBUF9ULCBHTF9DTEFNUF9UT19FREdFKTsKKworICAgIGdsOjpCaW5kVGV4dHVy
ZSh0ZXh0dXJlVGFyZ2V0LCAwKTsKICNlbmRpZgogCi0gICAgICAgIC8vIENyZWF0ZSBhIG11bHRp
c2FtcGxlIEZCTy4KLSAgICAgICAgQVNTRVJUKG1fc3RhdGUuYm91bmRSZWFkRkJPID09IG1fc3Rh
dGUuYm91bmREcmF3RkJPKTsKLSAgICAgICAgaWYgKGF0dHJpYnV0ZXMuYW50aWFsaWFzKSB7Ci0g
ICAgICAgICAgICBnbDo6R2VuRnJhbWVidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRkJPKTsKLSAg
ICAgICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1w
bGVGQk8pOwotICAgICAgICAgICAgbV9zdGF0ZS5ib3VuZERyYXdGQk8gPSBtX3N0YXRlLmJvdW5k
UmVhZEZCTyA9IG1fbXVsdGlzYW1wbGVGQk87Ci0gICAgICAgICAgICBnbDo6R2VuUmVuZGVyYnVm
ZmVycygxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKLSAgICAgICAgICAgIGlmIChhdHRy
aWJ1dGVzLnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0aCkKLSAgICAgICAgICAgICAgICBnbDo6
R2VuUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZlcik7Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBCaW5kIGNhbnZhcyBGQk8uCi0gICAgICAg
ICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX2Zibyk7Ci0gICAgICAg
ICAgICBtX3N0YXRlLmJvdW5kRHJhd0ZCTyA9IG1fc3RhdGUuYm91bmRSZWFkRkJPID0gbV9mYm87
Ci0gICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgp
Ci0gICAgICAgICAgICAgICAgZ2w6OkdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhTdGVuY2ls
QnVmZmVyKTsKLSAgICAgICAgfQorICAgIC8vIENyZWF0ZSBhIG11bHRpc2FtcGxlIEZCTy4KKyAg
ICBBU1NFUlQobV9zdGF0ZS5ib3VuZFJlYWRGQk8gPT0gbV9zdGF0ZS5ib3VuZERyYXdGQk8pOwor
ICAgIGlmIChhdHRyaWJ1dGVzLmFudGlhbGlhcykgeworICAgICAgICBnbDo6R2VuRnJhbWVidWZm
ZXJzKDEsICZtX211bHRpc2FtcGxlRkJPKTsKKyAgICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihH
TF9GUkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7CisgICAgICAgIG1fc3RhdGUuYm91bmRE
cmF3RkJPID0gbV9zdGF0ZS5ib3VuZFJlYWRGQk8gPSBtX211bHRpc2FtcGxlRkJPOworICAgICAg
ICBnbDo6R2VuUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKKyAg
ICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQorICAgICAg
ICAgICAgZ2w6OkdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxC
dWZmZXIpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEJpbmQgY2FudmFzIEZCTy4KKyAgICAg
ICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9mYm8pOworICAgICAgICBt
X3N0YXRlLmJvdW5kRHJhd0ZCTyA9IG1fc3RhdGUuYm91bmRSZWFkRkJPID0gbV9mYm87CisgICAg
ICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0aCkKKyAgICAgICAg
ICAgIGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAg
fQogCiAgICAgZ2w6OkNsZWFyQ29sb3IoMCwgMCwgMCwgMCk7CiB9CiAjZWxzZQotR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdM
QXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0w6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogc2hh
cmVkQ29udGV4dCkKLSAgICA6IEdyYXBoaWNzQ29udGV4dEdMKGF0dHJpYnV0ZXMsIGRlc3RpbmF0
aW9uLCBzaGFyZWRDb250ZXh0KQorR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0
V2luZG93KiwgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIHNoYXJlZENvbnRleHQpCisgICAgOiBH
cmFwaGljc0NvbnRleHRHTChhdHRyaWJ1dGVzLCBzaGFyZWRDb250ZXh0KQogewogICAgIEFTU0VS
VF9VTlVTRUQoc2hhcmVkQ29udGV4dCwgIXNoYXJlZENvbnRleHQpOwogI2lmIFVTRShOSUNPU0lB
KQotICAgIG1fbmljb3NpYUxheWVyID0gbWFrZVVuaXF1ZTxOaWNvc2lhOjpHQ0dMTGF5ZXI+KCp0
aGlzLCBkZXN0aW5hdGlvbik7CisgICAgbV9uaWNvc2lhTGF5ZXIgPSBtYWtlVW5pcXVlPE5pY29z
aWE6OkdDR0xMYXllcj4oKnRoaXMpOwogI2Vsc2UKLSAgICBtX3RleG1hcExheWVyID0gbWFrZVVu
aXF1ZTxUZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXI+KCp0aGlzLCBkZXN0aW5hdGlvbik7
CisgICAgbV90ZXhtYXBMYXllciA9IG1ha2VVbmlxdWU8VGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9y
bUxheWVyPigqdGhpcyk7CiAjZW5kaWYKIAogICAgIGJvb2wgc3VjY2VzcyA9IG1ha2VDb250ZXh0
Q3VycmVudCgpOwpAQCAtMTk4LDYwICsxOTIsNTggQEAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6
OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHQK
ICAgICB2YWxpZGF0ZUF0dHJpYnV0ZXMoKTsKICAgICBhdHRyaWJ1dGVzID0gY29udGV4dEF0dHJp
YnV0ZXMoKTsgLy8gVGhleSBtYXkgaGF2ZSBjaGFuZ2VkIGR1cmluZyB2YWxpZGF0aW9uLgogCi0g
ICAgaWYgKGRlc3RpbmF0aW9uID09IERlc3RpbmF0aW9uOjpPZmZzY3JlZW4pIHsKLSAgICAgICAg
Ly8gQ3JlYXRlIGEgdGV4dHVyZSB0byByZW5kZXIgaW50by4KLSAgICAgICAgOjpnbEdlblRleHR1
cmVzKDEsICZtX3RleHR1cmUpOwotICAgICAgICA6OmdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8y
RCwgbV90ZXh0dXJlKTsKLSAgICAgICAgOjpnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwg
R0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOwotICAgICAgICA6OmdsVGV4UGFyYW1l
dGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7Ci0g
ICAgICAgIDo6Z2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9T
LCBHTF9DTEFNUF9UT19FREdFKTsKLSAgICAgICAgOjpnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVS
RV8yRCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOwotICAgICAgICA6Omds
QmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgMCk7CisgICAgLy8gQ3JlYXRlIGEgdGV4dHVyZSB0
byByZW5kZXIgaW50by4KKyAgICA6OmdsR2VuVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7CisgICAg
OjpnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1fdGV4dHVyZSk7CisgICAgOjpnbFRleFBh
cmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIp
OworICAgIDo6Z2xUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfTUlOX0ZJ
TFRFUiwgR0xfTElORUFSKTsKKyAgICA6OmdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBH
TF9URVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAgOjpnbFRleFBhcmFtZXRl
cmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOwor
ICAgIDo6Z2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCAwKTsKIAotICAgICAgICAvLyBDcmVh
dGUgYW4gRkJPLgotICAgICAgICA6OmdsR2VuRnJhbWVidWZmZXJzKDEsICZtX2Zibyk7Ci0gICAg
ICAgIDo6Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKKyAgICAvLyBD
cmVhdGUgYW4gRkJPLgorICAgIDo6Z2xHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fZmJvKTsKKyAgICA6
OmdsQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX2Zibyk7CiAKICNpZiBVU0UoQ09P
UkRJTkFURURfR1JBUEhJQ1MpCi0gICAgICAgIDo6Z2xHZW5UZXh0dXJlcygxLCAmbV9jb21wb3Np
dG9yVGV4dHVyZSk7Ci0gICAgICAgIDo6Z2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBtX2Nv
bXBvc2l0b3JUZXh0dXJlKTsKLSAgICAgICAgOjpnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8y
RCwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOwotICAgICAgICA6OmdsVGV4UGFy
YW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7
Ci0gICAgICAgIDo6Z2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JB
UF9TLCBHTF9DTEFNUF9UT19FREdFKTsKLSAgICAgICAgOjpnbFRleFBhcmFtZXRlcmkoR0xfVEVY
VFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOwotCi0gICAgICAg
IDo6Z2xHZW5UZXh0dXJlcygxLCAmbV9pbnRlcm1lZGlhdGVUZXh0dXJlKTsKLSAgICAgICAgOjpn
bEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1faW50ZXJtZWRpYXRlVGV4dHVyZSk7Ci0gICAg
ICAgIDo6Z2xUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfTUFHX0ZJTFRF
UiwgR0xfTElORUFSKTsKLSAgICAgICAgOjpnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwg
R0xfVEVYVFVSRV9NSU5fRklMVEVSLCBHTF9MSU5FQVIpOwotICAgICAgICA6OmdsVGV4UGFyYW1l
dGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7
Ci0gICAgICAgIDo6Z2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JB
UF9ULCBHTF9DTEFNUF9UT19FREdFKTsKLQotICAgICAgICA6OmdsQmluZFRleHR1cmUoR0xfVEVY
VFVSRV8yRCwgMCk7CisgICAgOjpnbEdlblRleHR1cmVzKDEsICZtX2NvbXBvc2l0b3JUZXh0dXJl
KTsKKyAgICA6OmdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgbV9jb21wb3NpdG9yVGV4dHVy
ZSk7CisgICAgOjpnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NQUdf
RklMVEVSLCBHTF9MSU5FQVIpOworICAgIDo6Z2xUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfMkQs
IEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICA6OmdsVGV4UGFyYW1ldGVy
aShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7Cisg
ICAgOjpnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdM
X0NMQU1QX1RPX0VER0UpOworCisgICAgOjpnbEdlblRleHR1cmVzKDEsICZtX2ludGVybWVkaWF0
ZVRleHR1cmUpOworICAgIDo6Z2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBtX2ludGVybWVk
aWF0ZVRleHR1cmUpOworICAgIDo6Z2xUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RF
WFRVUkVfTUFHX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICA6OmdsVGV4UGFyYW1ldGVyZihHTF9U
RVhUVVJFXzJELCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7CisgICAgOjpnbFRl
eFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RP
X0VER0UpOworICAgIDo6Z2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVf
V1JBUF9ULCBHTF9DTEFNUF9UT19FREdFKTsKKworICAgIDo6Z2xCaW5kVGV4dHVyZShHTF9URVhU
VVJFXzJELCAwKTsKICNlbmRpZgogCi0gICAgICAgIC8vIENyZWF0ZSBhIG11bHRpc2FtcGxlIEZC
Ty4KLSAgICAgICAgQVNTRVJUKG1fc3RhdGUuYm91bmRSZWFkRkJPID09IG1fc3RhdGUuYm91bmRE
cmF3RkJPKTsKLSAgICAgICAgaWYgKGF0dHJpYnV0ZXMuYW50aWFsaWFzKSB7Ci0gICAgICAgICAg
ICA6OmdsR2VuRnJhbWVidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRkJPKTsKLSAgICAgICAgICAg
IDo6Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOwot
ICAgICAgICAgICAgbV9zdGF0ZS5ib3VuZERyYXdGQk8gPSBtX3N0YXRlLmJvdW5kUmVhZEZCTyA9
IG1fbXVsdGlzYW1wbGVGQk87Ci0gICAgICAgICAgICA6OmdsR2VuUmVuZGVyYnVmZmVycygxLCAm
bV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKLSAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0
ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0aCkKLSAgICAgICAgICAgICAgICA6OmdsR2VuUmVuZGVy
YnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZlcik7Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAvLyBCaW5kIGNhbnZhcyBGQk8uCi0gICAgICAgICAgICBnbEJp
bmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6RlJBTUVCVUZGRVIsIG1fZmJv
KTsKLSAgICAgICAgICAgIG1fc3RhdGUuYm91bmREcmF3RkJPID0gbV9zdGF0ZS5ib3VuZFJlYWRG
Qk8gPSBtX2ZibzsKKyAgICAvLyBDcmVhdGUgYSBtdWx0aXNhbXBsZSBGQk8uCisgICAgQVNTRVJU
KG1fc3RhdGUuYm91bmRSZWFkRkJPID09IG1fc3RhdGUuYm91bmREcmF3RkJPKTsKKyAgICBpZiAo
YXR0cmlidXRlcy5hbnRpYWxpYXMpIHsKKyAgICAgICAgOjpnbEdlbkZyYW1lYnVmZmVycygxLCAm
bV9tdWx0aXNhbXBsZUZCTyk7CisgICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVC
VUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOworICAgICAgICBtX3N0YXRlLmJvdW5kRHJhd0ZCTyA9
IG1fc3RhdGUuYm91bmRSZWFkRkJPID0gbV9tdWx0aXNhbXBsZUZCTzsKKyAgICAgICAgOjpnbEdl
blJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVDb2xvckJ1ZmZlcik7CisgICAgICAgIGlm
IChhdHRyaWJ1dGVzLnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0aCkKKyAgICAgICAgICAgIDo6
Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsK
KyAgICB9IGVsc2UgeworICAgICAgICAvLyBCaW5kIGNhbnZhcyBGQk8uCisgICAgICAgIGdsQmlu
ZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpGUkFNRUJVRkZFUiwgbV9mYm8p
OworICAgICAgICBtX3N0YXRlLmJvdW5kRHJhd0ZCTyA9IG1fc3RhdGUuYm91bmRSZWFkRkJPID0g
bV9mYm87CiAjaWYgVVNFKE9QRU5HTF9FUykKLSAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLmRl
cHRoKQotICAgICAgICAgICAgICAgIGdsR2VuUmVuZGVyYnVmZmVycygxLCAmbV9kZXB0aEJ1ZmZl
cik7Ci0gICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsKQotICAgICAgICAgICAgICAg
IGdsR2VuUmVuZGVyYnVmZmVycygxLCAmbV9zdGVuY2lsQnVmZmVyKTsKKyAgICAgICAgaWYgKGF0
dHJpYnV0ZXMuZGVwdGgpCisgICAgICAgICAgICBnbEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVw
dGhCdWZmZXIpOworICAgICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsKQorICAgICAgICAgICAg
Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX3N0ZW5jaWxCdWZmZXIpOwogI2VuZGlmCi0gICAgICAg
ICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpCi0gICAgICAg
ICAgICAgICAgZ2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7Ci0g
ICAgICAgIH0KKyAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRl
cHRoKQorICAgICAgICAgICAgZ2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoU3RlbmNpbEJ1
ZmZlcik7CiAgICAgfQogCiAjaWYgIVVTRShPUEVOR0xfRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9y
bUxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIuY3BwCmluZGV4IDk3ZDVhYTdmYTZkNjM1ZTZlOWZl
ZDAwNDM5YTQzNGM5MTY5YWVlMGIuLjg1OWEwNDViNzBjMjJmNjgzNmEzZTM3MTM1NjIyNzI2NjZj
MWE0MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIu
Y3BwCkBAIC0zMywyMyArMzMsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1UZXh0dXJl
TWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXI6OlRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcihH
cmFwaGljc0NvbnRleHRHTE9wZW5HTCYgY29udGV4dCwgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6
OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKQorVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVy
OjpUZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wm
IGNvbnRleHQpCiAgICAgOiBtX2NvbnRleHQoY29udGV4dCkKIHsKLSAgICBzd2l0Y2ggKGRlc3Rp
bmF0aW9uKSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6RGVzdGluYXRpb246
Ok9mZnNjcmVlbjogewotICAgICAgICBhdXRvIHNoYXJpbmdDb250ZXh0ID0gUGxhdGZvcm1EaXNw
bGF5OjpzaGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmcoKS5zaGFyaW5nR0xDb250ZXh0KCktPnBs
YXRmb3JtQ29udGV4dCgpOworICAgIGF1dG8gc2hhcmluZ0NvbnRleHQgPSBQbGF0Zm9ybURpc3Bs
YXk6OnNoYXJlZERpc3BsYXlGb3JDb21wb3NpdGluZygpLnNoYXJpbmdHTENvbnRleHQoKS0+cGxh
dGZvcm1Db250ZXh0KCk7CiAjaWYgRU5BQkxFKFdFQkdMMikKLSAgICAgICAgbV9nbENvbnRleHQg
PSBBTkdMRUNvbnRleHQ6OmNyZWF0ZUNvbnRleHQoc2hhcmluZ0NvbnRleHQsIGNvbnRleHQuY29u
dGV4dEF0dHJpYnV0ZXMoKS53ZWJHTFZlcnNpb24gPT0gR3JhcGhpY3NDb250ZXh0R0xXZWJHTFZl
cnNpb246OldlYkdMMik7CisgICAgbV9nbENvbnRleHQgPSBBTkdMRUNvbnRleHQ6OmNyZWF0ZUNv
bnRleHQoc2hhcmluZ0NvbnRleHQsIGNvbnRleHQuY29udGV4dEF0dHJpYnV0ZXMoKS53ZWJHTFZl
cnNpb24gPT0gR3JhcGhpY3NDb250ZXh0R0xXZWJHTFZlcnNpb246OldlYkdMMik7CiAjZWxzZQot
ICAgICAgICBtX2dsQ29udGV4dCA9IEFOR0xFQ29udGV4dDo6Y3JlYXRlQ29udGV4dChzaGFyaW5n
Q29udGV4dCwgZmFsc2UpOworICAgIG1fZ2xDb250ZXh0ID0gQU5HTEVDb250ZXh0OjpjcmVhdGVD
b250ZXh0KHNoYXJpbmdDb250ZXh0LCBmYWxzZSk7CiAjZW5kaWYKLSAgICAgICAgYnJlYWs7Ci0g
ICAgfQotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkRlc3RpbmF0aW9uOjpEaXJl
Y3RseVRvSG9zdFdpbmRvdzoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAg
IGJyZWFrOwotICAgIH0KIAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICBtX3Bs
YXRmb3JtTGF5ZXJQcm94eSA9IGFkb3B0UmVmKG5ldyBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXll
clByb3h5KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5o
CmluZGV4IDZkYzBmZjJjYWQ4YTA2NTFjYmNkYmFkZTRlM2NlNzhmYjJmNTExNGIuLjQwNDI2NGEy
MzNmMDBkMmFhMjdmNTg2ZDVlN2YzMDRiNTk2NTIyZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyLmgKQEAgLTM0LDcgKzM0LDcgQEAgY2xhc3MgVGV4dHVy
ZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTsKIGNsYXNzIFRleHR1cmVNYXBwZXJHQ0dMUGxhdGZv
cm1MYXllciA6IHB1YmxpYyBQbGF0Zm9ybUxheWVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKLSAgICBUZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIoR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wmLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6RGVzdGluYXRpb24p
OworICAgIFRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcihHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTCYpOwogICAgIHZpcnR1YWwgflRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcigpOwog
CiAgICAgYm9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKTsK
</data>
<flag name="commit-queue"
          id="436745"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418708</attachid>
            <date>2021-01-28 23:50:17 -0800</date>
            <delta_ts>2021-01-29 00:00:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221122-20210129165016.patch</filename>
            <type>text/plain</type>
            <size>34175</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMDQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzE4ZDQwNmI5YWFkYWI3
ZGNhZWFhNTE4Y2JjZGFiZTU5OWQ4ZDAxMC4uMTQ2ODM4ZTE2MGQ5NzNjNTYyZDQwODllOGYwZGMx
ZTA0MTZmNDExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTAxLTI4ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFJlbW92ZSB1
bnVzZWQgR3JhcGhpY3NDb250ZXh0R0w6OkRlc3RpbmF0aW9uIGVudW0gY2xhc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTEyMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IHdhcyB1c2VkIGJ5IENo
cm9taXVtIHBvcnQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHRHTC5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0w6OmRlc3RpbmF0aW9u
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFw
aGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0R0xPcGVuR0w6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5jcHA6CisgICAg
ICAgIChOaWNvc2lhOjpHQ0dMQU5HTEVMYXllcjo6R0NHTEFOR0xFTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dM
TGF5ZXIuY3BwOgorICAgICAgICAoTmljb3NpYTo6R0NHTExheWVyOjpHQ0dMTGF5ZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xFUy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTFByaXZhdGU6OkdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMUHJpdmF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMUHJpdmF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOiBGaXggYSBj
b21waWxhdGlvbiBlcnJvciBieSByZW5hbWluZyB0ZXh1cmVUeXBlIHRvIHRleHR1cmVUYXJnZXQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxh
dGZvcm1MYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0NHTFBsYXRm
b3JtTGF5ZXI6OlRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5oOgor
CiAyMDIxLTAxLTI4ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAK
ICAgICAgICAgTWlub3IgY2xlYW51cCBpbiBDU1NGb250RmFjZVNldENsaWVudApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmgKaW5k
ZXggMmFkMTQ3ZjZlYWI5NGNmM2JkZjAzYmM2ZmRjMjExN2Q0YWUwMDUwNC4uMDAyNjI0NWU0Nzk3
MjdkZWZjYzAxMWU2ZThhMWZkYzU0ZTMzMWM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5oCkBAIC03NDksMTEgKzc0OSw2
IEBAIHB1YmxpYzoKICAgICAgICAgTnVtRm9ybWF0cwogICAgIH07CiAKLSAgICBlbnVtIGNsYXNz
IERlc3RpbmF0aW9uIDogdWludDhfdCB7Ci0gICAgICAgIE9mZnNjcmVlbiwKLSAgICAgICAgRGly
ZWN0bHlUb0hvc3RXaW5kb3csCi0gICAgfTsKLQogICAgIGVudW0gY2xhc3MgQ2hhbm5lbEJpdHMg
OiB1aW50OF90IHsKICAgICAgICAgUmVkID0gMSwKICAgICAgICAgR3JlZW4gPSAyLApAQCAtOTE1
LDcgKzkxMCw3IEBAIHB1YmxpYzoKICAgICAvLyBIb3N0V2luZG93IG1pZ2h0IGFmZmVjdCB0aGUg
ZGVjaXNpb24gd2hpY2ggYmFja2VuZCBpcyB0byBiZSB1c2VkLgogICAgIHN0YXRpYyBSZWZQdHI8
R3JhcGhpY3NDb250ZXh0R0w+IGNyZWF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0
ZXMmLCBIb3N0V2luZG93Kik7CiAKLSAgICBHcmFwaGljc0NvbnRleHRHTChHcmFwaGljc0NvbnRl
eHRHTEF0dHJpYnV0ZXMsIERlc3RpbmF0aW9uID0gRGVzdGluYXRpb246Ok9mZnNjcmVlbiwgR3Jh
cGhpY3NDb250ZXh0R0wqIHNoYXJlZENvbnRleHQgPSBudWxscHRyKTsKKyAgICBHcmFwaGljc0Nv
bnRleHRHTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMsIEdyYXBoaWNzQ29udGV4dEdMKiBz
aGFyZWRDb250ZXh0ID0gbnVsbHB0cik7CiAgICAgdmlydHVhbCB+R3JhcGhpY3NDb250ZXh0R0wo
KSA9IGRlZmF1bHQ7CiAKICAgICB2b2lkIGFkZENsaWVudChDbGllbnQmIGNsaWVudCkgeyBtX2Ns
aWVudHMuYWRkKCZjbGllbnQpOyB9CkBAIC0xMzU5LDggKzEzNTQsNiBAQCBwdWJsaWM6CiAgICAg
Ly8gUmV0dXJucyB0cnVlIHVwb24gc3VjY2Vzcy4KICAgICBzdGF0aWMgYm9vbCBwYWNrSW1hZ2VE
YXRhKEltYWdlKiwgY29uc3Qgdm9pZCogcGl4ZWxzLCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVt
IHR5cGUsIGJvb2wgZmxpcFksIEFscGhhT3AsIERhdGFGb3JtYXQgc291cmNlRm9ybWF0LCB1bnNp
Z25lZCBzb3VyY2VJbWFnZVdpZHRoLCB1bnNpZ25lZCBzb3VyY2VJbWFnZUhlaWdodCwgY29uc3Qg
SW50UmVjdCYgc291cmNlSW1hZ2VTdWJSZWN0YW5nbGUsIGludCBkZXB0aCwgdW5zaWduZWQgc291
cmNlVW5wYWNrQWxpZ25tZW50LCBpbnQgdW5wYWNrSW1hZ2VIZWlnaHQsIFZlY3Rvcjx1aW50OF90
PiYgZGF0YSk7CiAKLSAgICBEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fZGVzdGluYXRpb247IH0KLQogcHJvdGVjdGVkOgogICAgIGludCBtX2N1cnJlbnRXaWR0aCB7
IDAgfTsKICAgICBpbnQgbV9jdXJyZW50SGVpZ2h0IHsgMCB9OwpAQCAtMTM2OCw3ICsxMzYxLDYg
QEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRl
cyBtX2F0dHJzOwotICAgIERlc3RpbmF0aW9uIG1fZGVzdGluYXRpb247CiB9OwogCiBpbmxpbmUg
R0NHTGZsb2F0IEdyYXBoaWNzQ29udGV4dEdMOjpnZXRGbG9hdChHQ0dMZW51bSBwbmFtZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCmluZGV4IDM0YWZjODIwYjJk
YjgyODhkY2ZlMTcxZDg2NDgzNjg3MTE2OTgyZjIuLjg0MmZiNWZhZGExMDRjOTA3MjM5MzgwM2E0
NTkyY2NhMmFhZWNhOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2Nv
YS5tbQpAQCAtMTI4LDEyICsxMjgsOCBAQCBzdGF0aWMgYm9vbCBuZWVkc0VBR0xPbk1hYygpCiAj
ZW5kaWYKIAogCi1SZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0
V2luZG93KiBob3N0V2luZG93LCBHcmFwaGljc0NvbnRleHRHTDo6RGVzdGluYXRpb24gZGVzdGlu
YXRpb24pCitSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2lu
ZG93KiBob3N0V2luZG93KQogewotICAgIC8vIFRoaXMgaW1wbGVtZW50YXRpb24gZG9lc24ndCBj
dXJyZW50bHkgc3VwcG9ydCByZW5kZXJpbmcgZGlyZWN0bHkgdG8gdGhlIEhvc3RXaW5kb3cuCi0g
ICAgaWYgKGRlc3RpbmF0aW9uID09IERlc3RpbmF0aW9uOjpEaXJlY3RseVRvSG9zdFdpbmRvdykK
LSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KICAgICAvLyBNYWtlIHNwYWNlIGZvciB0aGUgaW5j
b21pbmcgY29udGV4dCBpZiB3ZSdyZSBmdWxsLgogICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
TWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnJlY3ljbGVDb250ZXh0SWZOZWNlc3NhcnkoKTsKICAg
ICBpZiAoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuaGFz
VG9vTWFueUNvbnRleHRzKCkpCkBAIC0xNjUsNyArMTYxLDcgQEAgUmVmPEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlRm9yR1BVUHJvY2Vzcyhj
b25zdAogfQogCiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVu
R0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2luZG93KiwgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wqIHNoYXJlZENvbnRleHQsIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJm
YWNlU3dhcENoYWluKiBzd2FwQ2hhaW4pCi0gICAgOiBHcmFwaGljc0NvbnRleHRHTChhdHRycywg
RGVzdGluYXRpb246Ok9mZnNjcmVlbiwgc2hhcmVkQ29udGV4dCkKKyAgICA6IEdyYXBoaWNzQ29u
dGV4dEdMKGF0dHJzLCBzaGFyZWRDb250ZXh0KQogewogICAgIG1faXNGb3JXZWJHTDIgPSBhdHRy
cy53ZWJHTFZlcnNpb24gPT0gR3JhcGhpY3NDb250ZXh0R0xXZWJHTFZlcnNpb246OldlYkdMMjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90
ZXhtYXAvTmljb3NpYUdDR0xBTkdMRUxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5jcHAKaW5kZXgg
ODFhOTUyNjlkZTU3ZTM0Y2ZkZGQ0MDMzZDc0NjY2ZmYxMjI2NzYyOS4uOGRmOWY3OWJjYzJlYmIw
NWE3OGJlODM5YWJlYTA2NWU5YWJmYWM5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xBTkdMRUxheWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNv
c2lhR0NHTEFOR0xFTGF5ZXIuY3BwCkBAIC0xNjYsMTcgKzE2NiwxMCBAQCBQbGF0Zm9ybUdyYXBo
aWNzQ29udGV4dEdMIEdDR0xBTkdMRUxheWVyOjpBTkdMRUNvbnRleHQ6OnBsYXRmb3JtQ29udGV4
dCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29udGV4dDsKIH0KIAotR0NHTEFOR0xFTGF5ZXI6OkdD
R0xBTkdMRUxheWVyKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMJiBjb250ZXh0LCBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24pCitHQ0dMQU5HTEVMYXllcjo6
R0NHTEFOR0xFTGF5ZXIoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wmIGNvbnRleHQpCiAgICAgOiBH
Q0dMTGF5ZXIoY29udGV4dCkKKyAgICAsIG1fYW5nbGVDb250ZXh0KEFOR0xFQ29udGV4dDo6Y3Jl
YXRlQ29udGV4dCgpKQogewotICAgIHN3aXRjaCAoZGVzdGluYXRpb24pIHsKLSAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuOgotICAgICAgICBt
X2FuZ2xlQ29udGV4dCA9IEFOR0xFQ29udGV4dDo6Y3JlYXRlQ29udGV4dCgpOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpEZXN0aW5hdGlvbjo6RGly
ZWN0bHlUb0hvc3RXaW5kb3c6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAg
ICBicmVhazsKLSAgICB9CiB9CiAKIEdDR0xBTkdMRUxheWVyOjp+R0NHTEFOR0xFTGF5ZXIoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXht
YXAvTmljb3NpYUdDR0xBTkdMRUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTEFOR0xFTGF5ZXIuaAppbmRleCA3Mzg4ZTU3
YzFmODEyOTFkNGM1NWEwZjAyMTMzZTcxY2NhNjk1YjdhLi43ZjIxZGE1OTA4MWE4YThkM2Q2NTYy
ZGYzODI0NTdlYjIxNmU2ZDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTEFOR0xFTGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTEFO
R0xFTGF5ZXIuaApAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiAgICAgICAgIEVHTFN1cmZhY2Ug
bV9zdXJmYWNlIHsgbnVsbHB0ciB9OwogICAgIH07CiAKLSAgICBHQ0dMQU5HTEVMYXllcihXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTCYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMOjpEZXN0aW5hdGlvbik7CisgICAgR0NHTEFOR0xFTGF5ZXIoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wmKTsKICAgICB2aXJ0dWFsIH5HQ0dMQU5HTEVMYXllcigpOwogCiAg
ICAgYm9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAv
Tmljb3NpYUdDR0xMYXllci5jcHAKaW5kZXggODM2MTgzNzM4YTZmMWFlMmYzMDU2YjJjYTk4N2Qx
M2ZlY2RkODYzNS4uNDlhYWYyOWZlYzE4Y2IyNTZiNDYyYzI2MjIyNDRiZTEwZGI4YzBlOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAv
Tmljb3NpYUdDR0xMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xMYXllci5jcHAKQEAgLTUzLDE4ICs1MywxMSBA
QCBHQ0dMTGF5ZXI6OkdDR0xMYXllcihHcmFwaGljc0NvbnRleHRHTE9wZW5HTCYgY29udGV4dCkK
IHsKIH0KIAotR0NHTExheWVyOjpHQ0dMTGF5ZXIoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wmIGNv
bnRleHQsIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbikK
K0dDR0xMYXllcjo6R0NHTExheWVyKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMJiBjb250ZXh0KQog
ICAgIDogbV9jb250ZXh0KGNvbnRleHQpCiAgICAgLCBtX2NvbnRlbnRMYXllcihOaWNvc2lhOjpD
b250ZW50TGF5ZXI6OmNyZWF0ZShOaWNvc2lhOjpDb250ZW50TGF5ZXJUZXh0dXJlTWFwcGVySW1w
bDo6Y3JlYXRlRmFjdG9yeSgqdGhpcykpKQogewotICAgIHN3aXRjaCAoZGVzdGluYXRpb24pIHsK
LSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpEZXN0aW5hdGlvbjo6T2Zmc2NyZWVu
OgotICAgICAgICBtX2dsQ29udGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRlT2Zmc2NyZWVuQ29udGV4
dCgmUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmcoKSk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkRlc3RpbmF0aW9u
OjpEaXJlY3RseVRvSG9zdFdpbmRvdzoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIH0KKyAgICBtX2dsQ29udGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRl
T2Zmc2NyZWVuQ29udGV4dCgmUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5Rm9yQ29tcG9z
aXRpbmcoKSk7CiB9CiAKIEdDR0xMYXllcjo6fkdDR0xMYXllcigpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTExh
eWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9O
aWNvc2lhR0NHTExheWVyLmgKaW5kZXggYWJmMDRiYjdlZmVhYjU2YjE5MDZjMDhjMjdkODUwZmY2
MDY2MGM5My4uMjc1N2U0NmJlMGRhMzY0Njg1OGMwMjFjYjA2YTY4N2Y3MGMyNTQ2YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmlj
b3NpYUdDR0xMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25p
Y29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuaApAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBH
Q0dMTGF5ZXIgOiBwdWJsaWMgQ29udGVudExheWVyVGV4dHVyZU1hcHBlckltcGw6OkNsaWVudCB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgR0NH
TExheWVyKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMJik7Ci0gICAgR0NHTExheWVy
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMJiwgV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OkRlc3RpbmF0aW9uKTsKKyAgICBHQ0dMTGF5ZXIoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wmKTsKIAogICAgIHZpcnR1YWwgfkdDR0xMYXllcigpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oCmluZGV4IDhkN2JiMzUwZmFiZDA4ZmE4MTk2OGJh
NDk0Y2FjY2ZiN2MwOWZmOGEuLmUwZTM5YWNkNTI4ZjBjODdmMjQ5YTc2OTBhNDEyMzM3MDY5Njk3
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
cmFwaGljc0NvbnRleHRHTE9wZW5HTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oCkBAIC05Niw3ICs5Niw3IEBA
IGNsYXNzIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0ZTsKIGNsYXNzIFdFQkNPUkVfRVhQ
T1JUIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIGZpbmFsIDogcHVibGljIEdyYXBoaWNzQ29udGV4
dEdMCiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9wZW5H
TD4gY3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcywgSG9zdFdpbmRvdyosIERlc3Rp
bmF0aW9uID0gRGVzdGluYXRpb246Ok9mZnNjcmVlbik7CisgICAgc3RhdGljIFJlZlB0cjxHcmFw
aGljc0NvbnRleHRHTE9wZW5HTD4gY3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcywg
SG9zdFdpbmRvdyopOwogICAgIHZpcnR1YWwgfkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKCk7CiAK
ICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTUxMyw3ICs1MTMsNyBAQCBwcml2YXRlOgogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4
dEdMQXR0cmlidXRlcywgSG9zdFdpbmRvdyosIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBzaGFy
ZWRDb250ZXh0ID0gbnVsbHB0ciwgR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4q
ID0gbnVsbHB0cik7CiAjZWxzZQotICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNz
Q29udGV4dEdMQXR0cmlidXRlcywgSG9zdFdpbmRvdyosIERlc3RpbmF0aW9uID0gRGVzdGluYXRp
b246Ok9mZnNjcmVlbiwgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIHNoYXJlZENvbnRleHQgPSBu
dWxscHRyKTsKKyAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0
dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogc2hhcmVkQ29u
dGV4dCA9IG51bGxwdHIpOwogI2VuZGlmCiAKICAgICAvLyBDYWxsZWQgb25jZSBieSBhbGwgdGhl
IHB1YmxpYyBlbnRyeSBwb2ludHMgdGhhdCBldmVudHVhbGx5IGNhbGwgT3BlbkdMLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMRVMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMRVMuY3BwCmluZGV4IGJhYWJkZTA3OTE0NjVmM2Y4
M2U2NmZmMjkwZWExNGVjMTg2YjI3ZDQuLjVjOWVmYjJlYTQ5NmIyYmQ1YjRkYmVjNzE1NGViNmYy
NDdlZTk4ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTEVTLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xFUy5jcHAKQEAg
LTI3NiwxMiArMjc2LDggQEAgRXh0ZW5zaW9uc0dMJiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6
Z2V0RXh0ZW5zaW9ucygpCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKENBKQot
UmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6
Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93
KiBob3N0V2luZG93LCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6RGVzdGluYXRpb24gZGVzdGlu
YXRpb24pCitSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhv
c3RXaW5kb3cqIGhvc3RXaW5kb3cpCiB7Ci0gICAgLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiBkb2Vz
bid0IGN1cnJlbnRseSBzdXBwb3J0IHJlbmRlcmluZyBkaXJlY3RseSB0byB0aGUgSG9zdFdpbmRv
dy4KLSAgICBpZiAoZGVzdGluYXRpb24gPT0gRGVzdGluYXRpb246OkRpcmVjdGx5VG9Ib3N0V2lu
ZG93KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAKICAgICBzdGF0aWMgYm9vbCBpbml0
aWFsaXplZCA9IGZhbHNlOwogICAgIHN0YXRpYyBib29sIHN1Y2Nlc3MgPSB0cnVlOwogICAgIGlm
ICghaW5pdGlhbGl6ZWQpIHsKQEAgLTI5NiwxMCArMjkyLDEwIEBAIFJlZlB0cjxHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTD4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShHcmFwaGljc0Nv
bnRleHRHCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChh
dHRyaWJ1dGVzLCBob3N0V2luZG93LCByZW5kZXJTdHlsZSkpOwogfQogCi1HcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRy
aWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6
RGVzdGluYXRpb24gZGVzdGluYXRpb24sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBzaGFyZWRD
b250ZXh0KQotICAgIDogR3JhcGhpY3NDb250ZXh0R0woYXR0cmlidXRlcywgZGVzdGluYXRpb24s
IHNoYXJlZENvbnRleHQpCitHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0
R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5k
b3cqLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogc2hhcmVkQ29udGV4dCkKKyAgICA6IEdyYXBo
aWNzQ29udGV4dEdMKGF0dHJpYnV0ZXMsIHNoYXJlZENvbnRleHQpCiAgICAgLCBtX2NvbXBpbGVy
KGlzR0xFUzJDb21wbGlhbnQoKSA/IFNIX0VTU0xfT1VUUFVUIDogU0hfR0xTTF9DT01QQVRJQklM
SVRZX09VVFBVVCkKLSAgICAsIG1fcHJpdmF0ZShtYWtlVW5pcXVlPEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMUHJpdmF0ZT4odGhpcywgZGVzdGluYXRpb24pKQorICAgICwgbV9wcml2YXRlKG1ha2VV
bmlxdWU8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xQcml2YXRlPih0aGlzKSkKIHsKICAgICBBU1NF
UlRfVU5VU0VEKHNoYXJlZENvbnRleHQsICFzaGFyZWRDb250ZXh0KTsKICAgICBpZiAoIW1ha2VD
b250ZXh0Q3VycmVudCgpKQpAQCAtMzA5LDMzICszMDUsMzEgQEAgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRl
cyBhdHQKICAgICB2YWxpZGF0ZUF0dHJpYnV0ZXMoKTsKICAgICBhdHRyaWJ1dGVzID0gY29udGV4
dEF0dHJpYnV0ZXMoKTsgLy8gVGhleSBtYXkgaGF2ZSBjaGFuZ2VkIGR1cmluZyB2YWxpZGF0aW9u
LgogCi0gICAgaWYgKGRlc3RpbmF0aW9uID09IERlc3RpbmF0aW9uOjpPZmZzY3JlZW4pIHsKLSAg
ICAgICAgLy8gQ3JlYXRlIGEgdGV4dHVyZSB0byByZW5kZXIgaW50by4KLSAgICAgICAgOjpnbEdl
blRleHR1cmVzKDEsICZtX3RleHR1cmUpOwotICAgICAgICA6OmdsQmluZFRleHR1cmUoR0xfVEVY
VFVSRV8yRCwgbV90ZXh0dXJlKTsKLSAgICAgICAgOjpnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVS
RV8yRCwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOwotICAgICAgICA6OmdsVGV4
UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVB
Uik7Ci0gICAgICAgIDo6Z2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVf
V1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsKLSAgICAgICAgOjpnbFRleFBhcmFtZXRlcmkoR0xf
VEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOwotICAgICAg
ICA6OmdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgMCk7CisgICAgLy8gQ3JlYXRlIGEgdGV4
dHVyZSB0byByZW5kZXIgaW50by4KKyAgICA6OmdsR2VuVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7
CisgICAgOjpnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1fdGV4dHVyZSk7CisgICAgOjpn
bFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9M
SU5FQVIpOworICAgIDo6Z2xUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVf
TUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICA6OmdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJF
XzJELCBHTF9URVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAgOjpnbFRleFBh
cmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VE
R0UpOworICAgIDo6Z2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCAwKTsKICAgICAgICAgCi0g
ICAgICAgIC8vIENyZWF0ZSBhbiBGQk8uCi0gICAgICAgIDo6Z2xHZW5GcmFtZWJ1ZmZlcnMoMSwg
Jm1fZmJvKTsKLSAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9m
Ym8pOworICAgIC8vIENyZWF0ZSBhbiBGQk8uCisgICAgOjpnbEdlbkZyYW1lYnVmZmVycygxLCAm
bV9mYm8pOworICAgIDo6Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsK
ICAgICAgICAgCi0gICAgICAgIG1fc3RhdGUuYm91bmREcmF3RkJPID0gbV9zdGF0ZS5ib3VuZFJl
YWRGYm8gPSBtX2ZibzsKLSAgICAgICAgaWYgKCFhdHRyaWJ1dGVzLmFudGlhbGlhcyAmJiAoYXR0
cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpKQotICAgICAgICAgICAgOjpnbEdl
blJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKKyAgICBtX3N0YXRlLmJv
dW5kRHJhd0ZCTyA9IG1fc3RhdGUuYm91bmRSZWFkRmJvID0gbV9mYm87CisgICAgaWYgKCFhdHRy
aWJ1dGVzLmFudGlhbGlhcyAmJiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVw
dGgpKQorICAgICAgICA6OmdsR2VuUmVuZGVyYnVmZmVycygxLCAmbV9kZXB0aFN0ZW5jaWxCdWZm
ZXIpOwogICAgICAgICAKLSAgICAgICAgLy8gQ3JlYXRlIGEgbXVsdGlzYW1wbGUgRkJPLgotICAg
ICAgICBpZiAoYXR0cmlidXRlcy5hbnRpYWxpYXMpIHsKLSAgICAgICAgICAgIDo6Z2xHZW5GcmFt
ZWJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOwotICAgICAgICAgICAgOjpnbEJpbmRGcmFt
ZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7Ci0gICAgICAgICAgICBt
X3N0YXRlLmJvdW5kRHJhd0ZCTyA9IG1fc3RhdGUuYm91bmRSZWFkRkJPID0gbV9tdWx0aXNhbXBs
ZUZCTzsKLSAgICAgICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxl
Q29sb3JCdWZmZXIpOwotICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRy
aWJ1dGVzLmRlcHRoKQotICAgICAgICAgICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZt
X211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICAgICAgfQorICAgIC8vIENyZWF0
ZSBhIG11bHRpc2FtcGxlIEZCTy4KKyAgICBpZiAoYXR0cmlidXRlcy5hbnRpYWxpYXMpIHsKKyAg
ICAgICAgOjpnbEdlbkZyYW1lYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUZCTyk7CisgICAgICAg
IDo6Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOwor
ICAgICAgICBtX3N0YXRlLmJvdW5kRHJhd0ZCTyA9IG1fc3RhdGUuYm91bmRSZWFkRkJPID0gbV9t
dWx0aXNhbXBsZUZCTzsKKyAgICAgICAgOjpnbEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlz
YW1wbGVDb2xvckJ1ZmZlcik7CisgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwgfHwgYXR0
cmlidXRlcy5kZXB0aCkKKyAgICAgICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX211
bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICB9CiAgICAgCiAgICAgLy8gQU5HTEUg
aW5pdGlhbGl6YXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xQcml2YXRlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTFBy
aXZhdGUuY3BwCmluZGV4IDU4Mzc5OWViMzI2ZmU0MTBhNmQwZGM0ZjhjYTgyYmRlZTA0NGYyNzIu
LmM1MjA5ZmFmMDVlODM5YjkwNDFkM2QyOTQwMzlhYmM4NWJkMWM2ZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9w
ZW5HTFByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTFByaXZhdGUuY3BwCkBAIC0yOSwxNiArMjksOSBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUdyYXBoaWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0
ZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xQcml2YXRlKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
KiwgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKQorR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0xQcml2YXRlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTFByaXZh
dGUoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqKQogewotICAgIHN3aXRjaCAoZGVzdGluYXRpb24p
IHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpEZXN0aW5hdGlvbjo6T2Zmc2Ny
ZWVuOgotICAgICAgICBtX2dsQ29udGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRlT2Zmc2NyZWVuQ29u
dGV4dCgmUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmcoKSk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkRlc3RpbmF0
aW9uOjpEaXJlY3RseVRvSG9zdFdpbmRvdzoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgIGJyZWFrOwotICAgIH0KKyAgICBtX2dsQ29udGV4dCA9IEdMQ29udGV4dDo6Y3Jl
YXRlT2Zmc2NyZWVuQ29udGV4dCgmUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5Rm9yQ29t
cG9zaXRpbmcoKSk7CiB9CiAKIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0ZTo6fkdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0ZSgpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5H
TFByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFw
aGljc0NvbnRleHRHTE9wZW5HTFByaXZhdGUuaAppbmRleCAxYWYyZGQ2YWQ5YzhhMDVmNDg1NThm
NTk5MWJlMzQ0MTU3MDdkM2U2Li5jOTM4ZGRkMmE4MjFmODMwNjVlYjE1Yjg5ZWViMDc4YjgwMzMx
NzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0ZS5oCkBA
IC0zMSw3ICszMSw3IEBAIGNsYXNzIEJpdG1hcFRleHR1cmVHTDsKIGNsYXNzIEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMUHJpdmF0ZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6Ci0gICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xQcml2YXRlKEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMKiwgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkRlc3RpbmF0aW9uKTsKKyAgICBHcmFw
aGljc0NvbnRleHRHTE9wZW5HTFByaXZhdGUoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqKTsKICAg
ICB+R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xQcml2YXRlKCk7CiAgICAgYm9vbCBtYWtlQ29udGV4
dEN1cnJlbnQoKTsKICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMIHBsYXRmb3JtQ29udGV4
dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcApp
bmRleCBjMmY0YTIzNjFhMGFmNzEzZTFlNDZmNDBhNDE2ZDRhY2RjMGY1MjlmLi41MjM2MDVlZGM4
NWQwZWQyZjNjNzVhMDRmNDJlNTdiODA0Yjk5NWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhp
Y3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcApAQCAtNzAsMTIgKzcwLDggQEAgc3RhdGljIERl
cXVlPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgTWF4QWN0aXZlQ29udGV4dHM+JiBhY3RpdmVD
b250ZXh0cygpCiAgICAgcmV0dXJuIHNfYWN0aXZlQ29udGV4dHM7CiB9CiAKLVJlZlB0cjxHcmFw
aGljc0NvbnRleHRHTE9wZW5HTD4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShHcmFw
aGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRvdyogaG9zdFdpbmRv
dywgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKQorUmVm
UHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3Jl
YXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiBo
b3N0V2luZG93KQogewotICAgIC8vIFRoaXMgaW1wbGVtZW50YXRpb24gZG9lc24ndCBjdXJyZW50
bHkgc3VwcG9ydCByZW5kZXJpbmcgZGlyZWN0bHkgdG8gdGhlIEhvc3RXaW5kb3cuCi0gICAgaWYg
KGRlc3RpbmF0aW9uID09IERlc3RpbmF0aW9uOjpEaXJlY3RseVRvSG9zdFdpbmRvdykKLSAgICAg
ICAgcmV0dXJuIG51bGxwdHI7Ci0KICAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNl
OwogICAgIHN0YXRpYyBib29sIHN1Y2Nlc3MgPSB0cnVlOwogICAgIGlmICghaW5pdGlhbGl6ZWQp
IHsKQEAgLTExMCwxNyArMTA2LDE3IEBAIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4g
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShHcmFwaGljc0NvbnRleHRHCiB9CiAKICNp
ZiBVU0UoQU5HTEUpCi1HcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cq
LCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24sIEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMKiBzaGFyZWRDb250ZXh0KQotICAgIDogR3JhcGhpY3NDb250ZXh0
R0woYXR0cmlidXRlcywgZGVzdGluYXRpb24sIHNoYXJlZENvbnRleHQpCitHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRy
aWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCog
c2hhcmVkQ29udGV4dCkKKyAgICA6IEdyYXBoaWNzQ29udGV4dEdMKGF0dHJpYnV0ZXMsIHNoYXJl
ZENvbnRleHQpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChzaGFyZWRDb250ZXh0LCAhc2hhcmVkQ29u
dGV4dCk7CiAjaWYgRU5BQkxFKFdFQkdMMikKICAgICBtX2lzRm9yV2ViR0wyID0gYXR0cmlidXRl
cy53ZWJHTFZlcnNpb24gPT0gR3JhcGhpY3NDb250ZXh0R0xXZWJHTFZlcnNpb246OldlYkdMMjsK
ICNlbmRpZgogI2lmIFVTRShOSUNPU0lBKQotICAgIG1fbmljb3NpYUxheWVyID0gV1RGOjptYWtl
VW5pcXVlPE5pY29zaWE6OkdDR0xBTkdMRUxheWVyPigqdGhpcywgZGVzdGluYXRpb24pOworICAg
IG1fbmljb3NpYUxheWVyID0gV1RGOjptYWtlVW5pcXVlPE5pY29zaWE6OkdDR0xBTkdMRUxheWVy
PigqdGhpcyk7CiAjZWxzZQotICAgIG1fdGV4bWFwTGF5ZXIgPSBXVEY6Om1ha2VVbmlxdWU8VGV4
dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyPigqdGhpcywgZGVzdGluYXRpb24pOworICAgIG1f
dGV4bWFwTGF5ZXIgPSBXVEY6Om1ha2VVbmlxdWU8VGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxh
eWVyPigqdGhpcyk7CiAjZW5kaWYKICAgICBib29sIHN1Y2Nlc3MgPSBtYWtlQ29udGV4dEN1cnJl
bnQoKTsKICAgICBBU1NFUlRfVU5VU0VEKHN1Y2Nlc3MsIHN1Y2Nlc3MpOwpAQCAtMTI4LDY4ICsx
MjQsNjYgQEAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
KEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHQKICAgICB2YWxpZGF0ZUF0dHJpYnV0ZXMo
KTsKICAgICBhdHRyaWJ1dGVzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsgLy8gVGhleSBtYXkgaGF2
ZSBjaGFuZ2VkIGR1cmluZyB2YWxpZGF0aW9uLgogCi0gICAgaWYgKGRlc3RpbmF0aW9uID09IERl
c3RpbmF0aW9uOjpPZmZzY3JlZW4pIHsKLSAgICAgICAgR0xlbnVtIHRleHR1cmVUYXJnZXQgPSBk
cmF3aW5nQnVmZmVyVGV4dHVyZVRhcmdldCgpOwotICAgICAgICAvLyBDcmVhdGUgYSB0ZXh0dXJl
IHRvIHJlbmRlciBpbnRvLgotICAgICAgICBnbDo6R2VuVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7
Ci0gICAgICAgIGdsOjpCaW5kVGV4dHVyZSh0ZXh0dXJlVGFyZ2V0LCBtX3RleHR1cmUpOwotICAg
ICAgICBnbDo6VGV4UGFyYW1ldGVyZih0ZXh0dXJlVGFyZ2V0LCBHTF9URVhUVVJFX01BR19GSUxU
RVIsIEdMX0xJTkVBUik7Ci0gICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJmKHRleHR1cmVUYXJnZXQs
IEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKLSAgICAgICAgZ2w6OlRleFBhcmFt
ZXRlcmkodGV4dHVyZVRhcmdldCwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0Up
OwotICAgICAgICBnbDo6VGV4UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LCBHTF9URVhUVVJFX1dS
QVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7Ci0gICAgICAgIGdsOjpCaW5kVGV4dHVyZSh0ZXh0dXJl
VGFyZ2V0LCAwKTsKLQotICAgICAgICAvLyBDcmVhdGUgYW4gRkJPLgotICAgICAgICBnbDo6R2Vu
RnJhbWVidWZmZXJzKDEsICZtX2Zibyk7Ci0gICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR0xf
RlJBTUVCVUZGRVIsIG1fZmJvKTsKKyAgICBHTGVudW0gdGV4dHVyZVRhcmdldCA9IGRyYXdpbmdC
dWZmZXJUZXh0dXJlVGFyZ2V0KCk7CisgICAgLy8gQ3JlYXRlIGEgdGV4dHVyZSB0byByZW5kZXIg
aW50by4KKyAgICBnbDo6R2VuVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7CisgICAgZ2w6OkJpbmRU
ZXh0dXJlKHRleHR1cmVUYXJnZXQsIG1fdGV4dHVyZSk7CisgICAgZ2w6OlRleFBhcmFtZXRlcmYo
dGV4dHVyZVRhcmdldCwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOworICAgIGds
OjpUZXhQYXJhbWV0ZXJmKHRleHR1cmVUYXJnZXQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xf
TElORUFSKTsKKyAgICBnbDo6VGV4UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LCBHTF9URVhUVVJF
X1dSQVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAgZ2w6OlRleFBhcmFtZXRlcmkodGV4dHVy
ZVRhcmdldCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOworICAgIGdsOjpC
aW5kVGV4dHVyZSh0ZXh0dXJlVGFyZ2V0LCAwKTsKKworICAgIC8vIENyZWF0ZSBhbiBGQk8uCisg
ICAgZ2w6OkdlbkZyYW1lYnVmZmVycygxLCAmbV9mYm8pOworICAgIGdsOjpCaW5kRnJhbWVidWZm
ZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKIAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElD
UykKLSAgICAgICAgZ2w6OkdlblRleHR1cmVzKDEsICZtX2NvbXBvc2l0b3JUZXh0dXJlKTsKLSAg
ICAgICAgZ2w6OkJpbmRUZXh0dXJlKHRleHVyZVR5cGUsIG1fY29tcG9zaXRvclRleHR1cmUpOwot
ICAgICAgICBnbDo6VGV4UGFyYW1ldGVyZih0ZXh1cmVUeXBlLCBHTF9URVhUVVJFX01BR19GSUxU
RVIsIEdMX0xJTkVBUik7Ci0gICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJmKHRleHVyZVR5cGUsIEdM
X1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKLSAgICAgICAgZ2w6OlRleFBhcmFtZXRl
cmkodGV4dXJlVHlwZSwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0UpOwotICAg
ICAgICBnbDo6VGV4UGFyYW1ldGVyaSh0ZXh1cmVUeXBlLCBHTF9URVhUVVJFX1dSQVBfVCwgR0xf
Q0xBTVBfVE9fRURHRSk7Ci0KLSAgICAgICAgZ2w6OkdlblRleHR1cmVzKDEsICZtX2ludGVybWVk
aWF0ZVRleHR1cmUpOwotICAgICAgICBnbDo6QmluZFRleHR1cmUodGV4dXJlVHlwZSwgbV9pbnRl
cm1lZGlhdGVUZXh0dXJlKTsKLSAgICAgICAgZ2w6OlRleFBhcmFtZXRlcmYodGV4dXJlVHlwZSwg
R0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOwotICAgICAgICBnbDo6VGV4UGFyYW1l
dGVyZih0ZXh1cmVUeXBlLCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7Ci0gICAg
ICAgIGdsOjpUZXhQYXJhbWV0ZXJpKHRleHVyZVR5cGUsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9D
TEFNUF9UT19FREdFKTsKLSAgICAgICAgZ2w6OlRleFBhcmFtZXRlcmkodGV4dXJlVHlwZSwgR0xf
VEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOwotCi0gICAgICAgIGdsOjpCaW5kVGV4
dHVyZSh0ZXh1cmVUeXBlLCAwKTsKKyAgICBnbDo6R2VuVGV4dHVyZXMoMSwgJm1fY29tcG9zaXRv
clRleHR1cmUpOworICAgIGdsOjpCaW5kVGV4dHVyZSh0ZXh0dXJlVGFyZ2V0LCBtX2NvbXBvc2l0
b3JUZXh0dXJlKTsKKyAgICBnbDo6VGV4UGFyYW1ldGVyZih0ZXh0dXJlVGFyZ2V0LCBHTF9URVhU
VVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7CisgICAgZ2w6OlRleFBhcmFtZXRlcmYodGV4dHVy
ZVRhcmdldCwgR0xfVEVYVFVSRV9NSU5fRklMVEVSLCBHTF9MSU5FQVIpOworICAgIGdsOjpUZXhQ
YXJhbWV0ZXJpKHRleHR1cmVUYXJnZXQsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19F
REdFKTsKKyAgICBnbDo6VGV4UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LCBHTF9URVhUVVJFX1dS
QVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7CisKKyAgICBnbDo6R2VuVGV4dHVyZXMoMSwgJm1faW50
ZXJtZWRpYXRlVGV4dHVyZSk7CisgICAgZ2w6OkJpbmRUZXh0dXJlKHRleHR1cmVUYXJnZXQsIG1f
aW50ZXJtZWRpYXRlVGV4dHVyZSk7CisgICAgZ2w6OlRleFBhcmFtZXRlcmYodGV4dHVyZVRhcmdl
dCwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOworICAgIGdsOjpUZXhQYXJhbWV0
ZXJmKHRleHR1cmVUYXJnZXQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAg
ICBnbDo6VGV4UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LCBHTF9URVhUVVJFX1dSQVBfUywgR0xf
Q0xBTVBfVE9fRURHRSk7CisgICAgZ2w6OlRleFBhcmFtZXRlcmkodGV4dHVyZVRhcmdldCwgR0xf
VEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOworCisgICAgZ2w6OkJpbmRUZXh0dXJl
KHRleHR1cmVUYXJnZXQsIDApOwogI2VuZGlmCiAKLSAgICAgICAgLy8gQ3JlYXRlIGEgbXVsdGlz
YW1wbGUgRkJPLgotICAgICAgICBBU1NFUlQobV9zdGF0ZS5ib3VuZFJlYWRGQk8gPT0gbV9zdGF0
ZS5ib3VuZERyYXdGQk8pOwotICAgICAgICBpZiAoYXR0cmlidXRlcy5hbnRpYWxpYXMpIHsKLSAg
ICAgICAgICAgIGdsOjpHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOwotICAg
ICAgICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBs
ZUZCTyk7Ci0gICAgICAgICAgICBtX3N0YXRlLmJvdW5kRHJhd0ZCTyA9IG1fc3RhdGUuYm91bmRS
ZWFkRkJPID0gbV9tdWx0aXNhbXBsZUZCTzsKLSAgICAgICAgICAgIGdsOjpHZW5SZW5kZXJidWZm
ZXJzKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAgICAgICAgaWYgKGF0dHJp
YnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQotICAgICAgICAgICAgICAgIGdsOjpH
ZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIEJpbmQgY2FudmFzIEZCTy4KLSAgICAgICAg
ICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKLSAgICAgICAg
ICAgIG1fc3RhdGUuYm91bmREcmF3RkJPID0gbV9zdGF0ZS5ib3VuZFJlYWRGQk8gPSBtX2ZibzsK
LSAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0aCkK
LSAgICAgICAgICAgICAgICBnbDo6R2VuUmVuZGVyYnVmZmVycygxLCAmbV9kZXB0aFN0ZW5jaWxC
dWZmZXIpOwotICAgICAgICB9CisgICAgLy8gQ3JlYXRlIGEgbXVsdGlzYW1wbGUgRkJPLgorICAg
IEFTU0VSVChtX3N0YXRlLmJvdW5kUmVhZEZCTyA9PSBtX3N0YXRlLmJvdW5kRHJhd0ZCTyk7Cisg
ICAgaWYgKGF0dHJpYnV0ZXMuYW50aWFsaWFzKSB7CisgICAgICAgIGdsOjpHZW5GcmFtZWJ1ZmZl
cnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOworICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdM
X0ZSQU1FQlVGRkVSLCBtX211bHRpc2FtcGxlRkJPKTsKKyAgICAgICAgbV9zdGF0ZS5ib3VuZERy
YXdGQk8gPSBtX3N0YXRlLmJvdW5kUmVhZEZCTyA9IG1fbXVsdGlzYW1wbGVGQk87CisgICAgICAg
IGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOworICAg
ICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpCisgICAgICAg
ICAgICBnbDo6R2VuUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1
ZmZlcik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gQmluZCBjYW52YXMgRkJPLgorICAgICAg
ICBnbDo6QmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX2Zibyk7CisgICAgICAgIG1f
c3RhdGUuYm91bmREcmF3RkJPID0gbV9zdGF0ZS5ib3VuZFJlYWRGQk8gPSBtX2ZibzsKKyAgICAg
ICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQorICAgICAgICAg
ICAgZ2w6OkdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICB9
CiAKICAgICBnbDo6Q2xlYXJDb2xvcigwLCAwLCAwLCAwKTsKIH0KICNlbHNlCi1HcmFwaGljc0Nv
bnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xB
dHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBzaGFy
ZWRDb250ZXh0KQotICAgIDogR3JhcGhpY3NDb250ZXh0R0woYXR0cmlidXRlcywgZGVzdGluYXRp
b24sIHNoYXJlZENvbnRleHQpCitHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RX
aW5kb3cqLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogc2hhcmVkQ29udGV4dCkKKyAgICA6IEdy
YXBoaWNzQ29udGV4dEdMKGF0dHJpYnV0ZXMsIHNoYXJlZENvbnRleHQpCiB7CiAgICAgQVNTRVJU
X1VOVVNFRChzaGFyZWRDb250ZXh0LCAhc2hhcmVkQ29udGV4dCk7CiAjaWYgVVNFKE5JQ09TSUEp
Ci0gICAgbV9uaWNvc2lhTGF5ZXIgPSBtYWtlVW5pcXVlPE5pY29zaWE6OkdDR0xMYXllcj4oKnRo
aXMsIGRlc3RpbmF0aW9uKTsKKyAgICBtX25pY29zaWFMYXllciA9IG1ha2VVbmlxdWU8Tmljb3Np
YTo6R0NHTExheWVyPigqdGhpcyk7CiAjZWxzZQotICAgIG1fdGV4bWFwTGF5ZXIgPSBtYWtlVW5p
cXVlPFRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcj4oKnRoaXMsIGRlc3RpbmF0aW9uKTsK
KyAgICBtX3RleG1hcExheWVyID0gbWFrZVVuaXF1ZTxUZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3Jt
TGF5ZXI+KCp0aGlzKTsKICNlbmRpZgogCiAgICAgYm9vbCBzdWNjZXNzID0gbWFrZUNvbnRleHRD
dXJyZW50KCk7CkBAIC0xOTgsNjAgKzE5Miw1OCBAQCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dAog
ICAgIHZhbGlkYXRlQXR0cmlidXRlcygpOwogICAgIGF0dHJpYnV0ZXMgPSBjb250ZXh0QXR0cmli
dXRlcygpOyAvLyBUaGV5IG1heSBoYXZlIGNoYW5nZWQgZHVyaW5nIHZhbGlkYXRpb24uCiAKLSAg
ICBpZiAoZGVzdGluYXRpb24gPT0gRGVzdGluYXRpb246Ok9mZnNjcmVlbikgewotICAgICAgICAv
LyBDcmVhdGUgYSB0ZXh0dXJlIHRvIHJlbmRlciBpbnRvLgotICAgICAgICA6OmdsR2VuVGV4dHVy
ZXMoMSwgJm1fdGV4dHVyZSk7Ci0gICAgICAgIDo6Z2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJE
LCBtX3RleHR1cmUpOwotICAgICAgICA6OmdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBH
TF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7Ci0gICAgICAgIDo6Z2xUZXhQYXJhbWV0
ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKLSAg
ICAgICAgOjpnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1Ms
IEdMX0NMQU1QX1RPX0VER0UpOwotICAgICAgICA6OmdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJF
XzJELCBHTF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7Ci0gICAgICAgIDo6Z2xC
aW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCAwKTsKKyAgICAvLyBDcmVhdGUgYSB0ZXh0dXJlIHRv
IHJlbmRlciBpbnRvLgorICAgIDo6Z2xHZW5UZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKKyAgICA6
OmdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgbV90ZXh0dXJlKTsKKyAgICA6OmdsVGV4UGFy
YW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7
CisgICAgOjpnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NSU5fRklM
VEVSLCBHTF9MSU5FQVIpOworICAgIDo6Z2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdM
X1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsKKyAgICA6OmdsVGV4UGFyYW1ldGVy
aShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7Cisg
ICAgOjpnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIDApOwogCi0gICAgICAgIC8vIENyZWF0
ZSBhbiBGQk8uCi0gICAgICAgIDo6Z2xHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fZmJvKTsKLSAgICAg
ICAgOjpnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9mYm8pOworICAgIC8vIENy
ZWF0ZSBhbiBGQk8uCisgICAgOjpnbEdlbkZyYW1lYnVmZmVycygxLCAmbV9mYm8pOworICAgIDo6
Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKIAogI2lmIFVTRShDT09S
RElOQVRFRF9HUkFQSElDUykKLSAgICAgICAgOjpnbEdlblRleHR1cmVzKDEsICZtX2NvbXBvc2l0
b3JUZXh0dXJlKTsKLSAgICAgICAgOjpnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1fY29t
cG9zaXRvclRleHR1cmUpOwotICAgICAgICA6OmdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJE
LCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7Ci0gICAgICAgIDo6Z2xUZXhQYXJh
bWV0ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsK
LSAgICAgICAgOjpnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQ
X1MsIEdMX0NMQU1QX1RPX0VER0UpOwotICAgICAgICA6OmdsVGV4UGFyYW1ldGVyaShHTF9URVhU
VVJFXzJELCBHTF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7Ci0KLSAgICAgICAg
OjpnbEdlblRleHR1cmVzKDEsICZtX2ludGVybWVkaWF0ZVRleHR1cmUpOwotICAgICAgICA6Omds
QmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgbV9pbnRlcm1lZGlhdGVUZXh0dXJlKTsKLSAgICAg
ICAgOjpnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NQUdfRklMVEVS
LCBHTF9MSU5FQVIpOwotICAgICAgICA6OmdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBH
TF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7Ci0gICAgICAgIDo6Z2xUZXhQYXJhbWV0
ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsK
LSAgICAgICAgOjpnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQ
X1QsIEdMX0NMQU1QX1RPX0VER0UpOwotCi0gICAgICAgIDo6Z2xCaW5kVGV4dHVyZShHTF9URVhU
VVJFXzJELCAwKTsKKyAgICA6OmdsR2VuVGV4dHVyZXMoMSwgJm1fY29tcG9zaXRvclRleHR1cmUp
OworICAgIDo6Z2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBtX2NvbXBvc2l0b3JUZXh0dXJl
KTsKKyAgICA6OmdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01BR19G
SUxURVIsIEdMX0xJTkVBUik7CisgICAgOjpnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwg
R0xfVEVYVFVSRV9NSU5fRklMVEVSLCBHTF9MSU5FQVIpOworICAgIDo6Z2xUZXhQYXJhbWV0ZXJp
KEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsKKyAg
ICA6OmdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfVCwgR0xf
Q0xBTVBfVE9fRURHRSk7CisKKyAgICA6OmdsR2VuVGV4dHVyZXMoMSwgJm1faW50ZXJtZWRpYXRl
VGV4dHVyZSk7CisgICAgOjpnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1faW50ZXJtZWRp
YXRlVGV4dHVyZSk7CisgICAgOjpnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVY
VFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOworICAgIDo6Z2xUZXhQYXJhbWV0ZXJmKEdMX1RF
WFRVUkVfMkQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICA6OmdsVGV4
UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9f
RURHRSk7CisgICAgOjpnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9X
UkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOworCisgICAgOjpnbEJpbmRUZXh0dXJlKEdMX1RFWFRV
UkVfMkQsIDApOwogI2VuZGlmCiAKLSAgICAgICAgLy8gQ3JlYXRlIGEgbXVsdGlzYW1wbGUgRkJP
LgotICAgICAgICBBU1NFUlQobV9zdGF0ZS5ib3VuZFJlYWRGQk8gPT0gbV9zdGF0ZS5ib3VuZERy
YXdGQk8pOwotICAgICAgICBpZiAoYXR0cmlidXRlcy5hbnRpYWxpYXMpIHsKLSAgICAgICAgICAg
IDo6Z2xHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOwotICAgICAgICAgICAg
OjpnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7Ci0g
ICAgICAgICAgICBtX3N0YXRlLmJvdW5kRHJhd0ZCTyA9IG1fc3RhdGUuYm91bmRSZWFkRkJPID0g
bV9tdWx0aXNhbXBsZUZCTzsKLSAgICAgICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZt
X211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3Rl
bmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQotICAgICAgICAgICAgICAgIDo6Z2xHZW5SZW5kZXJi
dWZmZXJzKDEsICZtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgIC8vIEJpbmQgY2FudmFzIEZCTy4KLSAgICAgICAgICAgIGdsQmlu
ZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpGUkFNRUJVRkZFUiwgbV9mYm8p
OwotICAgICAgICAgICAgbV9zdGF0ZS5ib3VuZERyYXdGQk8gPSBtX3N0YXRlLmJvdW5kUmVhZEZC
TyA9IG1fZmJvOworICAgIC8vIENyZWF0ZSBhIG11bHRpc2FtcGxlIEZCTy4KKyAgICBBU1NFUlQo
bV9zdGF0ZS5ib3VuZFJlYWRGQk8gPT0gbV9zdGF0ZS5ib3VuZERyYXdGQk8pOworICAgIGlmIChh
dHRyaWJ1dGVzLmFudGlhbGlhcykgeworICAgICAgICA6OmdsR2VuRnJhbWVidWZmZXJzKDEsICZt
X211bHRpc2FtcGxlRkJPKTsKKyAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJV
RkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7CisgICAgICAgIG1fc3RhdGUuYm91bmREcmF3RkJPID0g
bV9zdGF0ZS5ib3VuZFJlYWRGQk8gPSBtX211bHRpc2FtcGxlRkJPOworICAgICAgICA6OmdsR2Vu
UmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKKyAgICAgICAgaWYg
KGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQorICAgICAgICAgICAgOjpn
bEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEJpbmQgY2FudmFzIEZCTy4KKyAgICAgICAgZ2xCaW5k
RnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkZSQU1FQlVGRkVSLCBtX2Zibyk7
CisgICAgICAgIG1fc3RhdGUuYm91bmREcmF3RkJPID0gbV9zdGF0ZS5ib3VuZFJlYWRGQk8gPSBt
X2ZibzsKICNpZiBVU0UoT1BFTkdMX0VTKQotICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZXMuZGVw
dGgpCi0gICAgICAgICAgICAgICAgZ2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoQnVmZmVy
KTsKLSAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwpCi0gICAgICAgICAgICAgICAg
Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX3N0ZW5jaWxCdWZmZXIpOworICAgICAgICBpZiAoYXR0
cmlidXRlcy5kZXB0aCkKKyAgICAgICAgICAgIGdsR2VuUmVuZGVyYnVmZmVycygxLCAmbV9kZXB0
aEJ1ZmZlcik7CisgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwpCisgICAgICAgICAgICBn
bEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fc3RlbmNpbEJ1ZmZlcik7CiAjZW5kaWYKLSAgICAgICAg
ICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0aCkKLSAgICAgICAg
ICAgICAgICBnbEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAg
ICAgICAgfQorICAgICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVw
dGgpCisgICAgICAgICAgICBnbEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhTdGVuY2lsQnVm
ZmVyKTsKICAgICB9CiAKICNpZiAhVVNFKE9QRU5HTF9FUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3Jt
TGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5jcHAKaW5kZXggOTdkNWFhN2ZhNmQ2MzVlNmU5ZmVk
MDA0MzlhNDM0YzkxNjlhZWUwYi4uODU5YTA0NWI3MGMyMmY2ODM2YTNlMzcxMzU2MjI3MjY2NmMx
YTQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5j
cHAKQEAgLTMzLDIzICszMywxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVRleHR1cmVN
YXBwZXJHQ0dMUGxhdGZvcm1MYXllcjo6VGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyKEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMJiBjb250ZXh0LCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6
RGVzdGluYXRpb24gZGVzdGluYXRpb24pCitUZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXI6
OlRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcihHcmFwaGljc0NvbnRleHRHTE9wZW5HTCYg
Y29udGV4dCkKICAgICA6IG1fY29udGV4dChjb250ZXh0KQogewotICAgIHN3aXRjaCAoZGVzdGlu
YXRpb24pIHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpEZXN0aW5hdGlvbjo6
T2Zmc2NyZWVuOiB7Ci0gICAgICAgIGF1dG8gc2hhcmluZ0NvbnRleHQgPSBQbGF0Zm9ybURpc3Bs
YXk6OnNoYXJlZERpc3BsYXlGb3JDb21wb3NpdGluZygpLnNoYXJpbmdHTENvbnRleHQoKS0+cGxh
dGZvcm1Db250ZXh0KCk7CisgICAgYXV0byBzaGFyaW5nQ29udGV4dCA9IFBsYXRmb3JtRGlzcGxh
eTo6c2hhcmVkRGlzcGxheUZvckNvbXBvc2l0aW5nKCkuc2hhcmluZ0dMQ29udGV4dCgpLT5wbGF0
Zm9ybUNvbnRleHQoKTsKICNpZiBFTkFCTEUoV0VCR0wyKQotICAgICAgICBtX2dsQ29udGV4dCA9
IEFOR0xFQ29udGV4dDo6Y3JlYXRlQ29udGV4dChzaGFyaW5nQ29udGV4dCwgY29udGV4dC5jb250
ZXh0QXR0cmlidXRlcygpLndlYkdMVmVyc2lvbiA9PSBHcmFwaGljc0NvbnRleHRHTFdlYkdMVmVy
c2lvbjo6V2ViR0wyKTsKKyAgICBtX2dsQ29udGV4dCA9IEFOR0xFQ29udGV4dDo6Y3JlYXRlQ29u
dGV4dChzaGFyaW5nQ29udGV4dCwgY29udGV4dC5jb250ZXh0QXR0cmlidXRlcygpLndlYkdMVmVy
c2lvbiA9PSBHcmFwaGljc0NvbnRleHRHTFdlYkdMVmVyc2lvbjo6V2ViR0wyKTsKICNlbHNlCi0g
ICAgICAgIG1fZ2xDb250ZXh0ID0gQU5HTEVDb250ZXh0OjpjcmVhdGVDb250ZXh0KHNoYXJpbmdD
b250ZXh0LCBmYWxzZSk7CisgICAgbV9nbENvbnRleHQgPSBBTkdMRUNvbnRleHQ6OmNyZWF0ZUNv
bnRleHQoc2hhcmluZ0NvbnRleHQsIGZhbHNlKTsKICNlbmRpZgotICAgICAgICBicmVhazsKLSAg
ICB9Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6RGVzdGluYXRpb246OkRpcmVj
dGx5VG9Ib3N0V2luZG93OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgfQogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIG1fcGxh
dGZvcm1MYXllclByb3h5ID0gYWRvcHRSZWYobmV3IFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVy
UHJveHkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyLmgK
aW5kZXggNmRjMGZmMmNhZDhhMDY1MWNiY2RiYWRlNGUzY2U3OGZiMmY1MTE0Yi4uNDA0MjY0YTIz
M2YwMGQyYWEyN2Y1ODZkNWU3ZjMwNGI1OTY1MjJlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXll
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIuaApAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBUZXh0dXJl
TWFwcGVyUGxhdGZvcm1MYXllclByb3h5OwogY2xhc3MgVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9y
bUxheWVyIDogcHVibGljIFBsYXRmb3JtTGF5ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgotICAgIFRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcihHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTCYsIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpEZXN0aW5hdGlvbik7
CisgICAgVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyKEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMJik7CiAgICAgdmlydHVhbCB+VGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyKCk7CiAK
ICAgICBib29sIG1ha2VDb250ZXh0Q3VycmVudCgpOwo=
</data>
<flag name="commit-queue"
          id="436747"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418709</attachid>
            <date>2021-01-28 23:56:21 -0800</date>
            <delta_ts>2021-01-29 12:03:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221122-20210129165620.patch</filename>
            <type>text/plain</type>
            <size>35453</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMDQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzE4ZDQwNmI5YWFkYWI3
ZGNhZWFhNTE4Y2JjZGFiZTU5OWQ4ZDAxMC4uMTQ2ODM4ZTE2MGQ5NzNjNTYyZDQwODllOGYwZGMx
ZTA0MTZmNDExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTAxLTI4ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFJlbW92ZSB1
bnVzZWQgR3JhcGhpY3NDb250ZXh0R0w6OkRlc3RpbmF0aW9uIGVudW0gY2xhc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTEyMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IHdhcyB1c2VkIGJ5IENo
cm9taXVtIHBvcnQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHRHTC5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0w6OmRlc3RpbmF0aW9u
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFw
aGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0R0xPcGVuR0w6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5jcHA6CisgICAg
ICAgIChOaWNvc2lhOjpHQ0dMQU5HTEVMYXllcjo6R0NHTEFOR0xFTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dM
TGF5ZXIuY3BwOgorICAgICAgICAoTmljb3NpYTo6R0NHTExheWVyOjpHQ0dMTGF5ZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xFUy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTFByaXZhdGU6OkdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMUHJpdmF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMUHJpdmF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOiBGaXggYSBj
b21waWxhdGlvbiBlcnJvciBieSByZW5hbWluZyB0ZXh1cmVUeXBlIHRvIHRleHR1cmVUYXJnZXQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxh
dGZvcm1MYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0NHTFBsYXRm
b3JtTGF5ZXI6OlRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5oOgor
CiAyMDIxLTAxLTI4ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAK
ICAgICAgICAgTWlub3IgY2xlYW51cCBpbiBDU1NGb250RmFjZVNldENsaWVudApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuY3Bw
CmluZGV4IDk1MDNiNGE3ZTIwN2RkYTZjZmI3YjI2M2FjOWYzMjE4MWVhZTRiNzUuLjhiMzQwZjlj
MGVhM2E2NTI0YmFiMmMzM2Y5YzE4MWZkNmE5M2UxZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5jcHAKQEAgLTQxNSw5
ICs0MTUsOCBAQCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0w+IEdyYXBoaWNzQ29udGV4dEdMOjpj
cmVhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaQogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKLUdyYXBoaWNzQ29udGV4dEdMOjpHcmFwaGljc0NvbnRleHRHTChHcmFwaGljc0NvbnRleHRH
TEF0dHJpYnV0ZXMgYXR0cnMsIERlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBHcmFwaGljc0NvbnRl
eHRHTCopCitHcmFwaGljc0NvbnRleHRHTDo6R3JhcGhpY3NDb250ZXh0R0woR3JhcGhpY3NDb250
ZXh0R0xBdHRyaWJ1dGVzIGF0dHJzLCBHcmFwaGljc0NvbnRleHRHTCopCiAgICAgOiBtX2F0dHJz
KGF0dHJzKQotICAgICwgbV9kZXN0aW5hdGlvbihkZXN0aW5hdGlvbikKIHsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmgK
aW5kZXggMmFkMTQ3ZjZlYWI5NGNmM2JkZjAzYmM2ZmRjMjExN2Q0YWUwMDUwNC4uMDAyNjI0NWU0
Nzk3MjdkZWZjYzAxMWU2ZThhMWZkYzU0ZTMzMWM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5oCkBAIC03NDksMTEgKzc0
OSw2IEBAIHB1YmxpYzoKICAgICAgICAgTnVtRm9ybWF0cwogICAgIH07CiAKLSAgICBlbnVtIGNs
YXNzIERlc3RpbmF0aW9uIDogdWludDhfdCB7Ci0gICAgICAgIE9mZnNjcmVlbiwKLSAgICAgICAg
RGlyZWN0bHlUb0hvc3RXaW5kb3csCi0gICAgfTsKLQogICAgIGVudW0gY2xhc3MgQ2hhbm5lbEJp
dHMgOiB1aW50OF90IHsKICAgICAgICAgUmVkID0gMSwKICAgICAgICAgR3JlZW4gPSAyLApAQCAt
OTE1LDcgKzkxMCw3IEBAIHB1YmxpYzoKICAgICAvLyBIb3N0V2luZG93IG1pZ2h0IGFmZmVjdCB0
aGUgZGVjaXNpb24gd2hpY2ggYmFja2VuZCBpcyB0byBiZSB1c2VkLgogICAgIHN0YXRpYyBSZWZQ
dHI8R3JhcGhpY3NDb250ZXh0R0w+IGNyZWF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJp
YnV0ZXMmLCBIb3N0V2luZG93Kik7CiAKLSAgICBHcmFwaGljc0NvbnRleHRHTChHcmFwaGljc0Nv
bnRleHRHTEF0dHJpYnV0ZXMsIERlc3RpbmF0aW9uID0gRGVzdGluYXRpb246Ok9mZnNjcmVlbiwg
R3JhcGhpY3NDb250ZXh0R0wqIHNoYXJlZENvbnRleHQgPSBudWxscHRyKTsKKyAgICBHcmFwaGlj
c0NvbnRleHRHTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMsIEdyYXBoaWNzQ29udGV4dEdM
KiBzaGFyZWRDb250ZXh0ID0gbnVsbHB0cik7CiAgICAgdmlydHVhbCB+R3JhcGhpY3NDb250ZXh0
R0woKSA9IGRlZmF1bHQ7CiAKICAgICB2b2lkIGFkZENsaWVudChDbGllbnQmIGNsaWVudCkgeyBt
X2NsaWVudHMuYWRkKCZjbGllbnQpOyB9CkBAIC0xMzU5LDggKzEzNTQsNiBAQCBwdWJsaWM6CiAg
ICAgLy8gUmV0dXJucyB0cnVlIHVwb24gc3VjY2Vzcy4KICAgICBzdGF0aWMgYm9vbCBwYWNrSW1h
Z2VEYXRhKEltYWdlKiwgY29uc3Qgdm9pZCogcGl4ZWxzLCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xl
bnVtIHR5cGUsIGJvb2wgZmxpcFksIEFscGhhT3AsIERhdGFGb3JtYXQgc291cmNlRm9ybWF0LCB1
bnNpZ25lZCBzb3VyY2VJbWFnZVdpZHRoLCB1bnNpZ25lZCBzb3VyY2VJbWFnZUhlaWdodCwgY29u
c3QgSW50UmVjdCYgc291cmNlSW1hZ2VTdWJSZWN0YW5nbGUsIGludCBkZXB0aCwgdW5zaWduZWQg
c291cmNlVW5wYWNrQWxpZ25tZW50LCBpbnQgdW5wYWNrSW1hZ2VIZWlnaHQsIFZlY3Rvcjx1aW50
OF90PiYgZGF0YSk7CiAKLSAgICBEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fZGVzdGluYXRpb247IH0KLQogcHJvdGVjdGVkOgogICAgIGludCBtX2N1cnJlbnRXaWR0
aCB7IDAgfTsKICAgICBpbnQgbV9jdXJyZW50SGVpZ2h0IHsgMCB9OwpAQCAtMTM2OCw3ICsxMzYx
LDYgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIEdyYXBoaWNzQ29udGV4dEdMQXR0cmli
dXRlcyBtX2F0dHJzOwotICAgIERlc3RpbmF0aW9uIG1fZGVzdGluYXRpb247CiB9OwogCiBpbmxp
bmUgR0NHTGZsb2F0IEdyYXBoaWNzQ29udGV4dEdMOjpnZXRGbG9hdChHQ0dMZW51bSBwbmFtZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBo
aWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCmluZGV4IDM0YWZjODIw
YjJkYjgyODhkY2ZlMTcxZDg2NDgzNjg3MTE2OTgyZjIuLjg0MmZiNWZhZGExMDRjOTA3MjM5Mzgw
M2E0NTkyY2NhMmFhZWNhOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xD
b2NvYS5tbQpAQCAtMTI4LDEyICsxMjgsOCBAQCBzdGF0aWMgYm9vbCBuZWVkc0VBR0xPbk1hYygp
CiAjZW5kaWYKIAogCi1SZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJzLCBI
b3N0V2luZG93KiBob3N0V2luZG93LCBHcmFwaGljc0NvbnRleHRHTDo6RGVzdGluYXRpb24gZGVz
dGluYXRpb24pCitSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0
V2luZG93KiBob3N0V2luZG93KQogewotICAgIC8vIFRoaXMgaW1wbGVtZW50YXRpb24gZG9lc24n
dCBjdXJyZW50bHkgc3VwcG9ydCByZW5kZXJpbmcgZGlyZWN0bHkgdG8gdGhlIEhvc3RXaW5kb3cu
Ci0gICAgaWYgKGRlc3RpbmF0aW9uID09IERlc3RpbmF0aW9uOjpEaXJlY3RseVRvSG9zdFdpbmRv
dykKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KICAgICAvLyBNYWtlIHNwYWNlIGZvciB0aGUg
aW5jb21pbmcgY29udGV4dCBpZiB3ZSdyZSBmdWxsLgogICAgIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnJlY3ljbGVDb250ZXh0SWZOZWNlc3NhcnkoKTsK
ICAgICBpZiAoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCku
aGFzVG9vTWFueUNvbnRleHRzKCkpCkBAIC0xNjUsNyArMTYxLDcgQEAgUmVmPEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlRm9yR1BVUHJvY2Vz
cyhjb25zdAogfQogCiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2luZG93KiwgR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wqIHNoYXJlZENvbnRleHQsIEdyYXBoaWNzQ29udGV4dEdMSU9T
dXJmYWNlU3dhcENoYWluKiBzd2FwQ2hhaW4pCi0gICAgOiBHcmFwaGljc0NvbnRleHRHTChhdHRy
cywgRGVzdGluYXRpb246Ok9mZnNjcmVlbiwgc2hhcmVkQ29udGV4dCkKKyAgICA6IEdyYXBoaWNz
Q29udGV4dEdMKGF0dHJzLCBzaGFyZWRDb250ZXh0KQogewogICAgIG1faXNGb3JXZWJHTDIgPSBh
dHRycy53ZWJHTFZlcnNpb24gPT0gR3JhcGhpY3NDb250ZXh0R0xXZWJHTFZlcnNpb246OldlYkdM
MjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3Np
YS90ZXhtYXAvTmljb3NpYUdDR0xBTkdMRUxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5jcHAKaW5k
ZXggODFhOTUyNjlkZTU3ZTM0Y2ZkZGQ0MDMzZDc0NjY2ZmYxMjI2NzYyOS4uOGRmOWY3OWJjYzJl
YmIwNWE3OGJlODM5YWJlYTA2NWU5YWJmYWM5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xBTkdMRUxheWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9O
aWNvc2lhR0NHTEFOR0xFTGF5ZXIuY3BwCkBAIC0xNjYsMTcgKzE2NiwxMCBAQCBQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dEdMIEdDR0xBTkdMRUxheWVyOjpBTkdMRUNvbnRleHQ6OnBsYXRmb3JtQ29u
dGV4dCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29udGV4dDsKIH0KIAotR0NHTEFOR0xFTGF5ZXI6
OkdDR0xBTkdMRUxheWVyKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMJiBjb250ZXh0LCBHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24pCitHQ0dMQU5HTEVMYXll
cjo6R0NHTEFOR0xFTGF5ZXIoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wmIGNvbnRleHQpCiAgICAg
OiBHQ0dMTGF5ZXIoY29udGV4dCkKKyAgICAsIG1fYW5nbGVDb250ZXh0KEFOR0xFQ29udGV4dDo6
Y3JlYXRlQ29udGV4dCgpKQogewotICAgIHN3aXRjaCAoZGVzdGluYXRpb24pIHsKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuOgotICAgICAg
ICBtX2FuZ2xlQ29udGV4dCA9IEFOR0xFQ29udGV4dDo6Y3JlYXRlQ29udGV4dCgpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpEZXN0aW5hdGlvbjo6
RGlyZWN0bHlUb0hvc3RXaW5kb3c6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
ICAgICBicmVhazsKLSAgICB9CiB9CiAKIEdDR0xBTkdMRUxheWVyOjp+R0NHTEFOR0xFTGF5ZXIo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90
ZXhtYXAvTmljb3NpYUdDR0xBTkdMRUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTEFOR0xFTGF5ZXIuaAppbmRleCA3Mzg4
ZTU3YzFmODEyOTFkNGM1NWEwZjAyMTMzZTcxY2NhNjk1YjdhLi43ZjIxZGE1OTA4MWE4YThkM2Q2
NTYyZGYzODI0NTdlYjIxNmU2ZDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTEFOR0xFTGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NH
TEFOR0xFTGF5ZXIuaApAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiAgICAgICAgIEVHTFN1cmZh
Y2UgbV9zdXJmYWNlIHsgbnVsbHB0ciB9OwogICAgIH07CiAKLSAgICBHQ0dMQU5HTEVMYXllcihX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTCYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpEZXN0aW5hdGlvbik7CisgICAgR0NHTEFOR0xFTGF5ZXIoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wmKTsKICAgICB2aXJ0dWFsIH5HQ0dMQU5HTEVMYXllcigpOwog
CiAgICAgYm9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dM
TGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXht
YXAvTmljb3NpYUdDR0xMYXllci5jcHAKaW5kZXggODM2MTgzNzM4YTZmMWFlMmYzMDU2YjJjYTk4
N2QxM2ZlY2RkODYzNS4uNDlhYWYyOWZlYzE4Y2IyNTZiNDYyYzI2MjIyNDRiZTEwZGI4YzBlOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXht
YXAvTmljb3NpYUdDR0xMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xMYXllci5jcHAKQEAgLTUzLDE4ICs1Mywx
MSBAQCBHQ0dMTGF5ZXI6OkdDR0xMYXllcihHcmFwaGljc0NvbnRleHRHTE9wZW5HTCYgY29udGV4
dCkKIHsKIH0KIAotR0NHTExheWVyOjpHQ0dMTGF5ZXIoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wm
IGNvbnRleHQsIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlv
bikKK0dDR0xMYXllcjo6R0NHTExheWVyKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMJiBjb250ZXh0
KQogICAgIDogbV9jb250ZXh0KGNvbnRleHQpCiAgICAgLCBtX2NvbnRlbnRMYXllcihOaWNvc2lh
OjpDb250ZW50TGF5ZXI6OmNyZWF0ZShOaWNvc2lhOjpDb250ZW50TGF5ZXJUZXh0dXJlTWFwcGVy
SW1wbDo6Y3JlYXRlRmFjdG9yeSgqdGhpcykpKQogewotICAgIHN3aXRjaCAoZGVzdGluYXRpb24p
IHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpEZXN0aW5hdGlvbjo6T2Zmc2Ny
ZWVuOgotICAgICAgICBtX2dsQ29udGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRlT2Zmc2NyZWVuQ29u
dGV4dCgmUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmcoKSk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkRlc3RpbmF0
aW9uOjpEaXJlY3RseVRvSG9zdFdpbmRvdzoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgIGJyZWFrOwotICAgIH0KKyAgICBtX2dsQ29udGV4dCA9IEdMQ29udGV4dDo6Y3Jl
YXRlT2Zmc2NyZWVuQ29udGV4dCgmUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5Rm9yQ29t
cG9zaXRpbmcoKSk7CiB9CiAKIEdDR0xMYXllcjo6fkdDR0xMYXllcigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NH
TExheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1h
cC9OaWNvc2lhR0NHTExheWVyLmgKaW5kZXggYWJmMDRiYjdlZmVhYjU2YjE5MDZjMDhjMjdkODUw
ZmY2MDY2MGM5My4uMjc1N2U0NmJlMGRhMzY0Njg1OGMwMjFjYjA2YTY4N2Y3MGMyNTQ2YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAv
Tmljb3NpYUdDR0xMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuaApAQCAtNDQsNyArNDQsNyBAQCBjbGFz
cyBHQ0dMTGF5ZXIgOiBwdWJsaWMgQ29udGVudExheWVyVGV4dHVyZU1hcHBlckltcGw6OkNsaWVu
dCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQg
R0NHTExheWVyKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMJik7Ci0gICAgR0NHTExh
eWVyKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMJiwgV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0R0xPcGVuR0w6OkRlc3RpbmF0aW9uKTsKKyAgICBHQ0dMTGF5ZXIoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wmKTsKIAogICAgIHZpcnR1YWwgfkdDR0xMYXllcigpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oCmluZGV4IDhkN2JiMzUwZmFiZDA4ZmE4MTk2
OGJhNDk0Y2FjY2ZiN2MwOWZmOGEuLmUwZTM5YWNkNTI4ZjBjODdmMjQ5YTc2OTBhNDEyMzM3MDY5
Njk3ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oCkBAIC05Niw3ICs5Niw3
IEBAIGNsYXNzIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0ZTsKIGNsYXNzIFdFQkNPUkVf
RVhQT1JUIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIGZpbmFsIDogcHVibGljIEdyYXBoaWNzQ29u
dGV4dEdMCiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTD4gY3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcywgSG9zdFdpbmRvdyosIERl
c3RpbmF0aW9uID0gRGVzdGluYXRpb246Ok9mZnNjcmVlbik7CisgICAgc3RhdGljIFJlZlB0cjxH
cmFwaGljc0NvbnRleHRHTE9wZW5HTD4gY3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRl
cywgSG9zdFdpbmRvdyopOwogICAgIHZpcnR1YWwgfkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKCk7
CiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTUxMyw3ICs1MTMsNyBAQCBwcml2YXRlOgogI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29u
dGV4dEdMQXR0cmlidXRlcywgSG9zdFdpbmRvdyosIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBz
aGFyZWRDb250ZXh0ID0gbnVsbHB0ciwgR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hh
aW4qID0gbnVsbHB0cik7CiAjZWxzZQotICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBo
aWNzQ29udGV4dEdMQXR0cmlidXRlcywgSG9zdFdpbmRvdyosIERlc3RpbmF0aW9uID0gRGVzdGlu
YXRpb246Ok9mZnNjcmVlbiwgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIHNoYXJlZENvbnRleHQg
PSBudWxscHRyKTsKKyAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRH
TEF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogc2hhcmVk
Q29udGV4dCA9IG51bGxwdHIpOwogI2VuZGlmCiAKICAgICAvLyBDYWxsZWQgb25jZSBieSBhbGwg
dGhlIHB1YmxpYyBlbnRyeSBwb2ludHMgdGhhdCBldmVudHVhbGx5IGNhbGwgT3BlbkdMLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMRVMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMRVMuY3BwCmluZGV4IGJhYWJkZTA3OTE0NjVm
M2Y4M2U2NmZmMjkwZWExNGVjMTg2YjI3ZDQuLjVjOWVmYjJlYTQ5NmIyYmQ1YjRkYmVjNzE1NGVi
NmYyNDdlZTk4ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTEVTLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xFUy5jcHAK
QEAgLTI3NiwxMiArMjc2LDggQEAgRXh0ZW5zaW9uc0dMJiBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6Z2V0RXh0ZW5zaW9ucygpCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKENB
KQotUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2lu
ZG93KiBob3N0V2luZG93LCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6RGVzdGluYXRpb24gZGVz
dGluYXRpb24pCitSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMs
IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cpCiB7Ci0gICAgLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiBk
b2Vzbid0IGN1cnJlbnRseSBzdXBwb3J0IHJlbmRlcmluZyBkaXJlY3RseSB0byB0aGUgSG9zdFdp
bmRvdy4KLSAgICBpZiAoZGVzdGluYXRpb24gPT0gRGVzdGluYXRpb246OkRpcmVjdGx5VG9Ib3N0
V2luZG93KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAKICAgICBzdGF0aWMgYm9vbCBp
bml0aWFsaXplZCA9IGZhbHNlOwogICAgIHN0YXRpYyBib29sIHN1Y2Nlc3MgPSB0cnVlOwogICAg
IGlmICghaW5pdGlhbGl6ZWQpIHsKQEAgLTI5NiwxMCArMjkyLDEwIEBAIFJlZlB0cjxHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTD4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShHcmFwaGlj
c0NvbnRleHRHCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TChhdHRyaWJ1dGVzLCBob3N0V2luZG93LCByZW5kZXJTdHlsZSkpOwogfQogCi1HcmFwaGljc0Nv
bnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xB
dHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBzaGFy
ZWRDb250ZXh0KQotICAgIDogR3JhcGhpY3NDb250ZXh0R0woYXR0cmlidXRlcywgZGVzdGluYXRp
b24sIHNoYXJlZENvbnRleHQpCitHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RX
aW5kb3cqLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogc2hhcmVkQ29udGV4dCkKKyAgICA6IEdy
YXBoaWNzQ29udGV4dEdMKGF0dHJpYnV0ZXMsIHNoYXJlZENvbnRleHQpCiAgICAgLCBtX2NvbXBp
bGVyKGlzR0xFUzJDb21wbGlhbnQoKSA/IFNIX0VTU0xfT1VUUFVUIDogU0hfR0xTTF9DT01QQVRJ
QklMSVRZX09VVFBVVCkKLSAgICAsIG1fcHJpdmF0ZShtYWtlVW5pcXVlPEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMUHJpdmF0ZT4odGhpcywgZGVzdGluYXRpb24pKQorICAgICwgbV9wcml2YXRlKG1h
a2VVbmlxdWU8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xQcml2YXRlPih0aGlzKSkKIHsKICAgICBB
U1NFUlRfVU5VU0VEKHNoYXJlZENvbnRleHQsICFzaGFyZWRDb250ZXh0KTsKICAgICBpZiAoIW1h
a2VDb250ZXh0Q3VycmVudCgpKQpAQCAtMzA5LDMzICszMDUsMzEgQEAgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmli
dXRlcyBhdHQKICAgICB2YWxpZGF0ZUF0dHJpYnV0ZXMoKTsKICAgICBhdHRyaWJ1dGVzID0gY29u
dGV4dEF0dHJpYnV0ZXMoKTsgLy8gVGhleSBtYXkgaGF2ZSBjaGFuZ2VkIGR1cmluZyB2YWxpZGF0
aW9uLgogCi0gICAgaWYgKGRlc3RpbmF0aW9uID09IERlc3RpbmF0aW9uOjpPZmZzY3JlZW4pIHsK
LSAgICAgICAgLy8gQ3JlYXRlIGEgdGV4dHVyZSB0byByZW5kZXIgaW50by4KLSAgICAgICAgOjpn
bEdlblRleHR1cmVzKDEsICZtX3RleHR1cmUpOwotICAgICAgICA6OmdsQmluZFRleHR1cmUoR0xf
VEVYVFVSRV8yRCwgbV90ZXh0dXJlKTsKLSAgICAgICAgOjpnbFRleFBhcmFtZXRlcmYoR0xfVEVY
VFVSRV8yRCwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOwotICAgICAgICA6Omds
VGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJ
TkVBUik7Ci0gICAgICAgIDo6Z2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRV
UkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsKLSAgICAgICAgOjpnbFRleFBhcmFtZXRlcmko
R0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOwotICAg
ICAgICA6OmdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgMCk7CisgICAgLy8gQ3JlYXRlIGEg
dGV4dHVyZSB0byByZW5kZXIgaW50by4KKyAgICA6OmdsR2VuVGV4dHVyZXMoMSwgJm1fdGV4dHVy
ZSk7CisgICAgOjpnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1fdGV4dHVyZSk7CisgICAg
OjpnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBH
TF9MSU5FQVIpOworICAgIDo6Z2xUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRV
UkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICA6OmdsVGV4UGFyYW1ldGVyaShHTF9URVhU
VVJFXzJELCBHTF9URVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAgOjpnbFRl
eFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RP
X0VER0UpOworICAgIDo6Z2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCAwKTsKICAgICAgICAg
Ci0gICAgICAgIC8vIENyZWF0ZSBhbiBGQk8uCi0gICAgICAgIDo6Z2xHZW5GcmFtZWJ1ZmZlcnMo
MSwgJm1fZmJvKTsKLSAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwg
bV9mYm8pOworICAgIC8vIENyZWF0ZSBhbiBGQk8uCisgICAgOjpnbEdlbkZyYW1lYnVmZmVycygx
LCAmbV9mYm8pOworICAgIDo6Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJv
KTsKICAgICAgICAgCi0gICAgICAgIG1fc3RhdGUuYm91bmREcmF3RkJPID0gbV9zdGF0ZS5ib3Vu
ZFJlYWRGYm8gPSBtX2ZibzsKLSAgICAgICAgaWYgKCFhdHRyaWJ1dGVzLmFudGlhbGlhcyAmJiAo
YXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpKQotICAgICAgICAgICAgOjpn
bEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKKyAgICBtX3N0YXRl
LmJvdW5kRHJhd0ZCTyA9IG1fc3RhdGUuYm91bmRSZWFkRmJvID0gbV9mYm87CisgICAgaWYgKCFh
dHRyaWJ1dGVzLmFudGlhbGlhcyAmJiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMu
ZGVwdGgpKQorICAgICAgICA6OmdsR2VuUmVuZGVyYnVmZmVycygxLCAmbV9kZXB0aFN0ZW5jaWxC
dWZmZXIpOwogICAgICAgICAKLSAgICAgICAgLy8gQ3JlYXRlIGEgbXVsdGlzYW1wbGUgRkJPLgot
ICAgICAgICBpZiAoYXR0cmlidXRlcy5hbnRpYWxpYXMpIHsKLSAgICAgICAgICAgIDo6Z2xHZW5G
cmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOwotICAgICAgICAgICAgOjpnbEJpbmRG
cmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7Ci0gICAgICAgICAg
ICBtX3N0YXRlLmJvdW5kRHJhd0ZCTyA9IG1fc3RhdGUuYm91bmRSZWFkRkJPID0gbV9tdWx0aXNh
bXBsZUZCTzsKLSAgICAgICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2Ft
cGxlQ29sb3JCdWZmZXIpOwotICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBh
dHRyaWJ1dGVzLmRlcHRoKQotICAgICAgICAgICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzKDEs
ICZtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICAgICAgfQorICAgIC8vIENy
ZWF0ZSBhIG11bHRpc2FtcGxlIEZCTy4KKyAgICBpZiAoYXR0cmlidXRlcy5hbnRpYWxpYXMpIHsK
KyAgICAgICAgOjpnbEdlbkZyYW1lYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUZCTyk7CisgICAg
ICAgIDo6Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8p
OworICAgICAgICBtX3N0YXRlLmJvdW5kRHJhd0ZCTyA9IG1fc3RhdGUuYm91bmRSZWFkRkJPID0g
bV9tdWx0aXNhbXBsZUZCTzsKKyAgICAgICAgOjpnbEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVs
dGlzYW1wbGVDb2xvckJ1ZmZlcik7CisgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwgfHwg
YXR0cmlidXRlcy5kZXB0aCkKKyAgICAgICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZt
X211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICB9CiAgICAgCiAgICAgLy8gQU5H
TEUgaW5pdGlhbGl6YXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xQcml2YXRlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5H
TFByaXZhdGUuY3BwCmluZGV4IDU4Mzc5OWViMzI2ZmU0MTBhNmQwZGM0ZjhjYTgyYmRlZTA0NGYy
NzIuLmM1MjA5ZmFmMDVlODM5YjkwNDFkM2QyOTQwMzlhYmM4NWJkMWM2ZjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRH
TE9wZW5HTFByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTFByaXZhdGUuY3BwCkBAIC0yOSwxNiArMjks
OSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUdyYXBoaWNzQ29udGV4dEdMT3BlbkdMUHJp
dmF0ZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xQcml2YXRlKEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMKiwgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKQor
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xQcml2YXRlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTFBy
aXZhdGUoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqKQogewotICAgIHN3aXRjaCAoZGVzdGluYXRp
b24pIHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpEZXN0aW5hdGlvbjo6T2Zm
c2NyZWVuOgotICAgICAgICBtX2dsQ29udGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRlT2Zmc2NyZWVu
Q29udGV4dCgmUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmcoKSk7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkRlc3Rp
bmF0aW9uOjpEaXJlY3RseVRvSG9zdFdpbmRvdzoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KKyAgICBtX2dsQ29udGV4dCA9IEdMQ29udGV4dDo6
Y3JlYXRlT2Zmc2NyZWVuQ29udGV4dCgmUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5Rm9y
Q29tcG9zaXRpbmcoKSk7CiB9CiAKIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0ZTo6fkdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0ZSgpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9w
ZW5HTFByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
cmFwaGljc0NvbnRleHRHTE9wZW5HTFByaXZhdGUuaAppbmRleCAxYWYyZGQ2YWQ5YzhhMDVmNDg1
NThmNTk5MWJlMzQ0MTU3MDdkM2U2Li5jOTM4ZGRkMmE4MjFmODMwNjVlYjE1Yjg5ZWViMDc4Yjgw
MzMxNzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0ZS5o
CkBAIC0zMSw3ICszMSw3IEBAIGNsYXNzIEJpdG1hcFRleHR1cmVHTDsKIGNsYXNzIEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMUHJpdmF0ZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6Ci0gICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xQcml2YXRlKEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMKiwgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkRlc3RpbmF0aW9uKTsKKyAgICBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTFByaXZhdGUoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqKTsK
ICAgICB+R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xQcml2YXRlKCk7CiAgICAgYm9vbCBtYWtlQ29u
dGV4dEN1cnJlbnQoKTsKICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMIHBsYXRmb3JtQ29u
dGV4dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNw
cAppbmRleCBjMmY0YTIzNjFhMGFmNzEzZTFlNDZmNDBhNDE2ZDRhY2RjMGY1MjlmLi4zNDkyZTNl
ZjNjNGUxYzFiZGU0NGQxOWRjYTlmNzkyYjdiMDJiYzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFw
cGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3Jh
cGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcApAQCAtNzAsMTIgKzcwLDggQEAgc3RhdGlj
IERlcXVlPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgTWF4QWN0aXZlQ29udGV4dHM+JiBhY3Rp
dmVDb250ZXh0cygpCiAgICAgcmV0dXJuIHNfYWN0aXZlQ29udGV4dHM7CiB9CiAKLVJlZlB0cjxH
cmFwaGljc0NvbnRleHRHTE9wZW5HTD4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShH
cmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRvdyogaG9zdFdp
bmRvdywgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKQor
UmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6
Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93
KiBob3N0V2luZG93KQogewotICAgIC8vIFRoaXMgaW1wbGVtZW50YXRpb24gZG9lc24ndCBjdXJy
ZW50bHkgc3VwcG9ydCByZW5kZXJpbmcgZGlyZWN0bHkgdG8gdGhlIEhvc3RXaW5kb3cuCi0gICAg
aWYgKGRlc3RpbmF0aW9uID09IERlc3RpbmF0aW9uOjpEaXJlY3RseVRvSG9zdFdpbmRvdykKLSAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KICAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZh
bHNlOwogICAgIHN0YXRpYyBib29sIHN1Y2Nlc3MgPSB0cnVlOwogICAgIGlmICghaW5pdGlhbGl6
ZWQpIHsKQEAgLTk3LDcgKzkzLDcgQEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEcKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBDcmVhdGUgdGhlIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMIG9iamVjdCBmaXJzdCBpbiBvcmRlciB0byBlc3RhYmxpc3QgYSBjdXJyZW50IGNvbnRleHQg
b24gdGhpcyB0aHJlYWQuCi0gICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYobmV3IEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMKGF0dHJpYnV0ZXMsIGhvc3RXaW5kb3csIGRlc3RpbmF0aW9uKSk7Cisg
ICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYobmV3IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKGF0
dHJpYnV0ZXMsIGhvc3RXaW5kb3cpKTsKIAogI2lmIFVTRShMSUJFUE9YWSkgJiYgVVNFKE9QRU5H
TF9FUykgJiYgRU5BQkxFKFdFQkdMMikKICAgICAvLyBCYWlsIGlmIEdMRVMzIHdhcyByZXF1ZXN0
ZWQgYnV0IGNhbm5vdCBiZSBwcm92aWRlZC4KQEAgLTExMCwxNyArMTA2LDE3IEBAIFJlZlB0cjxH
cmFwaGljc0NvbnRleHRHTE9wZW5HTD4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShH
cmFwaGljc0NvbnRleHRHCiB9CiAKICNpZiBVU0UoQU5HTEUpCi1HcmFwaGljc0NvbnRleHRHTE9w
ZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVz
IGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6RGVzdGlu
YXRpb24gZGVzdGluYXRpb24sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBzaGFyZWRDb250ZXh0
KQotICAgIDogR3JhcGhpY3NDb250ZXh0R0woYXR0cmlidXRlcywgZGVzdGluYXRpb24sIHNoYXJl
ZENvbnRleHQpCitHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVu
R0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTCogc2hhcmVkQ29udGV4dCkKKyAgICA6IEdyYXBoaWNzQ29u
dGV4dEdMKGF0dHJpYnV0ZXMsIHNoYXJlZENvbnRleHQpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChz
aGFyZWRDb250ZXh0LCAhc2hhcmVkQ29udGV4dCk7CiAjaWYgRU5BQkxFKFdFQkdMMikKICAgICBt
X2lzRm9yV2ViR0wyID0gYXR0cmlidXRlcy53ZWJHTFZlcnNpb24gPT0gR3JhcGhpY3NDb250ZXh0
R0xXZWJHTFZlcnNpb246OldlYkdMMjsKICNlbmRpZgogI2lmIFVTRShOSUNPU0lBKQotICAgIG1f
bmljb3NpYUxheWVyID0gV1RGOjptYWtlVW5pcXVlPE5pY29zaWE6OkdDR0xBTkdMRUxheWVyPigq
dGhpcywgZGVzdGluYXRpb24pOworICAgIG1fbmljb3NpYUxheWVyID0gV1RGOjptYWtlVW5pcXVl
PE5pY29zaWE6OkdDR0xBTkdMRUxheWVyPigqdGhpcyk7CiAjZWxzZQotICAgIG1fdGV4bWFwTGF5
ZXIgPSBXVEY6Om1ha2VVbmlxdWU8VGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyPigqdGhp
cywgZGVzdGluYXRpb24pOworICAgIG1fdGV4bWFwTGF5ZXIgPSBXVEY6Om1ha2VVbmlxdWU8VGV4
dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyPigqdGhpcyk7CiAjZW5kaWYKICAgICBib29sIHN1
Y2Nlc3MgPSBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICBBU1NFUlRfVU5VU0VEKHN1Y2Nlc3Ms
IHN1Y2Nlc3MpOwpAQCAtMTI4LDY4ICsxMjQsNjYgQEAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6
OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHQK
ICAgICB2YWxpZGF0ZUF0dHJpYnV0ZXMoKTsKICAgICBhdHRyaWJ1dGVzID0gY29udGV4dEF0dHJp
YnV0ZXMoKTsgLy8gVGhleSBtYXkgaGF2ZSBjaGFuZ2VkIGR1cmluZyB2YWxpZGF0aW9uLgogCi0g
ICAgaWYgKGRlc3RpbmF0aW9uID09IERlc3RpbmF0aW9uOjpPZmZzY3JlZW4pIHsKLSAgICAgICAg
R0xlbnVtIHRleHR1cmVUYXJnZXQgPSBkcmF3aW5nQnVmZmVyVGV4dHVyZVRhcmdldCgpOwotICAg
ICAgICAvLyBDcmVhdGUgYSB0ZXh0dXJlIHRvIHJlbmRlciBpbnRvLgotICAgICAgICBnbDo6R2Vu
VGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7Ci0gICAgICAgIGdsOjpCaW5kVGV4dHVyZSh0ZXh0dXJl
VGFyZ2V0LCBtX3RleHR1cmUpOwotICAgICAgICBnbDo6VGV4UGFyYW1ldGVyZih0ZXh0dXJlVGFy
Z2V0LCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7Ci0gICAgICAgIGdsOjpUZXhQ
YXJhbWV0ZXJmKHRleHR1cmVUYXJnZXQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFS
KTsKLSAgICAgICAgZ2w6OlRleFBhcmFtZXRlcmkodGV4dHVyZVRhcmdldCwgR0xfVEVYVFVSRV9X
UkFQX1MsIEdMX0NMQU1QX1RPX0VER0UpOwotICAgICAgICBnbDo6VGV4UGFyYW1ldGVyaSh0ZXh0
dXJlVGFyZ2V0LCBHTF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7Ci0gICAgICAg
IGdsOjpCaW5kVGV4dHVyZSh0ZXh0dXJlVGFyZ2V0LCAwKTsKLQotICAgICAgICAvLyBDcmVhdGUg
YW4gRkJPLgotICAgICAgICBnbDo6R2VuRnJhbWVidWZmZXJzKDEsICZtX2Zibyk7Ci0gICAgICAg
IGdsOjpCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKKyAgICBHTGVudW0g
dGV4dHVyZVRhcmdldCA9IGRyYXdpbmdCdWZmZXJUZXh0dXJlVGFyZ2V0KCk7CisgICAgLy8gQ3Jl
YXRlIGEgdGV4dHVyZSB0byByZW5kZXIgaW50by4KKyAgICBnbDo6R2VuVGV4dHVyZXMoMSwgJm1f
dGV4dHVyZSk7CisgICAgZ2w6OkJpbmRUZXh0dXJlKHRleHR1cmVUYXJnZXQsIG1fdGV4dHVyZSk7
CisgICAgZ2w6OlRleFBhcmFtZXRlcmYodGV4dHVyZVRhcmdldCwgR0xfVEVYVFVSRV9NQUdfRklM
VEVSLCBHTF9MSU5FQVIpOworICAgIGdsOjpUZXhQYXJhbWV0ZXJmKHRleHR1cmVUYXJnZXQsIEdM
X1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICBnbDo6VGV4UGFyYW1ldGVyaSh0
ZXh0dXJlVGFyZ2V0LCBHTF9URVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAg
Z2w6OlRleFBhcmFtZXRlcmkodGV4dHVyZVRhcmdldCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NM
QU1QX1RPX0VER0UpOworICAgIGdsOjpCaW5kVGV4dHVyZSh0ZXh0dXJlVGFyZ2V0LCAwKTsKKwor
ICAgIC8vIENyZWF0ZSBhbiBGQk8uCisgICAgZ2w6OkdlbkZyYW1lYnVmZmVycygxLCAmbV9mYm8p
OworICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKIAogI2lm
IFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKLSAgICAgICAgZ2w6OkdlblRleHR1cmVzKDEsICZt
X2NvbXBvc2l0b3JUZXh0dXJlKTsKLSAgICAgICAgZ2w6OkJpbmRUZXh0dXJlKHRleHVyZVR5cGUs
IG1fY29tcG9zaXRvclRleHR1cmUpOwotICAgICAgICBnbDo6VGV4UGFyYW1ldGVyZih0ZXh1cmVU
eXBlLCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7Ci0gICAgICAgIGdsOjpUZXhQ
YXJhbWV0ZXJmKHRleHVyZVR5cGUsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsK
LSAgICAgICAgZ2w6OlRleFBhcmFtZXRlcmkodGV4dXJlVHlwZSwgR0xfVEVYVFVSRV9XUkFQX1Ms
IEdMX0NMQU1QX1RPX0VER0UpOwotICAgICAgICBnbDo6VGV4UGFyYW1ldGVyaSh0ZXh1cmVUeXBl
LCBHTF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7Ci0KLSAgICAgICAgZ2w6Okdl
blRleHR1cmVzKDEsICZtX2ludGVybWVkaWF0ZVRleHR1cmUpOwotICAgICAgICBnbDo6QmluZFRl
eHR1cmUodGV4dXJlVHlwZSwgbV9pbnRlcm1lZGlhdGVUZXh0dXJlKTsKLSAgICAgICAgZ2w6OlRl
eFBhcmFtZXRlcmYodGV4dXJlVHlwZSwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIp
OwotICAgICAgICBnbDo6VGV4UGFyYW1ldGVyZih0ZXh1cmVUeXBlLCBHTF9URVhUVVJFX01JTl9G
SUxURVIsIEdMX0xJTkVBUik7Ci0gICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJpKHRleHVyZVR5cGUs
IEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsKLSAgICAgICAgZ2w6OlRleFBh
cmFtZXRlcmkodGV4dXJlVHlwZSwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0Up
OwotCi0gICAgICAgIGdsOjpCaW5kVGV4dHVyZSh0ZXh1cmVUeXBlLCAwKTsKKyAgICBnbDo6R2Vu
VGV4dHVyZXMoMSwgJm1fY29tcG9zaXRvclRleHR1cmUpOworICAgIGdsOjpCaW5kVGV4dHVyZSh0
ZXh0dXJlVGFyZ2V0LCBtX2NvbXBvc2l0b3JUZXh0dXJlKTsKKyAgICBnbDo6VGV4UGFyYW1ldGVy
Zih0ZXh0dXJlVGFyZ2V0LCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7CisgICAg
Z2w6OlRleFBhcmFtZXRlcmYodGV4dHVyZVRhcmdldCwgR0xfVEVYVFVSRV9NSU5fRklMVEVSLCBH
TF9MSU5FQVIpOworICAgIGdsOjpUZXhQYXJhbWV0ZXJpKHRleHR1cmVUYXJnZXQsIEdMX1RFWFRV
UkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsKKyAgICBnbDo6VGV4UGFyYW1ldGVyaSh0ZXh0
dXJlVGFyZ2V0LCBHTF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7CisKKyAgICBn
bDo6R2VuVGV4dHVyZXMoMSwgJm1faW50ZXJtZWRpYXRlVGV4dHVyZSk7CisgICAgZ2w6OkJpbmRU
ZXh0dXJlKHRleHR1cmVUYXJnZXQsIG1faW50ZXJtZWRpYXRlVGV4dHVyZSk7CisgICAgZ2w6OlRl
eFBhcmFtZXRlcmYodGV4dHVyZVRhcmdldCwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5F
QVIpOworICAgIGdsOjpUZXhQYXJhbWV0ZXJmKHRleHR1cmVUYXJnZXQsIEdMX1RFWFRVUkVfTUlO
X0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICBnbDo6VGV4UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0
LCBHTF9URVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAgZ2w6OlRleFBhcmFt
ZXRlcmkodGV4dHVyZVRhcmdldCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0Up
OworCisgICAgZ2w6OkJpbmRUZXh0dXJlKHRleHR1cmVUYXJnZXQsIDApOwogI2VuZGlmCiAKLSAg
ICAgICAgLy8gQ3JlYXRlIGEgbXVsdGlzYW1wbGUgRkJPLgotICAgICAgICBBU1NFUlQobV9zdGF0
ZS5ib3VuZFJlYWRGQk8gPT0gbV9zdGF0ZS5ib3VuZERyYXdGQk8pOwotICAgICAgICBpZiAoYXR0
cmlidXRlcy5hbnRpYWxpYXMpIHsKLSAgICAgICAgICAgIGdsOjpHZW5GcmFtZWJ1ZmZlcnMoMSwg
Jm1fbXVsdGlzYW1wbGVGQk8pOwotICAgICAgICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHTF9G
UkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7Ci0gICAgICAgICAgICBtX3N0YXRlLmJvdW5k
RHJhd0ZCTyA9IG1fc3RhdGUuYm91bmRSZWFkRkJPID0gbV9tdWx0aXNhbXBsZUZCTzsKLSAgICAg
ICAgICAgIGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIp
OwotICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRo
KQotICAgICAgICAgICAgICAgIGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxl
RGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIEJp
bmQgY2FudmFzIEZCTy4KLSAgICAgICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVC
VUZGRVIsIG1fZmJvKTsKLSAgICAgICAgICAgIG1fc3RhdGUuYm91bmREcmF3RkJPID0gbV9zdGF0
ZS5ib3VuZFJlYWRGQk8gPSBtX2ZibzsKLSAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5j
aWwgfHwgYXR0cmlidXRlcy5kZXB0aCkKLSAgICAgICAgICAgICAgICBnbDo6R2VuUmVuZGVyYnVm
ZmVycygxLCAmbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAgICAgICB9CisgICAgLy8gQ3JlYXRl
IGEgbXVsdGlzYW1wbGUgRkJPLgorICAgIEFTU0VSVChtX3N0YXRlLmJvdW5kUmVhZEZCTyA9PSBt
X3N0YXRlLmJvdW5kRHJhd0ZCTyk7CisgICAgaWYgKGF0dHJpYnV0ZXMuYW50aWFsaWFzKSB7Cisg
ICAgICAgIGdsOjpHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOworICAgICAg
ICBnbDo6QmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX211bHRpc2FtcGxlRkJPKTsK
KyAgICAgICAgbV9zdGF0ZS5ib3VuZERyYXdGQk8gPSBtX3N0YXRlLmJvdW5kUmVhZEZCTyA9IG1f
bXVsdGlzYW1wbGVGQk87CisgICAgICAgIGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRp
c2FtcGxlQ29sb3JCdWZmZXIpOworICAgICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0
dHJpYnV0ZXMuZGVwdGgpCisgICAgICAgICAgICBnbDo6R2VuUmVuZGVyYnVmZmVycygxLCAmbV9t
dWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZlcik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8g
QmluZCBjYW52YXMgRkJPLgorICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVG
RkVSLCBtX2Zibyk7CisgICAgICAgIG1fc3RhdGUuYm91bmREcmF3RkJPID0gbV9zdGF0ZS5ib3Vu
ZFJlYWRGQk8gPSBtX2ZibzsKKyAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRy
aWJ1dGVzLmRlcHRoKQorICAgICAgICAgICAgZ2w6OkdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVw
dGhTdGVuY2lsQnVmZmVyKTsKICAgICB9CiAKICAgICBnbDo6Q2xlYXJDb2xvcigwLCAwLCAwLCAw
KTsKIH0KICNlbHNlCi1HcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cq
LCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24sIEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMKiBzaGFyZWRDb250ZXh0KQotICAgIDogR3JhcGhpY3NDb250ZXh0
R0woYXR0cmlidXRlcywgZGVzdGluYXRpb24sIHNoYXJlZENvbnRleHQpCitHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRy
aWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCog
c2hhcmVkQ29udGV4dCkKKyAgICA6IEdyYXBoaWNzQ29udGV4dEdMKGF0dHJpYnV0ZXMsIHNoYXJl
ZENvbnRleHQpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChzaGFyZWRDb250ZXh0LCAhc2hhcmVkQ29u
dGV4dCk7CiAjaWYgVVNFKE5JQ09TSUEpCi0gICAgbV9uaWNvc2lhTGF5ZXIgPSBtYWtlVW5pcXVl
PE5pY29zaWE6OkdDR0xMYXllcj4oKnRoaXMsIGRlc3RpbmF0aW9uKTsKKyAgICBtX25pY29zaWFM
YXllciA9IG1ha2VVbmlxdWU8Tmljb3NpYTo6R0NHTExheWVyPigqdGhpcyk7CiAjZWxzZQotICAg
IG1fdGV4bWFwTGF5ZXIgPSBtYWtlVW5pcXVlPFRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXll
cj4oKnRoaXMsIGRlc3RpbmF0aW9uKTsKKyAgICBtX3RleG1hcExheWVyID0gbWFrZVVuaXF1ZTxU
ZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXI+KCp0aGlzKTsKICNlbmRpZgogCiAgICAgYm9v
bCBzdWNjZXNzID0gbWFrZUNvbnRleHRDdXJyZW50KCk7CkBAIC0xOTgsNjAgKzE5Miw1OCBAQCBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzIGF0dAogICAgIHZhbGlkYXRlQXR0cmlidXRlcygpOwogICAgIGF0
dHJpYnV0ZXMgPSBjb250ZXh0QXR0cmlidXRlcygpOyAvLyBUaGV5IG1heSBoYXZlIGNoYW5nZWQg
ZHVyaW5nIHZhbGlkYXRpb24uCiAKLSAgICBpZiAoZGVzdGluYXRpb24gPT0gRGVzdGluYXRpb246
Ok9mZnNjcmVlbikgewotICAgICAgICAvLyBDcmVhdGUgYSB0ZXh0dXJlIHRvIHJlbmRlciBpbnRv
LgotICAgICAgICA6OmdsR2VuVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7Ci0gICAgICAgIDo6Z2xC
aW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBtX3RleHR1cmUpOwotICAgICAgICA6OmdsVGV4UGFy
YW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7
Ci0gICAgICAgIDo6Z2xUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfTUlO
X0ZJTFRFUiwgR0xfTElORUFSKTsKLSAgICAgICAgOjpnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVS
RV8yRCwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0UpOwotICAgICAgICA6Omds
VGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xBTVBf
VE9fRURHRSk7Ci0gICAgICAgIDo6Z2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCAwKTsKKyAg
ICAvLyBDcmVhdGUgYSB0ZXh0dXJlIHRvIHJlbmRlciBpbnRvLgorICAgIDo6Z2xHZW5UZXh0dXJl
cygxLCAmbV90ZXh0dXJlKTsKKyAgICA6OmdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgbV90
ZXh0dXJlKTsKKyAgICA6OmdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhUVVJF
X01BR19GSUxURVIsIEdMX0xJTkVBUik7CisgICAgOjpnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVS
RV8yRCwgR0xfVEVYVFVSRV9NSU5fRklMVEVSLCBHTF9MSU5FQVIpOworICAgIDo6Z2xUZXhQYXJh
bWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdF
KTsKKyAgICA6OmdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBf
VCwgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAgOjpnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQs
IDApOwogCi0gICAgICAgIC8vIENyZWF0ZSBhbiBGQk8uCi0gICAgICAgIDo6Z2xHZW5GcmFtZWJ1
ZmZlcnMoMSwgJm1fZmJvKTsKLSAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJV
RkZFUiwgbV9mYm8pOworICAgIC8vIENyZWF0ZSBhbiBGQk8uCisgICAgOjpnbEdlbkZyYW1lYnVm
ZmVycygxLCAmbV9mYm8pOworICAgIDo6Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIs
IG1fZmJvKTsKIAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKLSAgICAgICAgOjpnbEdl
blRleHR1cmVzKDEsICZtX2NvbXBvc2l0b3JUZXh0dXJlKTsKLSAgICAgICAgOjpnbEJpbmRUZXh0
dXJlKEdMX1RFWFRVUkVfMkQsIG1fY29tcG9zaXRvclRleHR1cmUpOwotICAgICAgICA6OmdsVGV4
UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVB
Uik7Ci0gICAgICAgIDo6Z2xUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVf
TUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKLSAgICAgICAgOjpnbFRleFBhcmFtZXRlcmkoR0xfVEVY
VFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0UpOwotICAgICAgICA6
OmdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xB
TVBfVE9fRURHRSk7Ci0KLSAgICAgICAgOjpnbEdlblRleHR1cmVzKDEsICZtX2ludGVybWVkaWF0
ZVRleHR1cmUpOwotICAgICAgICA6OmdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgbV9pbnRl
cm1lZGlhdGVUZXh0dXJlKTsKLSAgICAgICAgOjpnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8y
RCwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOwotICAgICAgICA6OmdsVGV4UGFy
YW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7
Ci0gICAgICAgIDo6Z2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JB
UF9TLCBHTF9DTEFNUF9UT19FREdFKTsKLSAgICAgICAgOjpnbFRleFBhcmFtZXRlcmkoR0xfVEVY
VFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOwotCi0gICAgICAg
IDo6Z2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCAwKTsKKyAgICA6OmdsR2VuVGV4dHVyZXMo
MSwgJm1fY29tcG9zaXRvclRleHR1cmUpOworICAgIDo6Z2xCaW5kVGV4dHVyZShHTF9URVhUVVJF
XzJELCBtX2NvbXBvc2l0b3JUZXh0dXJlKTsKKyAgICA6OmdsVGV4UGFyYW1ldGVyZihHTF9URVhU
VVJFXzJELCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7CisgICAgOjpnbFRleFBh
cmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NSU5fRklMVEVSLCBHTF9MSU5FQVIp
OworICAgIDo6Z2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9T
LCBHTF9DTEFNUF9UT19FREdFKTsKKyAgICA6OmdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJE
LCBHTF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7CisKKyAgICA6OmdsR2VuVGV4
dHVyZXMoMSwgJm1faW50ZXJtZWRpYXRlVGV4dHVyZSk7CisgICAgOjpnbEJpbmRUZXh0dXJlKEdM
X1RFWFRVUkVfMkQsIG1faW50ZXJtZWRpYXRlVGV4dHVyZSk7CisgICAgOjpnbFRleFBhcmFtZXRl
cmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOworICAg
IDo6Z2xUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwg
R0xfTElORUFSKTsKKyAgICA6OmdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhU
VVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAgOjpnbFRleFBhcmFtZXRlcmkoR0xf
VEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOworCisgICAg
OjpnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIDApOwogI2VuZGlmCiAKLSAgICAgICAgLy8g
Q3JlYXRlIGEgbXVsdGlzYW1wbGUgRkJPLgotICAgICAgICBBU1NFUlQobV9zdGF0ZS5ib3VuZFJl
YWRGQk8gPT0gbV9zdGF0ZS5ib3VuZERyYXdGQk8pOwotICAgICAgICBpZiAoYXR0cmlidXRlcy5h
bnRpYWxpYXMpIHsKLSAgICAgICAgICAgIDo6Z2xHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlz
YW1wbGVGQk8pOwotICAgICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZF
UiwgbV9tdWx0aXNhbXBsZUZCTyk7Ci0gICAgICAgICAgICBtX3N0YXRlLmJvdW5kRHJhd0ZCTyA9
IG1fc3RhdGUuYm91bmRSZWFkRkJPID0gbV9tdWx0aXNhbXBsZUZCTzsKLSAgICAgICAgICAgIDo6
Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAg
ICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQotICAgICAg
ICAgICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRGVwdGhTdGVu
Y2lsQnVmZmVyKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIEJpbmQgY2FudmFz
IEZCTy4KLSAgICAgICAgICAgIGdsQmluZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMOjpGUkFNRUJVRkZFUiwgbV9mYm8pOwotICAgICAgICAgICAgbV9zdGF0ZS5ib3VuZERyYXdG
Qk8gPSBtX3N0YXRlLmJvdW5kUmVhZEZCTyA9IG1fZmJvOworICAgIC8vIENyZWF0ZSBhIG11bHRp
c2FtcGxlIEZCTy4KKyAgICBBU1NFUlQobV9zdGF0ZS5ib3VuZFJlYWRGQk8gPT0gbV9zdGF0ZS5i
b3VuZERyYXdGQk8pOworICAgIGlmIChhdHRyaWJ1dGVzLmFudGlhbGlhcykgeworICAgICAgICA6
OmdsR2VuRnJhbWVidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRkJPKTsKKyAgICAgICAgOjpnbEJp
bmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7CisgICAgICAg
IG1fc3RhdGUuYm91bmREcmF3RkJPID0gbV9zdGF0ZS5ib3VuZFJlYWRGQk8gPSBtX211bHRpc2Ft
cGxlRkJPOworICAgICAgICA6OmdsR2VuUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUNv
bG9yQnVmZmVyKTsKKyAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVz
LmRlcHRoKQorICAgICAgICAgICAgOjpnbEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1w
bGVEZXB0aFN0ZW5jaWxCdWZmZXIpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEJpbmQgY2Fu
dmFzIEZCTy4KKyAgICAgICAgZ2xCaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0w6OkZSQU1FQlVGRkVSLCBtX2Zibyk7CisgICAgICAgIG1fc3RhdGUuYm91bmREcmF3RkJPID0g
bV9zdGF0ZS5ib3VuZFJlYWRGQk8gPSBtX2ZibzsKICNpZiBVU0UoT1BFTkdMX0VTKQotICAgICAg
ICAgICAgaWYgKGF0dHJpYnV0ZXMuZGVwdGgpCi0gICAgICAgICAgICAgICAgZ2xHZW5SZW5kZXJi
dWZmZXJzKDEsICZtX2RlcHRoQnVmZmVyKTsKLSAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0
ZW5jaWwpCi0gICAgICAgICAgICAgICAgZ2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX3N0ZW5jaWxC
dWZmZXIpOworICAgICAgICBpZiAoYXR0cmlidXRlcy5kZXB0aCkKKyAgICAgICAgICAgIGdsR2Vu
UmVuZGVyYnVmZmVycygxLCAmbV9kZXB0aEJ1ZmZlcik7CisgICAgICAgIGlmIChhdHRyaWJ1dGVz
LnN0ZW5jaWwpCisgICAgICAgICAgICBnbEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fc3RlbmNpbEJ1
ZmZlcik7CiAjZW5kaWYKLSAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwgfHwgYXR0
cmlidXRlcy5kZXB0aCkKLSAgICAgICAgICAgICAgICBnbEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1f
ZGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICAgICAgfQorICAgICAgICBpZiAoYXR0cmlidXRlcy5z
dGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpCisgICAgICAgICAgICBnbEdlblJlbmRlcmJ1ZmZl
cnMoMSwgJm1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICB9CiAKICNpZiAhVVNFKE9QRU5HTF9F
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5jcHAKaW5k
ZXggOTdkNWFhN2ZhNmQ2MzVlNmU5ZmVkMDA0MzlhNDM0YzkxNjlhZWUwYi4uODU5YTA0NWI3MGMy
MmY2ODM2YTNlMzcxMzU2MjI3MjY2NmMxYTQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJHQ0dMUGxhdGZvcm1MYXllci5jcHAKQEAgLTMzLDIzICszMywxNSBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcjo6VGV4dHVyZU1h
cHBlckdDR0xQbGF0Zm9ybUxheWVyKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMJiBjb250ZXh0LCBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24pCitUZXh0dXJl
TWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXI6OlRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcihH
cmFwaGljc0NvbnRleHRHTE9wZW5HTCYgY29udGV4dCkKICAgICA6IG1fY29udGV4dChjb250ZXh0
KQogewotICAgIHN3aXRjaCAoZGVzdGluYXRpb24pIHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuOiB7Ci0gICAgICAgIGF1dG8gc2hhcmlu
Z0NvbnRleHQgPSBQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXlGb3JDb21wb3NpdGluZygp
LnNoYXJpbmdHTENvbnRleHQoKS0+cGxhdGZvcm1Db250ZXh0KCk7CisgICAgYXV0byBzaGFyaW5n
Q29udGV4dCA9IFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheUZvckNvbXBvc2l0aW5nKCku
c2hhcmluZ0dMQ29udGV4dCgpLT5wbGF0Zm9ybUNvbnRleHQoKTsKICNpZiBFTkFCTEUoV0VCR0wy
KQotICAgICAgICBtX2dsQ29udGV4dCA9IEFOR0xFQ29udGV4dDo6Y3JlYXRlQ29udGV4dChzaGFy
aW5nQ29udGV4dCwgY29udGV4dC5jb250ZXh0QXR0cmlidXRlcygpLndlYkdMVmVyc2lvbiA9PSBH
cmFwaGljc0NvbnRleHRHTFdlYkdMVmVyc2lvbjo6V2ViR0wyKTsKKyAgICBtX2dsQ29udGV4dCA9
IEFOR0xFQ29udGV4dDo6Y3JlYXRlQ29udGV4dChzaGFyaW5nQ29udGV4dCwgY29udGV4dC5jb250
ZXh0QXR0cmlidXRlcygpLndlYkdMVmVyc2lvbiA9PSBHcmFwaGljc0NvbnRleHRHTFdlYkdMVmVy
c2lvbjo6V2ViR0wyKTsKICNlbHNlCi0gICAgICAgIG1fZ2xDb250ZXh0ID0gQU5HTEVDb250ZXh0
OjpjcmVhdGVDb250ZXh0KHNoYXJpbmdDb250ZXh0LCBmYWxzZSk7CisgICAgbV9nbENvbnRleHQg
PSBBTkdMRUNvbnRleHQ6OmNyZWF0ZUNvbnRleHQoc2hhcmluZ0NvbnRleHQsIGZhbHNlKTsKICNl
bmRpZgotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTDo6RGVzdGluYXRpb246OkRpcmVjdGx5VG9Ib3N0V2luZG93OgotICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQogCiAjaWYgVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTKQogICAgIG1fcGxhdGZvcm1MYXllclByb3h5ID0gYWRvcHRSZWYobmV3IFRl
eHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxh
eWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckdDR0xQbGF0Zm9ybUxheWVyLmgKaW5kZXggNmRjMGZmMmNhZDhhMDY1MWNiY2RiYWRlNGUz
Y2U3OGZiMmY1MTE0Yi4uNDA0MjY0YTIzM2YwMGQyYWEyN2Y1ODZkNWU3ZjMwNGI1OTY1MjJlMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIuaApAQCAtMzQs
NyArMzQsNyBAQCBjbGFzcyBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5OwogY2xhc3Mg
VGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyIDogcHVibGljIFBsYXRmb3JtTGF5ZXIgewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFRleHR1cmVNYXBwZXJH
Q0dMUGxhdGZvcm1MYXllcihHcmFwaGljc0NvbnRleHRHTE9wZW5HTCYsIEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpEZXN0aW5hdGlvbik7CisgICAgVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxh
eWVyKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMJik7CiAgICAgdmlydHVhbCB+VGV4dHVyZU1hcHBl
ckdDR0xQbGF0Zm9ybUxheWVyKCk7CiAKICAgICBib29sIG1ha2VDb250ZXh0Q3VycmVudCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418753</attachid>
            <date>2021-01-29 12:03:14 -0800</date>
            <delta_ts>2021-01-29 13:24:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221122-20210130050312.patch</filename>
            <type>text/plain</type>
            <size>35486</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMDQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzE4ZDQwNmI5YWFkYWI3
ZGNhZWFhNTE4Y2JjZGFiZTU5OWQ4ZDAxMC4uMTQ2ODM4ZTE2MGQ5NzNjNTYyZDQwODllOGYwZGMx
ZTA0MTZmNDExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTAxLTI4ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFJlbW92ZSB1
bnVzZWQgR3JhcGhpY3NDb250ZXh0R0w6OkRlc3RpbmF0aW9uIGVudW0gY2xhc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTEyMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IHdhcyB1c2VkIGJ5IENo
cm9taXVtIHBvcnQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHRHTC5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0w6OmRlc3RpbmF0aW9u
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFw
aGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0R0xPcGVuR0w6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5jcHA6CisgICAg
ICAgIChOaWNvc2lhOjpHQ0dMQU5HTEVMYXllcjo6R0NHTEFOR0xFTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dM
TGF5ZXIuY3BwOgorICAgICAgICAoTmljb3NpYTo6R0NHTExheWVyOjpHQ0dMTGF5ZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xFUy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTFByaXZhdGU6OkdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMUHJpdmF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMUHJpdmF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOiBGaXggYSBj
b21waWxhdGlvbiBlcnJvciBieSByZW5hbWluZyB0ZXh1cmVUeXBlIHRvIHRleHR1cmVUYXJnZXQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxh
dGZvcm1MYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0NHTFBsYXRm
b3JtTGF5ZXI6OlRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5oOgor
CiAyMDIxLTAxLTI4ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAK
ICAgICAgICAgTWlub3IgY2xlYW51cCBpbiBDU1NGb250RmFjZVNldENsaWVudApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuY3Bw
CmluZGV4IDk1MDNiNGE3ZTIwN2RkYTZjZmI3YjI2M2FjOWYzMjE4MWVhZTRiNzUuLjhiMzQwZjlj
MGVhM2E2NTI0YmFiMmMzM2Y5YzE4MWZkNmE5M2UxZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5jcHAKQEAgLTQxNSw5
ICs0MTUsOCBAQCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0w+IEdyYXBoaWNzQ29udGV4dEdMOjpj
cmVhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaQogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKLUdyYXBoaWNzQ29udGV4dEdMOjpHcmFwaGljc0NvbnRleHRHTChHcmFwaGljc0NvbnRleHRH
TEF0dHJpYnV0ZXMgYXR0cnMsIERlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBHcmFwaGljc0NvbnRl
eHRHTCopCitHcmFwaGljc0NvbnRleHRHTDo6R3JhcGhpY3NDb250ZXh0R0woR3JhcGhpY3NDb250
ZXh0R0xBdHRyaWJ1dGVzIGF0dHJzLCBHcmFwaGljc0NvbnRleHRHTCopCiAgICAgOiBtX2F0dHJz
KGF0dHJzKQotICAgICwgbV9kZXN0aW5hdGlvbihkZXN0aW5hdGlvbikKIHsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmgK
aW5kZXggMmFkMTQ3ZjZlYWI5NGNmM2JkZjAzYmM2ZmRjMjExN2Q0YWUwMDUwNC4uMDAyNjI0NWU0
Nzk3MjdkZWZjYzAxMWU2ZThhMWZkYzU0ZTMzMWM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5oCkBAIC03NDksMTEgKzc0
OSw2IEBAIHB1YmxpYzoKICAgICAgICAgTnVtRm9ybWF0cwogICAgIH07CiAKLSAgICBlbnVtIGNs
YXNzIERlc3RpbmF0aW9uIDogdWludDhfdCB7Ci0gICAgICAgIE9mZnNjcmVlbiwKLSAgICAgICAg
RGlyZWN0bHlUb0hvc3RXaW5kb3csCi0gICAgfTsKLQogICAgIGVudW0gY2xhc3MgQ2hhbm5lbEJp
dHMgOiB1aW50OF90IHsKICAgICAgICAgUmVkID0gMSwKICAgICAgICAgR3JlZW4gPSAyLApAQCAt
OTE1LDcgKzkxMCw3IEBAIHB1YmxpYzoKICAgICAvLyBIb3N0V2luZG93IG1pZ2h0IGFmZmVjdCB0
aGUgZGVjaXNpb24gd2hpY2ggYmFja2VuZCBpcyB0byBiZSB1c2VkLgogICAgIHN0YXRpYyBSZWZQ
dHI8R3JhcGhpY3NDb250ZXh0R0w+IGNyZWF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJp
YnV0ZXMmLCBIb3N0V2luZG93Kik7CiAKLSAgICBHcmFwaGljc0NvbnRleHRHTChHcmFwaGljc0Nv
bnRleHRHTEF0dHJpYnV0ZXMsIERlc3RpbmF0aW9uID0gRGVzdGluYXRpb246Ok9mZnNjcmVlbiwg
R3JhcGhpY3NDb250ZXh0R0wqIHNoYXJlZENvbnRleHQgPSBudWxscHRyKTsKKyAgICBHcmFwaGlj
c0NvbnRleHRHTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMsIEdyYXBoaWNzQ29udGV4dEdM
KiBzaGFyZWRDb250ZXh0ID0gbnVsbHB0cik7CiAgICAgdmlydHVhbCB+R3JhcGhpY3NDb250ZXh0
R0woKSA9IGRlZmF1bHQ7CiAKICAgICB2b2lkIGFkZENsaWVudChDbGllbnQmIGNsaWVudCkgeyBt
X2NsaWVudHMuYWRkKCZjbGllbnQpOyB9CkBAIC0xMzU5LDggKzEzNTQsNiBAQCBwdWJsaWM6CiAg
ICAgLy8gUmV0dXJucyB0cnVlIHVwb24gc3VjY2Vzcy4KICAgICBzdGF0aWMgYm9vbCBwYWNrSW1h
Z2VEYXRhKEltYWdlKiwgY29uc3Qgdm9pZCogcGl4ZWxzLCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xl
bnVtIHR5cGUsIGJvb2wgZmxpcFksIEFscGhhT3AsIERhdGFGb3JtYXQgc291cmNlRm9ybWF0LCB1
bnNpZ25lZCBzb3VyY2VJbWFnZVdpZHRoLCB1bnNpZ25lZCBzb3VyY2VJbWFnZUhlaWdodCwgY29u
c3QgSW50UmVjdCYgc291cmNlSW1hZ2VTdWJSZWN0YW5nbGUsIGludCBkZXB0aCwgdW5zaWduZWQg
c291cmNlVW5wYWNrQWxpZ25tZW50LCBpbnQgdW5wYWNrSW1hZ2VIZWlnaHQsIFZlY3Rvcjx1aW50
OF90PiYgZGF0YSk7CiAKLSAgICBEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fZGVzdGluYXRpb247IH0KLQogcHJvdGVjdGVkOgogICAgIGludCBtX2N1cnJlbnRXaWR0
aCB7IDAgfTsKICAgICBpbnQgbV9jdXJyZW50SGVpZ2h0IHsgMCB9OwpAQCAtMTM2OCw3ICsxMzYx
LDYgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIEdyYXBoaWNzQ29udGV4dEdMQXR0cmli
dXRlcyBtX2F0dHJzOwotICAgIERlc3RpbmF0aW9uIG1fZGVzdGluYXRpb247CiB9OwogCiBpbmxp
bmUgR0NHTGZsb2F0IEdyYXBoaWNzQ29udGV4dEdMOjpnZXRGbG9hdChHQ0dMZW51bSBwbmFtZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBo
aWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCmluZGV4IDM0YWZjODIw
YjJkYjgyODhkY2ZlMTcxZDg2NDgzNjg3MTE2OTgyZjIuLjg0MmZiNWZhZGExMDRjOTA3MjM5Mzgw
M2E0NTkyY2NhMmFhZWNhOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xD
b2NvYS5tbQpAQCAtMTI4LDEyICsxMjgsOCBAQCBzdGF0aWMgYm9vbCBuZWVkc0VBR0xPbk1hYygp
CiAjZW5kaWYKIAogCi1SZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJzLCBI
b3N0V2luZG93KiBob3N0V2luZG93LCBHcmFwaGljc0NvbnRleHRHTDo6RGVzdGluYXRpb24gZGVz
dGluYXRpb24pCitSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0
V2luZG93KiBob3N0V2luZG93KQogewotICAgIC8vIFRoaXMgaW1wbGVtZW50YXRpb24gZG9lc24n
dCBjdXJyZW50bHkgc3VwcG9ydCByZW5kZXJpbmcgZGlyZWN0bHkgdG8gdGhlIEhvc3RXaW5kb3cu
Ci0gICAgaWYgKGRlc3RpbmF0aW9uID09IERlc3RpbmF0aW9uOjpEaXJlY3RseVRvSG9zdFdpbmRv
dykKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KICAgICAvLyBNYWtlIHNwYWNlIGZvciB0aGUg
aW5jb21pbmcgY29udGV4dCBpZiB3ZSdyZSBmdWxsLgogICAgIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnJlY3ljbGVDb250ZXh0SWZOZWNlc3NhcnkoKTsK
ICAgICBpZiAoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCku
aGFzVG9vTWFueUNvbnRleHRzKCkpCkBAIC0xNjUsNyArMTYxLDcgQEAgUmVmPEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlRm9yR1BVUHJvY2Vz
cyhjb25zdAogfQogCiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2luZG93KiwgR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wqIHNoYXJlZENvbnRleHQsIEdyYXBoaWNzQ29udGV4dEdMSU9T
dXJmYWNlU3dhcENoYWluKiBzd2FwQ2hhaW4pCi0gICAgOiBHcmFwaGljc0NvbnRleHRHTChhdHRy
cywgRGVzdGluYXRpb246Ok9mZnNjcmVlbiwgc2hhcmVkQ29udGV4dCkKKyAgICA6IEdyYXBoaWNz
Q29udGV4dEdMKGF0dHJzLCBzaGFyZWRDb250ZXh0KQogewogICAgIG1faXNGb3JXZWJHTDIgPSBh
dHRycy53ZWJHTFZlcnNpb24gPT0gR3JhcGhpY3NDb250ZXh0R0xXZWJHTFZlcnNpb246OldlYkdM
MjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3Np
YS90ZXhtYXAvTmljb3NpYUdDR0xBTkdMRUxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5jcHAKaW5k
ZXggODFhOTUyNjlkZTU3ZTM0Y2ZkZGQ0MDMzZDc0NjY2ZmYxMjI2NzYyOS4uOGRmOWY3OWJjYzJl
YmIwNWE3OGJlODM5YWJlYTA2NWU5YWJmYWM5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xBTkdMRUxheWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9O
aWNvc2lhR0NHTEFOR0xFTGF5ZXIuY3BwCkBAIC0xNjYsMTcgKzE2NiwxMCBAQCBQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dEdMIEdDR0xBTkdMRUxheWVyOjpBTkdMRUNvbnRleHQ6OnBsYXRmb3JtQ29u
dGV4dCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29udGV4dDsKIH0KIAotR0NHTEFOR0xFTGF5ZXI6
OkdDR0xBTkdMRUxheWVyKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMJiBjb250ZXh0LCBHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24pCitHQ0dMQU5HTEVMYXll
cjo6R0NHTEFOR0xFTGF5ZXIoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wmIGNvbnRleHQpCiAgICAg
OiBHQ0dMTGF5ZXIoY29udGV4dCkKKyAgICAsIG1fYW5nbGVDb250ZXh0KEFOR0xFQ29udGV4dDo6
Y3JlYXRlQ29udGV4dCgpKQogewotICAgIHN3aXRjaCAoZGVzdGluYXRpb24pIHsKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuOgotICAgICAg
ICBtX2FuZ2xlQ29udGV4dCA9IEFOR0xFQ29udGV4dDo6Y3JlYXRlQ29udGV4dCgpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpEZXN0aW5hdGlvbjo6
RGlyZWN0bHlUb0hvc3RXaW5kb3c6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
ICAgICBicmVhazsKLSAgICB9CiB9CiAKIEdDR0xBTkdMRUxheWVyOjp+R0NHTEFOR0xFTGF5ZXIo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90
ZXhtYXAvTmljb3NpYUdDR0xBTkdMRUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTEFOR0xFTGF5ZXIuaAppbmRleCA3Mzg4
ZTU3YzFmODEyOTFkNGM1NWEwZjAyMTMzZTcxY2NhNjk1YjdhLi43ZjIxZGE1OTA4MWE4YThkM2Q2
NTYyZGYzODI0NTdlYjIxNmU2ZDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTEFOR0xFTGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NH
TEFOR0xFTGF5ZXIuaApAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiAgICAgICAgIEVHTFN1cmZh
Y2UgbV9zdXJmYWNlIHsgbnVsbHB0ciB9OwogICAgIH07CiAKLSAgICBHQ0dMQU5HTEVMYXllcihX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTCYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpEZXN0aW5hdGlvbik7CisgICAgR0NHTEFOR0xFTGF5ZXIoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wmKTsKICAgICB2aXJ0dWFsIH5HQ0dMQU5HTEVMYXllcigpOwog
CiAgICAgYm9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dM
TGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXht
YXAvTmljb3NpYUdDR0xMYXllci5jcHAKaW5kZXggODM2MTgzNzM4YTZmMWFlMmYzMDU2YjJjYTk4
N2QxM2ZlY2RkODYzNS4uNzg2YWQyYzM1ODBjZjg3ZjNiMTQ0NTE1MGY1YzIxMTE5MzAyYjBiYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXht
YXAvTmljb3NpYUdDR0xMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xMYXllci5jcHAKQEAgLTUxLDIwICs1MSw3
IEBAIEdDR0xMYXllcjo6R0NHTExheWVyKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMJiBjb250ZXh0
KQogICAgIDogbV9jb250ZXh0KGNvbnRleHQpCiAgICAgLCBtX2NvbnRlbnRMYXllcihOaWNvc2lh
OjpDb250ZW50TGF5ZXI6OmNyZWF0ZShOaWNvc2lhOjpDb250ZW50TGF5ZXJUZXh0dXJlTWFwcGVy
SW1wbDo6Y3JlYXRlRmFjdG9yeSgqdGhpcykpKQogewotfQotCi1HQ0dMTGF5ZXI6OkdDR0xMYXll
cihHcmFwaGljc0NvbnRleHRHTE9wZW5HTCYgY29udGV4dCwgR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0w6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKQotICAgIDogbV9jb250ZXh0KGNvbnRleHQpCi0g
ICAgLCBtX2NvbnRlbnRMYXllcihOaWNvc2lhOjpDb250ZW50TGF5ZXI6OmNyZWF0ZShOaWNvc2lh
OjpDb250ZW50TGF5ZXJUZXh0dXJlTWFwcGVySW1wbDo6Y3JlYXRlRmFjdG9yeSgqdGhpcykpKQot
ewotICAgIHN3aXRjaCAoZGVzdGluYXRpb24pIHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMOjpEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuOgotICAgICAgICBtX2dsQ29udGV4dCA9IEdM
Q29udGV4dDo6Y3JlYXRlT2Zmc2NyZWVuQ29udGV4dCgmUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWRE
aXNwbGF5Rm9yQ29tcG9zaXRpbmcoKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OkRlc3RpbmF0aW9uOjpEaXJlY3RseVRvSG9zdFdpbmRvdzoKLSAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KKyAgICBt
X2dsQ29udGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRlT2Zmc2NyZWVuQ29udGV4dCgmUGxhdGZvcm1E
aXNwbGF5OjpzaGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmcoKSk7CiB9CiAKIEdDR0xMYXllcjo6
fkdDR0xMYXllcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTExheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTExheWVyLmgKaW5kZXggYWJm
MDRiYjdlZmVhYjU2YjE5MDZjMDhjMjdkODUwZmY2MDY2MGM5My4uZTQyZTY3NjdiNzA3MDI1NzNi
YWU1M2JmMjE5MDVkYzQyNzAxMzRkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xMYXllci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5
ZXIuaApAQCAtNDQsNyArNDQsNiBAQCBjbGFzcyBHQ0dMTGF5ZXIgOiBwdWJsaWMgQ29udGVudExh
eWVyVGV4dHVyZU1hcHBlckltcGw6OkNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgR0NHTExheWVyKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMJik7Ci0gICAgR0NHTExheWVyKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMJiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkRlc3RpbmF0aW9uKTsK
IAogICAgIHZpcnR1YWwgfkdDR0xMYXllcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9w
ZW5HTC5oCmluZGV4IDhkN2JiMzUwZmFiZDA4ZmE4MTk2OGJhNDk0Y2FjY2ZiN2MwOWZmOGEuLmUw
ZTM5YWNkNTI4ZjBjODdmMjQ5YTc2OTBhNDEyMzM3MDY5Njk3ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5H
TC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTC5oCkBAIC05Niw3ICs5Niw3IEBAIGNsYXNzIEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMUHJpdmF0ZTsKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMIGZpbmFsIDogcHVibGljIEdyYXBoaWNzQ29udGV4dEdMCiB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gY3JlYXRlKEdyYXBoaWNzQ29u
dGV4dEdMQXR0cmlidXRlcywgSG9zdFdpbmRvdyosIERlc3RpbmF0aW9uID0gRGVzdGluYXRpb246
Ok9mZnNjcmVlbik7CisgICAgc3RhdGljIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4g
Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcywgSG9zdFdpbmRvdyopOwogICAgIHZp
cnR1YWwgfkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKCk7CiAKICNpZiBQTEFURk9STShDT0NPQSkK
QEAgLTUxMyw3ICs1MTMsNyBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcywgSG9zdFdp
bmRvdyosIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBzaGFyZWRDb250ZXh0ID0gbnVsbHB0ciwg
R3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4qID0gbnVsbHB0cik7CiAjZWxzZQot
ICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcywg
SG9zdFdpbmRvdyosIERlc3RpbmF0aW9uID0gRGVzdGluYXRpb246Ok9mZnNjcmVlbiwgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wqIHNoYXJlZENvbnRleHQgPSBudWxscHRyKTsKKyAgICBHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cq
LCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogc2hhcmVkQ29udGV4dCA9IG51bGxwdHIpOwogI2Vu
ZGlmCiAKICAgICAvLyBDYWxsZWQgb25jZSBieSBhbGwgdGhlIHB1YmxpYyBlbnRyeSBwb2ludHMg
dGhhdCBldmVudHVhbGx5IGNhbGwgT3BlbkdMLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMRVMuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdM
T3BlbkdMRVMuY3BwCmluZGV4IGJhYWJkZTA3OTE0NjVmM2Y4M2U2NmZmMjkwZWExNGVjMTg2YjI3
ZDQuLjVjOWVmYjJlYTQ5NmIyYmQ1YjRkYmVjNzE1NGViNmYyNDdlZTk4ODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRH
TE9wZW5HTEVTLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xFUy5jcHAKQEAgLTI3NiwxMiArMjc2LDggQEAgRXh0
ZW5zaW9uc0dMJiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiAjZW5k
aWYKIAogI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKENBKQotUmVmUHRyPEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4
dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiBob3N0V2luZG93LCBHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24pCitSZWZQdHI8R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w+IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoR3JhcGhp
Y3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cp
CiB7Ci0gICAgLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IGN1cnJlbnRseSBzdXBwb3J0
IHJlbmRlcmluZyBkaXJlY3RseSB0byB0aGUgSG9zdFdpbmRvdy4KLSAgICBpZiAoZGVzdGluYXRp
b24gPT0gRGVzdGluYXRpb246OkRpcmVjdGx5VG9Ib3N0V2luZG93KQotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLSAgICAKICAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOwogICAg
IHN0YXRpYyBib29sIHN1Y2Nlc3MgPSB0cnVlOwogICAgIGlmICghaW5pdGlhbGl6ZWQpIHsKQEAg
LTI5NiwxMCArMjkyLDEwIEBAIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShHcmFwaGljc0NvbnRleHRHCiAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChhdHRyaWJ1dGVzLCBob3N0V2luZG93
LCByZW5kZXJTdHlsZSkpOwogfQogCi1HcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3ND
b250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhv
c3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6RGVzdGluYXRpb24gZGVzdGluYXRp
b24sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBzaGFyZWRDb250ZXh0KQotICAgIDogR3JhcGhp
Y3NDb250ZXh0R0woYXR0cmlidXRlcywgZGVzdGluYXRpb24sIHNoYXJlZENvbnRleHQpCitHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250
ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHRH
TE9wZW5HTCogc2hhcmVkQ29udGV4dCkKKyAgICA6IEdyYXBoaWNzQ29udGV4dEdMKGF0dHJpYnV0
ZXMsIHNoYXJlZENvbnRleHQpCiAgICAgLCBtX2NvbXBpbGVyKGlzR0xFUzJDb21wbGlhbnQoKSA/
IFNIX0VTU0xfT1VUUFVUIDogU0hfR0xTTF9DT01QQVRJQklMSVRZX09VVFBVVCkKLSAgICAsIG1f
cHJpdmF0ZShtYWtlVW5pcXVlPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0ZT4odGhpcywg
ZGVzdGluYXRpb24pKQorICAgICwgbV9wcml2YXRlKG1ha2VVbmlxdWU8R3JhcGhpY3NDb250ZXh0
R0xPcGVuR0xQcml2YXRlPih0aGlzKSkKIHsKICAgICBBU1NFUlRfVU5VU0VEKHNoYXJlZENvbnRl
eHQsICFzaGFyZWRDb250ZXh0KTsKICAgICBpZiAoIW1ha2VDb250ZXh0Q3VycmVudCgpKQpAQCAt
MzA5LDMzICszMDUsMzEgQEAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHQKICAgICB2YWxpZGF0ZUF0
dHJpYnV0ZXMoKTsKICAgICBhdHRyaWJ1dGVzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsgLy8gVGhl
eSBtYXkgaGF2ZSBjaGFuZ2VkIGR1cmluZyB2YWxpZGF0aW9uLgogCi0gICAgaWYgKGRlc3RpbmF0
aW9uID09IERlc3RpbmF0aW9uOjpPZmZzY3JlZW4pIHsKLSAgICAgICAgLy8gQ3JlYXRlIGEgdGV4
dHVyZSB0byByZW5kZXIgaW50by4KLSAgICAgICAgOjpnbEdlblRleHR1cmVzKDEsICZtX3RleHR1
cmUpOwotICAgICAgICA6OmdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgbV90ZXh0dXJlKTsK
LSAgICAgICAgOjpnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NQUdf
RklMVEVSLCBHTF9MSU5FQVIpOwotICAgICAgICA6OmdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJF
XzJELCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7Ci0gICAgICAgIDo6Z2xUZXhQ
YXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19F
REdFKTsKLSAgICAgICAgOjpnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVS
RV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOwotICAgICAgICA6OmdsQmluZFRleHR1cmUoR0xf
VEVYVFVSRV8yRCwgMCk7CisgICAgLy8gQ3JlYXRlIGEgdGV4dHVyZSB0byByZW5kZXIgaW50by4K
KyAgICA6OmdsR2VuVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7CisgICAgOjpnbEJpbmRUZXh0dXJl
KEdMX1RFWFRVUkVfMkQsIG1fdGV4dHVyZSk7CisgICAgOjpnbFRleFBhcmFtZXRlcmYoR0xfVEVY
VFVSRV8yRCwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOworICAgIDo6Z2xUZXhQ
YXJhbWV0ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFS
KTsKKyAgICA6OmdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBf
UywgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAgOjpnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8y
RCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOworICAgIDo6Z2xCaW5kVGV4
dHVyZShHTF9URVhUVVJFXzJELCAwKTsKICAgICAgICAgCi0gICAgICAgIC8vIENyZWF0ZSBhbiBG
Qk8uCi0gICAgICAgIDo6Z2xHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fZmJvKTsKLSAgICAgICAgOjpn
bEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9mYm8pOworICAgIC8vIENyZWF0ZSBh
biBGQk8uCisgICAgOjpnbEdlbkZyYW1lYnVmZmVycygxLCAmbV9mYm8pOworICAgIDo6Z2xCaW5k
RnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKICAgICAgICAgCi0gICAgICAgIG1f
c3RhdGUuYm91bmREcmF3RkJPID0gbV9zdGF0ZS5ib3VuZFJlYWRGYm8gPSBtX2ZibzsKLSAgICAg
ICAgaWYgKCFhdHRyaWJ1dGVzLmFudGlhbGlhcyAmJiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0
dHJpYnV0ZXMuZGVwdGgpKQotICAgICAgICAgICAgOjpnbEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1f
ZGVwdGhTdGVuY2lsQnVmZmVyKTsKKyAgICBtX3N0YXRlLmJvdW5kRHJhd0ZCTyA9IG1fc3RhdGUu
Ym91bmRSZWFkRmJvID0gbV9mYm87CisgICAgaWYgKCFhdHRyaWJ1dGVzLmFudGlhbGlhcyAmJiAo
YXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpKQorICAgICAgICA6OmdsR2Vu
UmVuZGVyYnVmZmVycygxLCAmbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAKLSAgICAg
ICAgLy8gQ3JlYXRlIGEgbXVsdGlzYW1wbGUgRkJPLgotICAgICAgICBpZiAoYXR0cmlidXRlcy5h
bnRpYWxpYXMpIHsKLSAgICAgICAgICAgIDo6Z2xHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlz
YW1wbGVGQk8pOwotICAgICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZF
UiwgbV9tdWx0aXNhbXBsZUZCTyk7Ci0gICAgICAgICAgICBtX3N0YXRlLmJvdW5kRHJhd0ZCTyA9
IG1fc3RhdGUuYm91bmRSZWFkRkJPID0gbV9tdWx0aXNhbXBsZUZCTzsKLSAgICAgICAgICAgIDo6
Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAg
ICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQotICAgICAg
ICAgICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRGVwdGhTdGVu
Y2lsQnVmZmVyKTsKLSAgICAgICAgfQorICAgIC8vIENyZWF0ZSBhIG11bHRpc2FtcGxlIEZCTy4K
KyAgICBpZiAoYXR0cmlidXRlcy5hbnRpYWxpYXMpIHsKKyAgICAgICAgOjpnbEdlbkZyYW1lYnVm
ZmVycygxLCAmbV9tdWx0aXNhbXBsZUZCTyk7CisgICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXIo
R0xfRlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOworICAgICAgICBtX3N0YXRlLmJvdW5k
RHJhd0ZCTyA9IG1fc3RhdGUuYm91bmRSZWFkRkJPID0gbV9tdWx0aXNhbXBsZUZCTzsKKyAgICAg
ICAgOjpnbEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVDb2xvckJ1ZmZlcik7Cisg
ICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0aCkKKyAgICAg
ICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRGVwdGhTdGVuY2ls
QnVmZmVyKTsKICAgICB9CiAgICAgCiAgICAgLy8gQU5HTEUgaW5pdGlhbGl6YXRpb24uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0xQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTFByaXZhdGUuY3BwCmluZGV4IDU4Mzc5
OWViMzI2ZmU0MTBhNmQwZGM0ZjhjYTgyYmRlZTA0NGYyNzIuLmM1MjA5ZmFmMDVlODM5YjkwNDFk
M2QyOTQwMzlhYmM4NWJkMWM2ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTFByaXZhdGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRH
TE9wZW5HTFByaXZhdGUuY3BwCkBAIC0yOSwxNiArMjksOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLUdyYXBoaWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xQcml2YXRlKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKQorR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xQ
cml2YXRlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTFByaXZhdGUoR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wqKQogewotICAgIHN3aXRjaCAoZGVzdGluYXRpb24pIHsKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMOjpEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuOgotICAgICAgICBtX2dsQ29u
dGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRlT2Zmc2NyZWVuQ29udGV4dCgmUGxhdGZvcm1EaXNwbGF5
OjpzaGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmcoKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkRlc3RpbmF0aW9uOjpEaXJlY3RseVRvSG9zdFdp
bmRvdzoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAg
IH0KKyAgICBtX2dsQ29udGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRlT2Zmc2NyZWVuQ29udGV4dCgm
UGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmcoKSk7CiB9CiAKIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0ZTo6fkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMUHJp
dmF0ZSgpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTFByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTFBy
aXZhdGUuaAppbmRleCAxYWYyZGQ2YWQ5YzhhMDVmNDg1NThmNTk5MWJlMzQ0MTU3MDdkM2U2Li5j
OTM4ZGRkMmE4MjFmODMwNjVlYjE1Yjg5ZWViMDc4YjgwMzMxNzI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0ZS5oCkBAIC0zMSw3ICszMSw3IEBAIGNsYXNz
IEJpdG1hcFRleHR1cmVHTDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0ZSB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xQcml2YXRlKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OkRlc3RpbmF0aW9uKTsKKyAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTFBy
aXZhdGUoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqKTsKICAgICB+R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xQcml2YXRlKCk7CiAgICAgYm9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICBQbGF0
Zm9ybUdyYXBoaWNzQ29udGV4dEdMIHBsYXRmb3JtQ29udGV4dCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4
dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcAppbmRleCBjMmY0YTIzNjFhMGFmNzEz
ZTFlNDZmNDBhNDE2ZDRhY2RjMGY1MjlmLi4zNDkyZTNlZjNjNGUxYzFiZGU0NGQxOWRjYTlmNzky
YjdiMDJiYzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFw
cGVyLmNwcApAQCAtNzAsMTIgKzcwLDggQEAgc3RhdGljIERlcXVlPEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMKiwgTWF4QWN0aXZlQ29udGV4dHM+JiBhY3RpdmVDb250ZXh0cygpCiAgICAgcmV0dXJu
IHNfYWN0aXZlQ29udGV4dHM7CiB9CiAKLVJlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4g
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0
ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRvdyogaG9zdFdpbmRvdywgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKQorUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEdM
QXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiBob3N0V2luZG93KQogewotICAgIC8v
IFRoaXMgaW1wbGVtZW50YXRpb24gZG9lc24ndCBjdXJyZW50bHkgc3VwcG9ydCByZW5kZXJpbmcg
ZGlyZWN0bHkgdG8gdGhlIEhvc3RXaW5kb3cuCi0gICAgaWYgKGRlc3RpbmF0aW9uID09IERlc3Rp
bmF0aW9uOjpEaXJlY3RseVRvSG9zdFdpbmRvdykKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0K
ICAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOwogICAgIHN0YXRpYyBib29sIHN1
Y2Nlc3MgPSB0cnVlOwogICAgIGlmICghaW5pdGlhbGl6ZWQpIHsKQEAgLTk3LDcgKzkzLDcgQEAg
UmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6
Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEcKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAv
LyBDcmVhdGUgdGhlIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIG9iamVjdCBmaXJzdCBpbiBvcmRl
ciB0byBlc3RhYmxpc3QgYSBjdXJyZW50IGNvbnRleHQgb24gdGhpcyB0aHJlYWQuCi0gICAgYXV0
byBjb250ZXh0ID0gYWRvcHRSZWYobmV3IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKGF0dHJpYnV0
ZXMsIGhvc3RXaW5kb3csIGRlc3RpbmF0aW9uKSk7CisgICAgYXV0byBjb250ZXh0ID0gYWRvcHRS
ZWYobmV3IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKGF0dHJpYnV0ZXMsIGhvc3RXaW5kb3cpKTsK
IAogI2lmIFVTRShMSUJFUE9YWSkgJiYgVVNFKE9QRU5HTF9FUykgJiYgRU5BQkxFKFdFQkdMMikK
ICAgICAvLyBCYWlsIGlmIEdMRVMzIHdhcyByZXF1ZXN0ZWQgYnV0IGNhbm5vdCBiZSBwcm92aWRl
ZC4KQEAgLTExMCwxNyArMTA2LDE3IEBAIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4g
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShHcmFwaGljc0NvbnRleHRHCiB9CiAKICNp
ZiBVU0UoQU5HTEUpCi1HcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cq
LCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24sIEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMKiBzaGFyZWRDb250ZXh0KQotICAgIDogR3JhcGhpY3NDb250ZXh0
R0woYXR0cmlidXRlcywgZGVzdGluYXRpb24sIHNoYXJlZENvbnRleHQpCitHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRy
aWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCog
c2hhcmVkQ29udGV4dCkKKyAgICA6IEdyYXBoaWNzQ29udGV4dEdMKGF0dHJpYnV0ZXMsIHNoYXJl
ZENvbnRleHQpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChzaGFyZWRDb250ZXh0LCAhc2hhcmVkQ29u
dGV4dCk7CiAjaWYgRU5BQkxFKFdFQkdMMikKICAgICBtX2lzRm9yV2ViR0wyID0gYXR0cmlidXRl
cy53ZWJHTFZlcnNpb24gPT0gR3JhcGhpY3NDb250ZXh0R0xXZWJHTFZlcnNpb246OldlYkdMMjsK
ICNlbmRpZgogI2lmIFVTRShOSUNPU0lBKQotICAgIG1fbmljb3NpYUxheWVyID0gV1RGOjptYWtl
VW5pcXVlPE5pY29zaWE6OkdDR0xBTkdMRUxheWVyPigqdGhpcywgZGVzdGluYXRpb24pOworICAg
IG1fbmljb3NpYUxheWVyID0gV1RGOjptYWtlVW5pcXVlPE5pY29zaWE6OkdDR0xBTkdMRUxheWVy
PigqdGhpcyk7CiAjZWxzZQotICAgIG1fdGV4bWFwTGF5ZXIgPSBXVEY6Om1ha2VVbmlxdWU8VGV4
dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyPigqdGhpcywgZGVzdGluYXRpb24pOworICAgIG1f
dGV4bWFwTGF5ZXIgPSBXVEY6Om1ha2VVbmlxdWU8VGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxh
eWVyPigqdGhpcyk7CiAjZW5kaWYKICAgICBib29sIHN1Y2Nlc3MgPSBtYWtlQ29udGV4dEN1cnJl
bnQoKTsKICAgICBBU1NFUlRfVU5VU0VEKHN1Y2Nlc3MsIHN1Y2Nlc3MpOwpAQCAtMTI4LDY4ICsx
MjQsNjYgQEAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
KEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHQKICAgICB2YWxpZGF0ZUF0dHJpYnV0ZXMo
KTsKICAgICBhdHRyaWJ1dGVzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsgLy8gVGhleSBtYXkgaGF2
ZSBjaGFuZ2VkIGR1cmluZyB2YWxpZGF0aW9uLgogCi0gICAgaWYgKGRlc3RpbmF0aW9uID09IERl
c3RpbmF0aW9uOjpPZmZzY3JlZW4pIHsKLSAgICAgICAgR0xlbnVtIHRleHR1cmVUYXJnZXQgPSBk
cmF3aW5nQnVmZmVyVGV4dHVyZVRhcmdldCgpOwotICAgICAgICAvLyBDcmVhdGUgYSB0ZXh0dXJl
IHRvIHJlbmRlciBpbnRvLgotICAgICAgICBnbDo6R2VuVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7
Ci0gICAgICAgIGdsOjpCaW5kVGV4dHVyZSh0ZXh0dXJlVGFyZ2V0LCBtX3RleHR1cmUpOwotICAg
ICAgICBnbDo6VGV4UGFyYW1ldGVyZih0ZXh0dXJlVGFyZ2V0LCBHTF9URVhUVVJFX01BR19GSUxU
RVIsIEdMX0xJTkVBUik7Ci0gICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJmKHRleHR1cmVUYXJnZXQs
IEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKLSAgICAgICAgZ2w6OlRleFBhcmFt
ZXRlcmkodGV4dHVyZVRhcmdldCwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0Up
OwotICAgICAgICBnbDo6VGV4UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LCBHTF9URVhUVVJFX1dS
QVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7Ci0gICAgICAgIGdsOjpCaW5kVGV4dHVyZSh0ZXh0dXJl
VGFyZ2V0LCAwKTsKLQotICAgICAgICAvLyBDcmVhdGUgYW4gRkJPLgotICAgICAgICBnbDo6R2Vu
RnJhbWVidWZmZXJzKDEsICZtX2Zibyk7Ci0gICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR0xf
RlJBTUVCVUZGRVIsIG1fZmJvKTsKKyAgICBHTGVudW0gdGV4dHVyZVRhcmdldCA9IGRyYXdpbmdC
dWZmZXJUZXh0dXJlVGFyZ2V0KCk7CisgICAgLy8gQ3JlYXRlIGEgdGV4dHVyZSB0byByZW5kZXIg
aW50by4KKyAgICBnbDo6R2VuVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7CisgICAgZ2w6OkJpbmRU
ZXh0dXJlKHRleHR1cmVUYXJnZXQsIG1fdGV4dHVyZSk7CisgICAgZ2w6OlRleFBhcmFtZXRlcmYo
dGV4dHVyZVRhcmdldCwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOworICAgIGds
OjpUZXhQYXJhbWV0ZXJmKHRleHR1cmVUYXJnZXQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xf
TElORUFSKTsKKyAgICBnbDo6VGV4UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LCBHTF9URVhUVVJF
X1dSQVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAgZ2w6OlRleFBhcmFtZXRlcmkodGV4dHVy
ZVRhcmdldCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOworICAgIGdsOjpC
aW5kVGV4dHVyZSh0ZXh0dXJlVGFyZ2V0LCAwKTsKKworICAgIC8vIENyZWF0ZSBhbiBGQk8uCisg
ICAgZ2w6OkdlbkZyYW1lYnVmZmVycygxLCAmbV9mYm8pOworICAgIGdsOjpCaW5kRnJhbWVidWZm
ZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKIAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElD
UykKLSAgICAgICAgZ2w6OkdlblRleHR1cmVzKDEsICZtX2NvbXBvc2l0b3JUZXh0dXJlKTsKLSAg
ICAgICAgZ2w6OkJpbmRUZXh0dXJlKHRleHVyZVR5cGUsIG1fY29tcG9zaXRvclRleHR1cmUpOwot
ICAgICAgICBnbDo6VGV4UGFyYW1ldGVyZih0ZXh1cmVUeXBlLCBHTF9URVhUVVJFX01BR19GSUxU
RVIsIEdMX0xJTkVBUik7Ci0gICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJmKHRleHVyZVR5cGUsIEdM
X1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKLSAgICAgICAgZ2w6OlRleFBhcmFtZXRl
cmkodGV4dXJlVHlwZSwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0UpOwotICAg
ICAgICBnbDo6VGV4UGFyYW1ldGVyaSh0ZXh1cmVUeXBlLCBHTF9URVhUVVJFX1dSQVBfVCwgR0xf
Q0xBTVBfVE9fRURHRSk7Ci0KLSAgICAgICAgZ2w6OkdlblRleHR1cmVzKDEsICZtX2ludGVybWVk
aWF0ZVRleHR1cmUpOwotICAgICAgICBnbDo6QmluZFRleHR1cmUodGV4dXJlVHlwZSwgbV9pbnRl
cm1lZGlhdGVUZXh0dXJlKTsKLSAgICAgICAgZ2w6OlRleFBhcmFtZXRlcmYodGV4dXJlVHlwZSwg
R0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOwotICAgICAgICBnbDo6VGV4UGFyYW1l
dGVyZih0ZXh1cmVUeXBlLCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7Ci0gICAg
ICAgIGdsOjpUZXhQYXJhbWV0ZXJpKHRleHVyZVR5cGUsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9D
TEFNUF9UT19FREdFKTsKLSAgICAgICAgZ2w6OlRleFBhcmFtZXRlcmkodGV4dXJlVHlwZSwgR0xf
VEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOwotCi0gICAgICAgIGdsOjpCaW5kVGV4
dHVyZSh0ZXh1cmVUeXBlLCAwKTsKKyAgICBnbDo6R2VuVGV4dHVyZXMoMSwgJm1fY29tcG9zaXRv
clRleHR1cmUpOworICAgIGdsOjpCaW5kVGV4dHVyZSh0ZXh0dXJlVGFyZ2V0LCBtX2NvbXBvc2l0
b3JUZXh0dXJlKTsKKyAgICBnbDo6VGV4UGFyYW1ldGVyZih0ZXh0dXJlVGFyZ2V0LCBHTF9URVhU
VVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7CisgICAgZ2w6OlRleFBhcmFtZXRlcmYodGV4dHVy
ZVRhcmdldCwgR0xfVEVYVFVSRV9NSU5fRklMVEVSLCBHTF9MSU5FQVIpOworICAgIGdsOjpUZXhQ
YXJhbWV0ZXJpKHRleHR1cmVUYXJnZXQsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19F
REdFKTsKKyAgICBnbDo6VGV4UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LCBHTF9URVhUVVJFX1dS
QVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7CisKKyAgICBnbDo6R2VuVGV4dHVyZXMoMSwgJm1faW50
ZXJtZWRpYXRlVGV4dHVyZSk7CisgICAgZ2w6OkJpbmRUZXh0dXJlKHRleHR1cmVUYXJnZXQsIG1f
aW50ZXJtZWRpYXRlVGV4dHVyZSk7CisgICAgZ2w6OlRleFBhcmFtZXRlcmYodGV4dHVyZVRhcmdl
dCwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOworICAgIGdsOjpUZXhQYXJhbWV0
ZXJmKHRleHR1cmVUYXJnZXQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAg
ICBnbDo6VGV4UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LCBHTF9URVhUVVJFX1dSQVBfUywgR0xf
Q0xBTVBfVE9fRURHRSk7CisgICAgZ2w6OlRleFBhcmFtZXRlcmkodGV4dHVyZVRhcmdldCwgR0xf
VEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOworCisgICAgZ2w6OkJpbmRUZXh0dXJl
KHRleHR1cmVUYXJnZXQsIDApOwogI2VuZGlmCiAKLSAgICAgICAgLy8gQ3JlYXRlIGEgbXVsdGlz
YW1wbGUgRkJPLgotICAgICAgICBBU1NFUlQobV9zdGF0ZS5ib3VuZFJlYWRGQk8gPT0gbV9zdGF0
ZS5ib3VuZERyYXdGQk8pOwotICAgICAgICBpZiAoYXR0cmlidXRlcy5hbnRpYWxpYXMpIHsKLSAg
ICAgICAgICAgIGdsOjpHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOwotICAg
ICAgICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBs
ZUZCTyk7Ci0gICAgICAgICAgICBtX3N0YXRlLmJvdW5kRHJhd0ZCTyA9IG1fc3RhdGUuYm91bmRS
ZWFkRkJPID0gbV9tdWx0aXNhbXBsZUZCTzsKLSAgICAgICAgICAgIGdsOjpHZW5SZW5kZXJidWZm
ZXJzKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAgICAgICAgaWYgKGF0dHJp
YnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQotICAgICAgICAgICAgICAgIGdsOjpH
ZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIEJpbmQgY2FudmFzIEZCTy4KLSAgICAgICAg
ICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKLSAgICAgICAg
ICAgIG1fc3RhdGUuYm91bmREcmF3RkJPID0gbV9zdGF0ZS5ib3VuZFJlYWRGQk8gPSBtX2ZibzsK
LSAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0aCkK
LSAgICAgICAgICAgICAgICBnbDo6R2VuUmVuZGVyYnVmZmVycygxLCAmbV9kZXB0aFN0ZW5jaWxC
dWZmZXIpOwotICAgICAgICB9CisgICAgLy8gQ3JlYXRlIGEgbXVsdGlzYW1wbGUgRkJPLgorICAg
IEFTU0VSVChtX3N0YXRlLmJvdW5kUmVhZEZCTyA9PSBtX3N0YXRlLmJvdW5kRHJhd0ZCTyk7Cisg
ICAgaWYgKGF0dHJpYnV0ZXMuYW50aWFsaWFzKSB7CisgICAgICAgIGdsOjpHZW5GcmFtZWJ1ZmZl
cnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOworICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdM
X0ZSQU1FQlVGRkVSLCBtX211bHRpc2FtcGxlRkJPKTsKKyAgICAgICAgbV9zdGF0ZS5ib3VuZERy
YXdGQk8gPSBtX3N0YXRlLmJvdW5kUmVhZEZCTyA9IG1fbXVsdGlzYW1wbGVGQk87CisgICAgICAg
IGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOworICAg
ICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpCisgICAgICAg
ICAgICBnbDo6R2VuUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1
ZmZlcik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gQmluZCBjYW52YXMgRkJPLgorICAgICAg
ICBnbDo6QmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX2Zibyk7CisgICAgICAgIG1f
c3RhdGUuYm91bmREcmF3RkJPID0gbV9zdGF0ZS5ib3VuZFJlYWRGQk8gPSBtX2ZibzsKKyAgICAg
ICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQorICAgICAgICAg
ICAgZ2w6OkdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICB9
CiAKICAgICBnbDo6Q2xlYXJDb2xvcigwLCAwLCAwLCAwKTsKIH0KICNlbHNlCi1HcmFwaGljc0Nv
bnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xB
dHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBzaGFy
ZWRDb250ZXh0KQotICAgIDogR3JhcGhpY3NDb250ZXh0R0woYXR0cmlidXRlcywgZGVzdGluYXRp
b24sIHNoYXJlZENvbnRleHQpCitHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RX
aW5kb3cqLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogc2hhcmVkQ29udGV4dCkKKyAgICA6IEdy
YXBoaWNzQ29udGV4dEdMKGF0dHJpYnV0ZXMsIHNoYXJlZENvbnRleHQpCiB7CiAgICAgQVNTRVJU
X1VOVVNFRChzaGFyZWRDb250ZXh0LCAhc2hhcmVkQ29udGV4dCk7CiAjaWYgVVNFKE5JQ09TSUEp
Ci0gICAgbV9uaWNvc2lhTGF5ZXIgPSBtYWtlVW5pcXVlPE5pY29zaWE6OkdDR0xMYXllcj4oKnRo
aXMsIGRlc3RpbmF0aW9uKTsKKyAgICBtX25pY29zaWFMYXllciA9IG1ha2VVbmlxdWU8Tmljb3Np
YTo6R0NHTExheWVyPigqdGhpcyk7CiAjZWxzZQotICAgIG1fdGV4bWFwTGF5ZXIgPSBtYWtlVW5p
cXVlPFRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcj4oKnRoaXMsIGRlc3RpbmF0aW9uKTsK
KyAgICBtX3RleG1hcExheWVyID0gbWFrZVVuaXF1ZTxUZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3Jt
TGF5ZXI+KCp0aGlzKTsKICNlbmRpZgogCiAgICAgYm9vbCBzdWNjZXNzID0gbWFrZUNvbnRleHRD
dXJyZW50KCk7CkBAIC0xOTgsNjAgKzE5Miw1OCBAQCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dAog
ICAgIHZhbGlkYXRlQXR0cmlidXRlcygpOwogICAgIGF0dHJpYnV0ZXMgPSBjb250ZXh0QXR0cmli
dXRlcygpOyAvLyBUaGV5IG1heSBoYXZlIGNoYW5nZWQgZHVyaW5nIHZhbGlkYXRpb24uCiAKLSAg
ICBpZiAoZGVzdGluYXRpb24gPT0gRGVzdGluYXRpb246Ok9mZnNjcmVlbikgewotICAgICAgICAv
LyBDcmVhdGUgYSB0ZXh0dXJlIHRvIHJlbmRlciBpbnRvLgotICAgICAgICA6OmdsR2VuVGV4dHVy
ZXMoMSwgJm1fdGV4dHVyZSk7Ci0gICAgICAgIDo6Z2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJE
LCBtX3RleHR1cmUpOwotICAgICAgICA6OmdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBH
TF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7Ci0gICAgICAgIDo6Z2xUZXhQYXJhbWV0
ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKLSAg
ICAgICAgOjpnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1Ms
IEdMX0NMQU1QX1RPX0VER0UpOwotICAgICAgICA6OmdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJF
XzJELCBHTF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7Ci0gICAgICAgIDo6Z2xC
aW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCAwKTsKKyAgICAvLyBDcmVhdGUgYSB0ZXh0dXJlIHRv
IHJlbmRlciBpbnRvLgorICAgIDo6Z2xHZW5UZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKKyAgICA6
OmdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgbV90ZXh0dXJlKTsKKyAgICA6OmdsVGV4UGFy
YW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7
CisgICAgOjpnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NSU5fRklM
VEVSLCBHTF9MSU5FQVIpOworICAgIDo6Z2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdM
X1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsKKyAgICA6OmdsVGV4UGFyYW1ldGVy
aShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7Cisg
ICAgOjpnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIDApOwogCi0gICAgICAgIC8vIENyZWF0
ZSBhbiBGQk8uCi0gICAgICAgIDo6Z2xHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fZmJvKTsKLSAgICAg
ICAgOjpnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9mYm8pOworICAgIC8vIENy
ZWF0ZSBhbiBGQk8uCisgICAgOjpnbEdlbkZyYW1lYnVmZmVycygxLCAmbV9mYm8pOworICAgIDo6
Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKIAogI2lmIFVTRShDT09S
RElOQVRFRF9HUkFQSElDUykKLSAgICAgICAgOjpnbEdlblRleHR1cmVzKDEsICZtX2NvbXBvc2l0
b3JUZXh0dXJlKTsKLSAgICAgICAgOjpnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1fY29t
cG9zaXRvclRleHR1cmUpOwotICAgICAgICA6OmdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJE
LCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7Ci0gICAgICAgIDo6Z2xUZXhQYXJh
bWV0ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsK
LSAgICAgICAgOjpnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQ
X1MsIEdMX0NMQU1QX1RPX0VER0UpOwotICAgICAgICA6OmdsVGV4UGFyYW1ldGVyaShHTF9URVhU
VVJFXzJELCBHTF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7Ci0KLSAgICAgICAg
OjpnbEdlblRleHR1cmVzKDEsICZtX2ludGVybWVkaWF0ZVRleHR1cmUpOwotICAgICAgICA6Omds
QmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgbV9pbnRlcm1lZGlhdGVUZXh0dXJlKTsKLSAgICAg
ICAgOjpnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NQUdfRklMVEVS
LCBHTF9MSU5FQVIpOwotICAgICAgICA6OmdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBH
TF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7Ci0gICAgICAgIDo6Z2xUZXhQYXJhbWV0
ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsK
LSAgICAgICAgOjpnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQ
X1QsIEdMX0NMQU1QX1RPX0VER0UpOwotCi0gICAgICAgIDo6Z2xCaW5kVGV4dHVyZShHTF9URVhU
VVJFXzJELCAwKTsKKyAgICA6OmdsR2VuVGV4dHVyZXMoMSwgJm1fY29tcG9zaXRvclRleHR1cmUp
OworICAgIDo6Z2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBtX2NvbXBvc2l0b3JUZXh0dXJl
KTsKKyAgICA6OmdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01BR19G
SUxURVIsIEdMX0xJTkVBUik7CisgICAgOjpnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwg
R0xfVEVYVFVSRV9NSU5fRklMVEVSLCBHTF9MSU5FQVIpOworICAgIDo6Z2xUZXhQYXJhbWV0ZXJp
KEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsKKyAg
ICA6OmdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfVCwgR0xf
Q0xBTVBfVE9fRURHRSk7CisKKyAgICA6OmdsR2VuVGV4dHVyZXMoMSwgJm1faW50ZXJtZWRpYXRl
VGV4dHVyZSk7CisgICAgOjpnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1faW50ZXJtZWRp
YXRlVGV4dHVyZSk7CisgICAgOjpnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVY
VFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOworICAgIDo6Z2xUZXhQYXJhbWV0ZXJmKEdMX1RF
WFRVUkVfMkQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICA6OmdsVGV4
UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9f
RURHRSk7CisgICAgOjpnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9X
UkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOworCisgICAgOjpnbEJpbmRUZXh0dXJlKEdMX1RFWFRV
UkVfMkQsIDApOwogI2VuZGlmCiAKLSAgICAgICAgLy8gQ3JlYXRlIGEgbXVsdGlzYW1wbGUgRkJP
LgotICAgICAgICBBU1NFUlQobV9zdGF0ZS5ib3VuZFJlYWRGQk8gPT0gbV9zdGF0ZS5ib3VuZERy
YXdGQk8pOwotICAgICAgICBpZiAoYXR0cmlidXRlcy5hbnRpYWxpYXMpIHsKLSAgICAgICAgICAg
IDo6Z2xHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOwotICAgICAgICAgICAg
OjpnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7Ci0g
ICAgICAgICAgICBtX3N0YXRlLmJvdW5kRHJhd0ZCTyA9IG1fc3RhdGUuYm91bmRSZWFkRkJPID0g
bV9tdWx0aXNhbXBsZUZCTzsKLSAgICAgICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZt
X211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3Rl
bmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQotICAgICAgICAgICAgICAgIDo6Z2xHZW5SZW5kZXJi
dWZmZXJzKDEsICZtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgIC8vIEJpbmQgY2FudmFzIEZCTy4KLSAgICAgICAgICAgIGdsQmlu
ZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpGUkFNRUJVRkZFUiwgbV9mYm8p
OwotICAgICAgICAgICAgbV9zdGF0ZS5ib3VuZERyYXdGQk8gPSBtX3N0YXRlLmJvdW5kUmVhZEZC
TyA9IG1fZmJvOworICAgIC8vIENyZWF0ZSBhIG11bHRpc2FtcGxlIEZCTy4KKyAgICBBU1NFUlQo
bV9zdGF0ZS5ib3VuZFJlYWRGQk8gPT0gbV9zdGF0ZS5ib3VuZERyYXdGQk8pOworICAgIGlmIChh
dHRyaWJ1dGVzLmFudGlhbGlhcykgeworICAgICAgICA6OmdsR2VuRnJhbWVidWZmZXJzKDEsICZt
X211bHRpc2FtcGxlRkJPKTsKKyAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJV
RkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7CisgICAgICAgIG1fc3RhdGUuYm91bmREcmF3RkJPID0g
bV9zdGF0ZS5ib3VuZFJlYWRGQk8gPSBtX211bHRpc2FtcGxlRkJPOworICAgICAgICA6OmdsR2Vu
UmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKKyAgICAgICAgaWYg
KGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQorICAgICAgICAgICAgOjpn
bEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEJpbmQgY2FudmFzIEZCTy4KKyAgICAgICAgZ2xCaW5k
RnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkZSQU1FQlVGRkVSLCBtX2Zibyk7
CisgICAgICAgIG1fc3RhdGUuYm91bmREcmF3RkJPID0gbV9zdGF0ZS5ib3VuZFJlYWRGQk8gPSBt
X2ZibzsKICNpZiBVU0UoT1BFTkdMX0VTKQotICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZXMuZGVw
dGgpCi0gICAgICAgICAgICAgICAgZ2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoQnVmZmVy
KTsKLSAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwpCi0gICAgICAgICAgICAgICAg
Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX3N0ZW5jaWxCdWZmZXIpOworICAgICAgICBpZiAoYXR0
cmlidXRlcy5kZXB0aCkKKyAgICAgICAgICAgIGdsR2VuUmVuZGVyYnVmZmVycygxLCAmbV9kZXB0
aEJ1ZmZlcik7CisgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwpCisgICAgICAgICAgICBn
bEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fc3RlbmNpbEJ1ZmZlcik7CiAjZW5kaWYKLSAgICAgICAg
ICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0aCkKLSAgICAgICAg
ICAgICAgICBnbEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAg
ICAgICAgfQorICAgICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVw
dGgpCisgICAgICAgICAgICBnbEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhTdGVuY2lsQnVm
ZmVyKTsKICAgICB9CiAKICNpZiAhVVNFKE9QRU5HTF9FUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3Jt
TGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5jcHAKaW5kZXggOTdkNWFhN2ZhNmQ2MzVlNmU5ZmVk
MDA0MzlhNDM0YzkxNjlhZWUwYi4uODU5YTA0NWI3MGMyMmY2ODM2YTNlMzcxMzU2MjI3MjY2NmMx
YTQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5j
cHAKQEAgLTMzLDIzICszMywxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVRleHR1cmVN
YXBwZXJHQ0dMUGxhdGZvcm1MYXllcjo6VGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyKEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMJiBjb250ZXh0LCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6
RGVzdGluYXRpb24gZGVzdGluYXRpb24pCitUZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXI6
OlRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcihHcmFwaGljc0NvbnRleHRHTE9wZW5HTCYg
Y29udGV4dCkKICAgICA6IG1fY29udGV4dChjb250ZXh0KQogewotICAgIHN3aXRjaCAoZGVzdGlu
YXRpb24pIHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpEZXN0aW5hdGlvbjo6
T2Zmc2NyZWVuOiB7Ci0gICAgICAgIGF1dG8gc2hhcmluZ0NvbnRleHQgPSBQbGF0Zm9ybURpc3Bs
YXk6OnNoYXJlZERpc3BsYXlGb3JDb21wb3NpdGluZygpLnNoYXJpbmdHTENvbnRleHQoKS0+cGxh
dGZvcm1Db250ZXh0KCk7CisgICAgYXV0byBzaGFyaW5nQ29udGV4dCA9IFBsYXRmb3JtRGlzcGxh
eTo6c2hhcmVkRGlzcGxheUZvckNvbXBvc2l0aW5nKCkuc2hhcmluZ0dMQ29udGV4dCgpLT5wbGF0
Zm9ybUNvbnRleHQoKTsKICNpZiBFTkFCTEUoV0VCR0wyKQotICAgICAgICBtX2dsQ29udGV4dCA9
IEFOR0xFQ29udGV4dDo6Y3JlYXRlQ29udGV4dChzaGFyaW5nQ29udGV4dCwgY29udGV4dC5jb250
ZXh0QXR0cmlidXRlcygpLndlYkdMVmVyc2lvbiA9PSBHcmFwaGljc0NvbnRleHRHTFdlYkdMVmVy
c2lvbjo6V2ViR0wyKTsKKyAgICBtX2dsQ29udGV4dCA9IEFOR0xFQ29udGV4dDo6Y3JlYXRlQ29u
dGV4dChzaGFyaW5nQ29udGV4dCwgY29udGV4dC5jb250ZXh0QXR0cmlidXRlcygpLndlYkdMVmVy
c2lvbiA9PSBHcmFwaGljc0NvbnRleHRHTFdlYkdMVmVyc2lvbjo6V2ViR0wyKTsKICNlbHNlCi0g
ICAgICAgIG1fZ2xDb250ZXh0ID0gQU5HTEVDb250ZXh0OjpjcmVhdGVDb250ZXh0KHNoYXJpbmdD
b250ZXh0LCBmYWxzZSk7CisgICAgbV9nbENvbnRleHQgPSBBTkdMRUNvbnRleHQ6OmNyZWF0ZUNv
bnRleHQoc2hhcmluZ0NvbnRleHQsIGZhbHNlKTsKICNlbmRpZgotICAgICAgICBicmVhazsKLSAg
ICB9Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6RGVzdGluYXRpb246OkRpcmVj
dGx5VG9Ib3N0V2luZG93OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgfQogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIG1fcGxh
dGZvcm1MYXllclByb3h5ID0gYWRvcHRSZWYobmV3IFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVy
UHJveHkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyLmgK
aW5kZXggNmRjMGZmMmNhZDhhMDY1MWNiY2RiYWRlNGUzY2U3OGZiMmY1MTE0Yi4uNDA0MjY0YTIz
M2YwMGQyYWEyN2Y1ODZkNWU3ZjMwNGI1OTY1MjJlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXll
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIuaApAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBUZXh0dXJl
TWFwcGVyUGxhdGZvcm1MYXllclByb3h5OwogY2xhc3MgVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9y
bUxheWVyIDogcHVibGljIFBsYXRmb3JtTGF5ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgotICAgIFRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcihHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTCYsIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpEZXN0aW5hdGlvbik7
CisgICAgVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyKEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMJik7CiAgICAgdmlydHVhbCB+VGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyKCk7CiAK
ICAgICBib29sIG1ha2VDb250ZXh0Q3VycmVudCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418764</attachid>
            <date>2021-01-29 13:24:44 -0800</date>
            <delta_ts>2021-01-29 13:24:44 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-221122-20210130062442.patch</filename>
            <type>text/plain</type>
            <size>35492</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMDc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODk5YjAxMGZiNWZjYzgy
YjY0MDk3YmI5MDQ0NzM4ZDc3ZjI4MDM1NS4uYWVhYjk5NWE4NGQ4NjJiZTYxYTQyMTc2NWRlMjM3
YmUzODA5MWNjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTAxLTI5ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFJlbW92ZSB1
bnVzZWQgR3JhcGhpY3NDb250ZXh0R0w6OkRlc3RpbmF0aW9uIGVudW0gY2xhc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTEyMgorCisgICAgICAg
IFJldmlld2VkIGJ5IEtlbm5ldGggUnVzc2VsbC4KKworICAgICAgICBJdCB3YXMgdXNlZCBieSBD
aHJvbWl1bSBwb3J0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0R0wuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMOjpkZXN0aW5hdGlv
biBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTEFOR0xFTGF5ZXIuY3BwOgorICAg
ICAgICAoTmljb3NpYTo6R0NHTEFOR0xFTGF5ZXI6OkdDR0xBTkdMRUxheWVyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTEFOR0xFTGF5ZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NH
TExheWVyLmNwcDoKKyAgICAgICAgKE5pY29zaWE6OkdDR0xMYXllcjo6R0NHTExheWVyKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTExheWVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdM
T3BlbkdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTFByaXZhdGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xQcml2YXRlOjpHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTFByaXZhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTFByaXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKTogRml4IGEg
Y29tcGlsYXRpb24gZXJyb3IgYnkgcmVuYW1pbmcgdGV4dXJlVHlwZSB0byB0ZXh0dXJlVGFyZ2V0
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0NHTFBs
YXRmb3JtTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdDR0xQbGF0
Zm9ybUxheWVyOjpUZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIuaDoK
KwogMjAyMS0wMS0yOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgog
CiAgICAgICAgIGZvbnQtc3RyZXRjaCBpcyBub3QgYXBwbGllZCB0byBzeXN0ZW0tdWkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdM
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdM
LmNwcAppbmRleCA5NTAzYjRhN2UyMDdkZGE2Y2ZiN2IyNjNhYzlmMzIxODFlYWU0Yjc1Li44YjM0
MGY5YzBlYTNhNjUyNGJhYjJjMzNmOWMxODFmZDZhOTNlMWVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuY3BwCkBAIC00
MTUsOSArNDE1LDggQEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMPiBHcmFwaGljc0NvbnRleHRH
TDo6Y3JlYXRlKGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0cmkKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCi1HcmFwaGljc0NvbnRleHRHTDo6R3JhcGhpY3NDb250ZXh0R0woR3JhcGhpY3NDb250
ZXh0R0xBdHRyaWJ1dGVzIGF0dHJzLCBEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwgR3JhcGhpY3ND
b250ZXh0R0wqKQorR3JhcGhpY3NDb250ZXh0R0w6OkdyYXBoaWNzQ29udGV4dEdMKEdyYXBoaWNz
Q29udGV4dEdMQXR0cmlidXRlcyBhdHRycywgR3JhcGhpY3NDb250ZXh0R0wqKQogICAgIDogbV9h
dHRycyhhdHRycykKLSAgICAsIG1fZGVzdGluYXRpb24oZGVzdGluYXRpb24pCiB7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dEdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRH
TC5oCmluZGV4IDJhZDE0N2Y2ZWFiOTRjZjNiZGYwM2JjNmZkYzIxMTdkNGFlMDA1MDQuLjAwMjYy
NDVlNDc5NzI3ZGVmY2MwMTFlNmU4YTFmZGM1NGUzMzFjNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuaApAQCAtNzQ5LDEx
ICs3NDksNiBAQCBwdWJsaWM6CiAgICAgICAgIE51bUZvcm1hdHMKICAgICB9OwogCi0gICAgZW51
bSBjbGFzcyBEZXN0aW5hdGlvbiA6IHVpbnQ4X3QgewotICAgICAgICBPZmZzY3JlZW4sCi0gICAg
ICAgIERpcmVjdGx5VG9Ib3N0V2luZG93LAotICAgIH07Ci0KICAgICBlbnVtIGNsYXNzIENoYW5u
ZWxCaXRzIDogdWludDhfdCB7CiAgICAgICAgIFJlZCA9IDEsCiAgICAgICAgIEdyZWVuID0gMiwK
QEAgLTkxNSw3ICs5MTAsNyBAQCBwdWJsaWM6CiAgICAgLy8gSG9zdFdpbmRvdyBtaWdodCBhZmZl
Y3QgdGhlIGRlY2lzaW9uIHdoaWNoIGJhY2tlbmQgaXMgdG8gYmUgdXNlZC4KICAgICBzdGF0aWMg
UmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMPiBjcmVhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0R0xB
dHRyaWJ1dGVzJiwgSG9zdFdpbmRvdyopOwogCi0gICAgR3JhcGhpY3NDb250ZXh0R0woR3JhcGhp
Y3NDb250ZXh0R0xBdHRyaWJ1dGVzLCBEZXN0aW5hdGlvbiA9IERlc3RpbmF0aW9uOjpPZmZzY3Jl
ZW4sIEdyYXBoaWNzQ29udGV4dEdMKiBzaGFyZWRDb250ZXh0ID0gbnVsbHB0cik7CisgICAgR3Jh
cGhpY3NDb250ZXh0R0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzLCBHcmFwaGljc0NvbnRl
eHRHTCogc2hhcmVkQ29udGV4dCA9IG51bGxwdHIpOwogICAgIHZpcnR1YWwgfkdyYXBoaWNzQ29u
dGV4dEdMKCkgPSBkZWZhdWx0OwogCiAgICAgdm9pZCBhZGRDbGllbnQoQ2xpZW50JiBjbGllbnQp
IHsgbV9jbGllbnRzLmFkZCgmY2xpZW50KTsgfQpAQCAtMTM1OSw4ICsxMzU0LDYgQEAgcHVibGlj
OgogICAgIC8vIFJldHVybnMgdHJ1ZSB1cG9uIHN1Y2Nlc3MuCiAgICAgc3RhdGljIGJvb2wgcGFj
a0ltYWdlRGF0YShJbWFnZSosIGNvbnN0IHZvaWQqIHBpeGVscywgR0NHTGVudW0gZm9ybWF0LCBH
Q0dMZW51bSB0eXBlLCBib29sIGZsaXBZLCBBbHBoYU9wLCBEYXRhRm9ybWF0IHNvdXJjZUZvcm1h
dCwgdW5zaWduZWQgc291cmNlSW1hZ2VXaWR0aCwgdW5zaWduZWQgc291cmNlSW1hZ2VIZWlnaHQs
IGNvbnN0IEludFJlY3QmIHNvdXJjZUltYWdlU3ViUmVjdGFuZ2xlLCBpbnQgZGVwdGgsIHVuc2ln
bmVkIHNvdXJjZVVucGFja0FsaWdubWVudCwgaW50IHVucGFja0ltYWdlSGVpZ2h0LCBWZWN0b3I8
dWludDhfdD4mIGRhdGEpOwogCi0gICAgRGVzdGluYXRpb24gZGVzdGluYXRpb24oKSBjb25zdCB7
IHJldHVybiBtX2Rlc3RpbmF0aW9uOyB9Ci0KIHByb3RlY3RlZDoKICAgICBpbnQgbV9jdXJyZW50
V2lkdGggeyAwIH07CiAgICAgaW50IG1fY3VycmVudEhlaWdodCB7IDAgfTsKQEAgLTEzNjgsNyAr
MTM2MSw2IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICBHcmFwaGljc0NvbnRleHRHTEF0
dHJpYnV0ZXMgbV9hdHRyczsKLSAgICBEZXN0aW5hdGlvbiBtX2Rlc3RpbmF0aW9uOwogfTsKIAog
aW5saW5lIEdDR0xmbG9hdCBHcmFwaGljc0NvbnRleHRHTDo6Z2V0RmxvYXQoR0NHTGVudW0gcG5h
bWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9H
cmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQppbmRleCAzNGFm
YzgyMGIyZGI4Mjg4ZGNmZTE3MWQ4NjQ4MzY4NzExNjk4MmYyLi44NDJmYjVmYWRhMTA0YzkwNzIz
OTM4MDNhNDU5MmNjYTJhYWVjYTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMQ29jb2EubW0KQEAgLTEyOCwxMiArMTI4LDggQEAgc3RhdGljIGJvb2wgbmVlZHNFQUdMT25N
YWMoKQogI2VuZGlmCiAKIAotUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRy
cywgSG9zdFdpbmRvdyogaG9zdFdpbmRvdywgR3JhcGhpY3NDb250ZXh0R0w6OkRlc3RpbmF0aW9u
IGRlc3RpbmF0aW9uKQorUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRycywg
SG9zdFdpbmRvdyogaG9zdFdpbmRvdykKIHsKLSAgICAvLyBUaGlzIGltcGxlbWVudGF0aW9uIGRv
ZXNuJ3QgY3VycmVudGx5IHN1cHBvcnQgcmVuZGVyaW5nIGRpcmVjdGx5IHRvIHRoZSBIb3N0V2lu
ZG93LgotICAgIGlmIChkZXN0aW5hdGlvbiA9PSBEZXN0aW5hdGlvbjo6RGlyZWN0bHlUb0hvc3RX
aW5kb3cpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCiAgICAgLy8gTWFrZSBzcGFjZSBmb3Ig
dGhlIGluY29taW5nIGNvbnRleHQgaWYgd2UncmUgZnVsbC4KICAgICBHcmFwaGljc0NvbnRleHRH
TE9wZW5HTE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5yZWN5Y2xlQ29udGV4dElmTmVjZXNzYXJ5
KCk7CiAgICAgaWYgKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdl
cigpLmhhc1Rvb01hbnlDb250ZXh0cygpKQpAQCAtMTY1LDcgKzE2MSw3IEBAIFJlZjxHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTD4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZUZvckdQVVBy
b2Nlc3MoY29uc3QKIH0KIAogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmRvdyos
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBzaGFyZWRDb250ZXh0LCBHcmFwaGljc0NvbnRleHRH
TElPU3VyZmFjZVN3YXBDaGFpbiogc3dhcENoYWluKQotICAgIDogR3JhcGhpY3NDb250ZXh0R0wo
YXR0cnMsIERlc3RpbmF0aW9uOjpPZmZzY3JlZW4sIHNoYXJlZENvbnRleHQpCisgICAgOiBHcmFw
aGljc0NvbnRleHRHTChhdHRycywgc2hhcmVkQ29udGV4dCkKIHsKICAgICBtX2lzRm9yV2ViR0wy
ID0gYXR0cnMud2ViR0xWZXJzaW9uID09IEdyYXBoaWNzQ29udGV4dEdMV2ViR0xWZXJzaW9uOjpX
ZWJHTDI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25p
Y29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NHTEFOR0xFTGF5ZXIuY3Bw
CmluZGV4IDgxYTk1MjY5ZGU1N2UzNGNmZGRkNDAzM2Q3NDY2NmZmMTIyNjc2MjkuLjhkZjlmNzli
Y2MyZWJiMDVhNzhiZTgzOWFiZWEwNjVlOWFiZmFjOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXll
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXht
YXAvTmljb3NpYUdDR0xBTkdMRUxheWVyLmNwcApAQCAtMTY2LDE3ICsxNjYsMTAgQEAgUGxhdGZv
cm1HcmFwaGljc0NvbnRleHRHTCBHQ0dMQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjpwbGF0Zm9y
bUNvbnRleHQoKSBjb25zdAogICAgIHJldHVybiBtX2NvbnRleHQ7CiB9CiAKLUdDR0xBTkdMRUxh
eWVyOjpHQ0dMQU5HTEVMYXllcihHcmFwaGljc0NvbnRleHRHTE9wZW5HTCYgY29udGV4dCwgR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0w6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKQorR0NHTEFOR0xF
TGF5ZXI6OkdDR0xBTkdMRUxheWVyKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMJiBjb250ZXh0KQog
ICAgIDogR0NHTExheWVyKGNvbnRleHQpCisgICAgLCBtX2FuZ2xlQ29udGV4dChBTkdMRUNvbnRl
eHQ6OmNyZWF0ZUNvbnRleHQoKSkKIHsKLSAgICBzd2l0Y2ggKGRlc3RpbmF0aW9uKSB7Ci0gICAg
Y2FzZSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6RGVzdGluYXRpb246Ok9mZnNjcmVlbjoKLSAg
ICAgICAgbV9hbmdsZUNvbnRleHQgPSBBTkdMRUNvbnRleHQ6OmNyZWF0ZUNvbnRleHQoKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6RGVzdGluYXRp
b246OkRpcmVjdGx5VG9Ib3N0V2luZG93OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgfQogfQogCiBHQ0dMQU5HTEVMYXllcjo6fkdDR0xBTkdMRUxh
eWVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29z
aWEvdGV4bWFwL05pY29zaWFHQ0dMQU5HTEVMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xBTkdMRUxheWVyLmgKaW5kZXgg
NzM4OGU1N2MxZjgxMjkxZDRjNTVhMGYwMjEzM2U3MWNjYTY5NWI3YS4uN2YyMWRhNTkwODFhOGE4
ZDNkNjU2MmRmMzgyNDU3ZWIyMTZlNmQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xBTkdMRUxheWVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3Np
YUdDR0xBTkdMRUxheWVyLmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogICAgICAgICBFR0xT
dXJmYWNlIG1fc3VyZmFjZSB7IG51bGxwdHIgfTsKICAgICB9OwogCi0gICAgR0NHTEFOR0xFTGF5
ZXIoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wmLCBXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTDo6RGVzdGluYXRpb24pOworICAgIEdDR0xBTkdMRUxheWVyKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMJik7CiAgICAgdmlydHVhbCB+R0NHTEFOR0xFTGF5ZXIo
KTsKIAogICAgIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lh
R0NHTExheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEv
dGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuY3BwCmluZGV4IDgzNjE4MzczOGE2ZjFhZTJmMzA1NmIy
Y2E5ODdkMTNmZWNkZDg2MzUuLjc4NmFkMmMzNTgwY2Y4N2YzYjE0NDUxNTBmNWMyMTExOTMwMmIw
YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEv
dGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuY3BwCkBAIC01MSwyMCAr
NTEsNyBAQCBHQ0dMTGF5ZXI6OkdDR0xMYXllcihHcmFwaGljc0NvbnRleHRHTE9wZW5HTCYgY29u
dGV4dCkKICAgICA6IG1fY29udGV4dChjb250ZXh0KQogICAgICwgbV9jb250ZW50TGF5ZXIoTmlj
b3NpYTo6Q29udGVudExheWVyOjpjcmVhdGUoTmljb3NpYTo6Q29udGVudExheWVyVGV4dHVyZU1h
cHBlckltcGw6OmNyZWF0ZUZhY3RvcnkoKnRoaXMpKSkKIHsKLX0KLQotR0NHTExheWVyOjpHQ0dM
TGF5ZXIoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wmIGNvbnRleHQsIEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbikKLSAgICA6IG1fY29udGV4dChjb250ZXh0
KQotICAgICwgbV9jb250ZW50TGF5ZXIoTmljb3NpYTo6Q29udGVudExheWVyOjpjcmVhdGUoTmlj
b3NpYTo6Q29udGVudExheWVyVGV4dHVyZU1hcHBlckltcGw6OmNyZWF0ZUZhY3RvcnkoKnRoaXMp
KSkKLXsKLSAgICBzd2l0Y2ggKGRlc3RpbmF0aW9uKSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6RGVzdGluYXRpb246Ok9mZnNjcmVlbjoKLSAgICAgICAgbV9nbENvbnRleHQg
PSBHTENvbnRleHQ6OmNyZWF0ZU9mZnNjcmVlbkNvbnRleHQoJlBsYXRmb3JtRGlzcGxheTo6c2hh
cmVkRGlzcGxheUZvckNvbXBvc2l0aW5nKCkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpEZXN0aW5hdGlvbjo6RGlyZWN0bHlUb0hvc3RXaW5kb3c6
Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKLSAgICB9Cisg
ICAgbV9nbENvbnRleHQgPSBHTENvbnRleHQ6OmNyZWF0ZU9mZnNjcmVlbkNvbnRleHQoJlBsYXRm
b3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheUZvckNvbXBvc2l0aW5nKCkpOwogfQogCiBHQ0dMTGF5
ZXI6On5HQ0dMTGF5ZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xMYXllci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDR0xMYXllci5oCmluZGV4
IGFiZjA0YmI3ZWZlYWI1NmIxOTA2YzA4YzI3ZDg1MGZmNjA2NjBjOTMuLmU0MmU2NzY3YjcwNzAy
NTczYmFlNTNiZjIxOTA1ZGM0MjcwMTM0ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQ0dMTGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0NH
TExheWVyLmgKQEAgLTQ0LDcgKzQ0LDYgQEAgY2xhc3MgR0NHTExheWVyIDogcHVibGljIENvbnRl
bnRMYXllclRleHR1cmVNYXBwZXJJbXBsOjpDbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgogICAgIGV4cGxpY2l0IEdDR0xMYXllcihXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTCYpOwotICAgIEdDR0xMYXllcihXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTCYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpEZXN0aW5hdGlv
bik7CiAKICAgICB2aXJ0dWFsIH5HQ0dMTGF5ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wuaAppbmRleCA4ZDdiYjM1MGZhYmQwOGZhODE5NjhiYTQ5NGNhY2NmYjdjMDlmZjhh
Li5lMGUzOWFjZDUyOGYwYzg3ZjI0OWE3NjkwYTQxMjMzNzA2OTY5N2Y1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wuaApAQCAtOTYsNyArOTYsNyBAQCBjbGFzcyBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTFByaXZhdGU7CiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTCBmaW5hbCA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHRHTAogewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IGNyZWF0ZShHcmFwaGlj
c0NvbnRleHRHTEF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBEZXN0aW5hdGlvbiA9IERlc3RpbmF0
aW9uOjpPZmZzY3JlZW4pOworICAgIHN0YXRpYyBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVu
R0w+IGNyZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqKTsKICAg
ICB2aXJ0dWFsIH5HcmFwaGljc0NvbnRleHRHTE9wZW5HTCgpOwogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCkBAIC01MTMsNyArNTEzLDcgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShDT0NPQSkKICAg
ICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMsIEhv
c3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogc2hhcmVkQ29udGV4dCA9IG51bGxw
dHIsIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluKiA9IG51bGxwdHIpOwogI2Vs
c2UKLSAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0
ZXMsIEhvc3RXaW5kb3cqLCBEZXN0aW5hdGlvbiA9IERlc3RpbmF0aW9uOjpPZmZzY3JlZW4sIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMKiBzaGFyZWRDb250ZXh0ID0gbnVsbHB0cik7CisgICAgR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzLCBIb3N0V2lu
ZG93KiwgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIHNoYXJlZENvbnRleHQgPSBudWxscHRyKTsK
ICNlbmRpZgogCiAgICAgLy8gQ2FsbGVkIG9uY2UgYnkgYWxsIHRoZSBwdWJsaWMgZW50cnkgcG9p
bnRzIHRoYXQgZXZlbnR1YWxseSBjYWxsIE9wZW5HTC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTEVTLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRl
eHRHTE9wZW5HTEVTLmNwcAppbmRleCBiYWFiZGUwNzkxNDY1ZjNmODNlNjZmZjI5MGVhMTRlYzE4
NmIyN2Q0Li5kYmM3M2E1NzE3OTYzNDUyMDJkZjRkYmUzOWQwZmU4ZGUwYTZjNDk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xFUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMRVMuY3BwCkBAIC0yNzYsMTIgKzI3Niw4IEBA
IEV4dGVuc2lvbnNHTCYgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmdldEV4dGVuc2lvbnMoKQog
I2VuZGlmCiAKICNpZiBQTEFURk9STShXSU4pICYmIFVTRShDQSkKLVJlZlB0cjxHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTD4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShHcmFwaGljc0Nv
bnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRvdyogaG9zdFdpbmRvdywgR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0w6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKQorUmVmUHRyPEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKEdy
YXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiBob3N0V2lu
ZG93KQogewotICAgIC8vIFRoaXMgaW1wbGVtZW50YXRpb24gZG9lc24ndCBjdXJyZW50bHkgc3Vw
cG9ydCByZW5kZXJpbmcgZGlyZWN0bHkgdG8gdGhlIEhvc3RXaW5kb3cuCi0gICAgaWYgKGRlc3Rp
bmF0aW9uID09IERlc3RpbmF0aW9uOjpEaXJlY3RseVRvSG9zdFdpbmRvdykKLSAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0gICAgCiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsK
ICAgICBzdGF0aWMgYm9vbCBzdWNjZXNzID0gdHJ1ZTsKICAgICBpZiAoIWluaXRpYWxpemVkKSB7
CkBAIC0yOTYsMTAgKzI5MiwxMCBAQCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0RwogICAgIHJldHVy
biBhZG9wdFJlZihuZXcgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woYXR0cmlidXRlcywgaG9zdFdp
bmRvdywgcmVuZGVyU3R5bGUpKTsKIH0KIAotR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVz
LCBIb3N0V2luZG93KiwgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkRlc3RpbmF0aW9uIGRlc3Rp
bmF0aW9uLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogc2hhcmVkQ29udGV4dCkKLSAgICA6IEdy
YXBoaWNzQ29udGV4dEdMKGF0dHJpYnV0ZXMsIGRlc3RpbmF0aW9uLCBzaGFyZWRDb250ZXh0KQor
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNz
Q29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0wqIHNoYXJlZENvbnRleHQpCisgICAgOiBHcmFwaGljc0NvbnRleHRHTChhdHRy
aWJ1dGVzLCBzaGFyZWRDb250ZXh0KQogICAgICwgbV9jb21waWxlcihpc0dMRVMyQ29tcGxpYW50
KCkgPyBTSF9FU1NMX09VVFBVVCA6IFNIX0dMU0xfQ09NUEFUSUJJTElUWV9PVVRQVVQpCi0gICAg
LCBtX3ByaXZhdGUobWFrZVVuaXF1ZTxHcmFwaGljc0NvbnRleHRHTE9wZW5HTFByaXZhdGU+KHRo
aXMsIGRlc3RpbmF0aW9uKSkKKyAgICAsIG1fcHJpdmF0ZShtYWtlVW5pcXVlPEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMUHJpdmF0ZT4odGhpcykpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChzaGFyZWRD
b250ZXh0LCAhc2hhcmVkQ29udGV4dCk7CiAgICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQoKSkK
QEAgLTMwOSwzMyArMzA1LDMxIEBAIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0CiAgICAgdmFsaWRh
dGVBdHRyaWJ1dGVzKCk7CiAgICAgYXR0cmlidXRlcyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7IC8v
IFRoZXkgbWF5IGhhdmUgY2hhbmdlZCBkdXJpbmcgdmFsaWRhdGlvbi4KIAotICAgIGlmIChkZXN0
aW5hdGlvbiA9PSBEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuKSB7Ci0gICAgICAgIC8vIENyZWF0ZSBh
IHRleHR1cmUgdG8gcmVuZGVyIGludG8uCi0gICAgICAgIDo6Z2xHZW5UZXh0dXJlcygxLCAmbV90
ZXh0dXJlKTsKLSAgICAgICAgOjpnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1fdGV4dHVy
ZSk7Ci0gICAgICAgIDo6Z2xUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVf
TUFHX0ZJTFRFUiwgR0xfTElORUFSKTsKLSAgICAgICAgOjpnbFRleFBhcmFtZXRlcmYoR0xfVEVY
VFVSRV8yRCwgR0xfVEVYVFVSRV9NSU5fRklMVEVSLCBHTF9MSU5FQVIpOwotICAgICAgICA6Omds
VGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBf
VE9fRURHRSk7Ci0gICAgICAgIDo6Z2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RF
WFRVUkVfV1JBUF9ULCBHTF9DTEFNUF9UT19FREdFKTsKLSAgICAgICAgOjpnbEJpbmRUZXh0dXJl
KEdMX1RFWFRVUkVfMkQsIDApOwotICAgICAgICAKLSAgICAgICAgLy8gQ3JlYXRlIGFuIEZCTy4K
LSAgICAgICAgOjpnbEdlbkZyYW1lYnVmZmVycygxLCAmbV9mYm8pOwotICAgICAgICA6OmdsQmlu
ZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX2Zibyk7CisgICAgLy8gQ3JlYXRlIGEgdGV4
dHVyZSB0byByZW5kZXIgaW50by4KKyAgICA6OmdsR2VuVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7
CisgICAgOjpnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1fdGV4dHVyZSk7CisgICAgOjpn
bFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9M
SU5FQVIpOworICAgIDo6Z2xUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVf
TUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICA6OmdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJF
XzJELCBHTF9URVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAgOjpnbFRleFBh
cmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VE
R0UpOworICAgIDo6Z2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCAwKTsKICAgICAgICAgCi0g
ICAgICAgIG1fc3RhdGUuYm91bmREcmF3RkJPID0gbV9zdGF0ZS5ib3VuZFJlYWRGYm8gPSBtX2Zi
bzsKLSAgICAgICAgaWYgKCFhdHRyaWJ1dGVzLmFudGlhbGlhcyAmJiAoYXR0cmlidXRlcy5zdGVu
Y2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpKQotICAgICAgICAgICAgOjpnbEdlblJlbmRlcmJ1ZmZl
cnMoMSwgJm1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKKyAgICAvLyBDcmVhdGUgYW4gRkJPLgorICAg
IDo6Z2xHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fZmJvKTsKKyAgICA6OmdsQmluZEZyYW1lYnVmZmVy
KEdMX0ZSQU1FQlVGRkVSLCBtX2Zibyk7CiAgICAgICAgIAotICAgICAgICAvLyBDcmVhdGUgYSBt
dWx0aXNhbXBsZSBGQk8uCi0gICAgICAgIGlmIChhdHRyaWJ1dGVzLmFudGlhbGlhcykgewotICAg
ICAgICAgICAgOjpnbEdlbkZyYW1lYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUZCTyk7Ci0gICAg
ICAgICAgICA6OmdsQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX211bHRpc2FtcGxl
RkJPKTsKLSAgICAgICAgICAgIG1fc3RhdGUuYm91bmREcmF3RkJPID0gbV9zdGF0ZS5ib3VuZFJl
YWRGQk8gPSBtX211bHRpc2FtcGxlRkJPOwotICAgICAgICAgICAgOjpnbEdlblJlbmRlcmJ1ZmZl
cnMoMSwgJm1fbXVsdGlzYW1wbGVDb2xvckJ1ZmZlcik7Ci0gICAgICAgICAgICBpZiAoYXR0cmli
dXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpCi0gICAgICAgICAgICAgICAgOjpnbEdl
blJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAg
ICAgICB9CisgICAgbV9zdGF0ZS5ib3VuZERyYXdGQk8gPSBtX3N0YXRlLmJvdW5kUmVhZEZibyA9
IG1fZmJvOworICAgIGlmICghYXR0cmlidXRlcy5hbnRpYWxpYXMgJiYgKGF0dHJpYnV0ZXMuc3Rl
bmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKSkKKyAgICAgICAgOjpnbEdlblJlbmRlcmJ1ZmZlcnMo
MSwgJm1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKKworICAgIC8vIENyZWF0ZSBhIG11bHRpc2FtcGxl
IEZCTy4KKyAgICBpZiAoYXR0cmlidXRlcy5hbnRpYWxpYXMpIHsKKyAgICAgICAgOjpnbEdlbkZy
YW1lYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUZCTyk7CisgICAgICAgIDo6Z2xCaW5kRnJhbWVi
dWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOworICAgICAgICBtX3N0YXRl
LmJvdW5kRHJhd0ZCTyA9IG1fc3RhdGUuYm91bmRSZWFkRkJPID0gbV9tdWx0aXNhbXBsZUZCTzsK
KyAgICAgICAgOjpnbEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVDb2xvckJ1ZmZl
cik7CisgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0aCkK
KyAgICAgICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRGVwdGhT
dGVuY2lsQnVmZmVyKTsKICAgICB9CiAgICAgCiAgICAgLy8gQU5HTEUgaW5pdGlhbGl6YXRpb24u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0xQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTFByaXZhdGUuY3BwCmluZGV4
IDU4Mzc5OWViMzI2ZmU0MTBhNmQwZGM0ZjhjYTgyYmRlZTA0NGYyNzIuLmM1MjA5ZmFmMDVlODM5
YjkwNDFkM2QyOTQwMzlhYmM4NWJkMWM2ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTFByaXZhdGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHRHTE9wZW5HTFByaXZhdGUuY3BwCkBAIC0yOSwxNiArMjksOSBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLUdyYXBoaWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0ZTo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xQcml2YXRlKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKQorR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xQcml2YXRlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTFByaXZhdGUoR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0wqKQogewotICAgIHN3aXRjaCAoZGVzdGluYXRpb24pIHsKLSAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuOgotICAgICAgICBt
X2dsQ29udGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRlT2Zmc2NyZWVuQ29udGV4dCgmUGxhdGZvcm1E
aXNwbGF5OjpzaGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmcoKSk7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkRlc3RpbmF0aW9uOjpEaXJlY3RseVRv
SG9zdFdpbmRvdzoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFr
OwotICAgIH0KKyAgICBtX2dsQ29udGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRlT2Zmc2NyZWVuQ29u
dGV4dCgmUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmcoKSk7CiB9
CiAKIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0ZTo6fkdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMUHJpdmF0ZSgpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTFByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9w
ZW5HTFByaXZhdGUuaAppbmRleCAxYWYyZGQ2YWQ5YzhhMDVmNDg1NThmNTk5MWJlMzQ0MTU3MDdk
M2U2Li5jOTM4ZGRkMmE4MjFmODMwNjVlYjE1Yjg5ZWViMDc4YjgwMzMxNzI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0xQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMUHJpdmF0ZS5oCkBAIC0zMSw3ICszMSw3IEBA
IGNsYXNzIEJpdG1hcFRleHR1cmVHTDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMUHJp
dmF0ZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0xQcml2YXRlKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OkRlc3RpbmF0aW9uKTsKKyAgICBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTFByaXZhdGUoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqKTsKICAgICB+R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xQcml2YXRlKCk7CiAgICAgYm9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAg
ICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMIHBsYXRmb3JtQ29udGV4dCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4
dEdMVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcAppbmRleCBjMmY0YTIzNjFh
MGFmNzEzZTFlNDZmNDBhNDE2ZDRhY2RjMGY1MjlmLi4zNDkyZTNlZjNjNGUxYzFiZGU0NGQxOWRj
YTlmNzkyYjdiMDJiYzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0
dXJlTWFwcGVyLmNwcApAQCAtNzAsMTIgKzcwLDggQEAgc3RhdGljIERlcXVlPEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMKiwgTWF4QWN0aXZlQ29udGV4dHM+JiBhY3RpdmVDb250ZXh0cygpCiAgICAg
cmV0dXJuIHNfYWN0aXZlQ29udGV4dHM7CiB9CiAKLVJlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTD4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0
dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRvdyogaG9zdFdpbmRvdywgR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKQorUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKEdyYXBoaWNzQ29u
dGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiBob3N0V2luZG93KQogewot
ICAgIC8vIFRoaXMgaW1wbGVtZW50YXRpb24gZG9lc24ndCBjdXJyZW50bHkgc3VwcG9ydCByZW5k
ZXJpbmcgZGlyZWN0bHkgdG8gdGhlIEhvc3RXaW5kb3cuCi0gICAgaWYgKGRlc3RpbmF0aW9uID09
IERlc3RpbmF0aW9uOjpEaXJlY3RseVRvSG9zdFdpbmRvdykKLSAgICAgICAgcmV0dXJuIG51bGxw
dHI7Ci0KICAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOwogICAgIHN0YXRpYyBi
b29sIHN1Y2Nlc3MgPSB0cnVlOwogICAgIGlmICghaW5pdGlhbGl6ZWQpIHsKQEAgLTk3LDcgKzkz
LDcgQEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEcKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
ICAgICAvLyBDcmVhdGUgdGhlIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIG9iamVjdCBmaXJzdCBp
biBvcmRlciB0byBlc3RhYmxpc3QgYSBjdXJyZW50IGNvbnRleHQgb24gdGhpcyB0aHJlYWQuCi0g
ICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYobmV3IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKGF0
dHJpYnV0ZXMsIGhvc3RXaW5kb3csIGRlc3RpbmF0aW9uKSk7CisgICAgYXV0byBjb250ZXh0ID0g
YWRvcHRSZWYobmV3IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKGF0dHJpYnV0ZXMsIGhvc3RXaW5k
b3cpKTsKIAogI2lmIFVTRShMSUJFUE9YWSkgJiYgVVNFKE9QRU5HTF9FUykgJiYgRU5BQkxFKFdF
QkdMMikKICAgICAvLyBCYWlsIGlmIEdMRVMzIHdhcyByZXF1ZXN0ZWQgYnV0IGNhbm5vdCBiZSBw
cm92aWRlZC4KQEAgLTExMCwxNyArMTA2LDE3IEBAIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTD4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShHcmFwaGljc0NvbnRleHRHCiB9
CiAKICNpZiBVU0UoQU5HTEUpCi1HcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RX
aW5kb3cqLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24s
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBzaGFyZWRDb250ZXh0KQotICAgIDogR3JhcGhpY3ND
b250ZXh0R0woYXR0cmlidXRlcywgZGVzdGluYXRpb24sIHNoYXJlZENvbnRleHQpCitHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTCogc2hhcmVkQ29udGV4dCkKKyAgICA6IEdyYXBoaWNzQ29udGV4dEdMKGF0dHJpYnV0ZXMs
IHNoYXJlZENvbnRleHQpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChzaGFyZWRDb250ZXh0LCAhc2hh
cmVkQ29udGV4dCk7CiAjaWYgRU5BQkxFKFdFQkdMMikKICAgICBtX2lzRm9yV2ViR0wyID0gYXR0
cmlidXRlcy53ZWJHTFZlcnNpb24gPT0gR3JhcGhpY3NDb250ZXh0R0xXZWJHTFZlcnNpb246Oldl
YkdMMjsKICNlbmRpZgogI2lmIFVTRShOSUNPU0lBKQotICAgIG1fbmljb3NpYUxheWVyID0gV1RG
OjptYWtlVW5pcXVlPE5pY29zaWE6OkdDR0xBTkdMRUxheWVyPigqdGhpcywgZGVzdGluYXRpb24p
OworICAgIG1fbmljb3NpYUxheWVyID0gV1RGOjptYWtlVW5pcXVlPE5pY29zaWE6OkdDR0xBTkdM
RUxheWVyPigqdGhpcyk7CiAjZWxzZQotICAgIG1fdGV4bWFwTGF5ZXIgPSBXVEY6Om1ha2VVbmlx
dWU8VGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyPigqdGhpcywgZGVzdGluYXRpb24pOwor
ICAgIG1fdGV4bWFwTGF5ZXIgPSBXVEY6Om1ha2VVbmlxdWU8VGV4dHVyZU1hcHBlckdDR0xQbGF0
Zm9ybUxheWVyPigqdGhpcyk7CiAjZW5kaWYKICAgICBib29sIHN1Y2Nlc3MgPSBtYWtlQ29udGV4
dEN1cnJlbnQoKTsKICAgICBBU1NFUlRfVU5VU0VEKHN1Y2Nlc3MsIHN1Y2Nlc3MpOwpAQCAtMTI4
LDY4ICsxMjQsNjYgQEAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHQKICAgICB2YWxpZGF0ZUF0dHJp
YnV0ZXMoKTsKICAgICBhdHRyaWJ1dGVzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsgLy8gVGhleSBt
YXkgaGF2ZSBjaGFuZ2VkIGR1cmluZyB2YWxpZGF0aW9uLgogCi0gICAgaWYgKGRlc3RpbmF0aW9u
ID09IERlc3RpbmF0aW9uOjpPZmZzY3JlZW4pIHsKLSAgICAgICAgR0xlbnVtIHRleHR1cmVUYXJn
ZXQgPSBkcmF3aW5nQnVmZmVyVGV4dHVyZVRhcmdldCgpOwotICAgICAgICAvLyBDcmVhdGUgYSB0
ZXh0dXJlIHRvIHJlbmRlciBpbnRvLgotICAgICAgICBnbDo6R2VuVGV4dHVyZXMoMSwgJm1fdGV4
dHVyZSk7Ci0gICAgICAgIGdsOjpCaW5kVGV4dHVyZSh0ZXh0dXJlVGFyZ2V0LCBtX3RleHR1cmUp
OwotICAgICAgICBnbDo6VGV4UGFyYW1ldGVyZih0ZXh0dXJlVGFyZ2V0LCBHTF9URVhUVVJFX01B
R19GSUxURVIsIEdMX0xJTkVBUik7Ci0gICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJmKHRleHR1cmVU
YXJnZXQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKLSAgICAgICAgZ2w6OlRl
eFBhcmFtZXRlcmkodGV4dHVyZVRhcmdldCwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RP
X0VER0UpOwotICAgICAgICBnbDo6VGV4UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LCBHTF9URVhU
VVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7Ci0gICAgICAgIGdsOjpCaW5kVGV4dHVyZSh0
ZXh0dXJlVGFyZ2V0LCAwKTsKLQotICAgICAgICAvLyBDcmVhdGUgYW4gRkJPLgotICAgICAgICBn
bDo6R2VuRnJhbWVidWZmZXJzKDEsICZtX2Zibyk7Ci0gICAgICAgIGdsOjpCaW5kRnJhbWVidWZm
ZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKKyAgICBHTGVudW0gdGV4dHVyZVRhcmdldCA9IGRy
YXdpbmdCdWZmZXJUZXh0dXJlVGFyZ2V0KCk7CisgICAgLy8gQ3JlYXRlIGEgdGV4dHVyZSB0byBy
ZW5kZXIgaW50by4KKyAgICBnbDo6R2VuVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7CisgICAgZ2w6
OkJpbmRUZXh0dXJlKHRleHR1cmVUYXJnZXQsIG1fdGV4dHVyZSk7CisgICAgZ2w6OlRleFBhcmFt
ZXRlcmYodGV4dHVyZVRhcmdldCwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOwor
ICAgIGdsOjpUZXhQYXJhbWV0ZXJmKHRleHR1cmVUYXJnZXQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRF
UiwgR0xfTElORUFSKTsKKyAgICBnbDo6VGV4UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LCBHTF9U
RVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAgZ2w6OlRleFBhcmFtZXRlcmko
dGV4dHVyZVRhcmdldCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOworICAg
IGdsOjpCaW5kVGV4dHVyZSh0ZXh0dXJlVGFyZ2V0LCAwKTsKKworICAgIC8vIENyZWF0ZSBhbiBG
Qk8uCisgICAgZ2w6OkdlbkZyYW1lYnVmZmVycygxLCAmbV9mYm8pOworICAgIGdsOjpCaW5kRnJh
bWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKIAogI2lmIFVTRShDT09SRElOQVRFRF9H
UkFQSElDUykKLSAgICAgICAgZ2w6OkdlblRleHR1cmVzKDEsICZtX2NvbXBvc2l0b3JUZXh0dXJl
KTsKLSAgICAgICAgZ2w6OkJpbmRUZXh0dXJlKHRleHVyZVR5cGUsIG1fY29tcG9zaXRvclRleHR1
cmUpOwotICAgICAgICBnbDo6VGV4UGFyYW1ldGVyZih0ZXh1cmVUeXBlLCBHTF9URVhUVVJFX01B
R19GSUxURVIsIEdMX0xJTkVBUik7Ci0gICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJmKHRleHVyZVR5
cGUsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKLSAgICAgICAgZ2w6OlRleFBh
cmFtZXRlcmkodGV4dXJlVHlwZSwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0Up
OwotICAgICAgICBnbDo6VGV4UGFyYW1ldGVyaSh0ZXh1cmVUeXBlLCBHTF9URVhUVVJFX1dSQVBf
VCwgR0xfQ0xBTVBfVE9fRURHRSk7Ci0KLSAgICAgICAgZ2w6OkdlblRleHR1cmVzKDEsICZtX2lu
dGVybWVkaWF0ZVRleHR1cmUpOwotICAgICAgICBnbDo6QmluZFRleHR1cmUodGV4dXJlVHlwZSwg
bV9pbnRlcm1lZGlhdGVUZXh0dXJlKTsKLSAgICAgICAgZ2w6OlRleFBhcmFtZXRlcmYodGV4dXJl
VHlwZSwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOwotICAgICAgICBnbDo6VGV4
UGFyYW1ldGVyZih0ZXh1cmVUeXBlLCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7
Ci0gICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJpKHRleHVyZVR5cGUsIEdMX1RFWFRVUkVfV1JBUF9T
LCBHTF9DTEFNUF9UT19FREdFKTsKLSAgICAgICAgZ2w6OlRleFBhcmFtZXRlcmkodGV4dXJlVHlw
ZSwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOwotCi0gICAgICAgIGdsOjpC
aW5kVGV4dHVyZSh0ZXh1cmVUeXBlLCAwKTsKKyAgICBnbDo6R2VuVGV4dHVyZXMoMSwgJm1fY29t
cG9zaXRvclRleHR1cmUpOworICAgIGdsOjpCaW5kVGV4dHVyZSh0ZXh0dXJlVGFyZ2V0LCBtX2Nv
bXBvc2l0b3JUZXh0dXJlKTsKKyAgICBnbDo6VGV4UGFyYW1ldGVyZih0ZXh0dXJlVGFyZ2V0LCBH
TF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7CisgICAgZ2w6OlRleFBhcmFtZXRlcmYo
dGV4dHVyZVRhcmdldCwgR0xfVEVYVFVSRV9NSU5fRklMVEVSLCBHTF9MSU5FQVIpOworICAgIGds
OjpUZXhQYXJhbWV0ZXJpKHRleHR1cmVUYXJnZXQsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFN
UF9UT19FREdFKTsKKyAgICBnbDo6VGV4UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LCBHTF9URVhU
VVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7CisKKyAgICBnbDo6R2VuVGV4dHVyZXMoMSwg
Jm1faW50ZXJtZWRpYXRlVGV4dHVyZSk7CisgICAgZ2w6OkJpbmRUZXh0dXJlKHRleHR1cmVUYXJn
ZXQsIG1faW50ZXJtZWRpYXRlVGV4dHVyZSk7CisgICAgZ2w6OlRleFBhcmFtZXRlcmYodGV4dHVy
ZVRhcmdldCwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOworICAgIGdsOjpUZXhQ
YXJhbWV0ZXJmKHRleHR1cmVUYXJnZXQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFS
KTsKKyAgICBnbDo6VGV4UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LCBHTF9URVhUVVJFX1dSQVBf
UywgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAgZ2w6OlRleFBhcmFtZXRlcmkodGV4dHVyZVRhcmdl
dCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOworCisgICAgZ2w6OkJpbmRU
ZXh0dXJlKHRleHR1cmVUYXJnZXQsIDApOwogI2VuZGlmCiAKLSAgICAgICAgLy8gQ3JlYXRlIGEg
bXVsdGlzYW1wbGUgRkJPLgotICAgICAgICBBU1NFUlQobV9zdGF0ZS5ib3VuZFJlYWRGQk8gPT0g
bV9zdGF0ZS5ib3VuZERyYXdGQk8pOwotICAgICAgICBpZiAoYXR0cmlidXRlcy5hbnRpYWxpYXMp
IHsKLSAgICAgICAgICAgIGdsOjpHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8p
OwotICAgICAgICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9tdWx0
aXNhbXBsZUZCTyk7Ci0gICAgICAgICAgICBtX3N0YXRlLmJvdW5kRHJhd0ZCTyA9IG1fc3RhdGUu
Ym91bmRSZWFkRkJPID0gbV9tdWx0aXNhbXBsZUZCTzsKLSAgICAgICAgICAgIGdsOjpHZW5SZW5k
ZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAgICAgICAgaWYg
KGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQotICAgICAgICAgICAgICAg
IGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVy
KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIEJpbmQgY2FudmFzIEZCTy4KLSAg
ICAgICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKLSAg
ICAgICAgICAgIG1fc3RhdGUuYm91bmREcmF3RkJPID0gbV9zdGF0ZS5ib3VuZFJlYWRGQk8gPSBt
X2ZibzsKLSAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5k
ZXB0aCkKLSAgICAgICAgICAgICAgICBnbDo6R2VuUmVuZGVyYnVmZmVycygxLCAmbV9kZXB0aFN0
ZW5jaWxCdWZmZXIpOwotICAgICAgICB9CisgICAgLy8gQ3JlYXRlIGEgbXVsdGlzYW1wbGUgRkJP
LgorICAgIEFTU0VSVChtX3N0YXRlLmJvdW5kUmVhZEZCTyA9PSBtX3N0YXRlLmJvdW5kRHJhd0ZC
Tyk7CisgICAgaWYgKGF0dHJpYnV0ZXMuYW50aWFsaWFzKSB7CisgICAgICAgIGdsOjpHZW5GcmFt
ZWJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOworICAgICAgICBnbDo6QmluZEZyYW1lYnVm
ZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX211bHRpc2FtcGxlRkJPKTsKKyAgICAgICAgbV9zdGF0ZS5i
b3VuZERyYXdGQk8gPSBtX3N0YXRlLmJvdW5kUmVhZEZCTyA9IG1fbXVsdGlzYW1wbGVGQk87Cisg
ICAgICAgIGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIp
OworICAgICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpCisg
ICAgICAgICAgICBnbDo6R2VuUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZURlcHRoU3Rl
bmNpbEJ1ZmZlcik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gQmluZCBjYW52YXMgRkJPLgor
ICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX2Zibyk7CisgICAg
ICAgIG1fc3RhdGUuYm91bmREcmF3RkJPID0gbV9zdGF0ZS5ib3VuZFJlYWRGQk8gPSBtX2ZibzsK
KyAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQorICAg
ICAgICAgICAgZ2w6OkdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhTdGVuY2lsQnVmZmVyKTsK
ICAgICB9CiAKICAgICBnbDo6Q2xlYXJDb2xvcigwLCAwLCAwLCAwKTsKIH0KICNlbHNlCi1HcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250
ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHRH
TE9wZW5HTDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
KiBzaGFyZWRDb250ZXh0KQotICAgIDogR3JhcGhpY3NDb250ZXh0R0woYXR0cmlidXRlcywgZGVz
dGluYXRpb24sIHNoYXJlZENvbnRleHQpCitHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMs
IEhvc3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogc2hhcmVkQ29udGV4dCkKKyAg
ICA6IEdyYXBoaWNzQ29udGV4dEdMKGF0dHJpYnV0ZXMsIHNoYXJlZENvbnRleHQpCiB7CiAgICAg
QVNTRVJUX1VOVVNFRChzaGFyZWRDb250ZXh0LCAhc2hhcmVkQ29udGV4dCk7CiAjaWYgVVNFKE5J
Q09TSUEpCi0gICAgbV9uaWNvc2lhTGF5ZXIgPSBtYWtlVW5pcXVlPE5pY29zaWE6OkdDR0xMYXll
cj4oKnRoaXMsIGRlc3RpbmF0aW9uKTsKKyAgICBtX25pY29zaWFMYXllciA9IG1ha2VVbmlxdWU8
Tmljb3NpYTo6R0NHTExheWVyPigqdGhpcyk7CiAjZWxzZQotICAgIG1fdGV4bWFwTGF5ZXIgPSBt
YWtlVW5pcXVlPFRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcj4oKnRoaXMsIGRlc3RpbmF0
aW9uKTsKKyAgICBtX3RleG1hcExheWVyID0gbWFrZVVuaXF1ZTxUZXh0dXJlTWFwcGVyR0NHTFBs
YXRmb3JtTGF5ZXI+KCp0aGlzKTsKICNlbmRpZgogCiAgICAgYm9vbCBzdWNjZXNzID0gbWFrZUNv
bnRleHRDdXJyZW50KCk7CkBAIC0xOTgsNjAgKzE5Miw1OCBAQCBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVz
IGF0dAogICAgIHZhbGlkYXRlQXR0cmlidXRlcygpOwogICAgIGF0dHJpYnV0ZXMgPSBjb250ZXh0
QXR0cmlidXRlcygpOyAvLyBUaGV5IG1heSBoYXZlIGNoYW5nZWQgZHVyaW5nIHZhbGlkYXRpb24u
CiAKLSAgICBpZiAoZGVzdGluYXRpb24gPT0gRGVzdGluYXRpb246Ok9mZnNjcmVlbikgewotICAg
ICAgICAvLyBDcmVhdGUgYSB0ZXh0dXJlIHRvIHJlbmRlciBpbnRvLgotICAgICAgICA6OmdsR2Vu
VGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7Ci0gICAgICAgIDo6Z2xCaW5kVGV4dHVyZShHTF9URVhU
VVJFXzJELCBtX3RleHR1cmUpOwotICAgICAgICA6OmdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJF
XzJELCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7Ci0gICAgICAgIDo6Z2xUZXhQ
YXJhbWV0ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFS
KTsKLSAgICAgICAgOjpnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9X
UkFQX1MsIEdMX0NMQU1QX1RPX0VER0UpOwotICAgICAgICA6OmdsVGV4UGFyYW1ldGVyaShHTF9U
RVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7Ci0gICAgICAg
IDo6Z2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCAwKTsKKyAgICAvLyBDcmVhdGUgYSB0ZXh0
dXJlIHRvIHJlbmRlciBpbnRvLgorICAgIDo6Z2xHZW5UZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsK
KyAgICA6OmdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgbV90ZXh0dXJlKTsKKyAgICA6Omds
VGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJ
TkVBUik7CisgICAgOjpnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9N
SU5fRklMVEVSLCBHTF9MSU5FQVIpOworICAgIDo6Z2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVf
MkQsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsKKyAgICA6OmdsVGV4UGFy
YW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURH
RSk7CisgICAgOjpnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIDApOwogCi0gICAgICAgIC8v
IENyZWF0ZSBhbiBGQk8uCi0gICAgICAgIDo6Z2xHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fZmJvKTsK
LSAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9mYm8pOworICAg
IC8vIENyZWF0ZSBhbiBGQk8uCisgICAgOjpnbEdlbkZyYW1lYnVmZmVycygxLCAmbV9mYm8pOwor
ICAgIDo6Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKIAogI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDUykKLSAgICAgICAgOjpnbEdlblRleHR1cmVzKDEsICZtX2Nv
bXBvc2l0b3JUZXh0dXJlKTsKLSAgICAgICAgOjpnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQs
IG1fY29tcG9zaXRvclRleHR1cmUpOwotICAgICAgICA6OmdsVGV4UGFyYW1ldGVyZihHTF9URVhU
VVJFXzJELCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7Ci0gICAgICAgIDo6Z2xU
ZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElO
RUFSKTsKLSAgICAgICAgOjpnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVS
RV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0UpOwotICAgICAgICA6OmdsVGV4UGFyYW1ldGVyaShH
TF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7Ci0KLSAg
ICAgICAgOjpnbEdlblRleHR1cmVzKDEsICZtX2ludGVybWVkaWF0ZVRleHR1cmUpOwotICAgICAg
ICA6OmdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgbV9pbnRlcm1lZGlhdGVUZXh0dXJlKTsK
LSAgICAgICAgOjpnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NQUdf
RklMVEVSLCBHTF9MSU5FQVIpOwotICAgICAgICA6OmdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJF
XzJELCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7Ci0gICAgICAgIDo6Z2xUZXhQ
YXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19F
REdFKTsKLSAgICAgICAgOjpnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVS
RV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOwotCi0gICAgICAgIDo6Z2xCaW5kVGV4dHVyZShH
TF9URVhUVVJFXzJELCAwKTsKKyAgICA6OmdsR2VuVGV4dHVyZXMoMSwgJm1fY29tcG9zaXRvclRl
eHR1cmUpOworICAgIDo6Z2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBtX2NvbXBvc2l0b3JU
ZXh0dXJlKTsKKyAgICA6OmdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhUVVJF
X01BR19GSUxURVIsIEdMX0xJTkVBUik7CisgICAgOjpnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVS
RV8yRCwgR0xfVEVYVFVSRV9NSU5fRklMVEVSLCBHTF9MSU5FQVIpOworICAgIDo6Z2xUZXhQYXJh
bWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdF
KTsKKyAgICA6OmdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBf
VCwgR0xfQ0xBTVBfVE9fRURHRSk7CisKKyAgICA6OmdsR2VuVGV4dHVyZXMoMSwgJm1faW50ZXJt
ZWRpYXRlVGV4dHVyZSk7CisgICAgOjpnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1faW50
ZXJtZWRpYXRlVGV4dHVyZSk7CisgICAgOjpnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwg
R0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOworICAgIDo6Z2xUZXhQYXJhbWV0ZXJm
KEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICA6
OmdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfUywgR0xfQ0xB
TVBfVE9fRURHRSk7CisgICAgOjpnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVY
VFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOworCisgICAgOjpnbEJpbmRUZXh0dXJlKEdM
X1RFWFRVUkVfMkQsIDApOwogI2VuZGlmCiAKLSAgICAgICAgLy8gQ3JlYXRlIGEgbXVsdGlzYW1w
bGUgRkJPLgotICAgICAgICBBU1NFUlQobV9zdGF0ZS5ib3VuZFJlYWRGQk8gPT0gbV9zdGF0ZS5i
b3VuZERyYXdGQk8pOwotICAgICAgICBpZiAoYXR0cmlidXRlcy5hbnRpYWxpYXMpIHsKLSAgICAg
ICAgICAgIDo6Z2xHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOwotICAgICAg
ICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBsZUZC
Tyk7Ci0gICAgICAgICAgICBtX3N0YXRlLmJvdW5kRHJhd0ZCTyA9IG1fc3RhdGUuYm91bmRSZWFk
RkJPID0gbV9tdWx0aXNhbXBsZUZCTzsKLSAgICAgICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJz
KDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAgICAgICAgaWYgKGF0dHJpYnV0
ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQotICAgICAgICAgICAgICAgIDo6Z2xHZW5S
ZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIEJpbmQgY2FudmFzIEZCTy4KLSAgICAgICAgICAg
IGdsQmluZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpGUkFNRUJVRkZFUiwg
bV9mYm8pOwotICAgICAgICAgICAgbV9zdGF0ZS5ib3VuZERyYXdGQk8gPSBtX3N0YXRlLmJvdW5k
UmVhZEZCTyA9IG1fZmJvOworICAgIC8vIENyZWF0ZSBhIG11bHRpc2FtcGxlIEZCTy4KKyAgICBB
U1NFUlQobV9zdGF0ZS5ib3VuZFJlYWRGQk8gPT0gbV9zdGF0ZS5ib3VuZERyYXdGQk8pOworICAg
IGlmIChhdHRyaWJ1dGVzLmFudGlhbGlhcykgeworICAgICAgICA6OmdsR2VuRnJhbWVidWZmZXJz
KDEsICZtX211bHRpc2FtcGxlRkJPKTsKKyAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlcihHTF9G
UkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7CisgICAgICAgIG1fc3RhdGUuYm91bmREcmF3
RkJPID0gbV9zdGF0ZS5ib3VuZFJlYWRGQk8gPSBtX211bHRpc2FtcGxlRkJPOworICAgICAgICA6
OmdsR2VuUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKKyAgICAg
ICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQorICAgICAgICAg
ICAgOjpnbEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZm
ZXIpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEJpbmQgY2FudmFzIEZCTy4KKyAgICAgICAg
Z2xCaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkZSQU1FQlVGRkVSLCBt
X2Zibyk7CisgICAgICAgIG1fc3RhdGUuYm91bmREcmF3RkJPID0gbV9zdGF0ZS5ib3VuZFJlYWRG
Qk8gPSBtX2ZibzsKICNpZiBVU0UoT1BFTkdMX0VTKQotICAgICAgICAgICAgaWYgKGF0dHJpYnV0
ZXMuZGVwdGgpCi0gICAgICAgICAgICAgICAgZ2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX2RlcHRo
QnVmZmVyKTsKLSAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwpCi0gICAgICAgICAg
ICAgICAgZ2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX3N0ZW5jaWxCdWZmZXIpOworICAgICAgICBp
ZiAoYXR0cmlidXRlcy5kZXB0aCkKKyAgICAgICAgICAgIGdsR2VuUmVuZGVyYnVmZmVycygxLCAm
bV9kZXB0aEJ1ZmZlcik7CisgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwpCisgICAgICAg
ICAgICBnbEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fc3RlbmNpbEJ1ZmZlcik7CiAjZW5kaWYKLSAg
ICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0aCkKLSAg
ICAgICAgICAgICAgICBnbEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhTdGVuY2lsQnVmZmVy
KTsKLSAgICAgICAgfQorICAgICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0
ZXMuZGVwdGgpCisgICAgICAgICAgICBnbEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhTdGVu
Y2lsQnVmZmVyKTsKICAgICB9CiAKICNpZiAhVVNFKE9QRU5HTF9FUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0NHTFBs
YXRmb3JtTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5jcHAKaW5kZXggOTdkNWFhN2ZhNmQ2MzVl
NmU5ZmVkMDA0MzlhNDM0YzkxNjlhZWUwYi4uODU5YTA0NWI3MGMyMmY2ODM2YTNlMzcxMzU2MjI3
MjY2NmMxYTQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1M
YXllci5jcHAKQEAgLTMzLDIzICszMywxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVRl
eHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcjo6VGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxh
eWVyKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMJiBjb250ZXh0LCBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24pCitUZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3Jt
TGF5ZXI6OlRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcihHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTCYgY29udGV4dCkKICAgICA6IG1fY29udGV4dChjb250ZXh0KQogewotICAgIHN3aXRjaCAo
ZGVzdGluYXRpb24pIHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpEZXN0aW5h
dGlvbjo6T2Zmc2NyZWVuOiB7Ci0gICAgICAgIGF1dG8gc2hhcmluZ0NvbnRleHQgPSBQbGF0Zm9y
bURpc3BsYXk6OnNoYXJlZERpc3BsYXlGb3JDb21wb3NpdGluZygpLnNoYXJpbmdHTENvbnRleHQo
KS0+cGxhdGZvcm1Db250ZXh0KCk7CisgICAgYXV0byBzaGFyaW5nQ29udGV4dCA9IFBsYXRmb3Jt
RGlzcGxheTo6c2hhcmVkRGlzcGxheUZvckNvbXBvc2l0aW5nKCkuc2hhcmluZ0dMQ29udGV4dCgp
LT5wbGF0Zm9ybUNvbnRleHQoKTsKICNpZiBFTkFCTEUoV0VCR0wyKQotICAgICAgICBtX2dsQ29u
dGV4dCA9IEFOR0xFQ29udGV4dDo6Y3JlYXRlQ29udGV4dChzaGFyaW5nQ29udGV4dCwgY29udGV4
dC5jb250ZXh0QXR0cmlidXRlcygpLndlYkdMVmVyc2lvbiA9PSBHcmFwaGljc0NvbnRleHRHTFdl
YkdMVmVyc2lvbjo6V2ViR0wyKTsKKyAgICBtX2dsQ29udGV4dCA9IEFOR0xFQ29udGV4dDo6Y3Jl
YXRlQ29udGV4dChzaGFyaW5nQ29udGV4dCwgY29udGV4dC5jb250ZXh0QXR0cmlidXRlcygpLndl
YkdMVmVyc2lvbiA9PSBHcmFwaGljc0NvbnRleHRHTFdlYkdMVmVyc2lvbjo6V2ViR0wyKTsKICNl
bHNlCi0gICAgICAgIG1fZ2xDb250ZXh0ID0gQU5HTEVDb250ZXh0OjpjcmVhdGVDb250ZXh0KHNo
YXJpbmdDb250ZXh0LCBmYWxzZSk7CisgICAgbV9nbENvbnRleHQgPSBBTkdMRUNvbnRleHQ6OmNy
ZWF0ZUNvbnRleHQoc2hhcmluZ0NvbnRleHQsIGZhbHNlKTsKICNlbmRpZgotICAgICAgICBicmVh
azsKLSAgICB9Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6RGVzdGluYXRpb246
OkRpcmVjdGx5VG9Ib3N0V2luZG93OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgfQogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAg
IG1fcGxhdGZvcm1MYXllclByb3h5ID0gYWRvcHRSZWYobmV3IFRleHR1cmVNYXBwZXJQbGF0Zm9y
bUxheWVyUHJveHkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxh
eWVyLmgKaW5kZXggNmRjMGZmMmNhZDhhMDY1MWNiY2RiYWRlNGUzY2U3OGZiMmY1MTE0Yi4uNDA0
MjY0YTIzM2YwMGQyYWEyN2Y1ODZkNWU3ZjMwNGI1OTY1MjJlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQ0dMUGxhdGZv
cm1MYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIuaApAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBU
ZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5OwogY2xhc3MgVGV4dHVyZU1hcHBlckdDR0xQ
bGF0Zm9ybUxheWVyIDogcHVibGljIFBsYXRmb3JtTGF5ZXIgewogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgotICAgIFRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcihH
cmFwaGljc0NvbnRleHRHTE9wZW5HTCYsIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpEZXN0aW5h
dGlvbik7CisgICAgVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyKEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMJik7CiAgICAgdmlydHVhbCB+VGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVy
KCk7CiAKICAgICBib29sIG1ha2VDb250ZXh0Q3VycmVudCgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>