<?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>233695</bug_id>
          
          <creation_ts>2021-12-01 04:28:25 -0800</creation_ts>
          <short_desc>GraphicsContextGLANGLE should not have Cocoa Mac specific display reconfiguration code</short_desc>
          <delta_ts>2021-12-02 06:16:38 -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 Local 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>
          
          <blocked>221664</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>annulen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1819181</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-12-01 04:28:25 -0800</bug_when>
    <thetext>GraphicsContextGLANGLE should not have Cocoa Mac specific display reconfiguration code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819185</commentid>
    <comment_count>1</comment_count>
      <attachid>445557</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-12-01 04:43:10 -0800</bug_when>
    <thetext>Created attachment 445557
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819194</commentid>
    <comment_count>2</comment_count>
      <attachid>445560</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-12-01 05:03:29 -0800</bug_when>
    <thetext>Created attachment 445560
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819199</commentid>
    <comment_count>3</comment_count>
      <attachid>445563</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-12-01 05:29:04 -0800</bug_when>
    <thetext>Created attachment 445563
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819207</commentid>
    <comment_count>4</comment_count>
      <attachid>445566</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-12-01 05:47:15 -0800</bug_when>
    <thetext>Created attachment 445566
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819609</commentid>
    <comment_count>5</comment_count>
      <attachid>445687</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-12-02 00:50:07 -0800</bug_when>
    <thetext>Created attachment 445687
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819634</commentid>
    <comment_count>6</comment_count>
      <attachid>445697</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-12-02 02:32:10 -0800</bug_when>
    <thetext>Created attachment 445697
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819662</commentid>
    <comment_count>7</comment_count>
      <attachid>445697</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-12-02 05:09:16 -0800</bug_when>
    <thetext>Comment on attachment 445697
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=445697&amp;action=review

&gt; Source/WebCore/platform/graphics/mac/DisplayConfigurationMonitor.h:53
&gt; +    Vector&lt;Client*&gt; m_clients;

This could use CheckedPtr for safety (by inheriting Client from CanMakeCheckedPtr).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819672</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-02 06:15:38 -0800</bug_when>
    <thetext>Committed r286423 (244769@main): &lt;https://commits.webkit.org/244769@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 445697.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819675</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-02 06:16:38 -0800</bug_when>
    <thetext>&lt;rdar://problem/85968513&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445557</attachid>
            <date>2021-12-01 04:43:10 -0800</date>
            <delta_ts>2021-12-01 05:14:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233695-20211201144308.patch</filename>
            <type>text/plain</type>
            <size>34078</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGJiNmQyZjJmYmNkN2I3
ODU1MzIxY2U1YjgwMWQ1YzJmYWNiMzhmNC4uZTczZWI2ZmI2MGQzN2NlYjcyMmNlZThmYjcyNTVk
OWU3YmRkZmI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTEyLTAxICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgR3JhcGhpY3NDb250
ZXh0R0xBTkdMRSBzaG91bGQgbm90IGhhdmUgQ29jb2EgTWFjIHNwZWNpZmljIGRpc3BsYXkgcmVj
b25maWd1cmF0aW9uIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMzY5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1vdmUgY29kZSB0byBvYnNlcnZlIE1hYyBkaXNwbGF5IHJlY29uZmlndXJhdGlv
bgorICAgICAgICBhd2F5IGZyb20gR3JhcGhpY3NDb250ZXh0R0xBTkdMRSB0byBHcmFwaGljc0Nv
bnRleHRHTENvY29hLgorICAgICAgICBBcHBseSB0aGUgZGlzcGxheSByZWNvbmZpZ3VyYXRpb24g
bGlzdGVuZXIgb25seSBmb3IKKyAgICAgICAgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29j
b2EsIGl0IGlzIG5vdCBuZWVkZWQgZm9yIHRoZQorICAgICAgICBHUFUgcHJvY2VzcyBjb250ZXh0
cy4KKworICAgICAgICBNb3ZlIHRoZSBsaXN0ZW5lciBub3RpZmljYXRpb24gY29kZSBhd2F5IGZy
b20gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyCisgICAgICAgIGludG8gaXRzIG93biBj
bGFzcy4gVGhpcyB3YXkgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyIGRvZXMgbm90IG5l
ZWQKKyAgICAgICAgdG8ga25vdyBNYWMgc3BlY2lmaWMgaW50ZXJmYWNlcy4gTGF0ZXIgb24sIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlciBjYW4KKyAgICAgICAgYmUgcmVtb3ZlZCBhbHRv
Z2V0aGVyLgorCisgICAgICAgIENoYW5nZXMgYmVoYXZpb3Igc28gdGhhdCBzaW11bGF0ZUV2ZW50
Rm9yVGVzdGluZyBpbnZva2VzIHRoZSBzaW11bGF0ZWQgY29udGV4dAorICAgICAgICBjaGFuZ2Ug
b25seSBmb3IgdGhlIGNvbnRleHQgYmVpbmcgdGVzdGVkLiBUaGlzIHNpbXBsaWZpZXMgdGhlIGlt
cGxlbWVudGF0aW9uLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgcmVmYWN0b3IuCisKKyAgICAg
ICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlczo6ZWZmZWN0aXZlUG93ZXJQcmVmZXJl
bmNlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0Nv
bnRleHRHTEFOR0xFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5H
TEU6OnNpbXVsYXRlRXZlbnRGb3JUZXN0aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06CisgICAgICAgIChXZWJD
b3JlOjppbml0aWFsaXplRUdMRGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRHTENvY29hOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTENvY29hOjp+R3JhcGhpY3NDb250ZXh0R0xDb2NvYSk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnNldENvbnRleHRWaXNp
YmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnVwZGF0
ZUNvbnRleHRPbkRpc3BsYXlSZWNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0R0xBTkdMRTo6c2V0Q29udGV4dFZpc2liaWxpdHkpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6ZGlzcGxheVdhc1JlY29uZmln
dXJlZCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJv
Y2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0Rpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5H
TE1hbmFnZXIuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRv
cjo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDb25maWd1cmF0aW9uTW9u
aXRvcjo6YWRkQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDb25maWd1cmF0aW9u
TW9uaXRvcjo6cmVtb3ZlQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDb25maWd1
cmF0aW9uTW9uaXRvcjo6ZGlzcGF0Y2hEaXNwbGF5V2FzUmVjb25maWd1cmVkKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6ZGlzcGxheVdhc1JlY29uZmlndXJl
ZCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMTWFuYWdlci5oOgorCiAyMDIxLTExLTMwICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFBhc3MgdGhlIHRpbWVzdGFtcCBmb3Ig
c2Nyb2xsaW5nIHRocmVhZCBhbmltYXRpb25zIHRocm91Z2ggYWxsIHRoZSBzZXJ2aWNlU2Nyb2xs
QW5pbWF0aW9uKCkgY2FsbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODFlNDkzMGIzM2Q1NWNkNWJkM2I1Y2FhY2Yx
N2JlZTA5N2YxZDc4YS4uN2MzYWQ3NzAzMWRiYTdhYmQ1MWUyMTZjNWQ4NzkxYTdlZmYzNmI0NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMS0xMi0wMSAgS2ltbW8gS2lubnVuZW4gIDxr
a2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIEdyYXBoaWNzQ29udGV4dEdMQU5HTEUgc2hv
dWxkIG5vdCBoYXZlIENvY29hIE1hYyBzcGVjaWZpYyBkaXNwbGF5IHJlY29uZmlndXJhdGlvbiBj
b2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM2
OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcmV2
aW91cyBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkKKyAg
ICAgICAgd2FzIHJlbmFtZWQgdG8gdXBkYXRlQ29udGV4dE9uRGlzcGxheVJlY29uZmlndXJhdGlv
bigpLgorICAgICAgICBUaGUgZGlzcGxheVdhc1JlY29uZmlndXJlZCgpIHdhcyB0YWtlbiBpbnRv
IHVzZSBpbiB0aGUgbm90aWZpY2F0aW9uIGludGVyZmFjZQorICAgICAgICBEaXNwbGF5Q29uZmln
dXJhdGlvbk1vbml0b3I6OkNsaWVudDo6ZGlzcGxheVdhc1JlY29uZmlndXJlZCgpLgorCisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpkaXNwbGF5V2FzUmVjb25m
aWd1cmVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGlzcGxheUNvbmZpZ3VyYXRpb25DaGFuZ2Vk
KToKKwogMjAyMS0xMS0zMCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAg
ICAgICAgIHJlcGxhY2Utd2Via2l0LWFkZGl0aW9ucy1pbmNsdWRlcyBzaG91bGQgYXNzdW1lIHVu
a25vd24gb3IgZW1wdHkgZGVwbG95bWVudCB0YXJnZXRzIGFyZSBzdXBwb3J0ZWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1NYWMuY21ha2UKaW5kZXggMTVkMjcxN2I3MjM1ODJjN2E3ZmU5OTJmMDU1ZmJlM2U3N2Rk
ZmNlNi4uYWZjOTZhMGI2MTIwN2E0ZGE3MzYxYzUxMzI0ZGY1Mjc2MzFlMGM5MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1NYWMuY21ha2UKQEAgLTM0Myw2ICszNDMsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3Jl
X1NPVVJDRVMKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db2xvck1hYy5tbQogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbQorICAg
IHBsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuY3BwCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zsb2F0UG9pbnRNYWMubW0KICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRmxvYXRTaXplTWFjLm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCkBAIC02NzEsNiArNjcyLDcgQEAgbGlzdChBUFBFTkQg
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oCiAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
Q29sb3JNYWMuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5Q29uZmlndXJhdGlv
bk1vbml0b3IuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1E
YXRhLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NDaGVja3NNYWMuaAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL21hYy9TY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0LmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDNmNWI2MmYzNzYzZmNmNGIyYjg0MDY2MmVkZmIz
NTFmYmExMzdhZjYuLmM3OWZjNGQ3OGM2MjEwNTE4OTYxZWYxYzY0MTMyMzdhNWFjNzQ0MGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtNDEyLDYgKzQxMiw3IEBAIHBsYXRmb3JtL2dyYXBo
aWNzL2lvcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2lv
cy9JY29uSU9TLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29sb3JNYWMubW0KIHBsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbQorcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0Rpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5jcHAKIHBsYXRmb3JtL2dy
YXBoaWNzL21hYy9GbG9hdFBvaW50TWFjLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRmxvYXRT
aXplTWFjLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA2MGU0Mjg4Mzk3NTY4ZDQ1MGQxMmYxODViOGY2ZmVhNjA2NjRlMTc4Li4yMjg1MTBk
MmNkZTJmNmVkODdmMDViNjA4ZThjN2UzNzhjNzFjOWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzc0LDYgKzIzNzQsNyBA
QAogCQk3QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3NDaGVja3NNYWMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQjY4MEI4MjVCQTFC
RTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRERBMzFGMjc0RkEwMjEwMDM4NjU5RSAvKiBH
cmFwaGljc0NvbnRleHRHTENvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QkREQTMxRDI3NEY5REE1MDAzODY1OUUgLyogR3JhcGhpY3NDb250ZXh0
R0xDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTdCRTc0MjczODFGQTkwNkZCQjRGMEYyQyAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwQzRDMDJCRUQ4
OTM2RjgxOEUyRjk5IC8qIEpTU1ZHR3JhcGhpY3NFbGVtZW50LmggKi87IH07CisJCTdCRkY1OUY0
Mjc1NzcyNjcwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRkY1OUVGMjc1NzcxRTgw
MDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzAyOUM2RTI0OTNDOEY4MDAyNjgy
MDQgLyogQ29sb3JUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0MwMjlDNkQyNDkzQzhGODAwMjY4MjA0IC8qIENvbG9yVHlwZXMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzE4NDNGRTFDOEI3
MjgzMDAyRUI5NzMgLyogQXV0b2ZpbGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdDMTg0M0ZDMUM4QjcyODMwMDJFQjk3MyAvKiBBdXRvZmlsbC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDMTkzQkJC
MUY1RTBFRUQwMDg4RjNFNiAvKiBDYW52YXNEaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMTkzQkI2MUY1RTBFQjkwMDg4RjNFNiAvKiBD
YW52YXNEaXJlY3Rpb24uaCAqLzsgfTsKQEAgLTExMzc1LDYgKzExMzc2LDggQEAKIAkJN0JEREEz
MUMyNzRGOURBNDAwMzg2NTlFIC8qIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENvY29hLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkREQTMxRDI3NEY5REE1MDAzODY1OUUg
LyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBHcmFwaGljc0NvbnRleHRHTENvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdCRTcyNjVCMjU3NjNCOEQwMEU4NUQ5OCAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCRkY1OUVGMjc1Nzcx
RTgwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuaDsgZmls
ZUVuY29kaW5nID0gNDsgcGF0aCA9IERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QkZGNTlGMTI3NTc3MUU4MDA3NzNEMzkgLyogRGlz
cGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdDMDExRjNEMjRGQUQzNjAwMDVCRUYxMCAvKiBTZXR0aW5ncy5jcHAu
ZXJiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFNldHRpbmdzLmNwcC5lcmI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdDMDExRjNFMjRGQUQzNjAwMDVCRUYxMCAvKiBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmNw
cC5lcmIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5jcHAuZXJiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QzAxMUYzRjI0RkFEMzYwMDA1QkVGMTAgLyogSW50ZXJuYWxT
ZXR0aW5nc0dlbmVyYXRlZC5pZGwuZXJiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQu
aWRsLmVyYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4NDI0LDYgKzI4NDI3LDgg
QEAKIAkJCQlFREUzQTRGRjBDN0E0MzA2MDA5NTZBMzcgLyogQ29sb3JNYWMuaCAqLywKIAkJCQlC
Mjc1MzU0QTBCMDUzODE0MDAyQ0U2NEYgLyogQ29sb3JNYWMubW0gKi8sCiAJCQkJMzdDMjM4MjAx
MDk4Qzg0MjAwRUY5RjcyIC8qIENvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tICovLAor
CQkJCTdCRkY1OUYxMjc1NzcxRTgwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0
b3IuY3BwICovLAorCQkJCTdCRkY1OUVGMjc1NzcxRTgwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmln
dXJhdGlvbk1vbml0b3IuaCAqLywKIAkJCQlCMjc1MzU0QjBCMDUzODE0MDAyQ0U2NEYgLyogRmxv
YXRQb2ludE1hYy5tbSAqLywKIAkJCQlCMjc1MzU0RDBCMDUzODE0MDAyQ0U2NEYgLyogRmxvYXRT
aXplTWFjLm1tICovLAogCQkJCUIyQUZGQzc1MEQwMEE1QzEwMDMwMDc0RCAvKiBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhLmNwcCAqLywKQEAgLTMzODAzLDYgKzMzODA4LDcgQEAKIAkJCQk1NTUxMzAw
MTFFN0NDQ0NCMDBBNjlFMzggLyogRGVjb2RpbmdPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTYyQTQ1MTEwMTE0NUFFMDBERkYzRUQgLyogRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQxQTNENThGMTAxQzE1MkQwMDMxNkQwNyAvKiBEZWRpY2F0
ZWRXb3JrZXJUaHJlYWQuaCBpbiBIZWFkZXJzICovLAorCQkJCTdCRkY1OUY0Mjc1NzcyNjcwMDc3
M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEMDZERkE2MTM0QTRERUYwMDZGNUQ3RCAvKiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUU0RjM4RDFCMjYyNkYxM0IwMDdCMTA2NCAvKiBEZWZhdWx0
UmVzb3VyY2VMb2FkUHJpb3JpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEODNEMzYyMjExMjJB
MjEwMDc2RTExQyAvKiBEZWZlcnJhYmxlVGFzay5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTEF0dHJp
YnV0ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dEdMQXR0cmlidXRlcy5oCmluZGV4IGEwYWQ3N2JhODg0YjViMzMxNDU5ZTZmZmRlZTIwZjc4NTY0
NTQ0ZjMuLmNiOTlmYjE2MTdkYmM2YWE5NzI5MWM4ODE5Zjg0NWNiZGNmN2ZmNTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMQXR0
cmlidXRlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dEdMQXR0cmlidXRlcy5oCkBAIC02OCw2ICs2OCwxMiBAQCBzdHJ1Y3QgR3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzIHsKICNpZiBFTkFCTEUoV0VCWFIpCiAgICAgYm9vbCB4ckNvbXBh
dGlibGUgeyBmYWxzZSB9OwogI2VuZGlmCisgICAgUG93ZXJQcmVmZXJlbmNlIGVmZmVjdGl2ZVBv
d2VyUHJlZmVyZW5jZSgpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoZm9yY2VSZXF1ZXN0Rm9y
SGlnaFBlcmZvcm1hbmNlR1BVKQorICAgICAgICAgICAgcmV0dXJuIFBvd2VyUHJlZmVyZW5jZTo6
SGlnaFBlcmZvcm1hbmNlOworICAgICAgICByZXR1cm4gcG93ZXJQcmVmZXJlbmNlOworICAgIH0K
IH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Fu
Z2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKaW5kZXggNjQxNTE3OWI2
MmIyYzQyMzIyZTYwNDllMTI1OWJkYmRkOGY2MjJjOS4uNWM3ZGJiY2UzN2Q3ZTRmYTcwYzI5MDgz
MTMyMmQ4YzYwYmVjZjJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKQEAg
LTI5MTUsOSArMjkxNSw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6d2FpdEFuZFVw
ZGF0ZU9sZGVzdEZyYW1lKCkKIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6c2ltdWxhdGVF
dmVudEZvclRlc3RpbmcoU2ltdWxhdGVkRXZlbnRGb3JUZXN0aW5nIGV2ZW50KQogewogICAgIGlm
IChldmVudCA9PSBTaW11bGF0ZWRFdmVudEZvclRlc3Rpbmc6OkNvbnRleHRDaGFuZ2UpIHsKLSNp
ZiBQTEFURk9STShDT0NPQSkKLSAgICAgICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2Vy
OjpzaGFyZWRNYW5hZ2VyKCkuZGlzcGxheVdhc1JlY29uZmlndXJlZCgpOwotI2VuZGlmCisgICAg
ICAgIGRpc3BhdGNoQ29udGV4dENoYW5nZWROb3RpZmljYXRpb24oKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICBpZiAoZXZlbnQgPT0gU2ltdWxhdGVkRXZlbnRGb3JUZXN0aW5nOjpHUFVT
dGF0dXNGYWlsdXJlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmgKaW5kZXggNGUzMGJj
YmM0Nzc0NWJiOGI0MjE1MjdiZmQzNDliYWQ2NzdiZDA2Ny4uNDNkNWQyOTBkZDY4MmNhNTk2NTYw
MTEwYTY2YTVhN2RhOGY4NTJhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaApAQCAt
MzgsOSArMzgsNiBAQAogI2luY2x1ZGUgIklPU3VyZmFjZS5oIgogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShNQUMpCi0jaW5jbHVkZSAiU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdC5oIgot
I2VuZGlmCiAKICNpZiBVU0UoTklDT1NJQSkKIG5hbWVzcGFjZSBOaWNvc2lhIHsKQEAgLTM0OCw3
ICszNDUsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZh
cyhJbWFnZUJ1ZmZlciYpIGZpbmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+IHBh
aW50UmVuZGVyaW5nUmVzdWx0c1RvUGl4ZWxCdWZmZXIoKSBmaW5hbDsKICAgICB2b2lkIHBhaW50
Q29tcG9zaXRlZFJlc3VsdHNUb0NhbnZhcyhJbWFnZUJ1ZmZlciYpIGZpbmFsOwotICAgIHZvaWQg
c2V0Q29udGV4dFZpc2liaWxpdHkoYm9vbCkgZmluYWw7CiAgICAgdm9pZCBwcmVwYXJlRm9yRGlz
cGxheSgpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBmb3JjZUNvbnRleHRMb3N0KCk7CkBAIC0zNTcs
OSArMzUzLDYgQEAgcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+IHJlYWRS
ZW5kZXJpbmdSZXN1bHRzRm9yUGFpbnRpbmcoKTsKICAgICBzdGQ6Om9wdGlvbmFsPFBpeGVsQnVm
ZmVyPiByZWFkQ29tcG9zaXRlZFJlc3VsdHNGb3JQYWludGluZygpOwogCi0jaWYgUExBVEZPUk0o
Q09DT0EpCi0gICAgdm9pZCBkaXNwbGF5V2FzUmVjb25maWd1cmVkKCk7Ci0jZW5kaWYKICAgICB1
bnNpZ25lZCB0ZXh0dXJlU2VlZChHQ0dMdWludCB0ZXh0dXJlKTsKIAogICAgIGNvbnN0ZXhwciBz
dGF0aWMgRUdMTmF0aXZlRGlzcGxheVR5cGUgZGVmYXVsdERpc3BsYXkgPSBFR0xfREVGQVVMVF9E
SVNQTEFZOwpAQCAtNDQ0LDEwICs0MzcsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgc3RkOjp1bmlxdWVf
cHRyPElPU3VyZmFjZT4gbV9kaXNwbGF5QnVmZmVyQmFja2luZzsKICAgICB2b2lkKiBtX2Rpc3Bs
YXlCdWZmZXJQYnVmZmVyIHsgbnVsbHB0ciB9OwogI2VuZGlmCi0jaWYgUExBVEZPUk0oTUFDKQot
ICAgIGJvb2wgbV9zd2l0Y2hlc0dQVU9uRGlzcGxheVJlY29uZmlndXJhdGlvbiB7IGZhbHNlIH07
Ci0gICAgU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdCBtX2hpZ2hQZXJmb3JtYW5jZUdQ
VVJlcXVlc3Q7Ci0jZW5kaWYKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgR0NH
THVpbnQgbV9jb21wb3NpdG9yVGV4dHVyZSB7IDAgfTsKICAgICBHQ0dMdWludCBtX2ludGVybWVk
aWF0ZVRleHR1cmUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLmgKaW5kZXggZTQw
OTVhMmIxOWUyNGQxZGI4MDljMTgyZjY0MzJiZGMwY2I3ODZjMi4uYTY0OGZjZDJlYzRmMGI5YjUx
ZTMwMjM2OWUwMTI0OWI1MmQ5YjRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EuaApA
QCAtMzYsNiArMzYsMTAgQEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOwogfQogI2Vu
ZGlmCiAKKyNpZiBQTEFURk9STShNQUMpCisjaW5jbHVkZSAiU2NvcGVkSGlnaFBlcmZvcm1hbmNl
R1BVUmVxdWVzdC5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV0VC
Q09SRV9FWFBPUlQgR3JhcGhpY3NDb250ZXh0R0xDb2NvYSA6IHB1YmxpYyBHcmFwaGljc0NvbnRl
eHRHTEFOR0xFIHsKQEAgLTY2LDEzICs3MCwyMSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKICAgICBSZWZQdHI8TWVkaWFTYW1wbGU+IHBhaW50Q29tcG9zaXRlZFJlc3VsdHNU
b01lZGlhU2FtcGxlKCkgZmluYWw7CiAjZW5kaWYKKyAgICB2b2lkIHNldENvbnRleHRWaXNpYmls
aXR5KGJvb2wpIGZpbmFsOwogCisjaWYgUExBVEZPUk0oTUFDKQorICAgIHZvaWQgdXBkYXRlQ29u
dGV4dE9uRGlzcGxheVJlY29uZmlndXJhdGlvbigpOworI2VuZGlmCiBwcm90ZWN0ZWQ6CiAgICAg
R3JhcGhpY3NDb250ZXh0R0xDb2NvYShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0
ZXMmJik7CiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CiAKICNpZiBFTkFCTEUoVklERU8pCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYT4gbV9jdjsKKyNlbmRp
ZgorI2lmIFBMQVRGT1JNKE1BQykKKyAgICBib29sIG1fc3dpdGNoZXNHUFVPbkRpc3BsYXlSZWNv
bmZpZ3VyYXRpb24geyBmYWxzZSB9OworICAgIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVl
c3QgbV9oaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0OwogI2VuZGlmCiAgICAgZnJpZW5kIGNsYXNz
IEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YS5tbQppbmRleCAwMjljYzNmYWU0N2Y4NzAyM2M1YzMwMjI1ZTAyNTlhMDQxZjBkNjY5Li42ZGJj
NTU2NWUyNDcxNjJkOGE5MGQwMTQ1MjE5YTVmZWE2YjU4NzhjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29u
dGV4dEdMQ29jb2EubW0KQEAgLTE1Myw3ICsxNTMsNyBAQCBzdGF0aWMgRUdMRGlzcGxheSBpbml0
aWFsaXplRUdMRGlzcGxheShjb25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJz
KQogICAgICAgICBkaXNwbGF5QXR0cmlidXRlcy5hcHBlbmQoRUdMX1BMQVRGT1JNX0FOR0xFX1RZ
UEVfTUVUQUxfQU5HTEUpOwogICAgICAgICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGFyZSBkZWZpbmVk
IGZvciBFR0xfQU5HTEVfcG93ZXJfcHJlZmVyZW5jZSBhcyBFR0xDb250ZXh0IGF0dHJpYnV0ZXMs
CiAgICAgICAgIC8vIGJ1dCBNZXRhbCBiYWNrZW5kIHVzZXMgRUdMRGlzcGxheSBhdHRyaWJ1dGVz
LgotICAgICAgICBhdXRvIHBvd2VyUHJlZmVyZW5jZSA9IGF0dHJzLmZvcmNlUmVxdWVzdEZvckhp
Z2hQZXJmb3JtYW5jZUdQVSA/IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlczo6UG93ZXJQcmVm
ZXJlbmNlOjpIaWdoUGVyZm9ybWFuY2UgOiBhdHRycy5wb3dlclByZWZlcmVuY2U7CisgICAgICAg
IGF1dG8gcG93ZXJQcmVmZXJlbmNlID0gYXR0cnMuZWZmZWN0aXZlUG93ZXJQcmVmZXJlbmNlKCk7
CiAgICAgICAgIGlmIChwb3dlclByZWZlcmVuY2UgPT0gR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1
dGVzOjpQb3dlclByZWZlcmVuY2U6Okxvd1Bvd2VyKSB7CiAgICAgICAgICAgICBkaXNwbGF5QXR0
cmlidXRlcy5hcHBlbmQoRUdMX1BPV0VSX1BSRUZFUkVOQ0VfQU5HTEUpOwogICAgICAgICAgICAg
ZGlzcGxheUF0dHJpYnV0ZXMuYXBwZW5kKEVHTF9MT1dfUE9XRVJfQU5HTEUpOwpAQCAtMTk0LDcg
KzE5NCw3IEBAIHN0YXRpYyBib29sIG5lZWRzRUFHTE9uTWFjKCkKIH0KICNlbmRpZgogCi1SZWZQ
dHI8R3JhcGhpY3NDb250ZXh0R0xDb2NvYT4gR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y3JlYXRl
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMpCitSZWZQ
dHI8R3JhcGhpY3NDb250ZXh0R0xDb2NvYT4gR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y3JlYXRl
KEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMpCiB7CiAgICAgYXV0byBj
b250ZXh0ID0gYWRvcHRSZWYoKm5ldyBHcmFwaGljc0NvbnRleHRHTENvY29hKFdURk1vdmUoYXR0
cmlidXRlcykpKTsKICAgICBpZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkKQEAgLTIwMiw3ICsyMDIs
MjEgQEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMQ29jb2E+IEdyYXBoaWNzQ29udGV4dEdMQ29j
b2E6OmNyZWF0ZShXZWJDb3JlOjpHcmFwaGljc0MKICAgICByZXR1cm4gY29udGV4dDsKIH0KIAot
R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6fkdyYXBoaWNzQ29udGV4dEdMQ29jb2EoKSA9IGRlZmF1
bHQ7CitHcmFwaGljc0NvbnRleHRHTENvY29hOjpHcmFwaGljc0NvbnRleHRHTENvY29hKEdyYXBo
aWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGNyZWF0aW9uQXR0cmlidXRlcykKKyAgICA6IEdyYXBo
aWNzQ29udGV4dEdMQU5HTEUoV1RGTW92ZShjcmVhdGlvbkF0dHJpYnV0ZXMpKQoreworICAgIGF1
dG8gYXR0cmlidXRlcyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisgICAgaWYgKCFpc1ZhbGlkKCkp
CisgICAgICAgIHJldHVybjsKKyNpZiBQTEFURk9STShNQUMpCisgICAgaWYgKCFhdHRyaWJ1dGVz
LnVzZU1ldGFsICYmIGF0dHJpYnV0ZXMuZWZmZWN0aXZlUG93ZXJQcmVmZXJlbmNlKCkgPT0gR3Jh
cGhpY3NDb250ZXh0R0xQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZSkKKyAgICAgICAg
bV9zd2l0Y2hlc0dQVU9uRGlzcGxheVJlY29uZmlndXJhdGlvbiA9IHRydWU7CisjZW5kaWYKK30K
KworR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6fkdyYXBoaWNzQ29udGV4dEdMQ29jb2EoKQorewor
fQogCiBJT1N1cmZhY2UqIEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmRpc3BsYXlCdWZmZXIoKQog
ewpAQCAtMjE0LDExICsyMjgsNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6Om1hcmtE
aXNwbGF5QnVmZmVySW5Vc2UoKQogICAgIHJldHVybiBtX3N3YXBDaGFpbi5tYXJrRGlzcGxheUJ1
ZmZlckluVXNlKCk7CiB9CiAKLUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OkdyYXBoaWNzQ29udGV4
dEdMQ29jb2EoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRl
cykKLSAgICA6IEdyYXBoaWNzQ29udGV4dEdMQU5HTEUoV1RGTW92ZShhdHRyaWJ1dGVzKSkKLXsK
LX0KLQogLy8gRklYTUU6IEJlbG93IGlzIGZ1bmN0aW9uYWxpdHkgdGhhdCBzaG91bGQgYmUgbW92
ZWQgdG8gR3JhcGhpY3NDb250ZXh0R0xDb2NvYSB0byBzaW1wbGlmeSB0aGUgYmFzZSBjbGFzcy4K
IAogR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRShHcmFwaGlj
c0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cnMpCkBAIC0yNTUsMTQgKzI2NCwxMiBAQCBHcmFwaGlj
c0NvbnRleHRHTEFOR0xFOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFKEdyYXBoaWNzQ29udGV4dEdM
QXR0cmlidXRlcyBhdHRycwogICAgICAgICAvLyBkaXNwbGF5IHJlY29uZmlndXJhdGlvbiBjYWxs
YmFjay4gVXBvbiB0aGlzLCB3ZSB1cGRhdGUgdGhlIENHTCBjb250ZXh0cyBpbnNpZGUgQU5HTEUu
CiAgICAgICAgIGNvbnN0IGNoYXIgKmRpc3BsYXlFeHRlbnNpb25zID0gRUdMX1F1ZXJ5U3RyaW5n
KG1fZGlzcGxheU9iaiwgRUdMX0VYVEVOU0lPTlMpOwogICAgICAgICBib29sIHN1cHBvcnRzUG93
ZXJQcmVmZXJlbmNlID0gc3Ryc3RyKGRpc3BsYXlFeHRlbnNpb25zLCAiRUdMX0FOR0xFX3Bvd2Vy
X3ByZWZlcmVuY2UiKTsKLSAgICAgICAgaWYgKHN1cHBvcnRzUG93ZXJQcmVmZXJlbmNlKSB7Ci0g
ICAgICAgICAgICBtX3N3aXRjaGVzR1BVT25EaXNwbGF5UmVjb25maWd1cmF0aW9uID0gYXR0cnMu
cG93ZXJQcmVmZXJlbmNlID09IEdyYXBoaWNzQ29udGV4dEdMUG93ZXJQcmVmZXJlbmNlOjpIaWdo
UGVyZm9ybWFuY2UKLSAgICAgICAgICAgICAgICB8fCBhdHRycy5mb3JjZVJlcXVlc3RGb3JIaWdo
UGVyZm9ybWFuY2VHUFU7Ci0gICAgICAgIH0gZWxzZSB7CisgICAgICAgIGlmICghc3VwcG9ydHNQ
b3dlclByZWZlcmVuY2UpIHsKKyAgICAgICAgICAgIGF0dHJzLmZvcmNlUmVxdWVzdEZvckhpZ2hQ
ZXJmb3JtYW5jZUdQVSA9IGZhbHNlOwogICAgICAgICAgICAgaWYgKGF0dHJzLnBvd2VyUHJlZmVy
ZW5jZSA9PSBHcmFwaGljc0NvbnRleHRHTFBvd2VyUHJlZmVyZW5jZTo6SGlnaFBlcmZvcm1hbmNl
KSB7CiAgICAgICAgICAgICAgICAgYXR0cnMucG93ZXJQcmVmZXJlbmNlID0gR3JhcGhpY3NDb250
ZXh0R0xQb3dlclByZWZlcmVuY2U6OkRlZmF1bHQ7Ci0gICAgICAgICAgICAgICAgc2V0Q29udGV4
dEF0dHJpYnV0ZXMoYXR0cnMpOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgc2V0Q29udGV4
dEF0dHJpYnV0ZXMoYXR0cnMpOwogICAgICAgICB9CiAgICAgfQogI2VuZGlmCkBAIC01MDYsNyAr
NTEzLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpjaGVja0dQVVN0YXR1cygpCiAg
ICAgcmVzdGFydFN0YXR1cyA9IDA7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6
c2V0Q29udGV4dFZpc2liaWxpdHkoYm9vbCBpc1Zpc2libGUpCit2b2lkIEdyYXBoaWNzQ29udGV4
dEdMQ29jb2E6OnNldENvbnRleHRWaXNpYmlsaXR5KGJvb2wgaXNWaXNpYmxlKQogewogI2lmIFBM
QVRGT1JNKE1BQykKICAgICBpZiAoIW1fc3dpdGNoZXNHUFVPbkRpc3BsYXlSZWNvbmZpZ3VyYXRp
b24pCkBAIC01MjAsMTQgKzUyNywxNCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnNl
dENvbnRleHRWaXNpYmlsaXR5KGJvb2wgaXNWaXNpYmxlKQogI2VuZGlmCiB9CiAKLXZvaWQgR3Jh
cGhpY3NDb250ZXh0R0xBTkdMRTo6ZGlzcGxheVdhc1JlY29uZmlndXJlZCgpCi17CiAjaWYgUExB
VEZPUk0oTUFDKQordm9pZCBHcmFwaGljc0NvbnRleHRHTENvY29hOjp1cGRhdGVDb250ZXh0T25E
aXNwbGF5UmVjb25maWd1cmF0aW9uKCkKK3sKICAgICBpZiAobV9zd2l0Y2hlc0dQVU9uRGlzcGxh
eVJlY29uZmlndXJhdGlvbikKICAgICAgICAgRUdMX0hhbmRsZUdQVVN3aXRjaEFOR0xFKG1fZGlz
cGxheU9iaik7Ci0jZW5kaWYKICAgICBkaXNwYXRjaENvbnRleHRDaGFuZ2VkTm90aWZpY2F0aW9u
KCk7CiB9CisjZW5kaWYKIAogYm9vbCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpyZXNoYXBlRGlz
cGxheUJ1ZmZlckJhY2tpbmcoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3ND
b250ZXh0R0xDb2NvYS5tbQppbmRleCAzZWZiMjM4YTk5YjllOWU1MTdjZDI2YmU3YjUzNTc5OGM4
OWY0NzI1Li43OWU5ZTQ4MTY4NGUxOTExMmI3MjhkNGRmNTMzODBlNTVkZjkxMjM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3Jh
cGhpY3NDb250ZXh0R0xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQpAQCAtMzIsNiAr
MzIsMTAgQEAKICNpbXBvcnQgIldlYkdMTGF5ZXIuaCIKICNpbXBvcnQgPHd0Zi9CbG9ja09iakNF
eGNlcHRpb25zLmg+CiAKKyNpZiBQTEFURk9STShNQUMpCisjaW1wb3J0ICJEaXNwbGF5Q29uZmln
dXJhdGlvbk1vbml0b3IuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3Bh
Y2UgewogCkBAIC00OCwyNCArNTIsNDYgQEAgc3RhdGljIFJldGFpblB0cjxXZWJHTExheWVyPiBj
cmVhdGVXZWJHTExheWVyKGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYKIH0KIAog
Ly8gR3JhcGhpY3NDb250ZXh0R0wgdHlwZSB0aGF0IGlzIHVzZWQgd2hlbiBXZWJHTCBpcyBydW4g
aW4tcHJvY2VzcyBpbiBXZWJDb250ZW50IHByb2Nlc3MuCi1jbGFzcyBXZWJQcm9jZXNzR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYSBmaW5hbCA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHRHTENvY29hIHsK
K2NsYXNzIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hIGZpbmFsIDogcHVibGljIEdy
YXBoaWNzQ29udGV4dEdMQ29jb2EKKyNpZiBQTEFURk9STShNQUMpCisgICAgLCBwcml2YXRlIERp
c3BsYXlDb25maWd1cmF0aW9uTW9uaXRvcjo6Q2xpZW50CisjZW5kaWYKKworewogcHVibGljOgot
ICAgIH5XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYSgpID0gZGVmYXVsdDsKKyAgICB+
V2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EoKTsKICAgICBib29sIGlzVmFsaWQoKSBj
b25zdCB7IHJldHVybiBHcmFwaGljc0NvbnRleHRHTENvY29hOjppc1ZhbGlkKCkgJiYgbV93ZWJH
TExheWVyOyB9CiAgICAgLy8gR3JhcGhpY3NDb250ZXh0R0xDb2NvYSBvdmVycmlkZXMuCiAgICAg
UGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHJlaW50
ZXJwcmV0X2Nhc3Q8Q0FMYXllcio+KG1fd2ViR0xMYXllci5nZXQoKSk7IH0KICAgICB2b2lkIHBy
ZXBhcmVGb3JEaXNwbGF5KCkgZmluYWw7CiBwcml2YXRlOgotICAgIFdlYlByb2Nlc3NHcmFwaGlj
c0NvbnRleHRHTENvY29hKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMp
Ci0gICAgICAgIDogR3JhcGhpY3NDb250ZXh0R0xDb2NvYShXVEZNb3ZlKGF0dHJpYnV0ZXMpKQot
ICAgICAgICAsIG1fd2ViR0xMYXllcihjcmVhdGVXZWJHTExheWVyKGNvbnRleHRBdHRyaWJ1dGVz
KCkpKQotICAgIHsKLSAgICB9CisjaWYgUExBVEZPUk0oTUFDKQorICAgIC8vIERpc3BsYXlDb25m
aWd1cmF0aW9uTW9uaXRvcjo6Q2xpZW50IG92ZXJyaWRlcy4KKyAgICB2b2lkIGRpc3BsYXlXYXNS
ZWNvbmZpZ3VyZWQoKSBmaW5hbDsKKyNlbmRpZgorCisgICAgV2ViUHJvY2Vzc0dyYXBoaWNzQ29u
dGV4dEdMQ29jb2EoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYpOwogICAgIFJldGFpblB0
cjxXZWJHTExheWVyPiBtX3dlYkdMTGF5ZXI7CiAKICAgICBmcmllbmQgUmVmUHRyPEdyYXBoaWNz
Q29udGV4dEdMPiBXZWJDb3JlOjpjcmVhdGVXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0woY29u
c3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJik7CiB9OwogCitXZWJQcm9jZXNzR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYTo6V2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EoR3JhcGhp
Y3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKKyAgICA6IEdyYXBoaWNzQ29udGV4
dEdMQ29jb2EoV1RGTW92ZShhdHRyaWJ1dGVzKSkKKyAgICAsIG1fd2ViR0xMYXllcihjcmVhdGVX
ZWJHTExheWVyKGNvbnRleHRBdHRyaWJ1dGVzKCkpKQoreworI2lmIFBMQVRGT1JNKE1BQykKKyAg
ICBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3I6OnNpbmdsZXRvbigpLmFkZENsaWVudCgqdGhp
cyk7CisjZW5kaWYKK30KKworV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2E6On5XZWJQ
cm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYSgpCit7CisjaWYgUExBVEZPUk0oTUFDKQorICAg
IERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvcjo6c2luZ2xldG9uKCkucmVtb3ZlQ2xpZW50KCp0
aGlzKTsKKyNlbmRpZgorfQorCiB2b2lkIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29h
OjpwcmVwYXJlRm9yRGlzcGxheSgpCiB7CiAgICAgR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cHJl
cGFyZUZvckRpc3BsYXkoKTsKQEAgLTc4LDYgKzEwNCwxMSBAQCB2b2lkIFdlYlByb2Nlc3NHcmFw
aGljc0NvbnRleHRHTENvY29hOjpwcmVwYXJlRm9yRGlzcGxheSgpCiAgICAgRU5EX0JMT0NLX09C
SkNfRVhDRVBUSU9OUwogfQogCit2b2lkIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29h
OjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkKK3sKKyAgICB1cGRhdGVDb250ZXh0T25EaXNwbGF5
UmVjb25maWd1cmF0aW9uKCk7Cit9CisKIH0KIAogUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMPiBj
cmVhdGVXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0woY29uc3QgR3JhcGhpY3NDb250ZXh0R0xB
dHRyaWJ1dGVzJiBhdHRyaWJ1dGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0Rpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9y
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yMTg0YWQ4NDNmMjc2OWQxN2I0MmRiNDE5MGE0NWVmZmY4MjgyNzlm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0Rpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5jcHAKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEaXNwbGF5Q29uZmlndXJhdGlv
bk1vbml0b3IuaCIKKworI2luY2x1ZGUgPHd0Zi9UaHJlYWRBc3NlcnRpb25zLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yOjpDbGllbnQ6OkNs
aWVudCgpID0gZGVmYXVsdDsKKworRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yOjpDbGllbnQ6
On5DbGllbnQoKSA9IGRlZmF1bHQ7CisKK0Rpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvcjo6RGlz
cGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yKCkgPSBkZWZhdWx0OworCitEaXNwbGF5Q29uZmlndXJh
dGlvbk1vbml0b3I6On5EaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IoKSA9IGRlZmF1bHQ7CisK
K0Rpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvciYgRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9y
OjpzaW5nbGV0b24oKQoreworICAgIGFzc2VydElzTWFpblRocmVhZCgpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3I+IGluc3RhbmNlOworICAg
IHJldHVybiBpbnN0YW5jZTsKK30KKwordm9pZCBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3I6
OmFkZENsaWVudChDbGllbnQmIGNsaWVudCkKK3sKKyAgICBBU1NFUlQoIW1fY2xpZW50cy5jb250
YWlucygmY2xpZW50KSk7CisgICAgbV9jbGllbnRzLmFwcGVuZCgmY2xpZW50KTsKK30KKwordm9p
ZCBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3I6OnJlbW92ZUNsaWVudChDbGllbnQmIGNsaWVu
dCkKK3sKKyAgICBBU1NFUlQobV9jbGllbnRzLmNvbnRhaW5zKCZjbGllbnQpKTsKKyAgICBtX2Ns
aWVudHMucmVtb3ZlRmlyc3QoJmNsaWVudCk7Cit9CisKK3ZvaWQgRGlzcGxheUNvbmZpZ3VyYXRp
b25Nb25pdG9yOjpkaXNwYXRjaERpc3BsYXlXYXNSZWNvbmZpZ3VyZWQoQ0dEaXNwbGF5Q2hhbmdl
U3VtbWFyeUZsYWdzIGZsYWdzKQoreworICAgIGlmICghKGZsYWdzICYga0NHRGlzcGxheVNldE1v
ZGVGbGFnKSkKKyAgICAgICAgcmV0dXJuOworICAgIGZvciAoYXV0byogY2xpZW50IDogY29weVRv
VmVjdG9yKG1fY2xpZW50cykpCisgICAgICAgIGNsaWVudC0+ZGlzcGxheVdhc1JlY29uZmlndXJl
ZCgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZWRjNTY0ZTQ2ZmJiMjk5YTQyYTQ2ZDhiZGVlNWFiZGUzYTE2ZTVmNQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5Q29uZmln
dXJhdGlvbk1vbml0b3IuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dEaXNwbGF5Q29uZmlndXJhdGlvbi5oPgor
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0
b3IgeworcHVibGljOgorICAgIH5EaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IoKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yJiBzaW5nbGV0
b24oKTsKKworICAgIGNsYXNzIENsaWVudCB7CisgICAgcHVibGljOgorICAgICAgICBDbGllbnQo
KTsKKyAgICAgICAgdmlydHVhbCB+Q2xpZW50KCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaXNw
bGF5V2FzUmVjb25maWd1cmVkKCkgPSAwOworICAgIH07CisgICAgdm9pZCBhZGRDbGllbnQoQ2xp
ZW50Jik7CisgICAgdm9pZCByZW1vdmVDbGllbnQoQ2xpZW50Jik7CisKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGRpc3BhdGNoRGlzcGxheVdhc1JlY29uZmlndXJlZChDR0Rpc3BsYXlDaGFuZ2VT
dW1tYXJ5RmxhZ3MpOworcHJpdmF0ZToKKyAgICBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3Io
KTsKKyAgICBWZWN0b3I8Q2xpZW50Kj4gbV9jbGllbnRzOworICAgIGZyaWVuZCBOZXZlckRlc3Ry
b3llZDxEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3I+OworfTsKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9w
ZW5HTE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5jcHAKaW5kZXggMmY3NzQ1MmExMzY0Mjg4
MjNmNjk5YmMyNDEzOWE1ZDE4MmQ2YzJhMi4uMTJkNGIzYWZmMjkxZDgyMDEwNzc0ZDdlNmQ0ZjQ4
OTcwNzI0YzJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFu
YWdlci5jcHAKQEAgLTQzLDIzICs0Myw2IEBAIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdl
ciYgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkKICAgICBy
ZXR1cm4gc19tYW5hZ2VyOwogfQogCi0jaWYgUExBVEZPUk0oTUFDKQotdm9pZCBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTE1hbmFnZXI6OmRpc3BsYXlXYXNSZWNvbmZpZ3VyZWQoQ0dEaXJlY3REaXNw
bGF5SUQsIENHRGlzcGxheUNoYW5nZVN1bW1hcnlGbGFncyBmbGFncywgdm9pZCopCi17Ci0gICAg
TE9HKFdlYkdMLCAiR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpkaXNwbGF5V2FzUmVj
b25maWd1cmVkIik7Ci0gICAgaWYgKGZsYWdzICYga0NHRGlzcGxheVNldE1vZGVGbGFnKQotICAg
ICAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5kaXNw
bGF5V2FzUmVjb25maWd1cmVkKCk7Ci19Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQot
dm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OmRpc3BsYXlXYXNSZWNvbmZpZ3Vy
ZWQoKQotewotICAgIGZvciAoY29uc3QgYXV0byYgY29udGV4dCA6IG1fY29udGV4dHMpCi0gICAg
ICAgIGNvbnRleHQtPmRpc3BsYXlXYXNSZWNvbmZpZ3VyZWQoKTsKLX0KLSNlbmRpZgotCiB2b2lk
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6YWRkQ29udGV4dChHcmFwaGljc0NvbnRl
eHRHTFR5cGUqIGNvbnRleHQpCiB7CiAgICAgQVNTRVJUKGNvbnRleHQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdM
T3BlbkdMTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oCmluZGV4IGZiNWMyOGM5OGQxOGQ4OTk1
MzhkNzk2ZWJjMjE4OGE3ZjRjNTk0NTAuLmYwNzkwOWM4MWI5NGU2ZGYzZGI0YTJmMTRjYjc4NGNh
MzMxMjMyNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2Vy
LmgKQEAgLTI4LDEwICsyOCw2IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAKLSNpZiBQTEFURk9STShNQUMpCi0jaW5jbHVkZSA8Q29yZUdyYXBo
aWNzL0NHRGlzcGxheUNvbmZpZ3VyYXRpb24uaD4KLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNvbnN0IHVuc2lnbmVkIE1heENvbnRleHRzID0gMTY7CkBAIC01OSwxMyArNTUsNiBA
QCBwdWJsaWM6CiAgICAgdm9pZCByZWN5Y2xlQ29udGV4dElmTmVjZXNzYXJ5KCk7CiAgICAgYm9v
bCBoYXNUb29NYW55Q29udGV4dHMoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHRzLnNpemUoKSA+
PSBNYXhDb250ZXh0czsgfQogICAgIAotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgdm9pZCBkaXNwbGF5V2FzUmVjb25maWd1cmVkKENHRGlyZWN0RGlzcGxheUlE
LCBDR0Rpc3BsYXlDaGFuZ2VTdW1tYXJ5RmxhZ3MsIHZvaWQqKTsKLSNlbmRpZgotI2lmIFBMQVRG
T1JNKENPQ09BKQotICAgIHZvaWQgZGlzcGxheVdhc1JlY29uZmlndXJlZCgpOwotI2VuZGlmCi0g
ICAgCiBwcml2YXRlOgogICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcigpID0gZGVm
YXVsdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKaW5kZXggODRiMmU2ODQ1ZDA3NDljZGFh
MWU3OGI4NTMwZDhmOGVhNWEwZTA1ZC4uMDczM2YzYzE3ODZlMWM1NzBiYzllM2E0ZjRkMWI4ZTcy
N2QxN2M2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAg
dm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6ZGlzcGxheVdhc1JlY29uZmlndXJlZCgpCiAg
ICAgYXNzZXJ0SXNNYWluUnVuTG9vcCgpOwogICAgIHJlbW90ZUdyYXBoaWNzQ29udGV4dEdMU3Ry
ZWFtV29ya1F1ZXVlKCkuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XSgp
IHsKICAgICAgICAgYXNzZXJ0SXNDdXJyZW50KHByb3RlY3RlZFRoaXMtPm1fc3RyZWFtVGhyZWFk
KTsKLSAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9jb250ZXh0LT5kaXNwbGF5V2FzUmVjb25maWd1
cmVkKCk7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fY29udGV4dC0+dXBkYXRlQ29udGV4dE9u
RGlzcGxheVJlY29uZmlndXJhdGlvbigpOwogICAgIH0pOwogfQogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCBkYmY4
NDlkYzZjYjEyMmYwM2IyMWExN2EwZWZlMGFkOTA5ZDkzMmNhLi4xZWI5MGVmMzZlYjU3MjAyMzYy
MGZhYWY2ODEyMzExMjJlMDYwMTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTEzOSw3ICsxMzksNyBAQAogI2ltcG9ydCAi
QXBwS2l0U1BJLmgiCiAjaW1wb3J0ICJXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLmgi
CiAjaW1wb3J0ICJXZWJTd2l0Y2hpbmdHUFVDbGllbnQuaCIKLSNpbXBvcnQgPFdlYkNvcmUvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmg+CisjaW1wb3J0IDxXZWJDb3JlL0Rpc3BsYXlD
b25maWd1cmF0aW9uTW9uaXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TY3JvbGxiYXJUaGVtZU1h
Yy5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZi9Db3JlVGV4dFNQSS5oPgogI2ltcG9ydCA8cGFsL3Nw
aS9tYWMvSElTZXJ2aWNlc1NQSS5oPgpAQCAtOTcxLDkgKzk3MSw5IEBAIHZvaWQgV2ViUHJvY2Vz
czo6c2Nyb2xsZXJTdHlsZVByZWZlcmVuY2VDaGFuZ2VkKGJvb2wgdXNlT3ZlcmxheVNjcm9sbGJh
cnMpCiAgICAgW05TU2Nyb2xsZXJJbXBQYWlyIF91cGRhdGVBbGxTY3JvbGxlckltcFBhaXJzRm9y
TmV3UmVjb21tZW5kZWRTY3JvbGxlclN0eWxlOnN0eWxlXTsKIH0KIAotdm9pZCBXZWJQcm9jZXNz
OjpkaXNwbGF5Q29uZmlndXJhdGlvbkNoYW5nZWQoQ0dEaXJlY3REaXNwbGF5SUQgZGlzcGxheUlE
LCBDR0Rpc3BsYXlDaGFuZ2VTdW1tYXJ5RmxhZ3MgZmxhZ3MpCit2b2lkIFdlYlByb2Nlc3M6OmRp
c3BsYXlDb25maWd1cmF0aW9uQ2hhbmdlZChDR0RpcmVjdERpc3BsYXlJRCwgQ0dEaXNwbGF5Q2hh
bmdlU3VtbWFyeUZsYWdzIGZsYWdzKQogewotICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFu
YWdlcjo6ZGlzcGxheVdhc1JlY29uZmlndXJlZChkaXNwbGF5SUQsIGZsYWdzLCBudWxscHRyKTsK
KyAgICBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3I6OnNpbmdsZXRvbigpLmRpc3BhdGNoRGlz
cGxheVdhc1JlY29uZmlndXJlZChmbGFncyk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDliMDYzZDQ2
MTA4YmVlY2I3OWEyMmRjOGUxYTgzZDM5YWM3M2UyMmIuLjVhNzNiYTE3ODdjNjBjMjBhODFlYmI5
ZDY4ODg2ZThmZjViNjEzNzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0xMi0wMSAgS2lt
bW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIEdyYXBoaWNzQ29u
dGV4dEdMQU5HTEUgc2hvdWxkIG5vdCBoYXZlIENvY29hIE1hYyBzcGVjaWZpYyBkaXNwbGF5IHJl
Y29uZmlndXJhdGlvbiBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzM2OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBDaGFuZ2UgdGhlIHRlc3QgdG8gYWNjb3VudCBmb3IgdGhlIGJlaGF2aW9yIGNo
YW5nZQorICAgICAgICB3aGVyZSB0aGUgc2ltdWxhdGVkIGNvbnRleHQgY2hhbmdlIGV2ZW50IGlz
IGRlbGl2ZXJlZAorICAgICAgICBvbmx5IHRvIHRoZSBjb250ZXh0IGJlaW5nIHRlc3RlZCwgbm90
IHRvIGFsbCBjb250ZXh0cy4KKworICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3dlYmdsY29u
dGV4dGNoYW5nZWRldmVudC5odG1sOgorCiAyMDIxLTExLTMwICBSb2JlcnQgSmVubmVyICA8SmVu
bmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUJBU0VMSU5FIFsgTW9udGVyZXkgXWZhc3QvY3Nz
L2NvbnRpbnVhdGlvbkNyYXNoLmh0bWwgKGxheW91dC10ZXN0KSBpcyBhIGNvbnN0YW50IHRleHQg
ZmFpbHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2xj
b250ZXh0Y2hhbmdlZGV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93
ZWJnbGNvbnRleHRjaGFuZ2VkZXZlbnQuaHRtbAppbmRleCA2NWYzY2UxZjYyMjgzZjBjMmE5Zjg2
Y2ZiNTkwYmJiNjUzOTJjM2ZkLi4wZWUwNDEwM2I5NmViZjYxOWMyY2FlNjVhYTJhOGM0MDg1NzE5
YzM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbGNvbnRl
eHRjaGFuZ2VkZXZlbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93
ZWJnbGNvbnRleHRjaGFuZ2VkZXZlbnQuaHRtbApAQCAtMzksMTAgKzM5LDEyIEBAIGZ1bmN0aW9u
IHJ1blRlc3QoKQogICAgICAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKTsKICAgICB9
KTsKIAotICAgIGxldCBnbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImNhbnZhcyIpLmdldENv
bnRleHQoIndlYmdsIik7Ci0gICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2ltdWxhdGVFdmVudEZvcldlYkdMQ29udGV4dCgiQ29udGV4dENoYW5nZSIs
IGdsKTsKLSAgICBlbHNlCisgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiY2FudmFzIiku
Zm9yRWFjaCgoYykgPT4geworICAgICAgICBsZXQgZ2wgPSBjLmdldENvbnRleHQoIndlYmdsIik7
CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgd2luZG93LmludGVy
bmFscy5zaW11bGF0ZUV2ZW50Rm9yV2ViR0xDb250ZXh0KCJDb250ZXh0Q2hhbmdlIiwgZ2wpOwor
ICAgIH0pOworICAgIGlmICghd2luZG93LmludGVybmFscykKICAgICAgICAgbG9nKCJUbyBydW4g
dGhlIHRlc3QsIHRyaWdnZXIgYSBHUFUgY2hhbmdlIG1hbnVhbGx5LiIpOwogfQogCg==
</data>
<flag name="commit-queue"
          id="470781"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445560</attachid>
            <date>2021-12-01 05:03:29 -0800</date>
            <delta_ts>2021-12-01 05:32:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233695-20211201150327.patch</filename>
            <type>text/plain</type>
            <size>34098</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGJiNmQyZjJmYmNkN2I3
ODU1MzIxY2U1YjgwMWQ1YzJmYWNiMzhmNC4uZTczZWI2ZmI2MGQzN2NlYjcyMmNlZThmYjcyNTVk
OWU3YmRkZmI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTEyLTAxICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgR3JhcGhpY3NDb250
ZXh0R0xBTkdMRSBzaG91bGQgbm90IGhhdmUgQ29jb2EgTWFjIHNwZWNpZmljIGRpc3BsYXkgcmVj
b25maWd1cmF0aW9uIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMzY5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1vdmUgY29kZSB0byBvYnNlcnZlIE1hYyBkaXNwbGF5IHJlY29uZmlndXJhdGlv
bgorICAgICAgICBhd2F5IGZyb20gR3JhcGhpY3NDb250ZXh0R0xBTkdMRSB0byBHcmFwaGljc0Nv
bnRleHRHTENvY29hLgorICAgICAgICBBcHBseSB0aGUgZGlzcGxheSByZWNvbmZpZ3VyYXRpb24g
bGlzdGVuZXIgb25seSBmb3IKKyAgICAgICAgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29j
b2EsIGl0IGlzIG5vdCBuZWVkZWQgZm9yIHRoZQorICAgICAgICBHUFUgcHJvY2VzcyBjb250ZXh0
cy4KKworICAgICAgICBNb3ZlIHRoZSBsaXN0ZW5lciBub3RpZmljYXRpb24gY29kZSBhd2F5IGZy
b20gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyCisgICAgICAgIGludG8gaXRzIG93biBj
bGFzcy4gVGhpcyB3YXkgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyIGRvZXMgbm90IG5l
ZWQKKyAgICAgICAgdG8ga25vdyBNYWMgc3BlY2lmaWMgaW50ZXJmYWNlcy4gTGF0ZXIgb24sIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlciBjYW4KKyAgICAgICAgYmUgcmVtb3ZlZCBhbHRv
Z2V0aGVyLgorCisgICAgICAgIENoYW5nZXMgYmVoYXZpb3Igc28gdGhhdCBzaW11bGF0ZUV2ZW50
Rm9yVGVzdGluZyBpbnZva2VzIHRoZSBzaW11bGF0ZWQgY29udGV4dAorICAgICAgICBjaGFuZ2Ug
b25seSBmb3IgdGhlIGNvbnRleHQgYmVpbmcgdGVzdGVkLiBUaGlzIHNpbXBsaWZpZXMgdGhlIGlt
cGxlbWVudGF0aW9uLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgcmVmYWN0b3IuCisKKyAgICAg
ICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlczo6ZWZmZWN0aXZlUG93ZXJQcmVmZXJl
bmNlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0Nv
bnRleHRHTEFOR0xFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5H
TEU6OnNpbXVsYXRlRXZlbnRGb3JUZXN0aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06CisgICAgICAgIChXZWJD
b3JlOjppbml0aWFsaXplRUdMRGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRHTENvY29hOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTENvY29hOjp+R3JhcGhpY3NDb250ZXh0R0xDb2NvYSk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnNldENvbnRleHRWaXNp
YmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnVwZGF0
ZUNvbnRleHRPbkRpc3BsYXlSZWNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0R0xBTkdMRTo6c2V0Q29udGV4dFZpc2liaWxpdHkpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6ZGlzcGxheVdhc1JlY29uZmln
dXJlZCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJv
Y2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0Rpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5H
TE1hbmFnZXIuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRv
cjo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDb25maWd1cmF0aW9uTW9u
aXRvcjo6YWRkQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDb25maWd1cmF0aW9u
TW9uaXRvcjo6cmVtb3ZlQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDb25maWd1
cmF0aW9uTW9uaXRvcjo6ZGlzcGF0Y2hEaXNwbGF5V2FzUmVjb25maWd1cmVkKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6ZGlzcGxheVdhc1JlY29uZmlndXJl
ZCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMTWFuYWdlci5oOgorCiAyMDIxLTExLTMwICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFBhc3MgdGhlIHRpbWVzdGFtcCBmb3Ig
c2Nyb2xsaW5nIHRocmVhZCBhbmltYXRpb25zIHRocm91Z2ggYWxsIHRoZSBzZXJ2aWNlU2Nyb2xs
QW5pbWF0aW9uKCkgY2FsbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODFlNDkzMGIzM2Q1NWNkNWJkM2I1Y2FhY2Yx
N2JlZTA5N2YxZDc4YS4uN2MzYWQ3NzAzMWRiYTdhYmQ1MWUyMTZjNWQ4NzkxYTdlZmYzNmI0NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMS0xMi0wMSAgS2ltbW8gS2lubnVuZW4gIDxr
a2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIEdyYXBoaWNzQ29udGV4dEdMQU5HTEUgc2hv
dWxkIG5vdCBoYXZlIENvY29hIE1hYyBzcGVjaWZpYyBkaXNwbGF5IHJlY29uZmlndXJhdGlvbiBj
b2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM2
OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcmV2
aW91cyBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkKKyAg
ICAgICAgd2FzIHJlbmFtZWQgdG8gdXBkYXRlQ29udGV4dE9uRGlzcGxheVJlY29uZmlndXJhdGlv
bigpLgorICAgICAgICBUaGUgZGlzcGxheVdhc1JlY29uZmlndXJlZCgpIHdhcyB0YWtlbiBpbnRv
IHVzZSBpbiB0aGUgbm90aWZpY2F0aW9uIGludGVyZmFjZQorICAgICAgICBEaXNwbGF5Q29uZmln
dXJhdGlvbk1vbml0b3I6OkNsaWVudDo6ZGlzcGxheVdhc1JlY29uZmlndXJlZCgpLgorCisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpkaXNwbGF5V2FzUmVjb25m
aWd1cmVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGlzcGxheUNvbmZpZ3VyYXRpb25DaGFuZ2Vk
KToKKwogMjAyMS0xMS0zMCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAg
ICAgICAgIHJlcGxhY2Utd2Via2l0LWFkZGl0aW9ucy1pbmNsdWRlcyBzaG91bGQgYXNzdW1lIHVu
a25vd24gb3IgZW1wdHkgZGVwbG95bWVudCB0YXJnZXRzIGFyZSBzdXBwb3J0ZWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1NYWMuY21ha2UKaW5kZXggMTVkMjcxN2I3MjM1ODJjN2E3ZmU5OTJmMDU1ZmJlM2U3N2Rk
ZmNlNi4uYWZjOTZhMGI2MTIwN2E0ZGE3MzYxYzUxMzI0ZGY1Mjc2MzFlMGM5MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1NYWMuY21ha2UKQEAgLTM0Myw2ICszNDMsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3Jl
X1NPVVJDRVMKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db2xvck1hYy5tbQogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbQorICAg
IHBsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuY3BwCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zsb2F0UG9pbnRNYWMubW0KICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRmxvYXRTaXplTWFjLm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCkBAIC02NzEsNiArNjcyLDcgQEAgbGlzdChBUFBFTkQg
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oCiAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
Q29sb3JNYWMuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5Q29uZmlndXJhdGlv
bk1vbml0b3IuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1E
YXRhLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NDaGVja3NNYWMuaAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL21hYy9TY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0LmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDNmNWI2MmYzNzYzZmNmNGIyYjg0MDY2MmVkZmIz
NTFmYmExMzdhZjYuLmM3OWZjNGQ3OGM2MjEwNTE4OTYxZWYxYzY0MTMyMzdhNWFjNzQ0MGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtNDEyLDYgKzQxMiw3IEBAIHBsYXRmb3JtL2dyYXBo
aWNzL2lvcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2lv
cy9JY29uSU9TLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29sb3JNYWMubW0KIHBsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbQorcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0Rpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5jcHAKIHBsYXRmb3JtL2dy
YXBoaWNzL21hYy9GbG9hdFBvaW50TWFjLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRmxvYXRT
aXplTWFjLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA2MGU0Mjg4Mzk3NTY4ZDQ1MGQxMmYxODViOGY2ZmVhNjA2NjRlMTc4Li45ODA2NDUx
YzNkYTI4MTYwNGU4MzJiMGE0YjVkNzZlZjdkYmJkNTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzc0LDYgKzIzNzQsNyBA
QAogCQk3QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3NDaGVja3NNYWMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQjY4MEI4MjVCQTFC
RTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRERBMzFGMjc0RkEwMjEwMDM4NjU5RSAvKiBH
cmFwaGljc0NvbnRleHRHTENvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QkREQTMxRDI3NEY5REE1MDAzODY1OUUgLyogR3JhcGhpY3NDb250ZXh0
R0xDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTdCRTc0MjczODFGQTkwNkZCQjRGMEYyQyAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwQzRDMDJCRUQ4
OTM2RjgxOEUyRjk5IC8qIEpTU1ZHR3JhcGhpY3NFbGVtZW50LmggKi87IH07CisJCTdCRkY1OUY0
Mjc1NzcyNjcwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRkY1OUVGMjc1NzcxRTgw
MDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzAyOUM2RTI0OTNDOEY4MDAyNjgy
MDQgLyogQ29sb3JUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0MwMjlDNkQyNDkzQzhGODAwMjY4MjA0IC8qIENvbG9yVHlwZXMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzE4NDNGRTFDOEI3
MjgzMDAyRUI5NzMgLyogQXV0b2ZpbGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdDMTg0M0ZDMUM4QjcyODMwMDJFQjk3MyAvKiBBdXRvZmlsbC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDMTkzQkJC
MUY1RTBFRUQwMDg4RjNFNiAvKiBDYW52YXNEaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMTkzQkI2MUY1RTBFQjkwMDg4RjNFNiAvKiBD
YW52YXNEaXJlY3Rpb24uaCAqLzsgfTsKQEAgLTExMzc1LDYgKzExMzc2LDggQEAKIAkJN0JEREEz
MUMyNzRGOURBNDAwMzg2NTlFIC8qIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENvY29hLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkREQTMxRDI3NEY5REE1MDAzODY1OUUg
LyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBHcmFwaGljc0NvbnRleHRHTENvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdCRTcyNjVCMjU3NjNCOEQwMEU4NUQ5OCAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCRkY1OUVGMjc1Nzcx
RTgwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuaDsgZmls
ZUVuY29kaW5nID0gNDsgcGF0aCA9IERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QkZGNTlGMTI3NTc3MUU4MDA3NzNEMzkgLyogRGlz
cGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdDMDExRjNEMjRGQUQzNjAwMDVCRUYxMCAvKiBTZXR0aW5ncy5jcHAu
ZXJiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFNldHRpbmdzLmNwcC5lcmI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdDMDExRjNFMjRGQUQzNjAwMDVCRUYxMCAvKiBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmNw
cC5lcmIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5jcHAuZXJiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QzAxMUYzRjI0RkFEMzYwMDA1QkVGMTAgLyogSW50ZXJuYWxT
ZXR0aW5nc0dlbmVyYXRlZC5pZGwuZXJiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQu
aWRsLmVyYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4NDI0LDYgKzI4NDI3LDgg
QEAKIAkJCQlFREUzQTRGRjBDN0E0MzA2MDA5NTZBMzcgLyogQ29sb3JNYWMuaCAqLywKIAkJCQlC
Mjc1MzU0QTBCMDUzODE0MDAyQ0U2NEYgLyogQ29sb3JNYWMubW0gKi8sCiAJCQkJMzdDMjM4MjAx
MDk4Qzg0MjAwRUY5RjcyIC8qIENvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tICovLAor
CQkJCTdCRkY1OUYxMjc1NzcxRTgwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0
b3IuY3BwICovLAorCQkJCTdCRkY1OUVGMjc1NzcxRTgwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmln
dXJhdGlvbk1vbml0b3IuaCAqLywKIAkJCQlCMjc1MzU0QjBCMDUzODE0MDAyQ0U2NEYgLyogRmxv
YXRQb2ludE1hYy5tbSAqLywKIAkJCQlCMjc1MzU0RDBCMDUzODE0MDAyQ0U2NEYgLyogRmxvYXRT
aXplTWFjLm1tICovLAogCQkJCUIyQUZGQzc1MEQwMEE1QzEwMDMwMDc0RCAvKiBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhLmNwcCAqLywKQEAgLTMzODY0LDYgKzMzODY5LDcgQEAKIAkJCQlGNDdBMDlE
MTIwQTkzQTk3MDAyNDBGQUUgLyogRGlzYWJsZWRBZGFwdGF0aW9ucy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJN0VEQUFGQzkxOUEyQ0NEQzAwMzRERkQxIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDdCQjFFNzAyNzE3NkNEOTAwMURGMjg5IC8qIERpc3BsYXlD
YXB0dXJlU291cmNlQ29jb2EuaCBpbiBIZWFkZXJzICovLAorCQkJCTdCRkY1OUY0Mjc1NzcyNjcw
MDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGRTVGQkQzMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTVBRDA5NDAyNDA4OTY0MDAwREU0RDJGIC8qIERpc3BsYXlMaXN0RHJhd2luZ0Nv
bnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1QUQwOTNFMjQwODk2MzUwMERFNEQyRiAvKiBE
aXNwbGF5TGlzdEltYWdlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0xBdHRy
aWJ1dGVzLmgKaW5kZXggYTBhZDc3YmE4ODRiNWIzMzE0NTllNmZmZGVlMjBmNzg1NjQ1NDRmMy4u
Y2I5OWZiMTYxN2RiYzZhYTk3MjkxYzg4MTlmODQ1Y2JkY2Y3ZmY1NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzLmgKQEAgLTY4LDYgKzY4LDEyIEBAIHN0cnVjdCBHcmFwaGljc0NvbnRleHRH
TEF0dHJpYnV0ZXMgewogI2lmIEVOQUJMRShXRUJYUikKICAgICBib29sIHhyQ29tcGF0aWJsZSB7
IGZhbHNlIH07CiAjZW5kaWYKKyAgICBQb3dlclByZWZlcmVuY2UgZWZmZWN0aXZlUG93ZXJQcmVm
ZXJlbmNlKCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmIChmb3JjZVJlcXVlc3RGb3JIaWdoUGVy
Zm9ybWFuY2VHUFUpCisgICAgICAgICAgICByZXR1cm4gUG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVy
Zm9ybWFuY2U7CisgICAgICAgIHJldHVybiBwb3dlclByZWZlcmVuY2U7CisgICAgfQogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3Jh
cGhpY3NDb250ZXh0R0xBTkdMRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAppbmRleCA2NDE1MTc5YjYyYjJjNDIz
MjJlNjA0OWUxMjU5YmRiZGQ4ZjYyMmM5Li41YzdkYmJjZTM3ZDdlNGZhNzBjMjkwODMxMzIyZDhj
NjBiZWNmMmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
bmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcApAQCAtMjkxNSw5
ICsyOTE1LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjp3YWl0QW5kVXBkYXRlT2xk
ZXN0RnJhbWUoKQogdm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpzaW11bGF0ZUV2ZW50Rm9y
VGVzdGluZyhTaW11bGF0ZWRFdmVudEZvclRlc3RpbmcgZXZlbnQpCiB7CiAgICAgaWYgKGV2ZW50
ID09IFNpbXVsYXRlZEV2ZW50Rm9yVGVzdGluZzo6Q29udGV4dENoYW5nZSkgewotI2lmIFBMQVRG
T1JNKENPQ09BKQotICAgICAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJl
ZE1hbmFnZXIoKS5kaXNwbGF5V2FzUmVjb25maWd1cmVkKCk7Ci0jZW5kaWYKKyAgICAgICAgZGlz
cGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIGlmIChldmVudCA9PSBTaW11bGF0ZWRFdmVudEZvclRlc3Rpbmc6OkdQVVN0YXR1c0Zh
aWx1cmUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Fu
Z2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaAppbmRleCA0ZTMwYmNiYzQ3NzQ1
YmI4YjQyMTUyN2JmZDM0OWJhZDY3N2JkMDY3Li40M2Q1ZDI5MGRkNjgyY2E1OTY1NjAxMTBhNjZh
NWE3ZGE4Zjg1MmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oCkBAIC0zOCw5ICsz
OCw2IEBACiAjaW5jbHVkZSAiSU9TdXJmYWNlLmgiCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1B
QykKLSNpbmNsdWRlICJTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0LmgiCi0jZW5kaWYK
IAogI2lmIFVTRShOSUNPU0lBKQogbmFtZXNwYWNlIE5pY29zaWEgewpAQCAtMzQ4LDcgKzM0NSw2
IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKEltYWdl
QnVmZmVyJikgZmluYWw7CiAgICAgc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZlcj4gcGFpbnRSZW5k
ZXJpbmdSZXN1bHRzVG9QaXhlbEJ1ZmZlcigpIGZpbmFsOwogICAgIHZvaWQgcGFpbnRDb21wb3Np
dGVkUmVzdWx0c1RvQ2FudmFzKEltYWdlQnVmZmVyJikgZmluYWw7Ci0gICAgdm9pZCBzZXRDb250
ZXh0VmlzaWJpbGl0eShib29sKSBmaW5hbDsKICAgICB2b2lkIHByZXBhcmVGb3JEaXNwbGF5KCkg
b3ZlcnJpZGU7CiAKICAgICB2b2lkIGZvcmNlQ29udGV4dExvc3QoKTsKQEAgLTM1Nyw5ICszNTMs
NiBAQCBwdWJsaWM6CiAgICAgc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZlcj4gcmVhZFJlbmRlcmlu
Z1Jlc3VsdHNGb3JQYWludGluZygpOwogICAgIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+IHJl
YWRDb21wb3NpdGVkUmVzdWx0c0ZvclBhaW50aW5nKCk7CiAKLSNpZiBQTEFURk9STShDT0NPQSkK
LSAgICB2b2lkIGRpc3BsYXlXYXNSZWNvbmZpZ3VyZWQoKTsKLSNlbmRpZgogICAgIHVuc2lnbmVk
IHRleHR1cmVTZWVkKEdDR0x1aW50IHRleHR1cmUpOwogCiAgICAgY29uc3RleHByIHN0YXRpYyBF
R0xOYXRpdmVEaXNwbGF5VHlwZSBkZWZhdWx0RGlzcGxheSA9IEVHTF9ERUZBVUxUX0RJU1BMQVk7
CkBAIC00NDQsMTAgKzQzNyw2IEBAIHByb3RlY3RlZDoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SU9T
dXJmYWNlPiBtX2Rpc3BsYXlCdWZmZXJCYWNraW5nOwogICAgIHZvaWQqIG1fZGlzcGxheUJ1ZmZl
clBidWZmZXIgeyBudWxscHRyIH07CiAjZW5kaWYKLSNpZiBQTEFURk9STShNQUMpCi0gICAgYm9v
bCBtX3N3aXRjaGVzR1BVT25EaXNwbGF5UmVjb25maWd1cmF0aW9uIHsgZmFsc2UgfTsKLSAgICBT
Y29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0IG1faGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVz
dDsKLSNlbmRpZgogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICBHQ0dMdWludCBt
X2NvbXBvc2l0b3JUZXh0dXJlIHsgMCB9OwogICAgIEdDR0x1aW50IG1faW50ZXJtZWRpYXRlVGV4
dHVyZSB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EuaAppbmRleCBlNDA5NWEyYjE5
ZTI0ZDFkYjgwOWMxODJmNjQzMmJkYzBjYjc4NmMyLi5hNjQ4ZmNkMmVjNGYwYjliNTFlMzAyMzY5
ZTAxMjQ5YjUyZDliNGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oCkBAIC0zNiw2
ICszNiwxMCBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHRHTENWQ29jb2E7CiB9CiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlICJTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1
ZXN0LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXRUJDT1JFX0VY
UE9SVCBHcmFwaGljc0NvbnRleHRHTENvY29hIDogcHVibGljIEdyYXBoaWNzQ29udGV4dEdMQU5H
TEUgewpAQCAtNjYsMTMgKzcwLDIxIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQogICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4gcGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFT
YW1wbGUoKSBmaW5hbDsKICNlbmRpZgorICAgIHZvaWQgc2V0Q29udGV4dFZpc2liaWxpdHkoYm9v
bCkgZmluYWw7CiAKKyNpZiBQTEFURk9STShNQUMpCisgICAgdm9pZCB1cGRhdGVDb250ZXh0T25E
aXNwbGF5UmVjb25maWd1cmF0aW9uKCk7CisjZW5kaWYKIHByb3RlY3RlZDoKICAgICBHcmFwaGlj
c0NvbnRleHRHTENvY29hKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmKTsK
ICAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKIAogI2lmIEVOQUJMRShWSURFTykKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hPiBtX2N2OworI2VuZGlmCisjaWYg
UExBVEZPUk0oTUFDKQorICAgIGJvb2wgbV9zd2l0Y2hlc0dQVU9uRGlzcGxheVJlY29uZmlndXJh
dGlvbiB7IGZhbHNlIH07CisgICAgU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdCBtX2hp
Z2hQZXJmb3JtYW5jZUdQVVJlcXVlc3Q7CiAjZW5kaWYKICAgICBmcmllbmQgY2xhc3MgR3JhcGhp
Y3NDb250ZXh0R0xDVkNvY29hOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCmlu
ZGV4IDAyOWNjM2ZhZTQ3Zjg3MDIzYzVjMzAyMjVlMDI1OWEwNDFmMGQ2NjkuLjZkYmM1NTY1ZTI0
NzE2MmQ4YTkwZDAxNDUyMTlhNWZlYTZiNTg3OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xD
b2NvYS5tbQpAQCAtMTUzLDcgKzE1Myw3IEBAIHN0YXRpYyBFR0xEaXNwbGF5IGluaXRpYWxpemVF
R0xEaXNwbGF5KGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0cnMpCiAgICAg
ICAgIGRpc3BsYXlBdHRyaWJ1dGVzLmFwcGVuZChFR0xfUExBVEZPUk1fQU5HTEVfVFlQRV9NRVRB
TF9BTkdMRSk7CiAgICAgICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgYXJlIGRlZmluZWQgZm9yIEVH
TF9BTkdMRV9wb3dlcl9wcmVmZXJlbmNlIGFzIEVHTENvbnRleHQgYXR0cmlidXRlcywKICAgICAg
ICAgLy8gYnV0IE1ldGFsIGJhY2tlbmQgdXNlcyBFR0xEaXNwbGF5IGF0dHJpYnV0ZXMuCi0gICAg
ICAgIGF1dG8gcG93ZXJQcmVmZXJlbmNlID0gYXR0cnMuZm9yY2VSZXF1ZXN0Rm9ySGlnaFBlcmZv
cm1hbmNlR1BVID8gR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzOjpQb3dlclByZWZlcmVuY2U6
OkhpZ2hQZXJmb3JtYW5jZSA6IGF0dHJzLnBvd2VyUHJlZmVyZW5jZTsKKyAgICAgICAgYXV0byBw
b3dlclByZWZlcmVuY2UgPSBhdHRycy5lZmZlY3RpdmVQb3dlclByZWZlcmVuY2UoKTsKICAgICAg
ICAgaWYgKHBvd2VyUHJlZmVyZW5jZSA9PSBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXM6OlBv
d2VyUHJlZmVyZW5jZTo6TG93UG93ZXIpIHsKICAgICAgICAgICAgIGRpc3BsYXlBdHRyaWJ1dGVz
LmFwcGVuZChFR0xfUE9XRVJfUFJFRkVSRU5DRV9BTkdMRSk7CiAgICAgICAgICAgICBkaXNwbGF5
QXR0cmlidXRlcy5hcHBlbmQoRUdMX0xPV19QT1dFUl9BTkdMRSk7CkBAIC0xOTQsNyArMTk0LDcg
QEAgc3RhdGljIGJvb2wgbmVlZHNFQUdMT25NYWMoKQogfQogI2VuZGlmCiAKLVJlZlB0cjxHcmFw
aGljc0NvbnRleHRHTENvY29hPiBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKK1JlZlB0cjxHcmFw
aGljc0NvbnRleHRHTENvY29hPiBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoR3JhcGhp
Y3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKIHsKICAgICBhdXRvIGNvbnRleHQg
PSBhZG9wdFJlZigqbmV3IEdyYXBoaWNzQ29udGV4dEdMQ29jb2EoV1RGTW92ZShhdHRyaWJ1dGVz
KSkpOwogICAgIGlmICghY29udGV4dC0+aXNWYWxpZCgpKQpAQCAtMjAyLDcgKzIwMiwyMSBAQCBS
ZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xDb2NvYT4gR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y3Jl
YXRlKFdlYkNvcmU6OkdyYXBoaWNzQwogICAgIHJldHVybiBjb250ZXh0OwogfQogCi1HcmFwaGlj
c0NvbnRleHRHTENvY29hOjp+R3JhcGhpY3NDb250ZXh0R0xDb2NvYSgpID0gZGVmYXVsdDsKK0dy
YXBoaWNzQ29udGV4dEdMQ29jb2E6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2EoR3JhcGhpY3NDb250
ZXh0R0xBdHRyaWJ1dGVzJiYgY3JlYXRpb25BdHRyaWJ1dGVzKQorICAgIDogR3JhcGhpY3NDb250
ZXh0R0xBTkdMRShXVEZNb3ZlKGNyZWF0aW9uQXR0cmlidXRlcykpCit7CisgICAgYXV0byBhdHRy
aWJ1dGVzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKyAgICBpZiAoIWlzVmFsaWQoKSkKKyAgICAg
ICAgcmV0dXJuOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBpZiAoIWF0dHJpYnV0ZXMudXNlTWV0
YWwgJiYgYXR0cmlidXRlcy5lZmZlY3RpdmVQb3dlclByZWZlcmVuY2UoKSA9PSBHcmFwaGljc0Nv
bnRleHRHTFBvd2VyUHJlZmVyZW5jZTo6SGlnaFBlcmZvcm1hbmNlKQorICAgICAgICBtX3N3aXRj
aGVzR1BVT25EaXNwbGF5UmVjb25maWd1cmF0aW9uID0gdHJ1ZTsKKyNlbmRpZgorfQorCitHcmFw
aGljc0NvbnRleHRHTENvY29hOjp+R3JhcGhpY3NDb250ZXh0R0xDb2NvYSgpCit7Cit9CiAKIElP
U3VyZmFjZSogR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6ZGlzcGxheUJ1ZmZlcigpCiB7CkBAIC0y
MTQsMTEgKzIyOCw2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6bWFya0Rpc3BsYXlC
dWZmZXJJblVzZSgpCiAgICAgcmV0dXJuIG1fc3dhcENoYWluLm1hcmtEaXNwbGF5QnVmZmVySW5V
c2UoKTsKIH0KIAotR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDb2Nv
YShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQotICAg
IDogR3JhcGhpY3NDb250ZXh0R0xBTkdMRShXVEZNb3ZlKGF0dHJpYnV0ZXMpKQotewotfQotCiAv
LyBGSVhNRTogQmVsb3cgaXMgZnVuY3Rpb25hbGl0eSB0aGF0IHNob3VsZCBiZSBtb3ZlZCB0byBH
cmFwaGljc0NvbnRleHRHTENvY29hIHRvIHNpbXBsaWZ5IHRoZSBiYXNlIGNsYXNzLgogCiBHcmFw
aGljc0NvbnRleHRHTEFOR0xFOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFKEdyYXBoaWNzQ29udGV4
dEdMQXR0cmlidXRlcyBhdHRycykKQEAgLTI1NSwxNCArMjY0LDEyIEBAIEdyYXBoaWNzQ29udGV4
dEdMQU5HTEU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1
dGVzIGF0dHJzCiAgICAgICAgIC8vIGRpc3BsYXkgcmVjb25maWd1cmF0aW9uIGNhbGxiYWNrLiBV
cG9uIHRoaXMsIHdlIHVwZGF0ZSB0aGUgQ0dMIGNvbnRleHRzIGluc2lkZSBBTkdMRS4KICAgICAg
ICAgY29uc3QgY2hhciAqZGlzcGxheUV4dGVuc2lvbnMgPSBFR0xfUXVlcnlTdHJpbmcobV9kaXNw
bGF5T2JqLCBFR0xfRVhURU5TSU9OUyk7CiAgICAgICAgIGJvb2wgc3VwcG9ydHNQb3dlclByZWZl
cmVuY2UgPSBzdHJzdHIoZGlzcGxheUV4dGVuc2lvbnMsICJFR0xfQU5HTEVfcG93ZXJfcHJlZmVy
ZW5jZSIpOwotICAgICAgICBpZiAoc3VwcG9ydHNQb3dlclByZWZlcmVuY2UpIHsKLSAgICAgICAg
ICAgIG1fc3dpdGNoZXNHUFVPbkRpc3BsYXlSZWNvbmZpZ3VyYXRpb24gPSBhdHRycy5wb3dlclBy
ZWZlcmVuY2UgPT0gR3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3Jt
YW5jZQotICAgICAgICAgICAgICAgIHx8IGF0dHJzLmZvcmNlUmVxdWVzdEZvckhpZ2hQZXJmb3Jt
YW5jZUdQVTsKLSAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKCFzdXBwb3J0c1Bvd2VyUHJl
ZmVyZW5jZSkgeworICAgICAgICAgICAgYXR0cnMuZm9yY2VSZXF1ZXN0Rm9ySGlnaFBlcmZvcm1h
bmNlR1BVID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAoYXR0cnMucG93ZXJQcmVmZXJlbmNlID09
IEdyYXBoaWNzQ29udGV4dEdMUG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVyZm9ybWFuY2UpIHsKICAg
ICAgICAgICAgICAgICBhdHRycy5wb3dlclByZWZlcmVuY2UgPSBHcmFwaGljc0NvbnRleHRHTFBv
d2VyUHJlZmVyZW5jZTo6RGVmYXVsdDsKLSAgICAgICAgICAgICAgICBzZXRDb250ZXh0QXR0cmli
dXRlcyhhdHRycyk7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBzZXRDb250ZXh0QXR0cmli
dXRlcyhhdHRycyk7CiAgICAgICAgIH0KICAgICB9CiAjZW5kaWYKQEAgLTUwNiw3ICs1MTMsNyBA
QCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OmNoZWNrR1BVU3RhdHVzKCkKICAgICByZXN0
YXJ0U3RhdHVzID0gMDsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpzZXRDb250
ZXh0VmlzaWJpbGl0eShib29sIGlzVmlzaWJsZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YTo6c2V0Q29udGV4dFZpc2liaWxpdHkoYm9vbCBpc1Zpc2libGUpCiB7CiAjaWYgUExBVEZPUk0o
TUFDKQogICAgIGlmICghbV9zd2l0Y2hlc0dQVU9uRGlzcGxheVJlY29uZmlndXJhdGlvbikKQEAg
LTUyMCwxNCArNTI3LDE0IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6c2V0Q29udGV4
dFZpc2liaWxpdHkoYm9vbCBpc1Zpc2libGUpCiAjZW5kaWYKIH0KIAotdm9pZCBHcmFwaGljc0Nv
bnRleHRHTEFOR0xFOjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkKLXsKICNpZiBQTEFURk9STShN
QUMpCit2b2lkIEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnVwZGF0ZUNvbnRleHRPbkRpc3BsYXlS
ZWNvbmZpZ3VyYXRpb24oKQorewogICAgIGlmIChtX3N3aXRjaGVzR1BVT25EaXNwbGF5UmVjb25m
aWd1cmF0aW9uKQogICAgICAgICBFR0xfSGFuZGxlR1BVU3dpdGNoQU5HTEUobV9kaXNwbGF5T2Jq
KTsKLSNlbmRpZgogICAgIGRpc3BhdGNoQ29udGV4dENoYW5nZWROb3RpZmljYXRpb24oKTsKIH0K
KyNlbmRpZgogCiBib29sIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnJlc2hhcGVEaXNwbGF5QnVm
ZmVyQmFja2luZygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRH
TENvY29hLm1tCmluZGV4IDNlZmIyMzhhOTliOWU5ZTUxN2NkMjZiZTdiNTM1Nzk4Yzg5ZjQ3MjUu
LjI1NDI2MjMwZGZlZGFkMmM1ZWI5MTA0MjRhMDhhNzJlMzcxN2IyZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0Nv
bnRleHRHTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tCkBAIC0zMiw2ICszMiwxMCBA
QAogI2ltcG9ydCAiV2ViR0xMYXllci5oIgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlv
bnMuaD4KIAorI2lmIFBMQVRGT1JNKE1BQykKKyNpbXBvcnQgIkRpc3BsYXlDb25maWd1cmF0aW9u
TW9uaXRvci5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSB7CiAK
QEAgLTQ4LDI0ICs1Miw0NiBAQCBzdGF0aWMgUmV0YWluUHRyPFdlYkdMTGF5ZXI+IGNyZWF0ZVdl
YkdMTGF5ZXIoY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJgogfQogCiAvLyBHcmFw
aGljc0NvbnRleHRHTCB0eXBlIHRoYXQgaXMgdXNlZCB3aGVuIFdlYkdMIGlzIHJ1biBpbi1wcm9j
ZXNzIGluIFdlYkNvbnRlbnQgcHJvY2Vzcy4KLWNsYXNzIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRl
eHRHTENvY29hIGZpbmFsIDogcHVibGljIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EgeworY2xhc3Mg
V2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EgZmluYWwgOiBwdWJsaWMgR3JhcGhpY3ND
b250ZXh0R0xDb2NvYQorI2lmIFBMQVRGT1JNKE1BQykKKyAgICAsIHByaXZhdGUgRGlzcGxheUNv
bmZpZ3VyYXRpb25Nb25pdG9yOjpDbGllbnQKKyNlbmRpZgorCit7CiBwdWJsaWM6Ci0gICAgfldl
YlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hKCkgPSBkZWZhdWx0OworICAgIH5XZWJQcm9j
ZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYSgpOwogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsg
cmV0dXJuIEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmlzVmFsaWQoKSAmJiBtX3dlYkdMTGF5ZXI7
IH0KICAgICAvLyBHcmFwaGljc0NvbnRleHRHTENvY29hIG92ZXJyaWRlcy4KICAgICBQbGF0Zm9y
bUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxDQUxheWVyKj4obV93ZWJHTExheWVyLmdldCgpKTsgfQogICAgIHZvaWQgcHJlcGFyZUZv
ckRpc3BsYXkoKSBmaW5hbDsKIHByaXZhdGU6Ci0gICAgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4
dEdMQ29jb2EoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKLSAgICAg
ICAgOiBHcmFwaGljc0NvbnRleHRHTENvY29hKFdURk1vdmUoYXR0cmlidXRlcykpCi0gICAgICAg
ICwgbV93ZWJHTExheWVyKGNyZWF0ZVdlYkdMTGF5ZXIoY29udGV4dEF0dHJpYnV0ZXMoKSkpCi0g
ICAgewotICAgIH0KKyNpZiBQTEFURk9STShNQUMpCisgICAgLy8gRGlzcGxheUNvbmZpZ3VyYXRp
b25Nb25pdG9yOjpDbGllbnQgb3ZlcnJpZGVzLgorICAgIHZvaWQgZGlzcGxheVdhc1JlY29uZmln
dXJlZCgpIGZpbmFsOworI2VuZGlmCisKKyAgICBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xD
b2NvYShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJik7CiAgICAgUmV0YWluUHRyPFdlYkdM
TGF5ZXI+IG1fd2ViR0xMYXllcjsKIAogICAgIGZyaWVuZCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0
R0w+IFdlYkNvcmU6OmNyZWF0ZVdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTChjb25zdCBHcmFw
aGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmKTsKIH07CiAKK1dlYlByb2Nlc3NHcmFwaGljc0NvbnRl
eHRHTENvY29hOjpXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYShHcmFwaGljc0NvbnRl
eHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQorICAgIDogR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YShXVEZNb3ZlKGF0dHJpYnV0ZXMpKQorICAgICwgbV93ZWJHTExheWVyKGNyZWF0ZVdlYkdMTGF5
ZXIoY29udGV4dEF0dHJpYnV0ZXMoKSkpCit7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIERpc3Bs
YXlDb25maWd1cmF0aW9uTW9uaXRvcjo6c2luZ2xldG9uKCkuYWRkQ2xpZW50KCp0aGlzKTsKKyNl
bmRpZgorfQorCitXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6fldlYlByb2Nlc3NH
cmFwaGljc0NvbnRleHRHTENvY29hKCkKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgRGlzcGxh
eUNvbmZpZ3VyYXRpb25Nb25pdG9yOjpzaW5nbGV0b24oKS5yZW1vdmVDbGllbnQoKnRoaXMpOwor
I2VuZGlmCit9CisKIHZvaWQgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBh
cmVGb3JEaXNwbGF5KCkKIHsKICAgICBHcmFwaGljc0NvbnRleHRHTENvY29hOjpwcmVwYXJlRm9y
RGlzcGxheSgpOwpAQCAtNzgsNiArMTA0LDEzIEBAIHZvaWQgV2ViUHJvY2Vzc0dyYXBoaWNzQ29u
dGV4dEdMQ29jb2E6OnByZXBhcmVGb3JEaXNwbGF5KCkKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TCiB9CiAKKyNpZiBQTEFURk9STShNQUMpCit2b2lkIFdlYlByb2Nlc3NHcmFwaGljc0Nv
bnRleHRHTENvY29hOjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkKK3sKKyAgICB1cGRhdGVDb250
ZXh0T25EaXNwbGF5UmVjb25maWd1cmF0aW9uKCk7Cit9CisjZW5kaWYKKwogfQogCiBSZWZQdHI8
R3JhcGhpY3NDb250ZXh0R0w+IGNyZWF0ZVdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTChjb25z
dCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheUNvbmZpZ3VyYXRpb25N
b25pdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5
Q29uZmlndXJhdGlvbk1vbml0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxODRhZDg0M2YyNzY5ZDE3YjQy
ZGI0MTkwYTQ1ZWZmZjgyODI3OWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmNwcApAQCAt
MCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkRpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oIgorCisjaW5jbHVkZSA8d3RmL1RocmVhZEFz
c2VydGlvbnMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitEaXNwbGF5Q29uZmlndXJhdGlv
bk1vbml0b3I6OkNsaWVudDo6Q2xpZW50KCkgPSBkZWZhdWx0OworCitEaXNwbGF5Q29uZmlndXJh
dGlvbk1vbml0b3I6OkNsaWVudDo6fkNsaWVudCgpID0gZGVmYXVsdDsKKworRGlzcGxheUNvbmZp
Z3VyYXRpb25Nb25pdG9yOjpEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IoKSA9IGRlZmF1bHQ7
CisKK0Rpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvcjo6fkRpc3BsYXlDb25maWd1cmF0aW9uTW9u
aXRvcigpID0gZGVmYXVsdDsKKworRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yJiBEaXNwbGF5
Q29uZmlndXJhdGlvbk1vbml0b3I6OnNpbmdsZXRvbigpCit7CisgICAgYXNzZXJ0SXNNYWluVGhy
ZWFkKCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPERpc3BsYXlDb25maWd1cmF0aW9uTW9u
aXRvcj4gaW5zdGFuY2U7CisgICAgcmV0dXJuIGluc3RhbmNlOworfQorCit2b2lkIERpc3BsYXlD
b25maWd1cmF0aW9uTW9uaXRvcjo6YWRkQ2xpZW50KENsaWVudCYgY2xpZW50KQoreworICAgIEFT
U0VSVCghbV9jbGllbnRzLmNvbnRhaW5zKCZjbGllbnQpKTsKKyAgICBtX2NsaWVudHMuYXBwZW5k
KCZjbGllbnQpOworfQorCit2b2lkIERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvcjo6cmVtb3Zl
Q2xpZW50KENsaWVudCYgY2xpZW50KQoreworICAgIEFTU0VSVChtX2NsaWVudHMuY29udGFpbnMo
JmNsaWVudCkpOworICAgIG1fY2xpZW50cy5yZW1vdmVGaXJzdCgmY2xpZW50KTsKK30KKwordm9p
ZCBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3I6OmRpc3BhdGNoRGlzcGxheVdhc1JlY29uZmln
dXJlZChDR0Rpc3BsYXlDaGFuZ2VTdW1tYXJ5RmxhZ3MgZmxhZ3MpCit7CisgICAgaWYgKCEoZmxh
Z3MgJiBrQ0dEaXNwbGF5U2V0TW9kZUZsYWcpKQorICAgICAgICByZXR1cm47CisgICAgZm9yIChh
dXRvKiBjbGllbnQgOiBjb3B5VG9WZWN0b3IobV9jbGllbnRzKSkKKyAgICAgICAgY2xpZW50LT5k
aXNwbGF5V2FzUmVjb25maWd1cmVkKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5Q29uZmlndXJhdGlv
bk1vbml0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZGM1NjRlNDZmYmIyOTlhNDJhNDZkOGJkZWU1YWJkZTNh
MTZlNWY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0Rpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oCkBAIC0wLDAgKzEsNTQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR0Rpc3Bs
YXlDb25maWd1cmF0aW9uLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpc3Bs
YXlDb25maWd1cmF0aW9uTW9uaXRvciB7CitwdWJsaWM6CisgICAgfkRpc3BsYXlDb25maWd1cmF0
aW9uTW9uaXRvcigpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBEaXNwbGF5Q29uZmlndXJh
dGlvbk1vbml0b3ImIHNpbmdsZXRvbigpOworCisgICAgY2xhc3MgQ2xpZW50IHsKKyAgICBwdWJs
aWM6CisgICAgICAgIENsaWVudCgpOworICAgICAgICB2aXJ0dWFsIH5DbGllbnQoKTsKKyAgICAg
ICAgdmlydHVhbCB2b2lkIGRpc3BsYXlXYXNSZWNvbmZpZ3VyZWQoKSA9IDA7CisgICAgfTsKKyAg
ICB2b2lkIGFkZENsaWVudChDbGllbnQmKTsKKyAgICB2b2lkIHJlbW92ZUNsaWVudChDbGllbnQm
KTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGF0Y2hEaXNwbGF5V2FzUmVjb25maWd1
cmVkKENHRGlzcGxheUNoYW5nZVN1bW1hcnlGbGFncyk7Citwcml2YXRlOgorICAgIERpc3BsYXlD
b25maWd1cmF0aW9uTW9uaXRvcigpOworICAgIFZlY3RvcjxDbGllbnQqPiBtX2NsaWVudHM7Cisg
ICAgZnJpZW5kIE5ldmVyRGVzdHJveWVkPERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvcj47Cit9
OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmNwcApp
bmRleCAyZjc3NDUyYTEzNjQyODgyM2Y2OTliYzI0MTM5YTVkMTgyZDZjMmEyLi4xMmQ0YjNhZmYy
OTFkODIwMTA3NzRkN2U2ZDRmNDg5NzA3MjRjMmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmNwcApAQCAtNDMsMjMgKzQzLDYgQEAgR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0xNYW5hZ2VyJiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNo
YXJlZE1hbmFnZXIoKQogICAgIHJldHVybiBzX21hbmFnZXI7CiB9CiAKLSNpZiBQTEFURk9STShN
QUMpCi12b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6ZGlzcGxheVdhc1JlY29u
ZmlndXJlZChDR0RpcmVjdERpc3BsYXlJRCwgQ0dEaXNwbGF5Q2hhbmdlU3VtbWFyeUZsYWdzIGZs
YWdzLCB2b2lkKikKLXsKLSAgICBMT0coV2ViR0wsICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1h
bmFnZXI6OmRpc3BsYXlXYXNSZWNvbmZpZ3VyZWQiKTsKLSAgICBpZiAoZmxhZ3MgJiBrQ0dEaXNw
bGF5U2V0TW9kZUZsYWcpCi0gICAgICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6
c2hhcmVkTWFuYWdlcigpLmRpc3BsYXlXYXNSZWNvbmZpZ3VyZWQoKTsKLX0KLSNlbmRpZgotCi0j
aWYgUExBVEZPUk0oQ09DT0EpCi12b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6
ZGlzcGxheVdhc1JlY29uZmlndXJlZCgpCi17Ci0gICAgZm9yIChjb25zdCBhdXRvJiBjb250ZXh0
IDogbV9jb250ZXh0cykKLSAgICAgICAgY29udGV4dC0+ZGlzcGxheVdhc1JlY29uZmlndXJlZCgp
OwotfQotI2VuZGlmCi0KIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjphZGRD
b250ZXh0KEdyYXBoaWNzQ29udGV4dEdMVHlwZSogY29udGV4dCkKIHsKICAgICBBU1NFUlQoY29u
dGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmgKaW5k
ZXggZmI1YzI4Yzk4ZDE4ZDg5OTUzOGQ3OTZlYmMyMTg4YTdmNGM1OTQ1MC4uZjA3OTA5YzgxYjk0
ZTZkZjNkYjRhMmYxNGNiNzg0Y2EzMzEyMzI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHRHTE9wZW5HTE1hbmFnZXIuaApAQCAtMjgsMTAgKzI4LDYgQEAKICNpbmNsdWRlIDx3dGYv
SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAotI2lmIFBMQVRGT1JNKE1BQykK
LSNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dEaXNwbGF5Q29uZmlndXJhdGlvbi5oPgotI2VuZGlm
Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgdW5zaWduZWQgTWF4Q29udGV4dHMgPSAx
NjsKQEAgLTU5LDEzICs1NSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlY3ljbGVDb250ZXh0SWZO
ZWNlc3NhcnkoKTsKICAgICBib29sIGhhc1Rvb01hbnlDb250ZXh0cygpIGNvbnN0IHsgcmV0dXJu
IG1fY29udGV4dHMuc2l6ZSgpID49IE1heENvbnRleHRzOyB9CiAgICAgCi0jaWYgUExBVEZPUk0o
TUFDKQotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGRpc3BsYXlXYXNSZWNvbmZpZ3Vy
ZWQoQ0dEaXJlY3REaXNwbGF5SUQsIENHRGlzcGxheUNoYW5nZVN1bW1hcnlGbGFncywgdm9pZCop
OwotI2VuZGlmCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdm9pZCBkaXNwbGF5V2FzUmVjb25m
aWd1cmVkKCk7Ci0jZW5kaWYKLSAgICAKIHByaXZhdGU6CiAgICAgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xNYW5hZ2VyKCkgPSBkZWZhdWx0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAppbmRl
eCA4NGIyZTY4NDVkMDc0OWNkYWExZTc4Yjg1MzBkOGY4ZWE1YTBlMDVkLi4wNzMzZjNjMTc4NmUx
YzU3MGJjOWUzYTRmNGQxYjhlNzI3ZDE3YzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAK
QEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpkaXNwbGF5
V2FzUmVjb25maWd1cmVkKCkKICAgICBhc3NlcnRJc01haW5SdW5Mb29wKCk7CiAgICAgcmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xTdHJlYW1Xb3JrUXVldWUoKS5kaXNwYXRjaChbcHJvdGVjdGVkVGhp
cyA9IFJlZiB7ICp0aGlzIH1dKCkgewogICAgICAgICBhc3NlcnRJc0N1cnJlbnQocHJvdGVjdGVk
VGhpcy0+bV9zdHJlYW1UaHJlYWQpOwotICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX2NvbnRleHQt
PmRpc3BsYXlXYXNSZWNvbmZpZ3VyZWQoKTsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9jb250
ZXh0LT51cGRhdGVDb250ZXh0T25EaXNwbGF5UmVjb25maWd1cmF0aW9uKCk7CiAgICAgfSk7CiB9
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tCmluZGV4IGRiZjg0OWRjNmNiMTIyZjAzYjIxYTE3YTBlZmUwYWQ5MDlkOTMyY2Eu
LjFlYjkwZWYzNmViNTcyMDIzNjIwZmFhZjY4MTIzMTEyMmUwNjAxNmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtMTM5LDcg
KzEzOSw3IEBACiAjaW1wb3J0ICJBcHBLaXRTUEkuaCIKICNpbXBvcnQgIldLQWNjZXNzaWJpbGl0
eVdlYlBhZ2VPYmplY3RNYWMuaCIKICNpbXBvcnQgIldlYlN3aXRjaGluZ0dQVUNsaWVudC5oIgot
I2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1Njcm9sbGJhclRoZW1lTWFjLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NmL0NvcmVUZXh0U1BJ
Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJLmg+CkBAIC05NzEsOSArOTcx
LDkgQEAgdm9pZCBXZWJQcm9jZXNzOjpzY3JvbGxlclN0eWxlUHJlZmVyZW5jZUNoYW5nZWQoYm9v
bCB1c2VPdmVybGF5U2Nyb2xsYmFycykKICAgICBbTlNTY3JvbGxlckltcFBhaXIgX3VwZGF0ZUFs
bFNjcm9sbGVySW1wUGFpcnNGb3JOZXdSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGU6c3R5bGVdOwog
fQogCi12b2lkIFdlYlByb2Nlc3M6OmRpc3BsYXlDb25maWd1cmF0aW9uQ2hhbmdlZChDR0RpcmVj
dERpc3BsYXlJRCBkaXNwbGF5SUQsIENHRGlzcGxheUNoYW5nZVN1bW1hcnlGbGFncyBmbGFncykK
K3ZvaWQgV2ViUHJvY2Vzczo6ZGlzcGxheUNvbmZpZ3VyYXRpb25DaGFuZ2VkKENHRGlyZWN0RGlz
cGxheUlELCBDR0Rpc3BsYXlDaGFuZ2VTdW1tYXJ5RmxhZ3MgZmxhZ3MpCiB7Ci0gICAgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKGRpc3BsYXlJ
RCwgZmxhZ3MsIG51bGxwdHIpOworICAgIERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvcjo6c2lu
Z2xldG9uKCkuZGlzcGF0Y2hEaXNwbGF5V2FzUmVjb25maWd1cmVkKGZsYWdzKTsKIH0KICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggOWIwNjNkNDYxMDhiZWVjYjc5YTIyZGM4ZTFhODNkMzlhYzczZTIyYi4uNWE3
M2JhMTc4N2M2MGMyMGE4MWViYjlkNjg4ODZlOGZmNWI2MTM3MSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDIxLTEyLTAxICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisK
KyAgICAgICAgR3JhcGhpY3NDb250ZXh0R0xBTkdMRSBzaG91bGQgbm90IGhhdmUgQ29jb2EgTWFj
IHNwZWNpZmljIGRpc3BsYXkgcmVjb25maWd1cmF0aW9uIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzY5NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSB0aGUgdGVzdCB0byBhY2NvdW50
IGZvciB0aGUgYmVoYXZpb3IgY2hhbmdlCisgICAgICAgIHdoZXJlIHRoZSBzaW11bGF0ZWQgY29u
dGV4dCBjaGFuZ2UgZXZlbnQgaXMgZGVsaXZlcmVkCisgICAgICAgIG9ubHkgdG8gdGhlIGNvbnRl
eHQgYmVpbmcgdGVzdGVkLCBub3QgdG8gYWxsIGNvbnRleHRzLgorCisgICAgICAgICogZmFzdC9j
YW52YXMvd2ViZ2wvd2ViZ2xjb250ZXh0Y2hhbmdlZGV2ZW50Lmh0bWw6CisKIDIwMjEtMTEtMzAg
IFJvYmVydCBKZW5uZXIgIDxKZW5uZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFQkFTRUxJTkUg
WyBNb250ZXJleSBdZmFzdC9jc3MvY29udGludWF0aW9uQ3Jhc2guaHRtbCAobGF5b3V0LXRlc3Qp
IGlzIGEgY29uc3RhbnQgdGV4dCBmYWlsdXJlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy93ZWJnbC93ZWJnbGNvbnRleHRjaGFuZ2VkZXZlbnQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL3dlYmdsY29udGV4dGNoYW5nZWRldmVudC5odG1sCmluZGV4IDY1
ZjNjZTFmNjIyODNmMGMyYTlmODZjZmI1OTBiYmI2NTM5MmMzZmQuLjBlZTA0MTAzYjk2ZWJmNjE5
YzJjYWU2NWFhMmE4YzQwODU3MTljMzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL3dlYmdsL3dlYmdsY29udGV4dGNoYW5nZWRldmVudC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL3dlYmdsY29udGV4dGNoYW5nZWRldmVudC5odG1sCkBAIC0zOSwx
MCArMzksMTIgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgICAgIGdsLmNsZWFyKGdsLkNPTE9S
X0JVRkZFUl9CSVQpOwogICAgIH0pOwogCi0gICAgbGV0IGdsID0gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigiY2FudmFzIikuZ2V0Q29udGV4dCgid2ViZ2wiKTsKLSAgICBpZiAod2luZG93LmludGVy
bmFscykKLSAgICAgICAgd2luZG93LmludGVybmFscy5zaW11bGF0ZUV2ZW50Rm9yV2ViR0xDb250
ZXh0KCJDb250ZXh0Q2hhbmdlIiwgZ2wpOwotICAgIGVsc2UKKyAgICBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCJjYW52YXMiKS5mb3JFYWNoKChjKSA9PiB7CisgICAgICAgIGxldCBnbCA9IGMu
Z2V0Q29udGV4dCgid2ViZ2wiKTsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
ICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNpbXVsYXRlRXZlbnRGb3JXZWJHTENvbnRleHQoIkNv
bnRleHRDaGFuZ2UiLCBnbCk7CisgICAgfSk7CisgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQog
ICAgICAgICBsb2coIlRvIHJ1biB0aGUgdGVzdCwgdHJpZ2dlciBhIEdQVSBjaGFuZ2UgbWFudWFs
bHkuIik7CiB9CiAK
</data>
<flag name="commit-queue"
          id="470783"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445563</attachid>
            <date>2021-12-01 05:29:04 -0800</date>
            <delta_ts>2021-12-01 05:51:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233695-20211201152902.patch</filename>
            <type>text/plain</type>
            <size>34038</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGJiNmQyZjJmYmNkN2I3
ODU1MzIxY2U1YjgwMWQ1YzJmYWNiMzhmNC4uZTczZWI2ZmI2MGQzN2NlYjcyMmNlZThmYjcyNTVk
OWU3YmRkZmI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTEyLTAxICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgR3JhcGhpY3NDb250
ZXh0R0xBTkdMRSBzaG91bGQgbm90IGhhdmUgQ29jb2EgTWFjIHNwZWNpZmljIGRpc3BsYXkgcmVj
b25maWd1cmF0aW9uIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMzY5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1vdmUgY29kZSB0byBvYnNlcnZlIE1hYyBkaXNwbGF5IHJlY29uZmlndXJhdGlv
bgorICAgICAgICBhd2F5IGZyb20gR3JhcGhpY3NDb250ZXh0R0xBTkdMRSB0byBHcmFwaGljc0Nv
bnRleHRHTENvY29hLgorICAgICAgICBBcHBseSB0aGUgZGlzcGxheSByZWNvbmZpZ3VyYXRpb24g
bGlzdGVuZXIgb25seSBmb3IKKyAgICAgICAgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29j
b2EsIGl0IGlzIG5vdCBuZWVkZWQgZm9yIHRoZQorICAgICAgICBHUFUgcHJvY2VzcyBjb250ZXh0
cy4KKworICAgICAgICBNb3ZlIHRoZSBsaXN0ZW5lciBub3RpZmljYXRpb24gY29kZSBhd2F5IGZy
b20gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyCisgICAgICAgIGludG8gaXRzIG93biBj
bGFzcy4gVGhpcyB3YXkgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyIGRvZXMgbm90IG5l
ZWQKKyAgICAgICAgdG8ga25vdyBNYWMgc3BlY2lmaWMgaW50ZXJmYWNlcy4gTGF0ZXIgb24sIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlciBjYW4KKyAgICAgICAgYmUgcmVtb3ZlZCBhbHRv
Z2V0aGVyLgorCisgICAgICAgIENoYW5nZXMgYmVoYXZpb3Igc28gdGhhdCBzaW11bGF0ZUV2ZW50
Rm9yVGVzdGluZyBpbnZva2VzIHRoZSBzaW11bGF0ZWQgY29udGV4dAorICAgICAgICBjaGFuZ2Ug
b25seSBmb3IgdGhlIGNvbnRleHQgYmVpbmcgdGVzdGVkLiBUaGlzIHNpbXBsaWZpZXMgdGhlIGlt
cGxlbWVudGF0aW9uLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgcmVmYWN0b3IuCisKKyAgICAg
ICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlczo6ZWZmZWN0aXZlUG93ZXJQcmVmZXJl
bmNlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0Nv
bnRleHRHTEFOR0xFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5H
TEU6OnNpbXVsYXRlRXZlbnRGb3JUZXN0aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06CisgICAgICAgIChXZWJD
b3JlOjppbml0aWFsaXplRUdMRGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRHTENvY29hOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTENvY29hOjp+R3JhcGhpY3NDb250ZXh0R0xDb2NvYSk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnNldENvbnRleHRWaXNp
YmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnVwZGF0
ZUNvbnRleHRPbkRpc3BsYXlSZWNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0R0xBTkdMRTo6c2V0Q29udGV4dFZpc2liaWxpdHkpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6ZGlzcGxheVdhc1JlY29uZmln
dXJlZCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJv
Y2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0Rpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5H
TE1hbmFnZXIuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRv
cjo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDb25maWd1cmF0aW9uTW9u
aXRvcjo6YWRkQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDb25maWd1cmF0aW9u
TW9uaXRvcjo6cmVtb3ZlQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDb25maWd1
cmF0aW9uTW9uaXRvcjo6ZGlzcGF0Y2hEaXNwbGF5V2FzUmVjb25maWd1cmVkKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6ZGlzcGxheVdhc1JlY29uZmlndXJl
ZCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMTWFuYWdlci5oOgorCiAyMDIxLTExLTMwICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFBhc3MgdGhlIHRpbWVzdGFtcCBmb3Ig
c2Nyb2xsaW5nIHRocmVhZCBhbmltYXRpb25zIHRocm91Z2ggYWxsIHRoZSBzZXJ2aWNlU2Nyb2xs
QW5pbWF0aW9uKCkgY2FsbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODFlNDkzMGIzM2Q1NWNkNWJkM2I1Y2FhY2Yx
N2JlZTA5N2YxZDc4YS4uN2MzYWQ3NzAzMWRiYTdhYmQ1MWUyMTZjNWQ4NzkxYTdlZmYzNmI0NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMS0xMi0wMSAgS2ltbW8gS2lubnVuZW4gIDxr
a2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIEdyYXBoaWNzQ29udGV4dEdMQU5HTEUgc2hv
dWxkIG5vdCBoYXZlIENvY29hIE1hYyBzcGVjaWZpYyBkaXNwbGF5IHJlY29uZmlndXJhdGlvbiBj
b2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM2
OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcmV2
aW91cyBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkKKyAg
ICAgICAgd2FzIHJlbmFtZWQgdG8gdXBkYXRlQ29udGV4dE9uRGlzcGxheVJlY29uZmlndXJhdGlv
bigpLgorICAgICAgICBUaGUgZGlzcGxheVdhc1JlY29uZmlndXJlZCgpIHdhcyB0YWtlbiBpbnRv
IHVzZSBpbiB0aGUgbm90aWZpY2F0aW9uIGludGVyZmFjZQorICAgICAgICBEaXNwbGF5Q29uZmln
dXJhdGlvbk1vbml0b3I6OkNsaWVudDo6ZGlzcGxheVdhc1JlY29uZmlndXJlZCgpLgorCisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpkaXNwbGF5V2FzUmVjb25m
aWd1cmVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGlzcGxheUNvbmZpZ3VyYXRpb25DaGFuZ2Vk
KToKKwogMjAyMS0xMS0zMCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAg
ICAgICAgIHJlcGxhY2Utd2Via2l0LWFkZGl0aW9ucy1pbmNsdWRlcyBzaG91bGQgYXNzdW1lIHVu
a25vd24gb3IgZW1wdHkgZGVwbG95bWVudCB0YXJnZXRzIGFyZSBzdXBwb3J0ZWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1NYWMuY21ha2UKaW5kZXggMTVkMjcxN2I3MjM1ODJjN2E3ZmU5OTJmMDU1ZmJlM2U3N2Rk
ZmNlNi4uYWZjOTZhMGI2MTIwN2E0ZGE3MzYxYzUxMzI0ZGY1Mjc2MzFlMGM5MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1NYWMuY21ha2UKQEAgLTM0Myw2ICszNDMsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3Jl
X1NPVVJDRVMKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db2xvck1hYy5tbQogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbQorICAg
IHBsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuY3BwCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zsb2F0UG9pbnRNYWMubW0KICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRmxvYXRTaXplTWFjLm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCkBAIC02NzEsNiArNjcyLDcgQEAgbGlzdChBUFBFTkQg
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oCiAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
Q29sb3JNYWMuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5Q29uZmlndXJhdGlv
bk1vbml0b3IuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1E
YXRhLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NDaGVja3NNYWMuaAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL21hYy9TY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0LmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDNmNWI2MmYzNzYzZmNmNGIyYjg0MDY2MmVkZmIz
NTFmYmExMzdhZjYuLmM3OWZjNGQ3OGM2MjEwNTE4OTYxZWYxYzY0MTMyMzdhNWFjNzQ0MGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtNDEyLDYgKzQxMiw3IEBAIHBsYXRmb3JtL2dyYXBo
aWNzL2lvcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2lv
cy9JY29uSU9TLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29sb3JNYWMubW0KIHBsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbQorcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0Rpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5jcHAKIHBsYXRmb3JtL2dy
YXBoaWNzL21hYy9GbG9hdFBvaW50TWFjLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRmxvYXRT
aXplTWFjLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA2MGU0Mjg4Mzk3NTY4ZDQ1MGQxMmYxODViOGY2ZmVhNjA2NjRlMTc4Li45ODA2NDUx
YzNkYTI4MTYwNGU4MzJiMGE0YjVkNzZlZjdkYmJkNTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzc0LDYgKzIzNzQsNyBA
QAogCQk3QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3NDaGVja3NNYWMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQjY4MEI4MjVCQTFC
RTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRERBMzFGMjc0RkEwMjEwMDM4NjU5RSAvKiBH
cmFwaGljc0NvbnRleHRHTENvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QkREQTMxRDI3NEY5REE1MDAzODY1OUUgLyogR3JhcGhpY3NDb250ZXh0
R0xDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTdCRTc0MjczODFGQTkwNkZCQjRGMEYyQyAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwQzRDMDJCRUQ4
OTM2RjgxOEUyRjk5IC8qIEpTU1ZHR3JhcGhpY3NFbGVtZW50LmggKi87IH07CisJCTdCRkY1OUY0
Mjc1NzcyNjcwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRkY1OUVGMjc1NzcxRTgw
MDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzAyOUM2RTI0OTNDOEY4MDAyNjgy
MDQgLyogQ29sb3JUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0MwMjlDNkQyNDkzQzhGODAwMjY4MjA0IC8qIENvbG9yVHlwZXMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzE4NDNGRTFDOEI3
MjgzMDAyRUI5NzMgLyogQXV0b2ZpbGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdDMTg0M0ZDMUM4QjcyODMwMDJFQjk3MyAvKiBBdXRvZmlsbC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDMTkzQkJC
MUY1RTBFRUQwMDg4RjNFNiAvKiBDYW52YXNEaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMTkzQkI2MUY1RTBFQjkwMDg4RjNFNiAvKiBD
YW52YXNEaXJlY3Rpb24uaCAqLzsgfTsKQEAgLTExMzc1LDYgKzExMzc2LDggQEAKIAkJN0JEREEz
MUMyNzRGOURBNDAwMzg2NTlFIC8qIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENvY29hLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkREQTMxRDI3NEY5REE1MDAzODY1OUUg
LyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBHcmFwaGljc0NvbnRleHRHTENvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdCRTcyNjVCMjU3NjNCOEQwMEU4NUQ5OCAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCRkY1OUVGMjc1Nzcx
RTgwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuaDsgZmls
ZUVuY29kaW5nID0gNDsgcGF0aCA9IERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QkZGNTlGMTI3NTc3MUU4MDA3NzNEMzkgLyogRGlz
cGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdDMDExRjNEMjRGQUQzNjAwMDVCRUYxMCAvKiBTZXR0aW5ncy5jcHAu
ZXJiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFNldHRpbmdzLmNwcC5lcmI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdDMDExRjNFMjRGQUQzNjAwMDVCRUYxMCAvKiBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmNw
cC5lcmIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5jcHAuZXJiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QzAxMUYzRjI0RkFEMzYwMDA1QkVGMTAgLyogSW50ZXJuYWxT
ZXR0aW5nc0dlbmVyYXRlZC5pZGwuZXJiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQu
aWRsLmVyYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4NDI0LDYgKzI4NDI3LDgg
QEAKIAkJCQlFREUzQTRGRjBDN0E0MzA2MDA5NTZBMzcgLyogQ29sb3JNYWMuaCAqLywKIAkJCQlC
Mjc1MzU0QTBCMDUzODE0MDAyQ0U2NEYgLyogQ29sb3JNYWMubW0gKi8sCiAJCQkJMzdDMjM4MjAx
MDk4Qzg0MjAwRUY5RjcyIC8qIENvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tICovLAor
CQkJCTdCRkY1OUYxMjc1NzcxRTgwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0
b3IuY3BwICovLAorCQkJCTdCRkY1OUVGMjc1NzcxRTgwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmln
dXJhdGlvbk1vbml0b3IuaCAqLywKIAkJCQlCMjc1MzU0QjBCMDUzODE0MDAyQ0U2NEYgLyogRmxv
YXRQb2ludE1hYy5tbSAqLywKIAkJCQlCMjc1MzU0RDBCMDUzODE0MDAyQ0U2NEYgLyogRmxvYXRT
aXplTWFjLm1tICovLAogCQkJCUIyQUZGQzc1MEQwMEE1QzEwMDMwMDc0RCAvKiBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhLmNwcCAqLywKQEAgLTMzODY0LDYgKzMzODY5LDcgQEAKIAkJCQlGNDdBMDlE
MTIwQTkzQTk3MDAyNDBGQUUgLyogRGlzYWJsZWRBZGFwdGF0aW9ucy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJN0VEQUFGQzkxOUEyQ0NEQzAwMzRERkQxIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDdCQjFFNzAyNzE3NkNEOTAwMURGMjg5IC8qIERpc3BsYXlD
YXB0dXJlU291cmNlQ29jb2EuaCBpbiBIZWFkZXJzICovLAorCQkJCTdCRkY1OUY0Mjc1NzcyNjcw
MDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGRTVGQkQzMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTVBRDA5NDAyNDA4OTY0MDAwREU0RDJGIC8qIERpc3BsYXlMaXN0RHJhd2luZ0Nv
bnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1QUQwOTNFMjQwODk2MzUwMERFNEQyRiAvKiBE
aXNwbGF5TGlzdEltYWdlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0xBdHRy
aWJ1dGVzLmgKaW5kZXggYTBhZDc3YmE4ODRiNWIzMzE0NTllNmZmZGVlMjBmNzg1NjQ1NDRmMy4u
Y2I5OWZiMTYxN2RiYzZhYTk3MjkxYzg4MTlmODQ1Y2JkY2Y3ZmY1NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzLmgKQEAgLTY4LDYgKzY4LDEyIEBAIHN0cnVjdCBHcmFwaGljc0NvbnRleHRH
TEF0dHJpYnV0ZXMgewogI2lmIEVOQUJMRShXRUJYUikKICAgICBib29sIHhyQ29tcGF0aWJsZSB7
IGZhbHNlIH07CiAjZW5kaWYKKyAgICBQb3dlclByZWZlcmVuY2UgZWZmZWN0aXZlUG93ZXJQcmVm
ZXJlbmNlKCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmIChmb3JjZVJlcXVlc3RGb3JIaWdoUGVy
Zm9ybWFuY2VHUFUpCisgICAgICAgICAgICByZXR1cm4gUG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVy
Zm9ybWFuY2U7CisgICAgICAgIHJldHVybiBwb3dlclByZWZlcmVuY2U7CisgICAgfQogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3Jh
cGhpY3NDb250ZXh0R0xBTkdMRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAppbmRleCA2NDE1MTc5YjYyYjJjNDIz
MjJlNjA0OWUxMjU5YmRiZGQ4ZjYyMmM5Li41YzdkYmJjZTM3ZDdlNGZhNzBjMjkwODMxMzIyZDhj
NjBiZWNmMmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
bmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcApAQCAtMjkxNSw5
ICsyOTE1LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjp3YWl0QW5kVXBkYXRlT2xk
ZXN0RnJhbWUoKQogdm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpzaW11bGF0ZUV2ZW50Rm9y
VGVzdGluZyhTaW11bGF0ZWRFdmVudEZvclRlc3RpbmcgZXZlbnQpCiB7CiAgICAgaWYgKGV2ZW50
ID09IFNpbXVsYXRlZEV2ZW50Rm9yVGVzdGluZzo6Q29udGV4dENoYW5nZSkgewotI2lmIFBMQVRG
T1JNKENPQ09BKQotICAgICAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJl
ZE1hbmFnZXIoKS5kaXNwbGF5V2FzUmVjb25maWd1cmVkKCk7Ci0jZW5kaWYKKyAgICAgICAgZGlz
cGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIGlmIChldmVudCA9PSBTaW11bGF0ZWRFdmVudEZvclRlc3Rpbmc6OkdQVVN0YXR1c0Zh
aWx1cmUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Fu
Z2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaAppbmRleCA0ZTMwYmNiYzQ3NzQ1
YmI4YjQyMTUyN2JmZDM0OWJhZDY3N2JkMDY3Li40M2Q1ZDI5MGRkNjgyY2E1OTY1NjAxMTBhNjZh
NWE3ZGE4Zjg1MmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oCkBAIC0zOCw5ICsz
OCw2IEBACiAjaW5jbHVkZSAiSU9TdXJmYWNlLmgiCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1B
QykKLSNpbmNsdWRlICJTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0LmgiCi0jZW5kaWYK
IAogI2lmIFVTRShOSUNPU0lBKQogbmFtZXNwYWNlIE5pY29zaWEgewpAQCAtMzQ4LDcgKzM0NSw2
IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKEltYWdl
QnVmZmVyJikgZmluYWw7CiAgICAgc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZlcj4gcGFpbnRSZW5k
ZXJpbmdSZXN1bHRzVG9QaXhlbEJ1ZmZlcigpIGZpbmFsOwogICAgIHZvaWQgcGFpbnRDb21wb3Np
dGVkUmVzdWx0c1RvQ2FudmFzKEltYWdlQnVmZmVyJikgZmluYWw7Ci0gICAgdm9pZCBzZXRDb250
ZXh0VmlzaWJpbGl0eShib29sKSBmaW5hbDsKICAgICB2b2lkIHByZXBhcmVGb3JEaXNwbGF5KCkg
b3ZlcnJpZGU7CiAKICAgICB2b2lkIGZvcmNlQ29udGV4dExvc3QoKTsKQEAgLTM1Nyw5ICszNTMs
NiBAQCBwdWJsaWM6CiAgICAgc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZlcj4gcmVhZFJlbmRlcmlu
Z1Jlc3VsdHNGb3JQYWludGluZygpOwogICAgIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+IHJl
YWRDb21wb3NpdGVkUmVzdWx0c0ZvclBhaW50aW5nKCk7CiAKLSNpZiBQTEFURk9STShDT0NPQSkK
LSAgICB2b2lkIGRpc3BsYXlXYXNSZWNvbmZpZ3VyZWQoKTsKLSNlbmRpZgogICAgIHVuc2lnbmVk
IHRleHR1cmVTZWVkKEdDR0x1aW50IHRleHR1cmUpOwogCiAgICAgY29uc3RleHByIHN0YXRpYyBF
R0xOYXRpdmVEaXNwbGF5VHlwZSBkZWZhdWx0RGlzcGxheSA9IEVHTF9ERUZBVUxUX0RJU1BMQVk7
CkBAIC00NDQsMTAgKzQzNyw2IEBAIHByb3RlY3RlZDoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SU9T
dXJmYWNlPiBtX2Rpc3BsYXlCdWZmZXJCYWNraW5nOwogICAgIHZvaWQqIG1fZGlzcGxheUJ1ZmZl
clBidWZmZXIgeyBudWxscHRyIH07CiAjZW5kaWYKLSNpZiBQTEFURk9STShNQUMpCi0gICAgYm9v
bCBtX3N3aXRjaGVzR1BVT25EaXNwbGF5UmVjb25maWd1cmF0aW9uIHsgZmFsc2UgfTsKLSAgICBT
Y29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0IG1faGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVz
dDsKLSNlbmRpZgogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICBHQ0dMdWludCBt
X2NvbXBvc2l0b3JUZXh0dXJlIHsgMCB9OwogICAgIEdDR0x1aW50IG1faW50ZXJtZWRpYXRlVGV4
dHVyZSB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EuaAppbmRleCBlNDA5NWEyYjE5
ZTI0ZDFkYjgwOWMxODJmNjQzMmJkYzBjYjc4NmMyLi5hNjQ4ZmNkMmVjNGYwYjliNTFlMzAyMzY5
ZTAxMjQ5YjUyZDliNGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oCkBAIC0zNiw2
ICszNiwxMCBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHRHTENWQ29jb2E7CiB9CiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlICJTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1
ZXN0LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXRUJDT1JFX0VY
UE9SVCBHcmFwaGljc0NvbnRleHRHTENvY29hIDogcHVibGljIEdyYXBoaWNzQ29udGV4dEdMQU5H
TEUgewpAQCAtNjYsMTMgKzcwLDIxIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQogICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4gcGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFT
YW1wbGUoKSBmaW5hbDsKICNlbmRpZgorICAgIHZvaWQgc2V0Q29udGV4dFZpc2liaWxpdHkoYm9v
bCkgZmluYWw7CiAKKyNpZiBQTEFURk9STShNQUMpCisgICAgdm9pZCB1cGRhdGVDb250ZXh0T25E
aXNwbGF5UmVjb25maWd1cmF0aW9uKCk7CisjZW5kaWYKIHByb3RlY3RlZDoKICAgICBHcmFwaGlj
c0NvbnRleHRHTENvY29hKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmKTsK
ICAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKIAogI2lmIEVOQUJMRShWSURFTykKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hPiBtX2N2OworI2VuZGlmCisjaWYg
UExBVEZPUk0oTUFDKQorICAgIGJvb2wgbV9zd2l0Y2hlc0dQVU9uRGlzcGxheVJlY29uZmlndXJh
dGlvbiB7IGZhbHNlIH07CisgICAgU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdCBtX2hp
Z2hQZXJmb3JtYW5jZUdQVVJlcXVlc3Q7CiAjZW5kaWYKICAgICBmcmllbmQgY2xhc3MgR3JhcGhp
Y3NDb250ZXh0R0xDVkNvY29hOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCmlu
ZGV4IDAyOWNjM2ZhZTQ3Zjg3MDIzYzVjMzAyMjVlMDI1OWEwNDFmMGQ2NjkuLmE0YWVlM2RmYWIw
Zjc3YTJmZWM1YjVjZGZkY2ZiODJlNDBlNDExZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xD
b2NvYS5tbQpAQCAtMTUzLDcgKzE1Myw3IEBAIHN0YXRpYyBFR0xEaXNwbGF5IGluaXRpYWxpemVF
R0xEaXNwbGF5KGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0cnMpCiAgICAg
ICAgIGRpc3BsYXlBdHRyaWJ1dGVzLmFwcGVuZChFR0xfUExBVEZPUk1fQU5HTEVfVFlQRV9NRVRB
TF9BTkdMRSk7CiAgICAgICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgYXJlIGRlZmluZWQgZm9yIEVH
TF9BTkdMRV9wb3dlcl9wcmVmZXJlbmNlIGFzIEVHTENvbnRleHQgYXR0cmlidXRlcywKICAgICAg
ICAgLy8gYnV0IE1ldGFsIGJhY2tlbmQgdXNlcyBFR0xEaXNwbGF5IGF0dHJpYnV0ZXMuCi0gICAg
ICAgIGF1dG8gcG93ZXJQcmVmZXJlbmNlID0gYXR0cnMuZm9yY2VSZXF1ZXN0Rm9ySGlnaFBlcmZv
cm1hbmNlR1BVID8gR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzOjpQb3dlclByZWZlcmVuY2U6
OkhpZ2hQZXJmb3JtYW5jZSA6IGF0dHJzLnBvd2VyUHJlZmVyZW5jZTsKKyAgICAgICAgYXV0byBw
b3dlclByZWZlcmVuY2UgPSBhdHRycy5lZmZlY3RpdmVQb3dlclByZWZlcmVuY2UoKTsKICAgICAg
ICAgaWYgKHBvd2VyUHJlZmVyZW5jZSA9PSBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXM6OlBv
d2VyUHJlZmVyZW5jZTo6TG93UG93ZXIpIHsKICAgICAgICAgICAgIGRpc3BsYXlBdHRyaWJ1dGVz
LmFwcGVuZChFR0xfUE9XRVJfUFJFRkVSRU5DRV9BTkdMRSk7CiAgICAgICAgICAgICBkaXNwbGF5
QXR0cmlidXRlcy5hcHBlbmQoRUdMX0xPV19QT1dFUl9BTkdMRSk7CkBAIC0xOTQsNyArMTk0LDcg
QEAgc3RhdGljIGJvb2wgbmVlZHNFQUdMT25NYWMoKQogfQogI2VuZGlmCiAKLVJlZlB0cjxHcmFw
aGljc0NvbnRleHRHTENvY29hPiBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKK1JlZlB0cjxHcmFw
aGljc0NvbnRleHRHTENvY29hPiBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoR3JhcGhp
Y3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKIHsKICAgICBhdXRvIGNvbnRleHQg
PSBhZG9wdFJlZigqbmV3IEdyYXBoaWNzQ29udGV4dEdMQ29jb2EoV1RGTW92ZShhdHRyaWJ1dGVz
KSkpOwogICAgIGlmICghY29udGV4dC0+aXNWYWxpZCgpKQpAQCAtMjAyLDYgKzIwMiwxOCBAQCBS
ZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xDb2NvYT4gR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y3Jl
YXRlKFdlYkNvcmU6OkdyYXBoaWNzQwogICAgIHJldHVybiBjb250ZXh0OwogfQogCitHcmFwaGlj
c0NvbnRleHRHTENvY29hOjpHcmFwaGljc0NvbnRleHRHTENvY29hKEdyYXBoaWNzQ29udGV4dEdM
QXR0cmlidXRlcyYmIGNyZWF0aW9uQXR0cmlidXRlcykKKyAgICA6IEdyYXBoaWNzQ29udGV4dEdM
QU5HTEUoV1RGTW92ZShjcmVhdGlvbkF0dHJpYnV0ZXMpKQoreworICAgIGlmICghaXNWYWxpZCgp
KQorICAgICAgICByZXR1cm47CisjaWYgUExBVEZPUk0oTUFDKQorICAgIGF1dG8gYXR0cmlidXRl
cyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisgICAgaWYgKCFhdHRyaWJ1dGVzLnVzZU1ldGFsICYm
IGF0dHJpYnV0ZXMuZWZmZWN0aXZlUG93ZXJQcmVmZXJlbmNlKCkgPT0gR3JhcGhpY3NDb250ZXh0
R0xQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZSkKKyAgICAgICAgbV9zd2l0Y2hlc0dQ
VU9uRGlzcGxheVJlY29uZmlndXJhdGlvbiA9IHRydWU7CisjZW5kaWYKK30KKwogR3JhcGhpY3ND
b250ZXh0R0xDb2NvYTo6fkdyYXBoaWNzQ29udGV4dEdMQ29jb2EoKSA9IGRlZmF1bHQ7CiAKIElP
U3VyZmFjZSogR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6ZGlzcGxheUJ1ZmZlcigpCkBAIC0yMTQs
MTEgKzIyNiw2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6bWFya0Rpc3BsYXlCdWZm
ZXJJblVzZSgpCiAgICAgcmV0dXJuIG1fc3dhcENoYWluLm1hcmtEaXNwbGF5QnVmZmVySW5Vc2Uo
KTsKIH0KIAotR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYShX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQotICAgIDog
R3JhcGhpY3NDb250ZXh0R0xBTkdMRShXVEZNb3ZlKGF0dHJpYnV0ZXMpKQotewotfQotCiAvLyBG
SVhNRTogQmVsb3cgaXMgZnVuY3Rpb25hbGl0eSB0aGF0IHNob3VsZCBiZSBtb3ZlZCB0byBHcmFw
aGljc0NvbnRleHRHTENvY29hIHRvIHNpbXBsaWZ5IHRoZSBiYXNlIGNsYXNzLgogCiBHcmFwaGlj
c0NvbnRleHRHTEFOR0xFOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFKEdyYXBoaWNzQ29udGV4dEdM
QXR0cmlidXRlcyBhdHRycykKQEAgLTI1NSwxNCArMjYyLDEyIEBAIEdyYXBoaWNzQ29udGV4dEdM
QU5HTEU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVz
IGF0dHJzCiAgICAgICAgIC8vIGRpc3BsYXkgcmVjb25maWd1cmF0aW9uIGNhbGxiYWNrLiBVcG9u
IHRoaXMsIHdlIHVwZGF0ZSB0aGUgQ0dMIGNvbnRleHRzIGluc2lkZSBBTkdMRS4KICAgICAgICAg
Y29uc3QgY2hhciAqZGlzcGxheUV4dGVuc2lvbnMgPSBFR0xfUXVlcnlTdHJpbmcobV9kaXNwbGF5
T2JqLCBFR0xfRVhURU5TSU9OUyk7CiAgICAgICAgIGJvb2wgc3VwcG9ydHNQb3dlclByZWZlcmVu
Y2UgPSBzdHJzdHIoZGlzcGxheUV4dGVuc2lvbnMsICJFR0xfQU5HTEVfcG93ZXJfcHJlZmVyZW5j
ZSIpOwotICAgICAgICBpZiAoc3VwcG9ydHNQb3dlclByZWZlcmVuY2UpIHsKLSAgICAgICAgICAg
IG1fc3dpdGNoZXNHUFVPbkRpc3BsYXlSZWNvbmZpZ3VyYXRpb24gPSBhdHRycy5wb3dlclByZWZl
cmVuY2UgPT0gR3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5j
ZQotICAgICAgICAgICAgICAgIHx8IGF0dHJzLmZvcmNlUmVxdWVzdEZvckhpZ2hQZXJmb3JtYW5j
ZUdQVTsKLSAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKCFzdXBwb3J0c1Bvd2VyUHJlZmVy
ZW5jZSkgeworICAgICAgICAgICAgYXR0cnMuZm9yY2VSZXF1ZXN0Rm9ySGlnaFBlcmZvcm1hbmNl
R1BVID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAoYXR0cnMucG93ZXJQcmVmZXJlbmNlID09IEdy
YXBoaWNzQ29udGV4dEdMUG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVyZm9ybWFuY2UpIHsKICAgICAg
ICAgICAgICAgICBhdHRycy5wb3dlclByZWZlcmVuY2UgPSBHcmFwaGljc0NvbnRleHRHTFBvd2Vy
UHJlZmVyZW5jZTo6RGVmYXVsdDsKLSAgICAgICAgICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRl
cyhhdHRycyk7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRl
cyhhdHRycyk7CiAgICAgICAgIH0KICAgICB9CiAjZW5kaWYKQEAgLTUwNiw3ICs1MTEsNyBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OmNoZWNrR1BVU3RhdHVzKCkKICAgICByZXN0YXJ0
U3RhdHVzID0gMDsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpzZXRDb250ZXh0
VmlzaWJpbGl0eShib29sIGlzVmlzaWJsZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6
c2V0Q29udGV4dFZpc2liaWxpdHkoYm9vbCBpc1Zpc2libGUpCiB7CiAjaWYgUExBVEZPUk0oTUFD
KQogICAgIGlmICghbV9zd2l0Y2hlc0dQVU9uRGlzcGxheVJlY29uZmlndXJhdGlvbikKQEAgLTUy
MCwxNCArNTI1LDE0IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6c2V0Q29udGV4dFZp
c2liaWxpdHkoYm9vbCBpc1Zpc2libGUpCiAjZW5kaWYKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRl
eHRHTEFOR0xFOjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkKLXsKICNpZiBQTEFURk9STShNQUMp
Cit2b2lkIEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnVwZGF0ZUNvbnRleHRPbkRpc3BsYXlSZWNv
bmZpZ3VyYXRpb24oKQorewogICAgIGlmIChtX3N3aXRjaGVzR1BVT25EaXNwbGF5UmVjb25maWd1
cmF0aW9uKQogICAgICAgICBFR0xfSGFuZGxlR1BVU3dpdGNoQU5HTEUobV9kaXNwbGF5T2JqKTsK
LSNlbmRpZgogICAgIGRpc3BhdGNoQ29udGV4dENoYW5nZWROb3RpZmljYXRpb24oKTsKIH0KKyNl
bmRpZgogCiBib29sIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnJlc2hhcGVEaXNwbGF5QnVmZmVy
QmFja2luZygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENv
Y29hLm1tCmluZGV4IDNlZmIyMzhhOTliOWU5ZTUxN2NkMjZiZTdiNTM1Nzk4Yzg5ZjQ3MjUuLjI1
NDI2MjMwZGZlZGFkMmM1ZWI5MTA0MjRhMDhhNzJlMzcxN2IyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRl
eHRHTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tCkBAIC0zMiw2ICszMiwxMCBAQAog
I2ltcG9ydCAiV2ViR0xMYXllci5oIgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMu
aD4KIAorI2lmIFBMQVRGT1JNKE1BQykKKyNpbXBvcnQgIkRpc3BsYXlDb25maWd1cmF0aW9uTW9u
aXRvci5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSB7CiAKQEAg
LTQ4LDI0ICs1Miw0NiBAQCBzdGF0aWMgUmV0YWluUHRyPFdlYkdMTGF5ZXI+IGNyZWF0ZVdlYkdM
TGF5ZXIoY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJgogfQogCiAvLyBHcmFwaGlj
c0NvbnRleHRHTCB0eXBlIHRoYXQgaXMgdXNlZCB3aGVuIFdlYkdMIGlzIHJ1biBpbi1wcm9jZXNz
IGluIFdlYkNvbnRlbnQgcHJvY2Vzcy4KLWNsYXNzIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRH
TENvY29hIGZpbmFsIDogcHVibGljIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EgeworY2xhc3MgV2Vi
UHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EgZmluYWwgOiBwdWJsaWMgR3JhcGhpY3NDb250
ZXh0R0xDb2NvYQorI2lmIFBMQVRGT1JNKE1BQykKKyAgICAsIHByaXZhdGUgRGlzcGxheUNvbmZp
Z3VyYXRpb25Nb25pdG9yOjpDbGllbnQKKyNlbmRpZgorCit7CiBwdWJsaWM6Ci0gICAgfldlYlBy
b2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hKCkgPSBkZWZhdWx0OworICAgIH5XZWJQcm9jZXNz
R3JhcGhpY3NDb250ZXh0R0xDb2NvYSgpOwogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0
dXJuIEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmlzVmFsaWQoKSAmJiBtX3dlYkdMTGF5ZXI7IH0K
ICAgICAvLyBHcmFwaGljc0NvbnRleHRHTENvY29hIG92ZXJyaWRlcy4KICAgICBQbGF0Zm9ybUxh
eWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gcmVpbnRlcnByZXRfY2Fz
dDxDQUxheWVyKj4obV93ZWJHTExheWVyLmdldCgpKTsgfQogICAgIHZvaWQgcHJlcGFyZUZvckRp
c3BsYXkoKSBmaW5hbDsKIHByaXZhdGU6Ci0gICAgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdM
Q29jb2EoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKLSAgICAgICAg
OiBHcmFwaGljc0NvbnRleHRHTENvY29hKFdURk1vdmUoYXR0cmlidXRlcykpCi0gICAgICAgICwg
bV93ZWJHTExheWVyKGNyZWF0ZVdlYkdMTGF5ZXIoY29udGV4dEF0dHJpYnV0ZXMoKSkpCi0gICAg
ewotICAgIH0KKyNpZiBQTEFURk9STShNQUMpCisgICAgLy8gRGlzcGxheUNvbmZpZ3VyYXRpb25N
b25pdG9yOjpDbGllbnQgb3ZlcnJpZGVzLgorICAgIHZvaWQgZGlzcGxheVdhc1JlY29uZmlndXJl
ZCgpIGZpbmFsOworI2VuZGlmCisKKyAgICBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJik7CiAgICAgUmV0YWluUHRyPFdlYkdMTGF5
ZXI+IG1fd2ViR0xMYXllcjsKIAogICAgIGZyaWVuZCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0w+
IFdlYkNvcmU6OmNyZWF0ZVdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTChjb25zdCBHcmFwaGlj
c0NvbnRleHRHTEF0dHJpYnV0ZXMmKTsKIH07CiAKK1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRH
TENvY29hOjpXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYShHcmFwaGljc0NvbnRleHRH
TEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQorICAgIDogR3JhcGhpY3NDb250ZXh0R0xDb2NvYShX
VEZNb3ZlKGF0dHJpYnV0ZXMpKQorICAgICwgbV93ZWJHTExheWVyKGNyZWF0ZVdlYkdMTGF5ZXIo
Y29udGV4dEF0dHJpYnV0ZXMoKSkpCit7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIERpc3BsYXlD
b25maWd1cmF0aW9uTW9uaXRvcjo6c2luZ2xldG9uKCkuYWRkQ2xpZW50KCp0aGlzKTsKKyNlbmRp
ZgorfQorCitXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6fldlYlByb2Nlc3NHcmFw
aGljc0NvbnRleHRHTENvY29hKCkKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgRGlzcGxheUNv
bmZpZ3VyYXRpb25Nb25pdG9yOjpzaW5nbGV0b24oKS5yZW1vdmVDbGllbnQoKnRoaXMpOworI2Vu
ZGlmCit9CisKIHZvaWQgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBhcmVG
b3JEaXNwbGF5KCkKIHsKICAgICBHcmFwaGljc0NvbnRleHRHTENvY29hOjpwcmVwYXJlRm9yRGlz
cGxheSgpOwpAQCAtNzgsNiArMTA0LDEzIEBAIHZvaWQgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4
dEdMQ29jb2E6OnByZXBhcmVGb3JEaXNwbGF5KCkKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TCiB9CiAKKyNpZiBQTEFURk9STShNQUMpCit2b2lkIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRl
eHRHTENvY29hOjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkKK3sKKyAgICB1cGRhdGVDb250ZXh0
T25EaXNwbGF5UmVjb25maWd1cmF0aW9uKCk7Cit9CisjZW5kaWYKKwogfQogCiBSZWZQdHI8R3Jh
cGhpY3NDb250ZXh0R0w+IGNyZWF0ZVdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTChjb25zdCBH
cmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25p
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5Q29u
ZmlndXJhdGlvbk1vbml0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxODRhZDg0M2YyNzY5ZDE3YjQyZGI0
MTkwYTQ1ZWZmZjgyODI3OWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmNwcApAQCAtMCww
ICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRp
c3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oIgorCisjaW5jbHVkZSA8d3RmL1RocmVhZEFzc2Vy
dGlvbnMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitEaXNwbGF5Q29uZmlndXJhdGlvbk1v
bml0b3I6OkNsaWVudDo6Q2xpZW50KCkgPSBkZWZhdWx0OworCitEaXNwbGF5Q29uZmlndXJhdGlv
bk1vbml0b3I6OkNsaWVudDo6fkNsaWVudCgpID0gZGVmYXVsdDsKKworRGlzcGxheUNvbmZpZ3Vy
YXRpb25Nb25pdG9yOjpEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IoKSA9IGRlZmF1bHQ7CisK
K0Rpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvcjo6fkRpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRv
cigpID0gZGVmYXVsdDsKKworRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yJiBEaXNwbGF5Q29u
ZmlndXJhdGlvbk1vbml0b3I6OnNpbmdsZXRvbigpCit7CisgICAgYXNzZXJ0SXNNYWluVGhyZWFk
KCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRv
cj4gaW5zdGFuY2U7CisgICAgcmV0dXJuIGluc3RhbmNlOworfQorCit2b2lkIERpc3BsYXlDb25m
aWd1cmF0aW9uTW9uaXRvcjo6YWRkQ2xpZW50KENsaWVudCYgY2xpZW50KQoreworICAgIEFTU0VS
VCghbV9jbGllbnRzLmNvbnRhaW5zKCZjbGllbnQpKTsKKyAgICBtX2NsaWVudHMuYXBwZW5kKCZj
bGllbnQpOworfQorCit2b2lkIERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvcjo6cmVtb3ZlQ2xp
ZW50KENsaWVudCYgY2xpZW50KQoreworICAgIEFTU0VSVChtX2NsaWVudHMuY29udGFpbnMoJmNs
aWVudCkpOworICAgIG1fY2xpZW50cy5yZW1vdmVGaXJzdCgmY2xpZW50KTsKK30KKwordm9pZCBE
aXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3I6OmRpc3BhdGNoRGlzcGxheVdhc1JlY29uZmlndXJl
ZChDR0Rpc3BsYXlDaGFuZ2VTdW1tYXJ5RmxhZ3MgZmxhZ3MpCit7CisgICAgaWYgKCEoZmxhZ3Mg
JiBrQ0dEaXNwbGF5U2V0TW9kZUZsYWcpKQorICAgICAgICByZXR1cm47CisgICAgZm9yIChhdXRv
KiBjbGllbnQgOiBjb3B5VG9WZWN0b3IobV9jbGllbnRzKSkKKyAgICAgICAgY2xpZW50LT5kaXNw
bGF5V2FzUmVjb25maWd1cmVkKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5Q29uZmlndXJhdGlvbk1v
bml0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lZGM1NjRlNDZmYmIyOTlhNDJhNDZkOGJkZWU1YWJkZTNhMTZl
NWY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0Rpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR0Rpc3BsYXlD
b25maWd1cmF0aW9uLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpc3BsYXlD
b25maWd1cmF0aW9uTW9uaXRvciB7CitwdWJsaWM6CisgICAgfkRpc3BsYXlDb25maWd1cmF0aW9u
TW9uaXRvcigpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBEaXNwbGF5Q29uZmlndXJhdGlv
bk1vbml0b3ImIHNpbmdsZXRvbigpOworCisgICAgY2xhc3MgQ2xpZW50IHsKKyAgICBwdWJsaWM6
CisgICAgICAgIENsaWVudCgpOworICAgICAgICB2aXJ0dWFsIH5DbGllbnQoKTsKKyAgICAgICAg
dmlydHVhbCB2b2lkIGRpc3BsYXlXYXNSZWNvbmZpZ3VyZWQoKSA9IDA7CisgICAgfTsKKyAgICB2
b2lkIGFkZENsaWVudChDbGllbnQmKTsKKyAgICB2b2lkIHJlbW92ZUNsaWVudChDbGllbnQmKTsK
KworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGF0Y2hEaXNwbGF5V2FzUmVjb25maWd1cmVk
KENHRGlzcGxheUNoYW5nZVN1bW1hcnlGbGFncyk7Citwcml2YXRlOgorICAgIERpc3BsYXlDb25m
aWd1cmF0aW9uTW9uaXRvcigpOworICAgIFZlY3RvcjxDbGllbnQqPiBtX2NsaWVudHM7CisgICAg
ZnJpZW5kIE5ldmVyRGVzdHJveWVkPERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvcj47Cit9Owor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dy
YXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmNwcAppbmRl
eCAyZjc3NDUyYTEzNjQyODgyM2Y2OTliYzI0MTM5YTVkMTgyZDZjMmEyLi4xMmQ0YjNhZmYyOTFk
ODIwMTA3NzRkN2U2ZDRmNDg5NzA3MjRjMmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0xNYW5hZ2VyLmNwcApAQCAtNDMsMjMgKzQzLDYgQEAgR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xNYW5hZ2VyJiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJl
ZE1hbmFnZXIoKQogICAgIHJldHVybiBzX21hbmFnZXI7CiB9CiAKLSNpZiBQTEFURk9STShNQUMp
Ci12b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6ZGlzcGxheVdhc1JlY29uZmln
dXJlZChDR0RpcmVjdERpc3BsYXlJRCwgQ0dEaXNwbGF5Q2hhbmdlU3VtbWFyeUZsYWdzIGZsYWdz
LCB2b2lkKikKLXsKLSAgICBMT0coV2ViR0wsICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFn
ZXI6OmRpc3BsYXlXYXNSZWNvbmZpZ3VyZWQiKTsKLSAgICBpZiAoZmxhZ3MgJiBrQ0dEaXNwbGF5
U2V0TW9kZUZsYWcpCi0gICAgICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6c2hh
cmVkTWFuYWdlcigpLmRpc3BsYXlXYXNSZWNvbmZpZ3VyZWQoKTsKLX0KLSNlbmRpZgotCi0jaWYg
UExBVEZPUk0oQ09DT0EpCi12b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6ZGlz
cGxheVdhc1JlY29uZmlndXJlZCgpCi17Ci0gICAgZm9yIChjb25zdCBhdXRvJiBjb250ZXh0IDog
bV9jb250ZXh0cykKLSAgICAgICAgY29udGV4dC0+ZGlzcGxheVdhc1JlY29uZmlndXJlZCgpOwot
fQotI2VuZGlmCi0KIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjphZGRDb250
ZXh0KEdyYXBoaWNzQ29udGV4dEdMVHlwZSogY29udGV4dCkKIHsKICAgICBBU1NFUlQoY29udGV4
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmgKaW5kZXgg
ZmI1YzI4Yzk4ZDE4ZDg5OTUzOGQ3OTZlYmMyMTg4YTdmNGM1OTQ1MC4uZjA3OTA5YzgxYjk0ZTZk
ZjNkYjRhMmYxNGNiNzg0Y2EzMzEyMzI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRl
eHRHTE9wZW5HTE1hbmFnZXIuaApAQCAtMjgsMTAgKzI4LDYgQEAKICNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAotI2lmIFBMQVRGT1JNKE1BQykKLSNp
bmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dEaXNwbGF5Q29uZmlndXJhdGlvbi5oPgotI2VuZGlmCi0K
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgdW5zaWduZWQgTWF4Q29udGV4dHMgPSAxNjsK
QEAgLTU5LDEzICs1NSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlY3ljbGVDb250ZXh0SWZOZWNl
c3NhcnkoKTsKICAgICBib29sIGhhc1Rvb01hbnlDb250ZXh0cygpIGNvbnN0IHsgcmV0dXJuIG1f
Y29udGV4dHMuc2l6ZSgpID49IE1heENvbnRleHRzOyB9CiAgICAgCi0jaWYgUExBVEZPUk0oTUFD
KQotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGRpc3BsYXlXYXNSZWNvbmZpZ3VyZWQo
Q0dEaXJlY3REaXNwbGF5SUQsIENHRGlzcGxheUNoYW5nZVN1bW1hcnlGbGFncywgdm9pZCopOwot
I2VuZGlmCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdm9pZCBkaXNwbGF5V2FzUmVjb25maWd1
cmVkKCk7Ci0jZW5kaWYKLSAgICAKIHByaXZhdGU6CiAgICAgR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xNYW5hZ2VyKCkgPSBkZWZhdWx0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAppbmRleCA4
NGIyZTY4NDVkMDc0OWNkYWExZTc4Yjg1MzBkOGY4ZWE1YTBlMDVkLi4wNzMzZjNjMTc4NmUxYzU3
MGJjOWUzYTRmNGQxYjhlNzI3ZDE3YzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKQEAg
LTEwNyw3ICsxMDcsNyBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpkaXNwbGF5V2Fz
UmVjb25maWd1cmVkKCkKICAgICBhc3NlcnRJc01haW5SdW5Mb29wKCk7CiAgICAgcmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xTdHJlYW1Xb3JrUXVldWUoKS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9
IFJlZiB7ICp0aGlzIH1dKCkgewogICAgICAgICBhc3NlcnRJc0N1cnJlbnQocHJvdGVjdGVkVGhp
cy0+bV9zdHJlYW1UaHJlYWQpOwotICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX2NvbnRleHQtPmRp
c3BsYXlXYXNSZWNvbmZpZ3VyZWQoKTsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9jb250ZXh0
LT51cGRhdGVDb250ZXh0T25EaXNwbGF5UmVjb25maWd1cmF0aW9uKCk7CiAgICAgfSk7CiB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0Nv
Y29hLm1tCmluZGV4IGRiZjg0OWRjNmNiMTIyZjAzYjIxYTE3YTBlZmUwYWQ5MDlkOTMyY2EuLjFl
YjkwZWYzNmViNTcyMDIzNjIwZmFhZjY4MTIzMTEyMmUwNjAxNmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtMTM5LDcgKzEz
OSw3IEBACiAjaW1wb3J0ICJBcHBLaXRTUEkuaCIKICNpbXBvcnQgIldLQWNjZXNzaWJpbGl0eVdl
YlBhZ2VPYmplY3RNYWMuaCIKICNpbXBvcnQgIldlYlN3aXRjaGluZ0dQVUNsaWVudC5oIgotI2lt
cG9ydCA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaD4KKyNpbXBvcnQg
PFdlYkNvcmUvRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1Njcm9sbGJhclRoZW1lTWFjLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NmL0NvcmVUZXh0U1BJLmg+
CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJLmg+CkBAIC05NzEsOSArOTcxLDkg
QEAgdm9pZCBXZWJQcm9jZXNzOjpzY3JvbGxlclN0eWxlUHJlZmVyZW5jZUNoYW5nZWQoYm9vbCB1
c2VPdmVybGF5U2Nyb2xsYmFycykKICAgICBbTlNTY3JvbGxlckltcFBhaXIgX3VwZGF0ZUFsbFNj
cm9sbGVySW1wUGFpcnNGb3JOZXdSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGU6c3R5bGVdOwogfQog
Ci12b2lkIFdlYlByb2Nlc3M6OmRpc3BsYXlDb25maWd1cmF0aW9uQ2hhbmdlZChDR0RpcmVjdERp
c3BsYXlJRCBkaXNwbGF5SUQsIENHRGlzcGxheUNoYW5nZVN1bW1hcnlGbGFncyBmbGFncykKK3Zv
aWQgV2ViUHJvY2Vzczo6ZGlzcGxheUNvbmZpZ3VyYXRpb25DaGFuZ2VkKENHRGlyZWN0RGlzcGxh
eUlELCBDR0Rpc3BsYXlDaGFuZ2VTdW1tYXJ5RmxhZ3MgZmxhZ3MpCiB7Ci0gICAgR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKGRpc3BsYXlJRCwg
ZmxhZ3MsIG51bGxwdHIpOworICAgIERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvcjo6c2luZ2xl
dG9uKCkuZGlzcGF0Y2hEaXNwbGF5V2FzUmVjb25maWd1cmVkKGZsYWdzKTsKIH0KICNlbmRpZgog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggOWIwNjNkNDYxMDhiZWVjYjc5YTIyZGM4ZTFhODNkMzlhYzczZTIyYi4uNWE3M2Jh
MTc4N2M2MGMyMGE4MWViYjlkNjg4ODZlOGZmNWI2MTM3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDIxLTEyLTAxICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgR3JhcGhpY3NDb250ZXh0R0xBTkdMRSBzaG91bGQgbm90IGhhdmUgQ29jb2EgTWFjIHNw
ZWNpZmljIGRpc3BsYXkgcmVjb25maWd1cmF0aW9uIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzY5NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSB0aGUgdGVzdCB0byBhY2NvdW50IGZv
ciB0aGUgYmVoYXZpb3IgY2hhbmdlCisgICAgICAgIHdoZXJlIHRoZSBzaW11bGF0ZWQgY29udGV4
dCBjaGFuZ2UgZXZlbnQgaXMgZGVsaXZlcmVkCisgICAgICAgIG9ubHkgdG8gdGhlIGNvbnRleHQg
YmVpbmcgdGVzdGVkLCBub3QgdG8gYWxsIGNvbnRleHRzLgorCisgICAgICAgICogZmFzdC9jYW52
YXMvd2ViZ2wvd2ViZ2xjb250ZXh0Y2hhbmdlZGV2ZW50Lmh0bWw6CisKIDIwMjEtMTEtMzAgIFJv
YmVydCBKZW5uZXIgIDxKZW5uZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFQkFTRUxJTkUgWyBN
b250ZXJleSBdZmFzdC9jc3MvY29udGludWF0aW9uQ3Jhc2guaHRtbCAobGF5b3V0LXRlc3QpIGlz
IGEgY29uc3RhbnQgdGV4dCBmYWlsdXJlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC93ZWJnbGNvbnRleHRjaGFuZ2VkZXZlbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL3dlYmdsY29udGV4dGNoYW5nZWRldmVudC5odG1sCmluZGV4IDY1ZjNj
ZTFmNjIyODNmMGMyYTlmODZjZmI1OTBiYmI2NTM5MmMzZmQuLjBlZTA0MTAzYjk2ZWJmNjE5YzJj
YWU2NWFhMmE4YzQwODU3MTljMzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L3dlYmdsL3dlYmdsY29udGV4dGNoYW5nZWRldmVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL3dlYmdsY29udGV4dGNoYW5nZWRldmVudC5odG1sCkBAIC0zOSwxMCAr
MzksMTIgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JV
RkZFUl9CSVQpOwogICAgIH0pOwogCi0gICAgbGV0IGdsID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigiY2FudmFzIikuZ2V0Q29udGV4dCgid2ViZ2wiKTsKLSAgICBpZiAod2luZG93LmludGVybmFs
cykKLSAgICAgICAgd2luZG93LmludGVybmFscy5zaW11bGF0ZUV2ZW50Rm9yV2ViR0xDb250ZXh0
KCJDb250ZXh0Q2hhbmdlIiwgZ2wpOwotICAgIGVsc2UKKyAgICBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCJjYW52YXMiKS5mb3JFYWNoKChjKSA9PiB7CisgICAgICAgIGxldCBnbCA9IGMuZ2V0
Q29udGV4dCgid2ViZ2wiKTsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAg
ICAgICB3aW5kb3cuaW50ZXJuYWxzLnNpbXVsYXRlRXZlbnRGb3JXZWJHTENvbnRleHQoIkNvbnRl
eHRDaGFuZ2UiLCBnbCk7CisgICAgfSk7CisgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQogICAg
ICAgICBsb2coIlRvIHJ1biB0aGUgdGVzdCwgdHJpZ2dlciBhIEdQVSBjaGFuZ2UgbWFudWFsbHku
Iik7CiB9CiAK
</data>
<flag name="commit-queue"
          id="470784"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445566</attachid>
            <date>2021-12-01 05:47:15 -0800</date>
            <delta_ts>2021-12-02 00:50:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233695-20211201154713.patch</filename>
            <type>text/plain</type>
            <size>34100</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGJiNmQyZjJmYmNkN2I3
ODU1MzIxY2U1YjgwMWQ1YzJmYWNiMzhmNC4uZTczZWI2ZmI2MGQzN2NlYjcyMmNlZThmYjcyNTVk
OWU3YmRkZmI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTEyLTAxICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgR3JhcGhpY3NDb250
ZXh0R0xBTkdMRSBzaG91bGQgbm90IGhhdmUgQ29jb2EgTWFjIHNwZWNpZmljIGRpc3BsYXkgcmVj
b25maWd1cmF0aW9uIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMzY5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1vdmUgY29kZSB0byBvYnNlcnZlIE1hYyBkaXNwbGF5IHJlY29uZmlndXJhdGlv
bgorICAgICAgICBhd2F5IGZyb20gR3JhcGhpY3NDb250ZXh0R0xBTkdMRSB0byBHcmFwaGljc0Nv
bnRleHRHTENvY29hLgorICAgICAgICBBcHBseSB0aGUgZGlzcGxheSByZWNvbmZpZ3VyYXRpb24g
bGlzdGVuZXIgb25seSBmb3IKKyAgICAgICAgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29j
b2EsIGl0IGlzIG5vdCBuZWVkZWQgZm9yIHRoZQorICAgICAgICBHUFUgcHJvY2VzcyBjb250ZXh0
cy4KKworICAgICAgICBNb3ZlIHRoZSBsaXN0ZW5lciBub3RpZmljYXRpb24gY29kZSBhd2F5IGZy
b20gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyCisgICAgICAgIGludG8gaXRzIG93biBj
bGFzcy4gVGhpcyB3YXkgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyIGRvZXMgbm90IG5l
ZWQKKyAgICAgICAgdG8ga25vdyBNYWMgc3BlY2lmaWMgaW50ZXJmYWNlcy4gTGF0ZXIgb24sIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlciBjYW4KKyAgICAgICAgYmUgcmVtb3ZlZCBhbHRv
Z2V0aGVyLgorCisgICAgICAgIENoYW5nZXMgYmVoYXZpb3Igc28gdGhhdCBzaW11bGF0ZUV2ZW50
Rm9yVGVzdGluZyBpbnZva2VzIHRoZSBzaW11bGF0ZWQgY29udGV4dAorICAgICAgICBjaGFuZ2Ug
b25seSBmb3IgdGhlIGNvbnRleHQgYmVpbmcgdGVzdGVkLiBUaGlzIHNpbXBsaWZpZXMgdGhlIGlt
cGxlbWVudGF0aW9uLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgcmVmYWN0b3IuCisKKyAgICAg
ICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlczo6ZWZmZWN0aXZlUG93ZXJQcmVmZXJl
bmNlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0Nv
bnRleHRHTEFOR0xFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5H
TEU6OnNpbXVsYXRlRXZlbnRGb3JUZXN0aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06CisgICAgICAgIChXZWJD
b3JlOjppbml0aWFsaXplRUdMRGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRHTENvY29hOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTENvY29hOjp+R3JhcGhpY3NDb250ZXh0R0xDb2NvYSk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnNldENvbnRleHRWaXNp
YmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnVwZGF0
ZUNvbnRleHRPbkRpc3BsYXlSZWNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0R0xBTkdMRTo6c2V0Q29udGV4dFZpc2liaWxpdHkpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6ZGlzcGxheVdhc1JlY29uZmln
dXJlZCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJv
Y2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0Rpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5H
TE1hbmFnZXIuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRv
cjo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDb25maWd1cmF0aW9uTW9u
aXRvcjo6YWRkQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDb25maWd1cmF0aW9u
TW9uaXRvcjo6cmVtb3ZlQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDb25maWd1
cmF0aW9uTW9uaXRvcjo6ZGlzcGF0Y2hEaXNwbGF5V2FzUmVjb25maWd1cmVkKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6ZGlzcGxheVdhc1JlY29uZmlndXJl
ZCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMTWFuYWdlci5oOgorCiAyMDIxLTExLTMwICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFBhc3MgdGhlIHRpbWVzdGFtcCBmb3Ig
c2Nyb2xsaW5nIHRocmVhZCBhbmltYXRpb25zIHRocm91Z2ggYWxsIHRoZSBzZXJ2aWNlU2Nyb2xs
QW5pbWF0aW9uKCkgY2FsbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODFlNDkzMGIzM2Q1NWNkNWJkM2I1Y2FhY2Yx
N2JlZTA5N2YxZDc4YS4uN2MzYWQ3NzAzMWRiYTdhYmQ1MWUyMTZjNWQ4NzkxYTdlZmYzNmI0NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMS0xMi0wMSAgS2ltbW8gS2lubnVuZW4gIDxr
a2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIEdyYXBoaWNzQ29udGV4dEdMQU5HTEUgc2hv
dWxkIG5vdCBoYXZlIENvY29hIE1hYyBzcGVjaWZpYyBkaXNwbGF5IHJlY29uZmlndXJhdGlvbiBj
b2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM2
OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcmV2
aW91cyBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkKKyAg
ICAgICAgd2FzIHJlbmFtZWQgdG8gdXBkYXRlQ29udGV4dE9uRGlzcGxheVJlY29uZmlndXJhdGlv
bigpLgorICAgICAgICBUaGUgZGlzcGxheVdhc1JlY29uZmlndXJlZCgpIHdhcyB0YWtlbiBpbnRv
IHVzZSBpbiB0aGUgbm90aWZpY2F0aW9uIGludGVyZmFjZQorICAgICAgICBEaXNwbGF5Q29uZmln
dXJhdGlvbk1vbml0b3I6OkNsaWVudDo6ZGlzcGxheVdhc1JlY29uZmlndXJlZCgpLgorCisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpkaXNwbGF5V2FzUmVjb25m
aWd1cmVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGlzcGxheUNvbmZpZ3VyYXRpb25DaGFuZ2Vk
KToKKwogMjAyMS0xMS0zMCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAg
ICAgICAgIHJlcGxhY2Utd2Via2l0LWFkZGl0aW9ucy1pbmNsdWRlcyBzaG91bGQgYXNzdW1lIHVu
a25vd24gb3IgZW1wdHkgZGVwbG95bWVudCB0YXJnZXRzIGFyZSBzdXBwb3J0ZWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1NYWMuY21ha2UKaW5kZXggMTVkMjcxN2I3MjM1ODJjN2E3ZmU5OTJmMDU1ZmJlM2U3N2Rk
ZmNlNi4uYWZjOTZhMGI2MTIwN2E0ZGE3MzYxYzUxMzI0ZGY1Mjc2MzFlMGM5MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1NYWMuY21ha2UKQEAgLTM0Myw2ICszNDMsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3Jl
X1NPVVJDRVMKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db2xvck1hYy5tbQogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbQorICAg
IHBsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuY3BwCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zsb2F0UG9pbnRNYWMubW0KICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRmxvYXRTaXplTWFjLm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCkBAIC02NzEsNiArNjcyLDcgQEAgbGlzdChBUFBFTkQg
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oCiAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
Q29sb3JNYWMuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5Q29uZmlndXJhdGlv
bk1vbml0b3IuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1E
YXRhLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NDaGVja3NNYWMuaAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL21hYy9TY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0LmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDNmNWI2MmYzNzYzZmNmNGIyYjg0MDY2MmVkZmIz
NTFmYmExMzdhZjYuLmM3OWZjNGQ3OGM2MjEwNTE4OTYxZWYxYzY0MTMyMzdhNWFjNzQ0MGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtNDEyLDYgKzQxMiw3IEBAIHBsYXRmb3JtL2dyYXBo
aWNzL2lvcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2lv
cy9JY29uSU9TLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29sb3JNYWMubW0KIHBsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbQorcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0Rpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5jcHAKIHBsYXRmb3JtL2dy
YXBoaWNzL21hYy9GbG9hdFBvaW50TWFjLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRmxvYXRT
aXplTWFjLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA2MGU0Mjg4Mzk3NTY4ZDQ1MGQxMmYxODViOGY2ZmVhNjA2NjRlMTc4Li45ODA2NDUx
YzNkYTI4MTYwNGU4MzJiMGE0YjVkNzZlZjdkYmJkNTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzc0LDYgKzIzNzQsNyBA
QAogCQk3QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3NDaGVja3NNYWMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQjY4MEI4MjVCQTFC
RTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRERBMzFGMjc0RkEwMjEwMDM4NjU5RSAvKiBH
cmFwaGljc0NvbnRleHRHTENvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QkREQTMxRDI3NEY5REE1MDAzODY1OUUgLyogR3JhcGhpY3NDb250ZXh0
R0xDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTdCRTc0MjczODFGQTkwNkZCQjRGMEYyQyAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwQzRDMDJCRUQ4
OTM2RjgxOEUyRjk5IC8qIEpTU1ZHR3JhcGhpY3NFbGVtZW50LmggKi87IH07CisJCTdCRkY1OUY0
Mjc1NzcyNjcwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRkY1OUVGMjc1NzcxRTgw
MDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzAyOUM2RTI0OTNDOEY4MDAyNjgy
MDQgLyogQ29sb3JUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0MwMjlDNkQyNDkzQzhGODAwMjY4MjA0IC8qIENvbG9yVHlwZXMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzE4NDNGRTFDOEI3
MjgzMDAyRUI5NzMgLyogQXV0b2ZpbGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdDMTg0M0ZDMUM4QjcyODMwMDJFQjk3MyAvKiBBdXRvZmlsbC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDMTkzQkJC
MUY1RTBFRUQwMDg4RjNFNiAvKiBDYW52YXNEaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMTkzQkI2MUY1RTBFQjkwMDg4RjNFNiAvKiBD
YW52YXNEaXJlY3Rpb24uaCAqLzsgfTsKQEAgLTExMzc1LDYgKzExMzc2LDggQEAKIAkJN0JEREEz
MUMyNzRGOURBNDAwMzg2NTlFIC8qIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENvY29hLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkREQTMxRDI3NEY5REE1MDAzODY1OUUg
LyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBHcmFwaGljc0NvbnRleHRHTENvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdCRTcyNjVCMjU3NjNCOEQwMEU4NUQ5OCAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCRkY1OUVGMjc1Nzcx
RTgwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuaDsgZmls
ZUVuY29kaW5nID0gNDsgcGF0aCA9IERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QkZGNTlGMTI3NTc3MUU4MDA3NzNEMzkgLyogRGlz
cGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdDMDExRjNEMjRGQUQzNjAwMDVCRUYxMCAvKiBTZXR0aW5ncy5jcHAu
ZXJiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFNldHRpbmdzLmNwcC5lcmI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdDMDExRjNFMjRGQUQzNjAwMDVCRUYxMCAvKiBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmNw
cC5lcmIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5jcHAuZXJiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QzAxMUYzRjI0RkFEMzYwMDA1QkVGMTAgLyogSW50ZXJuYWxT
ZXR0aW5nc0dlbmVyYXRlZC5pZGwuZXJiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQu
aWRsLmVyYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4NDI0LDYgKzI4NDI3LDgg
QEAKIAkJCQlFREUzQTRGRjBDN0E0MzA2MDA5NTZBMzcgLyogQ29sb3JNYWMuaCAqLywKIAkJCQlC
Mjc1MzU0QTBCMDUzODE0MDAyQ0U2NEYgLyogQ29sb3JNYWMubW0gKi8sCiAJCQkJMzdDMjM4MjAx
MDk4Qzg0MjAwRUY5RjcyIC8qIENvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tICovLAor
CQkJCTdCRkY1OUYxMjc1NzcxRTgwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0
b3IuY3BwICovLAorCQkJCTdCRkY1OUVGMjc1NzcxRTgwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmln
dXJhdGlvbk1vbml0b3IuaCAqLywKIAkJCQlCMjc1MzU0QjBCMDUzODE0MDAyQ0U2NEYgLyogRmxv
YXRQb2ludE1hYy5tbSAqLywKIAkJCQlCMjc1MzU0RDBCMDUzODE0MDAyQ0U2NEYgLyogRmxvYXRT
aXplTWFjLm1tICovLAogCQkJCUIyQUZGQzc1MEQwMEE1QzEwMDMwMDc0RCAvKiBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhLmNwcCAqLywKQEAgLTMzODY0LDYgKzMzODY5LDcgQEAKIAkJCQlGNDdBMDlE
MTIwQTkzQTk3MDAyNDBGQUUgLyogRGlzYWJsZWRBZGFwdGF0aW9ucy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJN0VEQUFGQzkxOUEyQ0NEQzAwMzRERkQxIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDdCQjFFNzAyNzE3NkNEOTAwMURGMjg5IC8qIERpc3BsYXlD
YXB0dXJlU291cmNlQ29jb2EuaCBpbiBIZWFkZXJzICovLAorCQkJCTdCRkY1OUY0Mjc1NzcyNjcw
MDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGRTVGQkQzMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTVBRDA5NDAyNDA4OTY0MDAwREU0RDJGIC8qIERpc3BsYXlMaXN0RHJhd2luZ0Nv
bnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1QUQwOTNFMjQwODk2MzUwMERFNEQyRiAvKiBE
aXNwbGF5TGlzdEltYWdlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0xBdHRy
aWJ1dGVzLmgKaW5kZXggYTBhZDc3YmE4ODRiNWIzMzE0NTllNmZmZGVlMjBmNzg1NjQ1NDRmMy4u
Y2I5OWZiMTYxN2RiYzZhYTk3MjkxYzg4MTlmODQ1Y2JkY2Y3ZmY1NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzLmgKQEAgLTY4LDYgKzY4LDEyIEBAIHN0cnVjdCBHcmFwaGljc0NvbnRleHRH
TEF0dHJpYnV0ZXMgewogI2lmIEVOQUJMRShXRUJYUikKICAgICBib29sIHhyQ29tcGF0aWJsZSB7
IGZhbHNlIH07CiAjZW5kaWYKKyAgICBQb3dlclByZWZlcmVuY2UgZWZmZWN0aXZlUG93ZXJQcmVm
ZXJlbmNlKCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmIChmb3JjZVJlcXVlc3RGb3JIaWdoUGVy
Zm9ybWFuY2VHUFUpCisgICAgICAgICAgICByZXR1cm4gUG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVy
Zm9ybWFuY2U7CisgICAgICAgIHJldHVybiBwb3dlclByZWZlcmVuY2U7CisgICAgfQogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3Jh
cGhpY3NDb250ZXh0R0xBTkdMRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAppbmRleCA2NDE1MTc5YjYyYjJjNDIz
MjJlNjA0OWUxMjU5YmRiZGQ4ZjYyMmM5Li41YzdkYmJjZTM3ZDdlNGZhNzBjMjkwODMxMzIyZDhj
NjBiZWNmMmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
bmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcApAQCAtMjkxNSw5
ICsyOTE1LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjp3YWl0QW5kVXBkYXRlT2xk
ZXN0RnJhbWUoKQogdm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpzaW11bGF0ZUV2ZW50Rm9y
VGVzdGluZyhTaW11bGF0ZWRFdmVudEZvclRlc3RpbmcgZXZlbnQpCiB7CiAgICAgaWYgKGV2ZW50
ID09IFNpbXVsYXRlZEV2ZW50Rm9yVGVzdGluZzo6Q29udGV4dENoYW5nZSkgewotI2lmIFBMQVRG
T1JNKENPQ09BKQotICAgICAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJl
ZE1hbmFnZXIoKS5kaXNwbGF5V2FzUmVjb25maWd1cmVkKCk7Ci0jZW5kaWYKKyAgICAgICAgZGlz
cGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIGlmIChldmVudCA9PSBTaW11bGF0ZWRFdmVudEZvclRlc3Rpbmc6OkdQVVN0YXR1c0Zh
aWx1cmUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Fu
Z2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaAppbmRleCA0ZTMwYmNiYzQ3NzQ1
YmI4YjQyMTUyN2JmZDM0OWJhZDY3N2JkMDY3Li40M2Q1ZDI5MGRkNjgyY2E1OTY1NjAxMTBhNjZh
NWE3ZGE4Zjg1MmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oCkBAIC0zOCw5ICsz
OCw2IEBACiAjaW5jbHVkZSAiSU9TdXJmYWNlLmgiCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1B
QykKLSNpbmNsdWRlICJTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0LmgiCi0jZW5kaWYK
IAogI2lmIFVTRShOSUNPU0lBKQogbmFtZXNwYWNlIE5pY29zaWEgewpAQCAtMzQ4LDcgKzM0NSw2
IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKEltYWdl
QnVmZmVyJikgZmluYWw7CiAgICAgc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZlcj4gcGFpbnRSZW5k
ZXJpbmdSZXN1bHRzVG9QaXhlbEJ1ZmZlcigpIGZpbmFsOwogICAgIHZvaWQgcGFpbnRDb21wb3Np
dGVkUmVzdWx0c1RvQ2FudmFzKEltYWdlQnVmZmVyJikgZmluYWw7Ci0gICAgdm9pZCBzZXRDb250
ZXh0VmlzaWJpbGl0eShib29sKSBmaW5hbDsKICAgICB2b2lkIHByZXBhcmVGb3JEaXNwbGF5KCkg
b3ZlcnJpZGU7CiAKICAgICB2b2lkIGZvcmNlQ29udGV4dExvc3QoKTsKQEAgLTM1Nyw5ICszNTMs
NiBAQCBwdWJsaWM6CiAgICAgc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZlcj4gcmVhZFJlbmRlcmlu
Z1Jlc3VsdHNGb3JQYWludGluZygpOwogICAgIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+IHJl
YWRDb21wb3NpdGVkUmVzdWx0c0ZvclBhaW50aW5nKCk7CiAKLSNpZiBQTEFURk9STShDT0NPQSkK
LSAgICB2b2lkIGRpc3BsYXlXYXNSZWNvbmZpZ3VyZWQoKTsKLSNlbmRpZgogICAgIHVuc2lnbmVk
IHRleHR1cmVTZWVkKEdDR0x1aW50IHRleHR1cmUpOwogCiAgICAgY29uc3RleHByIHN0YXRpYyBF
R0xOYXRpdmVEaXNwbGF5VHlwZSBkZWZhdWx0RGlzcGxheSA9IEVHTF9ERUZBVUxUX0RJU1BMQVk7
CkBAIC00NDQsMTAgKzQzNyw2IEBAIHByb3RlY3RlZDoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SU9T
dXJmYWNlPiBtX2Rpc3BsYXlCdWZmZXJCYWNraW5nOwogICAgIHZvaWQqIG1fZGlzcGxheUJ1ZmZl
clBidWZmZXIgeyBudWxscHRyIH07CiAjZW5kaWYKLSNpZiBQTEFURk9STShNQUMpCi0gICAgYm9v
bCBtX3N3aXRjaGVzR1BVT25EaXNwbGF5UmVjb25maWd1cmF0aW9uIHsgZmFsc2UgfTsKLSAgICBT
Y29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0IG1faGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVz
dDsKLSNlbmRpZgogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICBHQ0dMdWludCBt
X2NvbXBvc2l0b3JUZXh0dXJlIHsgMCB9OwogICAgIEdDR0x1aW50IG1faW50ZXJtZWRpYXRlVGV4
dHVyZSB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EuaAppbmRleCBlNDA5NWEyYjE5
ZTI0ZDFkYjgwOWMxODJmNjQzMmJkYzBjYjc4NmMyLi5hNjQ4ZmNkMmVjNGYwYjliNTFlMzAyMzY5
ZTAxMjQ5YjUyZDliNGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oCkBAIC0zNiw2
ICszNiwxMCBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHRHTENWQ29jb2E7CiB9CiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlICJTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1
ZXN0LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXRUJDT1JFX0VY
UE9SVCBHcmFwaGljc0NvbnRleHRHTENvY29hIDogcHVibGljIEdyYXBoaWNzQ29udGV4dEdMQU5H
TEUgewpAQCAtNjYsMTMgKzcwLDIxIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQogICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4gcGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFT
YW1wbGUoKSBmaW5hbDsKICNlbmRpZgorICAgIHZvaWQgc2V0Q29udGV4dFZpc2liaWxpdHkoYm9v
bCkgZmluYWw7CiAKKyNpZiBQTEFURk9STShNQUMpCisgICAgdm9pZCB1cGRhdGVDb250ZXh0T25E
aXNwbGF5UmVjb25maWd1cmF0aW9uKCk7CisjZW5kaWYKIHByb3RlY3RlZDoKICAgICBHcmFwaGlj
c0NvbnRleHRHTENvY29hKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmKTsK
ICAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKIAogI2lmIEVOQUJMRShWSURFTykKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hPiBtX2N2OworI2VuZGlmCisjaWYg
UExBVEZPUk0oTUFDKQorICAgIGJvb2wgbV9zd2l0Y2hlc0dQVU9uRGlzcGxheVJlY29uZmlndXJh
dGlvbiB7IGZhbHNlIH07CisgICAgU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdCBtX2hp
Z2hQZXJmb3JtYW5jZUdQVVJlcXVlc3Q7CiAjZW5kaWYKICAgICBmcmllbmQgY2xhc3MgR3JhcGhp
Y3NDb250ZXh0R0xDVkNvY29hOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCmlu
ZGV4IDAyOWNjM2ZhZTQ3Zjg3MDIzYzVjMzAyMjVlMDI1OWEwNDFmMGQ2NjkuLmE0YWVlM2RmYWIw
Zjc3YTJmZWM1YjVjZGZkY2ZiODJlNDBlNDExZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xD
b2NvYS5tbQpAQCAtMTUzLDcgKzE1Myw3IEBAIHN0YXRpYyBFR0xEaXNwbGF5IGluaXRpYWxpemVF
R0xEaXNwbGF5KGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0cnMpCiAgICAg
ICAgIGRpc3BsYXlBdHRyaWJ1dGVzLmFwcGVuZChFR0xfUExBVEZPUk1fQU5HTEVfVFlQRV9NRVRB
TF9BTkdMRSk7CiAgICAgICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgYXJlIGRlZmluZWQgZm9yIEVH
TF9BTkdMRV9wb3dlcl9wcmVmZXJlbmNlIGFzIEVHTENvbnRleHQgYXR0cmlidXRlcywKICAgICAg
ICAgLy8gYnV0IE1ldGFsIGJhY2tlbmQgdXNlcyBFR0xEaXNwbGF5IGF0dHJpYnV0ZXMuCi0gICAg
ICAgIGF1dG8gcG93ZXJQcmVmZXJlbmNlID0gYXR0cnMuZm9yY2VSZXF1ZXN0Rm9ySGlnaFBlcmZv
cm1hbmNlR1BVID8gR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzOjpQb3dlclByZWZlcmVuY2U6
OkhpZ2hQZXJmb3JtYW5jZSA6IGF0dHJzLnBvd2VyUHJlZmVyZW5jZTsKKyAgICAgICAgYXV0byBw
b3dlclByZWZlcmVuY2UgPSBhdHRycy5lZmZlY3RpdmVQb3dlclByZWZlcmVuY2UoKTsKICAgICAg
ICAgaWYgKHBvd2VyUHJlZmVyZW5jZSA9PSBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXM6OlBv
d2VyUHJlZmVyZW5jZTo6TG93UG93ZXIpIHsKICAgICAgICAgICAgIGRpc3BsYXlBdHRyaWJ1dGVz
LmFwcGVuZChFR0xfUE9XRVJfUFJFRkVSRU5DRV9BTkdMRSk7CiAgICAgICAgICAgICBkaXNwbGF5
QXR0cmlidXRlcy5hcHBlbmQoRUdMX0xPV19QT1dFUl9BTkdMRSk7CkBAIC0xOTQsNyArMTk0LDcg
QEAgc3RhdGljIGJvb2wgbmVlZHNFQUdMT25NYWMoKQogfQogI2VuZGlmCiAKLVJlZlB0cjxHcmFw
aGljc0NvbnRleHRHTENvY29hPiBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKK1JlZlB0cjxHcmFw
aGljc0NvbnRleHRHTENvY29hPiBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoR3JhcGhp
Y3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKIHsKICAgICBhdXRvIGNvbnRleHQg
PSBhZG9wdFJlZigqbmV3IEdyYXBoaWNzQ29udGV4dEdMQ29jb2EoV1RGTW92ZShhdHRyaWJ1dGVz
KSkpOwogICAgIGlmICghY29udGV4dC0+aXNWYWxpZCgpKQpAQCAtMjAyLDYgKzIwMiwxOCBAQCBS
ZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xDb2NvYT4gR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y3Jl
YXRlKFdlYkNvcmU6OkdyYXBoaWNzQwogICAgIHJldHVybiBjb250ZXh0OwogfQogCitHcmFwaGlj
c0NvbnRleHRHTENvY29hOjpHcmFwaGljc0NvbnRleHRHTENvY29hKEdyYXBoaWNzQ29udGV4dEdM
QXR0cmlidXRlcyYmIGNyZWF0aW9uQXR0cmlidXRlcykKKyAgICA6IEdyYXBoaWNzQ29udGV4dEdM
QU5HTEUoV1RGTW92ZShjcmVhdGlvbkF0dHJpYnV0ZXMpKQoreworICAgIGlmICghaXNWYWxpZCgp
KQorICAgICAgICByZXR1cm47CisjaWYgUExBVEZPUk0oTUFDKQorICAgIGF1dG8gYXR0cmlidXRl
cyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisgICAgaWYgKCFhdHRyaWJ1dGVzLnVzZU1ldGFsICYm
IGF0dHJpYnV0ZXMuZWZmZWN0aXZlUG93ZXJQcmVmZXJlbmNlKCkgPT0gR3JhcGhpY3NDb250ZXh0
R0xQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZSkKKyAgICAgICAgbV9zd2l0Y2hlc0dQ
VU9uRGlzcGxheVJlY29uZmlndXJhdGlvbiA9IHRydWU7CisjZW5kaWYKK30KKwogR3JhcGhpY3ND
b250ZXh0R0xDb2NvYTo6fkdyYXBoaWNzQ29udGV4dEdMQ29jb2EoKSA9IGRlZmF1bHQ7CiAKIElP
U3VyZmFjZSogR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6ZGlzcGxheUJ1ZmZlcigpCkBAIC0yMTQs
MTEgKzIyNiw2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6bWFya0Rpc3BsYXlCdWZm
ZXJJblVzZSgpCiAgICAgcmV0dXJuIG1fc3dhcENoYWluLm1hcmtEaXNwbGF5QnVmZmVySW5Vc2Uo
KTsKIH0KIAotR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYShX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQotICAgIDog
R3JhcGhpY3NDb250ZXh0R0xBTkdMRShXVEZNb3ZlKGF0dHJpYnV0ZXMpKQotewotfQotCiAvLyBG
SVhNRTogQmVsb3cgaXMgZnVuY3Rpb25hbGl0eSB0aGF0IHNob3VsZCBiZSBtb3ZlZCB0byBHcmFw
aGljc0NvbnRleHRHTENvY29hIHRvIHNpbXBsaWZ5IHRoZSBiYXNlIGNsYXNzLgogCiBHcmFwaGlj
c0NvbnRleHRHTEFOR0xFOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFKEdyYXBoaWNzQ29udGV4dEdM
QXR0cmlidXRlcyBhdHRycykKQEAgLTI1NSwxNCArMjYyLDEyIEBAIEdyYXBoaWNzQ29udGV4dEdM
QU5HTEU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVz
IGF0dHJzCiAgICAgICAgIC8vIGRpc3BsYXkgcmVjb25maWd1cmF0aW9uIGNhbGxiYWNrLiBVcG9u
IHRoaXMsIHdlIHVwZGF0ZSB0aGUgQ0dMIGNvbnRleHRzIGluc2lkZSBBTkdMRS4KICAgICAgICAg
Y29uc3QgY2hhciAqZGlzcGxheUV4dGVuc2lvbnMgPSBFR0xfUXVlcnlTdHJpbmcobV9kaXNwbGF5
T2JqLCBFR0xfRVhURU5TSU9OUyk7CiAgICAgICAgIGJvb2wgc3VwcG9ydHNQb3dlclByZWZlcmVu
Y2UgPSBzdHJzdHIoZGlzcGxheUV4dGVuc2lvbnMsICJFR0xfQU5HTEVfcG93ZXJfcHJlZmVyZW5j
ZSIpOwotICAgICAgICBpZiAoc3VwcG9ydHNQb3dlclByZWZlcmVuY2UpIHsKLSAgICAgICAgICAg
IG1fc3dpdGNoZXNHUFVPbkRpc3BsYXlSZWNvbmZpZ3VyYXRpb24gPSBhdHRycy5wb3dlclByZWZl
cmVuY2UgPT0gR3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5j
ZQotICAgICAgICAgICAgICAgIHx8IGF0dHJzLmZvcmNlUmVxdWVzdEZvckhpZ2hQZXJmb3JtYW5j
ZUdQVTsKLSAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKCFzdXBwb3J0c1Bvd2VyUHJlZmVy
ZW5jZSkgeworICAgICAgICAgICAgYXR0cnMuZm9yY2VSZXF1ZXN0Rm9ySGlnaFBlcmZvcm1hbmNl
R1BVID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAoYXR0cnMucG93ZXJQcmVmZXJlbmNlID09IEdy
YXBoaWNzQ29udGV4dEdMUG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVyZm9ybWFuY2UpIHsKICAgICAg
ICAgICAgICAgICBhdHRycy5wb3dlclByZWZlcmVuY2UgPSBHcmFwaGljc0NvbnRleHRHTFBvd2Vy
UHJlZmVyZW5jZTo6RGVmYXVsdDsKLSAgICAgICAgICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRl
cyhhdHRycyk7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRl
cyhhdHRycyk7CiAgICAgICAgIH0KICAgICB9CiAjZW5kaWYKQEAgLTUwNiw3ICs1MTEsNyBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OmNoZWNrR1BVU3RhdHVzKCkKICAgICByZXN0YXJ0
U3RhdHVzID0gMDsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpzZXRDb250ZXh0
VmlzaWJpbGl0eShib29sIGlzVmlzaWJsZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6
c2V0Q29udGV4dFZpc2liaWxpdHkoYm9vbCBpc1Zpc2libGUpCiB7CiAjaWYgUExBVEZPUk0oTUFD
KQogICAgIGlmICghbV9zd2l0Y2hlc0dQVU9uRGlzcGxheVJlY29uZmlndXJhdGlvbikKQEAgLTUy
MCwxNCArNTI1LDE0IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6c2V0Q29udGV4dFZp
c2liaWxpdHkoYm9vbCBpc1Zpc2libGUpCiAjZW5kaWYKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRl
eHRHTEFOR0xFOjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkKLXsKICNpZiBQTEFURk9STShNQUMp
Cit2b2lkIEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnVwZGF0ZUNvbnRleHRPbkRpc3BsYXlSZWNv
bmZpZ3VyYXRpb24oKQorewogICAgIGlmIChtX3N3aXRjaGVzR1BVT25EaXNwbGF5UmVjb25maWd1
cmF0aW9uKQogICAgICAgICBFR0xfSGFuZGxlR1BVU3dpdGNoQU5HTEUobV9kaXNwbGF5T2JqKTsK
LSNlbmRpZgogICAgIGRpc3BhdGNoQ29udGV4dENoYW5nZWROb3RpZmljYXRpb24oKTsKIH0KKyNl
bmRpZgogCiBib29sIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnJlc2hhcGVEaXNwbGF5QnVmZmVy
QmFja2luZygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENv
Y29hLm1tCmluZGV4IDNlZmIyMzhhOTliOWU5ZTUxN2NkMjZiZTdiNTM1Nzk4Yzg5ZjQ3MjUuLjI1
NDI2MjMwZGZlZGFkMmM1ZWI5MTA0MjRhMDhhNzJlMzcxN2IyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRl
eHRHTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tCkBAIC0zMiw2ICszMiwxMCBAQAog
I2ltcG9ydCAiV2ViR0xMYXllci5oIgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMu
aD4KIAorI2lmIFBMQVRGT1JNKE1BQykKKyNpbXBvcnQgIkRpc3BsYXlDb25maWd1cmF0aW9uTW9u
aXRvci5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSB7CiAKQEAg
LTQ4LDI0ICs1Miw0NiBAQCBzdGF0aWMgUmV0YWluUHRyPFdlYkdMTGF5ZXI+IGNyZWF0ZVdlYkdM
TGF5ZXIoY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJgogfQogCiAvLyBHcmFwaGlj
c0NvbnRleHRHTCB0eXBlIHRoYXQgaXMgdXNlZCB3aGVuIFdlYkdMIGlzIHJ1biBpbi1wcm9jZXNz
IGluIFdlYkNvbnRlbnQgcHJvY2Vzcy4KLWNsYXNzIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRH
TENvY29hIGZpbmFsIDogcHVibGljIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EgeworY2xhc3MgV2Vi
UHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EgZmluYWwgOiBwdWJsaWMgR3JhcGhpY3NDb250
ZXh0R0xDb2NvYQorI2lmIFBMQVRGT1JNKE1BQykKKyAgICAsIHByaXZhdGUgRGlzcGxheUNvbmZp
Z3VyYXRpb25Nb25pdG9yOjpDbGllbnQKKyNlbmRpZgorCit7CiBwdWJsaWM6Ci0gICAgfldlYlBy
b2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hKCkgPSBkZWZhdWx0OworICAgIH5XZWJQcm9jZXNz
R3JhcGhpY3NDb250ZXh0R0xDb2NvYSgpOwogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0
dXJuIEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmlzVmFsaWQoKSAmJiBtX3dlYkdMTGF5ZXI7IH0K
ICAgICAvLyBHcmFwaGljc0NvbnRleHRHTENvY29hIG92ZXJyaWRlcy4KICAgICBQbGF0Zm9ybUxh
eWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gcmVpbnRlcnByZXRfY2Fz
dDxDQUxheWVyKj4obV93ZWJHTExheWVyLmdldCgpKTsgfQogICAgIHZvaWQgcHJlcGFyZUZvckRp
c3BsYXkoKSBmaW5hbDsKIHByaXZhdGU6Ci0gICAgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdM
Q29jb2EoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKLSAgICAgICAg
OiBHcmFwaGljc0NvbnRleHRHTENvY29hKFdURk1vdmUoYXR0cmlidXRlcykpCi0gICAgICAgICwg
bV93ZWJHTExheWVyKGNyZWF0ZVdlYkdMTGF5ZXIoY29udGV4dEF0dHJpYnV0ZXMoKSkpCi0gICAg
ewotICAgIH0KKyNpZiBQTEFURk9STShNQUMpCisgICAgLy8gRGlzcGxheUNvbmZpZ3VyYXRpb25N
b25pdG9yOjpDbGllbnQgb3ZlcnJpZGVzLgorICAgIHZvaWQgZGlzcGxheVdhc1JlY29uZmlndXJl
ZCgpIGZpbmFsOworI2VuZGlmCisKKyAgICBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJik7CiAgICAgUmV0YWluUHRyPFdlYkdMTGF5
ZXI+IG1fd2ViR0xMYXllcjsKIAogICAgIGZyaWVuZCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0w+
IFdlYkNvcmU6OmNyZWF0ZVdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTChjb25zdCBHcmFwaGlj
c0NvbnRleHRHTEF0dHJpYnV0ZXMmKTsKIH07CiAKK1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRH
TENvY29hOjpXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYShHcmFwaGljc0NvbnRleHRH
TEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQorICAgIDogR3JhcGhpY3NDb250ZXh0R0xDb2NvYShX
VEZNb3ZlKGF0dHJpYnV0ZXMpKQorICAgICwgbV93ZWJHTExheWVyKGNyZWF0ZVdlYkdMTGF5ZXIo
Y29udGV4dEF0dHJpYnV0ZXMoKSkpCit7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIERpc3BsYXlD
b25maWd1cmF0aW9uTW9uaXRvcjo6c2luZ2xldG9uKCkuYWRkQ2xpZW50KCp0aGlzKTsKKyNlbmRp
ZgorfQorCitXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6fldlYlByb2Nlc3NHcmFw
aGljc0NvbnRleHRHTENvY29hKCkKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgRGlzcGxheUNv
bmZpZ3VyYXRpb25Nb25pdG9yOjpzaW5nbGV0b24oKS5yZW1vdmVDbGllbnQoKnRoaXMpOworI2Vu
ZGlmCit9CisKIHZvaWQgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBhcmVG
b3JEaXNwbGF5KCkKIHsKICAgICBHcmFwaGljc0NvbnRleHRHTENvY29hOjpwcmVwYXJlRm9yRGlz
cGxheSgpOwpAQCAtNzgsNiArMTA0LDEzIEBAIHZvaWQgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4
dEdMQ29jb2E6OnByZXBhcmVGb3JEaXNwbGF5KCkKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TCiB9CiAKKyNpZiBQTEFURk9STShNQUMpCit2b2lkIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRl
eHRHTENvY29hOjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkKK3sKKyAgICB1cGRhdGVDb250ZXh0
T25EaXNwbGF5UmVjb25maWd1cmF0aW9uKCk7Cit9CisjZW5kaWYKKwogfQogCiBSZWZQdHI8R3Jh
cGhpY3NDb250ZXh0R0w+IGNyZWF0ZVdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTChjb25zdCBH
cmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25p
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5Q29u
ZmlndXJhdGlvbk1vbml0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhZGRkZjBjMmZjOTNhNDlmZWY1NDJh
ZmZjMmQ3NmNmYWY4OGE4ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmNwcApAQCAtMCww
ICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRp
c3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oIgorCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW5j
bHVkZSA8d3RmL1RocmVhZEFzc2VydGlvbnMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitE
aXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3I6OkNsaWVudDo6Q2xpZW50KCkgPSBkZWZhdWx0Owor
CitEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3I6OkNsaWVudDo6fkNsaWVudCgpID0gZGVmYXVs
dDsKKworRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yOjpEaXNwbGF5Q29uZmlndXJhdGlvbk1v
bml0b3IoKSA9IGRlZmF1bHQ7CisKK0Rpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvcjo6fkRpc3Bs
YXlDb25maWd1cmF0aW9uTW9uaXRvcigpID0gZGVmYXVsdDsKKworRGlzcGxheUNvbmZpZ3VyYXRp
b25Nb25pdG9yJiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3I6OnNpbmdsZXRvbigpCit7Cisg
ICAgYXNzZXJ0SXNNYWluVGhyZWFkKCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPERpc3Bs
YXlDb25maWd1cmF0aW9uTW9uaXRvcj4gaW5zdGFuY2U7CisgICAgcmV0dXJuIGluc3RhbmNlOwor
fQorCit2b2lkIERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvcjo6YWRkQ2xpZW50KENsaWVudCYg
Y2xpZW50KQoreworICAgIEFTU0VSVCghbV9jbGllbnRzLmNvbnRhaW5zKCZjbGllbnQpKTsKKyAg
ICBtX2NsaWVudHMuYXBwZW5kKCZjbGllbnQpOworfQorCit2b2lkIERpc3BsYXlDb25maWd1cmF0
aW9uTW9uaXRvcjo6cmVtb3ZlQ2xpZW50KENsaWVudCYgY2xpZW50KQoreworICAgIEFTU0VSVCht
X2NsaWVudHMuY29udGFpbnMoJmNsaWVudCkpOworICAgIG1fY2xpZW50cy5yZW1vdmVGaXJzdCgm
Y2xpZW50KTsKK30KKwordm9pZCBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3I6OmRpc3BhdGNo
RGlzcGxheVdhc1JlY29uZmlndXJlZChDR0Rpc3BsYXlDaGFuZ2VTdW1tYXJ5RmxhZ3MgZmxhZ3Mp
Cit7CisgICAgaWYgKCEoZmxhZ3MgJiBrQ0dEaXNwbGF5U2V0TW9kZUZsYWcpKQorICAgICAgICBy
ZXR1cm47CisgICAgZm9yIChhdXRvKiBjbGllbnQgOiBjb3B5VG9WZWN0b3IobV9jbGllbnRzKSkK
KyAgICAgICAgY2xpZW50LT5kaXNwbGF5V2FzUmVjb25maWd1cmVkKCk7Cit9CisKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlz
cGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzlmMDQ0
N2ZhNGVmZWUwMGY0OTczM2I1NjYyYjg1NzhlMDY1YWQzMwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5Q29uZmlndXJhdGlvbk1v
bml0b3IuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBQTEFURk9STShNQUMpCisKKyNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dEaXNwbGF5Q29uZmln
dXJhdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEaXNwbGF5Q29uZmln
dXJhdGlvbk1vbml0b3IgeworcHVibGljOgorICAgIH5EaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0
b3IoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25p
dG9yJiBzaW5nbGV0b24oKTsKKworICAgIGNsYXNzIENsaWVudCB7CisgICAgcHVibGljOgorICAg
ICAgICBDbGllbnQoKTsKKyAgICAgICAgdmlydHVhbCB+Q2xpZW50KCk7CisgICAgICAgIHZpcnR1
YWwgdm9pZCBkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkgPSAwOworICAgIH07CisgICAgdm9pZCBh
ZGRDbGllbnQoQ2xpZW50Jik7CisgICAgdm9pZCByZW1vdmVDbGllbnQoQ2xpZW50Jik7CisKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpc3BhdGNoRGlzcGxheVdhc1JlY29uZmlndXJlZChDR0Rp
c3BsYXlDaGFuZ2VTdW1tYXJ5RmxhZ3MpOworcHJpdmF0ZToKKyAgICBEaXNwbGF5Q29uZmlndXJh
dGlvbk1vbml0b3IoKTsKKyAgICBWZWN0b3I8Q2xpZW50Kj4gbV9jbGllbnRzOworICAgIGZyaWVu
ZCBOZXZlckRlc3Ryb3llZDxEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3I+OworfTsKKworfQor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3Bw
CmluZGV4IDJmNzc0NTJhMTM2NDI4ODIzZjY5OWJjMjQxMzlhNWQxODJkNmMyYTIuLjEyZDRiM2Fm
ZjI5MWQ4MjAxMDc3NGQ3ZTZkNGY0ODk3MDcyNGMyZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFw
aGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwCkBAIC00MywyMyArNDMsNiBAQCBHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTE1hbmFnZXImIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6
c2hhcmVkTWFuYWdlcigpCiAgICAgcmV0dXJuIHNfbWFuYWdlcjsKIH0KIAotI2lmIFBMQVRGT1JN
KE1BQykKLXZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpkaXNwbGF5V2FzUmVj
b25maWd1cmVkKENHRGlyZWN0RGlzcGxheUlELCBDR0Rpc3BsYXlDaGFuZ2VTdW1tYXJ5RmxhZ3Mg
ZmxhZ3MsIHZvaWQqKQotewotICAgIExPRyhXZWJHTCwgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
TWFuYWdlcjo6ZGlzcGxheVdhc1JlY29uZmlndXJlZCIpOwotICAgIGlmIChmbGFncyAmIGtDR0Rp
c3BsYXlTZXRNb2RlRmxhZykKLSAgICAgICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2Vy
OjpzaGFyZWRNYW5hZ2VyKCkuZGlzcGxheVdhc1JlY29uZmlndXJlZCgpOwotfQotI2VuZGlmCi0K
LSNpZiBQTEFURk9STShDT0NPQSkKLXZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2Vy
OjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkKLXsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGNvbnRl
eHQgOiBtX2NvbnRleHRzKQotICAgICAgICBjb250ZXh0LT5kaXNwbGF5V2FzUmVjb25maWd1cmVk
KCk7Ci19Ci0jZW5kaWYKLQogdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OmFk
ZENvbnRleHQoR3JhcGhpY3NDb250ZXh0R0xUeXBlKiBjb250ZXh0KQogewogICAgIEFTU0VSVChj
b250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaApp
bmRleCBmYjVjMjhjOThkMThkODk5NTM4ZDc5NmViYzIxODhhN2Y0YzU5NDUwLi5mMDc5MDljODFi
OTRlNmRmM2RiNGEyZjE0Y2I3ODRjYTMzMTIzMjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2Vy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMTWFuYWdlci5oCkBAIC0yOCwxMCArMjgsNiBAQAogI2luY2x1ZGUgPHd0
Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCi0jaWYgUExBVEZPUk0oTUFD
KQotI2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR0Rpc3BsYXlDb25maWd1cmF0aW9uLmg+Ci0jZW5k
aWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCB1bnNpZ25lZCBNYXhDb250ZXh0cyA9
IDE2OwpAQCAtNTksMTMgKzU1LDYgQEAgcHVibGljOgogICAgIHZvaWQgcmVjeWNsZUNvbnRleHRJ
Zk5lY2Vzc2FyeSgpOwogICAgIGJvb2wgaGFzVG9vTWFueUNvbnRleHRzKCkgY29uc3QgeyByZXR1
cm4gbV9jb250ZXh0cy5zaXplKCkgPj0gTWF4Q29udGV4dHM7IH0KICAgICAKLSNpZiBQTEFURk9S
TShNQUMpCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZGlzcGxheVdhc1JlY29uZmln
dXJlZChDR0RpcmVjdERpc3BsYXlJRCwgQ0dEaXNwbGF5Q2hhbmdlU3VtbWFyeUZsYWdzLCB2b2lk
Kik7Ci0jZW5kaWYKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2b2lkIGRpc3BsYXlXYXNSZWNv
bmZpZ3VyZWQoKTsKLSNlbmRpZgotICAgIAogcHJpdmF0ZToKICAgICBHcmFwaGljc0NvbnRleHRH
TE9wZW5HTE1hbmFnZXIoKSA9IGRlZmF1bHQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCmlu
ZGV4IDg0YjJlNjg0NWQwNzQ5Y2RhYTFlNzhiODUzMGQ4ZjhlYTVhMGUwNWQuLjA3MzNmM2MxNzg2
ZTFjNTcwYmM5ZTNhNGY0ZDFiOGU3MjdkMTdjNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNw
cApAQCAtMTA3LDcgKzEwNyw3IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OmRpc3Bs
YXlXYXNSZWNvbmZpZ3VyZWQoKQogICAgIGFzc2VydElzTWFpblJ1bkxvb3AoKTsKICAgICByZW1v
dGVHcmFwaGljc0NvbnRleHRHTFN0cmVhbVdvcmtRdWV1ZSgpLmRpc3BhdGNoKFtwcm90ZWN0ZWRU
aGlzID0gUmVmIHsgKnRoaXMgfV0oKSB7CiAgICAgICAgIGFzc2VydElzQ3VycmVudChwcm90ZWN0
ZWRUaGlzLT5tX3N0cmVhbVRocmVhZCk7Ci0gICAgICAgIHByb3RlY3RlZFRoaXMtPm1fY29udGV4
dC0+ZGlzcGxheVdhc1JlY29uZmlndXJlZCgpOworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX2Nv
bnRleHQtPnVwZGF0ZUNvbnRleHRPbkRpc3BsYXlSZWNvbmZpZ3VyYXRpb24oKTsKICAgICB9KTsK
IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dl
YlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW0KaW5kZXggZGJmODQ5ZGM2Y2IxMjJmMDNiMjFhMTdhMGVmZTBhZDkwOWQ5MzJj
YS4uMWViOTBlZjM2ZWI1NzIwMjM2MjBmYWFmNjgxMjMxMTIyZTA2MDE2YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC0xMzks
NyArMTM5LDcgQEAKICNpbXBvcnQgIkFwcEtpdFNQSS5oIgogI2ltcG9ydCAiV0tBY2Nlc3NpYmls
aXR5V2ViUGFnZU9iamVjdE1hYy5oIgogI2ltcG9ydCAiV2ViU3dpdGNoaW5nR1BVQ2xpZW50Lmgi
Ci0jaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oPgorI2lt
cG9ydCA8V2ViQ29yZS9EaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaD4KICNpbXBvcnQgPFdl
YkNvcmUvU2Nyb2xsYmFyVGhlbWVNYWMuaD4KICNpbXBvcnQgPHBhbC9zcGkvY2YvQ29yZVRleHRT
UEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL0hJU2VydmljZXNTUEkuaD4KQEAgLTk3MSw5ICs5
NzEsOSBAQCB2b2lkIFdlYlByb2Nlc3M6OnNjcm9sbGVyU3R5bGVQcmVmZXJlbmNlQ2hhbmdlZChi
b29sIHVzZU92ZXJsYXlTY3JvbGxiYXJzKQogICAgIFtOU1Njcm9sbGVySW1wUGFpciBfdXBkYXRl
QWxsU2Nyb2xsZXJJbXBQYWlyc0Zvck5ld1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZTpzdHlsZV07
CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6ZGlzcGxheUNvbmZpZ3VyYXRpb25DaGFuZ2VkKENHRGly
ZWN0RGlzcGxheUlEIGRpc3BsYXlJRCwgQ0dEaXNwbGF5Q2hhbmdlU3VtbWFyeUZsYWdzIGZsYWdz
KQordm9pZCBXZWJQcm9jZXNzOjpkaXNwbGF5Q29uZmlndXJhdGlvbkNoYW5nZWQoQ0dEaXJlY3RE
aXNwbGF5SUQsIENHRGlzcGxheUNoYW5nZVN1bW1hcnlGbGFncyBmbGFncykKIHsKLSAgICBHcmFw
aGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OmRpc3BsYXlXYXNSZWNvbmZpZ3VyZWQoZGlzcGxh
eUlELCBmbGFncywgbnVsbHB0cik7CisgICAgRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yOjpz
aW5nbGV0b24oKS5kaXNwYXRjaERpc3BsYXlXYXNSZWNvbmZpZ3VyZWQoZmxhZ3MpOwogfQogI2Vu
ZGlmCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA5YjA2M2Q0NjEwOGJlZWNiNzlhMjJkYzhlMWE4M2QzOWFjNzNlMjJiLi41
YTczYmExNzg3YzYwYzIwYTgxZWJiOWQ2ODg4NmU4ZmY1YjYxMzcxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMjEtMTItMDEgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4K
KworICAgICAgICBHcmFwaGljc0NvbnRleHRHTEFOR0xFIHNob3VsZCBub3QgaGF2ZSBDb2NvYSBN
YWMgc3BlY2lmaWMgZGlzcGxheSByZWNvbmZpZ3VyYXRpb24gY29kZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNjk1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlIHRoZSB0ZXN0IHRvIGFjY291
bnQgZm9yIHRoZSBiZWhhdmlvciBjaGFuZ2UKKyAgICAgICAgd2hlcmUgdGhlIHNpbXVsYXRlZCBj
b250ZXh0IGNoYW5nZSBldmVudCBpcyBkZWxpdmVyZWQKKyAgICAgICAgb25seSB0byB0aGUgY29u
dGV4dCBiZWluZyB0ZXN0ZWQsIG5vdCB0byBhbGwgY29udGV4dHMuCisKKyAgICAgICAgKiBmYXN0
L2NhbnZhcy93ZWJnbC93ZWJnbGNvbnRleHRjaGFuZ2VkZXZlbnQuaHRtbDoKKwogMjAyMS0xMS0z
MCAgUm9iZXJ0IEplbm5lciAgPEplbm5lckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVCQVNFTElO
RSBbIE1vbnRlcmV5IF1mYXN0L2Nzcy9jb250aW51YXRpb25DcmFzaC5odG1sIChsYXlvdXQtdGVz
dCkgaXMgYSBjb25zdGFudCB0ZXh0IGZhaWx1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL3dlYmdsY29udGV4dGNoYW5nZWRldmVudC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2xjb250ZXh0Y2hhbmdlZGV2ZW50Lmh0bWwKaW5kZXgg
NjVmM2NlMWY2MjI4M2YwYzJhOWY4NmNmYjU5MGJiYjY1MzkyYzNmZC4uMGVlMDQxMDNiOTZlYmY2
MTljMmNhZTY1YWEyYThjNDA4NTcxOWMzNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvd2ViZ2wvd2ViZ2xjb250ZXh0Y2hhbmdlZGV2ZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2xjb250ZXh0Y2hhbmdlZGV2ZW50Lmh0bWwKQEAgLTM5
LDEwICszOSwxMiBAQCBmdW5jdGlvbiBydW5UZXN0KCkKICAgICAgICAgZ2wuY2xlYXIoZ2wuQ09M
T1JfQlVGRkVSX0JJVCk7CiAgICAgfSk7CiAKLSAgICBsZXQgZ2wgPSBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCJjYW52YXMiKS5nZXRDb250ZXh0KCJ3ZWJnbCIpOwotICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKQotICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNpbXVsYXRlRXZlbnRGb3JXZWJHTENv
bnRleHQoIkNvbnRleHRDaGFuZ2UiLCBnbCk7Ci0gICAgZWxzZQorICAgIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoImNhbnZhcyIpLmZvckVhY2goKGMpID0+IHsKKyAgICAgICAgbGV0IGdsID0g
Yy5nZXRDb250ZXh0KCJ3ZWJnbCIpOworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAg
ICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2ltdWxhdGVFdmVudEZvcldlYkdMQ29udGV4dCgi
Q29udGV4dENoYW5nZSIsIGdsKTsKKyAgICB9KTsKKyAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMp
CiAgICAgICAgIGxvZygiVG8gcnVuIHRoZSB0ZXN0LCB0cmlnZ2VyIGEgR1BVIGNoYW5nZSBtYW51
YWxseS4iKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445687</attachid>
            <date>2021-12-02 00:50:07 -0800</date>
            <delta_ts>2021-12-02 02:32:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233695-20211202105005.patch</filename>
            <type>text/plain</type>
            <size>35451</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGJiNmQyZjJmYmNkN2I3
ODU1MzIxY2U1YjgwMWQ1YzJmYWNiMzhmNC4uZTczZWI2ZmI2MGQzN2NlYjcyMmNlZThmYjcyNTVk
OWU3YmRkZmI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTEyLTAxICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgR3JhcGhpY3NDb250
ZXh0R0xBTkdMRSBzaG91bGQgbm90IGhhdmUgQ29jb2EgTWFjIHNwZWNpZmljIGRpc3BsYXkgcmVj
b25maWd1cmF0aW9uIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMzY5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1vdmUgY29kZSB0byBvYnNlcnZlIE1hYyBkaXNwbGF5IHJlY29uZmlndXJhdGlv
bgorICAgICAgICBhd2F5IGZyb20gR3JhcGhpY3NDb250ZXh0R0xBTkdMRSB0byBHcmFwaGljc0Nv
bnRleHRHTENvY29hLgorICAgICAgICBBcHBseSB0aGUgZGlzcGxheSByZWNvbmZpZ3VyYXRpb24g
bGlzdGVuZXIgb25seSBmb3IKKyAgICAgICAgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29j
b2EsIGl0IGlzIG5vdCBuZWVkZWQgZm9yIHRoZQorICAgICAgICBHUFUgcHJvY2VzcyBjb250ZXh0
cy4KKworICAgICAgICBNb3ZlIHRoZSBsaXN0ZW5lciBub3RpZmljYXRpb24gY29kZSBhd2F5IGZy
b20gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyCisgICAgICAgIGludG8gaXRzIG93biBj
bGFzcy4gVGhpcyB3YXkgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyIGRvZXMgbm90IG5l
ZWQKKyAgICAgICAgdG8ga25vdyBNYWMgc3BlY2lmaWMgaW50ZXJmYWNlcy4gTGF0ZXIgb24sIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlciBjYW4KKyAgICAgICAgYmUgcmVtb3ZlZCBhbHRv
Z2V0aGVyLgorCisgICAgICAgIENoYW5nZXMgYmVoYXZpb3Igc28gdGhhdCBzaW11bGF0ZUV2ZW50
Rm9yVGVzdGluZyBpbnZva2VzIHRoZSBzaW11bGF0ZWQgY29udGV4dAorICAgICAgICBjaGFuZ2Ug
b25seSBmb3IgdGhlIGNvbnRleHQgYmVpbmcgdGVzdGVkLiBUaGlzIHNpbXBsaWZpZXMgdGhlIGlt
cGxlbWVudGF0aW9uLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgcmVmYWN0b3IuCisKKyAgICAg
ICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlczo6ZWZmZWN0aXZlUG93ZXJQcmVmZXJl
bmNlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0Nv
bnRleHRHTEFOR0xFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5H
TEU6OnNpbXVsYXRlRXZlbnRGb3JUZXN0aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06CisgICAgICAgIChXZWJD
b3JlOjppbml0aWFsaXplRUdMRGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRHTENvY29hOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTENvY29hOjp+R3JhcGhpY3NDb250ZXh0R0xDb2NvYSk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnNldENvbnRleHRWaXNp
YmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnVwZGF0
ZUNvbnRleHRPbkRpc3BsYXlSZWNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0R0xBTkdMRTo6c2V0Q29udGV4dFZpc2liaWxpdHkpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6ZGlzcGxheVdhc1JlY29uZmln
dXJlZCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJv
Y2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0Rpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5H
TE1hbmFnZXIuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRv
cjo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDb25maWd1cmF0aW9uTW9u
aXRvcjo6YWRkQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDb25maWd1cmF0aW9u
TW9uaXRvcjo6cmVtb3ZlQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDb25maWd1
cmF0aW9uTW9uaXRvcjo6ZGlzcGF0Y2hEaXNwbGF5V2FzUmVjb25maWd1cmVkKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6ZGlzcGxheVdhc1JlY29uZmlndXJl
ZCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMTWFuYWdlci5oOgorCiAyMDIxLTExLTMwICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFBhc3MgdGhlIHRpbWVzdGFtcCBmb3Ig
c2Nyb2xsaW5nIHRocmVhZCBhbmltYXRpb25zIHRocm91Z2ggYWxsIHRoZSBzZXJ2aWNlU2Nyb2xs
QW5pbWF0aW9uKCkgY2FsbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODFlNDkzMGIzM2Q1NWNkNWJkM2I1Y2FhY2Yx
N2JlZTA5N2YxZDc4YS4uN2MzYWQ3NzAzMWRiYTdhYmQ1MWUyMTZjNWQ4NzkxYTdlZmYzNmI0NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMS0xMi0wMSAgS2ltbW8gS2lubnVuZW4gIDxr
a2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIEdyYXBoaWNzQ29udGV4dEdMQU5HTEUgc2hv
dWxkIG5vdCBoYXZlIENvY29hIE1hYyBzcGVjaWZpYyBkaXNwbGF5IHJlY29uZmlndXJhdGlvbiBj
b2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM2
OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcmV2
aW91cyBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkKKyAg
ICAgICAgd2FzIHJlbmFtZWQgdG8gdXBkYXRlQ29udGV4dE9uRGlzcGxheVJlY29uZmlndXJhdGlv
bigpLgorICAgICAgICBUaGUgZGlzcGxheVdhc1JlY29uZmlndXJlZCgpIHdhcyB0YWtlbiBpbnRv
IHVzZSBpbiB0aGUgbm90aWZpY2F0aW9uIGludGVyZmFjZQorICAgICAgICBEaXNwbGF5Q29uZmln
dXJhdGlvbk1vbml0b3I6OkNsaWVudDo6ZGlzcGxheVdhc1JlY29uZmlndXJlZCgpLgorCisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpkaXNwbGF5V2FzUmVjb25m
aWd1cmVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGlzcGxheUNvbmZpZ3VyYXRpb25DaGFuZ2Vk
KToKKwogMjAyMS0xMS0zMCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAg
ICAgICAgIHJlcGxhY2Utd2Via2l0LWFkZGl0aW9ucy1pbmNsdWRlcyBzaG91bGQgYXNzdW1lIHVu
a25vd24gb3IgZW1wdHkgZGVwbG95bWVudCB0YXJnZXRzIGFyZSBzdXBwb3J0ZWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1NYWMuY21ha2UKaW5kZXggMTVkMjcxN2I3MjM1ODJjN2E3ZmU5OTJmMDU1ZmJlM2U3N2Rk
ZmNlNi4uYWZjOTZhMGI2MTIwN2E0ZGE3MzYxYzUxMzI0ZGY1Mjc2MzFlMGM5MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1NYWMuY21ha2UKQEAgLTM0Myw2ICszNDMsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3Jl
X1NPVVJDRVMKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db2xvck1hYy5tbQogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbQorICAg
IHBsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuY3BwCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zsb2F0UG9pbnRNYWMubW0KICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRmxvYXRTaXplTWFjLm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCkBAIC02NzEsNiArNjcyLDcgQEAgbGlzdChBUFBFTkQg
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oCiAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
Q29sb3JNYWMuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5Q29uZmlndXJhdGlv
bk1vbml0b3IuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1E
YXRhLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NDaGVja3NNYWMuaAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL21hYy9TY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0LmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDNmNWI2MmYzNzYzZmNmNGIyYjg0MDY2MmVkZmIz
NTFmYmExMzdhZjYuLmM3OWZjNGQ3OGM2MjEwNTE4OTYxZWYxYzY0MTMyMzdhNWFjNzQ0MGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtNDEyLDYgKzQxMiw3IEBAIHBsYXRmb3JtL2dyYXBo
aWNzL2lvcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2lv
cy9JY29uSU9TLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29sb3JNYWMubW0KIHBsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbQorcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0Rpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5jcHAKIHBsYXRmb3JtL2dy
YXBoaWNzL21hYy9GbG9hdFBvaW50TWFjLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRmxvYXRT
aXplTWFjLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA2MGU0Mjg4Mzk3NTY4ZDQ1MGQxMmYxODViOGY2ZmVhNjA2NjRlMTc4Li45ODA2NDUx
YzNkYTI4MTYwNGU4MzJiMGE0YjVkNzZlZjdkYmJkNTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzc0LDYgKzIzNzQsNyBA
QAogCQk3QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3NDaGVja3NNYWMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQjY4MEI4MjVCQTFC
RTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRERBMzFGMjc0RkEwMjEwMDM4NjU5RSAvKiBH
cmFwaGljc0NvbnRleHRHTENvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QkREQTMxRDI3NEY5REE1MDAzODY1OUUgLyogR3JhcGhpY3NDb250ZXh0
R0xDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTdCRTc0MjczODFGQTkwNkZCQjRGMEYyQyAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwQzRDMDJCRUQ4
OTM2RjgxOEUyRjk5IC8qIEpTU1ZHR3JhcGhpY3NFbGVtZW50LmggKi87IH07CisJCTdCRkY1OUY0
Mjc1NzcyNjcwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRkY1OUVGMjc1NzcxRTgw
MDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzAyOUM2RTI0OTNDOEY4MDAyNjgy
MDQgLyogQ29sb3JUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0MwMjlDNkQyNDkzQzhGODAwMjY4MjA0IC8qIENvbG9yVHlwZXMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzE4NDNGRTFDOEI3
MjgzMDAyRUI5NzMgLyogQXV0b2ZpbGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdDMTg0M0ZDMUM4QjcyODMwMDJFQjk3MyAvKiBBdXRvZmlsbC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDMTkzQkJC
MUY1RTBFRUQwMDg4RjNFNiAvKiBDYW52YXNEaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMTkzQkI2MUY1RTBFQjkwMDg4RjNFNiAvKiBD
YW52YXNEaXJlY3Rpb24uaCAqLzsgfTsKQEAgLTExMzc1LDYgKzExMzc2LDggQEAKIAkJN0JEREEz
MUMyNzRGOURBNDAwMzg2NTlFIC8qIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENvY29hLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkREQTMxRDI3NEY5REE1MDAzODY1OUUg
LyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBHcmFwaGljc0NvbnRleHRHTENvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdCRTcyNjVCMjU3NjNCOEQwMEU4NUQ5OCAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCRkY1OUVGMjc1Nzcx
RTgwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuaDsgZmls
ZUVuY29kaW5nID0gNDsgcGF0aCA9IERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QkZGNTlGMTI3NTc3MUU4MDA3NzNEMzkgLyogRGlz
cGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdDMDExRjNEMjRGQUQzNjAwMDVCRUYxMCAvKiBTZXR0aW5ncy5jcHAu
ZXJiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFNldHRpbmdzLmNwcC5lcmI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdDMDExRjNFMjRGQUQzNjAwMDVCRUYxMCAvKiBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmNw
cC5lcmIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5jcHAuZXJiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QzAxMUYzRjI0RkFEMzYwMDA1QkVGMTAgLyogSW50ZXJuYWxT
ZXR0aW5nc0dlbmVyYXRlZC5pZGwuZXJiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQu
aWRsLmVyYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4NDI0LDYgKzI4NDI3LDgg
QEAKIAkJCQlFREUzQTRGRjBDN0E0MzA2MDA5NTZBMzcgLyogQ29sb3JNYWMuaCAqLywKIAkJCQlC
Mjc1MzU0QTBCMDUzODE0MDAyQ0U2NEYgLyogQ29sb3JNYWMubW0gKi8sCiAJCQkJMzdDMjM4MjAx
MDk4Qzg0MjAwRUY5RjcyIC8qIENvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tICovLAor
CQkJCTdCRkY1OUYxMjc1NzcxRTgwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0
b3IuY3BwICovLAorCQkJCTdCRkY1OUVGMjc1NzcxRTgwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmln
dXJhdGlvbk1vbml0b3IuaCAqLywKIAkJCQlCMjc1MzU0QjBCMDUzODE0MDAyQ0U2NEYgLyogRmxv
YXRQb2ludE1hYy5tbSAqLywKIAkJCQlCMjc1MzU0RDBCMDUzODE0MDAyQ0U2NEYgLyogRmxvYXRT
aXplTWFjLm1tICovLAogCQkJCUIyQUZGQzc1MEQwMEE1QzEwMDMwMDc0RCAvKiBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhLmNwcCAqLywKQEAgLTMzODY0LDYgKzMzODY5LDcgQEAKIAkJCQlGNDdBMDlE
MTIwQTkzQTk3MDAyNDBGQUUgLyogRGlzYWJsZWRBZGFwdGF0aW9ucy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJN0VEQUFGQzkxOUEyQ0NEQzAwMzRERkQxIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDdCQjFFNzAyNzE3NkNEOTAwMURGMjg5IC8qIERpc3BsYXlD
YXB0dXJlU291cmNlQ29jb2EuaCBpbiBIZWFkZXJzICovLAorCQkJCTdCRkY1OUY0Mjc1NzcyNjcw
MDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGRTVGQkQzMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTVBRDA5NDAyNDA4OTY0MDAwREU0RDJGIC8qIERpc3BsYXlMaXN0RHJhd2luZ0Nv
bnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1QUQwOTNFMjQwODk2MzUwMERFNEQyRiAvKiBE
aXNwbGF5TGlzdEltYWdlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0xBdHRy
aWJ1dGVzLmgKaW5kZXggYTBhZDc3YmE4ODRiNWIzMzE0NTllNmZmZGVlMjBmNzg1NjQ1NDRmMy4u
Y2I5OWZiMTYxN2RiYzZhYTk3MjkxYzg4MTlmODQ1Y2JkY2Y3ZmY1NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzLmgKQEAgLTY4LDYgKzY4LDEyIEBAIHN0cnVjdCBHcmFwaGljc0NvbnRleHRH
TEF0dHJpYnV0ZXMgewogI2lmIEVOQUJMRShXRUJYUikKICAgICBib29sIHhyQ29tcGF0aWJsZSB7
IGZhbHNlIH07CiAjZW5kaWYKKyAgICBQb3dlclByZWZlcmVuY2UgZWZmZWN0aXZlUG93ZXJQcmVm
ZXJlbmNlKCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmIChmb3JjZVJlcXVlc3RGb3JIaWdoUGVy
Zm9ybWFuY2VHUFUpCisgICAgICAgICAgICByZXR1cm4gUG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVy
Zm9ybWFuY2U7CisgICAgICAgIHJldHVybiBwb3dlclByZWZlcmVuY2U7CisgICAgfQogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3Jh
cGhpY3NDb250ZXh0R0xBTkdMRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAppbmRleCA2NDE1MTc5YjYyYjJjNDIz
MjJlNjA0OWUxMjU5YmRiZGQ4ZjYyMmM5Li41YzdkYmJjZTM3ZDdlNGZhNzBjMjkwODMxMzIyZDhj
NjBiZWNmMmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
bmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcApAQCAtMjkxNSw5
ICsyOTE1LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjp3YWl0QW5kVXBkYXRlT2xk
ZXN0RnJhbWUoKQogdm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpzaW11bGF0ZUV2ZW50Rm9y
VGVzdGluZyhTaW11bGF0ZWRFdmVudEZvclRlc3RpbmcgZXZlbnQpCiB7CiAgICAgaWYgKGV2ZW50
ID09IFNpbXVsYXRlZEV2ZW50Rm9yVGVzdGluZzo6Q29udGV4dENoYW5nZSkgewotI2lmIFBMQVRG
T1JNKENPQ09BKQotICAgICAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJl
ZE1hbmFnZXIoKS5kaXNwbGF5V2FzUmVjb25maWd1cmVkKCk7Ci0jZW5kaWYKKyAgICAgICAgZGlz
cGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIGlmIChldmVudCA9PSBTaW11bGF0ZWRFdmVudEZvclRlc3Rpbmc6OkdQVVN0YXR1c0Zh
aWx1cmUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Fu
Z2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaAppbmRleCA0ZTMwYmNiYzQ3NzQ1
YmI4YjQyMTUyN2JmZDM0OWJhZDY3N2JkMDY3Li40M2Q1ZDI5MGRkNjgyY2E1OTY1NjAxMTBhNjZh
NWE3ZGE4Zjg1MmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oCkBAIC0zOCw5ICsz
OCw2IEBACiAjaW5jbHVkZSAiSU9TdXJmYWNlLmgiCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1B
QykKLSNpbmNsdWRlICJTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0LmgiCi0jZW5kaWYK
IAogI2lmIFVTRShOSUNPU0lBKQogbmFtZXNwYWNlIE5pY29zaWEgewpAQCAtMzQ4LDcgKzM0NSw2
IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKEltYWdl
QnVmZmVyJikgZmluYWw7CiAgICAgc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZlcj4gcGFpbnRSZW5k
ZXJpbmdSZXN1bHRzVG9QaXhlbEJ1ZmZlcigpIGZpbmFsOwogICAgIHZvaWQgcGFpbnRDb21wb3Np
dGVkUmVzdWx0c1RvQ2FudmFzKEltYWdlQnVmZmVyJikgZmluYWw7Ci0gICAgdm9pZCBzZXRDb250
ZXh0VmlzaWJpbGl0eShib29sKSBmaW5hbDsKICAgICB2b2lkIHByZXBhcmVGb3JEaXNwbGF5KCkg
b3ZlcnJpZGU7CiAKICAgICB2b2lkIGZvcmNlQ29udGV4dExvc3QoKTsKQEAgLTM1Nyw5ICszNTMs
NiBAQCBwdWJsaWM6CiAgICAgc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZlcj4gcmVhZFJlbmRlcmlu
Z1Jlc3VsdHNGb3JQYWludGluZygpOwogICAgIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+IHJl
YWRDb21wb3NpdGVkUmVzdWx0c0ZvclBhaW50aW5nKCk7CiAKLSNpZiBQTEFURk9STShDT0NPQSkK
LSAgICB2b2lkIGRpc3BsYXlXYXNSZWNvbmZpZ3VyZWQoKTsKLSNlbmRpZgogICAgIHVuc2lnbmVk
IHRleHR1cmVTZWVkKEdDR0x1aW50IHRleHR1cmUpOwogCiAgICAgY29uc3RleHByIHN0YXRpYyBF
R0xOYXRpdmVEaXNwbGF5VHlwZSBkZWZhdWx0RGlzcGxheSA9IEVHTF9ERUZBVUxUX0RJU1BMQVk7
CkBAIC00NDQsMTAgKzQzNyw2IEBAIHByb3RlY3RlZDoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SU9T
dXJmYWNlPiBtX2Rpc3BsYXlCdWZmZXJCYWNraW5nOwogICAgIHZvaWQqIG1fZGlzcGxheUJ1ZmZl
clBidWZmZXIgeyBudWxscHRyIH07CiAjZW5kaWYKLSNpZiBQTEFURk9STShNQUMpCi0gICAgYm9v
bCBtX3N3aXRjaGVzR1BVT25EaXNwbGF5UmVjb25maWd1cmF0aW9uIHsgZmFsc2UgfTsKLSAgICBT
Y29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0IG1faGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVz
dDsKLSNlbmRpZgogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICBHQ0dMdWludCBt
X2NvbXBvc2l0b3JUZXh0dXJlIHsgMCB9OwogICAgIEdDR0x1aW50IG1faW50ZXJtZWRpYXRlVGV4
dHVyZSB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EuaAppbmRleCBlNDA5NWEyYjE5
ZTI0ZDFkYjgwOWMxODJmNjQzMmJkYzBjYjc4NmMyLi5hNjQ4ZmNkMmVjNGYwYjliNTFlMzAyMzY5
ZTAxMjQ5YjUyZDliNGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oCkBAIC0zNiw2
ICszNiwxMCBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHRHTENWQ29jb2E7CiB9CiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlICJTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1
ZXN0LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXRUJDT1JFX0VY
UE9SVCBHcmFwaGljc0NvbnRleHRHTENvY29hIDogcHVibGljIEdyYXBoaWNzQ29udGV4dEdMQU5H
TEUgewpAQCAtNjYsMTMgKzcwLDIxIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQogICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4gcGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFT
YW1wbGUoKSBmaW5hbDsKICNlbmRpZgorICAgIHZvaWQgc2V0Q29udGV4dFZpc2liaWxpdHkoYm9v
bCkgZmluYWw7CiAKKyNpZiBQTEFURk9STShNQUMpCisgICAgdm9pZCB1cGRhdGVDb250ZXh0T25E
aXNwbGF5UmVjb25maWd1cmF0aW9uKCk7CisjZW5kaWYKIHByb3RlY3RlZDoKICAgICBHcmFwaGlj
c0NvbnRleHRHTENvY29hKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmKTsK
ICAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKIAogI2lmIEVOQUJMRShWSURFTykKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hPiBtX2N2OworI2VuZGlmCisjaWYg
UExBVEZPUk0oTUFDKQorICAgIGJvb2wgbV9zd2l0Y2hlc0dQVU9uRGlzcGxheVJlY29uZmlndXJh
dGlvbiB7IGZhbHNlIH07CisgICAgU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdCBtX2hp
Z2hQZXJmb3JtYW5jZUdQVVJlcXVlc3Q7CiAjZW5kaWYKICAgICBmcmllbmQgY2xhc3MgR3JhcGhp
Y3NDb250ZXh0R0xDVkNvY29hOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCmlu
ZGV4IDAyOWNjM2ZhZTQ3Zjg3MDIzYzVjMzAyMjVlMDI1OWEwNDFmMGQ2NjkuLmE0YWVlM2RmYWIw
Zjc3YTJmZWM1YjVjZGZkY2ZiODJlNDBlNDExZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xD
b2NvYS5tbQpAQCAtMTUzLDcgKzE1Myw3IEBAIHN0YXRpYyBFR0xEaXNwbGF5IGluaXRpYWxpemVF
R0xEaXNwbGF5KGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0cnMpCiAgICAg
ICAgIGRpc3BsYXlBdHRyaWJ1dGVzLmFwcGVuZChFR0xfUExBVEZPUk1fQU5HTEVfVFlQRV9NRVRB
TF9BTkdMRSk7CiAgICAgICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgYXJlIGRlZmluZWQgZm9yIEVH
TF9BTkdMRV9wb3dlcl9wcmVmZXJlbmNlIGFzIEVHTENvbnRleHQgYXR0cmlidXRlcywKICAgICAg
ICAgLy8gYnV0IE1ldGFsIGJhY2tlbmQgdXNlcyBFR0xEaXNwbGF5IGF0dHJpYnV0ZXMuCi0gICAg
ICAgIGF1dG8gcG93ZXJQcmVmZXJlbmNlID0gYXR0cnMuZm9yY2VSZXF1ZXN0Rm9ySGlnaFBlcmZv
cm1hbmNlR1BVID8gR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzOjpQb3dlclByZWZlcmVuY2U6
OkhpZ2hQZXJmb3JtYW5jZSA6IGF0dHJzLnBvd2VyUHJlZmVyZW5jZTsKKyAgICAgICAgYXV0byBw
b3dlclByZWZlcmVuY2UgPSBhdHRycy5lZmZlY3RpdmVQb3dlclByZWZlcmVuY2UoKTsKICAgICAg
ICAgaWYgKHBvd2VyUHJlZmVyZW5jZSA9PSBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXM6OlBv
d2VyUHJlZmVyZW5jZTo6TG93UG93ZXIpIHsKICAgICAgICAgICAgIGRpc3BsYXlBdHRyaWJ1dGVz
LmFwcGVuZChFR0xfUE9XRVJfUFJFRkVSRU5DRV9BTkdMRSk7CiAgICAgICAgICAgICBkaXNwbGF5
QXR0cmlidXRlcy5hcHBlbmQoRUdMX0xPV19QT1dFUl9BTkdMRSk7CkBAIC0xOTQsNyArMTk0LDcg
QEAgc3RhdGljIGJvb2wgbmVlZHNFQUdMT25NYWMoKQogfQogI2VuZGlmCiAKLVJlZlB0cjxHcmFw
aGljc0NvbnRleHRHTENvY29hPiBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKK1JlZlB0cjxHcmFw
aGljc0NvbnRleHRHTENvY29hPiBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoR3JhcGhp
Y3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKIHsKICAgICBhdXRvIGNvbnRleHQg
PSBhZG9wdFJlZigqbmV3IEdyYXBoaWNzQ29udGV4dEdMQ29jb2EoV1RGTW92ZShhdHRyaWJ1dGVz
KSkpOwogICAgIGlmICghY29udGV4dC0+aXNWYWxpZCgpKQpAQCAtMjAyLDYgKzIwMiwxOCBAQCBS
ZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xDb2NvYT4gR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y3Jl
YXRlKFdlYkNvcmU6OkdyYXBoaWNzQwogICAgIHJldHVybiBjb250ZXh0OwogfQogCitHcmFwaGlj
c0NvbnRleHRHTENvY29hOjpHcmFwaGljc0NvbnRleHRHTENvY29hKEdyYXBoaWNzQ29udGV4dEdM
QXR0cmlidXRlcyYmIGNyZWF0aW9uQXR0cmlidXRlcykKKyAgICA6IEdyYXBoaWNzQ29udGV4dEdM
QU5HTEUoV1RGTW92ZShjcmVhdGlvbkF0dHJpYnV0ZXMpKQoreworICAgIGlmICghaXNWYWxpZCgp
KQorICAgICAgICByZXR1cm47CisjaWYgUExBVEZPUk0oTUFDKQorICAgIGF1dG8gYXR0cmlidXRl
cyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisgICAgaWYgKCFhdHRyaWJ1dGVzLnVzZU1ldGFsICYm
IGF0dHJpYnV0ZXMuZWZmZWN0aXZlUG93ZXJQcmVmZXJlbmNlKCkgPT0gR3JhcGhpY3NDb250ZXh0
R0xQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZSkKKyAgICAgICAgbV9zd2l0Y2hlc0dQ
VU9uRGlzcGxheVJlY29uZmlndXJhdGlvbiA9IHRydWU7CisjZW5kaWYKK30KKwogR3JhcGhpY3ND
b250ZXh0R0xDb2NvYTo6fkdyYXBoaWNzQ29udGV4dEdMQ29jb2EoKSA9IGRlZmF1bHQ7CiAKIElP
U3VyZmFjZSogR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6ZGlzcGxheUJ1ZmZlcigpCkBAIC0yMTQs
MTEgKzIyNiw2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6bWFya0Rpc3BsYXlCdWZm
ZXJJblVzZSgpCiAgICAgcmV0dXJuIG1fc3dhcENoYWluLm1hcmtEaXNwbGF5QnVmZmVySW5Vc2Uo
KTsKIH0KIAotR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYShX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQotICAgIDog
R3JhcGhpY3NDb250ZXh0R0xBTkdMRShXVEZNb3ZlKGF0dHJpYnV0ZXMpKQotewotfQotCiAvLyBG
SVhNRTogQmVsb3cgaXMgZnVuY3Rpb25hbGl0eSB0aGF0IHNob3VsZCBiZSBtb3ZlZCB0byBHcmFw
aGljc0NvbnRleHRHTENvY29hIHRvIHNpbXBsaWZ5IHRoZSBiYXNlIGNsYXNzLgogCiBHcmFwaGlj
c0NvbnRleHRHTEFOR0xFOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFKEdyYXBoaWNzQ29udGV4dEdM
QXR0cmlidXRlcyBhdHRycykKQEAgLTI1NSwxNCArMjYyLDEyIEBAIEdyYXBoaWNzQ29udGV4dEdM
QU5HTEU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVz
IGF0dHJzCiAgICAgICAgIC8vIGRpc3BsYXkgcmVjb25maWd1cmF0aW9uIGNhbGxiYWNrLiBVcG9u
IHRoaXMsIHdlIHVwZGF0ZSB0aGUgQ0dMIGNvbnRleHRzIGluc2lkZSBBTkdMRS4KICAgICAgICAg
Y29uc3QgY2hhciAqZGlzcGxheUV4dGVuc2lvbnMgPSBFR0xfUXVlcnlTdHJpbmcobV9kaXNwbGF5
T2JqLCBFR0xfRVhURU5TSU9OUyk7CiAgICAgICAgIGJvb2wgc3VwcG9ydHNQb3dlclByZWZlcmVu
Y2UgPSBzdHJzdHIoZGlzcGxheUV4dGVuc2lvbnMsICJFR0xfQU5HTEVfcG93ZXJfcHJlZmVyZW5j
ZSIpOwotICAgICAgICBpZiAoc3VwcG9ydHNQb3dlclByZWZlcmVuY2UpIHsKLSAgICAgICAgICAg
IG1fc3dpdGNoZXNHUFVPbkRpc3BsYXlSZWNvbmZpZ3VyYXRpb24gPSBhdHRycy5wb3dlclByZWZl
cmVuY2UgPT0gR3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5j
ZQotICAgICAgICAgICAgICAgIHx8IGF0dHJzLmZvcmNlUmVxdWVzdEZvckhpZ2hQZXJmb3JtYW5j
ZUdQVTsKLSAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKCFzdXBwb3J0c1Bvd2VyUHJlZmVy
ZW5jZSkgeworICAgICAgICAgICAgYXR0cnMuZm9yY2VSZXF1ZXN0Rm9ySGlnaFBlcmZvcm1hbmNl
R1BVID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAoYXR0cnMucG93ZXJQcmVmZXJlbmNlID09IEdy
YXBoaWNzQ29udGV4dEdMUG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVyZm9ybWFuY2UpIHsKICAgICAg
ICAgICAgICAgICBhdHRycy5wb3dlclByZWZlcmVuY2UgPSBHcmFwaGljc0NvbnRleHRHTFBvd2Vy
UHJlZmVyZW5jZTo6RGVmYXVsdDsKLSAgICAgICAgICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRl
cyhhdHRycyk7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRl
cyhhdHRycyk7CiAgICAgICAgIH0KICAgICB9CiAjZW5kaWYKQEAgLTUwNiw3ICs1MTEsNyBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OmNoZWNrR1BVU3RhdHVzKCkKICAgICByZXN0YXJ0
U3RhdHVzID0gMDsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpzZXRDb250ZXh0
VmlzaWJpbGl0eShib29sIGlzVmlzaWJsZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6
c2V0Q29udGV4dFZpc2liaWxpdHkoYm9vbCBpc1Zpc2libGUpCiB7CiAjaWYgUExBVEZPUk0oTUFD
KQogICAgIGlmICghbV9zd2l0Y2hlc0dQVU9uRGlzcGxheVJlY29uZmlndXJhdGlvbikKQEAgLTUy
MCwxNCArNTI1LDE0IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6c2V0Q29udGV4dFZp
c2liaWxpdHkoYm9vbCBpc1Zpc2libGUpCiAjZW5kaWYKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRl
eHRHTEFOR0xFOjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkKLXsKICNpZiBQTEFURk9STShNQUMp
Cit2b2lkIEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnVwZGF0ZUNvbnRleHRPbkRpc3BsYXlSZWNv
bmZpZ3VyYXRpb24oKQorewogICAgIGlmIChtX3N3aXRjaGVzR1BVT25EaXNwbGF5UmVjb25maWd1
cmF0aW9uKQogICAgICAgICBFR0xfSGFuZGxlR1BVU3dpdGNoQU5HTEUobV9kaXNwbGF5T2JqKTsK
LSNlbmRpZgogICAgIGRpc3BhdGNoQ29udGV4dENoYW5nZWROb3RpZmljYXRpb24oKTsKIH0KKyNl
bmRpZgogCiBib29sIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnJlc2hhcGVEaXNwbGF5QnVmZmVy
QmFja2luZygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENv
Y29hLm1tCmluZGV4IDNlZmIyMzhhOTliOWU5ZTUxN2NkMjZiZTdiNTM1Nzk4Yzg5ZjQ3MjUuLjI1
NDI2MjMwZGZlZGFkMmM1ZWI5MTA0MjRhMDhhNzJlMzcxN2IyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRl
eHRHTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tCkBAIC0zMiw2ICszMiwxMCBAQAog
I2ltcG9ydCAiV2ViR0xMYXllci5oIgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMu
aD4KIAorI2lmIFBMQVRGT1JNKE1BQykKKyNpbXBvcnQgIkRpc3BsYXlDb25maWd1cmF0aW9uTW9u
aXRvci5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSB7CiAKQEAg
LTQ4LDI0ICs1Miw0NiBAQCBzdGF0aWMgUmV0YWluUHRyPFdlYkdMTGF5ZXI+IGNyZWF0ZVdlYkdM
TGF5ZXIoY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJgogfQogCiAvLyBHcmFwaGlj
c0NvbnRleHRHTCB0eXBlIHRoYXQgaXMgdXNlZCB3aGVuIFdlYkdMIGlzIHJ1biBpbi1wcm9jZXNz
IGluIFdlYkNvbnRlbnQgcHJvY2Vzcy4KLWNsYXNzIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRH
TENvY29hIGZpbmFsIDogcHVibGljIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EgeworY2xhc3MgV2Vi
UHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EgZmluYWwgOiBwdWJsaWMgR3JhcGhpY3NDb250
ZXh0R0xDb2NvYQorI2lmIFBMQVRGT1JNKE1BQykKKyAgICAsIHByaXZhdGUgRGlzcGxheUNvbmZp
Z3VyYXRpb25Nb25pdG9yOjpDbGllbnQKKyNlbmRpZgorCit7CiBwdWJsaWM6Ci0gICAgfldlYlBy
b2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hKCkgPSBkZWZhdWx0OworICAgIH5XZWJQcm9jZXNz
R3JhcGhpY3NDb250ZXh0R0xDb2NvYSgpOwogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0
dXJuIEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmlzVmFsaWQoKSAmJiBtX3dlYkdMTGF5ZXI7IH0K
ICAgICAvLyBHcmFwaGljc0NvbnRleHRHTENvY29hIG92ZXJyaWRlcy4KICAgICBQbGF0Zm9ybUxh
eWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gcmVpbnRlcnByZXRfY2Fz
dDxDQUxheWVyKj4obV93ZWJHTExheWVyLmdldCgpKTsgfQogICAgIHZvaWQgcHJlcGFyZUZvckRp
c3BsYXkoKSBmaW5hbDsKIHByaXZhdGU6Ci0gICAgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdM
Q29jb2EoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKLSAgICAgICAg
OiBHcmFwaGljc0NvbnRleHRHTENvY29hKFdURk1vdmUoYXR0cmlidXRlcykpCi0gICAgICAgICwg
bV93ZWJHTExheWVyKGNyZWF0ZVdlYkdMTGF5ZXIoY29udGV4dEF0dHJpYnV0ZXMoKSkpCi0gICAg
ewotICAgIH0KKyNpZiBQTEFURk9STShNQUMpCisgICAgLy8gRGlzcGxheUNvbmZpZ3VyYXRpb25N
b25pdG9yOjpDbGllbnQgb3ZlcnJpZGVzLgorICAgIHZvaWQgZGlzcGxheVdhc1JlY29uZmlndXJl
ZCgpIGZpbmFsOworI2VuZGlmCisKKyAgICBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJik7CiAgICAgUmV0YWluUHRyPFdlYkdMTGF5
ZXI+IG1fd2ViR0xMYXllcjsKIAogICAgIGZyaWVuZCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0w+
IFdlYkNvcmU6OmNyZWF0ZVdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTChjb25zdCBHcmFwaGlj
c0NvbnRleHRHTEF0dHJpYnV0ZXMmKTsKIH07CiAKK1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRH
TENvY29hOjpXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYShHcmFwaGljc0NvbnRleHRH
TEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQorICAgIDogR3JhcGhpY3NDb250ZXh0R0xDb2NvYShX
VEZNb3ZlKGF0dHJpYnV0ZXMpKQorICAgICwgbV93ZWJHTExheWVyKGNyZWF0ZVdlYkdMTGF5ZXIo
Y29udGV4dEF0dHJpYnV0ZXMoKSkpCit7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIERpc3BsYXlD
b25maWd1cmF0aW9uTW9uaXRvcjo6c2luZ2xldG9uKCkuYWRkQ2xpZW50KCp0aGlzKTsKKyNlbmRp
ZgorfQorCitXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6fldlYlByb2Nlc3NHcmFw
aGljc0NvbnRleHRHTENvY29hKCkKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgRGlzcGxheUNv
bmZpZ3VyYXRpb25Nb25pdG9yOjpzaW5nbGV0b24oKS5yZW1vdmVDbGllbnQoKnRoaXMpOworI2Vu
ZGlmCit9CisKIHZvaWQgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBhcmVG
b3JEaXNwbGF5KCkKIHsKICAgICBHcmFwaGljc0NvbnRleHRHTENvY29hOjpwcmVwYXJlRm9yRGlz
cGxheSgpOwpAQCAtNzgsNiArMTA0LDEzIEBAIHZvaWQgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4
dEdMQ29jb2E6OnByZXBhcmVGb3JEaXNwbGF5KCkKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TCiB9CiAKKyNpZiBQTEFURk9STShNQUMpCit2b2lkIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRl
eHRHTENvY29hOjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkKK3sKKyAgICB1cGRhdGVDb250ZXh0
T25EaXNwbGF5UmVjb25maWd1cmF0aW9uKCk7Cit9CisjZW5kaWYKKwogfQogCiBSZWZQdHI8R3Jh
cGhpY3NDb250ZXh0R0w+IGNyZWF0ZVdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTChjb25zdCBH
cmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25p
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5Q29u
ZmlndXJhdGlvbk1vbml0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhZGRkZjBjMmZjOTNhNDlmZWY1NDJh
ZmZjMmQ3NmNmYWY4OGE4ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmNwcApAQCAtMCww
ICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRp
c3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oIgorCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW5j
bHVkZSA8d3RmL1RocmVhZEFzc2VydGlvbnMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitE
aXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3I6OkNsaWVudDo6Q2xpZW50KCkgPSBkZWZhdWx0Owor
CitEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3I6OkNsaWVudDo6fkNsaWVudCgpID0gZGVmYXVs
dDsKKworRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yOjpEaXNwbGF5Q29uZmlndXJhdGlvbk1v
bml0b3IoKSA9IGRlZmF1bHQ7CisKK0Rpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvcjo6fkRpc3Bs
YXlDb25maWd1cmF0aW9uTW9uaXRvcigpID0gZGVmYXVsdDsKKworRGlzcGxheUNvbmZpZ3VyYXRp
b25Nb25pdG9yJiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3I6OnNpbmdsZXRvbigpCit7Cisg
ICAgYXNzZXJ0SXNNYWluVGhyZWFkKCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPERpc3Bs
YXlDb25maWd1cmF0aW9uTW9uaXRvcj4gaW5zdGFuY2U7CisgICAgcmV0dXJuIGluc3RhbmNlOwor
fQorCit2b2lkIERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvcjo6YWRkQ2xpZW50KENsaWVudCYg
Y2xpZW50KQoreworICAgIEFTU0VSVCghbV9jbGllbnRzLmNvbnRhaW5zKCZjbGllbnQpKTsKKyAg
ICBtX2NsaWVudHMuYXBwZW5kKCZjbGllbnQpOworfQorCit2b2lkIERpc3BsYXlDb25maWd1cmF0
aW9uTW9uaXRvcjo6cmVtb3ZlQ2xpZW50KENsaWVudCYgY2xpZW50KQoreworICAgIEFTU0VSVCht
X2NsaWVudHMuY29udGFpbnMoJmNsaWVudCkpOworICAgIG1fY2xpZW50cy5yZW1vdmVGaXJzdCgm
Y2xpZW50KTsKK30KKwordm9pZCBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3I6OmRpc3BhdGNo
RGlzcGxheVdhc1JlY29uZmlndXJlZChDR0Rpc3BsYXlDaGFuZ2VTdW1tYXJ5RmxhZ3MgZmxhZ3Mp
Cit7CisgICAgaWYgKCEoZmxhZ3MgJiBrQ0dEaXNwbGF5U2V0TW9kZUZsYWcpKQorICAgICAgICBy
ZXR1cm47CisgICAgZm9yIChhdXRvKiBjbGllbnQgOiBjb3B5VG9WZWN0b3IobV9jbGllbnRzKSkK
KyAgICAgICAgY2xpZW50LT5kaXNwbGF5V2FzUmVjb25maWd1cmVkKCk7Cit9CisKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlz
cGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzlmMDQ0
N2ZhNGVmZWUwMGY0OTczM2I1NjYyYjg1NzhlMDY1YWQzMwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5Q29uZmlndXJhdGlvbk1v
bml0b3IuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBQTEFURk9STShNQUMpCisKKyNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dEaXNwbGF5Q29uZmln
dXJhdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEaXNwbGF5Q29uZmln
dXJhdGlvbk1vbml0b3IgeworcHVibGljOgorICAgIH5EaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0
b3IoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25p
dG9yJiBzaW5nbGV0b24oKTsKKworICAgIGNsYXNzIENsaWVudCB7CisgICAgcHVibGljOgorICAg
ICAgICBDbGllbnQoKTsKKyAgICAgICAgdmlydHVhbCB+Q2xpZW50KCk7CisgICAgICAgIHZpcnR1
YWwgdm9pZCBkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkgPSAwOworICAgIH07CisgICAgdm9pZCBh
ZGRDbGllbnQoQ2xpZW50Jik7CisgICAgdm9pZCByZW1vdmVDbGllbnQoQ2xpZW50Jik7CisKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpc3BhdGNoRGlzcGxheVdhc1JlY29uZmlndXJlZChDR0Rp
c3BsYXlDaGFuZ2VTdW1tYXJ5RmxhZ3MpOworcHJpdmF0ZToKKyAgICBEaXNwbGF5Q29uZmlndXJh
dGlvbk1vbml0b3IoKTsKKyAgICBWZWN0b3I8Q2xpZW50Kj4gbV9jbGllbnRzOworICAgIGZyaWVu
ZCBOZXZlckRlc3Ryb3llZDxEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3I+OworfTsKKworfQor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3Bw
CmluZGV4IDJmNzc0NTJhMTM2NDI4ODIzZjY5OWJjMjQxMzlhNWQxODJkNmMyYTIuLjEyZDRiM2Fm
ZjI5MWQ4MjAxMDc3NGQ3ZTZkNGY0ODk3MDcyNGMyZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFw
aGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwCkBAIC00MywyMyArNDMsNiBAQCBHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTE1hbmFnZXImIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6
c2hhcmVkTWFuYWdlcigpCiAgICAgcmV0dXJuIHNfbWFuYWdlcjsKIH0KIAotI2lmIFBMQVRGT1JN
KE1BQykKLXZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpkaXNwbGF5V2FzUmVj
b25maWd1cmVkKENHRGlyZWN0RGlzcGxheUlELCBDR0Rpc3BsYXlDaGFuZ2VTdW1tYXJ5RmxhZ3Mg
ZmxhZ3MsIHZvaWQqKQotewotICAgIExPRyhXZWJHTCwgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
TWFuYWdlcjo6ZGlzcGxheVdhc1JlY29uZmlndXJlZCIpOwotICAgIGlmIChmbGFncyAmIGtDR0Rp
c3BsYXlTZXRNb2RlRmxhZykKLSAgICAgICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2Vy
OjpzaGFyZWRNYW5hZ2VyKCkuZGlzcGxheVdhc1JlY29uZmlndXJlZCgpOwotfQotI2VuZGlmCi0K
LSNpZiBQTEFURk9STShDT0NPQSkKLXZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2Vy
OjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkKLXsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGNvbnRl
eHQgOiBtX2NvbnRleHRzKQotICAgICAgICBjb250ZXh0LT5kaXNwbGF5V2FzUmVjb25maWd1cmVk
KCk7Ci19Ci0jZW5kaWYKLQogdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OmFk
ZENvbnRleHQoR3JhcGhpY3NDb250ZXh0R0xUeXBlKiBjb250ZXh0KQogewogICAgIEFTU0VSVChj
b250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaApp
bmRleCBmYjVjMjhjOThkMThkODk5NTM4ZDc5NmViYzIxODhhN2Y0YzU5NDUwLi5mMDc5MDljODFi
OTRlNmRmM2RiNGEyZjE0Y2I3ODRjYTMzMTIzMjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2Vy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMTWFuYWdlci5oCkBAIC0yOCwxMCArMjgsNiBAQAogI2luY2x1ZGUgPHd0
Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCi0jaWYgUExBVEZPUk0oTUFD
KQotI2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR0Rpc3BsYXlDb25maWd1cmF0aW9uLmg+Ci0jZW5k
aWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCB1bnNpZ25lZCBNYXhDb250ZXh0cyA9
IDE2OwpAQCAtNTksMTMgKzU1LDYgQEAgcHVibGljOgogICAgIHZvaWQgcmVjeWNsZUNvbnRleHRJ
Zk5lY2Vzc2FyeSgpOwogICAgIGJvb2wgaGFzVG9vTWFueUNvbnRleHRzKCkgY29uc3QgeyByZXR1
cm4gbV9jb250ZXh0cy5zaXplKCkgPj0gTWF4Q29udGV4dHM7IH0KICAgICAKLSNpZiBQTEFURk9S
TShNQUMpCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZGlzcGxheVdhc1JlY29uZmln
dXJlZChDR0RpcmVjdERpc3BsYXlJRCwgQ0dEaXNwbGF5Q2hhbmdlU3VtbWFyeUZsYWdzLCB2b2lk
Kik7Ci0jZW5kaWYKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2b2lkIGRpc3BsYXlXYXNSZWNv
bmZpZ3VyZWQoKTsKLSNlbmRpZgotICAgIAogcHJpdmF0ZToKICAgICBHcmFwaGljc0NvbnRleHRH
TE9wZW5HTE1hbmFnZXIoKSA9IGRlZmF1bHQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRl
eHRHTFRleHR1cmVNYXBwZXIuaAppbmRleCBkMWFjMGViN2MwYWRhMmZmODhmMTc5ZGI5Y2Q0ZWMw
YTA1ZTc2Y2E3Li5iNDBlNzk4MzNlODExMGY1ZDA5N2VhZDNiNTMxZjFlNjJkNmQ4ZDFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3ND
b250ZXh0R0xUZXh0dXJlTWFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5oCkBAIC01NCw2ICs1
NCw5IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFJlZlB0cjxNZWRp
YVNhbXBsZT4gcGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUoKSBmaW5hbDsKICNl
bmRpZgorI2lmIFVTRShBTkdMRSkKKyAgICB2b2lkIHNldENvbnRleHRWaXNpYmlsaXR5KGJvb2wp
IGZpbmFsOworI2VuZGlmCiAKIHByb3RlY3RlZDoKICAgICBHcmFwaGljc0NvbnRleHRHTFRleHR1
cmVNYXBwZXIoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29u
dGV4dEdMVGV4dHVyZU1hcHBlckFOR0xFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXJBTkdMRS5jcHAKaW5k
ZXggYTNjZTIyODc0N2ExN2Y5ZmQ5NGJlNTRjMzQxMjRlNWU4ZDQyYzIxZi4uZjY5YWRhMTg0ZWFh
MDQ3NjRlN2I2MzQ3YTA1ODZkZWQ2ZTYyZWNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlckFO
R0xFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3Jh
cGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyQU5HTEUuY3BwCkBAIC0xNzIsNyArMTcyLDcgQEAg
dm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpjaGVja0dQVVN0YXR1cygpCiB7CiB9CiAKLXZv
aWQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6c2V0Q29udGV4dFZpc2liaWxpdHkoYm9vbCkKK3Zv
aWQgR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyOjpzZXRDb250ZXh0VmlzaWJpbGl0eShi
b29sKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAppbmRleCA4NGIyZTY4NDVkMDc0
OWNkYWExZTc4Yjg1MzBkOGY4ZWE1YTBlMDVkLi4wNzMzZjNjMTc4NmUxYzU3MGJjOWUzYTRmNGQx
YjhlNzI3ZDE3YzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKQEAgLTEwNyw3ICsxMDcs
NyBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpkaXNwbGF5V2FzUmVjb25maWd1cmVk
KCkKICAgICBhc3NlcnRJc01haW5SdW5Mb29wKCk7CiAgICAgcmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xTdHJlYW1Xb3JrUXVldWUoKS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlz
IH1dKCkgewogICAgICAgICBhc3NlcnRJc0N1cnJlbnQocHJvdGVjdGVkVGhpcy0+bV9zdHJlYW1U
aHJlYWQpOwotICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX2NvbnRleHQtPmRpc3BsYXlXYXNSZWNv
bmZpZ3VyZWQoKTsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9jb250ZXh0LT51cGRhdGVDb250
ZXh0T25EaXNwbGF5UmVjb25maWd1cmF0aW9uKCk7CiAgICAgfSk7CiB9CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4
IGRiZjg0OWRjNmNiMTIyZjAzYjIxYTE3YTBlZmUwYWQ5MDlkOTMyY2EuLjFlYjkwZWYzNmViNTcy
MDIzNjIwZmFhZjY4MTIzMTEyMmUwNjAxNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtMTM5LDcgKzEzOSw3IEBACiAjaW1w
b3J0ICJBcHBLaXRTUEkuaCIKICNpbXBvcnQgIldLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RN
YWMuaCIKICNpbXBvcnQgIldlYlN3aXRjaGluZ0dQVUNsaWVudC5oIgotI2ltcG9ydCA8V2ViQ29y
ZS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRGlz
cGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Njcm9sbGJhclRo
ZW1lTWFjLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NmL0NvcmVUZXh0U1BJLmg+CiAjaW1wb3J0IDxw
YWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJLmg+CkBAIC05NzEsOSArOTcxLDkgQEAgdm9pZCBXZWJQ
cm9jZXNzOjpzY3JvbGxlclN0eWxlUHJlZmVyZW5jZUNoYW5nZWQoYm9vbCB1c2VPdmVybGF5U2Ny
b2xsYmFycykKICAgICBbTlNTY3JvbGxlckltcFBhaXIgX3VwZGF0ZUFsbFNjcm9sbGVySW1wUGFp
cnNGb3JOZXdSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGU6c3R5bGVdOwogfQogCi12b2lkIFdlYlBy
b2Nlc3M6OmRpc3BsYXlDb25maWd1cmF0aW9uQ2hhbmdlZChDR0RpcmVjdERpc3BsYXlJRCBkaXNw
bGF5SUQsIENHRGlzcGxheUNoYW5nZVN1bW1hcnlGbGFncyBmbGFncykKK3ZvaWQgV2ViUHJvY2Vz
czo6ZGlzcGxheUNvbmZpZ3VyYXRpb25DaGFuZ2VkKENHRGlyZWN0RGlzcGxheUlELCBDR0Rpc3Bs
YXlDaGFuZ2VTdW1tYXJ5RmxhZ3MgZmxhZ3MpCiB7Ci0gICAgR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xNYW5hZ2VyOjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKGRpc3BsYXlJRCwgZmxhZ3MsIG51bGxw
dHIpOworICAgIERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvcjo6c2luZ2xldG9uKCkuZGlzcGF0
Y2hEaXNwbGF5V2FzUmVjb25maWd1cmVkKGZsYWdzKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWIw
NjNkNDYxMDhiZWVjYjc5YTIyZGM4ZTFhODNkMzlhYzczZTIyYi4uNWE3M2JhMTc4N2M2MGMyMGE4
MWViYjlkNjg4ODZlOGZmNWI2MTM3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTEyLTAx
ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgR3JhcGhp
Y3NDb250ZXh0R0xBTkdMRSBzaG91bGQgbm90IGhhdmUgQ29jb2EgTWFjIHNwZWNpZmljIGRpc3Bs
YXkgcmVjb25maWd1cmF0aW9uIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMzY5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIENoYW5nZSB0aGUgdGVzdCB0byBhY2NvdW50IGZvciB0aGUgYmVoYXZp
b3IgY2hhbmdlCisgICAgICAgIHdoZXJlIHRoZSBzaW11bGF0ZWQgY29udGV4dCBjaGFuZ2UgZXZl
bnQgaXMgZGVsaXZlcmVkCisgICAgICAgIG9ubHkgdG8gdGhlIGNvbnRleHQgYmVpbmcgdGVzdGVk
LCBub3QgdG8gYWxsIGNvbnRleHRzLgorCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvd2Vi
Z2xjb250ZXh0Y2hhbmdlZGV2ZW50Lmh0bWw6CisKIDIwMjEtMTEtMzAgIFJvYmVydCBKZW5uZXIg
IDxKZW5uZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFQkFTRUxJTkUgWyBNb250ZXJleSBdZmFz
dC9jc3MvY29udGludWF0aW9uQ3Jhc2guaHRtbCAobGF5b3V0LXRlc3QpIGlzIGEgY29uc3RhbnQg
dGV4dCBmYWlsdXJlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93
ZWJnbGNvbnRleHRjaGFuZ2VkZXZlbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL3dlYmdsY29udGV4dGNoYW5nZWRldmVudC5odG1sCmluZGV4IDY1ZjNjZTFmNjIyODNmMGMy
YTlmODZjZmI1OTBiYmI2NTM5MmMzZmQuLjBlZTA0MTAzYjk2ZWJmNjE5YzJjYWU2NWFhMmE4YzQw
ODU3MTljMzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3dlYmds
Y29udGV4dGNoYW5nZWRldmVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL3dlYmdsY29udGV4dGNoYW5nZWRldmVudC5odG1sCkBAIC0zOSwxMCArMzksMTIgQEAgZnVu
Y3Rpb24gcnVuVGVzdCgpCiAgICAgICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOwog
ICAgIH0pOwogCi0gICAgbGV0IGdsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFzIiku
Z2V0Q29udGV4dCgid2ViZ2wiKTsKLSAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAg
d2luZG93LmludGVybmFscy5zaW11bGF0ZUV2ZW50Rm9yV2ViR0xDb250ZXh0KCJDb250ZXh0Q2hh
bmdlIiwgZ2wpOwotICAgIGVsc2UKKyAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJjYW52
YXMiKS5mb3JFYWNoKChjKSA9PiB7CisgICAgICAgIGxldCBnbCA9IGMuZ2V0Q29udGV4dCgid2Vi
Z2wiKTsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICB3aW5kb3cu
aW50ZXJuYWxzLnNpbXVsYXRlRXZlbnRGb3JXZWJHTENvbnRleHQoIkNvbnRleHRDaGFuZ2UiLCBn
bCk7CisgICAgfSk7CisgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICBsb2coIlRv
IHJ1biB0aGUgdGVzdCwgdHJpZ2dlciBhIEdQVSBjaGFuZ2UgbWFudWFsbHkuIik7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445697</attachid>
            <date>2021-12-02 02:32:10 -0800</date>
            <delta_ts>2021-12-02 06:15:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233695-20211202123208.patch</filename>
            <type>text/plain</type>
            <size>35276</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NDIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2EyYmViMDM3Y2Q2MTZm
NDU4NTVhNzFmNmE3OTBlOTFjZGNlNDk4NC4uM2M1ODY5YzBhOWM4MzgxY2Q1YjhlOTI5Y2IyOTQx
YTljNWY4YTgwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTEyLTAxICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgR3JhcGhpY3NDb250
ZXh0R0xBTkdMRSBzaG91bGQgbm90IGhhdmUgQ29jb2EgTWFjIHNwZWNpZmljIGRpc3BsYXkgcmVj
b25maWd1cmF0aW9uIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMzY5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1vdmUgY29kZSB0byBvYnNlcnZlIE1hYyBkaXNwbGF5IHJlY29uZmlndXJhdGlv
bgorICAgICAgICBhd2F5IGZyb20gR3JhcGhpY3NDb250ZXh0R0xBTkdMRSB0byBHcmFwaGljc0Nv
bnRleHRHTENvY29hLgorICAgICAgICBBcHBseSB0aGUgZGlzcGxheSByZWNvbmZpZ3VyYXRpb24g
bGlzdGVuZXIgb25seSBmb3IKKyAgICAgICAgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29j
b2EsIGl0IGlzIG5vdCBuZWVkZWQgZm9yIHRoZQorICAgICAgICBHUFUgcHJvY2VzcyBjb250ZXh0
cy4KKworICAgICAgICBNb3ZlIHRoZSBsaXN0ZW5lciBub3RpZmljYXRpb24gY29kZSBhd2F5IGZy
b20gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyCisgICAgICAgIGludG8gaXRzIG93biBj
bGFzcy4gVGhpcyB3YXkgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyIGRvZXMgbm90IG5l
ZWQKKyAgICAgICAgdG8ga25vdyBNYWMgc3BlY2lmaWMgaW50ZXJmYWNlcy4gTGF0ZXIgb24sIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlciBjYW4KKyAgICAgICAgYmUgcmVtb3ZlZCBhbHRv
Z2V0aGVyLgorCisgICAgICAgIENoYW5nZXMgYmVoYXZpb3Igc28gdGhhdCBzaW11bGF0ZUV2ZW50
Rm9yVGVzdGluZyBpbnZva2VzIHRoZSBzaW11bGF0ZWQgY29udGV4dAorICAgICAgICBjaGFuZ2Ug
b25seSBmb3IgdGhlIGNvbnRleHQgYmVpbmcgdGVzdGVkLiBUaGlzIHNpbXBsaWZpZXMgdGhlIGlt
cGxlbWVudGF0aW9uLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgcmVmYWN0b3IuCisKKyAgICAg
ICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlczo6ZWZmZWN0aXZlUG93ZXJQcmVmZXJl
bmNlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0Nv
bnRleHRHTEFOR0xFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5H
TEU6OnNpbXVsYXRlRXZlbnRGb3JUZXN0aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06CisgICAgICAgIChXZWJD
b3JlOjppbml0aWFsaXplRUdMRGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRHTENvY29hOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTENvY29hOjp+R3JhcGhpY3NDb250ZXh0R0xDb2NvYSk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnNldENvbnRleHRWaXNp
YmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnVwZGF0
ZUNvbnRleHRPbkRpc3BsYXlSZWNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0R0xBTkdMRTo6c2V0Q29udGV4dFZpc2liaWxpdHkpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6ZGlzcGxheVdhc1JlY29uZmln
dXJlZCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJv
Y2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0Rpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5H
TE1hbmFnZXIuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRv
cjo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDb25maWd1cmF0aW9uTW9u
aXRvcjo6YWRkQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDb25maWd1cmF0aW9u
TW9uaXRvcjo6cmVtb3ZlQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDb25maWd1
cmF0aW9uTW9uaXRvcjo6ZGlzcGF0Y2hEaXNwbGF5V2FzUmVjb25maWd1cmVkKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6ZGlzcGxheVdhc1JlY29uZmlndXJl
ZCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMTWFuYWdlci5oOgorCiAyMDIxLTEyLTAyICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgTmF2aWdhdGlvblBy
ZWxvYWRNYW5hZ2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNkYWUzNDBmNTI4NDhhYjkzODZiZWE3NDJlYTJkMjU0
N2I1NzlmZjkuLmVhYTIxZjBmYTAwOGE2NGJhODFmNDVjMTRhY2M1NGY2MWJkNzM5ZDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMTItMDEgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51
bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBHcmFwaGljc0NvbnRleHRHTEFOR0xFIHNob3VsZCBu
b3QgaGF2ZSBDb2NvYSBNYWMgc3BlY2lmaWMgZGlzcGxheSByZWNvbmZpZ3VyYXRpb24gY29kZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNjk1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJldmlvdXMg
R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6ZGlzcGxheVdhc1JlY29uZmlndXJlZCgpCisgICAgICAg
IHdhcyByZW5hbWVkIHRvIHVwZGF0ZUNvbnRleHRPbkRpc3BsYXlSZWNvbmZpZ3VyYXRpb24oKS4K
KyAgICAgICAgVGhlIGRpc3BsYXlXYXNSZWNvbmZpZ3VyZWQoKSB3YXMgdGFrZW4gaW50byB1c2Ug
aW4gdGhlIG5vdGlmaWNhdGlvbiBpbnRlcmZhY2UKKyAgICAgICAgRGlzcGxheUNvbmZpZ3VyYXRp
b25Nb25pdG9yOjpDbGllbnQ6OmRpc3BsYXlXYXNSZWNvbmZpZ3VyZWQoKS4KKworICAgICAgICAq
IEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6ZGlzcGxheVdhc1JlY29uZmlndXJl
ZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmRpc3BsYXlDb25maWd1cmF0aW9uQ2hhbmdlZCk6CisK
IDIwMjEtMTItMDIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1N
YWMuY21ha2UKaW5kZXggMTVkMjcxN2I3MjM1ODJjN2E3ZmU5OTJmMDU1ZmJlM2U3N2RkZmNlNi4u
YWZjOTZhMGI2MTIwN2E0ZGE3MzYxYzUxMzI0ZGY1Mjc2MzFlMGM5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZv
cm1NYWMuY21ha2UKQEAgLTM0Myw2ICszNDMsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJD
RVMKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db2xvck1hYy5tbQogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbQorICAgIHBsYXRm
b3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuY3BwCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL0Zsb2F0UG9pbnRNYWMubW0KICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvRmxvYXRTaXplTWFjLm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGEuY3BwCkBAIC02NzEsNiArNjcyLDcgQEAgbGlzdChBUFBFTkQgV2ViQ29y
ZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4
ZWxCdWZmZXJDb25mb3JtZXJDVi5oCiAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29sb3JN
YWMuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0
b3IuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NDaGVja3NNYWMuaAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL21hYy9TY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0LmgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzQ29jb2EudHh0CmluZGV4IDNmNWI2MmYzNzYzZmNmNGIyYjg0MDY2MmVkZmIzNTFmYmEx
MzdhZjYuLmM3OWZjNGQ3OGM2MjEwNTE4OTYxZWYxYzY0MTMyMzdhNWFjNzQ0MGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
U291cmNlc0NvY29hLnR4dApAQCAtNDEyLDYgKzQxMiw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2lv
cy9EaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2lvcy9JY29u
SU9TLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29sb3JNYWMubW0KIHBsYXRmb3JtL2dyYXBo
aWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbQorcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0Rpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNz
L21hYy9GbG9hdFBvaW50TWFjLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRmxvYXRTaXplTWFj
Lm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAxMWYxNzdmZjc2NDkyZGFmZTFlYTMyNDczZmJiNDQ4NWQ2ZmM3ZjY0Li5jOGMxZTM3ZmQ0NDVi
YWRiNTRlNGNlYzM4NjQ3YWE2OTI4OGU0ZWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzc2LDYgKzIzNzYsNyBAQAogCQk3
QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3NDaGVja3NNYWMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQjY4MEI4MjVCQTFCRTQwMDJC
ODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTdCRERBMzFGMjc0RkEwMjEwMDM4NjU5RSAvKiBHcmFwaGlj
c0NvbnRleHRHTENvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3QkREQTMxRDI3NEY5REE1MDAzODY1OUUgLyogR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdC
RTc0MjczODFGQTkwNkZCQjRGMEYyQyAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwQzRDMDJCRUQ4OTM2Rjgx
OEUyRjk5IC8qIEpTU1ZHR3JhcGhpY3NFbGVtZW50LmggKi87IH07CisJCTdCRkY1OUY0Mjc1Nzcy
NjcwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRkY1OUVGMjc1NzcxRTgwMDc3M0Qz
OSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzAyOUM2RTI0OTNDOEY4MDAyNjgyMDQgLyog
Q29sb3JUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0MwMjlDNkQyNDkzQzhGODAwMjY4MjA0IC8qIENvbG9yVHlwZXMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzE4NDNGRTFDOEI3MjgzMDAy
RUI5NzMgLyogQXV0b2ZpbGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdDMTg0M0ZDMUM4QjcyODMwMDJFQjk3MyAvKiBBdXRvZmlsbC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDMTkzQkJCMUY1RTBF
RUQwMDg4RjNFNiAvKiBDYW52YXNEaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMTkzQkI2MUY1RTBFQjkwMDg4RjNFNiAvKiBDYW52YXNE
aXJlY3Rpb24uaCAqLzsgfTsKQEAgLTExMzgyLDYgKzExMzgzLDggQEAKIAkJN0JEREEzMUMyNzRG
OURBNDAwMzg2NTlFIC8qIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENvY29hLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkREQTMxRDI3NEY5REE1MDAzODY1OUUgLyogR3Jh
cGhpY3NDb250ZXh0R0xDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBH
cmFwaGljc0NvbnRleHRHTENvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdC
RTcyNjVCMjU3NjNCOEQwMEU4NUQ5OCAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFz
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFz
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCRkY1OUVGMjc1NzcxRTgwMDc3
M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuaDsgZmlsZUVuY29k
aW5nID0gNDsgcGF0aCA9IERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk3QkZGNTlGMTI3NTc3MUU4MDA3NzNEMzkgLyogRGlzcGxheUNv
bmZpZ3VyYXRpb25Nb25pdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdDMDExRjNEMjRGQUQzNjAwMDVCRUYxMCAvKiBTZXR0aW5ncy5jcHAuZXJiICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFNldHRpbmdzLmNwcC5lcmI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDMDEx
RjNFMjRGQUQzNjAwMDVCRUYxMCAvKiBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmNwcC5lcmIg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5jcHAuZXJiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3QzAxMUYzRjI0RkFEMzYwMDA1QkVGMTAgLyogSW50ZXJuYWxTZXR0aW5n
c0dlbmVyYXRlZC5pZGwuZXJiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaWRsLmVy
Yjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4NDM2LDYgKzI4NDM5LDggQEAKIAkJ
CQlFREUzQTRGRjBDN0E0MzA2MDA5NTZBMzcgLyogQ29sb3JNYWMuaCAqLywKIAkJCQlCMjc1MzU0
QTBCMDUzODE0MDAyQ0U2NEYgLyogQ29sb3JNYWMubW0gKi8sCiAJCQkJMzdDMjM4MjAxMDk4Qzg0
MjAwRUY5RjcyIC8qIENvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tICovLAorCQkJCTdC
RkY1OUYxMjc1NzcxRTgwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuY3Bw
ICovLAorCQkJCTdCRkY1OUVGMjc1NzcxRTgwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlv
bk1vbml0b3IuaCAqLywKIAkJCQlCMjc1MzU0QjBCMDUzODE0MDAyQ0U2NEYgLyogRmxvYXRQb2lu
dE1hYy5tbSAqLywKIAkJCQlCMjc1MzU0RDBCMDUzODE0MDAyQ0U2NEYgLyogRmxvYXRTaXplTWFj
Lm1tICovLAogCQkJCUIyQUZGQzc1MEQwMEE1QzEwMDMwMDc0RCAvKiBGb250Q3VzdG9tUGxhdGZv
cm1EYXRhLmNwcCAqLywKQEAgLTMzODc2LDYgKzMzODgxLDcgQEAKIAkJCQlGNDdBMDlEMTIwQTkz
QTk3MDAyNDBGQUUgLyogRGlzYWJsZWRBZGFwdGF0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
N0VEQUFGQzkxOUEyQ0NEQzAwMzRERkQxIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMDdCQjFFNzAyNzE3NkNEOTAwMURGMjg5IC8qIERpc3BsYXlDYXB0dXJl
U291cmNlQ29jb2EuaCBpbiBIZWFkZXJzICovLAorCQkJCTdCRkY1OUY0Mjc1NzcyNjcwMDc3M0Qz
OSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
RTVGQkQzMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTVBRDA5NDAyNDA4OTY0MDAwREU0RDJGIC8qIERpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTU1QUQwOTNFMjQwODk2MzUwMERFNEQyRiAvKiBEaXNwbGF5
TGlzdEltYWdlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVz
LmgKaW5kZXggYTBhZDc3YmE4ODRiNWIzMzE0NTllNmZmZGVlMjBmNzg1NjQ1NDRmMy4uY2I5OWZi
MTYxN2RiYzZhYTk3MjkxYzg4MTlmODQ1Y2JkY2Y3ZmY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0xBdHRy
aWJ1dGVzLmgKQEAgLTY4LDYgKzY4LDEyIEBAIHN0cnVjdCBHcmFwaGljc0NvbnRleHRHTEF0dHJp
YnV0ZXMgewogI2lmIEVOQUJMRShXRUJYUikKICAgICBib29sIHhyQ29tcGF0aWJsZSB7IGZhbHNl
IH07CiAjZW5kaWYKKyAgICBQb3dlclByZWZlcmVuY2UgZWZmZWN0aXZlUG93ZXJQcmVmZXJlbmNl
KCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmIChmb3JjZVJlcXVlc3RGb3JIaWdoUGVyZm9ybWFu
Y2VHUFUpCisgICAgICAgICAgICByZXR1cm4gUG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVyZm9ybWFu
Y2U7CisgICAgICAgIHJldHVybiBwb3dlclByZWZlcmVuY2U7CisgICAgfQogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3ND
b250ZXh0R0xBTkdMRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmds
ZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAppbmRleCA2NDE1MTc5YjYyYjJjNDIzMjJlNjA0
OWUxMjU5YmRiZGQ4ZjYyMmM5Li41YzdkYmJjZTM3ZDdlNGZhNzBjMjkwODMxMzIyZDhjNjBiZWNm
MmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9H
cmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcApAQCAtMjkxNSw5ICsyOTE1
LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjp3YWl0QW5kVXBkYXRlT2xkZXN0RnJh
bWUoKQogdm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpzaW11bGF0ZUV2ZW50Rm9yVGVzdGlu
ZyhTaW11bGF0ZWRFdmVudEZvclRlc3RpbmcgZXZlbnQpCiB7CiAgICAgaWYgKGV2ZW50ID09IFNp
bXVsYXRlZEV2ZW50Rm9yVGVzdGluZzo6Q29udGV4dENoYW5nZSkgewotI2lmIFBMQVRGT1JNKENP
Q09BKQotICAgICAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJlZE1hbmFn
ZXIoKS5kaXNwbGF5V2FzUmVjb25maWd1cmVkKCk7Ci0jZW5kaWYKKyAgICAgICAgZGlzcGF0Y2hD
b250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IGlmIChldmVudCA9PSBTaW11bGF0ZWRFdmVudEZvclRlc3Rpbmc6OkdQVVN0YXR1c0ZhaWx1cmUp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dy
YXBoaWNzQ29udGV4dEdMQU5HTEUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaAppbmRleCA0ZTMwYmNiYzQ3NzQ1YmI4YjQy
MTUyN2JmZDM0OWJhZDY3N2JkMDY3Li40M2Q1ZDI5MGRkNjgyY2E1OTY1NjAxMTBhNjZhNWE3ZGE4
Zjg1MmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmds
ZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oCkBAIC0zOCw5ICszOCw2IEBA
CiAjaW5jbHVkZSAiSU9TdXJmYWNlLmgiCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykKLSNp
bmNsdWRlICJTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0LmgiCi0jZW5kaWYKIAogI2lm
IFVTRShOSUNPU0lBKQogbmFtZXNwYWNlIE5pY29zaWEgewpAQCAtMzQ4LDcgKzM0NSw2IEBAIHB1
YmxpYzoKICAgICB2b2lkIHBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKEltYWdlQnVmZmVy
JikgZmluYWw7CiAgICAgc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZlcj4gcGFpbnRSZW5kZXJpbmdS
ZXN1bHRzVG9QaXhlbEJ1ZmZlcigpIGZpbmFsOwogICAgIHZvaWQgcGFpbnRDb21wb3NpdGVkUmVz
dWx0c1RvQ2FudmFzKEltYWdlQnVmZmVyJikgZmluYWw7Ci0gICAgdm9pZCBzZXRDb250ZXh0Vmlz
aWJpbGl0eShib29sKSBmaW5hbDsKICAgICB2b2lkIHByZXBhcmVGb3JEaXNwbGF5KCkgb3ZlcnJp
ZGU7CiAKICAgICB2b2lkIGZvcmNlQ29udGV4dExvc3QoKTsKQEAgLTM1Nyw5ICszNTMsNiBAQCBw
dWJsaWM6CiAgICAgc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZlcj4gcmVhZFJlbmRlcmluZ1Jlc3Vs
dHNGb3JQYWludGluZygpOwogICAgIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+IHJlYWRDb21w
b3NpdGVkUmVzdWx0c0ZvclBhaW50aW5nKCk7CiAKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2
b2lkIGRpc3BsYXlXYXNSZWNvbmZpZ3VyZWQoKTsKLSNlbmRpZgogICAgIHVuc2lnbmVkIHRleHR1
cmVTZWVkKEdDR0x1aW50IHRleHR1cmUpOwogCiAgICAgY29uc3RleHByIHN0YXRpYyBFR0xOYXRp
dmVEaXNwbGF5VHlwZSBkZWZhdWx0RGlzcGxheSA9IEVHTF9ERUZBVUxUX0RJU1BMQVk7CkBAIC00
NDQsMTAgKzQzNyw2IEBAIHByb3RlY3RlZDoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNl
PiBtX2Rpc3BsYXlCdWZmZXJCYWNraW5nOwogICAgIHZvaWQqIG1fZGlzcGxheUJ1ZmZlclBidWZm
ZXIgeyBudWxscHRyIH07CiAjZW5kaWYKLSNpZiBQTEFURk9STShNQUMpCi0gICAgYm9vbCBtX3N3
aXRjaGVzR1BVT25EaXNwbGF5UmVjb25maWd1cmF0aW9uIHsgZmFsc2UgfTsKLSAgICBTY29wZWRI
aWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0IG1faGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdDsKLSNl
bmRpZgogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICBHQ0dMdWludCBtX2NvbXBv
c2l0b3JUZXh0dXJlIHsgMCB9OwogICAgIEdDR0x1aW50IG1faW50ZXJtZWRpYXRlVGV4dHVyZSB7
IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0dyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EuaAppbmRleCBlNDA5NWEyYjE5ZTI0ZDFk
YjgwOWMxODJmNjQzMmJkYzBjYjc4NmMyLi5hNjQ4ZmNkMmVjNGYwYjliNTFlMzAyMzY5ZTAxMjQ5
YjUyZDliNGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oCkBAIC0zNiw2ICszNiwx
MCBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHRHTENWQ29jb2E7CiB9CiAjZW5kaWYKIAorI2lmIFBM
QVRGT1JNKE1BQykKKyNpbmNsdWRlICJTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0Lmgi
CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBH
cmFwaGljc0NvbnRleHRHTENvY29hIDogcHVibGljIEdyYXBoaWNzQ29udGV4dEdMQU5HTEUgewpA
QCAtNjYsMTMgKzcwLDIxIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAg
IFJlZlB0cjxNZWRpYVNhbXBsZT4gcGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUo
KSBmaW5hbDsKICNlbmRpZgorICAgIHZvaWQgc2V0Q29udGV4dFZpc2liaWxpdHkoYm9vbCkgZmlu
YWw7CiAKKyNpZiBQTEFURk9STShNQUMpCisgICAgdm9pZCB1cGRhdGVDb250ZXh0T25EaXNwbGF5
UmVjb25maWd1cmF0aW9uKCk7CisjZW5kaWYKIHByb3RlY3RlZDoKICAgICBHcmFwaGljc0NvbnRl
eHRHTENvY29hKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmKTsKICAgICBi
b29sIGlzVmFsaWQoKSBjb25zdDsKIAogI2lmIEVOQUJMRShWSURFTykKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hPiBtX2N2OworI2VuZGlmCisjaWYgUExBVEZP
Uk0oTUFDKQorICAgIGJvb2wgbV9zd2l0Y2hlc0dQVU9uRGlzcGxheVJlY29uZmlndXJhdGlvbiB7
IGZhbHNlIH07CisgICAgU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdCBtX2hpZ2hQZXJm
b3JtYW5jZUdQVVJlcXVlc3Q7CiAjZW5kaWYKICAgICBmcmllbmQgY2xhc3MgR3JhcGhpY3NDb250
ZXh0R0xDVkNvY29hOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCmluZGV4IDAy
OWNjM2ZhZTQ3Zjg3MDIzYzVjMzAyMjVlMDI1OWEwNDFmMGQ2NjkuLmE0YWVlM2RmYWIwZjc3YTJm
ZWM1YjVjZGZkY2ZiODJlNDBlNDExZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5t
bQpAQCAtMTUzLDcgKzE1Myw3IEBAIHN0YXRpYyBFR0xEaXNwbGF5IGluaXRpYWxpemVFR0xEaXNw
bGF5KGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0cnMpCiAgICAgICAgIGRp
c3BsYXlBdHRyaWJ1dGVzLmFwcGVuZChFR0xfUExBVEZPUk1fQU5HTEVfVFlQRV9NRVRBTF9BTkdM
RSk7CiAgICAgICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgYXJlIGRlZmluZWQgZm9yIEVHTF9BTkdM
RV9wb3dlcl9wcmVmZXJlbmNlIGFzIEVHTENvbnRleHQgYXR0cmlidXRlcywKICAgICAgICAgLy8g
YnV0IE1ldGFsIGJhY2tlbmQgdXNlcyBFR0xEaXNwbGF5IGF0dHJpYnV0ZXMuCi0gICAgICAgIGF1
dG8gcG93ZXJQcmVmZXJlbmNlID0gYXR0cnMuZm9yY2VSZXF1ZXN0Rm9ySGlnaFBlcmZvcm1hbmNl
R1BVID8gR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzOjpQb3dlclByZWZlcmVuY2U6OkhpZ2hQ
ZXJmb3JtYW5jZSA6IGF0dHJzLnBvd2VyUHJlZmVyZW5jZTsKKyAgICAgICAgYXV0byBwb3dlclBy
ZWZlcmVuY2UgPSBhdHRycy5lZmZlY3RpdmVQb3dlclByZWZlcmVuY2UoKTsKICAgICAgICAgaWYg
KHBvd2VyUHJlZmVyZW5jZSA9PSBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXM6OlBvd2VyUHJl
ZmVyZW5jZTo6TG93UG93ZXIpIHsKICAgICAgICAgICAgIGRpc3BsYXlBdHRyaWJ1dGVzLmFwcGVu
ZChFR0xfUE9XRVJfUFJFRkVSRU5DRV9BTkdMRSk7CiAgICAgICAgICAgICBkaXNwbGF5QXR0cmli
dXRlcy5hcHBlbmQoRUdMX0xPV19QT1dFUl9BTkdMRSk7CkBAIC0xOTQsNyArMTk0LDcgQEAgc3Rh
dGljIGJvb2wgbmVlZHNFQUdMT25NYWMoKQogfQogI2VuZGlmCiAKLVJlZlB0cjxHcmFwaGljc0Nv
bnRleHRHTENvY29hPiBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKK1JlZlB0cjxHcmFwaGljc0Nv
bnRleHRHTENvY29hPiBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoR3JhcGhpY3NDb250
ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKIHsKICAgICBhdXRvIGNvbnRleHQgPSBhZG9w
dFJlZigqbmV3IEdyYXBoaWNzQ29udGV4dEdMQ29jb2EoV1RGTW92ZShhdHRyaWJ1dGVzKSkpOwog
ICAgIGlmICghY29udGV4dC0+aXNWYWxpZCgpKQpAQCAtMjAyLDYgKzIwMiwxOCBAQCBSZWZQdHI8
R3JhcGhpY3NDb250ZXh0R0xDb2NvYT4gR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y3JlYXRlKFdl
YkNvcmU6OkdyYXBoaWNzQwogICAgIHJldHVybiBjb250ZXh0OwogfQogCitHcmFwaGljc0NvbnRl
eHRHTENvY29hOjpHcmFwaGljc0NvbnRleHRHTENvY29hKEdyYXBoaWNzQ29udGV4dEdMQXR0cmli
dXRlcyYmIGNyZWF0aW9uQXR0cmlidXRlcykKKyAgICA6IEdyYXBoaWNzQ29udGV4dEdMQU5HTEUo
V1RGTW92ZShjcmVhdGlvbkF0dHJpYnV0ZXMpKQoreworICAgIGlmICghaXNWYWxpZCgpKQorICAg
ICAgICByZXR1cm47CisjaWYgUExBVEZPUk0oTUFDKQorICAgIGF1dG8gYXR0cmlidXRlcyA9IGNv
bnRleHRBdHRyaWJ1dGVzKCk7CisgICAgaWYgKCFhdHRyaWJ1dGVzLnVzZU1ldGFsICYmIGF0dHJp
YnV0ZXMuZWZmZWN0aXZlUG93ZXJQcmVmZXJlbmNlKCkgPT0gR3JhcGhpY3NDb250ZXh0R0xQb3dl
clByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZSkKKyAgICAgICAgbV9zd2l0Y2hlc0dQVU9uRGlz
cGxheVJlY29uZmlndXJhdGlvbiA9IHRydWU7CisjZW5kaWYKK30KKwogR3JhcGhpY3NDb250ZXh0
R0xDb2NvYTo6fkdyYXBoaWNzQ29udGV4dEdMQ29jb2EoKSA9IGRlZmF1bHQ7CiAKIElPU3VyZmFj
ZSogR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6ZGlzcGxheUJ1ZmZlcigpCkBAIC0yMTQsMTEgKzIy
Niw2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6bWFya0Rpc3BsYXlCdWZmZXJJblVz
ZSgpCiAgICAgcmV0dXJuIG1fc3dhcENoYWluLm1hcmtEaXNwbGF5QnVmZmVySW5Vc2UoKTsKIH0K
IAotR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYShXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQotICAgIDogR3JhcGhp
Y3NDb250ZXh0R0xBTkdMRShXVEZNb3ZlKGF0dHJpYnV0ZXMpKQotewotfQotCiAvLyBGSVhNRTog
QmVsb3cgaXMgZnVuY3Rpb25hbGl0eSB0aGF0IHNob3VsZCBiZSBtb3ZlZCB0byBHcmFwaGljc0Nv
bnRleHRHTENvY29hIHRvIHNpbXBsaWZ5IHRoZSBiYXNlIGNsYXNzLgogCiBHcmFwaGljc0NvbnRl
eHRHTEFOR0xFOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFKEdyYXBoaWNzQ29udGV4dEdMQXR0cmli
dXRlcyBhdHRycykKQEAgLTI1NSwxNCArMjYyLDEyIEBAIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6
OkdyYXBoaWNzQ29udGV4dEdMQU5HTEUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJz
CiAgICAgICAgIC8vIGRpc3BsYXkgcmVjb25maWd1cmF0aW9uIGNhbGxiYWNrLiBVcG9uIHRoaXMs
IHdlIHVwZGF0ZSB0aGUgQ0dMIGNvbnRleHRzIGluc2lkZSBBTkdMRS4KICAgICAgICAgY29uc3Qg
Y2hhciAqZGlzcGxheUV4dGVuc2lvbnMgPSBFR0xfUXVlcnlTdHJpbmcobV9kaXNwbGF5T2JqLCBF
R0xfRVhURU5TSU9OUyk7CiAgICAgICAgIGJvb2wgc3VwcG9ydHNQb3dlclByZWZlcmVuY2UgPSBz
dHJzdHIoZGlzcGxheUV4dGVuc2lvbnMsICJFR0xfQU5HTEVfcG93ZXJfcHJlZmVyZW5jZSIpOwot
ICAgICAgICBpZiAoc3VwcG9ydHNQb3dlclByZWZlcmVuY2UpIHsKLSAgICAgICAgICAgIG1fc3dp
dGNoZXNHUFVPbkRpc3BsYXlSZWNvbmZpZ3VyYXRpb24gPSBhdHRycy5wb3dlclByZWZlcmVuY2Ug
PT0gR3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZQotICAg
ICAgICAgICAgICAgIHx8IGF0dHJzLmZvcmNlUmVxdWVzdEZvckhpZ2hQZXJmb3JtYW5jZUdQVTsK
LSAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKCFzdXBwb3J0c1Bvd2VyUHJlZmVyZW5jZSkg
eworICAgICAgICAgICAgYXR0cnMuZm9yY2VSZXF1ZXN0Rm9ySGlnaFBlcmZvcm1hbmNlR1BVID0g
ZmFsc2U7CiAgICAgICAgICAgICBpZiAoYXR0cnMucG93ZXJQcmVmZXJlbmNlID09IEdyYXBoaWNz
Q29udGV4dEdMUG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVyZm9ybWFuY2UpIHsKICAgICAgICAgICAg
ICAgICBhdHRycy5wb3dlclByZWZlcmVuY2UgPSBHcmFwaGljc0NvbnRleHRHTFBvd2VyUHJlZmVy
ZW5jZTo6RGVmYXVsdDsKLSAgICAgICAgICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRlcyhhdHRy
cyk7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRlcyhhdHRy
cyk7CiAgICAgICAgIH0KICAgICB9CiAjZW5kaWYKQEAgLTUwNiw3ICs1MTEsNyBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dEdMQU5HTEU6OmNoZWNrR1BVU3RhdHVzKCkKICAgICByZXN0YXJ0U3RhdHVz
ID0gMDsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpzZXRDb250ZXh0VmlzaWJp
bGl0eShib29sIGlzVmlzaWJsZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6c2V0Q29u
dGV4dFZpc2liaWxpdHkoYm9vbCBpc1Zpc2libGUpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQogICAg
IGlmICghbV9zd2l0Y2hlc0dQVU9uRGlzcGxheVJlY29uZmlndXJhdGlvbikKQEAgLTUyMCwxNCAr
NTI1LDE0IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6c2V0Q29udGV4dFZpc2liaWxp
dHkoYm9vbCBpc1Zpc2libGUpCiAjZW5kaWYKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHRHTEFO
R0xFOjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkKLXsKICNpZiBQTEFURk9STShNQUMpCit2b2lk
IEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnVwZGF0ZUNvbnRleHRPbkRpc3BsYXlSZWNvbmZpZ3Vy
YXRpb24oKQorewogICAgIGlmIChtX3N3aXRjaGVzR1BVT25EaXNwbGF5UmVjb25maWd1cmF0aW9u
KQogICAgICAgICBFR0xfSGFuZGxlR1BVU3dpdGNoQU5HTEUobV9kaXNwbGF5T2JqKTsKLSNlbmRp
ZgogICAgIGRpc3BhdGNoQ29udGV4dENoYW5nZWROb3RpZmljYXRpb24oKTsKIH0KKyNlbmRpZgog
CiBib29sIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnJlc2hhcGVEaXNwbGF5QnVmZmVyQmFja2lu
ZygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1t
CmluZGV4IDNlZmIyMzhhOTliOWU5ZTUxN2NkMjZiZTdiNTM1Nzk4Yzg5ZjQ3MjUuLjI1NDI2MjMw
ZGZlZGFkMmM1ZWI5MTA0MjRhMDhhNzJlMzcxN2IyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlBy
b2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tCkBAIC0zMiw2ICszMiwxMCBAQAogI2ltcG9y
dCAiV2ViR0xMYXllci5oIgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KIAor
I2lmIFBMQVRGT1JNKE1BQykKKyNpbXBvcnQgIkRpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5o
IgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSB7CiAKQEAgLTQ4LDI0
ICs1Miw0NiBAQCBzdGF0aWMgUmV0YWluUHRyPFdlYkdMTGF5ZXI+IGNyZWF0ZVdlYkdMTGF5ZXIo
Y29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJgogfQogCiAvLyBHcmFwaGljc0NvbnRl
eHRHTCB0eXBlIHRoYXQgaXMgdXNlZCB3aGVuIFdlYkdMIGlzIHJ1biBpbi1wcm9jZXNzIGluIFdl
YkNvbnRlbnQgcHJvY2Vzcy4KLWNsYXNzIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29h
IGZpbmFsIDogcHVibGljIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EgeworY2xhc3MgV2ViUHJvY2Vz
c0dyYXBoaWNzQ29udGV4dEdMQ29jb2EgZmluYWwgOiBwdWJsaWMgR3JhcGhpY3NDb250ZXh0R0xD
b2NvYQorI2lmIFBMQVRGT1JNKE1BQykKKyAgICAsIHByaXZhdGUgRGlzcGxheUNvbmZpZ3VyYXRp
b25Nb25pdG9yOjpDbGllbnQKKyNlbmRpZgorCit7CiBwdWJsaWM6Ci0gICAgfldlYlByb2Nlc3NH
cmFwaGljc0NvbnRleHRHTENvY29hKCkgPSBkZWZhdWx0OworICAgIH5XZWJQcm9jZXNzR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYSgpOwogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIEdy
YXBoaWNzQ29udGV4dEdMQ29jb2E6OmlzVmFsaWQoKSAmJiBtX3dlYkdMTGF5ZXI7IH0KICAgICAv
LyBHcmFwaGljc0NvbnRleHRHTENvY29hIG92ZXJyaWRlcy4KICAgICBQbGF0Zm9ybUxheWVyKiBw
bGF0Zm9ybUxheWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDQUxh
eWVyKj4obV93ZWJHTExheWVyLmdldCgpKTsgfQogICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXko
KSBmaW5hbDsKIHByaXZhdGU6Ci0gICAgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2Eo
R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKLSAgICAgICAgOiBHcmFw
aGljc0NvbnRleHRHTENvY29hKFdURk1vdmUoYXR0cmlidXRlcykpCi0gICAgICAgICwgbV93ZWJH
TExheWVyKGNyZWF0ZVdlYkdMTGF5ZXIoY29udGV4dEF0dHJpYnV0ZXMoKSkpCi0gICAgewotICAg
IH0KKyNpZiBQTEFURk9STShNQUMpCisgICAgLy8gRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9y
OjpDbGllbnQgb3ZlcnJpZGVzLgorICAgIHZvaWQgZGlzcGxheVdhc1JlY29uZmlndXJlZCgpIGZp
bmFsOworI2VuZGlmCisKKyAgICBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYShHcmFw
aGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJik7CiAgICAgUmV0YWluUHRyPFdlYkdMTGF5ZXI+IG1f
d2ViR0xMYXllcjsKIAogICAgIGZyaWVuZCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0w+IFdlYkNv
cmU6OmNyZWF0ZVdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTChjb25zdCBHcmFwaGljc0NvbnRl
eHRHTEF0dHJpYnV0ZXMmKTsKIH07CiAKK1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29h
OjpXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYShHcmFwaGljc0NvbnRleHRHTEF0dHJp
YnV0ZXMmJiBhdHRyaWJ1dGVzKQorICAgIDogR3JhcGhpY3NDb250ZXh0R0xDb2NvYShXVEZNb3Zl
KGF0dHJpYnV0ZXMpKQorICAgICwgbV93ZWJHTExheWVyKGNyZWF0ZVdlYkdMTGF5ZXIoY29udGV4
dEF0dHJpYnV0ZXMoKSkpCit7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIERpc3BsYXlDb25maWd1
cmF0aW9uTW9uaXRvcjo6c2luZ2xldG9uKCkuYWRkQ2xpZW50KCp0aGlzKTsKKyNlbmRpZgorfQor
CitXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6fldlYlByb2Nlc3NHcmFwaGljc0Nv
bnRleHRHTENvY29hKCkKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgRGlzcGxheUNvbmZpZ3Vy
YXRpb25Nb25pdG9yOjpzaW5nbGV0b24oKS5yZW1vdmVDbGllbnQoKnRoaXMpOworI2VuZGlmCit9
CisKIHZvaWQgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBhcmVGb3JEaXNw
bGF5KCkKIHsKICAgICBHcmFwaGljc0NvbnRleHRHTENvY29hOjpwcmVwYXJlRm9yRGlzcGxheSgp
OwpAQCAtNzgsNiArMTA0LDEzIEBAIHZvaWQgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29j
b2E6OnByZXBhcmVGb3JEaXNwbGF5KCkKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9
CiAKKyNpZiBQTEFURk9STShNQUMpCit2b2lkIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENv
Y29hOjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkKK3sKKyAgICB1cGRhdGVDb250ZXh0T25EaXNw
bGF5UmVjb25maWd1cmF0aW9uKCk7Cit9CisjZW5kaWYKKwogfQogCiBSZWZQdHI8R3JhcGhpY3ND
b250ZXh0R0w+IGNyZWF0ZVdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTChjb25zdCBHcmFwaGlj
c0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5Q29uZmlndXJh
dGlvbk1vbml0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhZGRkZjBjMmZjOTNhNDlmZWY1NDJhZmZjMmQ3
NmNmYWY4OGE4ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmNwcApAQCAtMCwwICsxLDcy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpc3BsYXlD
b25maWd1cmF0aW9uTW9uaXRvci5oIgorCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW5jbHVkZSA8
d3RmL1RocmVhZEFzc2VydGlvbnMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitEaXNwbGF5
Q29uZmlndXJhdGlvbk1vbml0b3I6OkNsaWVudDo6Q2xpZW50KCkgPSBkZWZhdWx0OworCitEaXNw
bGF5Q29uZmlndXJhdGlvbk1vbml0b3I6OkNsaWVudDo6fkNsaWVudCgpID0gZGVmYXVsdDsKKwor
RGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yOjpEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3Io
KSA9IGRlZmF1bHQ7CisKK0Rpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvcjo6fkRpc3BsYXlDb25m
aWd1cmF0aW9uTW9uaXRvcigpID0gZGVmYXVsdDsKKworRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25p
dG9yJiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3I6OnNpbmdsZXRvbigpCit7CisgICAgYXNz
ZXJ0SXNNYWluVGhyZWFkKCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPERpc3BsYXlDb25m
aWd1cmF0aW9uTW9uaXRvcj4gaW5zdGFuY2U7CisgICAgcmV0dXJuIGluc3RhbmNlOworfQorCit2
b2lkIERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvcjo6YWRkQ2xpZW50KENsaWVudCYgY2xpZW50
KQoreworICAgIEFTU0VSVCghbV9jbGllbnRzLmNvbnRhaW5zKCZjbGllbnQpKTsKKyAgICBtX2Ns
aWVudHMuYXBwZW5kKCZjbGllbnQpOworfQorCit2b2lkIERpc3BsYXlDb25maWd1cmF0aW9uTW9u
aXRvcjo6cmVtb3ZlQ2xpZW50KENsaWVudCYgY2xpZW50KQoreworICAgIEFTU0VSVChtX2NsaWVu
dHMuY29udGFpbnMoJmNsaWVudCkpOworICAgIG1fY2xpZW50cy5yZW1vdmVGaXJzdCgmY2xpZW50
KTsKK30KKwordm9pZCBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3I6OmRpc3BhdGNoRGlzcGxh
eVdhc1JlY29uZmlndXJlZChDR0Rpc3BsYXlDaGFuZ2VTdW1tYXJ5RmxhZ3MgZmxhZ3MpCit7Cisg
ICAgaWYgKCEoZmxhZ3MgJiBrQ0dEaXNwbGF5U2V0TW9kZUZsYWcpKQorICAgICAgICByZXR1cm47
CisgICAgZm9yIChhdXRvKiBjbGllbnQgOiBjb3B5VG9WZWN0b3IobV9jbGllbnRzKSkKKyAgICAg
ICAgY2xpZW50LT5kaXNwbGF5V2FzUmVjb25maWd1cmVkKCk7Cit9CisKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheUNv
bmZpZ3VyYXRpb25Nb25pdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzlmMDQ0N2ZhNGVm
ZWUwMGY0OTczM2I1NjYyYjg1NzhlMDY1YWQzMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3Iu
aApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFU
Rk9STShNQUMpCisKKyNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dEaXNwbGF5Q29uZmlndXJhdGlv
bi5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEaXNwbGF5Q29uZmlndXJhdGlv
bk1vbml0b3IgeworcHVibGljOgorICAgIH5EaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IoKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yJiBz
aW5nbGV0b24oKTsKKworICAgIGNsYXNzIENsaWVudCB7CisgICAgcHVibGljOgorICAgICAgICBD
bGllbnQoKTsKKyAgICAgICAgdmlydHVhbCB+Q2xpZW50KCk7CisgICAgICAgIHZpcnR1YWwgdm9p
ZCBkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkgPSAwOworICAgIH07CisgICAgdm9pZCBhZGRDbGll
bnQoQ2xpZW50Jik7CisgICAgdm9pZCByZW1vdmVDbGllbnQoQ2xpZW50Jik7CisKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGRpc3BhdGNoRGlzcGxheVdhc1JlY29uZmlndXJlZChDR0Rpc3BsYXlD
aGFuZ2VTdW1tYXJ5RmxhZ3MpOworcHJpdmF0ZToKKyAgICBEaXNwbGF5Q29uZmlndXJhdGlvbk1v
bml0b3IoKTsKKyAgICBWZWN0b3I8Q2xpZW50Kj4gbV9jbGllbnRzOworICAgIGZyaWVuZCBOZXZl
ckRlc3Ryb3llZDxEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3I+OworfTsKKworfQorI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwCmluZGV4
IDJmNzc0NTJhMTM2NDI4ODIzZjY5OWJjMjQxMzlhNWQxODJkNmMyYTIuLjEyZDRiM2FmZjI5MWQ4
MjAxMDc3NGQ3ZTZkNGY0ODk3MDcyNGMyZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwCkBAIC00MywyMyArNDMsNiBAQCBHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTE1hbmFnZXImIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVk
TWFuYWdlcigpCiAgICAgcmV0dXJuIHNfbWFuYWdlcjsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykK
LXZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpkaXNwbGF5V2FzUmVjb25maWd1
cmVkKENHRGlyZWN0RGlzcGxheUlELCBDR0Rpc3BsYXlDaGFuZ2VTdW1tYXJ5RmxhZ3MgZmxhZ3Ms
IHZvaWQqKQotewotICAgIExPRyhXZWJHTCwgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdl
cjo6ZGlzcGxheVdhc1JlY29uZmlndXJlZCIpOwotICAgIGlmIChmbGFncyAmIGtDR0Rpc3BsYXlT
ZXRNb2RlRmxhZykKLSAgICAgICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFy
ZWRNYW5hZ2VyKCkuZGlzcGxheVdhc1JlY29uZmlndXJlZCgpOwotfQotI2VuZGlmCi0KLSNpZiBQ
TEFURk9STShDT0NPQSkKLXZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpkaXNw
bGF5V2FzUmVjb25maWd1cmVkKCkKLXsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGNvbnRleHQgOiBt
X2NvbnRleHRzKQotICAgICAgICBjb250ZXh0LT5kaXNwbGF5V2FzUmVjb25maWd1cmVkKCk7Ci19
Ci0jZW5kaWYKLQogdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OmFkZENvbnRl
eHQoR3JhcGhpY3NDb250ZXh0R0xUeXBlKiBjb250ZXh0KQogewogICAgIEFTU0VSVChjb250ZXh0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
cmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaAppbmRleCBm
YjVjMjhjOThkMThkODk5NTM4ZDc5NmViYzIxODhhN2Y0YzU5NDUwLi5mMDc5MDljODFiOTRlNmRm
M2RiNGEyZjE0Y2I3ODRjYTMzMTIzMjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4
dEdMT3BlbkdMTWFuYWdlci5oCkBAIC0yOCwxMCArMjgsNiBAQAogI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCi0jaWYgUExBVEZPUk0oTUFDKQotI2lu
Y2x1ZGUgPENvcmVHcmFwaGljcy9DR0Rpc3BsYXlDb25maWd1cmF0aW9uLmg+Ci0jZW5kaWYKLQog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCB1bnNpZ25lZCBNYXhDb250ZXh0cyA9IDE2OwpA
QCAtNTksMTMgKzU1LDYgQEAgcHVibGljOgogICAgIHZvaWQgcmVjeWNsZUNvbnRleHRJZk5lY2Vz
c2FyeSgpOwogICAgIGJvb2wgaGFzVG9vTWFueUNvbnRleHRzKCkgY29uc3QgeyByZXR1cm4gbV9j
b250ZXh0cy5zaXplKCkgPj0gTWF4Q29udGV4dHM7IH0KICAgICAKLSNpZiBQTEFURk9STShNQUMp
Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZGlzcGxheVdhc1JlY29uZmlndXJlZChD
R0RpcmVjdERpc3BsYXlJRCwgQ0dEaXNwbGF5Q2hhbmdlU3VtbWFyeUZsYWdzLCB2b2lkKik7Ci0j
ZW5kaWYKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2b2lkIGRpc3BsYXlXYXNSZWNvbmZpZ3Vy
ZWQoKTsKLSNlbmRpZgotICAgIAogcHJpdmF0ZToKICAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TE1hbmFnZXIoKSA9IGRlZmF1bHQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRl
eHR1cmVNYXBwZXIuaAppbmRleCBkMWFjMGViN2MwYWRhMmZmODhmMTc5ZGI5Y2Q0ZWMwYTA1ZTc2
Y2E3Li5iNDBlNzk4MzNlODExMGY1ZDA5N2VhZDNiNTMxZjFlNjJkNmQ4ZDFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0
R0xUZXh0dXJlTWFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5oCkBAIC01NCw2ICs1NCw5IEBA
IHB1YmxpYzoKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFJlZlB0cjxNZWRpYVNhbXBs
ZT4gcGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUoKSBmaW5hbDsKICNlbmRpZgor
I2lmIFVTRShBTkdMRSkKKyAgICB2b2lkIHNldENvbnRleHRWaXNpYmlsaXR5KGJvb2wpIGZpbmFs
OworI2VuZGlmCiAKIHByb3RlY3RlZDoKICAgICBHcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBw
ZXIoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdM
VGV4dHVyZU1hcHBlckFOR0xFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXJBTkdMRS5jcHAKaW5kZXggYTNj
ZTIyODc0N2ExN2Y5ZmQ5NGJlNTRjMzQxMjRlNWU4ZDQyYzIxZi4uZjY5YWRhMTg0ZWFhMDQ3NjRl
N2I2MzQ3YTA1ODZkZWQ2ZTYyZWNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlckFOR0xFLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3ND
b250ZXh0R0xUZXh0dXJlTWFwcGVyQU5HTEUuY3BwCkBAIC0xNzIsNyArMTcyLDcgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHRHTEFOR0xFOjpjaGVja0dQVVN0YXR1cygpCiB7CiB9CiAKLXZvaWQgR3Jh
cGhpY3NDb250ZXh0R0xBTkdMRTo6c2V0Q29udGV4dFZpc2liaWxpdHkoYm9vbCkKK3ZvaWQgR3Jh
cGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyOjpzZXRDb250ZXh0VmlzaWJpbGl0eShib29sKQog
ewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAppbmRleCA4NGIyZTY4NDVkMDc0OWNkYWEx
ZTc4Yjg1MzBkOGY4ZWE1YTBlMDVkLi4wNzMzZjNjMTc4NmUxYzU3MGJjOWUzYTRmNGQxYjhlNzI3
ZDE3YzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKQEAgLTEwNyw3ICsxMDcsNyBAQCB2
b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkKICAg
ICBhc3NlcnRJc01haW5SdW5Mb29wKCk7CiAgICAgcmVtb3RlR3JhcGhpY3NDb250ZXh0R0xTdHJl
YW1Xb3JrUXVldWUoKS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dKCkg
ewogICAgICAgICBhc3NlcnRJc0N1cnJlbnQocHJvdGVjdGVkVGhpcy0+bV9zdHJlYW1UaHJlYWQp
OwotICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX2NvbnRleHQtPmRpc3BsYXlXYXNSZWNvbmZpZ3Vy
ZWQoKTsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9jb250ZXh0LT51cGRhdGVDb250ZXh0T25E
aXNwbGF5UmVjb25maWd1cmF0aW9uKCk7CiAgICAgfSk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IGRiZjg0
OWRjNmNiMTIyZjAzYjIxYTE3YTBlZmUwYWQ5MDlkOTMyY2EuLjFlYjkwZWYzNmViNTcyMDIzNjIw
ZmFhZjY4MTIzMTEyMmUwNjAxNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtMTM5LDcgKzEzOSw3IEBACiAjaW1wb3J0ICJB
cHBLaXRTUEkuaCIKICNpbXBvcnQgIldLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMuaCIK
ICNpbXBvcnQgIldlYlN3aXRjaGluZ0dQVUNsaWVudC5oIgotI2ltcG9ydCA8V2ViQ29yZS9HcmFw
aGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRGlzcGxheUNv
bmZpZ3VyYXRpb25Nb25pdG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Njcm9sbGJhclRoZW1lTWFj
Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NmL0NvcmVUZXh0U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3Bp
L21hYy9ISVNlcnZpY2VzU1BJLmg+CkBAIC05NzEsOSArOTcxLDkgQEAgdm9pZCBXZWJQcm9jZXNz
OjpzY3JvbGxlclN0eWxlUHJlZmVyZW5jZUNoYW5nZWQoYm9vbCB1c2VPdmVybGF5U2Nyb2xsYmFy
cykKICAgICBbTlNTY3JvbGxlckltcFBhaXIgX3VwZGF0ZUFsbFNjcm9sbGVySW1wUGFpcnNGb3JO
ZXdSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGU6c3R5bGVdOwogfQogCi12b2lkIFdlYlByb2Nlc3M6
OmRpc3BsYXlDb25maWd1cmF0aW9uQ2hhbmdlZChDR0RpcmVjdERpc3BsYXlJRCBkaXNwbGF5SUQs
IENHRGlzcGxheUNoYW5nZVN1bW1hcnlGbGFncyBmbGFncykKK3ZvaWQgV2ViUHJvY2Vzczo6ZGlz
cGxheUNvbmZpZ3VyYXRpb25DaGFuZ2VkKENHRGlyZWN0RGlzcGxheUlELCBDR0Rpc3BsYXlDaGFu
Z2VTdW1tYXJ5RmxhZ3MgZmxhZ3MpCiB7Ci0gICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5h
Z2VyOjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKGRpc3BsYXlJRCwgZmxhZ3MsIG51bGxwdHIpOwor
ICAgIERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvcjo6c2luZ2xldG9uKCkuZGlzcGF0Y2hEaXNw
bGF5V2FzUmVjb25maWd1cmVkKGZsYWdzKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggN2Y4MjJmOWVm
MjFmZDczMjVlNTUxMzcyZTcxZjE3ZjUwYzc5MmJlNS4uOWE2ZDNiODUwNTU0MzZlMWFkZjg0MDRj
ZTljNjgyMmNkZmU3ZmUyYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTEyLTAxICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgR3JhcGhpY3NDb250
ZXh0R0xBTkdMRSBzaG91bGQgbm90IGhhdmUgQ29jb2EgTWFjIHNwZWNpZmljIGRpc3BsYXkgcmVj
b25maWd1cmF0aW9uIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMzY5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIENoYW5nZSB0aGUgdGVzdCB0byBhY2NvdW50IGZvciB0aGUgYmVoYXZpb3IgY2hh
bmdlCisgICAgICAgIHdoZXJlIHRoZSBzaW11bGF0ZWQgY29udGV4dCBjaGFuZ2UgZXZlbnQgaXMg
ZGVsaXZlcmVkCisgICAgICAgIG9ubHkgdG8gdGhlIGNvbnRleHQgYmVpbmcgdGVzdGVkLCBub3Qg
dG8gYWxsIGNvbnRleHRzLgorCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2xjb250
ZXh0Y2hhbmdlZGV2ZW50Lmh0bWw6CisKIDIwMjEtMTItMDIgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBOYXZpZ2F0aW9uUHJlbG9h
ZE1hbmFnZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3dlYmds
Y29udGV4dGNoYW5nZWRldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
d2ViZ2xjb250ZXh0Y2hhbmdlZGV2ZW50Lmh0bWwKaW5kZXggNjVmM2NlMWY2MjI4M2YwYzJhOWY4
NmNmYjU5MGJiYjY1MzkyYzNmZC4uMGVlMDQxMDNiOTZlYmY2MTljMmNhZTY1YWEyYThjNDA4NTcx
OWMzNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2xjb250
ZXh0Y2hhbmdlZGV2ZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
d2ViZ2xjb250ZXh0Y2hhbmdlZGV2ZW50Lmh0bWwKQEAgLTM5LDEwICszOSwxMiBAQCBmdW5jdGlv
biBydW5UZXN0KCkKICAgICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7CiAgICAg
fSk7CiAKLSAgICBsZXQgZ2wgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJjYW52YXMiKS5nZXRD
b250ZXh0KCJ3ZWJnbCIpOwotICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICB3aW5k
b3cuaW50ZXJuYWxzLnNpbXVsYXRlRXZlbnRGb3JXZWJHTENvbnRleHQoIkNvbnRleHRDaGFuZ2Ui
LCBnbCk7Ci0gICAgZWxzZQorICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImNhbnZhcyIp
LmZvckVhY2goKGMpID0+IHsKKyAgICAgICAgbGV0IGdsID0gYy5nZXRDb250ZXh0KCJ3ZWJnbCIp
OworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIHdpbmRvdy5pbnRl
cm5hbHMuc2ltdWxhdGVFdmVudEZvcldlYkdMQ29udGV4dCgiQ29udGV4dENoYW5nZSIsIGdsKTsK
KyAgICB9KTsKKyAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCiAgICAgICAgIGxvZygiVG8gcnVu
IHRoZSB0ZXN0LCB0cmlnZ2VyIGEgR1BVIGNoYW5nZSBtYW51YWxseS4iKTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>