<?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>237701</bug_id>
          
          <creation_ts>2022-03-10 01:32:05 -0800</creation_ts>
          <short_desc>Unify reference box / CTM computation in RenderLayer</short_desc>
          <delta_ts>2022-04-07 15:56:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>237553</dependson>
    
    <dependson>237554</dependson>
          <blocked>90738</blocked>
    
    <blocked>211787</blocked>
    
    <blocked>237711</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>rbuis</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1849995</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-03-10 01:32:05 -0800</bug_when>
    <thetext>Currently RenderLayer::updateTransform() and RenderLayer::currentTransform() contain code to compute the CTM, apply pixel snapping, etc.
Unify them into a single updateTransformFromStyle() helper method, that can be used later by LBSE to e.g. disable pixel snapping for the SVG subtree in one place, instead of sprinkling LBSE code over multiple places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849996</commentid>
    <comment_count>1</comment_count>
      <attachid>454324</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-03-10 01:34:23 -0800</bug_when>
    <thetext>Created attachment 454324
Patch, v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850063</commentid>
    <comment_count>2</comment_count>
      <attachid>454349</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-03-10 05:56:51 -0800</bug_when>
    <thetext>Created attachment 454349
Patch, v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850074</commentid>
    <comment_count>3</comment_count>
      <attachid>454355</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-03-10 06:17:41 -0800</bug_when>
    <thetext>Created attachment 454355
Patch, v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850275</commentid>
    <comment_count>4</comment_count>
      <attachid>454410</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-03-10 15:37:42 -0800</bug_when>
    <thetext>Created attachment 454410
Patch, v4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850779</commentid>
    <comment_count>5</comment_count>
      <attachid>454561</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-03-13 16:46:45 -0700</bug_when>
    <thetext>Created attachment 454561
Patch, v5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851715</commentid>
    <comment_count>6</comment_count>
      <attachid>454816</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-03-16 03:25:30 -0700</bug_when>
    <thetext>Created attachment 454816
Patch, v6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851746</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-16 05:39:59 -0700</bug_when>
    <thetext>&lt;rdar://problem/90364879&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853137</commentid>
    <comment_count>8</comment_count>
      <attachid>455225</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-03-21 02:50:39 -0700</bug_when>
    <thetext>Created attachment 455225
Patch, v7</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858026</commentid>
    <comment_count>9</comment_count>
      <attachid>456617</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-04-04 13:34:46 -0700</bug_when>
    <thetext>Created attachment 456617
Patch, v8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858601</commentid>
    <comment_count>10</comment_count>
      <attachid>456752</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-04-05 14:58:45 -0700</bug_when>
    <thetext>Created attachment 456752
Patch, v9</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859179</commentid>
    <comment_count>11</comment_count>
      <attachid>456901</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-04-07 03:24:05 -0700</bug_when>
    <thetext>Created attachment 456901
Patch, v10</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859219</commentid>
    <comment_count>12</comment_count>
      <attachid>456901</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-04-07 06:18:47 -0700</bug_when>
    <thetext>Comment on attachment 456901
Patch, v10

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

&gt; Source/WebCore/rendering/svg/RenderSVGTransformableContainer.h:50
&gt; +

Empty line maybe not needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859484</commentid>
    <comment_count>13</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-04-07 15:56:42 -0700</bug_when>
    <thetext>Committed r292575 (?): &lt;https://commits.webkit.org/r292575&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454324</attachid>
            <date>2022-03-10 01:34:23 -0800</date>
            <delta_ts>2022-03-10 05:56:46 -0800</delta_ts>
            <desc>Patch, v1</desc>
            <filename>bug-237701-20220310013421.patch</filename>
            <type>text/plain</type>
            <size>19375</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWZlNDFmZGZiNzA0ZDhk
MTgyMzdkNzRkZGNjMzEwMTM5YzcwODM2ZS4uOWJhZWUxMjRhYjE2NjhmNTJlZTllOGY5NmEwMmIx
ODdiNTc3MmUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIyLTAzLTEwICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIFVuaWZ5
IHJlZmVyZW5jZSBib3ggLyBDVE0gY29tcHV0YXRpb24gaW4gUmVuZGVyTGF5ZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzcwMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dHJhY3QgdGhlIGNvZGUg
dGhhdCBjb21wdXRlcyB0aGUgcmVmZXJlbmNlIGJveCwgb2J0YWlucyB0aGUgQ1RNLCBhcHBsaWVz
IHBpeGVsIHNuYXBwaW5nLCBldGMuIGludG8KKyAgICAgICAgYSBoZWxwZXIgZnVuY3Rpb24gdG8g
c2hhcmUgdGhlIGNvZGUgYmV0d2VlbiBSZW5kZXJMYXllcjo6dXBkYXRlVHJhbnNmb3JtKCkgLyBS
ZW5kZXJMYXllcjo6Y3VycmVudFRyYW5zZm9ybSgpLgorCisgICAgICAgIFRoaXMgc2ltcGxpZmll
cyB0aGUgdXBjb21pbmcgTEJTRSBTVkcgdHJhbnNmb3JtIHN1cHBvcnQgaGF0IGNhbiBiZSB1c2Vk
IGxhdGVyIGJ5IExCU0UgdG8gZS5nLiBkaXNhYmxlIHBpeGVsIHNuYXBwaW5nIGZvciB0aGUgU1ZH
IHN1YnRyZWUKKyAgICAgICAgaW4gb25lIHBsYWNlLCBpbnN0ZWFkIG9mIHNwcmlua2xpbmcgTEJT
RSBjb2RlIG92ZXIgbXVsdGlwbGUgcGxhY2VzLgorCisgICAgICAgIEV4dGVuZCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0OjphcHBseVRyYW5zZm9ybSgpIHRvIHRha2UgYW4gYWRkaXRpb25hbCBSZW5k
ZXJTdHlsZSBwYXJhbWV0ZXIsCisgICAgICAgIHRoYXQgaXMgdXNlZCB0byBhY2Nlc3MgdGhlIENT
UyB0cmFuc2Zvcm0gb3BlcmF0aW9ucywgaW5zdGVhZCBvZiBhbHdheXMgcXVlcnlpbmcgdGhlIHJl
bmRlcmVycworICAgICAgICBzdHlsZSgpLiBSZW5kZXJMYXllcjo6dXBkYXRlVHJhbnNmb3JtKCkg
c3RpbGwgcGFzc2VzIHRoZSByZW5kZXJlcnMgc3R5bGUoKSwgd2hlcmVhcworICAgICAgICBSZW5k
ZXJMYXllcjo6Y3VycmVudFRyYW5zZm9ybSgpIHBhc3NlcyB0aGUgZWxlbWVudHMgYW5pbWF0ZWRT
dHlsZSgpLCBpZiBhbiBhbmltYXRpb24gaXMgcnVubmluZy4KKworICAgICAgICBDb3ZlcmVkIGJ5
IGV4aXN0aW5nIHRlc3RzLCBubyBjaGFuZ2UgaW4gYmVoYXZpb3VyLgorCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmFwcGx5
VHJhbnNmb3JtIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjphcHBseVRyYW5zZm9ybSBjb25zdCk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVRyYW5zZm9ybUZyb21T
dHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlVHJhbnNmb3JtKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjdXJyZW50VHJhbnNmb3JtIGNvbnN0KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlVHJhbnNmb3JtKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
TW9kZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6
OmFwcGx5VHJhbnNmb3JtIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jvb3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1NoYXBlOjphcHBseVRyYW5zZm9ybSBj
b25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjphcHBseVRy
YW5zZm9ybSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyLmg6CisKIDIwMjItMDMtMDkgIE5pa29sYXMgWmltbWVybWFubiAgPG56
aW1tZXJtYW5uQGlnYWxpYS5jb20+CiAKICAgICAgICAgRXh0cmFjdCB0cmFuc2Zvcm0tb3JpZ2lu
IGhhbmRsaW5nIG91dCBvZiBSZW5kZXJTdHlsZTo6YXBwbHlUcmFuc2Zvcm0oKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCAxOGJlYTM3NzQzNjdiMjk2ZDMwMjUxNjg1
ZjQ1YTIzNzFhYzZjY2NlLi40MTVlOTRmNWNiYzFhZWY4OTM4ZDE4ZTcxYmY3NDQ1NWMxMWQ5OGM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtNjY5LDkgKzY2OSw5
IEBAIHZvaWQgUmVuZGVyQm94Ojp1cGRhdGVMYXllclRyYW5zZm9ybSgpCiAgICAgICAgIGxheWVy
KCktPnVwZGF0ZVRyYW5zZm9ybSgpOwogfQogCi12b2lkIFJlbmRlckJveDo6YXBwbHlUcmFuc2Zv
cm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHQsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gs
IE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiBvcHRpb25z
KSBjb25zdAordm9pZCBSZW5kZXJCb3g6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0
cml4JiB0LCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRp
bmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiBv
cHRpb25zKSBjb25zdAogewotICAgIHN0eWxlKCkuYXBwbHlUcmFuc2Zvcm0odCwgYm91bmRpbmdC
b3gsIG9wdGlvbnMpOworICAgIHN0eWxlLmFwcGx5VHJhbnNmb3JtKHQsIGJvdW5kaW5nQm94LCBv
cHRpb25zKTsKIH0KIAogTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNvbnN0cmFpbkxvZ2ljYWxXaWR0
aEluRnJhZ21lbnRCeU1pbk1heChMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCBh
dmFpbGFibGVXaWR0aCwgUmVuZGVyQmxvY2smIGNiLCBSZW5kZXJGcmFnbWVudENvbnRhaW5lciog
ZnJhZ21lbnQsIEFsbG93SW50cmluc2ljIGFsbG93SW50cmluc2ljKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IGNhYzYxM2ZkNjFlMWIwNWViMjc0MTU5YWJmYzky
NWVlZjM1Nzc0NWQuLmU0MDdjYmNmYzVmNDI5MTdiNTk5ZWEyNTRmMzQ5MjBkZjVjNjdmOWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTIxOSw3ICsyMTksNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBhZGRPdmVyZmxvd0Zyb21DaGlsZChjb25zdCBSZW5kZXJCb3gqIGNoaWxk
LCBjb25zdCBMYXlvdXRTaXplJiBkZWx0YSk7CiAKICAgICB2b2lkIHVwZGF0ZUxheWVyVHJhbnNm
b3JtKCk7Ci0gICAgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNv
bnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNm
b3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRpb25z
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9u
TWF0cml4JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94
LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gPSBSZW5k
ZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucykgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBM
YXlvdXRTaXplIGNvbnRlbnRTaXplKCkgY29uc3QgeyByZXR1cm4geyBjb250ZW50V2lkdGgoKSwg
Y29udGVudEhlaWdodCgpIH07IH0KICAgICBMYXlvdXRVbml0IGNvbnRlbnRXaWR0aCgpIGNvbnN0
IHsgcmV0dXJuIHN0ZDo6bWF4KDBfbHUsIHBhZGRpbmdCb3hXaWR0aCgpIC0gcGFkZGluZ0xlZnQo
KSAtIHBhZGRpbmdSaWdodCgpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXggMjRjODJjOWQ2YmQ0M2Y3NGJhMDVhYjVhYzc2
NzkzZDc1ZDE1ZTU3Ny4uNDViZGNiYmI2MjllYWJhNzVjNGRhZWJmYWQxNTE0MDViODQzMzVkMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
Y3BwCkBAIC0yNzA2LDcgKzI3MDYsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb2xs
ZWN0QWJzb2x1dGVRdWFkc0ZvckNvbnRpbnVhdGlvbihWZWN0b3I8RmxvYXRRdWFkPgogICAgIH0K
IH0KIAotdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3Jt
YXRpb25NYXRyaXgmLCBjb25zdCBGbG9hdFJlY3QmLCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRy
YW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4pIGNvbnN0Cit2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0
OjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IFJlbmRlclN0eWxl
JiwgY29uc3QgRmxvYXRSZWN0JiwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVy
YXRpb25PcHRpb24+KSBjb25zdAogewogICAgIC8vIGFwcGx5VHJhbnNmb3JtKCkgaXMgb25seSB1
c2VkIHRocm91Z2ggUmVuZGVyTGF5ZXIqLCB3aGljaCBvbmx5IGludm9rZXMgdGhpcyBmb3IgUmVu
ZGVyQm94IGRlcml2ZWQgcmVuZGVyZXJzLCB0aHVzIG5vdCBmb3IKICAgICAvLyBSZW5kZXJJbmxp
bmUvUmVuZGVyTGluZUJyZWFrIC0gdGhlIG90aGVyIHR3byByZW5kZXJlcnMgdGhhdCBpbmhlcml0
IGZyb20gUmVuZGVyQm94TW9kZWxPYmplY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCmluZGV4IDk3Yjk2NWEzMGZkZDc2NjMxOGJiM2Q4YTVj
MDljMzRjNWE4M2JlZGYuLjBjNWNhNjZjYWRhZDlkZTQ3MGJkY2FmMDNjNmIxZmFlMzcwZWViMDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5o
CkBAIC0yNTQsNyArMjU0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBoYXNPdmVycmlk
aW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudFdpZHRoKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaGFzT3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRIZWln
aHQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdm9pZCBhcHBseVRyYW5zZm9ybShU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlv
blNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxl
OjphbGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGFwcGx5
VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25z
dCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9y
bU9wZXJhdGlvbk9wdGlvbj4gPSBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucykg
Y29uc3Qgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKICAgICBSZW5kZXJCb3hNb2RlbE9iamVjdChF
bGVtZW50JiwgUmVuZGVyU3R5bGUmJiwgQmFzZVR5cGVGbGFncyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCA5NWNiMjVhZDFiMWE2ZmYxNzUzNjZlNjQ5Zjc3
MzcyMTUyODNhN2YyLi5mNjE1MDAyNWQ5ZjE5NjlkYzlhN2M1NjA5NDIzZTUyZDIwMzk1ZTQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTEzMDgsNiArMTMw
OCwxOCBAQCBzdGF0aWMgaW5saW5lIEZsb2F0UmVjdCBjb21wdXRlUmVmZXJlbmNlQm94KGNvbnN0
IFJlbmRlckxheWVyTW9kZWxPYmplY3QmIHJlbmRlcgogICAgIHJldHVybiByZWZlcmVuY2VCb3g7
CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCB1cGRhdGVUcmFuc2Zvcm1Gcm9tU3R5bGUoVHJhbnNm
b3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCYg
cmVuZGVyZXIsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgT3B0aW9uU2V0PFJlbmRlclN0eWxl
OjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+IG9wdGlvbnMpCit7CisgICAgRmxvYXRSZWN0IHJl
ZmVyZW5jZUJveDsKKworICAgIC8vIEZJWE1FOiBbTEJTRV0gVXBzdHJlYW0gcmVmZXJlbmNlIGJv
eCBjb21wdXRhdGlvbiBmb3IgUmVuZGVyU1ZHTW9kZWxPYmplY3QgZGVyaXZlZCByZW5kZXJlcnMK
KyAgICBpZiAoaXM8UmVuZGVyQm94PihyZW5kZXJlcikpCisgICAgICAgIHJlZmVyZW5jZUJveCA9
IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoTGF5b3V0UmVjdChyZW5kZXJlci50cmFuc2Zvcm1SZWZl
cmVuY2VCb3hSZWN0KCkpLCByZW5kZXJlci5kb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCkp
OworCisgICAgcmVuZGVyZXIuYXBwbHlUcmFuc2Zvcm0odHJhbnNmb3JtLCBzdHlsZSwgcmVmZXJl
bmNlQm94LCBvcHRpb25zKTsKKyAgICBtYWtlTWF0cml4UmVuZGVyYWJsZSh0cmFuc2Zvcm0sIHJl
bmRlcmVyLnZpZXcoKS5jb21wb3NpdG9yKCkuY2FuUmVuZGVyM0RUcmFuc2Zvcm1zKCkpOworfQor
CiB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0oKQogewogICAgIGJvb2wgaGFzVHJh
bnNmb3JtID0gcmVuZGVyZXIoKS5oYXNUcmFuc2Zvcm0oKTsKQEAgLTEzMjYsMTQgKzEzMzgsNyBA
QCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0oKQogICAgIAogICAgIGlmIChoYXNU
cmFuc2Zvcm0pIHsKICAgICAgICAgbV90cmFuc2Zvcm0tPm1ha2VJZGVudGl0eSgpOwotCi0gICAg
ICAgIC8vIEZJWE1FOiBbTEJTRV0gVXBzdHJlYW0gcmVmZXJlbmNlIGJveCBjb21wdXRhdGlvbiBm
b3IgUmVuZGVyU1ZHTW9kZWxPYmplY3QgZGVyaXZlZCByZW5kZXJlcnMKLSAgICAgICAgRmxvYXRS
ZWN0IHJlZmVyZW5jZUJveDsKLSAgICAgICAgaWYgKGlzPFJlbmRlckJveD4ocmVuZGVyZXIoKSkp
Ci0gICAgICAgICAgICByZWZlcmVuY2VCb3ggPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKExheW91
dFJlY3QoZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcigpKS50cmFuc2Zvcm1SZWZlcmVuY2VC
b3hSZWN0KCkpLCByZW5kZXJlcigpLmRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKSk7Ci0K
LSAgICAgICAgcmVuZGVyZXIoKS5hcHBseVRyYW5zZm9ybSgqbV90cmFuc2Zvcm0sIHJlZmVyZW5j
ZUJveCk7Ci0gICAgICAgIG1ha2VNYXRyaXhSZW5kZXJhYmxlKCptX3RyYW5zZm9ybSwgY2FuUmVu
ZGVyM0RUcmFuc2Zvcm1zKCkpOworICAgICAgICB1cGRhdGVUcmFuc2Zvcm1Gcm9tU3R5bGUoKm1f
dHJhbnNmb3JtLCByZW5kZXJlcigpLCByZW5kZXJlcigpLnN0eWxlKCksIFJlbmRlclN0eWxlOjph
bGxUcmFuc2Zvcm1PcGVyYXRpb25zKTsKICAgICB9CiAKICAgICBpZiAoaGFkM0RUcmFuc2Zvcm0g
IT0gaGFzM0RUcmFuc2Zvcm0oKSkgewpAQCAtMTM2MSwxMiArMTM2Niw5IEBAIFRyYW5zZm9ybWF0
aW9uTWF0cml4IFJlbmRlckxheWVyOjpjdXJyZW50VHJhbnNmb3JtKE9wdGlvblNldDxSZW5kZXJT
dHlsZTo6VHJhbnNmCiAgICAgYXV0byBzdHlsZWFibGUgPSBTdHlsZWFibGU6OmZyb21SZW5kZXJl
cihyZW5kZXJCb3gpOwogICAgIGlmICgoc3R5bGVhYmxlICYmIHN0eWxlYWJsZS0+aXNSdW5uaW5n
QWNjZWxlcmF0ZWRUcmFuc2Zvcm1BbmltYXRpb24oKSkgfHwgIW9wdGlvbnMuY29udGFpbnMoUmVu
ZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbjo6VHJhbnNmb3JtT3JpZ2luKSkgewog
ICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IGFuaW1hdGVkU3R5bGUgPSByZW5k
ZXJCb3guYW5pbWF0ZWRTdHlsZSgpOwotICAgICAgICBhdXRvIHBpeGVsU25hcHBlZEJvcmRlclJl
Y3QgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHJlbmRlckJveC5yZWZlcmVuY2VCb3godHJhbnNm
b3JtQm94VG9DU1NCb3hUeXBlKGFuaW1hdGVkU3R5bGUtPnRyYW5zZm9ybUJveCgpKSksIHJlbmRl
ckJveC5kb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCkpOwogCiAgICAgICAgIFRyYW5zZm9y
bWF0aW9uTWF0cml4IHRyYW5zZm9ybTsKLSAgICAgICAgYW5pbWF0ZWRTdHlsZS0+YXBwbHlUcmFu
c2Zvcm0odHJhbnNmb3JtLCBwaXhlbFNuYXBwZWRCb3JkZXJSZWN0LCBvcHRpb25zKTsKLQotICAg
ICAgICBtYWtlTWF0cml4UmVuZGVyYWJsZSh0cmFuc2Zvcm0sIGNhblJlbmRlcjNEVHJhbnNmb3Jt
cygpKTsKKyAgICAgICAgdXBkYXRlVHJhbnNmb3JtRnJvbVN0eWxlKHRyYW5zZm9ybSwgcmVuZGVy
Qm94LCAqYW5pbWF0ZWRTdHlsZSwgb3B0aW9ucyk7CiAgICAgICAgIHJldHVybiB0cmFuc2Zvcm07
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCmluZGV4IGE4NTBlMTM3NGExMjU4MjIwY2VmYzhmZDdhMmI3M2Y3NjdhNzQzYWMuLmYw
MTgxMTUzYzM4ODFhY2QwZGE1OTk5ZDI1ZTI1YTkwZTQyNzNhZGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC02NDMsNyArNjQzLDgg
QEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZVRyYW5zZm9ybShjb25zdCBSZW5kZXJT
dHlsZSYpCiAgICAgLy8gYmFrZWQgaW50byBpdCwgYW5kIHdlIGRvbid0IHdhbnQgdGhhdC4KICAg
ICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0OwogICAgIGlmIChtX293bmluZ0xheWVyLmhhc1RyYW5z
Zm9ybSgpKSB7Ci0gICAgICAgIHJlbmRlcmVyKCkuYXBwbHlUcmFuc2Zvcm0odCwgc25hcFJlY3RU
b0RldmljZVBpeGVscyhtX293bmluZ0xheWVyLnJlbmRlcmVyQm9yZGVyQm94UmVjdCgpLCBkZXZp
Y2VTY2FsZUZhY3RvcigpKSwgUmVuZGVyU3R5bGU6OmluZGl2aWR1YWxUcmFuc2Zvcm1PcGVyYXRp
b25zKTsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgdXNlcyB0aGUgd3JvbmcsIHRyYW5zZm9ybS1i
b3ggdW5hd2FyZSwgZ2VvbWV0cnkuCisgICAgICAgIHJlbmRlcmVyKCkuYXBwbHlUcmFuc2Zvcm0o
dCwgcmVuZGVyZXIoKS5zdHlsZSgpLCBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKG1fb3duaW5nTGF5
ZXIucmVuZGVyZXJCb3JkZXJCb3hSZWN0KCksIGRldmljZVNjYWxlRmFjdG9yKCkpLCBSZW5kZXJT
dHlsZTo6aW5kaXZpZHVhbFRyYW5zZm9ybU9wZXJhdGlvbnMpOwogICAgICAgICBtYWtlTWF0cml4
UmVuZGVyYWJsZSh0LCBjb21wb3NpdG9yKCkuY2FuUmVuZGVyM0RUcmFuc2Zvcm1zKCkpOwogICAg
IH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ck1vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdC5oCmluZGV4IGMzNTRmMzc3ZjI4ZTFjMjIyNmE5YTFlMmM1NDZjMzYxODI2MTczYmYu
LmQ0NGZmNmFkNTJkM2E1OWY1MWQxYzBmZWFmNmNlNzk1YTVlMGVkZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaApAQCAtNzcsNyAr
NzcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtYXBMb2NhbFRvU1ZHQ29udGFpbmVyKGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yQ29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYs
IE9wdGlvblNldDxNYXBDb29yZGluYXRlc01vZGU+LCBib29sKiB3YXNGaXhlZCkgY29uc3Q7CiAj
ZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHls
ZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1P
cGVyYXRpb25zKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFwcGx5VHJhbnNmb3JtKFRy
YW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGbG9hdFJlY3Qm
IGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9w
dGlvbj4gPSBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucykgY29uc3QgPSAwOwog
CiBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdChFbGVtZW50JiwgUmVuZGVy
U3R5bGUmJiwgQmFzZVR5cGVGbGFncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCmluZGV4IGVjYzNmMGRkYTZmNDRhNTFj
NTZkMjZhN2EyNzk2ZmY2YjcwM2QwOGEuLmIxOTI5NGI2NzU4YzlkMTdiNmM4NTA5YjIxYWQxNzE0
YzE4OTM0ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHTW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHTW9kZWxPYmplY3QuY3BwCkBAIC0yNzYsMTUgKzI3Niw2IEBAIGJvb2wgUmVuZGVyU1ZH
TW9kZWxPYmplY3Q6OmNoZWNrRW5jbG9zdXJlKFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyLCBjb25z
dCBGbG9hdFJlCiAgICAgcmV0dXJuIHJlY3QuY29udGFpbnMoY3RtLm1hcFJlY3QocmVuZGVyZXIt
PnJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkpKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdN
b2RlbE9iamVjdDo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9y
bSwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpU
cmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+IG9wdGlvbnMpIGNvbnN0Ci17Ci0gICAgVU5VU0VEX1BB
UkFNKHRyYW5zZm9ybSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJvdW5kaW5nQm94KTsKLSAgICBVTlVT
RURfUEFSQU0ob3B0aW9ucyk7Ci0gICAgLy8gRklYTUU6IFtMQlNFXSBVcHN0cmVhbSBTVkdSZW5k
ZXJTdXBwb3J0IGNoYW5nZXMKLSAgICAvLyBTVkdSZW5kZXJTdXBwb3J0OjphcHBseVRyYW5zZm9y
bSgqdGhpcywgdHJhbnNmb3JtLCBzdHlsZSwgYm91bmRpbmdCb3gsIHN0ZDo6bnVsbG9wdCwgc3Rk
OjpudWxsb3B0LCBvcHRpb25zKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKExBWUVSX0JBU0VEX1NWR19FTkdJTkUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgKaW5kZXggOTNmYzlmYWUy
ZGVlNjJhZGI2ZGQ1NDVjOWE5M2NiMzgyNjVmYmU0OC4uYmMxMTI0NTA0M2M5ZDFlNTRlYjBjYzRj
YzJjMTQ4YzlhOWIyMzhjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaApAQCAtNTgsOCArNTgsNiBAQCBwdWJsaWM6CiAKICAg
ICBpbmxpbmUgU1ZHRWxlbWVudCYgZWxlbWVudCgpIGNvbnN0OwogCi0gICAgdm9pZCBhcHBseVRy
YW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdC
b3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJl
bmRlclN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBjb25zdCBvdmVycmlkZTsKLQogICAg
IC8vIE1pbWljIHRoZSBSZW5kZXJCb3ggYWNjZXNzb3JzIC0gYnkgc2hhcmluZyB0aGUgc2FtZSB0
ZXJtaW5vbG9neSB0aGUgcGFpbnRpbmcgLyBoaXQgdGVzdGluZyAvIGxheW91dCBsb2dpYyBpcwog
ICAgIC8vIHNpbWlsYXIgdG8gcmVhZCBjb21wYXJlZCB0byBub24tU1ZHIHJlbmRlcmVycyBzdWNo
IGFzIFJlbmRlckJveCAmIGZyaWVuZHMuCiAgICAgTGF5b3V0UmVjdCBib3JkZXJCb3hSZWN0RXF1
aXZhbGVudCgpIGNvbnN0IHsgcmV0dXJuIHsgTGF5b3V0UG9pbnQoKSwgbV9sYXlvdXRSZWN0LnNp
emUoKSB9OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290
LmNwcAppbmRleCBkNDA5MTg2NTM2NjEyM2UxZWZmOWI3NzFkODg1MGY4NDdhNWE3ZmJhLi43MTZl
YTgzMDY4NDU5MzNjYjhmMDQ3YWU4YThkOWQyODUwMWM4ZDc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKQEAgLTYwNiwxNCArNjA2LDYgQEAg
TGF5b3V0UmVjdCBSZW5kZXJTVkdSb290OjpvdmVyZmxvd0NsaXBSZWN0KGNvbnN0IExheW91dFBv
aW50JiBsb2NhdGlvbiwgUmVuZGVyRnIKICAgICByZXR1cm4gY2xpcFJlY3Q7CiB9CiAKLXZvaWQg
UmVuZGVyU1ZHUm9vdDo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5z
Zm9ybSwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxl
OjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+IG9wdGlvbnMpIGNvbnN0Ci17Ci0gICAgUmVuZGVy
UmVwbGFjZWQ6OmFwcGx5VHJhbnNmb3JtKHRyYW5zZm9ybSwgYm91bmRpbmdCb3gsIG9wdGlvbnMp
OwotCi0gICAgLy8gRklYTUU6IFtMQlNFXSBVcHN0cmVhbSBTVkdSZW5kZXJTdXBwb3J0IGNoYW5n
ZXMKLSAgICAvLyBTVkdSZW5kZXJTdXBwb3J0OjphcHBseVRyYW5zZm9ybSgqdGhpcywgdHJhbnNm
b3JtLCBzdHlsZSwgYm91bmRpbmdCb3gsIHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0LCBvcHRp
b25zKTsKLX0KLQogdm9pZCBSZW5kZXJTVkdSb290OjphYnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRS
ZWN0PiYgcmVjdHMsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCkgY29uc3QK
IHsKICAgICBhdXRvIGxvY2FsUmVjdCA9IExheW91dFJlY3QodmFsdWVPckRlZmF1bHQobV9zdXBw
bGVtZW50YWxMb2NhbFRvUGFyZW50VHJhbnNmb3JtLmludmVyc2UoKSkubWFwUmVjdChib3JkZXJC
b3hSZWN0KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUm9vdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290
LmgKaW5kZXggNDNjMTJlYTgyNmUxOWM3MjZkOWRiOTQxMTYyNDEwMTY3OGU2NTA1ZS4uN2U2ZTY1
ODdiYzFjOWI1ZTc1ZDA5OTZmM2M3Y2VkNzY4OGIwMDE4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKQEAgLTY2LDggKzY2LDYgQEAgcHVibGljOgog
CiAgICAgYm9vbCBzaG91bGRBcHBseVZpZXdwb3J0Q2xpcCgpIGNvbnN0OwogCi0gICAgdm9pZCBh
cHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IEZsb2F0UmVjdCYgYm91
bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9u
PiA9IFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBjb25zdCBmaW5hbDsKLQog
ICAgIEZsb2F0UmVjdCBvYmplY3RCb3VuZGluZ0JveCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
b2JqZWN0Qm91bmRpbmdCb3g7IH0KICAgICBGbG9hdFJlY3Qgc3Ryb2tlQm91bmRpbmdCb3goKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX3N0cm9rZUJvdW5kaW5nQm94OyB9CiAgICAgRmxvYXRSZWN0
IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZH
Qm91bmRpbmdCb3hDb21wdXRhdGlvbjo6Y29tcHV0ZVJlcGFpbnRCb3VuZGluZ0JveCgqdGhpcyk7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hh
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAK
aW5kZXggMzI5M2E2YzlmYzNhYzVmMWI5OTk4NjI4YmNjZDk2NTQyOTMyODhkOS4uMzI1NTcyNDE5
MGI3MjBhZmQzNjY4NTU4NjIwMTYwZjBmMzgxMDE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKQEAgLTUzNCw2ICs1MzQsMTIgQEAgdm9p
ZCBSZW5kZXJTVkdTaGFwZTo6c3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBj
b25zdCBSZW5kZXJTdHlsZSYgbmUKICAgICBSZW5kZXJTVkdNb2RlbE9iamVjdDo6c3R5bGVXaWxs
Q2hhbmdlKGRpZmYsIG5ld1N0eWxlKTsKIH0KIAordm9pZCBSZW5kZXJTVkdTaGFwZTo6YXBwbHlU
cmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVy
U3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKK3sKKyAgICAv
LyBGSVhNRTogW0xCU0VdIFVwc3RyZWFtIENTUy9TVkcgdHJhbnNmb3JtIHN1cHBvcnQKKyAgICBz
dHlsZS5hcHBseVRyYW5zZm9ybSh0cmFuc2Zvcm0sIGJvdW5kaW5nQm94LCBvcHRpb25zKTsKK30K
KwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKExBWUVSX0JBU0VEX1NWR19FTkdJTkUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmgKaW5kZXggYTIzZDlhZDI5
OGUwMjkxMTM5ODZjNTkwMWI0MzUxNWUxZDllNDJiMC4uNzQzNjhiZGFmNjlmOWQxNjE5MjljYjIx
M2YxMjU0YmFjNTU1YjliZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdTaGFwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHU2hhcGUuaApAQCAtODIsNiArODIsOCBAQCBwdWJsaWM6CiAKICAgICBGbG9hdFJlY3Qg
Y29tcHV0ZU1hcmtlckJvdW5kaW5nQm94KGNvbnN0IFNWR0JvdW5kaW5nQm94Q29tcHV0YXRpb246
OkRlY29yYXRpb25PcHRpb25zJikgY29uc3Q7CiAKKyAgICB2b2lkIGFwcGx5VHJhbnNmb3JtKFRy
YW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGbG9hdFJlY3Qm
IGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9w
dGlvbj4gPSBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucykgY29uc3Qgb3ZlcnJp
ZGU7CisKIHByb3RlY3RlZDoKICAgICB2b2lkIGVsZW1lbnQoKSBjb25zdCA9IGRlbGV0ZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHAKaW5kZXggZmIzNWJmOTFmYTM1NjRhODdlNGU4
NmQwZmRkYTMyMWYwNzUxYTdkNC4uOTAzMTIyYmU5N2M3NTFhM2Q1MmE5NGU3N2Y4Y2E3NWY2MTQ0
YzE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdU
cmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwCkBAIC0xMDIsMTAgKzEwMiwx
MCBAQCB2b2lkIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI6OnVwZGF0ZUZyb21TdHls
ZSgpCiAgICAgLy8gICAgc2V0SGFzU1ZHVHJhbnNmb3JtKCk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZH
VHJhbnNmb3JtYWJsZUNvbnRhaW5lcjo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRy
aXgmIHRyYW5zZm9ybSwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJl
bmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+IG9wdGlvbnMpIGNvbnN0Cit2b2lk
IFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9y
bWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3Qg
RmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1P
cGVyYXRpb25PcHRpb24+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IFtMQlNFXSBV
cHN0cmVhbSBDU1MvU1ZHIHRyYW5zZm9ybSBzdXBwb3J0Ci0gICAgUmVuZGVyU1ZHQ29udGFpbmVy
OjphcHBseVRyYW5zZm9ybSh0cmFuc2Zvcm0sIGJvdW5kaW5nQm94LCBvcHRpb25zKTsKKyAgICBz
dHlsZS5hcHBseVRyYW5zZm9ybSh0cmFuc2Zvcm0sIGJvdW5kaW5nQm94LCBvcHRpb25zKTsKIH0K
IAogdm9pZCBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjpzdHlsZVdpbGxDaGFuZ2Uo
U3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXdTdHlsZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJs
ZUNvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFu
c2Zvcm1hYmxlQ29udGFpbmVyLmgKaW5kZXggMTNiZGEwYjBmYjY0OWQ3ZmM2MGExNjY3NGJhYzdj
MmVkMWE3N2ZhZS4uNjRmYTllMTY0YWI2MWVhNzdhYjIwNTZkNmI4ZTA1MWRhMWZhZTc1NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1h
YmxlQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmgKQEAgLTQ1LDggKzQ1LDkgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGxheW91dENoaWxkcmVuKCkgZmluYWw7CiAgICAgdm9pZCBjYWxjdWxhdGVWaWV3cG9y
dCgpIGZpbmFsOwogICAgIEZsb2F0UG9pbnQgYWRkaXRpb25hbENvbnRhaW5lclRyYW5zbGF0aW9u
KCkgY29uc3Q7Ci0gICAgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYs
IGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJh
bnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRp
b25zKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9u
TWF0cml4JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94
LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gPSBSZW5k
ZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucykgY29uc3QgZmluYWw7CiAgICAgdm9pZCBz
dHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3U3R5
bGUpIGZpbmFsOworCiAgICAgdm9pZCB1cGRhdGVGcm9tU3R5bGUoKSBmaW5hbDsKIAogICAgIEFm
ZmluZVRyYW5zZm9ybSBtX3N1cHBsZW1lbnRhbExvY2FsVG9QYXJlbnRUcmFuc2Zvcm07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454349</attachid>
            <date>2022-03-10 05:56:51 -0800</date>
            <delta_ts>2022-03-10 06:17:37 -0800</delta_ts>
            <desc>Patch, v2</desc>
            <filename>bug-237701-20220310055649.patch</filename>
            <type>text/plain</type>
            <size>19375</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDNmYWVmNjQ4NDhhZDYy
MzY5YTI5YWE0YWI4OTc4OGZiOGI3NjU0Ny4uNThlYTZmMzA0MzY2ZDc0ZDAwMDM1MWJlMGI3NDhk
MGQwMjJjZjZlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIyLTAzLTEwICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIFVuaWZ5
IHJlZmVyZW5jZSBib3ggLyBDVE0gY29tcHV0YXRpb24gaW4gUmVuZGVyTGF5ZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzcwMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dHJhY3QgdGhlIGNvZGUg
dGhhdCBjb21wdXRlcyB0aGUgcmVmZXJlbmNlIGJveCwgb2J0YWlucyB0aGUgQ1RNLCBhcHBsaWVz
IHBpeGVsIHNuYXBwaW5nLCBldGMuIGludG8KKyAgICAgICAgYSBoZWxwZXIgZnVuY3Rpb24gdG8g
c2hhcmUgdGhlIGNvZGUgYmV0d2VlbiBSZW5kZXJMYXllcjo6dXBkYXRlVHJhbnNmb3JtKCkgLyBS
ZW5kZXJMYXllcjo6Y3VycmVudFRyYW5zZm9ybSgpLgorCisgICAgICAgIFRoaXMgc2ltcGxpZmll
cyB0aGUgdXBjb21pbmcgTEJTRSBTVkcgdHJhbnNmb3JtIHN1cHBvcnQgaGF0IGNhbiBiZSB1c2Vk
IGxhdGVyIGJ5IExCU0UgdG8gZS5nLiBkaXNhYmxlIHBpeGVsIHNuYXBwaW5nIGZvciB0aGUgU1ZH
IHN1YnRyZWUKKyAgICAgICAgaW4gb25lIHBsYWNlLCBpbnN0ZWFkIG9mIHNwcmlua2xpbmcgTEJT
RSBjb2RlIG92ZXIgbXVsdGlwbGUgcGxhY2VzLgorCisgICAgICAgIEV4dGVuZCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0OjphcHBseVRyYW5zZm9ybSgpIHRvIHRha2UgYW4gYWRkaXRpb25hbCBSZW5k
ZXJTdHlsZSBwYXJhbWV0ZXIsCisgICAgICAgIHRoYXQgaXMgdXNlZCB0byBhY2Nlc3MgdGhlIENT
UyB0cmFuc2Zvcm0gb3BlcmF0aW9ucywgaW5zdGVhZCBvZiBhbHdheXMgcXVlcnlpbmcgdGhlIHJl
bmRlcmVycworICAgICAgICBzdHlsZSgpLiBSZW5kZXJMYXllcjo6dXBkYXRlVHJhbnNmb3JtKCkg
c3RpbGwgcGFzc2VzIHRoZSByZW5kZXJlcnMgc3R5bGUoKSwgd2hlcmVhcworICAgICAgICBSZW5k
ZXJMYXllcjo6Y3VycmVudFRyYW5zZm9ybSgpIHBhc3NlcyB0aGUgZWxlbWVudHMgYW5pbWF0ZWRT
dHlsZSgpLCBpZiBhbiBhbmltYXRpb24gaXMgcnVubmluZy4KKworICAgICAgICBDb3ZlcmVkIGJ5
IGV4aXN0aW5nIHRlc3RzLCBubyBjaGFuZ2UgaW4gYmVoYXZpb3VyLgorCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmFwcGx5
VHJhbnNmb3JtIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjphcHBseVRyYW5zZm9ybSBjb25zdCk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVRyYW5zZm9ybUZyb21T
dHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlVHJhbnNmb3JtKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjdXJyZW50VHJhbnNmb3JtIGNvbnN0KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlVHJhbnNmb3JtKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
TW9kZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6
OmFwcGx5VHJhbnNmb3JtIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jvb3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1NoYXBlOjphcHBseVRyYW5zZm9ybSBj
b25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjphcHBseVRy
YW5zZm9ybSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyLmg6CisKIDIwMjItMDMtMTAgIE5pa29sYXMgWmltbWVybWFubiAgPG56
aW1tZXJtYW5uQGlnYWxpYS5jb20+CiAKICAgICAgICAgRXh0cmFjdCB0cmFuc2Zvcm0tb3JpZ2lu
IGhhbmRsaW5nIG91dCBvZiBSZW5kZXJTdHlsZTo6YXBwbHlUcmFuc2Zvcm0oKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCAxOGJlYTM3NzQzNjdiMjk2ZDMwMjUxNjg1
ZjQ1YTIzNzFhYzZjY2NlLi40MTVlOTRmNWNiYzFhZWY4OTM4ZDE4ZTcxYmY3NDQ1NWMxMWQ5OGM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtNjY5LDkgKzY2OSw5
IEBAIHZvaWQgUmVuZGVyQm94Ojp1cGRhdGVMYXllclRyYW5zZm9ybSgpCiAgICAgICAgIGxheWVy
KCktPnVwZGF0ZVRyYW5zZm9ybSgpOwogfQogCi12b2lkIFJlbmRlckJveDo6YXBwbHlUcmFuc2Zv
cm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHQsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gs
IE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiBvcHRpb25z
KSBjb25zdAordm9pZCBSZW5kZXJCb3g6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0
cml4JiB0LCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRp
bmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiBv
cHRpb25zKSBjb25zdAogewotICAgIHN0eWxlKCkuYXBwbHlUcmFuc2Zvcm0odCwgYm91bmRpbmdC
b3gsIG9wdGlvbnMpOworICAgIHN0eWxlLmFwcGx5VHJhbnNmb3JtKHQsIGJvdW5kaW5nQm94LCBv
cHRpb25zKTsKIH0KIAogTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNvbnN0cmFpbkxvZ2ljYWxXaWR0
aEluRnJhZ21lbnRCeU1pbk1heChMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCBh
dmFpbGFibGVXaWR0aCwgUmVuZGVyQmxvY2smIGNiLCBSZW5kZXJGcmFnbWVudENvbnRhaW5lciog
ZnJhZ21lbnQsIEFsbG93SW50cmluc2ljIGFsbG93SW50cmluc2ljKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IGNhYzYxM2ZkNjFlMWIwNWViMjc0MTU5YWJmYzky
NWVlZjM1Nzc0NWQuLmU0MDdjYmNmYzVmNDI5MTdiNTk5ZWEyNTRmMzQ5MjBkZjVjNjdmOWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTIxOSw3ICsyMTksNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBhZGRPdmVyZmxvd0Zyb21DaGlsZChjb25zdCBSZW5kZXJCb3gqIGNoaWxk
LCBjb25zdCBMYXlvdXRTaXplJiBkZWx0YSk7CiAKICAgICB2b2lkIHVwZGF0ZUxheWVyVHJhbnNm
b3JtKCk7Ci0gICAgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNv
bnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNm
b3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRpb25z
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9u
TWF0cml4JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94
LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gPSBSZW5k
ZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucykgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBM
YXlvdXRTaXplIGNvbnRlbnRTaXplKCkgY29uc3QgeyByZXR1cm4geyBjb250ZW50V2lkdGgoKSwg
Y29udGVudEhlaWdodCgpIH07IH0KICAgICBMYXlvdXRVbml0IGNvbnRlbnRXaWR0aCgpIGNvbnN0
IHsgcmV0dXJuIHN0ZDo6bWF4KDBfbHUsIHBhZGRpbmdCb3hXaWR0aCgpIC0gcGFkZGluZ0xlZnQo
KSAtIHBhZGRpbmdSaWdodCgpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXggMjRjODJjOWQ2YmQ0M2Y3NGJhMDVhYjVhYzc2
NzkzZDc1ZDE1ZTU3Ny4uNDViZGNiYmI2MjllYWJhNzVjNGRhZWJmYWQxNTE0MDViODQzMzVkMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
Y3BwCkBAIC0yNzA2LDcgKzI3MDYsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb2xs
ZWN0QWJzb2x1dGVRdWFkc0ZvckNvbnRpbnVhdGlvbihWZWN0b3I8RmxvYXRRdWFkPgogICAgIH0K
IH0KIAotdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3Jt
YXRpb25NYXRyaXgmLCBjb25zdCBGbG9hdFJlY3QmLCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRy
YW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4pIGNvbnN0Cit2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0
OjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IFJlbmRlclN0eWxl
JiwgY29uc3QgRmxvYXRSZWN0JiwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVy
YXRpb25PcHRpb24+KSBjb25zdAogewogICAgIC8vIGFwcGx5VHJhbnNmb3JtKCkgaXMgb25seSB1
c2VkIHRocm91Z2ggUmVuZGVyTGF5ZXIqLCB3aGljaCBvbmx5IGludm9rZXMgdGhpcyBmb3IgUmVu
ZGVyQm94IGRlcml2ZWQgcmVuZGVyZXJzLCB0aHVzIG5vdCBmb3IKICAgICAvLyBSZW5kZXJJbmxp
bmUvUmVuZGVyTGluZUJyZWFrIC0gdGhlIG90aGVyIHR3byByZW5kZXJlcnMgdGhhdCBpbmhlcml0
IGZyb20gUmVuZGVyQm94TW9kZWxPYmplY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCmluZGV4IDk3Yjk2NWEzMGZkZDc2NjMxOGJiM2Q4YTVj
MDljMzRjNWE4M2JlZGYuLjBjNWNhNjZjYWRhZDlkZTQ3MGJkY2FmMDNjNmIxZmFlMzcwZWViMDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5o
CkBAIC0yNTQsNyArMjU0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBoYXNPdmVycmlk
aW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudFdpZHRoKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaGFzT3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRIZWln
aHQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdm9pZCBhcHBseVRyYW5zZm9ybShU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlv
blNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxl
OjphbGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGFwcGx5
VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25z
dCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9y
bU9wZXJhdGlvbk9wdGlvbj4gPSBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucykg
Y29uc3Qgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKICAgICBSZW5kZXJCb3hNb2RlbE9iamVjdChF
bGVtZW50JiwgUmVuZGVyU3R5bGUmJiwgQmFzZVR5cGVGbGFncyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCA5NWNiMjVhZDFiMWE2ZmYxNzUzNjZlNjQ5Zjc3
MzcyMTUyODNhN2YyLi5mNjE1MDAyNWQ5ZjE5NjlkYzlhN2M1NjA5NDIzZTUyZDIwMzk1ZTQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTEzMDgsNiArMTMw
OCwxOCBAQCBzdGF0aWMgaW5saW5lIEZsb2F0UmVjdCBjb21wdXRlUmVmZXJlbmNlQm94KGNvbnN0
IFJlbmRlckxheWVyTW9kZWxPYmplY3QmIHJlbmRlcgogICAgIHJldHVybiByZWZlcmVuY2VCb3g7
CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCB1cGRhdGVUcmFuc2Zvcm1Gcm9tU3R5bGUoVHJhbnNm
b3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCYg
cmVuZGVyZXIsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgT3B0aW9uU2V0PFJlbmRlclN0eWxl
OjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+IG9wdGlvbnMpCit7CisgICAgRmxvYXRSZWN0IHJl
ZmVyZW5jZUJveDsKKworICAgIC8vIEZJWE1FOiBbTEJTRV0gVXBzdHJlYW0gcmVmZXJlbmNlIGJv
eCBjb21wdXRhdGlvbiBmb3IgUmVuZGVyU1ZHTW9kZWxPYmplY3QgZGVyaXZlZCByZW5kZXJlcnMK
KyAgICBpZiAoaXM8UmVuZGVyQm94PihyZW5kZXJlcikpCisgICAgICAgIHJlZmVyZW5jZUJveCA9
IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoTGF5b3V0UmVjdChyZW5kZXJlci50cmFuc2Zvcm1SZWZl
cmVuY2VCb3hSZWN0KCkpLCByZW5kZXJlci5kb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCkp
OworCisgICAgcmVuZGVyZXIuYXBwbHlUcmFuc2Zvcm0odHJhbnNmb3JtLCBzdHlsZSwgcmVmZXJl
bmNlQm94LCBvcHRpb25zKTsKKyAgICBtYWtlTWF0cml4UmVuZGVyYWJsZSh0cmFuc2Zvcm0sIHJl
bmRlcmVyLnZpZXcoKS5jb21wb3NpdG9yKCkuY2FuUmVuZGVyM0RUcmFuc2Zvcm1zKCkpOworfQor
CiB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0oKQogewogICAgIGJvb2wgaGFzVHJh
bnNmb3JtID0gcmVuZGVyZXIoKS5oYXNUcmFuc2Zvcm0oKTsKQEAgLTEzMjYsMTQgKzEzMzgsNyBA
QCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0oKQogICAgIAogICAgIGlmIChoYXNU
cmFuc2Zvcm0pIHsKICAgICAgICAgbV90cmFuc2Zvcm0tPm1ha2VJZGVudGl0eSgpOwotCi0gICAg
ICAgIC8vIEZJWE1FOiBbTEJTRV0gVXBzdHJlYW0gcmVmZXJlbmNlIGJveCBjb21wdXRhdGlvbiBm
b3IgUmVuZGVyU1ZHTW9kZWxPYmplY3QgZGVyaXZlZCByZW5kZXJlcnMKLSAgICAgICAgRmxvYXRS
ZWN0IHJlZmVyZW5jZUJveDsKLSAgICAgICAgaWYgKGlzPFJlbmRlckJveD4ocmVuZGVyZXIoKSkp
Ci0gICAgICAgICAgICByZWZlcmVuY2VCb3ggPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKExheW91
dFJlY3QoZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcigpKS50cmFuc2Zvcm1SZWZlcmVuY2VC
b3hSZWN0KCkpLCByZW5kZXJlcigpLmRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKSk7Ci0K
LSAgICAgICAgcmVuZGVyZXIoKS5hcHBseVRyYW5zZm9ybSgqbV90cmFuc2Zvcm0sIHJlZmVyZW5j
ZUJveCk7Ci0gICAgICAgIG1ha2VNYXRyaXhSZW5kZXJhYmxlKCptX3RyYW5zZm9ybSwgY2FuUmVu
ZGVyM0RUcmFuc2Zvcm1zKCkpOworICAgICAgICB1cGRhdGVUcmFuc2Zvcm1Gcm9tU3R5bGUoKm1f
dHJhbnNmb3JtLCByZW5kZXJlcigpLCByZW5kZXJlcigpLnN0eWxlKCksIFJlbmRlclN0eWxlOjph
bGxUcmFuc2Zvcm1PcGVyYXRpb25zKTsKICAgICB9CiAKICAgICBpZiAoaGFkM0RUcmFuc2Zvcm0g
IT0gaGFzM0RUcmFuc2Zvcm0oKSkgewpAQCAtMTM2MSwxMiArMTM2Niw5IEBAIFRyYW5zZm9ybWF0
aW9uTWF0cml4IFJlbmRlckxheWVyOjpjdXJyZW50VHJhbnNmb3JtKE9wdGlvblNldDxSZW5kZXJT
dHlsZTo6VHJhbnNmCiAgICAgYXV0byBzdHlsZWFibGUgPSBTdHlsZWFibGU6OmZyb21SZW5kZXJl
cihyZW5kZXJCb3gpOwogICAgIGlmICgoc3R5bGVhYmxlICYmIHN0eWxlYWJsZS0+aXNSdW5uaW5n
QWNjZWxlcmF0ZWRUcmFuc2Zvcm1BbmltYXRpb24oKSkgfHwgIW9wdGlvbnMuY29udGFpbnMoUmVu
ZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbjo6VHJhbnNmb3JtT3JpZ2luKSkgewog
ICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IGFuaW1hdGVkU3R5bGUgPSByZW5k
ZXJCb3guYW5pbWF0ZWRTdHlsZSgpOwotICAgICAgICBhdXRvIHBpeGVsU25hcHBlZEJvcmRlclJl
Y3QgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHJlbmRlckJveC5yZWZlcmVuY2VCb3godHJhbnNm
b3JtQm94VG9DU1NCb3hUeXBlKGFuaW1hdGVkU3R5bGUtPnRyYW5zZm9ybUJveCgpKSksIHJlbmRl
ckJveC5kb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCkpOwogCiAgICAgICAgIFRyYW5zZm9y
bWF0aW9uTWF0cml4IHRyYW5zZm9ybTsKLSAgICAgICAgYW5pbWF0ZWRTdHlsZS0+YXBwbHlUcmFu
c2Zvcm0odHJhbnNmb3JtLCBwaXhlbFNuYXBwZWRCb3JkZXJSZWN0LCBvcHRpb25zKTsKLQotICAg
ICAgICBtYWtlTWF0cml4UmVuZGVyYWJsZSh0cmFuc2Zvcm0sIGNhblJlbmRlcjNEVHJhbnNmb3Jt
cygpKTsKKyAgICAgICAgdXBkYXRlVHJhbnNmb3JtRnJvbVN0eWxlKHRyYW5zZm9ybSwgcmVuZGVy
Qm94LCAqYW5pbWF0ZWRTdHlsZSwgb3B0aW9ucyk7CiAgICAgICAgIHJldHVybiB0cmFuc2Zvcm07
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCmluZGV4IGE4NTBlMTM3NGExMjU4MjIwY2VmYzhmZDdhMmI3M2Y3NjdhNzQzYWMuLmYw
MTgxMTUzYzM4ODFhY2QwZGE1OTk5ZDI1ZTI1YTkwZTQyNzNhZGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC02NDMsNyArNjQzLDgg
QEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZVRyYW5zZm9ybShjb25zdCBSZW5kZXJT
dHlsZSYpCiAgICAgLy8gYmFrZWQgaW50byBpdCwgYW5kIHdlIGRvbid0IHdhbnQgdGhhdC4KICAg
ICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0OwogICAgIGlmIChtX293bmluZ0xheWVyLmhhc1RyYW5z
Zm9ybSgpKSB7Ci0gICAgICAgIHJlbmRlcmVyKCkuYXBwbHlUcmFuc2Zvcm0odCwgc25hcFJlY3RU
b0RldmljZVBpeGVscyhtX293bmluZ0xheWVyLnJlbmRlcmVyQm9yZGVyQm94UmVjdCgpLCBkZXZp
Y2VTY2FsZUZhY3RvcigpKSwgUmVuZGVyU3R5bGU6OmluZGl2aWR1YWxUcmFuc2Zvcm1PcGVyYXRp
b25zKTsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgdXNlcyB0aGUgd3JvbmcsIHRyYW5zZm9ybS1i
b3ggdW5hd2FyZSwgZ2VvbWV0cnkuCisgICAgICAgIHJlbmRlcmVyKCkuYXBwbHlUcmFuc2Zvcm0o
dCwgcmVuZGVyZXIoKS5zdHlsZSgpLCBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKG1fb3duaW5nTGF5
ZXIucmVuZGVyZXJCb3JkZXJCb3hSZWN0KCksIGRldmljZVNjYWxlRmFjdG9yKCkpLCBSZW5kZXJT
dHlsZTo6aW5kaXZpZHVhbFRyYW5zZm9ybU9wZXJhdGlvbnMpOwogICAgICAgICBtYWtlTWF0cml4
UmVuZGVyYWJsZSh0LCBjb21wb3NpdG9yKCkuY2FuUmVuZGVyM0RUcmFuc2Zvcm1zKCkpOwogICAg
IH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ck1vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdC5oCmluZGV4IGMzNTRmMzc3ZjI4ZTFjMjIyNmE5YTFlMmM1NDZjMzYxODI2MTczYmYu
LmQ0NGZmNmFkNTJkM2E1OWY1MWQxYzBmZWFmNmNlNzk1YTVlMGVkZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaApAQCAtNzcsNyAr
NzcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtYXBMb2NhbFRvU1ZHQ29udGFpbmVyKGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yQ29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYs
IE9wdGlvblNldDxNYXBDb29yZGluYXRlc01vZGU+LCBib29sKiB3YXNGaXhlZCkgY29uc3Q7CiAj
ZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHls
ZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1P
cGVyYXRpb25zKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFwcGx5VHJhbnNmb3JtKFRy
YW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGbG9hdFJlY3Qm
IGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9w
dGlvbj4gPSBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucykgY29uc3QgPSAwOwog
CiBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdChFbGVtZW50JiwgUmVuZGVy
U3R5bGUmJiwgQmFzZVR5cGVGbGFncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCmluZGV4IGVjYzNmMGRkYTZmNDRhNTFj
NTZkMjZhN2EyNzk2ZmY2YjcwM2QwOGEuLmIxOTI5NGI2NzU4YzlkMTdiNmM4NTA5YjIxYWQxNzE0
YzE4OTM0ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHTW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHTW9kZWxPYmplY3QuY3BwCkBAIC0yNzYsMTUgKzI3Niw2IEBAIGJvb2wgUmVuZGVyU1ZH
TW9kZWxPYmplY3Q6OmNoZWNrRW5jbG9zdXJlKFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyLCBjb25z
dCBGbG9hdFJlCiAgICAgcmV0dXJuIHJlY3QuY29udGFpbnMoY3RtLm1hcFJlY3QocmVuZGVyZXIt
PnJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkpKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdN
b2RlbE9iamVjdDo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9y
bSwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpU
cmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+IG9wdGlvbnMpIGNvbnN0Ci17Ci0gICAgVU5VU0VEX1BB
UkFNKHRyYW5zZm9ybSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJvdW5kaW5nQm94KTsKLSAgICBVTlVT
RURfUEFSQU0ob3B0aW9ucyk7Ci0gICAgLy8gRklYTUU6IFtMQlNFXSBVcHN0cmVhbSBTVkdSZW5k
ZXJTdXBwb3J0IGNoYW5nZXMKLSAgICAvLyBTVkdSZW5kZXJTdXBwb3J0OjphcHBseVRyYW5zZm9y
bSgqdGhpcywgdHJhbnNmb3JtLCBzdHlsZSwgYm91bmRpbmdCb3gsIHN0ZDo6bnVsbG9wdCwgc3Rk
OjpudWxsb3B0LCBvcHRpb25zKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKExBWUVSX0JBU0VEX1NWR19FTkdJTkUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgKaW5kZXggOTNmYzlmYWUy
ZGVlNjJhZGI2ZGQ1NDVjOWE5M2NiMzgyNjVmYmU0OC4uYmMxMTI0NTA0M2M5ZDFlNTRlYjBjYzRj
YzJjMTQ4YzlhOWIyMzhjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaApAQCAtNTgsOCArNTgsNiBAQCBwdWJsaWM6CiAKICAg
ICBpbmxpbmUgU1ZHRWxlbWVudCYgZWxlbWVudCgpIGNvbnN0OwogCi0gICAgdm9pZCBhcHBseVRy
YW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdC
b3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJl
bmRlclN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBjb25zdCBvdmVycmlkZTsKLQogICAg
IC8vIE1pbWljIHRoZSBSZW5kZXJCb3ggYWNjZXNzb3JzIC0gYnkgc2hhcmluZyB0aGUgc2FtZSB0
ZXJtaW5vbG9neSB0aGUgcGFpbnRpbmcgLyBoaXQgdGVzdGluZyAvIGxheW91dCBsb2dpYyBpcwog
ICAgIC8vIHNpbWlsYXIgdG8gcmVhZCBjb21wYXJlZCB0byBub24tU1ZHIHJlbmRlcmVycyBzdWNo
IGFzIFJlbmRlckJveCAmIGZyaWVuZHMuCiAgICAgTGF5b3V0UmVjdCBib3JkZXJCb3hSZWN0RXF1
aXZhbGVudCgpIGNvbnN0IHsgcmV0dXJuIHsgTGF5b3V0UG9pbnQoKSwgbV9sYXlvdXRSZWN0LnNp
emUoKSB9OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290
LmNwcAppbmRleCBkNDA5MTg2NTM2NjEyM2UxZWZmOWI3NzFkODg1MGY4NDdhNWE3ZmJhLi43MTZl
YTgzMDY4NDU5MzNjYjhmMDQ3YWU4YThkOWQyODUwMWM4ZDc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKQEAgLTYwNiwxNCArNjA2LDYgQEAg
TGF5b3V0UmVjdCBSZW5kZXJTVkdSb290OjpvdmVyZmxvd0NsaXBSZWN0KGNvbnN0IExheW91dFBv
aW50JiBsb2NhdGlvbiwgUmVuZGVyRnIKICAgICByZXR1cm4gY2xpcFJlY3Q7CiB9CiAKLXZvaWQg
UmVuZGVyU1ZHUm9vdDo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5z
Zm9ybSwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxl
OjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+IG9wdGlvbnMpIGNvbnN0Ci17Ci0gICAgUmVuZGVy
UmVwbGFjZWQ6OmFwcGx5VHJhbnNmb3JtKHRyYW5zZm9ybSwgYm91bmRpbmdCb3gsIG9wdGlvbnMp
OwotCi0gICAgLy8gRklYTUU6IFtMQlNFXSBVcHN0cmVhbSBTVkdSZW5kZXJTdXBwb3J0IGNoYW5n
ZXMKLSAgICAvLyBTVkdSZW5kZXJTdXBwb3J0OjphcHBseVRyYW5zZm9ybSgqdGhpcywgdHJhbnNm
b3JtLCBzdHlsZSwgYm91bmRpbmdCb3gsIHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0LCBvcHRp
b25zKTsKLX0KLQogdm9pZCBSZW5kZXJTVkdSb290OjphYnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRS
ZWN0PiYgcmVjdHMsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCkgY29uc3QK
IHsKICAgICBhdXRvIGxvY2FsUmVjdCA9IExheW91dFJlY3QodmFsdWVPckRlZmF1bHQobV9zdXBw
bGVtZW50YWxMb2NhbFRvUGFyZW50VHJhbnNmb3JtLmludmVyc2UoKSkubWFwUmVjdChib3JkZXJC
b3hSZWN0KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUm9vdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290
LmgKaW5kZXggNDNjMTJlYTgyNmUxOWM3MjZkOWRiOTQxMTYyNDEwMTY3OGU2NTA1ZS4uN2U2ZTY1
ODdiYzFjOWI1ZTc1ZDA5OTZmM2M3Y2VkNzY4OGIwMDE4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKQEAgLTY2LDggKzY2LDYgQEAgcHVibGljOgog
CiAgICAgYm9vbCBzaG91bGRBcHBseVZpZXdwb3J0Q2xpcCgpIGNvbnN0OwogCi0gICAgdm9pZCBh
cHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IEZsb2F0UmVjdCYgYm91
bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9u
PiA9IFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBjb25zdCBmaW5hbDsKLQog
ICAgIEZsb2F0UmVjdCBvYmplY3RCb3VuZGluZ0JveCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
b2JqZWN0Qm91bmRpbmdCb3g7IH0KICAgICBGbG9hdFJlY3Qgc3Ryb2tlQm91bmRpbmdCb3goKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX3N0cm9rZUJvdW5kaW5nQm94OyB9CiAgICAgRmxvYXRSZWN0
IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZH
Qm91bmRpbmdCb3hDb21wdXRhdGlvbjo6Y29tcHV0ZVJlcGFpbnRCb3VuZGluZ0JveCgqdGhpcyk7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hh
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAK
aW5kZXggMzI5M2E2YzlmYzNhYzVmMWI5OTk4NjI4YmNjZDk2NTQyOTMyODhkOS4uMzI1NTcyNDE5
MGI3MjBhZmQzNjY4NTU4NjIwMTYwZjBmMzgxMDE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKQEAgLTUzNCw2ICs1MzQsMTIgQEAgdm9p
ZCBSZW5kZXJTVkdTaGFwZTo6c3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBj
b25zdCBSZW5kZXJTdHlsZSYgbmUKICAgICBSZW5kZXJTVkdNb2RlbE9iamVjdDo6c3R5bGVXaWxs
Q2hhbmdlKGRpZmYsIG5ld1N0eWxlKTsKIH0KIAordm9pZCBSZW5kZXJTVkdTaGFwZTo6YXBwbHlU
cmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVy
U3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKK3sKKyAgICAv
LyBGSVhNRTogW0xCU0VdIFVwc3RyZWFtIENTUy9TVkcgdHJhbnNmb3JtIHN1cHBvcnQKKyAgICBz
dHlsZS5hcHBseVRyYW5zZm9ybSh0cmFuc2Zvcm0sIGJvdW5kaW5nQm94LCBvcHRpb25zKTsKK30K
KwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKExBWUVSX0JBU0VEX1NWR19FTkdJTkUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmgKaW5kZXggYTIzZDlhZDI5
OGUwMjkxMTM5ODZjNTkwMWI0MzUxNWUxZDllNDJiMC4uNzQzNjhiZGFmNjlmOWQxNjE5MjljYjIx
M2YxMjU0YmFjNTU1YjliZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdTaGFwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHU2hhcGUuaApAQCAtODIsNiArODIsOCBAQCBwdWJsaWM6CiAKICAgICBGbG9hdFJlY3Qg
Y29tcHV0ZU1hcmtlckJvdW5kaW5nQm94KGNvbnN0IFNWR0JvdW5kaW5nQm94Q29tcHV0YXRpb246
OkRlY29yYXRpb25PcHRpb25zJikgY29uc3Q7CiAKKyAgICB2b2lkIGFwcGx5VHJhbnNmb3JtKFRy
YW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGbG9hdFJlY3Qm
IGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9w
dGlvbj4gPSBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucykgY29uc3Qgb3ZlcnJp
ZGU7CisKIHByb3RlY3RlZDoKICAgICB2b2lkIGVsZW1lbnQoKSBjb25zdCA9IGRlbGV0ZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHAKaW5kZXggZmIzNWJmOTFmYTM1NjRhODdlNGU4
NmQwZmRkYTMyMWYwNzUxYTdkNC4uOTAzMTIyYmU5N2M3NTFhM2Q1MmE5NGU3N2Y4Y2E3NWY2MTQ0
YzE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdU
cmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwCkBAIC0xMDIsMTAgKzEwMiwx
MCBAQCB2b2lkIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI6OnVwZGF0ZUZyb21TdHls
ZSgpCiAgICAgLy8gICAgc2V0SGFzU1ZHVHJhbnNmb3JtKCk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZH
VHJhbnNmb3JtYWJsZUNvbnRhaW5lcjo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRy
aXgmIHRyYW5zZm9ybSwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJl
bmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+IG9wdGlvbnMpIGNvbnN0Cit2b2lk
IFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9y
bWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3Qg
RmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1P
cGVyYXRpb25PcHRpb24+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IFtMQlNFXSBV
cHN0cmVhbSBDU1MvU1ZHIHRyYW5zZm9ybSBzdXBwb3J0Ci0gICAgUmVuZGVyU1ZHQ29udGFpbmVy
OjphcHBseVRyYW5zZm9ybSh0cmFuc2Zvcm0sIGJvdW5kaW5nQm94LCBvcHRpb25zKTsKKyAgICBz
dHlsZS5hcHBseVRyYW5zZm9ybSh0cmFuc2Zvcm0sIGJvdW5kaW5nQm94LCBvcHRpb25zKTsKIH0K
IAogdm9pZCBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjpzdHlsZVdpbGxDaGFuZ2Uo
U3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXdTdHlsZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJs
ZUNvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFu
c2Zvcm1hYmxlQ29udGFpbmVyLmgKaW5kZXggMTNiZGEwYjBmYjY0OWQ3ZmM2MGExNjY3NGJhYzdj
MmVkMWE3N2ZhZS4uNjRmYTllMTY0YWI2MWVhNzdhYjIwNTZkNmI4ZTA1MWRhMWZhZTc1NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1h
YmxlQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmgKQEAgLTQ1LDggKzQ1LDkgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGxheW91dENoaWxkcmVuKCkgZmluYWw7CiAgICAgdm9pZCBjYWxjdWxhdGVWaWV3cG9y
dCgpIGZpbmFsOwogICAgIEZsb2F0UG9pbnQgYWRkaXRpb25hbENvbnRhaW5lclRyYW5zbGF0aW9u
KCkgY29uc3Q7Ci0gICAgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYs
IGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJh
bnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRp
b25zKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9u
TWF0cml4JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94
LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gPSBSZW5k
ZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucykgY29uc3QgZmluYWw7CiAgICAgdm9pZCBz
dHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3U3R5
bGUpIGZpbmFsOworCiAgICAgdm9pZCB1cGRhdGVGcm9tU3R5bGUoKSBmaW5hbDsKIAogICAgIEFm
ZmluZVRyYW5zZm9ybSBtX3N1cHBsZW1lbnRhbExvY2FsVG9QYXJlbnRUcmFuc2Zvcm07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454355</attachid>
            <date>2022-03-10 06:17:41 -0800</date>
            <delta_ts>2022-03-10 15:37:37 -0800</delta_ts>
            <desc>Patch, v3</desc>
            <filename>bug-237701-20220310061740.patch</filename>
            <type>text/plain</type>
            <size>19333</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmZlY2ZlNjI1NTZlNmJh
NGNkNmM3MjIzMjBlMTljMDg1ZWYyNjRkYy4uYjEzYThiYjIzODBjMTNjYmI1OTZlM2Q2NTYxYzI3
YmUxYmE1ZmYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIyLTAzLTEwICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIFVuaWZ5
IHJlZmVyZW5jZSBib3ggLyBDVE0gY29tcHV0YXRpb24gaW4gUmVuZGVyTGF5ZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzcwMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dHJhY3QgdGhlIGNvZGUg
dGhhdCBjb21wdXRlcyB0aGUgcmVmZXJlbmNlIGJveCwgb2J0YWlucyB0aGUgQ1RNLCBhcHBsaWVz
IHBpeGVsIHNuYXBwaW5nLCBldGMuIGludG8KKyAgICAgICAgYSBoZWxwZXIgZnVuY3Rpb24gdG8g
c2hhcmUgdGhlIGNvZGUgYmV0d2VlbiBSZW5kZXJMYXllcjo6dXBkYXRlVHJhbnNmb3JtKCkgLyBS
ZW5kZXJMYXllcjo6Y3VycmVudFRyYW5zZm9ybSgpLgorCisgICAgICAgIFRoaXMgc2ltcGxpZmll
cyB0aGUgdXBjb21pbmcgTEJTRSBTVkcgdHJhbnNmb3JtIHN1cHBvcnQgaGF0IGNhbiBiZSB1c2Vk
IGxhdGVyIGJ5IExCU0UgdG8gZS5nLiBkaXNhYmxlIHBpeGVsIHNuYXBwaW5nIGZvciB0aGUgU1ZH
IHN1YnRyZWUKKyAgICAgICAgaW4gb25lIHBsYWNlLCBpbnN0ZWFkIG9mIHNwcmlua2xpbmcgTEJT
RSBjb2RlIG92ZXIgbXVsdGlwbGUgcGxhY2VzLgorCisgICAgICAgIEV4dGVuZCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0OjphcHBseVRyYW5zZm9ybSgpIHRvIHRha2UgYW4gYWRkaXRpb25hbCBSZW5k
ZXJTdHlsZSBwYXJhbWV0ZXIsCisgICAgICAgIHRoYXQgaXMgdXNlZCB0byBhY2Nlc3MgdGhlIENT
UyB0cmFuc2Zvcm0gb3BlcmF0aW9ucywgaW5zdGVhZCBvZiBhbHdheXMgcXVlcnlpbmcgdGhlIHJl
bmRlcmVycworICAgICAgICBzdHlsZSgpLiBSZW5kZXJMYXllcjo6dXBkYXRlVHJhbnNmb3JtKCkg
c3RpbGwgcGFzc2VzIHRoZSByZW5kZXJlcnMgc3R5bGUoKSwgd2hlcmVhcworICAgICAgICBSZW5k
ZXJMYXllcjo6Y3VycmVudFRyYW5zZm9ybSgpIHBhc3NlcyB0aGUgZWxlbWVudHMgYW5pbWF0ZWRT
dHlsZSgpLCBpZiBhbiBhbmltYXRpb24gaXMgcnVubmluZy4KKworICAgICAgICBDb3ZlcmVkIGJ5
IGV4aXN0aW5nIHRlc3RzLCBubyBjaGFuZ2UgaW4gYmVoYXZpb3VyLgorCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmFwcGx5
VHJhbnNmb3JtIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjphcHBseVRyYW5zZm9ybSBjb25zdCk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVRyYW5zZm9ybUZyb21T
dHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlVHJhbnNmb3JtKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjdXJyZW50VHJhbnNmb3JtIGNvbnN0KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlVHJhbnNmb3JtKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
TW9kZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6
OmFwcGx5VHJhbnNmb3JtIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jvb3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1NoYXBlOjphcHBseVRyYW5zZm9ybSBj
b25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjphcHBseVRy
YW5zZm9ybSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyLmg6CisKIDIwMjItMDMtMTAgIE5pa29sYXMgWmltbWVybWFubiAgPG56
aW1tZXJtYW5uQGlnYWxpYS5jb20+CiAKICAgICAgICAgRXh0cmFjdCB0cmFuc2Zvcm0tb3JpZ2lu
IGhhbmRsaW5nIG91dCBvZiBSZW5kZXJTdHlsZTo6YXBwbHlUcmFuc2Zvcm0oKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCAxOGJlYTM3NzQzNjdiMjk2ZDMwMjUxNjg1
ZjQ1YTIzNzFhYzZjY2NlLi40MTVlOTRmNWNiYzFhZWY4OTM4ZDE4ZTcxYmY3NDQ1NWMxMWQ5OGM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtNjY5LDkgKzY2OSw5
IEBAIHZvaWQgUmVuZGVyQm94Ojp1cGRhdGVMYXllclRyYW5zZm9ybSgpCiAgICAgICAgIGxheWVy
KCktPnVwZGF0ZVRyYW5zZm9ybSgpOwogfQogCi12b2lkIFJlbmRlckJveDo6YXBwbHlUcmFuc2Zv
cm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHQsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gs
IE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiBvcHRpb25z
KSBjb25zdAordm9pZCBSZW5kZXJCb3g6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0
cml4JiB0LCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRp
bmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiBv
cHRpb25zKSBjb25zdAogewotICAgIHN0eWxlKCkuYXBwbHlUcmFuc2Zvcm0odCwgYm91bmRpbmdC
b3gsIG9wdGlvbnMpOworICAgIHN0eWxlLmFwcGx5VHJhbnNmb3JtKHQsIGJvdW5kaW5nQm94LCBv
cHRpb25zKTsKIH0KIAogTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNvbnN0cmFpbkxvZ2ljYWxXaWR0
aEluRnJhZ21lbnRCeU1pbk1heChMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCBh
dmFpbGFibGVXaWR0aCwgUmVuZGVyQmxvY2smIGNiLCBSZW5kZXJGcmFnbWVudENvbnRhaW5lciog
ZnJhZ21lbnQsIEFsbG93SW50cmluc2ljIGFsbG93SW50cmluc2ljKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IGNhYzYxM2ZkNjFlMWIwNWViMjc0MTU5YWJmYzky
NWVlZjM1Nzc0NWQuLmU0MDdjYmNmYzVmNDI5MTdiNTk5ZWEyNTRmMzQ5MjBkZjVjNjdmOWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTIxOSw3ICsyMTksNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBhZGRPdmVyZmxvd0Zyb21DaGlsZChjb25zdCBSZW5kZXJCb3gqIGNoaWxk
LCBjb25zdCBMYXlvdXRTaXplJiBkZWx0YSk7CiAKICAgICB2b2lkIHVwZGF0ZUxheWVyVHJhbnNm
b3JtKCk7Ci0gICAgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNv
bnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNm
b3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRpb25z
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9u
TWF0cml4JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94
LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gPSBSZW5k
ZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucykgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBM
YXlvdXRTaXplIGNvbnRlbnRTaXplKCkgY29uc3QgeyByZXR1cm4geyBjb250ZW50V2lkdGgoKSwg
Y29udGVudEhlaWdodCgpIH07IH0KICAgICBMYXlvdXRVbml0IGNvbnRlbnRXaWR0aCgpIGNvbnN0
IHsgcmV0dXJuIHN0ZDo6bWF4KDBfbHUsIHBhZGRpbmdCb3hXaWR0aCgpIC0gcGFkZGluZ0xlZnQo
KSAtIHBhZGRpbmdSaWdodCgpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXggMjRjODJjOWQ2YmQ0M2Y3NGJhMDVhYjVhYzc2
NzkzZDc1ZDE1ZTU3Ny4uNDViZGNiYmI2MjllYWJhNzVjNGRhZWJmYWQxNTE0MDViODQzMzVkMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
Y3BwCkBAIC0yNzA2LDcgKzI3MDYsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb2xs
ZWN0QWJzb2x1dGVRdWFkc0ZvckNvbnRpbnVhdGlvbihWZWN0b3I8RmxvYXRRdWFkPgogICAgIH0K
IH0KIAotdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3Jt
YXRpb25NYXRyaXgmLCBjb25zdCBGbG9hdFJlY3QmLCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRy
YW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4pIGNvbnN0Cit2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0
OjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IFJlbmRlclN0eWxl
JiwgY29uc3QgRmxvYXRSZWN0JiwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVy
YXRpb25PcHRpb24+KSBjb25zdAogewogICAgIC8vIGFwcGx5VHJhbnNmb3JtKCkgaXMgb25seSB1
c2VkIHRocm91Z2ggUmVuZGVyTGF5ZXIqLCB3aGljaCBvbmx5IGludm9rZXMgdGhpcyBmb3IgUmVu
ZGVyQm94IGRlcml2ZWQgcmVuZGVyZXJzLCB0aHVzIG5vdCBmb3IKICAgICAvLyBSZW5kZXJJbmxp
bmUvUmVuZGVyTGluZUJyZWFrIC0gdGhlIG90aGVyIHR3byByZW5kZXJlcnMgdGhhdCBpbmhlcml0
IGZyb20gUmVuZGVyQm94TW9kZWxPYmplY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCmluZGV4IDk3Yjk2NWEzMGZkZDc2NjMxOGJiM2Q4YTVj
MDljMzRjNWE4M2JlZGYuLjBjNWNhNjZjYWRhZDlkZTQ3MGJkY2FmMDNjNmIxZmFlMzcwZWViMDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5o
CkBAIC0yNTQsNyArMjU0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBoYXNPdmVycmlk
aW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudFdpZHRoKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaGFzT3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRIZWln
aHQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdm9pZCBhcHBseVRyYW5zZm9ybShU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlv
blNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxl
OjphbGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGFwcGx5
VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25z
dCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9y
bU9wZXJhdGlvbk9wdGlvbj4gPSBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucykg
Y29uc3Qgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKICAgICBSZW5kZXJCb3hNb2RlbE9iamVjdChF
bGVtZW50JiwgUmVuZGVyU3R5bGUmJiwgQmFzZVR5cGVGbGFncyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBkOGE0ZWZjOGM1YjFmY2Y4NjI2NWU2Y2ExNjg3
YTliZGQ5MWQxMjg3Li5mNjE1MDAyNWQ5ZjE5NjlkYzlhN2M1NjA5NDIzZTUyZDIwMzk1ZTQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTEzMDgsNiArMTMw
OCwxOCBAQCBzdGF0aWMgaW5saW5lIEZsb2F0UmVjdCBjb21wdXRlUmVmZXJlbmNlQm94KGNvbnN0
IFJlbmRlckxheWVyTW9kZWxPYmplY3QmIHJlbmRlcgogICAgIHJldHVybiByZWZlcmVuY2VCb3g7
CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCB1cGRhdGVUcmFuc2Zvcm1Gcm9tU3R5bGUoVHJhbnNm
b3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCYg
cmVuZGVyZXIsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgT3B0aW9uU2V0PFJlbmRlclN0eWxl
OjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+IG9wdGlvbnMpCit7CisgICAgRmxvYXRSZWN0IHJl
ZmVyZW5jZUJveDsKKworICAgIC8vIEZJWE1FOiBbTEJTRV0gVXBzdHJlYW0gcmVmZXJlbmNlIGJv
eCBjb21wdXRhdGlvbiBmb3IgUmVuZGVyU1ZHTW9kZWxPYmplY3QgZGVyaXZlZCByZW5kZXJlcnMK
KyAgICBpZiAoaXM8UmVuZGVyQm94PihyZW5kZXJlcikpCisgICAgICAgIHJlZmVyZW5jZUJveCA9
IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoTGF5b3V0UmVjdChyZW5kZXJlci50cmFuc2Zvcm1SZWZl
cmVuY2VCb3hSZWN0KCkpLCByZW5kZXJlci5kb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCkp
OworCisgICAgcmVuZGVyZXIuYXBwbHlUcmFuc2Zvcm0odHJhbnNmb3JtLCBzdHlsZSwgcmVmZXJl
bmNlQm94LCBvcHRpb25zKTsKKyAgICBtYWtlTWF0cml4UmVuZGVyYWJsZSh0cmFuc2Zvcm0sIHJl
bmRlcmVyLnZpZXcoKS5jb21wb3NpdG9yKCkuY2FuUmVuZGVyM0RUcmFuc2Zvcm1zKCkpOworfQor
CiB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0oKQogewogICAgIGJvb2wgaGFzVHJh
bnNmb3JtID0gcmVuZGVyZXIoKS5oYXNUcmFuc2Zvcm0oKTsKQEAgLTEzMjYsMTQgKzEzMzgsNyBA
QCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0oKQogICAgIAogICAgIGlmIChoYXNU
cmFuc2Zvcm0pIHsKICAgICAgICAgbV90cmFuc2Zvcm0tPm1ha2VJZGVudGl0eSgpOwotCi0gICAg
ICAgIC8vIEZJWE1FOiBbTEJTRV0gVXBzdHJlYW0gcmVmZXJlbmNlIGJveCBjb21wdXRhdGlvbiBm
b3IgUmVuZGVyU1ZHTW9kZWxPYmplY3QgZGVyaXZlZCByZW5kZXJlcnMKLSAgICAgICAgRmxvYXRS
ZWN0IHJlZmVyZW5jZUJveDsKLSAgICAgICAgaWYgKGlzPFJlbmRlckJveD4ocmVuZGVyZXIoKSkp
Ci0gICAgICAgICAgICByZWZlcmVuY2VCb3ggPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKExheW91
dFJlY3QoZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcigpKS50cmFuc2Zvcm1SZWZlcmVuY2VC
b3hSZWN0KCkpLCByZW5kZXJlcigpLmRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKSk7Ci0K
LSAgICAgICAgcmVuZGVyZXIoKS5hcHBseVRyYW5zZm9ybSgqbV90cmFuc2Zvcm0sIHJlZmVyZW5j
ZUJveCk7Ci0gICAgICAgIG1ha2VNYXRyaXhSZW5kZXJhYmxlKCptX3RyYW5zZm9ybSwgY2FuUmVu
ZGVyM0RUcmFuc2Zvcm1zKCkpOworICAgICAgICB1cGRhdGVUcmFuc2Zvcm1Gcm9tU3R5bGUoKm1f
dHJhbnNmb3JtLCByZW5kZXJlcigpLCByZW5kZXJlcigpLnN0eWxlKCksIFJlbmRlclN0eWxlOjph
bGxUcmFuc2Zvcm1PcGVyYXRpb25zKTsKICAgICB9CiAKICAgICBpZiAoaGFkM0RUcmFuc2Zvcm0g
IT0gaGFzM0RUcmFuc2Zvcm0oKSkgewpAQCAtMTM2MSwxMiArMTM2Niw5IEBAIFRyYW5zZm9ybWF0
aW9uTWF0cml4IFJlbmRlckxheWVyOjpjdXJyZW50VHJhbnNmb3JtKE9wdGlvblNldDxSZW5kZXJT
dHlsZTo6VHJhbnNmCiAgICAgYXV0byBzdHlsZWFibGUgPSBTdHlsZWFibGU6OmZyb21SZW5kZXJl
cihyZW5kZXJCb3gpOwogICAgIGlmICgoc3R5bGVhYmxlICYmIHN0eWxlYWJsZS0+aXNSdW5uaW5n
QWNjZWxlcmF0ZWRUcmFuc2Zvcm1BbmltYXRpb24oKSkgfHwgIW9wdGlvbnMuY29udGFpbnMoUmVu
ZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbjo6VHJhbnNmb3JtT3JpZ2luKSkgewog
ICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IGFuaW1hdGVkU3R5bGUgPSByZW5k
ZXJCb3guYW5pbWF0ZWRTdHlsZSgpOwotICAgICAgICBhdXRvIHBpeGVsU25hcHBlZEJvcmRlclJl
Y3QgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHJlbmRlckJveC50cmFuc2Zvcm1SZWZlcmVuY2VC
b3hSZWN0KCksIHJlbmRlckJveC5kb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCkpOwogCiAg
ICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRyYW5zZm9ybTsKLSAgICAgICAgYW5pbWF0ZWRT
dHlsZS0+YXBwbHlUcmFuc2Zvcm0odHJhbnNmb3JtLCBwaXhlbFNuYXBwZWRCb3JkZXJSZWN0LCBv
cHRpb25zKTsKLQotICAgICAgICBtYWtlTWF0cml4UmVuZGVyYWJsZSh0cmFuc2Zvcm0sIGNhblJl
bmRlcjNEVHJhbnNmb3JtcygpKTsKKyAgICAgICAgdXBkYXRlVHJhbnNmb3JtRnJvbVN0eWxlKHRy
YW5zZm9ybSwgcmVuZGVyQm94LCAqYW5pbWF0ZWRTdHlsZSwgb3B0aW9ucyk7CiAgICAgICAgIHJl
dHVybiB0cmFuc2Zvcm07CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IGE4NTBlMTM3NGExMjU4MjIwY2VmYzhmZDdhMmI3
M2Y3NjdhNzQzYWMuLmYwMTgxMTUzYzM4ODFhY2QwZGE1OTk5ZDI1ZTI1YTkwZTQyNzNhZGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBA
IC02NDMsNyArNjQzLDggQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZVRyYW5zZm9y
bShjb25zdCBSZW5kZXJTdHlsZSYpCiAgICAgLy8gYmFrZWQgaW50byBpdCwgYW5kIHdlIGRvbid0
IHdhbnQgdGhhdC4KICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0OwogICAgIGlmIChtX293bmlu
Z0xheWVyLmhhc1RyYW5zZm9ybSgpKSB7Ci0gICAgICAgIHJlbmRlcmVyKCkuYXBwbHlUcmFuc2Zv
cm0odCwgc25hcFJlY3RUb0RldmljZVBpeGVscyhtX293bmluZ0xheWVyLnJlbmRlcmVyQm9yZGVy
Qm94UmVjdCgpLCBkZXZpY2VTY2FsZUZhY3RvcigpKSwgUmVuZGVyU3R5bGU6OmluZGl2aWR1YWxU
cmFuc2Zvcm1PcGVyYXRpb25zKTsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgdXNlcyB0aGUgd3Jv
bmcsIHRyYW5zZm9ybS1ib3ggdW5hd2FyZSwgZ2VvbWV0cnkuCisgICAgICAgIHJlbmRlcmVyKCku
YXBwbHlUcmFuc2Zvcm0odCwgcmVuZGVyZXIoKS5zdHlsZSgpLCBzbmFwUmVjdFRvRGV2aWNlUGl4
ZWxzKG1fb3duaW5nTGF5ZXIucmVuZGVyZXJCb3JkZXJCb3hSZWN0KCksIGRldmljZVNjYWxlRmFj
dG9yKCkpLCBSZW5kZXJTdHlsZTo6aW5kaXZpZHVhbFRyYW5zZm9ybU9wZXJhdGlvbnMpOwogICAg
ICAgICBtYWtlTWF0cml4UmVuZGVyYWJsZSh0LCBjb21wb3NpdG9yKCkuY2FuUmVuZGVyM0RUcmFu
c2Zvcm1zKCkpOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oCmluZGV4IGMzNTRmMzc3ZjI4ZTFjMjIyNmE5YTFlMmM1
NDZjMzYxODI2MTczYmYuLmQ0NGZmNmFkNTJkM2E1OWY1MWQxYzBmZWFmNmNlNzk1YTVlMGVkZTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmpl
Y3QuaApAQCAtNzcsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtYXBMb2NhbFRvU1ZHQ29u
dGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yQ29udGFpbmVyLCBU
cmFuc2Zvcm1TdGF0ZSYsIE9wdGlvblNldDxNYXBDb29yZGluYXRlc01vZGU+LCBib29sKiB3YXNG
aXhlZCkgY29uc3Q7CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBhcHBseVRyYW5zZm9ybShU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlv
blNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxl
OjphbGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFw
cGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBj
b25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5z
Zm9ybU9wZXJhdGlvbk9wdGlvbj4gPSBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9u
cykgY29uc3QgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdChF
bGVtZW50JiwgUmVuZGVyU3R5bGUmJiwgQmFzZVR5cGVGbGFncyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCmluZGV4IGVj
YzNmMGRkYTZmNDRhNTFjNTZkMjZhN2EyNzk2ZmY2YjcwM2QwOGEuLmIxOTI5NGI2NzU4YzlkMTdi
NmM4NTA5YjIxYWQxNzE0YzE4OTM0ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCkBAIC0yNzYsMTUgKzI3Niw2IEBA
IGJvb2wgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OmNoZWNrRW5jbG9zdXJlKFJlbmRlckVsZW1lbnQq
IHJlbmRlcmVyLCBjb25zdCBGbG9hdFJlCiAgICAgcmV0dXJuIHJlY3QuY29udGFpbnMoY3RtLm1h
cFJlY3QocmVuZGVyZXItPnJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkpKTsKIH0KIAot
dm9pZCBSZW5kZXJTVkdNb2RlbE9iamVjdDo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25N
YXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0
PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+IG9wdGlvbnMpIGNvbnN0Ci17
Ci0gICAgVU5VU0VEX1BBUkFNKHRyYW5zZm9ybSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJvdW5kaW5n
Qm94KTsKLSAgICBVTlVTRURfUEFSQU0ob3B0aW9ucyk7Ci0gICAgLy8gRklYTUU6IFtMQlNFXSBV
cHN0cmVhbSBTVkdSZW5kZXJTdXBwb3J0IGNoYW5nZXMKLSAgICAvLyBTVkdSZW5kZXJTdXBwb3J0
OjphcHBseVRyYW5zZm9ybSgqdGhpcywgdHJhbnNmb3JtLCBzdHlsZSwgYm91bmRpbmdCb3gsIHN0
ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0LCBvcHRpb25zKTsKLX0KLQogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKExBWUVSX0JBU0VEX1NWR19FTkdJTkUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgK
aW5kZXggOTNmYzlmYWUyZGVlNjJhZGI2ZGQ1NDVjOWE5M2NiMzgyNjVmYmU0OC4uYmMxMTI0NTA0
M2M5ZDFlNTRlYjBjYzRjYzJjMTQ4YzlhOWIyMzhjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaApAQCAtNTgsOCArNTgsNiBA
QCBwdWJsaWM6CiAKICAgICBpbmxpbmUgU1ZHRWxlbWVudCYgZWxlbWVudCgpIGNvbnN0OwogCi0g
ICAgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IEZsb2F0
UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0
aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBjb25zdCBv
dmVycmlkZTsKLQogICAgIC8vIE1pbWljIHRoZSBSZW5kZXJCb3ggYWNjZXNzb3JzIC0gYnkgc2hh
cmluZyB0aGUgc2FtZSB0ZXJtaW5vbG9neSB0aGUgcGFpbnRpbmcgLyBoaXQgdGVzdGluZyAvIGxh
eW91dCBsb2dpYyBpcwogICAgIC8vIHNpbWlsYXIgdG8gcmVhZCBjb21wYXJlZCB0byBub24tU1ZH
IHJlbmRlcmVycyBzdWNoIGFzIFJlbmRlckJveCAmIGZyaWVuZHMuCiAgICAgTGF5b3V0UmVjdCBi
b3JkZXJCb3hSZWN0RXF1aXZhbGVudCgpIGNvbnN0IHsgcmV0dXJuIHsgTGF5b3V0UG9pbnQoKSwg
bV9sYXlvdXRSZWN0LnNpemUoKSB9OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSb290LmNwcAppbmRleCBkNDA5MTg2NTM2NjEyM2UxZWZmOWI3NzFkODg1MGY4
NDdhNWE3ZmJhLi43MTZlYTgzMDY4NDU5MzNjYjhmMDQ3YWU4YThkOWQyODUwMWM4ZDc1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKQEAgLTYw
NiwxNCArNjA2LDYgQEAgTGF5b3V0UmVjdCBSZW5kZXJTVkdSb290OjpvdmVyZmxvd0NsaXBSZWN0
KGNvbnN0IExheW91dFBvaW50JiBsb2NhdGlvbiwgUmVuZGVyRnIKICAgICByZXR1cm4gY2xpcFJl
Y3Q7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHUm9vdDo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRp
b25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9u
U2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+IG9wdGlvbnMpIGNvbnN0
Ci17Ci0gICAgUmVuZGVyUmVwbGFjZWQ6OmFwcGx5VHJhbnNmb3JtKHRyYW5zZm9ybSwgYm91bmRp
bmdCb3gsIG9wdGlvbnMpOwotCi0gICAgLy8gRklYTUU6IFtMQlNFXSBVcHN0cmVhbSBTVkdSZW5k
ZXJTdXBwb3J0IGNoYW5nZXMKLSAgICAvLyBTVkdSZW5kZXJTdXBwb3J0OjphcHBseVRyYW5zZm9y
bSgqdGhpcywgdHJhbnNmb3JtLCBzdHlsZSwgYm91bmRpbmdCb3gsIHN0ZDo6bnVsbG9wdCwgc3Rk
OjpudWxsb3B0LCBvcHRpb25zKTsKLX0KLQogdm9pZCBSZW5kZXJTVkdSb290OjphYnNvbHV0ZVJl
Y3RzKFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRl
ZE9mZnNldCkgY29uc3QKIHsKICAgICBhdXRvIGxvY2FsUmVjdCA9IExheW91dFJlY3QodmFsdWVP
ckRlZmF1bHQobV9zdXBwbGVtZW50YWxMb2NhbFRvUGFyZW50VHJhbnNmb3JtLmludmVyc2UoKSku
bWFwUmVjdChib3JkZXJCb3hSZWN0KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSb290LmgKaW5kZXggNDNjMTJlYTgyNmUxOWM3MjZkOWRiOTQxMTYyNDEwMTY3
OGU2NTA1ZS4uN2U2ZTY1ODdiYzFjOWI1ZTc1ZDA5OTZmM2M3Y2VkNzY4OGIwMDE4MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKQEAgLTY2LDggKzY2
LDYgQEAgcHVibGljOgogCiAgICAgYm9vbCBzaG91bGRBcHBseVZpZXdwb3J0Q2xpcCgpIGNvbnN0
OwogCi0gICAgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0
IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3Jt
T3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBj
b25zdCBmaW5hbDsKLQogICAgIEZsb2F0UmVjdCBvYmplY3RCb3VuZGluZ0JveCgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fb2JqZWN0Qm91bmRpbmdCb3g7IH0KICAgICBGbG9hdFJlY3Qgc3Ryb2tl
Qm91bmRpbmdCb3goKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3N0cm9rZUJvdW5kaW5nQm94OyB9
CiAgICAgRmxvYXRSZWN0IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gU1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbjo6Y29tcHV0ZVJlcGFpbnRCb3Vu
ZGluZ0JveCgqdGhpcyk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHU2hhcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdTaGFwZS5jcHAKaW5kZXggMzI5M2E2YzlmYzNhYzVmMWI5OTk4NjI4YmNjZDk2NTQyOTMy
ODhkOS4uMzI1NTcyNDE5MGI3MjBhZmQzNjY4NTU4NjIwMTYwZjBmMzgxMDE5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKQEAgLTUzNCw2
ICs1MzQsMTIgQEAgdm9pZCBSZW5kZXJTVkdTaGFwZTo6c3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlm
ZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSYgbmUKICAgICBSZW5kZXJTVkdNb2RlbE9i
amVjdDo6c3R5bGVXaWxsQ2hhbmdlKGRpZmYsIG5ld1N0eWxlKTsKIH0KIAordm9pZCBSZW5kZXJT
VkdTaGFwZTo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwg
Y29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBP
cHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykg
Y29uc3QKK3sKKyAgICAvLyBGSVhNRTogW0xCU0VdIFVwc3RyZWFtIENTUy9TVkcgdHJhbnNmb3Jt
IHN1cHBvcnQKKyAgICBzdHlsZS5hcHBseVRyYW5zZm9ybSh0cmFuc2Zvcm0sIGJvdW5kaW5nQm94
LCBvcHRpb25zKTsKK30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKExBWUVSX0JBU0VEX1NWR19F
TkdJTkUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1NoYXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmgK
aW5kZXggYTIzZDlhZDI5OGUwMjkxMTM5ODZjNTkwMWI0MzUxNWUxZDllNDJiMC4uNzQzNjhiZGFm
NjlmOWQxNjE5MjljYjIxM2YxMjU0YmFjNTU1YjliZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuaApAQCAtODIsNiArODIsOCBAQCBwdWJsaWM6CiAK
ICAgICBGbG9hdFJlY3QgY29tcHV0ZU1hcmtlckJvdW5kaW5nQm94KGNvbnN0IFNWR0JvdW5kaW5n
Qm94Q29tcHV0YXRpb246OkRlY29yYXRpb25PcHRpb25zJikgY29uc3Q7CiAKKyAgICB2b2lkIGFw
cGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBj
b25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5z
Zm9ybU9wZXJhdGlvbk9wdGlvbj4gPSBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9u
cykgY29uc3Qgb3ZlcnJpZGU7CisKIHByb3RlY3RlZDoKICAgICB2b2lkIGVsZW1lbnQoKSBjb25z
dCA9IGRlbGV0ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHAKaW5kZXggZmIzNWJm
OTFmYTM1NjRhODdlNGU4NmQwZmRkYTMyMWYwNzUxYTdkNC4uOTAzMTIyYmU5N2M3NTFhM2Q1MmE5
NGU3N2Y4Y2E3NWY2MTQ0YzE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwCkBA
IC0xMDIsMTAgKzEwMiwxMCBAQCB2b2lkIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI6
OnVwZGF0ZUZyb21TdHlsZSgpCiAgICAgLy8gICAgc2V0SGFzU1ZHVHJhbnNmb3JtKCk7CiB9CiAK
LXZvaWQgUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcjo6YXBwbHlUcmFuc2Zvcm0oVHJh
bnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0Jv
eCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+IG9wdGlv
bnMpIGNvbnN0Cit2b2lkIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI6OmFwcGx5VHJh
bnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IFJlbmRlclN0eWxl
JiBzdHlsZSwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0
eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgLy8g
RklYTUU6IFtMQlNFXSBVcHN0cmVhbSBDU1MvU1ZHIHRyYW5zZm9ybSBzdXBwb3J0Ci0gICAgUmVu
ZGVyU1ZHQ29udGFpbmVyOjphcHBseVRyYW5zZm9ybSh0cmFuc2Zvcm0sIGJvdW5kaW5nQm94LCBv
cHRpb25zKTsKKyAgICBzdHlsZS5hcHBseVRyYW5zZm9ybSh0cmFuc2Zvcm0sIGJvdW5kaW5nQm94
LCBvcHRpb25zKTsKIH0KIAogdm9pZCBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjpz
dHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlJiBu
ZXdTdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmgKaW5kZXggMTNiZGEwYjBmYjY0OWQ3
ZmM2MGExNjY3NGJhYzdjMmVkMWE3N2ZhZS4uNjRmYTllMTY0YWI2MWVhNzdhYjIwNTZkNmI4ZTA1
MWRhMWZhZTc1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmgKQEAgLTQ1LDggKzQ1LDkg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGxheW91dENoaWxkcmVuKCkgZmluYWw7CiAgICAgdm9pZCBj
YWxjdWxhdGVWaWV3cG9ydCgpIGZpbmFsOwogICAgIEZsb2F0UG9pbnQgYWRkaXRpb25hbENvbnRh
aW5lclRyYW5zbGF0aW9uKCkgY29uc3Q7Ci0gICAgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxS
ZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjphbGxU
cmFuc2Zvcm1PcGVyYXRpb25zKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGFwcGx5VHJhbnNmb3Jt
KFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGbG9hdFJl
Y3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlv
bk9wdGlvbj4gPSBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucykgY29uc3QgZmlu
YWw7CiAgICAgdm9pZCBzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5k
ZXJTdHlsZSYgbmV3U3R5bGUpIGZpbmFsOworCiAgICAgdm9pZCB1cGRhdGVGcm9tU3R5bGUoKSBm
aW5hbDsKIAogICAgIEFmZmluZVRyYW5zZm9ybSBtX3N1cHBsZW1lbnRhbExvY2FsVG9QYXJlbnRU
cmFuc2Zvcm07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454410</attachid>
            <date>2022-03-10 15:37:42 -0800</date>
            <delta_ts>2022-03-13 16:46:41 -0700</delta_ts>
            <desc>Patch, v4</desc>
            <filename>bug-237701-20220310153741.patch</filename>
            <type>text/plain</type>
            <size>21847</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzdhNGVlMWUxNGQ5NjYz
ZGE0YWFhYzcyMTc1OGM2Mjk3ZTdhOGE0Yy4uYzZmYmVmNGNhNWJkZWEyZjY4MTU3NzFjNWMzMDEw
YmFkOGRiNGU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIyLTAzLTEwICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIFVuaWZ5
IHJlZmVyZW5jZSBib3ggLyBDVE0gY29tcHV0YXRpb24gaW4gUmVuZGVyTGF5ZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzcwMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dHJhY3QgdGhlIGNvZGUg
aW4gUmVuZGVyTGF5ZXIgdGhhdCBjb21wdXRlcyB0aGUgcmVmZXJlbmNlIGJveCwgb2J0YWlucyB0
aGUgQ1RNLAorICAgICAgICBhcHBsaWVzIHBpeGVsIHNuYXBwaW5nLCBldGMuIGludG8gYSBzaGFy
ZWQgdXBkYXRlVHJhbnNmb3JtRnJvbVN0eWxlKCkgaGVscGVyIGZ1bmN0aW9uLgorICAgICAgICBV
c2UgdGhhdCBoZWxwZXIgdG8gZGUtZHVwbGljYXRlIGNvZGUgYmV0d2VlbiB1cGRhdGVUcmFuc2Zv
cm0oKSAvIGN1cnJlbnRUcmFuc2Zvcm0oKQorICAgICAgICAoYW5kIFJlbmRlckxheWVyQmFja2lu
Zzo6dXBkYXRlVHJhbnNmb3JtKCkgaW4gZm9sbG93LXVwIHBhdGNoZXMpLgorCisgICAgICAgIGN1
cnJlbnRUcmFuc2Zvcm0oKSBuZWVkcyB0byBjb21wdXRlIHRoZSBDVE0sIGJhc2VkIG9uIGEgbm9u
LWRlZmF1bHQgUmVuZGVyU3R5bGUgKCE9IHJlbmRlcmVyKCkuc3R5bGUoKSksCisgICAgICAgIG5h
bWVseSB0aGUgYW5pbm1hdGVkU3R5bGUoKSwgaWYgYW4gYWNjZWxlcmF0ZWQgdHJhbnNmb3JtIGFu
aW1hdGlvbiBpcyBydW5uaW5nLiBUaGVyZWZvcmUgZXh0ZW5kCisgICAgICAgIFJlbmRlckxheWVy
TW9kZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtKCkgdG8gdGFrZSBhbiBhZGRpdGlvbmFsIFJlbmRl
clN0eWxlIHBhcmFtZXRlciwKKyAgICAgICAgdGhhdCBpcyB1c2VkIHRvIGFjY2VzcyB0aGUgQ1NT
IHRyYW5zZm9ybSBvcGVyYXRpb25zLCBpbnN0ZWFkIG9mIGFsd2F5cyBxdWVyeWluZyByZW5kZXJl
cigpLnN0eWxlKCkuCisgICAgICAgIFJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0oKSBjb250
aW51ZXMgdG8gcGFzcyAncmVuZGVyZXIoKS5zdHlsZSgpJyB0byB1cGRhdGVUcmFuc2Zvcm1Gcm9t
U3R5bGUoKSwKKyAgICAgICAgd2hlcmVhcyBSZW5kZXJMYXllcjo6Y3VycmVudFRyYW5zZm9ybSgp
IHBhc3NlcyB0aGUgZWxlbWVudHMgYW5pbWF0ZWRTdHlsZSgpLgorCisgICAgICAgIFRvIGZ1cnRo
ZXIgc2ltcGxpZnkgdGhlIGNvZGUgYW5kIHByZXBhcmUgZm9yIExCU0UgdHJhbnNmb3JtIHN1cHBv
cnQsIGludHJvZHVjZSBhbmQgdXNlIGFub3RoZXIKKyAgICAgICAgaGVscGVyOiBjb21wdXRlUGl4
ZWxTbmFwcGVkRmxvYXRSZWN0SWZOZWVkZWQoKSwgdGhhdCBhcHBsaWVzIHBpeGVsIHNuYXBwaW5n
IHRvIHRoZSBwYXNzZWQgRmxvYXRSZWN0LAorICAgICAgICBvciBqdXN0IHJldHVybnMgaXQgaWYg
TEJTRSBpcyBlbmFibGVkICh3aGVuIG9wZXJhdGluZyBvbiBhIGxheWVyLWF3YXJlIFNWRyByZW5k
ZXJlcikuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cywgbm8gY2hhbmdlIGlu
IGJlaGF2aW91ci4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQm94OjphcHBseVRyYW5zZm9ybSBjb25zdCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2Rl
bE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6YXBw
bHlUcmFuc2Zvcm0gY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6Y29tcHV0ZVBpeGVsU25hcHBlZEZsb2F0UmVjdElmTmVlZGVk
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm1G
cm9tU3R5bGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZVRy
YW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y3VycmVudFRyYW5zZm9y
bSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckJhY2tpbmc6OnVwZGF0ZVRyYW5zZm9ybSk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckxheWVyTW9kZWxPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R01vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR01vZGVsT2JqZWN0
OjphcHBseVRyYW5zZm9ybSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUm9vdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSb290OjphcHBseVRyYW5z
Zm9ybSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
b290Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTVkdTaGFwZTo6YXBwbHlUcmFuc2Zvcm0gY29uc3QpOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcjo6YXBwbHlUcmFuc2Zvcm0gY29u
c3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRh
aW5lci5oOgorCiAyMDIyLTAzLTEwICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBp
Z2FsaWEuY29tPgogCiAgICAgICAgIEV4dHJhY3QgdHJhbnNmb3JtLW9yaWdpbiBoYW5kbGluZyBv
dXQgb2YgUmVuZGVyU3R5bGU6OmFwcGx5VHJhbnNmb3JtKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5jcHAKaW5kZXggMThiZWEzNzc0MzY3YjI5NmQzMDI1MTY4NWY0NWEyMzcxYWM2
Y2NjZS4uNDE1ZTk0ZjVjYmMxYWVmODkzOGQxOGU3MWJmNzQ0NTVjMTFkOThjNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTY2OSw5ICs2NjksOSBAQCB2b2lkIFJl
bmRlckJveDo6dXBkYXRlTGF5ZXJUcmFuc2Zvcm0oKQogICAgICAgICBsYXllcigpLT51cGRhdGVU
cmFuc2Zvcm0oKTsKIH0KIAotdm9pZCBSZW5kZXJCb3g6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9y
bWF0aW9uTWF0cml4JiB0LCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8
UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKK3Zv
aWQgUmVuZGVyQm94OjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdCwgY29u
c3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRp
b25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29u
c3QKIHsKLSAgICBzdHlsZSgpLmFwcGx5VHJhbnNmb3JtKHQsIGJvdW5kaW5nQm94LCBvcHRpb25z
KTsKKyAgICBzdHlsZS5hcHBseVRyYW5zZm9ybSh0LCBib3VuZGluZ0JveCwgb3B0aW9ucyk7CiB9
CiAKIExheW91dFVuaXQgUmVuZGVyQm94Ojpjb25zdHJhaW5Mb2dpY2FsV2lkdGhJbkZyYWdtZW50
QnlNaW5NYXgoTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExheW91dFVuaXQgYXZhaWxhYmxlV2lk
dGgsIFJlbmRlckJsb2NrJiBjYiwgUmVuZGVyRnJhZ21lbnRDb250YWluZXIqIGZyYWdtZW50LCBB
bGxvd0ludHJpbnNpYyBhbGxvd0ludHJpbnNpYykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guaAppbmRleCBjYWM2MTNmZDYxZTFiMDVlYjI3NDE1OWFiZmM5MjVlZWYzNTc3NDVk
Li5lNDA3Y2JjZmM1ZjQyOTE3YjU5OWVhMjU0ZjM0OTIwZGY1YzY3ZjlkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC0yMTksNyArMjE5LDcgQEAgcHVibGljOgogICAgIHZv
aWQgYWRkT3ZlcmZsb3dGcm9tQ2hpbGQoY29uc3QgUmVuZGVyQm94KiBjaGlsZCwgY29uc3QgTGF5
b3V0U2l6ZSYgZGVsdGEpOwogCiAgICAgdm9pZCB1cGRhdGVMYXllclRyYW5zZm9ybSgpOwotICAg
IHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBGbG9hdFJl
Y3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlv
bk9wdGlvbj4gPSBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucykgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNv
bnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0
PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+ID0gUmVuZGVyU3R5bGU6OmFs
bFRyYW5zZm9ybU9wZXJhdGlvbnMpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgTGF5b3V0U2l6ZSBj
b250ZW50U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIHsgY29udGVudFdpZHRoKCksIGNvbnRlbnRIZWln
aHQoKSB9OyB9CiAgICAgTGF5b3V0VW5pdCBjb250ZW50V2lkdGgoKSBjb25zdCB7IHJldHVybiBz
dGQ6Om1heCgwX2x1LCBwYWRkaW5nQm94V2lkdGgoKSAtIHBhZGRpbmdMZWZ0KCkgLSBwYWRkaW5n
UmlnaHQoKSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9k
ZWxPYmplY3QuY3BwCmluZGV4IDI0YzgyYzlkNmJkNDNmNzRiYTA1YWI1YWM3Njc5M2Q3NWQxNWU1
NzcuLjQ1YmRjYmJiNjI5ZWFiYTc1YzRkYWViZmFkMTUxNDA1Yjg0MzM1ZDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtMjcw
Niw3ICsyNzA2LDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29sbGVjdEFic29sdXRl
UXVhZHNGb3JDb250aW51YXRpb24oVmVjdG9yPEZsb2F0UXVhZD4KICAgICB9CiB9CiAKLXZvaWQg
UmVuZGVyQm94TW9kZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4
JiwgY29uc3QgRmxvYXRSZWN0JiwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVy
YXRpb25PcHRpb24+KSBjb25zdAordm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6YXBwbHlUcmFu
c2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZs
b2F0UmVjdCYsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9u
PikgY29uc3QKIHsKICAgICAvLyBhcHBseVRyYW5zZm9ybSgpIGlzIG9ubHkgdXNlZCB0aHJvdWdo
IFJlbmRlckxheWVyKiwgd2hpY2ggb25seSBpbnZva2VzIHRoaXMgZm9yIFJlbmRlckJveCBkZXJp
dmVkIHJlbmRlcmVycywgdGh1cyBub3QgZm9yCiAgICAgLy8gUmVuZGVySW5saW5lL1JlbmRlckxp
bmVCcmVhayAtIHRoZSBvdGhlciB0d28gcmVuZGVyZXJzIHRoYXQgaW5oZXJpdCBmcm9tIFJlbmRl
ckJveE1vZGVsT2JqZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveE1vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
TW9kZWxPYmplY3QuaAppbmRleCA5N2I5NjVhMzBmZGQ3NjYzMThiYjNkOGE1YzA5YzM0YzVhODNi
ZWRmLi4wYzVjYTY2Y2FkYWQ5ZGU0NzBiZGNhZjAzYzZiMWZhZTM3MGVlYjAyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaApAQCAtMjU0LDcg
KzI1NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFzT3ZlcnJpZGluZ0NvbnRhaW5p
bmdCbG9ja0NvbnRlbnRXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBib29sIGhhc092ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50SGVpZ2h0KCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRp
b25NYXRyaXgmLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVy
U3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gPSBSZW5kZXJTdHlsZTo6YWxsVHJhbnNm
b3JtT3BlcmF0aW9ucykgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBhcHBseVRyYW5zZm9ybShU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRmxvYXRSZWN0
JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25P
cHRpb24+ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9wZXJhdGlvbnMpIGNvbnN0IG92ZXJy
aWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyQm94TW9kZWxPYmplY3QoRWxlbWVudCYsIFJl
bmRlclN0eWxlJiYsIEJhc2VUeXBlRmxhZ3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHAKaW5kZXggOWQwYjdmOTc4YTBhNGU5OGUwMzEyZWFmMjk5NzYyYzE5YzcxYWEx
Ny4uZjMxNWM5Nzk4NGNkNDZiZjhiYWQ0YTQ2ZTY4ZTQ1MmJlMjBlZjZkYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0xMzA4LDYgKzEzMDgsMjMgQEAgc3Rh
dGljIGlubGluZSBGbG9hdFJlY3QgY29tcHV0ZVJlZmVyZW5jZUJveChjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0JiByZW5kZXIKICAgICByZXR1cm4gcmVmZXJlbmNlQm94OwogfQogCitGbG9h
dFJlY3QgUmVuZGVyTGF5ZXI6OmNvbXB1dGVQaXhlbFNuYXBwZWRGbG9hdFJlY3RJZk5lZWRlZChj
b25zdCBGbG9hdFJlY3QmIHJlY3QpIGNvbnN0Cit7CisjaWYgRU5BQkxFKExBWUVSX0JBU0VEX1NW
R19FTkdJTkUpCisgICAgLy8gTm8gcGl4ZWwgc25hcHBpbmcgd2l0aGluIFNWRyBzdWJ0cmVlLgor
ICAgIGlmIChyZW5kZXJlcigpLmlzU1ZHTGF5ZXJBd2FyZVJlbmRlcmVyKCkgJiYgcmVuZGVyZXIo
KS5kb2N1bWVudCgpLnNldHRpbmdzKCkubGF5ZXJCYXNlZFNWR0VuZ2luZUVuYWJsZWQoKSkKKyAg
ICAgICAgcmV0dXJuIHJlY3Q7CisjZW5kaWYKKworICAgIHJldHVybiBzbmFwUmVjdFRvRGV2aWNl
UGl4ZWxzKExheW91dFJlY3QocmVjdCksIHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5kZXZpY2VTY2Fs
ZUZhY3RvcigpKTsKK30KKwordm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlVHJhbnNmb3JtRnJvbVN0
eWxlKFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IFJlbmRlclN0eWxlJiBz
dHlsZSwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+IG9w
dGlvbnMpIGNvbnN0Cit7CisgICAgcmVuZGVyZXIoKS5hcHBseVRyYW5zZm9ybSh0cmFuc2Zvcm0s
IHN0eWxlLCBjb21wdXRlUGl4ZWxTbmFwcGVkRmxvYXRSZWN0SWZOZWVkZWQocmVuZGVyZXIoKS50
cmFuc2Zvcm1SZWZlcmVuY2VCb3hSZWN0KCkpLCBvcHRpb25zKTsKKyAgICBtYWtlTWF0cml4UmVu
ZGVyYWJsZSh0cmFuc2Zvcm0sIGNhblJlbmRlcjNEVHJhbnNmb3JtcygpKTsKK30KKwogdm9pZCBS
ZW5kZXJMYXllcjo6dXBkYXRlVHJhbnNmb3JtKCkKIHsKICAgICBib29sIGhhc1RyYW5zZm9ybSA9
IHJlbmRlcmVyKCkuaGFzVHJhbnNmb3JtKCk7CkBAIC0xMzI2LDE0ICsxMzQzLDcgQEAgdm9pZCBS
ZW5kZXJMYXllcjo6dXBkYXRlVHJhbnNmb3JtKCkKICAgICAKICAgICBpZiAoaGFzVHJhbnNmb3Jt
KSB7CiAgICAgICAgIG1fdHJhbnNmb3JtLT5tYWtlSWRlbnRpdHkoKTsKLQotICAgICAgICAvLyBG
SVhNRTogW0xCU0VdIFVwc3RyZWFtIHJlZmVyZW5jZSBib3ggY29tcHV0YXRpb24gZm9yIFJlbmRl
clNWR01vZGVsT2JqZWN0IGRlcml2ZWQgcmVuZGVyZXJzCi0gICAgICAgIEZsb2F0UmVjdCByZWZl
cmVuY2VCb3g7Ci0gICAgICAgIGlmIChpczxSZW5kZXJCb3g+KHJlbmRlcmVyKCkpKQotICAgICAg
ICAgICAgcmVmZXJlbmNlQm94ID0gc25hcFJlY3RUb0RldmljZVBpeGVscyhMYXlvdXRSZWN0KGRv
d25jYXN0PFJlbmRlckJveD4ocmVuZGVyZXIoKSkudHJhbnNmb3JtUmVmZXJlbmNlQm94UmVjdCgp
KSwgcmVuZGVyZXIoKS5kb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCkpOwotCi0gICAgICAg
IHJlbmRlcmVyKCkuYXBwbHlUcmFuc2Zvcm0oKm1fdHJhbnNmb3JtLCByZWZlcmVuY2VCb3gpOwot
ICAgICAgICBtYWtlTWF0cml4UmVuZGVyYWJsZSgqbV90cmFuc2Zvcm0sIGNhblJlbmRlcjNEVHJh
bnNmb3JtcygpKTsKKyAgICAgICAgdXBkYXRlVHJhbnNmb3JtRnJvbVN0eWxlKCptX3RyYW5zZm9y
bSwgcmVuZGVyZXIoKS5zdHlsZSgpLCBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9u
cyk7CiAgICAgfQogCiAgICAgaWYgKGhhZDNEVHJhbnNmb3JtICE9IGhhczNEVHJhbnNmb3JtKCkp
IHsKQEAgLTEzNjEsMTIgKzEzNzEsOSBAQCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBSZW5kZXJMYXll
cjo6Y3VycmVudFRyYW5zZm9ybShPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZgogICAgIGF1
dG8gc3R5bGVhYmxlID0gU3R5bGVhYmxlOjpmcm9tUmVuZGVyZXIocmVuZGVyQm94KTsKICAgICBp
ZiAoKHN0eWxlYWJsZSAmJiBzdHlsZWFibGUtPmlzUnVubmluZ0FjY2VsZXJhdGVkVHJhbnNmb3Jt
QW5pbWF0aW9uKCkpIHx8ICFvcHRpb25zLmNvbnRhaW5zKFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1P
cGVyYXRpb25PcHRpb246OlRyYW5zZm9ybU9yaWdpbikpIHsKICAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPFJlbmRlclN0eWxlPiBhbmltYXRlZFN0eWxlID0gcmVuZGVyQm94LmFuaW1hdGVkU3R5bGUo
KTsKLSAgICAgICAgYXV0byBwaXhlbFNuYXBwZWRCb3JkZXJSZWN0ID0gc25hcFJlY3RUb0Rldmlj
ZVBpeGVscyhMYXlvdXRSZWN0KHJlbmRlckJveC50cmFuc2Zvcm1SZWZlcmVuY2VCb3hSZWN0KCkp
LCByZW5kZXJCb3guZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKIAogICAgICAgICBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCB0cmFuc2Zvcm07Ci0gICAgICAgIGFuaW1hdGVkU3R5bGUtPmFw
cGx5VHJhbnNmb3JtKHRyYW5zZm9ybSwgcGl4ZWxTbmFwcGVkQm9yZGVyUmVjdCwgb3B0aW9ucyk7
Ci0KLSAgICAgICAgbWFrZU1hdHJpeFJlbmRlcmFibGUodHJhbnNmb3JtLCBjYW5SZW5kZXIzRFRy
YW5zZm9ybXMoKSk7CisgICAgICAgIHVwZGF0ZVRyYW5zZm9ybUZyb21TdHlsZSh0cmFuc2Zvcm0s
ICphbmltYXRlZFN0eWxlLCBvcHRpb25zKTsKICAgICAgICAgcmV0dXJuIHRyYW5zZm9ybTsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggYzE4Nzg4M2Y1
M2MwZDUxODQwOWViYWI0ZTg5YjFjNWZiOWVkM2MxYi4uNTlhNmRlODRjM2U3ZTY1NzJiNTA0MTE4
OGJjMzRkZGZhYmY1Njg1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgK
QEAgLTcyNyw5ICs3MjcsMTEgQEAgcHVibGljOgogICAgIGJvb2wgaGFzVHJhbnNmb3JtKCkgY29u
c3QgeyByZXR1cm4gcmVuZGVyZXIoKS5oYXNUcmFuc2Zvcm0oKTsgfQogICAgIC8vIE5vdGUgdGhh
dCB0aGlzIHRyYW5zZm9ybSBoYXMgdGhlIHRyYW5zZm9ybS1vcmlnaW4gYmFrZWQgaW4uCiAgICAg
VHJhbnNmb3JtYXRpb25NYXRyaXgqIHRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNm
b3JtLmdldCgpOyB9CisgICAgLy8gdXBkYXRlVHJhbnNmb3JtRnJvbVN0eWxlIGNvbXB1dGVzIGEg
dHJhbnNmb3JtIGFjY29yZGluZyB0byB0aGUgcGFzc2VkIG9wdGlvbnMgKGUuZy4gdHJhbnNmb3Jt
LW9yaWdpbiBiYWtlZCBpbiBvciBleGNsdWRlZCkgYW5kIHRoZSBnaXZlbiBzdHlsZS4KKyAgICB2
b2lkIHVwZGF0ZVRyYW5zZm9ybUZyb21TdHlsZShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0
IFJlbmRlclN0eWxlJiwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25P
cHRpb24+KSBjb25zdDsKICAgICAvLyBjdXJyZW50VHJhbnNmb3JtIGNvbXB1dGVzIGEgdHJhbnNm
b3JtIHdoaWNoIHRha2VzIGFjY2VsZXJhdGVkIGFuaW1hdGlvbnMgaW50byBhY2NvdW50LiBUaGUK
LSAgICAvLyByZXN1bHRpbmcgdHJhbnNmb3JtIGhhcyB0cmFuc2Zvcm0tb3JpZ2luIGJha2VkIGlu
LiBJZiB0aGUgbGF5ZXIgZG9lcyBub3QgaGF2ZSBhIHRyYW5zZm9ybSwKLSAgICAvLyByZXR1cm5z
IHRoZSBpZGVudGl0eSBtYXRyaXguCisgICAgLy8gcmVzdWx0aW5nIHRyYW5zZm9ybSBoYXMgdHJh
bnNmb3JtLW9yaWdpbiBiYWtlZCBpbiwgdW5sZXNzIG5vbi1kZWZhdWx0IG9wdGlvbnMgYXJlIGdp
dmVuLiBJZgorICAgIC8vIHRoZSBsYXllciBkb2VzIG5vdCBoYXZlIGEgdHJhbnNmb3JtLCB0aGUg
aWRlbnRpdHkgbWF0cml4IGlzIHJldHVybmVkLgogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGN1
cnJlbnRUcmFuc2Zvcm0oT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25P
cHRpb24+ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9wZXJhdGlvbnMpIGNvbnN0OwogICAg
IFRyYW5zZm9ybWF0aW9uTWF0cml4IHJlbmRlcmFibGVUcmFuc2Zvcm0oT3B0aW9uU2V0PFBhaW50
QmVoYXZpb3I+KSBjb25zdDsKICAgICAKQEAgLTkzMCw2ICs5MzIsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgc2V0QW5jZXN0b3JDaGFpbkhhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudCgpOwog
ICAgIHZvaWQgZGlydHlBbmNlc3RvckNoYWluSGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50
U3RhdHVzKCk7CiAKKyAgICBGbG9hdFJlY3QgY29tcHV0ZVBpeGVsU25hcHBlZEZsb2F0UmVjdElm
TmVlZGVkKGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OwogICAgIHZvaWQgY29tcHV0ZVJlcGFpbnRS
ZWN0cyhjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBjb25z
dCBSZW5kZXJHZW9tZXRyeU1hcCogPSBudWxscHRyKTsKICAgICB2b2lkIGNvbXB1dGVSZXBhaW50
UmVjdHNJbmNsdWRpbmdEZXNjZW5kYW50cygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IGE4NTBlMTM3NGExMjU4MjIwY2VmYzhm
ZDdhMmI3M2Y3NjdhNzQzYWMuLmYwMTgxMTUzYzM4ODFhY2QwZGE1OTk5ZDI1ZTI1YTkwZTQyNzNh
ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwCkBAIC02NDMsNyArNjQzLDggQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZVRy
YW5zZm9ybShjb25zdCBSZW5kZXJTdHlsZSYpCiAgICAgLy8gYmFrZWQgaW50byBpdCwgYW5kIHdl
IGRvbid0IHdhbnQgdGhhdC4KICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0OwogICAgIGlmICht
X293bmluZ0xheWVyLmhhc1RyYW5zZm9ybSgpKSB7Ci0gICAgICAgIHJlbmRlcmVyKCkuYXBwbHlU
cmFuc2Zvcm0odCwgc25hcFJlY3RUb0RldmljZVBpeGVscyhtX293bmluZ0xheWVyLnJlbmRlcmVy
Qm9yZGVyQm94UmVjdCgpLCBkZXZpY2VTY2FsZUZhY3RvcigpKSwgUmVuZGVyU3R5bGU6OmluZGl2
aWR1YWxUcmFuc2Zvcm1PcGVyYXRpb25zKTsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgdXNlcyB0
aGUgd3JvbmcsIHRyYW5zZm9ybS1ib3ggdW5hd2FyZSwgZ2VvbWV0cnkuCisgICAgICAgIHJlbmRl
cmVyKCkuYXBwbHlUcmFuc2Zvcm0odCwgcmVuZGVyZXIoKS5zdHlsZSgpLCBzbmFwUmVjdFRvRGV2
aWNlUGl4ZWxzKG1fb3duaW5nTGF5ZXIucmVuZGVyZXJCb3JkZXJCb3hSZWN0KCksIGRldmljZVNj
YWxlRmFjdG9yKCkpLCBSZW5kZXJTdHlsZTo6aW5kaXZpZHVhbFRyYW5zZm9ybU9wZXJhdGlvbnMp
OwogICAgICAgICBtYWtlTWF0cml4UmVuZGVyYWJsZSh0LCBjb21wb3NpdG9yKCkuY2FuUmVuZGVy
M0RUcmFuc2Zvcm1zKCkpOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oCmluZGV4IGMzNTRmMzc3ZjI4ZTFjMjIyNmE5
YTFlMmM1NDZjMzYxODI2MTczYmYuLmQ0NGZmNmFkNTJkM2E1OWY1MWQxYzBmZWFmNmNlNzk1YTVl
MGVkZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1v
ZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9k
ZWxPYmplY3QuaApAQCAtNzcsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtYXBMb2NhbFRv
U1ZHQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yQ29udGFp
bmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE9wdGlvblNldDxNYXBDb29yZGluYXRlc01vZGU+LCBib29s
KiB3YXNGaXhlZCkgY29uc3Q7CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBhcHBseVRyYW5z
Zm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gs
IE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRl
clN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgUmVuZGVyU3R5
bGUmLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6
OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gPSBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3Bl
cmF0aW9ucykgY29uc3QgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdChFbGVtZW50JiwgUmVuZGVyU3R5bGUmJiwgQmFzZVR5cGVGbGFncyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCmlu
ZGV4IGVjYzNmMGRkYTZmNDRhNTFjNTZkMjZhN2EyNzk2ZmY2YjcwM2QwOGEuLmIxOTI5NGI2NzU4
YzlkMTdiNmM4NTA5YjIxYWQxNzE0YzE4OTM0ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCkBAIC0yNzYsMTUgKzI3
Niw2IEBAIGJvb2wgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OmNoZWNrRW5jbG9zdXJlKFJlbmRlckVs
ZW1lbnQqIHJlbmRlcmVyLCBjb25zdCBGbG9hdFJlCiAgICAgcmV0dXJuIHJlY3QuY29udGFpbnMo
Y3RtLm1hcFJlY3QocmVuZGVyZXItPnJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkpKTsK
IH0KIAotdm9pZCBSZW5kZXJTVkdNb2RlbE9iamVjdDo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3Jt
YXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0
aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+IG9wdGlvbnMpIGNv
bnN0Ci17Ci0gICAgVU5VU0VEX1BBUkFNKHRyYW5zZm9ybSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJv
dW5kaW5nQm94KTsKLSAgICBVTlVTRURfUEFSQU0ob3B0aW9ucyk7Ci0gICAgLy8gRklYTUU6IFtM
QlNFXSBVcHN0cmVhbSBTVkdSZW5kZXJTdXBwb3J0IGNoYW5nZXMKLSAgICAvLyBTVkdSZW5kZXJT
dXBwb3J0OjphcHBseVRyYW5zZm9ybSgqdGhpcywgdHJhbnNmb3JtLCBzdHlsZSwgYm91bmRpbmdC
b3gsIHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0LCBvcHRpb25zKTsKLX0KLQogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKExBWUVSX0JBU0VEX1NWR19FTkdJTkUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVs
T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2Jq
ZWN0LmgKaW5kZXggOTNmYzlmYWUyZGVlNjJhZGI2ZGQ1NDVjOWE5M2NiMzgyNjVmYmU0OC4uYmMx
MTI0NTA0M2M5ZDFlNTRlYjBjYzRjYzJjMTQ4YzlhOWIyMzhjMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaApAQCAtNTgsOCAr
NTgsNiBAQCBwdWJsaWM6CiAKICAgICBpbmxpbmUgU1ZHRWxlbWVudCYgZWxlbWVudCgpIGNvbnN0
OwogCi0gICAgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0
IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3Jt
T3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBj
b25zdCBvdmVycmlkZTsKLQogICAgIC8vIE1pbWljIHRoZSBSZW5kZXJCb3ggYWNjZXNzb3JzIC0g
Ynkgc2hhcmluZyB0aGUgc2FtZSB0ZXJtaW5vbG9neSB0aGUgcGFpbnRpbmcgLyBoaXQgdGVzdGlu
ZyAvIGxheW91dCBsb2dpYyBpcwogICAgIC8vIHNpbWlsYXIgdG8gcmVhZCBjb21wYXJlZCB0byBu
b24tU1ZHIHJlbmRlcmVycyBzdWNoIGFzIFJlbmRlckJveCAmIGZyaWVuZHMuCiAgICAgTGF5b3V0
UmVjdCBib3JkZXJCb3hSZWN0RXF1aXZhbGVudCgpIGNvbnN0IHsgcmV0dXJuIHsgTGF5b3V0UG9p
bnQoKSwgbV9sYXlvdXRSZWN0LnNpemUoKSB9OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAppbmRleCBkNDA5MTg2NTM2NjEyM2UxZWZmOWI3NzFk
ODg1MGY4NDdhNWE3ZmJhLi43MTZlYTgzMDY4NDU5MzNjYjhmMDQ3YWU4YThkOWQyODUwMWM4ZDc1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAK
QEAgLTYwNiwxNCArNjA2LDYgQEAgTGF5b3V0UmVjdCBSZW5kZXJTVkdSb290OjpvdmVyZmxvd0Ns
aXBSZWN0KGNvbnN0IExheW91dFBvaW50JiBsb2NhdGlvbiwgUmVuZGVyRnIKICAgICByZXR1cm4g
Y2xpcFJlY3Q7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHUm9vdDo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNm
b3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwg
T3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+IG9wdGlvbnMp
IGNvbnN0Ci17Ci0gICAgUmVuZGVyUmVwbGFjZWQ6OmFwcGx5VHJhbnNmb3JtKHRyYW5zZm9ybSwg
Ym91bmRpbmdCb3gsIG9wdGlvbnMpOwotCi0gICAgLy8gRklYTUU6IFtMQlNFXSBVcHN0cmVhbSBT
VkdSZW5kZXJTdXBwb3J0IGNoYW5nZXMKLSAgICAvLyBTVkdSZW5kZXJTdXBwb3J0OjphcHBseVRy
YW5zZm9ybSgqdGhpcywgdHJhbnNmb3JtLCBzdHlsZSwgYm91bmRpbmdCb3gsIHN0ZDo6bnVsbG9w
dCwgc3RkOjpudWxsb3B0LCBvcHRpb25zKTsKLX0KLQogdm9pZCBSZW5kZXJTVkdSb290OjphYnNv
bHV0ZVJlY3RzKFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMsIGNvbnN0IExheW91dFBvaW50JiBhY2N1
bXVsYXRlZE9mZnNldCkgY29uc3QKIHsKICAgICBhdXRvIGxvY2FsUmVjdCA9IExheW91dFJlY3Qo
dmFsdWVPckRlZmF1bHQobV9zdXBwbGVtZW50YWxMb2NhbFRvUGFyZW50VHJhbnNmb3JtLmludmVy
c2UoKSkubWFwUmVjdChib3JkZXJCb3hSZWN0KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKaW5kZXggNDNjMTJlYTgyNmUxOWM3MjZkOWRiOTQxMTYy
NDEwMTY3OGU2NTA1ZS4uN2U2ZTY1ODdiYzFjOWI1ZTc1ZDA5OTZmM2M3Y2VkNzY4OGIwMDE4MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKQEAgLTY2
LDggKzY2LDYgQEAgcHVibGljOgogCiAgICAgYm9vbCBzaG91bGRBcHBseVZpZXdwb3J0Q2xpcCgp
IGNvbnN0OwogCi0gICAgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYs
IGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJh
bnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRp
b25zKSBjb25zdCBmaW5hbDsKLQogICAgIEZsb2F0UmVjdCBvYmplY3RCb3VuZGluZ0JveCgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fb2JqZWN0Qm91bmRpbmdCb3g7IH0KICAgICBGbG9hdFJlY3Qg
c3Ryb2tlQm91bmRpbmdCb3goKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3N0cm9rZUJvdW5kaW5n
Qm94OyB9CiAgICAgRmxvYXRSZWN0IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gU1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbjo6Y29tcHV0ZVJlcGFp
bnRCb3VuZGluZ0JveCgqdGhpcyk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdTaGFwZS5jcHAKaW5kZXggMzI5M2E2YzlmYzNhYzVmMWI5OTk4NjI4YmNjZDk2
NTQyOTMyODhkOS4uMzI1NTcyNDE5MGI3MjBhZmQzNjY4NTU4NjIwMTYwZjBmMzgxMDE5ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKQEAg
LTUzNCw2ICs1MzQsMTIgQEAgdm9pZCBSZW5kZXJTVkdTaGFwZTo6c3R5bGVXaWxsQ2hhbmdlKFN0
eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSYgbmUKICAgICBSZW5kZXJTVkdN
b2RlbE9iamVjdDo6c3R5bGVXaWxsQ2hhbmdlKGRpZmYsIG5ld1N0eWxlKTsKIH0KIAordm9pZCBS
ZW5kZXJTVkdTaGFwZTo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5z
Zm9ybSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5n
Qm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0
aW9ucykgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogW0xCU0VdIFVwc3RyZWFtIENTUy9TVkcgdHJh
bnNmb3JtIHN1cHBvcnQKKyAgICBzdHlsZS5hcHBseVRyYW5zZm9ybSh0cmFuc2Zvcm0sIGJvdW5k
aW5nQm94LCBvcHRpb25zKTsKK30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKExBWUVSX0JBU0VE
X1NWR19FTkdJTkUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1NoYXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1No
YXBlLmgKaW5kZXggYTIzZDlhZDI5OGUwMjkxMTM5ODZjNTkwMWI0MzUxNWUxZDllNDJiMC4uNzQz
NjhiZGFmNjlmOWQxNjE5MjljYjIxM2YxMjU0YmFjNTU1YjliZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuaApAQCAtODIsNiArODIsOCBAQCBwdWJs
aWM6CiAKICAgICBGbG9hdFJlY3QgY29tcHV0ZU1hcmtlckJvdW5kaW5nQm94KGNvbnN0IFNWR0Jv
dW5kaW5nQm94Q29tcHV0YXRpb246OkRlY29yYXRpb25PcHRpb25zJikgY29uc3Q7CiAKKyAgICB2
b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgUmVuZGVyU3R5
bGUmLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6
OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gPSBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3Bl
cmF0aW9ucykgY29uc3Qgb3ZlcnJpZGU7CisKIHByb3RlY3RlZDoKICAgICB2b2lkIGVsZW1lbnQo
KSBjb25zdCA9IGRlbGV0ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHAKaW5kZXgg
ZmIzNWJmOTFmYTM1NjRhODdlNGU4NmQwZmRkYTMyMWYwNzUxYTdkNC4uOTAzMTIyYmU5N2M3NTFh
M2Q1MmE5NGU3N2Y4Y2E3NWY2MTQ0YzE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIu
Y3BwCkBAIC0xMDIsMTAgKzEwMiwxMCBAQCB2b2lkIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250
YWluZXI6OnVwZGF0ZUZyb21TdHlsZSgpCiAgICAgLy8gICAgc2V0SGFzU1ZHVHJhbnNmb3JtKCk7
CiB9CiAKLXZvaWQgUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcjo6YXBwbHlUcmFuc2Zv
cm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgRmxvYXRSZWN0JiBib3Vu
ZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+
IG9wdGlvbnMpIGNvbnN0Cit2b2lkIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI6OmFw
cGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IFJlbmRl
clN0eWxlJiBzdHlsZSwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJl
bmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+IG9wdGlvbnMpIGNvbnN0CiB7CiAg
ICAgLy8gRklYTUU6IFtMQlNFXSBVcHN0cmVhbSBDU1MvU1ZHIHRyYW5zZm9ybSBzdXBwb3J0Ci0g
ICAgUmVuZGVyU1ZHQ29udGFpbmVyOjphcHBseVRyYW5zZm9ybSh0cmFuc2Zvcm0sIGJvdW5kaW5n
Qm94LCBvcHRpb25zKTsKKyAgICBzdHlsZS5hcHBseVRyYW5zZm9ybSh0cmFuc2Zvcm0sIGJvdW5k
aW5nQm94LCBvcHRpb25zKTsKIH0KIAogdm9pZCBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFp
bmVyOjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0
eWxlJiBuZXdTdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmgKaW5kZXggMTNiZGEwYjBm
YjY0OWQ3ZmM2MGExNjY3NGJhYzdjMmVkMWE3N2ZhZS4uNjRmYTllMTY0YWI2MWVhNzdhYjIwNTZk
NmI4ZTA1MWRhMWZhZTc1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmgKQEAgLTQ1LDgg
KzQ1LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxheW91dENoaWxkcmVuKCkgZmluYWw7CiAgICAg
dm9pZCBjYWxjdWxhdGVWaWV3cG9ydCgpIGZpbmFsOwogICAgIEZsb2F0UG9pbnQgYWRkaXRpb25h
bENvbnRhaW5lclRyYW5zbGF0aW9uKCkgY29uc3Q7Ci0gICAgdm9pZCBhcHBseVRyYW5zZm9ybShU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlv
blNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxl
OjphbGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGFwcGx5VHJh
bnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBG
bG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9w
ZXJhdGlvbk9wdGlvbj4gPSBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucykgY29u
c3QgZmluYWw7CiAgICAgdm9pZCBzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25z
dCBSZW5kZXJTdHlsZSYgbmV3U3R5bGUpIGZpbmFsOworCiAgICAgdm9pZCB1cGRhdGVGcm9tU3R5
bGUoKSBmaW5hbDsKIAogICAgIEFmZmluZVRyYW5zZm9ybSBtX3N1cHBsZW1lbnRhbExvY2FsVG9Q
YXJlbnRUcmFuc2Zvcm07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454561</attachid>
            <date>2022-03-13 16:46:45 -0700</date>
            <delta_ts>2022-03-16 03:25:26 -0700</delta_ts>
            <desc>Patch, v5</desc>
            <filename>bug-237701-20220313164644.patch</filename>
            <type>text/plain</type>
            <size>20523</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTAyOWFmMjdhZTk3ODFk
ZWQxYjA3NzFkNWU2MmMyMjNhNWM3ZmM3Mi4uMTkyMTZjYTM3MmQ3MjQ4ZTcwMzZhNzVmOGVlYjUz
YmMxYmQ0ZTIwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIyLTAzLTEzICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIFVuaWZ5
IHJlZmVyZW5jZSBib3ggLyBDVE0gY29tcHV0YXRpb24gaW4gUmVuZGVyTGF5ZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzcwMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dHJhY3QgdGhlIGNvZGUg
aW4gUmVuZGVyTGF5ZXIgdGhhdCBjb21wdXRlcyB0aGUgcmVmZXJlbmNlIGJveCwgb2J0YWlucyB0
aGUgQ1RNLAorICAgICAgICBhcHBsaWVzIHBpeGVsIHNuYXBwaW5nLCBldGMuIGludG8gYSBzaGFy
ZWQgdXBkYXRlVHJhbnNmb3JtRnJvbVN0eWxlKCkgaGVscGVyIGZ1bmN0aW9uLgorICAgICAgICBV
c2UgdGhhdCBoZWxwZXIgdG8gZGUtZHVwbGljYXRlIGNvZGUgYmV0d2VlbiB1cGRhdGVUcmFuc2Zv
cm0oKSAvIGN1cnJlbnRUcmFuc2Zvcm0oKQorICAgICAgICAoYW5kIFJlbmRlckxheWVyQmFja2lu
Zzo6dXBkYXRlVHJhbnNmb3JtKCkgaW4gZm9sbG93LXVwIHBhdGNoZXMpLgorCisgICAgICAgIGN1
cnJlbnRUcmFuc2Zvcm0oKSBuZWVkcyB0byBjb21wdXRlIHRoZSBDVE0sIGJhc2VkIG9uIGEgbm9u
LWRlZmF1bHQgUmVuZGVyU3R5bGUgKCE9IHJlbmRlcmVyKCkuc3R5bGUoKSksCisgICAgICAgIG5h
bWVseSB0aGUgYW5pbm1hdGVkU3R5bGUoKSwgaWYgYW4gYWNjZWxlcmF0ZWQgdHJhbnNmb3JtIGFu
aW1hdGlvbiBpcyBydW5uaW5nLiBUaGVyZWZvcmUgZXh0ZW5kCisgICAgICAgIFJlbmRlckxheWVy
TW9kZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtKCkgdG8gdGFrZSBhbiBhZGRpdGlvbmFsIFJlbmRl
clN0eWxlIHBhcmFtZXRlciwKKyAgICAgICAgdGhhdCBpcyB1c2VkIHRvIGFjY2VzcyB0aGUgQ1NT
IHRyYW5zZm9ybSBvcGVyYXRpb25zLCBpbnN0ZWFkIG9mIGFsd2F5cyBxdWVyeWluZyByZW5kZXJl
cigpLnN0eWxlKCkuCisgICAgICAgIFJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0oKSBjb250
aW51ZXMgdG8gcGFzcyAncmVuZGVyZXIoKS5zdHlsZSgpJyB0byB1cGRhdGVUcmFuc2Zvcm1Gcm9t
U3R5bGUoKSwKKyAgICAgICAgd2hlcmVhcyBSZW5kZXJMYXllcjo6Y3VycmVudFRyYW5zZm9ybSgp
IHBhc3NlcyB0aGUgZWxlbWVudHMgYW5pbWF0ZWRTdHlsZSgpLgorCisgICAgICAgIENvdmVyZWQg
YnkgZXhpc3RpbmcgdGVzdHMsIG5vIGNoYW5nZSBpbiBiZWhhdmlvdXIuCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6YXBw
bHlUcmFuc2Zvcm0gY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtIGNvbnN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0
ZVRyYW5zZm9ybUZyb21TdHlsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6dXBkYXRlVHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjdXJy
ZW50VHJhbnNmb3JtIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlVHJhbnNmb3JtKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
TW9kZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6
OmFwcGx5VHJhbnNmb3JtIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jvb3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1NoYXBlOjphcHBseVRyYW5zZm9ybSBj
b25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjphcHBseVRy
YW5zZm9ybSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyLmg6CisKIDIwMjItMDMtMTAgIE5pa29sYXMgWmltbWVybWFubiAgPG56
aW1tZXJtYW5uQGlnYWxpYS5jb20+CiAKICAgICAgICAgRXh0cmFjdCB0cmFuc2Zvcm0tb3JpZ2lu
IGhhbmRsaW5nIG91dCBvZiBSZW5kZXJTdHlsZTo6YXBwbHlUcmFuc2Zvcm0oKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCAzZWVhMjBmNmE4ZTcwZGI4YjlkMjlkOWI3
NzkzNDY2NzUxMDc3NTVmLi40ZDRhYTI3YzhiNTQzZjg5ZmVhMTFiNzQxZmJhNDcwMzRiZWMxMTE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtNjY5LDkgKzY2OSw5
IEBAIHZvaWQgUmVuZGVyQm94Ojp1cGRhdGVMYXllclRyYW5zZm9ybSgpCiAgICAgICAgIGxheWVy
KCktPnVwZGF0ZVRyYW5zZm9ybSgpOwogfQogCi12b2lkIFJlbmRlckJveDo6YXBwbHlUcmFuc2Zv
cm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHQsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gs
IE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiBvcHRpb25z
KSBjb25zdAordm9pZCBSZW5kZXJCb3g6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0
cml4JiB0LCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRp
bmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiBv
cHRpb25zKSBjb25zdAogewotICAgIHN0eWxlKCkuYXBwbHlUcmFuc2Zvcm0odCwgYm91bmRpbmdC
b3gsIG9wdGlvbnMpOworICAgIHN0eWxlLmFwcGx5VHJhbnNmb3JtKHQsIGJvdW5kaW5nQm94LCBv
cHRpb25zKTsKIH0KIAogTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNvbnN0cmFpbkxvZ2ljYWxXaWR0
aEluRnJhZ21lbnRCeU1pbk1heChMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCBh
dmFpbGFibGVXaWR0aCwgUmVuZGVyQmxvY2smIGNiLCBSZW5kZXJGcmFnbWVudENvbnRhaW5lciog
ZnJhZ21lbnQsIEFsbG93SW50cmluc2ljIGFsbG93SW50cmluc2ljKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IGQzNTBhNDYwZGM0NTM1YmQzZmU5NTc2ZGFjMGRj
MjcyZTdjZjQxMDUuLjI4ZTBhZDFiMjBmNTRiYjEyOTExNTk0YzY4ZjhlZmE4ZjljZmNmNTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTIxOSw3ICsyMTksNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBhZGRPdmVyZmxvd0Zyb21DaGlsZChjb25zdCBSZW5kZXJCb3gqIGNoaWxk
LCBjb25zdCBMYXlvdXRTaXplJiBkZWx0YSk7CiAKICAgICB2b2lkIHVwZGF0ZUxheWVyVHJhbnNm
b3JtKCk7Ci0gICAgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNv
bnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNm
b3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRpb25z
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9u
TWF0cml4JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94
LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gPSBSZW5k
ZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucykgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBM
YXlvdXRTaXplIGNvbnRlbnRTaXplKCkgY29uc3QgeyByZXR1cm4geyBjb250ZW50V2lkdGgoKSwg
Y29udGVudEhlaWdodCgpIH07IH0KICAgICBMYXlvdXRVbml0IGNvbnRlbnRXaWR0aCgpIGNvbnN0
IHsgcmV0dXJuIHN0ZDo6bWF4KDBfbHUsIHBhZGRpbmdCb3hXaWR0aCgpIC0gcGFkZGluZ0xlZnQo
KSAtIHBhZGRpbmdSaWdodCgpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXggMjRjODJjOWQ2YmQ0M2Y3NGJhMDVhYjVhYzc2
NzkzZDc1ZDE1ZTU3Ny4uNDViZGNiYmI2MjllYWJhNzVjNGRhZWJmYWQxNTE0MDViODQzMzVkMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
Y3BwCkBAIC0yNzA2LDcgKzI3MDYsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb2xs
ZWN0QWJzb2x1dGVRdWFkc0ZvckNvbnRpbnVhdGlvbihWZWN0b3I8RmxvYXRRdWFkPgogICAgIH0K
IH0KIAotdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3Jt
YXRpb25NYXRyaXgmLCBjb25zdCBGbG9hdFJlY3QmLCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRy
YW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4pIGNvbnN0Cit2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0
OjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IFJlbmRlclN0eWxl
JiwgY29uc3QgRmxvYXRSZWN0JiwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVy
YXRpb25PcHRpb24+KSBjb25zdAogewogICAgIC8vIGFwcGx5VHJhbnNmb3JtKCkgaXMgb25seSB1
c2VkIHRocm91Z2ggUmVuZGVyTGF5ZXIqLCB3aGljaCBvbmx5IGludm9rZXMgdGhpcyBmb3IgUmVu
ZGVyQm94IGRlcml2ZWQgcmVuZGVyZXJzLCB0aHVzIG5vdCBmb3IKICAgICAvLyBSZW5kZXJJbmxp
bmUvUmVuZGVyTGluZUJyZWFrIC0gdGhlIG90aGVyIHR3byByZW5kZXJlcnMgdGhhdCBpbmhlcml0
IGZyb20gUmVuZGVyQm94TW9kZWxPYmplY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCmluZGV4IDk3Yjk2NWEzMGZkZDc2NjMxOGJiM2Q4YTVj
MDljMzRjNWE4M2JlZGYuLjBjNWNhNjZjYWRhZDlkZTQ3MGJkY2FmMDNjNmIxZmFlMzcwZWViMDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5o
CkBAIC0yNTQsNyArMjU0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBoYXNPdmVycmlk
aW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudFdpZHRoKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaGFzT3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRIZWln
aHQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdm9pZCBhcHBseVRyYW5zZm9ybShU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlv
blNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxl
OjphbGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGFwcGx5
VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25z
dCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9y
bU9wZXJhdGlvbk9wdGlvbj4gPSBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucykg
Y29uc3Qgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKICAgICBSZW5kZXJCb3hNb2RlbE9iamVjdChF
bGVtZW50JiwgUmVuZGVyU3R5bGUmJiwgQmFzZVR5cGVGbGFncyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCAzMDc4NDAyYmIzODk5MzllZjVjNTI4Nzc1Yjlm
NzVmMWNlMTA3MGI1Li4xZWU2ZTRlM2QwOTViNGU3NDNhMzY2YjMxOGQ4NjY4YzNhZDM1OTM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTEzMTAsNiArMTMx
MCwxMyBAQCBzdGF0aWMgaW5saW5lIEZsb2F0T3JMYXlvdXRSZWN0IGNvbXB1dGVSZWZlcmVuY2VC
b3goY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdAogICAgIHJldHVybiByZWZlcmVuY2VCb3g7
CiB9CiAKK3ZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZVRyYW5zZm9ybUZyb21TdHlsZShUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIE9wdGlv
blNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiBvcHRpb25zKSBjb25z
dAoreworICAgIGF1dG8gcmVmZXJlbmNlQm94UmVjdEZvclBhaW50aW5nID0gcmVuZGVyZXIoKS50
cmFuc2Zvcm1SZWZlcmVuY2VCb3hSZWN0KCkucmVjdEZvclBhaW50aW5nKHJlbmRlcmVyKCkuZG9j
dW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKKyAgICByZW5kZXJlcigpLmFwcGx5VHJhbnNm
b3JtKHRyYW5zZm9ybSwgc3R5bGUsIHJlZmVyZW5jZUJveFJlY3RGb3JQYWludGluZywgb3B0aW9u
cyk7CisgICAgbWFrZU1hdHJpeFJlbmRlcmFibGUodHJhbnNmb3JtLCBjYW5SZW5kZXIzRFRyYW5z
Zm9ybXMoKSk7Cit9CisKIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZVRyYW5zZm9ybSgpCiB7CiAg
ICAgYm9vbCBoYXNUcmFuc2Zvcm0gPSByZW5kZXJlcigpLmhhc1RyYW5zZm9ybSgpOwpAQCAtMTMy
OCwxMCArMTMzNSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZVRyYW5zZm9ybSgpCiAgICAg
CiAgICAgaWYgKGhhc1RyYW5zZm9ybSkgewogICAgICAgICBtX3RyYW5zZm9ybS0+bWFrZUlkZW50
aXR5KCk7Ci0KLSAgICAgICAgYXV0byByZWZlcmVuY2VCb3hSZWN0Rm9yUGFpbnRpbmcgPSByZW5k
ZXJlcigpLnRyYW5zZm9ybVJlZmVyZW5jZUJveFJlY3QoKS5yZWN0Rm9yUGFpbnRpbmcocmVuZGVy
ZXIoKS5kb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCkpOwotICAgICAgICByZW5kZXJlcigp
LmFwcGx5VHJhbnNmb3JtKCptX3RyYW5zZm9ybSwgcmVmZXJlbmNlQm94UmVjdEZvclBhaW50aW5n
KTsKLSAgICAgICAgbWFrZU1hdHJpeFJlbmRlcmFibGUoKm1fdHJhbnNmb3JtLCBjYW5SZW5kZXIz
RFRyYW5zZm9ybXMoKSk7CisgICAgICAgIHVwZGF0ZVRyYW5zZm9ybUZyb21TdHlsZSgqbV90cmFu
c2Zvcm0sIHJlbmRlcmVyKCkuc3R5bGUoKSwgUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9wZXJh
dGlvbnMpOwogICAgIH0KIAogICAgIGlmIChoYWQzRFRyYW5zZm9ybSAhPSBoYXMzRFRyYW5zZm9y
bSgpKSB7CkBAIC0xMzU5LDEyICsxMzYzLDggQEAgVHJhbnNmb3JtYXRpb25NYXRyaXggUmVuZGVy
TGF5ZXI6OmN1cnJlbnRUcmFuc2Zvcm0oT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2YKICAg
ICBhdXRvIHN0eWxlYWJsZSA9IFN0eWxlYWJsZTo6ZnJvbVJlbmRlcmVyKHJlbmRlckJveCk7CiAg
ICAgaWYgKChzdHlsZWFibGUgJiYgc3R5bGVhYmxlLT5pc1J1bm5pbmdBY2NlbGVyYXRlZFRyYW5z
Zm9ybUFuaW1hdGlvbigpKSB8fCAhb3B0aW9ucy5jb250YWlucyhSZW5kZXJTdHlsZTo6VHJhbnNm
b3JtT3BlcmF0aW9uT3B0aW9uOjpUcmFuc2Zvcm1PcmlnaW4pKSB7CiAgICAgICAgIHN0ZDo6dW5p
cXVlX3B0cjxSZW5kZXJTdHlsZT4gYW5pbWF0ZWRTdHlsZSA9IHJlbmRlckJveC5hbmltYXRlZFN0
eWxlKCk7Ci0gICAgICAgIGF1dG8gcmVmZXJlbmNlQm94UmVjdEZvclBhaW50aW5nID0gcmVuZGVy
Qm94LnRyYW5zZm9ybVJlZmVyZW5jZUJveFJlY3QoKS5yZWN0Rm9yUGFpbnRpbmcocmVuZGVyQm94
LmRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKSk7Ci0KICAgICAgICAgVHJhbnNmb3JtYXRp
b25NYXRyaXggdHJhbnNmb3JtOwotICAgICAgICBhbmltYXRlZFN0eWxlLT5hcHBseVRyYW5zZm9y
bSh0cmFuc2Zvcm0sIHJlZmVyZW5jZUJveFJlY3RGb3JQYWludGluZywgb3B0aW9ucyk7Ci0KLSAg
ICAgICAgbWFrZU1hdHJpeFJlbmRlcmFibGUodHJhbnNmb3JtLCBjYW5SZW5kZXIzRFRyYW5zZm9y
bXMoKSk7CisgICAgICAgIHVwZGF0ZVRyYW5zZm9ybUZyb21TdHlsZSh0cmFuc2Zvcm0sICphbmlt
YXRlZFN0eWxlLCBvcHRpb25zKTsKICAgICAgICAgcmV0dXJuIHRyYW5zZm9ybTsKICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggYzE4Nzg4M2Y1M2MwZDUx
ODQwOWViYWI0ZTg5YjFjNWZiOWVkM2MxYi4uODAyZWMzMTQyZTE5NmJlZDViNTFiNzc4OTczYzhk
ZmZlNmY5Y2M1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTcy
Nyw5ICs3MjcsMTEgQEAgcHVibGljOgogICAgIGJvb2wgaGFzVHJhbnNmb3JtKCkgY29uc3QgeyBy
ZXR1cm4gcmVuZGVyZXIoKS5oYXNUcmFuc2Zvcm0oKTsgfQogICAgIC8vIE5vdGUgdGhhdCB0aGlz
IHRyYW5zZm9ybSBoYXMgdGhlIHRyYW5zZm9ybS1vcmlnaW4gYmFrZWQgaW4uCiAgICAgVHJhbnNm
b3JtYXRpb25NYXRyaXgqIHRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNmb3JtLmdl
dCgpOyB9CisgICAgLy8gdXBkYXRlVHJhbnNmb3JtRnJvbVN0eWxlIGNvbXB1dGVzIGEgdHJhbnNm
b3JtIGFjY29yZGluZyB0byB0aGUgcGFzc2VkIG9wdGlvbnMgKGUuZy4gdHJhbnNmb3JtLW9yaWdp
biBiYWtlZCBpbiBvciBleGNsdWRlZCkgYW5kIHRoZSBnaXZlbiBzdHlsZS4KKyAgICB2b2lkIHVw
ZGF0ZVRyYW5zZm9ybUZyb21TdHlsZShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IFJlbmRl
clN0eWxlJiwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+
KSBjb25zdDsKICAgICAvLyBjdXJyZW50VHJhbnNmb3JtIGNvbXB1dGVzIGEgdHJhbnNmb3JtIHdo
aWNoIHRha2VzIGFjY2VsZXJhdGVkIGFuaW1hdGlvbnMgaW50byBhY2NvdW50LiBUaGUKLSAgICAv
LyByZXN1bHRpbmcgdHJhbnNmb3JtIGhhcyB0cmFuc2Zvcm0tb3JpZ2luIGJha2VkIGluLiBJZiB0
aGUgbGF5ZXIgZG9lcyBub3QgaGF2ZSBhIHRyYW5zZm9ybSwKLSAgICAvLyByZXR1cm5zIHRoZSBp
ZGVudGl0eSBtYXRyaXguCisgICAgLy8gcmVzdWx0aW5nIHRyYW5zZm9ybSBoYXMgdHJhbnNmb3Jt
LW9yaWdpbiBiYWtlZCBpbiwgdW5sZXNzIG5vbi1kZWZhdWx0IG9wdGlvbnMgYXJlIGdpdmVuLiBJ
ZgorICAgIC8vIHRoZSBsYXllciBkb2VzIG5vdCBoYXZlIGEgdHJhbnNmb3JtLCB0aGUgaWRlbnRp
dHkgbWF0cml4IGlzIHJldHVybmVkLgogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGN1cnJlbnRU
cmFuc2Zvcm0oT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+
ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9wZXJhdGlvbnMpIGNvbnN0OwogICAgIFRyYW5z
Zm9ybWF0aW9uTWF0cml4IHJlbmRlcmFibGVUcmFuc2Zvcm0oT3B0aW9uU2V0PFBhaW50QmVoYXZp
b3I+KSBjb25zdDsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHAKaW5kZXggYTg1MGUxMzc0YTEyNTgyMjBjZWZjOGZkN2EyYjczZjc2N2E3
NDNhYy4uZjAxODExNTNjMzg4MWFjZDBkYTU5OTlkMjVlMjVhOTBlNDI3M2FkYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTY0Myw3
ICs2NDMsOCBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlVHJhbnNmb3JtKGNvbnN0
IFJlbmRlclN0eWxlJikKICAgICAvLyBiYWtlZCBpbnRvIGl0LCBhbmQgd2UgZG9uJ3Qgd2FudCB0
aGF0LgogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHQ7CiAgICAgaWYgKG1fb3duaW5nTGF5ZXIu
aGFzVHJhbnNmb3JtKCkpIHsKLSAgICAgICAgcmVuZGVyZXIoKS5hcHBseVRyYW5zZm9ybSh0LCBz
bmFwUmVjdFRvRGV2aWNlUGl4ZWxzKG1fb3duaW5nTGF5ZXIucmVuZGVyZXJCb3JkZXJCb3hSZWN0
KCksIGRldmljZVNjYWxlRmFjdG9yKCkpLCBSZW5kZXJTdHlsZTo6aW5kaXZpZHVhbFRyYW5zZm9y
bU9wZXJhdGlvbnMpOworICAgICAgICAvLyBGSVhNRTogVGhpcyB1c2VzIHRoZSB3cm9uZywgdHJh
bnNmb3JtLWJveCB1bmF3YXJlLCBnZW9tZXRyeS4KKyAgICAgICAgcmVuZGVyZXIoKS5hcHBseVRy
YW5zZm9ybSh0LCByZW5kZXJlcigpLnN0eWxlKCksIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMobV9v
d25pbmdMYXllci5yZW5kZXJlckJvcmRlckJveFJlY3QoKSwgZGV2aWNlU2NhbGVGYWN0b3IoKSks
IFJlbmRlclN0eWxlOjppbmRpdmlkdWFsVHJhbnNmb3JtT3BlcmF0aW9ucyk7CiAgICAgICAgIG1h
a2VNYXRyaXhSZW5kZXJhYmxlKHQsIGNvbXBvc2l0b3IoKS5jYW5SZW5kZXIzRFRyYW5zZm9ybXMo
KSk7CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyTW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllck1vZGVsT2JqZWN0LmgKaW5kZXggYzM1NGYzNzdmMjhlMWMyMjI2YTlhMWUyYzU0NmMzNjE4
MjYxNzNiZi4uZDQ0ZmY2YWQ1MmQzYTU5ZjUxZDFjMGZlYWY2Y2U3OTVhNWUwZWRlMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oCkBA
IC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1hcExvY2FsVG9TVkdDb250YWluZXIo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JDb250YWluZXIsIFRyYW5zZm9y
bVN0YXRlJiwgT3B0aW9uU2V0PE1hcENvb3JkaW5hdGVzTW9kZT4sIGJvb2wqIHdhc0ZpeGVkKSBj
b25zdDsKICNlbmRpZgogCi0gICAgdmlydHVhbCB2b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9y
bWF0aW9uTWF0cml4JiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJl
bmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+ID0gUmVuZGVyU3R5bGU6OmFsbFRy
YW5zZm9ybU9wZXJhdGlvbnMpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlUcmFu
c2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZs
b2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3Bl
cmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBjb25z
dCA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0KEVsZW1lbnQm
LCBSZW5kZXJTdHlsZSYmLCBCYXNlVHlwZUZsYWdzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAKaW5kZXggZWNjM2YwZGRh
NmY0NGE1MWM1NmQyNmE3YTI3OTZmZjZiNzAzZDA4YS4uYjE5Mjk0YjY3NThjOWQxN2I2Yzg1MDli
MjFhZDE3MTRjMTg5MzRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAKQEAgLTI3NiwxNSArMjc2LDYgQEAgYm9vbCBS
ZW5kZXJTVkdNb2RlbE9iamVjdDo6Y2hlY2tFbmNsb3N1cmUoUmVuZGVyRWxlbWVudCogcmVuZGVy
ZXIsIGNvbnN0IEZsb2F0UmUKICAgICByZXR1cm4gcmVjdC5jb250YWlucyhjdG0ubWFwUmVjdChy
ZW5kZXJlci0+cmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKSkpOwogfQogCi12b2lkIFJl
bmRlclNWR01vZGVsT2JqZWN0OjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
dHJhbnNmb3JtLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVy
U3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKLXsKLSAgICBV
TlVTRURfUEFSQU0odHJhbnNmb3JtKTsKLSAgICBVTlVTRURfUEFSQU0oYm91bmRpbmdCb3gpOwot
ICAgIFVOVVNFRF9QQVJBTShvcHRpb25zKTsKLSAgICAvLyBGSVhNRTogW0xCU0VdIFVwc3RyZWFt
IFNWR1JlbmRlclN1cHBvcnQgY2hhbmdlcwotICAgIC8vIFNWR1JlbmRlclN1cHBvcnQ6OmFwcGx5
VHJhbnNmb3JtKCp0aGlzLCB0cmFuc2Zvcm0sIHN0eWxlLCBib3VuZGluZ0JveCwgc3RkOjpudWxs
b3B0LCBzdGQ6Om51bGxvcHQsIG9wdGlvbnMpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoTEFZRVJfQkFTRURfU1ZHX0VOR0lORSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaAppbmRleCA5
M2ZjOWZhZTJkZWU2MmFkYjZkZDU0NWM5YTkzY2IzODI2NWZiZTQ4Li5iYzExMjQ1MDQzYzlkMWU1
NGViMGNjNGNjMmMxNDhjOWE5YjIzOGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCkBAIC01OCw4ICs1OCw2IEBAIHB1Ymxp
YzoKIAogICAgIGlubGluZSBTVkdFbGVtZW50JiBlbGVtZW50KCkgY29uc3Q7CiAKLSAgICB2b2lk
IGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgRmxvYXRSZWN0JiBi
b3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRp
b24+ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9wZXJhdGlvbnMpIGNvbnN0IG92ZXJyaWRl
OwotCiAgICAgLy8gTWltaWMgdGhlIFJlbmRlckJveCBhY2Nlc3NvcnMgLSBieSBzaGFyaW5nIHRo
ZSBzYW1lIHRlcm1pbm9sb2d5IHRoZSBwYWludGluZyAvIGhpdCB0ZXN0aW5nIC8gbGF5b3V0IGxv
Z2ljIGlzCiAgICAgLy8gc2ltaWxhciB0byByZWFkIGNvbXBhcmVkIHRvIG5vbi1TVkcgcmVuZGVy
ZXJzIHN1Y2ggYXMgUmVuZGVyQm94ICYgZnJpZW5kcy4KICAgICBMYXlvdXRSZWN0IGJvcmRlckJv
eFJlY3RFcXVpdmFsZW50KCkgY29uc3QgeyByZXR1cm4geyBMYXlvdXRQb2ludCgpLCBtX2xheW91
dFJlY3Quc2l6ZSgpIH07IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUm9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jvb3QuY3BwCmluZGV4IGQ0MDkxODY1MzY2MTIzZTFlZmY5Yjc3MWQ4ODUwZjg0N2E1YTdm
YmEuLjcxNmVhODMwNjg0NTkzM2NiOGYwNDdhZThhOGQ5ZDI4NTAxYzhkNzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcApAQCAtNjA2LDE0ICs2
MDYsNiBAQCBMYXlvdXRSZWN0IFJlbmRlclNWR1Jvb3Q6Om92ZXJmbG93Q2xpcFJlY3QoY29uc3Qg
TGF5b3V0UG9pbnQmIGxvY2F0aW9uLCBSZW5kZXJGcgogICAgIHJldHVybiBjbGlwUmVjdDsKIH0K
IAotdm9pZCBSZW5kZXJTVkdSb290OjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVu
ZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKLXsKLSAg
ICBSZW5kZXJSZXBsYWNlZDo6YXBwbHlUcmFuc2Zvcm0odHJhbnNmb3JtLCBib3VuZGluZ0JveCwg
b3B0aW9ucyk7Ci0KLSAgICAvLyBGSVhNRTogW0xCU0VdIFVwc3RyZWFtIFNWR1JlbmRlclN1cHBv
cnQgY2hhbmdlcwotICAgIC8vIFNWR1JlbmRlclN1cHBvcnQ6OmFwcGx5VHJhbnNmb3JtKCp0aGlz
LCB0cmFuc2Zvcm0sIHN0eWxlLCBib3VuZGluZ0JveCwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxv
cHQsIG9wdGlvbnMpOwotfQotCiB2b2lkIFJlbmRlclNWR1Jvb3Q6OmFic29sdXRlUmVjdHMoVmVj
dG9yPEludFJlY3Q+JiByZWN0cywgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0
KSBjb25zdAogewogICAgIGF1dG8gbG9jYWxSZWN0ID0gTGF5b3V0UmVjdCh2YWx1ZU9yRGVmYXVs
dChtX3N1cHBsZW1lbnRhbExvY2FsVG9QYXJlbnRUcmFuc2Zvcm0uaW52ZXJzZSgpKS5tYXBSZWN0
KGJvcmRlckJveFJlY3QoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jvb3QuaAppbmRleCA0M2MxMmVhODI2ZTE5YzcyNmQ5ZGI5NDExNjI0MTAxNjc4ZTY1MDVl
Li43ZTZlNjU4N2JjMWM5YjVlNzVkMDk5NmYzYzdjZWQ3Njg4YjAwMTgyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaApAQCAtNjYsOCArNjYsNiBAQCBw
dWJsaWM6CiAKICAgICBib29sIHNob3VsZEFwcGx5Vmlld3BvcnRDbGlwKCkgY29uc3Q7CiAKLSAg
ICB2b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgRmxvYXRS
ZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRp
b25PcHRpb24+ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9wZXJhdGlvbnMpIGNvbnN0IGZp
bmFsOwotCiAgICAgRmxvYXRSZWN0IG9iamVjdEJvdW5kaW5nQm94KCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9vYmplY3RCb3VuZGluZ0JveDsgfQogICAgIEZsb2F0UmVjdCBzdHJva2VCb3VuZGlu
Z0JveCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc3Ryb2tlQm91bmRpbmdCb3g7IH0KICAgICBG
bG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBTVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uOjpjb21wdXRlUmVwYWludEJvdW5kaW5nQm94
KCp0aGlzKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdTaGFwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1No
YXBlLmNwcAppbmRleCAzMjkzYTZjOWZjM2FjNWYxYjk5OTg2MjhiY2NkOTY1NDI5MzI4OGQ5Li4z
MjU1NzI0MTkwYjcyMGFmZDM2Njg1NTg2MjAxNjBmMGYzODEwMTllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcApAQCAtNTM0LDYgKzUzNCwx
MiBAQCB2b2lkIFJlbmRlclNWR1NoYXBlOjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNl
IGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlJiBuZQogICAgIFJlbmRlclNWR01vZGVsT2JqZWN0Ojpz
dHlsZVdpbGxDaGFuZ2UoZGlmZiwgbmV3U3R5bGUpOwogfQogCit2b2lkIFJlbmRlclNWR1NoYXBl
OjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBS
ZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNl
dDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiBvcHRpb25zKSBjb25zdAor
eworICAgIC8vIEZJWE1FOiBbTEJTRV0gVXBzdHJlYW0gQ1NTL1NWRyB0cmFuc2Zvcm0gc3VwcG9y
dAorICAgIHN0eWxlLmFwcGx5VHJhbnNmb3JtKHRyYW5zZm9ybSwgYm91bmRpbmdCb3gsIG9wdGlv
bnMpOworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTEFZRVJfQkFTRURfU1ZHX0VOR0lORSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuaAppbmRleCBh
MjNkOWFkMjk4ZTAyOTExMzk4NmM1OTAxYjQzNTE1ZTFkOWU0MmIwLi43NDM2OGJkYWY2OWY5ZDE2
MTkyOWNiMjEzZjEyNTRiYWM1NTViOWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdTaGFwZS5oCkBAIC04Miw2ICs4Miw4IEBAIHB1YmxpYzoKIAogICAgIEZs
b2F0UmVjdCBjb21wdXRlTWFya2VyQm91bmRpbmdCb3goY29uc3QgU1ZHQm91bmRpbmdCb3hDb21w
dXRhdGlvbjo6RGVjb3JhdGlvbk9wdGlvbnMmKSBjb25zdDsKIAorICAgIHZvaWQgYXBwbHlUcmFu
c2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZs
b2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3Bl
cmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBjb25z
dCBvdmVycmlkZTsKKwogcHJvdGVjdGVkOgogICAgIHZvaWQgZWxlbWVudCgpIGNvbnN0ID0gZGVs
ZXRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNwcAppbmRleCBmYjM1YmY5MWZhMzU2
NGE4N2U0ZTg2ZDBmZGRhMzIxZjA3NTFhN2Q0Li45MDMxMjJiZTk3Yzc1MWEzZDUyYTk0ZTc3Zjhj
YTc1ZjYxNDRjMTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHAKQEAgLTEwMiwx
MCArMTAyLDEwIEBAIHZvaWQgUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcjo6dXBkYXRl
RnJvbVN0eWxlKCkKICAgICAvLyAgICBzZXRIYXNTVkdUcmFuc2Zvcm0oKTsKIH0KIAotdm9pZCBS
ZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRp
b25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29u
c3QKK3ZvaWQgUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcjo6YXBwbHlUcmFuc2Zvcm0o
VHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxl
LCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRy
YW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKIHsKICAgICAvLyBGSVhNRTog
W0xCU0VdIFVwc3RyZWFtIENTUy9TVkcgdHJhbnNmb3JtIHN1cHBvcnQKLSAgICBSZW5kZXJTVkdD
b250YWluZXI6OmFwcGx5VHJhbnNmb3JtKHRyYW5zZm9ybSwgYm91bmRpbmdCb3gsIG9wdGlvbnMp
OworICAgIHN0eWxlLmFwcGx5VHJhbnNmb3JtKHRyYW5zZm9ybSwgYm91bmRpbmdCb3gsIG9wdGlv
bnMpOwogfQogCiB2b2lkIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI6OnN0eWxlV2ls
bENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0eWxl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFu
c2Zvcm1hYmxlQ29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuaAppbmRleCAxM2JkYTBiMGZiNjQ5ZDdmYzYwYTE2
Njc0YmFjN2MyZWQxYTc3ZmFlLi42NGZhOWUxNjRhYjYxZWE3N2FiMjA1NmQ2YjhlMDUxZGExZmFl
NzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Ry
YW5zZm9ybWFibGVDb250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuaApAQCAtNDUsOCArNDUsOSBAQCBwcml2
YXRlOgogICAgIHZvaWQgbGF5b3V0Q2hpbGRyZW4oKSBmaW5hbDsKICAgICB2b2lkIGNhbGN1bGF0
ZVZpZXdwb3J0KCkgZmluYWw7CiAgICAgRmxvYXRQb2ludCBhZGRpdGlvbmFsQ29udGFpbmVyVHJh
bnNsYXRpb24oKSBjb25zdDsKLSAgICB2b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9u
TWF0cml4JiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0
eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9y
bU9wZXJhdGlvbnMpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNm
b3JtYXRpb25NYXRyaXgmLCBjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZsb2F0UmVjdCYgYm91
bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9u
PiA9IFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBjb25zdCBmaW5hbDsKICAg
ICB2b2lkIHN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxl
JiBuZXdTdHlsZSkgZmluYWw7CisKICAgICB2b2lkIHVwZGF0ZUZyb21TdHlsZSgpIGZpbmFsOwog
CiAgICAgQWZmaW5lVHJhbnNmb3JtIG1fc3VwcGxlbWVudGFsTG9jYWxUb1BhcmVudFRyYW5zZm9y
bTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454816</attachid>
            <date>2022-03-16 03:25:30 -0700</date>
            <delta_ts>2022-03-21 02:50:34 -0700</delta_ts>
            <desc>Patch, v6</desc>
            <filename>bug-237701-20220316032529.patch</filename>
            <type>text/plain</type>
            <size>20515</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMzM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTUyYzQzYjMyMjY0MWZm
ZTA0OWZjMTViN2ZjZTNhMjFhYjI5MDczYy4uZTZiMWFkZDEzNDdhZDliODNiZWJjMmRmMjNmYmEx
NDQwZTI0OGIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIyLTAzLTEzICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIFVuaWZ5
IHJlZmVyZW5jZSBib3ggLyBDVE0gY29tcHV0YXRpb24gaW4gUmVuZGVyTGF5ZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzcwMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dHJhY3QgdGhlIGNvZGUg
aW4gUmVuZGVyTGF5ZXIgdGhhdCBjb21wdXRlcyB0aGUgcmVmZXJlbmNlIGJveCwgb2J0YWlucyB0
aGUgQ1RNLAorICAgICAgICBhcHBsaWVzIHBpeGVsIHNuYXBwaW5nLCBldGMuIGludG8gYSBzaGFy
ZWQgdXBkYXRlVHJhbnNmb3JtRnJvbVN0eWxlKCkgaGVscGVyIGZ1bmN0aW9uLgorICAgICAgICBV
c2UgdGhhdCBoZWxwZXIgdG8gZGUtZHVwbGljYXRlIGNvZGUgYmV0d2VlbiB1cGRhdGVUcmFuc2Zv
cm0oKSAvIGN1cnJlbnRUcmFuc2Zvcm0oKQorICAgICAgICAoYW5kIFJlbmRlckxheWVyQmFja2lu
Zzo6dXBkYXRlVHJhbnNmb3JtKCkgaW4gZm9sbG93LXVwIHBhdGNoZXMpLgorCisgICAgICAgIGN1
cnJlbnRUcmFuc2Zvcm0oKSBuZWVkcyB0byBjb21wdXRlIHRoZSBDVE0sIGJhc2VkIG9uIGEgbm9u
LWRlZmF1bHQgUmVuZGVyU3R5bGUgKCE9IHJlbmRlcmVyKCkuc3R5bGUoKSksCisgICAgICAgIG5h
bWVseSB0aGUgYW5pbm1hdGVkU3R5bGUoKSwgaWYgYW4gYWNjZWxlcmF0ZWQgdHJhbnNmb3JtIGFu
aW1hdGlvbiBpcyBydW5uaW5nLiBUaGVyZWZvcmUgZXh0ZW5kCisgICAgICAgIFJlbmRlckxheWVy
TW9kZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtKCkgdG8gdGFrZSBhbiBhZGRpdGlvbmFsIFJlbmRl
clN0eWxlIHBhcmFtZXRlciwKKyAgICAgICAgdGhhdCBpcyB1c2VkIHRvIGFjY2VzcyB0aGUgQ1NT
IHRyYW5zZm9ybSBvcGVyYXRpb25zLCBpbnN0ZWFkIG9mIGFsd2F5cyBxdWVyeWluZyByZW5kZXJl
cigpLnN0eWxlKCkuCisgICAgICAgIFJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0oKSBjb250
aW51ZXMgdG8gcGFzcyAncmVuZGVyZXIoKS5zdHlsZSgpJyB0byB1cGRhdGVUcmFuc2Zvcm1Gcm9t
U3R5bGUoKSwKKyAgICAgICAgd2hlcmVhcyBSZW5kZXJMYXllcjo6Y3VycmVudFRyYW5zZm9ybSgp
IHBhc3NlcyB0aGUgZWxlbWVudHMgYW5pbWF0ZWRTdHlsZSgpLgorCisgICAgICAgIENvdmVyZWQg
YnkgZXhpc3RpbmcgdGVzdHMsIG5vIGNoYW5nZSBpbiBiZWhhdmlvdXIuCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6YXBw
bHlUcmFuc2Zvcm0gY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtIGNvbnN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0
ZVRyYW5zZm9ybUZyb21TdHlsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6dXBkYXRlVHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjdXJy
ZW50VHJhbnNmb3JtIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlVHJhbnNmb3JtKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
TW9kZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6
OmFwcGx5VHJhbnNmb3JtIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jvb3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1NoYXBlOjphcHBseVRyYW5zZm9ybSBj
b25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjphcHBseVRy
YW5zZm9ybSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyLmg6CisKIDIwMjItMDMtMTQgIE5pa29sYXMgWmltbWVybWFubiAgPG56
aW1tZXJtYW5uQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5pZnkgJ3RyYW5zZm9ybS1ib3gnIHJl
ZmVyZW5jZSBib3ggY29tcHV0YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5j
cHAKaW5kZXggM2VlYTIwZjZhOGU3MGRiOGI5ZDI5ZDliNzc5MzQ2Njc1MTA3NzU1Zi4uNGQ0YWEy
N2M4YjU0M2Y4OWZlYTExYjc0MWZiYTQ3MDM0YmVjMTExOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAKQEAgLTY2OSw5ICs2NjksOSBAQCB2b2lkIFJlbmRlckJveDo6dXBk
YXRlTGF5ZXJUcmFuc2Zvcm0oKQogICAgICAgICBsYXllcigpLT51cGRhdGVUcmFuc2Zvcm0oKTsK
IH0KIAotdm9pZCBSZW5kZXJCb3g6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4
JiB0LCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6
OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKK3ZvaWQgUmVuZGVyQm94
OjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdCwgY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVy
U3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKIHsKLSAgICBz
dHlsZSgpLmFwcGx5VHJhbnNmb3JtKHQsIGJvdW5kaW5nQm94LCBvcHRpb25zKTsKKyAgICBzdHls
ZS5hcHBseVRyYW5zZm9ybSh0LCBib3VuZGluZ0JveCwgb3B0aW9ucyk7CiB9CiAKIExheW91dFVu
aXQgUmVuZGVyQm94Ojpjb25zdHJhaW5Mb2dpY2FsV2lkdGhJbkZyYWdtZW50QnlNaW5NYXgoTGF5
b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgsIFJlbmRlckJs
b2NrJiBjYiwgUmVuZGVyRnJhZ21lbnRDb250YWluZXIqIGZyYWdtZW50LCBBbGxvd0ludHJpbnNp
YyBhbGxvd0ludHJpbnNpYykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApp
bmRleCBkMzUwYTQ2MGRjNDUzNWJkM2ZlOTU3NmRhYzBkYzI3MmU3Y2Y0MTA1Li4yOGUwYWQxYjIw
ZjU0YmIxMjkxMTU5NGM2OGY4ZWZhOGY5Y2ZjZjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5oCkBAIC0yMTksNyArMjE5LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkT3ZlcmZs
b3dGcm9tQ2hpbGQoY29uc3QgUmVuZGVyQm94KiBjaGlsZCwgY29uc3QgTGF5b3V0U2l6ZSYgZGVs
dGEpOwogCiAgICAgdm9pZCB1cGRhdGVMYXllclRyYW5zZm9ybSgpOwotICAgIHZvaWQgYXBwbHlU
cmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5n
Qm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gPSBS
ZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucykgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IFJlbmRlclN0
eWxlJiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxl
OjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9w
ZXJhdGlvbnMpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgTGF5b3V0U2l6ZSBjb250ZW50U2l6ZSgp
IGNvbnN0IHsgcmV0dXJuIHsgY29udGVudFdpZHRoKCksIGNvbnRlbnRIZWlnaHQoKSB9OyB9CiAg
ICAgTGF5b3V0VW5pdCBjb250ZW50V2lkdGgoKSBjb25zdCB7IHJldHVybiBzdGQ6Om1heCgwX2x1
LCBwYWRkaW5nQm94V2lkdGgoKSAtIHBhZGRpbmdMZWZ0KCkgLSBwYWRkaW5nUmlnaHQoKSk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3Bw
CmluZGV4IDI0YzgyYzlkNmJkNDNmNzRiYTA1YWI1YWM3Njc5M2Q3NWQxNWU1NzcuLjQ1YmRjYmJi
NjI5ZWFiYTc1YzRkYWViZmFkMTUxNDA1Yjg0MzM1ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtMjcwNiw3ICsyNzA2LDcg
QEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29sbGVjdEFic29sdXRlUXVhZHNGb3JDb250
aW51YXRpb24oVmVjdG9yPEZsb2F0UXVhZD4KICAgICB9CiB9CiAKLXZvaWQgUmVuZGVyQm94TW9k
ZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgRmxv
YXRSZWN0JiwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+
KSBjb25zdAordm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNm
b3JtYXRpb25NYXRyaXgmLCBjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZsb2F0UmVjdCYsIE9w
dGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPikgY29uc3QKIHsK
ICAgICAvLyBhcHBseVRyYW5zZm9ybSgpIGlzIG9ubHkgdXNlZCB0aHJvdWdoIFJlbmRlckxheWVy
Kiwgd2hpY2ggb25seSBpbnZva2VzIHRoaXMgZm9yIFJlbmRlckJveCBkZXJpdmVkIHJlbmRlcmVy
cywgdGh1cyBub3QgZm9yCiAgICAgLy8gUmVuZGVySW5saW5lL1JlbmRlckxpbmVCcmVhayAtIHRo
ZSBvdGhlciB0d28gcmVuZGVyZXJzIHRoYXQgaW5oZXJpdCBmcm9tIFJlbmRlckJveE1vZGVsT2Jq
ZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVs
T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
aAppbmRleCA5N2I5NjVhMzBmZGQ3NjYzMThiYjNkOGE1YzA5YzM0YzVhODNiZWRmLi4wYzVjYTY2
Y2FkYWQ5ZGU0NzBiZGNhZjAzYzZiMWZhZTM3MGVlYjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaApAQCAtMjU0LDcgKzI1NCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFzT3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRl
bnRXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGhhc092
ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KIAotICAgIHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBj
b25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5z
Zm9ybU9wZXJhdGlvbk9wdGlvbj4gPSBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9u
cykgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0Jv
eCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+ID0gUmVu
ZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9wZXJhdGlvbnMpIGNvbnN0IG92ZXJyaWRlOwogCiBwcm90
ZWN0ZWQ6CiAgICAgUmVuZGVyQm94TW9kZWxPYmplY3QoRWxlbWVudCYsIFJlbmRlclN0eWxlJiYs
IEJhc2VUeXBlRmxhZ3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAK
aW5kZXggYmY2ZmM2M2MzOWJmNzRiNzVjYThiYzZjNDNjZmE4MzBlN2M2ZGI4Ny4uODVmYzhhMjJm
MTcyMzE3MDIxYWZlZmNhZDQ3NGZmNDExZTA4MDFlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0xMzEwLDYgKzEzMTAsMTMgQEAgc3RhdGljIGlubGluZSBG
bG9hdE9yTGF5b3V0UmVjdCBjb21wdXRlUmVmZXJlbmNlQm94KGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QKICAgICByZXR1cm4gcmVmZXJlbmNlQm94OwogfQogCit2b2lkIFJlbmRlckxheWVy
Ojp1cGRhdGVUcmFuc2Zvcm1Gcm9tU3R5bGUoVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9y
bSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5z
Zm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKK3sKKyAgICBhdXRvIHJlZmVyZW5j
ZUJveFJlY3RGb3JQYWludGluZyA9IHJlbmRlcmVyKCkudHJhbnNmb3JtUmVmZXJlbmNlQm94UmVj
dCgpLmZsb2F0UmVjdEZvclBhaW50aW5nKHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5kZXZpY2VTY2Fs
ZUZhY3RvcigpKTsKKyAgICByZW5kZXJlcigpLmFwcGx5VHJhbnNmb3JtKHRyYW5zZm9ybSwgc3R5
bGUsIHJlZmVyZW5jZUJveFJlY3RGb3JQYWludGluZywgb3B0aW9ucyk7CisgICAgbWFrZU1hdHJp
eFJlbmRlcmFibGUodHJhbnNmb3JtLCBjYW5SZW5kZXIzRFRyYW5zZm9ybXMoKSk7Cit9CisKIHZv
aWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZVRyYW5zZm9ybSgpCiB7CiAgICAgYm9vbCBoYXNUcmFuc2Zv
cm0gPSByZW5kZXJlcigpLmhhc1RyYW5zZm9ybSgpOwpAQCAtMTMyOCwxMCArMTMzNSw3IEBAIHZv
aWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZVRyYW5zZm9ybSgpCiAgICAgCiAgICAgaWYgKGhhc1RyYW5z
Zm9ybSkgewogICAgICAgICBtX3RyYW5zZm9ybS0+bWFrZUlkZW50aXR5KCk7Ci0KLSAgICAgICAg
YXV0byByZWZlcmVuY2VCb3hSZWN0Rm9yUGFpbnRpbmcgPSByZW5kZXJlcigpLnRyYW5zZm9ybVJl
ZmVyZW5jZUJveFJlY3QoKS5mbG9hdFJlY3RGb3JQYWludGluZyhyZW5kZXJlcigpLmRvY3VtZW50
KCkuZGV2aWNlU2NhbGVGYWN0b3IoKSk7Ci0gICAgICAgIHJlbmRlcmVyKCkuYXBwbHlUcmFuc2Zv
cm0oKm1fdHJhbnNmb3JtLCByZWZlcmVuY2VCb3hSZWN0Rm9yUGFpbnRpbmcpOwotICAgICAgICBt
YWtlTWF0cml4UmVuZGVyYWJsZSgqbV90cmFuc2Zvcm0sIGNhblJlbmRlcjNEVHJhbnNmb3Jtcygp
KTsKKyAgICAgICAgdXBkYXRlVHJhbnNmb3JtRnJvbVN0eWxlKCptX3RyYW5zZm9ybSwgcmVuZGVy
ZXIoKS5zdHlsZSgpLCBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucyk7CiAgICAg
fQogCiAgICAgaWYgKGhhZDNEVHJhbnNmb3JtICE9IGhhczNEVHJhbnNmb3JtKCkpIHsKQEAgLTEz
NTksMTIgKzEzNjMsOSBAQCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBSZW5kZXJMYXllcjo6Y3VycmVu
dFRyYW5zZm9ybShPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZgogICAgIGF1dG8gc3R5bGVh
YmxlID0gU3R5bGVhYmxlOjpmcm9tUmVuZGVyZXIocmVuZGVyQm94KTsKICAgICBpZiAoKHN0eWxl
YWJsZSAmJiBzdHlsZWFibGUtPmlzUnVubmluZ0FjY2VsZXJhdGVkVHJhbnNmb3JtQW5pbWF0aW9u
KCkpIHx8ICFvcHRpb25zLmNvbnRhaW5zKFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25P
cHRpb246OlRyYW5zZm9ybU9yaWdpbikpIHsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRl
clN0eWxlPiBhbmltYXRlZFN0eWxlID0gcmVuZGVyQm94LmFuaW1hdGVkU3R5bGUoKTsKLSAgICAg
ICAgYXV0byByZWZlcmVuY2VCb3hSZWN0Rm9yUGFpbnRpbmcgPSByZW5kZXJCb3gudHJhbnNmb3Jt
UmVmZXJlbmNlQm94UmVjdCgpLmZsb2F0UmVjdEZvclBhaW50aW5nKHJlbmRlckJveC5kb2N1bWVu
dCgpLmRldmljZVNjYWxlRmFjdG9yKCkpOwogCiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4
IHRyYW5zZm9ybTsKLSAgICAgICAgYW5pbWF0ZWRTdHlsZS0+YXBwbHlUcmFuc2Zvcm0odHJhbnNm
b3JtLCByZWZlcmVuY2VCb3hSZWN0Rm9yUGFpbnRpbmcsIG9wdGlvbnMpOwotCi0gICAgICAgIG1h
a2VNYXRyaXhSZW5kZXJhYmxlKHRyYW5zZm9ybSwgY2FuUmVuZGVyM0RUcmFuc2Zvcm1zKCkpOwor
ICAgICAgICB1cGRhdGVUcmFuc2Zvcm1Gcm9tU3R5bGUodHJhbnNmb3JtLCAqYW5pbWF0ZWRTdHls
ZSwgb3B0aW9ucyk7CiAgICAgICAgIHJldHVybiB0cmFuc2Zvcm07CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IGMxODc4ODNmNTNjMGQ1MTg0MDllYmFi
NGU4OWIxYzVmYjllZDNjMWIuLjgwMmVjMzE0MmUxOTZiZWQ1YjUxYjc3ODk3M2M4ZGZmZTZmOWNj
NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC03MjcsOSArNzI3
LDExIEBAIHB1YmxpYzoKICAgICBib29sIGhhc1RyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIHJl
bmRlcmVyKCkuaGFzVHJhbnNmb3JtKCk7IH0KICAgICAvLyBOb3RlIHRoYXQgdGhpcyB0cmFuc2Zv
cm0gaGFzIHRoZSB0cmFuc2Zvcm0tb3JpZ2luIGJha2VkIGluLgogICAgIFRyYW5zZm9ybWF0aW9u
TWF0cml4KiB0cmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX3RyYW5zZm9ybS5nZXQoKTsgfQor
ICAgIC8vIHVwZGF0ZVRyYW5zZm9ybUZyb21TdHlsZSBjb21wdXRlcyBhIHRyYW5zZm9ybSBhY2Nv
cmRpbmcgdG8gdGhlIHBhc3NlZCBvcHRpb25zIChlLmcuIHRyYW5zZm9ybS1vcmlnaW4gYmFrZWQg
aW4gb3IgZXhjbHVkZWQpIGFuZCB0aGUgZ2l2ZW4gc3R5bGUuCisgICAgdm9pZCB1cGRhdGVUcmFu
c2Zvcm1Gcm9tU3R5bGUoVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBSZW5kZXJTdHlsZSYs
IE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPikgY29uc3Q7
CiAgICAgLy8gY3VycmVudFRyYW5zZm9ybSBjb21wdXRlcyBhIHRyYW5zZm9ybSB3aGljaCB0YWtl
cyBhY2NlbGVyYXRlZCBhbmltYXRpb25zIGludG8gYWNjb3VudC4gVGhlCi0gICAgLy8gcmVzdWx0
aW5nIHRyYW5zZm9ybSBoYXMgdHJhbnNmb3JtLW9yaWdpbiBiYWtlZCBpbi4gSWYgdGhlIGxheWVy
IGRvZXMgbm90IGhhdmUgYSB0cmFuc2Zvcm0sCi0gICAgLy8gcmV0dXJucyB0aGUgaWRlbnRpdHkg
bWF0cml4LgorICAgIC8vIHJlc3VsdGluZyB0cmFuc2Zvcm0gaGFzIHRyYW5zZm9ybS1vcmlnaW4g
YmFrZWQgaW4sIHVubGVzcyBub24tZGVmYXVsdCBvcHRpb25zIGFyZSBnaXZlbi4gSWYKKyAgICAv
LyB0aGUgbGF5ZXIgZG9lcyBub3QgaGF2ZSBhIHRyYW5zZm9ybSwgdGhlIGlkZW50aXR5IG1hdHJp
eCBpcyByZXR1cm5lZC4KICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBjdXJyZW50VHJhbnNmb3Jt
KE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRl
clN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBjb25zdDsKICAgICBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCByZW5kZXJhYmxlVHJhbnNmb3JtKE9wdGlvblNldDxQYWludEJlaGF2aW9yPikgY29u
c3Q7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCmluZGV4IDIzNDU1MjViMmM4MGZhMjJjZWI2MjBkNWRhZjcwMTAwMjE5ODUyZjQuLmQx
ODQwYWI3N2RkMTAxZmJhNTVlNzZkNzA1MTA3ZjdmYWNmZjkxMGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC02NDMsNyArNjQzLDgg
QEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZVRyYW5zZm9ybShjb25zdCBSZW5kZXJT
dHlsZSYpCiAgICAgLy8gYmFrZWQgaW50byBpdCwgYW5kIHdlIGRvbid0IHdhbnQgdGhhdC4KICAg
ICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0OwogICAgIGlmIChtX293bmluZ0xheWVyLmhhc1RyYW5z
Zm9ybSgpKSB7Ci0gICAgICAgIHJlbmRlcmVyKCkuYXBwbHlUcmFuc2Zvcm0odCwgc25hcFJlY3RU
b0RldmljZVBpeGVscyhtX293bmluZ0xheWVyLnJlbmRlcmVyQm9yZGVyQm94UmVjdCgpLCBkZXZp
Y2VTY2FsZUZhY3RvcigpKSwgUmVuZGVyU3R5bGU6OmluZGl2aWR1YWxUcmFuc2Zvcm1PcGVyYXRp
b25zKTsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgdXNlcyB0aGUgd3JvbmcsIHRyYW5zZm9ybS1i
b3ggdW5hd2FyZSwgZ2VvbWV0cnkuCisgICAgICAgIHJlbmRlcmVyKCkuYXBwbHlUcmFuc2Zvcm0o
dCwgcmVuZGVyZXIoKS5zdHlsZSgpLCBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKG1fb3duaW5nTGF5
ZXIucmVuZGVyZXJCb3JkZXJCb3hSZWN0KCksIGRldmljZVNjYWxlRmFjdG9yKCkpLCBSZW5kZXJT
dHlsZTo6aW5kaXZpZHVhbFRyYW5zZm9ybU9wZXJhdGlvbnMpOwogICAgICAgICBtYWtlTWF0cml4
UmVuZGVyYWJsZSh0LCBjb21wb3NpdG9yKCkuY2FuUmVuZGVyM0RUcmFuc2Zvcm1zKCkpOwogICAg
IH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ck1vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdC5oCmluZGV4IGMzNTRmMzc3ZjI4ZTFjMjIyNmE5YTFlMmM1NDZjMzYxODI2MTczYmYu
LmQ0NGZmNmFkNTJkM2E1OWY1MWQxYzBmZWFmNmNlNzk1YTVlMGVkZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaApAQCAtNzcsNyAr
NzcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtYXBMb2NhbFRvU1ZHQ29udGFpbmVyKGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yQ29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYs
IE9wdGlvblNldDxNYXBDb29yZGluYXRlc01vZGU+LCBib29sKiB3YXNGaXhlZCkgY29uc3Q7CiAj
ZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHls
ZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1P
cGVyYXRpb25zKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFwcGx5VHJhbnNmb3JtKFRy
YW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGbG9hdFJlY3Qm
IGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9w
dGlvbj4gPSBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucykgY29uc3QgPSAwOwog
CiBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdChFbGVtZW50JiwgUmVuZGVy
U3R5bGUmJiwgQmFzZVR5cGVGbGFncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCmluZGV4IGVjYzNmMGRkYTZmNDRhNTFj
NTZkMjZhN2EyNzk2ZmY2YjcwM2QwOGEuLmIxOTI5NGI2NzU4YzlkMTdiNmM4NTA5YjIxYWQxNzE0
YzE4OTM0ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHTW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHTW9kZWxPYmplY3QuY3BwCkBAIC0yNzYsMTUgKzI3Niw2IEBAIGJvb2wgUmVuZGVyU1ZH
TW9kZWxPYmplY3Q6OmNoZWNrRW5jbG9zdXJlKFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyLCBjb25z
dCBGbG9hdFJlCiAgICAgcmV0dXJuIHJlY3QuY29udGFpbnMoY3RtLm1hcFJlY3QocmVuZGVyZXIt
PnJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkpKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdN
b2RlbE9iamVjdDo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9y
bSwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpU
cmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+IG9wdGlvbnMpIGNvbnN0Ci17Ci0gICAgVU5VU0VEX1BB
UkFNKHRyYW5zZm9ybSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJvdW5kaW5nQm94KTsKLSAgICBVTlVT
RURfUEFSQU0ob3B0aW9ucyk7Ci0gICAgLy8gRklYTUU6IFtMQlNFXSBVcHN0cmVhbSBTVkdSZW5k
ZXJTdXBwb3J0IGNoYW5nZXMKLSAgICAvLyBTVkdSZW5kZXJTdXBwb3J0OjphcHBseVRyYW5zZm9y
bSgqdGhpcywgdHJhbnNmb3JtLCBzdHlsZSwgYm91bmRpbmdCb3gsIHN0ZDo6bnVsbG9wdCwgc3Rk
OjpudWxsb3B0LCBvcHRpb25zKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKExBWUVSX0JBU0VEX1NWR19FTkdJTkUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgKaW5kZXggOTNmYzlmYWUy
ZGVlNjJhZGI2ZGQ1NDVjOWE5M2NiMzgyNjVmYmU0OC4uYmMxMTI0NTA0M2M5ZDFlNTRlYjBjYzRj
YzJjMTQ4YzlhOWIyMzhjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaApAQCAtNTgsOCArNTgsNiBAQCBwdWJsaWM6CiAKICAg
ICBpbmxpbmUgU1ZHRWxlbWVudCYgZWxlbWVudCgpIGNvbnN0OwogCi0gICAgdm9pZCBhcHBseVRy
YW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdC
b3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJl
bmRlclN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBjb25zdCBvdmVycmlkZTsKLQogICAg
IC8vIE1pbWljIHRoZSBSZW5kZXJCb3ggYWNjZXNzb3JzIC0gYnkgc2hhcmluZyB0aGUgc2FtZSB0
ZXJtaW5vbG9neSB0aGUgcGFpbnRpbmcgLyBoaXQgdGVzdGluZyAvIGxheW91dCBsb2dpYyBpcwog
ICAgIC8vIHNpbWlsYXIgdG8gcmVhZCBjb21wYXJlZCB0byBub24tU1ZHIHJlbmRlcmVycyBzdWNo
IGFzIFJlbmRlckJveCAmIGZyaWVuZHMuCiAgICAgTGF5b3V0UmVjdCBib3JkZXJCb3hSZWN0RXF1
aXZhbGVudCgpIGNvbnN0IHsgcmV0dXJuIHsgTGF5b3V0UG9pbnQoKSwgbV9sYXlvdXRSZWN0LnNp
emUoKSB9OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290
LmNwcAppbmRleCBkNDA5MTg2NTM2NjEyM2UxZWZmOWI3NzFkODg1MGY4NDdhNWE3ZmJhLi43MTZl
YTgzMDY4NDU5MzNjYjhmMDQ3YWU4YThkOWQyODUwMWM4ZDc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKQEAgLTYwNiwxNCArNjA2LDYgQEAg
TGF5b3V0UmVjdCBSZW5kZXJTVkdSb290OjpvdmVyZmxvd0NsaXBSZWN0KGNvbnN0IExheW91dFBv
aW50JiBsb2NhdGlvbiwgUmVuZGVyRnIKICAgICByZXR1cm4gY2xpcFJlY3Q7CiB9CiAKLXZvaWQg
UmVuZGVyU1ZHUm9vdDo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5z
Zm9ybSwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxl
OjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+IG9wdGlvbnMpIGNvbnN0Ci17Ci0gICAgUmVuZGVy
UmVwbGFjZWQ6OmFwcGx5VHJhbnNmb3JtKHRyYW5zZm9ybSwgYm91bmRpbmdCb3gsIG9wdGlvbnMp
OwotCi0gICAgLy8gRklYTUU6IFtMQlNFXSBVcHN0cmVhbSBTVkdSZW5kZXJTdXBwb3J0IGNoYW5n
ZXMKLSAgICAvLyBTVkdSZW5kZXJTdXBwb3J0OjphcHBseVRyYW5zZm9ybSgqdGhpcywgdHJhbnNm
b3JtLCBzdHlsZSwgYm91bmRpbmdCb3gsIHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0LCBvcHRp
b25zKTsKLX0KLQogdm9pZCBSZW5kZXJTVkdSb290OjphYnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRS
ZWN0PiYgcmVjdHMsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCkgY29uc3QK
IHsKICAgICBhdXRvIGxvY2FsUmVjdCA9IExheW91dFJlY3QodmFsdWVPckRlZmF1bHQobV9zdXBw
bGVtZW50YWxMb2NhbFRvUGFyZW50VHJhbnNmb3JtLmludmVyc2UoKSkubWFwUmVjdChib3JkZXJC
b3hSZWN0KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUm9vdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290
LmgKaW5kZXggNDNjMTJlYTgyNmUxOWM3MjZkOWRiOTQxMTYyNDEwMTY3OGU2NTA1ZS4uN2U2ZTY1
ODdiYzFjOWI1ZTc1ZDA5OTZmM2M3Y2VkNzY4OGIwMDE4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKQEAgLTY2LDggKzY2LDYgQEAgcHVibGljOgog
CiAgICAgYm9vbCBzaG91bGRBcHBseVZpZXdwb3J0Q2xpcCgpIGNvbnN0OwogCi0gICAgdm9pZCBh
cHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IEZsb2F0UmVjdCYgYm91
bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9u
PiA9IFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBjb25zdCBmaW5hbDsKLQog
ICAgIEZsb2F0UmVjdCBvYmplY3RCb3VuZGluZ0JveCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
b2JqZWN0Qm91bmRpbmdCb3g7IH0KICAgICBGbG9hdFJlY3Qgc3Ryb2tlQm91bmRpbmdCb3goKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX3N0cm9rZUJvdW5kaW5nQm94OyB9CiAgICAgRmxvYXRSZWN0
IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZH
Qm91bmRpbmdCb3hDb21wdXRhdGlvbjo6Y29tcHV0ZVJlcGFpbnRCb3VuZGluZ0JveCgqdGhpcyk7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hh
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAK
aW5kZXggMzI5M2E2YzlmYzNhYzVmMWI5OTk4NjI4YmNjZDk2NTQyOTMyODhkOS4uMzI1NTcyNDE5
MGI3MjBhZmQzNjY4NTU4NjIwMTYwZjBmMzgxMDE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKQEAgLTUzNCw2ICs1MzQsMTIgQEAgdm9p
ZCBSZW5kZXJTVkdTaGFwZTo6c3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBj
b25zdCBSZW5kZXJTdHlsZSYgbmUKICAgICBSZW5kZXJTVkdNb2RlbE9iamVjdDo6c3R5bGVXaWxs
Q2hhbmdlKGRpZmYsIG5ld1N0eWxlKTsKIH0KIAordm9pZCBSZW5kZXJTVkdTaGFwZTo6YXBwbHlU
cmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVy
U3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKK3sKKyAgICAv
LyBGSVhNRTogW0xCU0VdIFVwc3RyZWFtIENTUy9TVkcgdHJhbnNmb3JtIHN1cHBvcnQKKyAgICBz
dHlsZS5hcHBseVRyYW5zZm9ybSh0cmFuc2Zvcm0sIGJvdW5kaW5nQm94LCBvcHRpb25zKTsKK30K
KwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKExBWUVSX0JBU0VEX1NWR19FTkdJTkUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmgKaW5kZXggYTIzZDlhZDI5
OGUwMjkxMTM5ODZjNTkwMWI0MzUxNWUxZDllNDJiMC4uNzQzNjhiZGFmNjlmOWQxNjE5MjljYjIx
M2YxMjU0YmFjNTU1YjliZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdTaGFwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHU2hhcGUuaApAQCAtODIsNiArODIsOCBAQCBwdWJsaWM6CiAKICAgICBGbG9hdFJlY3Qg
Y29tcHV0ZU1hcmtlckJvdW5kaW5nQm94KGNvbnN0IFNWR0JvdW5kaW5nQm94Q29tcHV0YXRpb246
OkRlY29yYXRpb25PcHRpb25zJikgY29uc3Q7CiAKKyAgICB2b2lkIGFwcGx5VHJhbnNmb3JtKFRy
YW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGbG9hdFJlY3Qm
IGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9w
dGlvbj4gPSBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucykgY29uc3Qgb3ZlcnJp
ZGU7CisKIHByb3RlY3RlZDoKICAgICB2b2lkIGVsZW1lbnQoKSBjb25zdCA9IGRlbGV0ZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHAKaW5kZXggZmIzNWJmOTFmYTM1NjRhODdlNGU4
NmQwZmRkYTMyMWYwNzUxYTdkNC4uOTAzMTIyYmU5N2M3NTFhM2Q1MmE5NGU3N2Y4Y2E3NWY2MTQ0
YzE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdU
cmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwCkBAIC0xMDIsMTAgKzEwMiwx
MCBAQCB2b2lkIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI6OnVwZGF0ZUZyb21TdHls
ZSgpCiAgICAgLy8gICAgc2V0SGFzU1ZHVHJhbnNmb3JtKCk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZH
VHJhbnNmb3JtYWJsZUNvbnRhaW5lcjo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRy
aXgmIHRyYW5zZm9ybSwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJl
bmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+IG9wdGlvbnMpIGNvbnN0Cit2b2lk
IFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9y
bWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3Qg
RmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1P
cGVyYXRpb25PcHRpb24+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IFtMQlNFXSBV
cHN0cmVhbSBDU1MvU1ZHIHRyYW5zZm9ybSBzdXBwb3J0Ci0gICAgUmVuZGVyU1ZHQ29udGFpbmVy
OjphcHBseVRyYW5zZm9ybSh0cmFuc2Zvcm0sIGJvdW5kaW5nQm94LCBvcHRpb25zKTsKKyAgICBz
dHlsZS5hcHBseVRyYW5zZm9ybSh0cmFuc2Zvcm0sIGJvdW5kaW5nQm94LCBvcHRpb25zKTsKIH0K
IAogdm9pZCBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjpzdHlsZVdpbGxDaGFuZ2Uo
U3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXdTdHlsZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJs
ZUNvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFu
c2Zvcm1hYmxlQ29udGFpbmVyLmgKaW5kZXggMTNiZGEwYjBmYjY0OWQ3ZmM2MGExNjY3NGJhYzdj
MmVkMWE3N2ZhZS4uNjRmYTllMTY0YWI2MWVhNzdhYjIwNTZkNmI4ZTA1MWRhMWZhZTc1NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1h
YmxlQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmgKQEAgLTQ1LDggKzQ1LDkgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGxheW91dENoaWxkcmVuKCkgZmluYWw7CiAgICAgdm9pZCBjYWxjdWxhdGVWaWV3cG9y
dCgpIGZpbmFsOwogICAgIEZsb2F0UG9pbnQgYWRkaXRpb25hbENvbnRhaW5lclRyYW5zbGF0aW9u
KCkgY29uc3Q7Ci0gICAgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYs
IGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJh
bnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRp
b25zKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9u
TWF0cml4JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94
LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gPSBSZW5k
ZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucykgY29uc3QgZmluYWw7CiAgICAgdm9pZCBz
dHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3U3R5
bGUpIGZpbmFsOworCiAgICAgdm9pZCB1cGRhdGVGcm9tU3R5bGUoKSBmaW5hbDsKIAogICAgIEFm
ZmluZVRyYW5zZm9ybSBtX3N1cHBsZW1lbnRhbExvY2FsVG9QYXJlbnRUcmFuc2Zvcm07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455225</attachid>
            <date>2022-03-21 02:50:39 -0700</date>
            <delta_ts>2022-04-04 13:34:41 -0700</delta_ts>
            <desc>Patch, v7</desc>
            <filename>bug-237701-20220321025038.patch</filename>
            <type>text/plain</type>
            <size>19923</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTg2NjU1NzIzZGUzOTFm
NmE3ZTliNTlmZGRhYzM3ZmEyNzIwYmNhOC4uZWY2NDE3MTkwZjlkZTYyNmZjOTk4MDcyODhkOTlj
MGRlYmJlMjE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIyLTAzLTIxICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIFVuaWZ5
IHJlZmVyZW5jZSBib3ggLyBDVE0gY29tcHV0YXRpb24gaW4gUmVuZGVyTGF5ZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzcwMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dHJhY3QgdGhlIGNvZGUg
aW4gUmVuZGVyTGF5ZXIgdGhhdCBjb21wdXRlcyB0aGUgcmVmZXJlbmNlIGJveCwgb2J0YWlucyB0
aGUgQ1RNLAorICAgICAgICBhcHBsaWVzIHBpeGVsIHNuYXBwaW5nLCBldGMuIGludG8gYSBzaGFy
ZWQgdXBkYXRlVHJhbnNmb3JtRnJvbVN0eWxlKCkgaGVscGVyIGZ1bmN0aW9uLgorICAgICAgICBV
c2UgdGhhdCBoZWxwZXIgdG8gZGUtZHVwbGljYXRlIGNvZGUgYmV0d2VlbiB1cGRhdGVUcmFuc2Zv
cm0oKSAvIGN1cnJlbnRUcmFuc2Zvcm0oKQorICAgICAgICAoYW5kIFJlbmRlckxheWVyQmFja2lu
Zzo6dXBkYXRlVHJhbnNmb3JtKCkgaW4gZm9sbG93LXVwIHBhdGNoZXMpLgorCisgICAgICAgIGN1
cnJlbnRUcmFuc2Zvcm0oKSBuZWVkcyB0byBjb21wdXRlIHRoZSBDVE0sIGJhc2VkIG9uIGEgbm9u
LWRlZmF1bHQgUmVuZGVyU3R5bGUgKCE9IHJlbmRlcmVyKCkuc3R5bGUoKSksCisgICAgICAgIG5h
bWVseSB0aGUgYW5pbm1hdGVkU3R5bGUoKSwgaWYgYW4gYWNjZWxlcmF0ZWQgdHJhbnNmb3JtIGFu
aW1hdGlvbiBpcyBydW5uaW5nLiBUaGVyZWZvcmUgZXh0ZW5kCisgICAgICAgIFJlbmRlckxheWVy
TW9kZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtKCkgdG8gdGFrZSBhbiBhZGRpdGlvbmFsIFJlbmRl
clN0eWxlIHBhcmFtZXRlciwKKyAgICAgICAgdGhhdCBpcyB1c2VkIHRvIGFjY2VzcyB0aGUgQ1NT
IHRyYW5zZm9ybSBvcGVyYXRpb25zLCBpbnN0ZWFkIG9mIGFsd2F5cyBxdWVyeWluZyByZW5kZXJl
cigpLnN0eWxlKCkuCisgICAgICAgIFJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0oKSBjb250
aW51ZXMgdG8gcGFzcyAncmVuZGVyZXIoKS5zdHlsZSgpJyB0byB1cGRhdGVUcmFuc2Zvcm1Gcm9t
U3R5bGUoKSwKKyAgICAgICAgd2hlcmVhcyBSZW5kZXJMYXllcjo6Y3VycmVudFRyYW5zZm9ybSgp
IHBhc3NlcyB0aGUgZWxlbWVudHMgYW5pbWF0ZWRTdHlsZSgpLgorCisgICAgICAgIENvdmVyZWQg
YnkgZXhpc3RpbmcgdGVzdHMsIG5vIGNoYW5nZSBpbiBiZWhhdmlvdXIuCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6YXBw
bHlUcmFuc2Zvcm0gY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtIGNvbnN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0
ZVRyYW5zZm9ybUZyb21TdHlsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6dXBkYXRlVHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjdXJy
ZW50VHJhbnNmb3JtIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlVHJhbnNmb3JtKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
TW9kZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6
OmFwcGx5VHJhbnNmb3JtIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jvb3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1NoYXBlOjphcHBseVRyYW5zZm9ybSBj
b25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjphcHBseVRy
YW5zZm9ybSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyLmg6CisKIDIwMjItMDMtMjEgIE5pa29sYXMgWmltbWVybWFubiAgPG56
aW1tZXJtYW5uQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5pZnkgJ3RyYW5zZm9ybS1ib3gnIHJl
ZmVyZW5jZSBib3ggY29tcHV0YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5j
cHAKaW5kZXggMTg0NWY3OGQwODYzYWJjYzAzZmUxMTQwMGQ1N2Y2MTk0ZTllYzY1Ny4uM2IwMTg5
NThkNTdhM2ExYjA1ODY1NjA5ZTNmNjAxMjQxZjgwNmJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAKQEAgLTY2OSw5ICs2NjksOSBAQCB2b2lkIFJlbmRlckJveDo6dXBk
YXRlTGF5ZXJUcmFuc2Zvcm0oKQogICAgICAgICBsYXllcigpLT51cGRhdGVUcmFuc2Zvcm0oKTsK
IH0KIAotdm9pZCBSZW5kZXJCb3g6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4
JiB0LCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6
OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKK3ZvaWQgUmVuZGVyQm94
OjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdCwgY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVy
U3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKIHsKLSAgICBz
dHlsZSgpLmFwcGx5VHJhbnNmb3JtKHQsIGJvdW5kaW5nQm94LCBvcHRpb25zKTsKKyAgICBzdHls
ZS5hcHBseVRyYW5zZm9ybSh0LCBib3VuZGluZ0JveCwgb3B0aW9ucyk7CiB9CiAKIExheW91dFVu
aXQgUmVuZGVyQm94Ojpjb25zdHJhaW5Mb2dpY2FsV2lkdGhJbkZyYWdtZW50QnlNaW5NYXgoTGF5
b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgsIFJlbmRlckJs
b2NrJiBjYiwgUmVuZGVyRnJhZ21lbnRDb250YWluZXIqIGZyYWdtZW50LCBBbGxvd0ludHJpbnNp
YyBhbGxvd0ludHJpbnNpYykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApp
bmRleCAyOGExZGZlNTVjNzA1M2I2NzljOTEwNzUxMjVkODE5ZWY1MTFlMDRmLi5jZGEzYzZmYzIx
MGJhZGQwZmY1NDYyMTIxMmUyMzRkOWVmOTBmNmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5oCkBAIC0yMTksNyArMjE5LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkT3ZlcmZs
b3dGcm9tQ2hpbGQoY29uc3QgUmVuZGVyQm94KiBjaGlsZCwgY29uc3QgTGF5b3V0U2l6ZSYgZGVs
dGEpOwogCiAgICAgdm9pZCB1cGRhdGVMYXllclRyYW5zZm9ybSgpOwotICAgIHZvaWQgYXBwbHlU
cmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5n
Qm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gPSBS
ZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucykgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IFJlbmRlclN0
eWxlJiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxl
OjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9w
ZXJhdGlvbnMpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgTGF5b3V0U2l6ZSBjb250ZW50U2l6ZSgp
IGNvbnN0IHsgcmV0dXJuIHsgY29udGVudFdpZHRoKCksIGNvbnRlbnRIZWlnaHQoKSB9OyB9CiAg
ICAgTGF5b3V0VW5pdCBjb250ZW50V2lkdGgoKSBjb25zdCB7IHJldHVybiBzdGQ6Om1heCgwX2x1
LCBwYWRkaW5nQm94V2lkdGgoKSAtIHBhZGRpbmdMZWZ0KCkgLSBwYWRkaW5nUmlnaHQoKSk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3Bw
CmluZGV4IDI0YzgyYzlkNmJkNDNmNzRiYTA1YWI1YWM3Njc5M2Q3NWQxNWU1NzcuLjQ1YmRjYmJi
NjI5ZWFiYTc1YzRkYWViZmFkMTUxNDA1Yjg0MzM1ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtMjcwNiw3ICsyNzA2LDcg
QEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29sbGVjdEFic29sdXRlUXVhZHNGb3JDb250
aW51YXRpb24oVmVjdG9yPEZsb2F0UXVhZD4KICAgICB9CiB9CiAKLXZvaWQgUmVuZGVyQm94TW9k
ZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgRmxv
YXRSZWN0JiwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+
KSBjb25zdAordm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNm
b3JtYXRpb25NYXRyaXgmLCBjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZsb2F0UmVjdCYsIE9w
dGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPikgY29uc3QKIHsK
ICAgICAvLyBhcHBseVRyYW5zZm9ybSgpIGlzIG9ubHkgdXNlZCB0aHJvdWdoIFJlbmRlckxheWVy
Kiwgd2hpY2ggb25seSBpbnZva2VzIHRoaXMgZm9yIFJlbmRlckJveCBkZXJpdmVkIHJlbmRlcmVy
cywgdGh1cyBub3QgZm9yCiAgICAgLy8gUmVuZGVySW5saW5lL1JlbmRlckxpbmVCcmVhayAtIHRo
ZSBvdGhlciB0d28gcmVuZGVyZXJzIHRoYXQgaW5oZXJpdCBmcm9tIFJlbmRlckJveE1vZGVsT2Jq
ZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVs
T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
aAppbmRleCA5N2I5NjVhMzBmZGQ3NjYzMThiYjNkOGE1YzA5YzM0YzVhODNiZWRmLi4wYzVjYTY2
Y2FkYWQ5ZGU0NzBiZGNhZjAzYzZiMWZhZTM3MGVlYjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaApAQCAtMjU0LDcgKzI1NCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFzT3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRl
bnRXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGhhc092
ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KIAotICAgIHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBj
b25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5z
Zm9ybU9wZXJhdGlvbk9wdGlvbj4gPSBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9u
cykgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0Jv
eCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+ID0gUmVu
ZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9wZXJhdGlvbnMpIGNvbnN0IG92ZXJyaWRlOwogCiBwcm90
ZWN0ZWQ6CiAgICAgUmVuZGVyQm94TW9kZWxPYmplY3QoRWxlbWVudCYsIFJlbmRlclN0eWxlJiYs
IEJhc2VUeXBlRmxhZ3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAK
aW5kZXggOWM4ODBhMjQ3MWRiZDBjZmU5ODNjMzA1NjBiNTI5Nzg5ZTNlZWI5YS4uNTJhOWM2Njc1
ODA1MWE2NWI5NzZmZTg5YWUzNGNhYWUxNmQzY2NlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0xMzI3LDYgKzEzMjcsMTIgQEAgRmxvYXRSZWN0IFJlbmRl
ckxheWVyOjp0cmFuc2Zvcm1SZWZlcmVuY2VCb3hSZWN0Rm9yUGFpbnRpbmcoY29uc3QgUmVuZGVy
U3R5bGUmIHMKICAgICByZXR1cm4geyB9OwogfQogCit2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVU
cmFuc2Zvcm1Gcm9tU3R5bGUoVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3Qg
UmVuZGVyU3R5bGUmIHN0eWxlLCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJh
dGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKK3sKKyAgICByZW5kZXJlcigpLmFwcGx5VHJhbnNm
b3JtKCptX3RyYW5zZm9ybSwgc3R5bGUsIHRyYW5zZm9ybVJlZmVyZW5jZUJveFJlY3RGb3JQYWlu
dGluZyhzdHlsZSksIG9wdGlvbnMpOworICAgIG1ha2VNYXRyaXhSZW5kZXJhYmxlKHRyYW5zZm9y
bSwgY2FuUmVuZGVyM0RUcmFuc2Zvcm1zKCkpOworfQorCiB2b2lkIFJlbmRlckxheWVyOjp1cGRh
dGVUcmFuc2Zvcm0oKQogewogICAgIGJvb2wgaGFzVHJhbnNmb3JtID0gcmVuZGVyZXIoKS5oYXNU
cmFuc2Zvcm0oKTsKQEAgLTEzNDUsOCArMTM1MSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0
ZVRyYW5zZm9ybSgpCiAgICAgCiAgICAgaWYgKGhhc1RyYW5zZm9ybSkgewogICAgICAgICBtX3Ry
YW5zZm9ybS0+bWFrZUlkZW50aXR5KCk7Ci0gICAgICAgIHJlbmRlcmVyKCkuYXBwbHlUcmFuc2Zv
cm0oKm1fdHJhbnNmb3JtLCB0cmFuc2Zvcm1SZWZlcmVuY2VCb3hSZWN0Rm9yUGFpbnRpbmcocmVu
ZGVyZXIoKS5zdHlsZSgpKSk7Ci0gICAgICAgIG1ha2VNYXRyaXhSZW5kZXJhYmxlKCptX3RyYW5z
Zm9ybSwgY2FuUmVuZGVyM0RUcmFuc2Zvcm1zKCkpOworICAgICAgICB1cGRhdGVUcmFuc2Zvcm1G
cm9tU3R5bGUoKm1fdHJhbnNmb3JtLCByZW5kZXJlcigpLnN0eWxlKCksIFJlbmRlclN0eWxlOjph
bGxUcmFuc2Zvcm1PcGVyYXRpb25zKTsKICAgICB9CiAKICAgICBpZiAoaGFkM0RUcmFuc2Zvcm0g
IT0gaGFzM0RUcmFuc2Zvcm0oKSkgewpAQCAtMTM3Niw5ICsxMzgxLDcgQEAgVHJhbnNmb3JtYXRp
b25NYXRyaXggUmVuZGVyTGF5ZXI6OmN1cnJlbnRUcmFuc2Zvcm0oT3B0aW9uU2V0PFJlbmRlclN0
eWxlOjpUcmFuc2YKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBhbmltYXRl
ZFN0eWxlID0gcmVuZGVyQm94LmFuaW1hdGVkU3R5bGUoKTsKIAogICAgICAgICBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCB0cmFuc2Zvcm07Ci0gICAgICAgIGFuaW1hdGVkU3R5bGUtPmFwcGx5VHJhbnNm
b3JtKHRyYW5zZm9ybSwgdHJhbnNmb3JtUmVmZXJlbmNlQm94UmVjdEZvclBhaW50aW5nKCphbmlt
YXRlZFN0eWxlKSwgb3B0aW9ucyk7Ci0KLSAgICAgICAgbWFrZU1hdHJpeFJlbmRlcmFibGUodHJh
bnNmb3JtLCBjYW5SZW5kZXIzRFRyYW5zZm9ybXMoKSk7CisgICAgICAgIHVwZGF0ZVRyYW5zZm9y
bUZyb21TdHlsZSh0cmFuc2Zvcm0sICphbmltYXRlZFN0eWxlLCBvcHRpb25zKTsKICAgICAgICAg
cmV0dXJuIHRyYW5zZm9ybTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmgKaW5kZXggYjgyN2RiNGQ0OTdiMTM5ZmVjY2M4ZWZjMmM2NmRhMDllNDRmMDg2Mi4uNjdi
NjgzZDU1OTkxMDQ2MDY4MzQxYjU4NTg5MWQxMzBjMTFjYTc3NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTczMyw5ICs3MzMsMTEgQEAgcHVibGljOgogICAgIGJv
b2wgaGFzVHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gcmVuZGVyZXIoKS5oYXNUcmFuc2Zvcm0o
KTsgfQogICAgIC8vIE5vdGUgdGhhdCB0aGlzIHRyYW5zZm9ybSBoYXMgdGhlIHRyYW5zZm9ybS1v
cmlnaW4gYmFrZWQgaW4uCiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgqIHRyYW5zZm9ybSgpIGNv
bnN0IHsgcmV0dXJuIG1fdHJhbnNmb3JtLmdldCgpOyB9CisgICAgLy8gdXBkYXRlVHJhbnNmb3Jt
RnJvbVN0eWxlIGNvbXB1dGVzIGEgdHJhbnNmb3JtIGFjY29yZGluZyB0byB0aGUgcGFzc2VkIG9w
dGlvbnMgKGUuZy4gdHJhbnNmb3JtLW9yaWdpbiBiYWtlZCBpbiBvciBleGNsdWRlZCkgYW5kIHRo
ZSBnaXZlbiBzdHlsZS4KKyAgICB2b2lkIHVwZGF0ZVRyYW5zZm9ybUZyb21TdHlsZShUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgT3B0aW9uU2V0PFJlbmRlclN0eWxl
OjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+KSBjb25zdDsKICAgICAvLyBjdXJyZW50VHJhbnNm
b3JtIGNvbXB1dGVzIGEgdHJhbnNmb3JtIHdoaWNoIHRha2VzIGFjY2VsZXJhdGVkIGFuaW1hdGlv
bnMgaW50byBhY2NvdW50LiBUaGUKLSAgICAvLyByZXN1bHRpbmcgdHJhbnNmb3JtIGhhcyB0cmFu
c2Zvcm0tb3JpZ2luIGJha2VkIGluLiBJZiB0aGUgbGF5ZXIgZG9lcyBub3QgaGF2ZSBhIHRyYW5z
Zm9ybSwKLSAgICAvLyByZXR1cm5zIHRoZSBpZGVudGl0eSBtYXRyaXguCisgICAgLy8gcmVzdWx0
aW5nIHRyYW5zZm9ybSBoYXMgdHJhbnNmb3JtLW9yaWdpbiBiYWtlZCBpbiwgdW5sZXNzIG5vbi1k
ZWZhdWx0IG9wdGlvbnMgYXJlIGdpdmVuLiBJZgorICAgIC8vIHRoZSBsYXllciBkb2VzIG5vdCBo
YXZlIGEgdHJhbnNmb3JtLCB0aGUgaWRlbnRpdHkgbWF0cml4IGlzIHJldHVybmVkLgogICAgIFRy
YW5zZm9ybWF0aW9uTWF0cml4IGN1cnJlbnRUcmFuc2Zvcm0oT3B0aW9uU2V0PFJlbmRlclN0eWxl
OjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9w
ZXJhdGlvbnMpIGNvbnN0OwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHJlbmRlcmFibGVUcmFu
c2Zvcm0oT3B0aW9uU2V0PFBhaW50QmVoYXZpb3I+KSBjb25zdDsKICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggMjM0NTUyNWIy
YzgwZmEyMmNlYjYyMGQ1ZGFmNzAxMDAyMTk4NTJmNC4uZDE4NDBhYjc3ZGQxMDFmYmE1NWU3NmQ3
MDUxMDdmN2ZhY2ZmOTEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5jcHAKQEAgLTY0Myw3ICs2NDMsOCBAQCB2b2lkIFJlbmRlckxheWVyQmFj
a2luZzo6dXBkYXRlVHJhbnNmb3JtKGNvbnN0IFJlbmRlclN0eWxlJikKICAgICAvLyBiYWtlZCBp
bnRvIGl0LCBhbmQgd2UgZG9uJ3Qgd2FudCB0aGF0LgogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4
IHQ7CiAgICAgaWYgKG1fb3duaW5nTGF5ZXIuaGFzVHJhbnNmb3JtKCkpIHsKLSAgICAgICAgcmVu
ZGVyZXIoKS5hcHBseVRyYW5zZm9ybSh0LCBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKG1fb3duaW5n
TGF5ZXIucmVuZGVyZXJCb3JkZXJCb3hSZWN0KCksIGRldmljZVNjYWxlRmFjdG9yKCkpLCBSZW5k
ZXJTdHlsZTo6aW5kaXZpZHVhbFRyYW5zZm9ybU9wZXJhdGlvbnMpOworICAgICAgICAvLyBGSVhN
RTogVGhpcyB1c2VzIHRoZSB3cm9uZywgdHJhbnNmb3JtLWJveCB1bmF3YXJlLCBnZW9tZXRyeS4K
KyAgICAgICAgcmVuZGVyZXIoKS5hcHBseVRyYW5zZm9ybSh0LCByZW5kZXJlcigpLnN0eWxlKCks
IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMobV9vd25pbmdMYXllci5yZW5kZXJlckJvcmRlckJveFJl
Y3QoKSwgZGV2aWNlU2NhbGVGYWN0b3IoKSksIFJlbmRlclN0eWxlOjppbmRpdmlkdWFsVHJhbnNm
b3JtT3BlcmF0aW9ucyk7CiAgICAgICAgIG1ha2VNYXRyaXhSZW5kZXJhYmxlKHQsIGNvbXBvc2l0
b3IoKS5jYW5SZW5kZXIzRFRyYW5zZm9ybXMoKSk7CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgKaW5kZXggYzM1NGYz
NzdmMjhlMWMyMjI2YTlhMWUyYzU0NmMzNjE4MjYxNzNiZi4uZDQ0ZmY2YWQ1MmQzYTU5ZjUxZDFj
MGZlYWY2Y2U3OTVhNWUwZWRlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyTW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oCkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIG1hcExvY2FsVG9TVkdDb250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
YW5jZXN0b3JDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgT3B0aW9uU2V0PE1hcENvb3JkaW5h
dGVzTW9kZT4sIGJvb2wqIHdhc0ZpeGVkKSBjb25zdDsKICNlbmRpZgogCi0gICAgdmlydHVhbCB2
b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgRmxvYXRSZWN0
JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25P
cHRpb24+ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9wZXJhdGlvbnMpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBj
b25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNl
dDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjph
bGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBjb25zdCA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KEVsZW1lbnQmLCBSZW5kZXJTdHlsZSYmLCBCYXNlVHlwZUZsYWdz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9k
ZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2Rl
bE9iamVjdC5jcHAKaW5kZXggZWNjM2YwZGRhNmY0NGE1MWM1NmQyNmE3YTI3OTZmZjZiNzAzZDA4
YS4uYjE5Mjk0YjY3NThjOWQxN2I2Yzg1MDliMjFhZDE3MTRjMTg5MzRmOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAK
QEAgLTI3NiwxNSArMjc2LDYgQEAgYm9vbCBSZW5kZXJTVkdNb2RlbE9iamVjdDo6Y2hlY2tFbmNs
b3N1cmUoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIGNvbnN0IEZsb2F0UmUKICAgICByZXR1cm4g
cmVjdC5jb250YWlucyhjdG0ubWFwUmVjdChyZW5kZXJlci0+cmVwYWludFJlY3RJbkxvY2FsQ29v
cmRpbmF0ZXMoKSkpOwogfQogCi12b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0OjphcHBseVRyYW5z
Zm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFJlY3QmIGJv
dW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlv
bj4gb3B0aW9ucykgY29uc3QKLXsKLSAgICBVTlVTRURfUEFSQU0odHJhbnNmb3JtKTsKLSAgICBV
TlVTRURfUEFSQU0oYm91bmRpbmdCb3gpOwotICAgIFVOVVNFRF9QQVJBTShvcHRpb25zKTsKLSAg
ICAvLyBGSVhNRTogW0xCU0VdIFVwc3RyZWFtIFNWR1JlbmRlclN1cHBvcnQgY2hhbmdlcwotICAg
IC8vIFNWR1JlbmRlclN1cHBvcnQ6OmFwcGx5VHJhbnNmb3JtKCp0aGlzLCB0cmFuc2Zvcm0sIHN0
eWxlLCBib3VuZGluZ0JveCwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQsIG9wdGlvbnMpOwot
fQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTEFZRVJfQkFT
RURfU1ZHX0VOR0lORSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHTW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHTW9kZWxPYmplY3QuaAppbmRleCA5M2ZjOWZhZTJkZWU2MmFkYjZkZDU0NWM5YTkzY2Iz
ODI2NWZiZTQ4Li5iYzExMjQ1MDQzYzlkMWU1NGViMGNjNGNjMmMxNDhjOWE5YjIzOGMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVj
dC5oCkBAIC01OCw4ICs1OCw2IEBAIHB1YmxpYzoKIAogICAgIGlubGluZSBTVkdFbGVtZW50JiBl
bGVtZW50KCkgY29uc3Q7CiAKLSAgICB2b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9u
TWF0cml4JiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0
eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9y
bU9wZXJhdGlvbnMpIGNvbnN0IG92ZXJyaWRlOwotCiAgICAgLy8gTWltaWMgdGhlIFJlbmRlckJv
eCBhY2Nlc3NvcnMgLSBieSBzaGFyaW5nIHRoZSBzYW1lIHRlcm1pbm9sb2d5IHRoZSBwYWludGlu
ZyAvIGhpdCB0ZXN0aW5nIC8gbGF5b3V0IGxvZ2ljIGlzCiAgICAgLy8gc2ltaWxhciB0byByZWFk
IGNvbXBhcmVkIHRvIG5vbi1TVkcgcmVuZGVyZXJzIHN1Y2ggYXMgUmVuZGVyQm94ICYgZnJpZW5k
cy4KICAgICBMYXlvdXRSZWN0IGJvcmRlckJveFJlY3RFcXVpdmFsZW50KCkgY29uc3QgeyByZXR1
cm4geyBMYXlvdXRQb2ludCgpLCBtX2xheW91dFJlY3Quc2l6ZSgpIH07IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCmluZGV4IGQ0MDkxODY1MzY2
MTIzZTFlZmY5Yjc3MWQ4ODUwZjg0N2E1YTdmYmEuLjcxNmVhODMwNjg0NTkzM2NiOGYwNDdhZThh
OGQ5ZDI4NTAxYzhkNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUm9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSb290LmNwcApAQCAtNjA2LDE0ICs2MDYsNiBAQCBMYXlvdXRSZWN0IFJlbmRlclNWR1Jv
b3Q6Om92ZXJmbG93Q2xpcFJlY3QoY29uc3QgTGF5b3V0UG9pbnQmIGxvY2F0aW9uLCBSZW5kZXJG
cgogICAgIHJldHVybiBjbGlwUmVjdDsKIH0KIAotdm9pZCBSZW5kZXJTVkdSb290OjphcHBseVRy
YW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFJlY3Qm
IGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9w
dGlvbj4gb3B0aW9ucykgY29uc3QKLXsKLSAgICBSZW5kZXJSZXBsYWNlZDo6YXBwbHlUcmFuc2Zv
cm0odHJhbnNmb3JtLCBib3VuZGluZ0JveCwgb3B0aW9ucyk7Ci0KLSAgICAvLyBGSVhNRTogW0xC
U0VdIFVwc3RyZWFtIFNWR1JlbmRlclN1cHBvcnQgY2hhbmdlcwotICAgIC8vIFNWR1JlbmRlclN1
cHBvcnQ6OmFwcGx5VHJhbnNmb3JtKCp0aGlzLCB0cmFuc2Zvcm0sIHN0eWxlLCBib3VuZGluZ0Jv
eCwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQsIG9wdGlvbnMpOwotfQotCiB2b2lkIFJlbmRl
clNWR1Jvb3Q6OmFic29sdXRlUmVjdHMoVmVjdG9yPEludFJlY3Q+JiByZWN0cywgY29uc3QgTGF5
b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdAogewogICAgIGF1dG8gbG9jYWxSZWN0
ID0gTGF5b3V0UmVjdCh2YWx1ZU9yRGVmYXVsdChtX3N1cHBsZW1lbnRhbExvY2FsVG9QYXJlbnRU
cmFuc2Zvcm0uaW52ZXJzZSgpKS5tYXBSZWN0KGJvcmRlckJveFJlY3QoKSkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaAppbmRleCA0M2MxMmVhODI2ZTE5
YzcyNmQ5ZGI5NDExNjI0MTAxNjc4ZTY1MDVlLi43ZTZlNjU4N2JjMWM5YjVlNzVkMDk5NmYzYzdj
ZWQ3Njg4YjAwMTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jvb3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jvb3QuaApAQCAtNjYsOCArNjYsNiBAQCBwdWJsaWM6CiAKICAgICBib29sIHNob3VsZEFwcGx5
Vmlld3BvcnRDbGlwKCkgY29uc3Q7CiAKLSAgICB2b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9y
bWF0aW9uTWF0cml4JiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJl
bmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+ID0gUmVuZGVyU3R5bGU6OmFsbFRy
YW5zZm9ybU9wZXJhdGlvbnMpIGNvbnN0IGZpbmFsOwotCiAgICAgRmxvYXRSZWN0IG9iamVjdEJv
dW5kaW5nQm94KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9vYmplY3RCb3VuZGluZ0JveDsgfQog
ICAgIEZsb2F0UmVjdCBzdHJva2VCb3VuZGluZ0JveCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
c3Ryb2tlQm91bmRpbmdCb3g7IH0KICAgICBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2FsQ29v
cmRpbmF0ZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdCb3VuZGluZ0JveENvbXB1dGF0aW9u
Ojpjb21wdXRlUmVwYWludEJvdW5kaW5nQm94KCp0aGlzKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcAppbmRleCAzMjkzYTZjOWZjM2FjNWYx
Yjk5OTg2MjhiY2NkOTY1NDI5MzI4OGQ5Li4zMjU1NzI0MTkwYjcyMGFmZDM2Njg1NTg2MjAxNjBm
MGYzODEwMTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1NoYXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1NoYXBlLmNwcApAQCAtNTM0LDYgKzUzNCwxMiBAQCB2b2lkIFJlbmRlclNWR1NoYXBlOjpzdHls
ZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlJiBuZQog
ICAgIFJlbmRlclNWR01vZGVsT2JqZWN0OjpzdHlsZVdpbGxDaGFuZ2UoZGlmZiwgbmV3U3R5bGUp
OwogfQogCit2b2lkIFJlbmRlclNWR1NoYXBlOjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEZsb2F0
UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0
aW9uT3B0aW9uPiBvcHRpb25zKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBbTEJTRV0gVXBzdHJl
YW0gQ1NTL1NWRyB0cmFuc2Zvcm0gc3VwcG9ydAorICAgIHN0eWxlLmFwcGx5VHJhbnNmb3JtKHRy
YW5zZm9ybSwgYm91bmRpbmdCb3gsIG9wdGlvbnMpOworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFC
TEUoTEFZRVJfQkFTRURfU1ZHX0VOR0lORSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHU2hhcGUuaAppbmRleCBhMjNkOWFkMjk4ZTAyOTExMzk4NmM1OTAxYjQzNTE1
ZTFkOWU0MmIwLi43NDM2OGJkYWY2OWY5ZDE2MTkyOWNiMjEzZjEyNTRiYWM1NTViOWJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oCkBAIC04Miw2
ICs4Miw4IEBAIHB1YmxpYzoKIAogICAgIEZsb2F0UmVjdCBjb21wdXRlTWFya2VyQm91bmRpbmdC
b3goY29uc3QgU1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbjo6RGVjb3JhdGlvbk9wdGlvbnMmKSBj
b25zdDsKIAorICAgIHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBj
b25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNl
dDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjph
bGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBjb25zdCBvdmVycmlkZTsKKwogcHJvdGVjdGVkOgogICAg
IHZvaWQgZWxlbWVudCgpIGNvbnN0ID0gZGVsZXRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFp
bmVyLmNwcAppbmRleCBmYjM1YmY5MWZhMzU2NGE4N2U0ZTg2ZDBmZGRhMzIxZjA3NTFhN2Q0Li45
MDMxMjJiZTk3Yzc1MWEzZDUyYTk0ZTc3ZjhjYTc1ZjYxNDRjMTk1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3Jt
YWJsZUNvbnRhaW5lci5jcHAKQEAgLTEwMiwxMCArMTAyLDEwIEBAIHZvaWQgUmVuZGVyU1ZHVHJh
bnNmb3JtYWJsZUNvbnRhaW5lcjo6dXBkYXRlRnJvbVN0eWxlKCkKICAgICAvLyAgICBzZXRIYXNT
VkdUcmFuc2Zvcm0oKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVy
OjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBG
bG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9w
ZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHVHJhbnNmb3JtYWJs
ZUNvbnRhaW5lcjo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9y
bSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94
LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9u
cykgY29uc3QKIHsKICAgICAvLyBGSVhNRTogW0xCU0VdIFVwc3RyZWFtIENTUy9TVkcgdHJhbnNm
b3JtIHN1cHBvcnQKLSAgICBSZW5kZXJTVkdDb250YWluZXI6OmFwcGx5VHJhbnNmb3JtKHRyYW5z
Zm9ybSwgYm91bmRpbmdCb3gsIG9wdGlvbnMpOworICAgIHN0eWxlLmFwcGx5VHJhbnNmb3JtKHRy
YW5zZm9ybSwgYm91bmRpbmdCb3gsIG9wdGlvbnMpOwogfQogCiB2b2lkIFJlbmRlclNWR1RyYW5z
Zm9ybWFibGVDb250YWluZXI6OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwg
Y29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuaApp
bmRleCAxM2JkYTBiMGZiNjQ5ZDdmYzYwYTE2Njc0YmFjN2MyZWQxYTc3ZmFlLi42NGZhOWUxNjRh
YjYxZWE3N2FiMjA1NmQ2YjhlMDUxZGExZmFlNzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWlu
ZXIuaApAQCAtNDUsOCArNDUsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgbGF5b3V0Q2hpbGRyZW4o
KSBmaW5hbDsKICAgICB2b2lkIGNhbGN1bGF0ZVZpZXdwb3J0KCkgZmluYWw7CiAgICAgRmxvYXRQ
b2ludCBhZGRpdGlvbmFsQ29udGFpbmVyVHJhbnNsYXRpb24oKSBjb25zdDsKLSAgICB2b2lkIGFw
cGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgRmxvYXRSZWN0JiBib3Vu
ZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+
ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9wZXJhdGlvbnMpIGNvbnN0IGZpbmFsOworICAg
IHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBSZW5kZXJT
dHlsZSYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHls
ZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1P
cGVyYXRpb25zKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHN0eWxlV2lsbENoYW5nZShTdHlsZURp
ZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXdTdHlsZSkgZmluYWw7CisKICAgICB2b2lk
IHVwZGF0ZUZyb21TdHlsZSgpIGZpbmFsOwogCiAgICAgQWZmaW5lVHJhbnNmb3JtIG1fc3VwcGxl
bWVudGFsTG9jYWxUb1BhcmVudFRyYW5zZm9ybTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456617</attachid>
            <date>2022-04-04 13:34:46 -0700</date>
            <delta_ts>2022-04-05 14:58:40 -0700</delta_ts>
            <desc>Patch, v8</desc>
            <filename>bug-237701-20220404133444.patch</filename>
            <type>text/plain</type>
            <size>19923</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGE1MmI3OTFkZGI2NDk1
ODdlNTY4ODI4ODgzNTA4Yzc3MzRkYjAyMC4uMjhlYWE0ZDZiNDRmYThhZjRkNTMwNTgyN2NkNmZj
YjMwOTA0NGFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIyLTA0LTA0ICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIFVuaWZ5
IHJlZmVyZW5jZSBib3ggLyBDVE0gY29tcHV0YXRpb24gaW4gUmVuZGVyTGF5ZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzcwMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dHJhY3QgdGhlIGNvZGUg
aW4gUmVuZGVyTGF5ZXIgdGhhdCBjb21wdXRlcyB0aGUgcmVmZXJlbmNlIGJveCwgb2J0YWlucyB0
aGUgQ1RNLAorICAgICAgICBhcHBsaWVzIHBpeGVsIHNuYXBwaW5nLCBldGMuIGludG8gYSBzaGFy
ZWQgdXBkYXRlVHJhbnNmb3JtRnJvbVN0eWxlKCkgaGVscGVyIGZ1bmN0aW9uLgorICAgICAgICBV
c2UgdGhhdCBoZWxwZXIgdG8gZGUtZHVwbGljYXRlIGNvZGUgYmV0d2VlbiB1cGRhdGVUcmFuc2Zv
cm0oKSAvIGN1cnJlbnRUcmFuc2Zvcm0oKQorICAgICAgICAoYW5kIFJlbmRlckxheWVyQmFja2lu
Zzo6dXBkYXRlVHJhbnNmb3JtKCkgaW4gZm9sbG93LXVwIHBhdGNoZXMpLgorCisgICAgICAgIGN1
cnJlbnRUcmFuc2Zvcm0oKSBuZWVkcyB0byBjb21wdXRlIHRoZSBDVE0sIGJhc2VkIG9uIGEgbm9u
LWRlZmF1bHQgUmVuZGVyU3R5bGUgKCE9IHJlbmRlcmVyKCkuc3R5bGUoKSksCisgICAgICAgIG5h
bWVseSB0aGUgYW5pbm1hdGVkU3R5bGUoKSwgaWYgYW4gYWNjZWxlcmF0ZWQgdHJhbnNmb3JtIGFu
aW1hdGlvbiBpcyBydW5uaW5nLiBUaGVyZWZvcmUgZXh0ZW5kCisgICAgICAgIFJlbmRlckxheWVy
TW9kZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtKCkgdG8gdGFrZSBhbiBhZGRpdGlvbmFsIFJlbmRl
clN0eWxlIHBhcmFtZXRlciwKKyAgICAgICAgdGhhdCBpcyB1c2VkIHRvIGFjY2VzcyB0aGUgQ1NT
IHRyYW5zZm9ybSBvcGVyYXRpb25zLCBpbnN0ZWFkIG9mIGFsd2F5cyBxdWVyeWluZyByZW5kZXJl
cigpLnN0eWxlKCkuCisgICAgICAgIFJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0oKSBjb250
aW51ZXMgdG8gcGFzcyAncmVuZGVyZXIoKS5zdHlsZSgpJyB0byB1cGRhdGVUcmFuc2Zvcm1Gcm9t
U3R5bGUoKSwKKyAgICAgICAgd2hlcmVhcyBSZW5kZXJMYXllcjo6Y3VycmVudFRyYW5zZm9ybSgp
IHBhc3NlcyB0aGUgZWxlbWVudHMgYW5pbWF0ZWRTdHlsZSgpLgorCisgICAgICAgIENvdmVyZWQg
YnkgZXhpc3RpbmcgdGVzdHMsIG5vIGNoYW5nZSBpbiBiZWhhdmlvdXIuCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6YXBw
bHlUcmFuc2Zvcm0gY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtIGNvbnN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0
ZVRyYW5zZm9ybUZyb21TdHlsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6dXBkYXRlVHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjdXJy
ZW50VHJhbnNmb3JtIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlVHJhbnNmb3JtKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
TW9kZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6
OmFwcGx5VHJhbnNmb3JtIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jvb3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1NoYXBlOjphcHBseVRyYW5zZm9ybSBj
b25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjphcHBseVRy
YW5zZm9ybSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyLmg6CisKIDIwMjItMDQtMDQgIE5pa29sYXMgWmltbWVybWFubiAgPG56
aW1tZXJtYW5uQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5pZnkgJ3RyYW5zZm9ybS1ib3gnIHJl
ZmVyZW5jZSBib3ggY29tcHV0YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5j
cHAKaW5kZXggZmMyZTZhZDk2OTM2NzY4OWE4YTg1MDI2ODRjMTE1ZjlkZjliMTk0My4uYjBkYzEy
Nzc3N2IwYjNlYmFlNGQwYmUyMTRhMzA1NDI4OWNjYThhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAKQEAgLTY3NCw5ICs2NzQsOSBAQCB2b2lkIFJlbmRlckJveDo6dXBk
YXRlTGF5ZXJUcmFuc2Zvcm0oKQogICAgICAgICBsYXllcigpLT51cGRhdGVUcmFuc2Zvcm0oKTsK
IH0KIAotdm9pZCBSZW5kZXJCb3g6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4
JiB0LCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6
OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKK3ZvaWQgUmVuZGVyQm94
OjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdCwgY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVy
U3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKIHsKLSAgICBz
dHlsZSgpLmFwcGx5VHJhbnNmb3JtKHQsIGJvdW5kaW5nQm94LCBvcHRpb25zKTsKKyAgICBzdHls
ZS5hcHBseVRyYW5zZm9ybSh0LCBib3VuZGluZ0JveCwgb3B0aW9ucyk7CiB9CiAKIExheW91dFVu
aXQgUmVuZGVyQm94Ojpjb25zdHJhaW5Mb2dpY2FsV2lkdGhJbkZyYWdtZW50QnlNaW5NYXgoTGF5
b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgsIFJlbmRlckJs
b2NrJiBjYiwgUmVuZGVyRnJhZ21lbnRDb250YWluZXIqIGZyYWdtZW50LCBBbGxvd0ludHJpbnNp
YyBhbGxvd0ludHJpbnNpYykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApp
bmRleCAyOGExZGZlNTVjNzA1M2I2NzljOTEwNzUxMjVkODE5ZWY1MTFlMDRmLi5jZGEzYzZmYzIx
MGJhZGQwZmY1NDYyMTIxMmUyMzRkOWVmOTBmNmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5oCkBAIC0yMTksNyArMjE5LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkT3ZlcmZs
b3dGcm9tQ2hpbGQoY29uc3QgUmVuZGVyQm94KiBjaGlsZCwgY29uc3QgTGF5b3V0U2l6ZSYgZGVs
dGEpOwogCiAgICAgdm9pZCB1cGRhdGVMYXllclRyYW5zZm9ybSgpOwotICAgIHZvaWQgYXBwbHlU
cmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5n
Qm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gPSBS
ZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucykgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IFJlbmRlclN0
eWxlJiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxl
OjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9w
ZXJhdGlvbnMpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgTGF5b3V0U2l6ZSBjb250ZW50U2l6ZSgp
IGNvbnN0IHsgcmV0dXJuIHsgY29udGVudFdpZHRoKCksIGNvbnRlbnRIZWlnaHQoKSB9OyB9CiAg
ICAgTGF5b3V0VW5pdCBjb250ZW50V2lkdGgoKSBjb25zdCB7IHJldHVybiBzdGQ6Om1heCgwX2x1
LCBwYWRkaW5nQm94V2lkdGgoKSAtIHBhZGRpbmdMZWZ0KCkgLSBwYWRkaW5nUmlnaHQoKSk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3Bw
CmluZGV4IDI0YzgyYzlkNmJkNDNmNzRiYTA1YWI1YWM3Njc5M2Q3NWQxNWU1NzcuLjQ1YmRjYmJi
NjI5ZWFiYTc1YzRkYWViZmFkMTUxNDA1Yjg0MzM1ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtMjcwNiw3ICsyNzA2LDcg
QEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29sbGVjdEFic29sdXRlUXVhZHNGb3JDb250
aW51YXRpb24oVmVjdG9yPEZsb2F0UXVhZD4KICAgICB9CiB9CiAKLXZvaWQgUmVuZGVyQm94TW9k
ZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgRmxv
YXRSZWN0JiwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+
KSBjb25zdAordm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNm
b3JtYXRpb25NYXRyaXgmLCBjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZsb2F0UmVjdCYsIE9w
dGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPikgY29uc3QKIHsK
ICAgICAvLyBhcHBseVRyYW5zZm9ybSgpIGlzIG9ubHkgdXNlZCB0aHJvdWdoIFJlbmRlckxheWVy
Kiwgd2hpY2ggb25seSBpbnZva2VzIHRoaXMgZm9yIFJlbmRlckJveCBkZXJpdmVkIHJlbmRlcmVy
cywgdGh1cyBub3QgZm9yCiAgICAgLy8gUmVuZGVySW5saW5lL1JlbmRlckxpbmVCcmVhayAtIHRo
ZSBvdGhlciB0d28gcmVuZGVyZXJzIHRoYXQgaW5oZXJpdCBmcm9tIFJlbmRlckJveE1vZGVsT2Jq
ZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVs
T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
aAppbmRleCA5N2I5NjVhMzBmZGQ3NjYzMThiYjNkOGE1YzA5YzM0YzVhODNiZWRmLi4wYzVjYTY2
Y2FkYWQ5ZGU0NzBiZGNhZjAzYzZiMWZhZTM3MGVlYjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaApAQCAtMjU0LDcgKzI1NCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFzT3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRl
bnRXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGhhc092
ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KIAotICAgIHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBj
b25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5z
Zm9ybU9wZXJhdGlvbk9wdGlvbj4gPSBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9u
cykgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0Jv
eCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+ID0gUmVu
ZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9wZXJhdGlvbnMpIGNvbnN0IG92ZXJyaWRlOwogCiBwcm90
ZWN0ZWQ6CiAgICAgUmVuZGVyQm94TW9kZWxPYmplY3QoRWxlbWVudCYsIFJlbmRlclN0eWxlJiYs
IEJhc2VUeXBlRmxhZ3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAK
aW5kZXggOGY1NzdkNWI2YTIwMzIwMmVlZjUwY2I4YzQzMjc0OWVkMDc1YjE4OS4uZGNlMzI2MzRi
NmY5NTY0YjMwNzk1ZTQyOTdjNzRjODQxMTc1Y2QxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0xMzI3LDYgKzEzMjcsMTIgQEAgRmxvYXRSZWN0IFJlbmRl
ckxheWVyOjp0cmFuc2Zvcm1SZWZlcmVuY2VCb3hSZWN0Rm9yUGFpbnRpbmcoY29uc3QgUmVuZGVy
U3R5bGUmIHMKICAgICByZXR1cm4geyB9OwogfQogCit2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVU
cmFuc2Zvcm1Gcm9tU3R5bGUoVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3Qg
UmVuZGVyU3R5bGUmIHN0eWxlLCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJh
dGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKK3sKKyAgICByZW5kZXJlcigpLmFwcGx5VHJhbnNm
b3JtKCptX3RyYW5zZm9ybSwgc3R5bGUsIHRyYW5zZm9ybVJlZmVyZW5jZUJveFJlY3RGb3JQYWlu
dGluZyhzdHlsZSksIG9wdGlvbnMpOworICAgIG1ha2VNYXRyaXhSZW5kZXJhYmxlKHRyYW5zZm9y
bSwgY2FuUmVuZGVyM0RUcmFuc2Zvcm1zKCkpOworfQorCiB2b2lkIFJlbmRlckxheWVyOjp1cGRh
dGVUcmFuc2Zvcm0oKQogewogICAgIGJvb2wgaGFzVHJhbnNmb3JtID0gcmVuZGVyZXIoKS5oYXNU
cmFuc2Zvcm0oKTsKQEAgLTEzNDUsOCArMTM1MSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0
ZVRyYW5zZm9ybSgpCiAgICAgCiAgICAgaWYgKGhhc1RyYW5zZm9ybSkgewogICAgICAgICBtX3Ry
YW5zZm9ybS0+bWFrZUlkZW50aXR5KCk7Ci0gICAgICAgIHJlbmRlcmVyKCkuYXBwbHlUcmFuc2Zv
cm0oKm1fdHJhbnNmb3JtLCB0cmFuc2Zvcm1SZWZlcmVuY2VCb3hSZWN0Rm9yUGFpbnRpbmcocmVu
ZGVyZXIoKS5zdHlsZSgpKSk7Ci0gICAgICAgIG1ha2VNYXRyaXhSZW5kZXJhYmxlKCptX3RyYW5z
Zm9ybSwgY2FuUmVuZGVyM0RUcmFuc2Zvcm1zKCkpOworICAgICAgICB1cGRhdGVUcmFuc2Zvcm1G
cm9tU3R5bGUoKm1fdHJhbnNmb3JtLCByZW5kZXJlcigpLnN0eWxlKCksIFJlbmRlclN0eWxlOjph
bGxUcmFuc2Zvcm1PcGVyYXRpb25zKTsKICAgICB9CiAKICAgICBpZiAoaGFkM0RUcmFuc2Zvcm0g
IT0gaGFzM0RUcmFuc2Zvcm0oKSkgewpAQCAtMTM3Niw5ICsxMzgxLDcgQEAgVHJhbnNmb3JtYXRp
b25NYXRyaXggUmVuZGVyTGF5ZXI6OmN1cnJlbnRUcmFuc2Zvcm0oT3B0aW9uU2V0PFJlbmRlclN0
eWxlOjpUcmFuc2YKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBhbmltYXRl
ZFN0eWxlID0gcmVuZGVyQm94LmFuaW1hdGVkU3R5bGUoKTsKIAogICAgICAgICBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCB0cmFuc2Zvcm07Ci0gICAgICAgIGFuaW1hdGVkU3R5bGUtPmFwcGx5VHJhbnNm
b3JtKHRyYW5zZm9ybSwgdHJhbnNmb3JtUmVmZXJlbmNlQm94UmVjdEZvclBhaW50aW5nKCphbmlt
YXRlZFN0eWxlKSwgb3B0aW9ucyk7Ci0KLSAgICAgICAgbWFrZU1hdHJpeFJlbmRlcmFibGUodHJh
bnNmb3JtLCBjYW5SZW5kZXIzRFRyYW5zZm9ybXMoKSk7CisgICAgICAgIHVwZGF0ZVRyYW5zZm9y
bUZyb21TdHlsZSh0cmFuc2Zvcm0sICphbmltYXRlZFN0eWxlLCBvcHRpb25zKTsKICAgICAgICAg
cmV0dXJuIHRyYW5zZm9ybTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmgKaW5kZXggYjgyN2RiNGQ0OTdiMTM5ZmVjY2M4ZWZjMmM2NmRhMDllNDRmMDg2Mi4uNjdi
NjgzZDU1OTkxMDQ2MDY4MzQxYjU4NTg5MWQxMzBjMTFjYTc3NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTczMyw5ICs3MzMsMTEgQEAgcHVibGljOgogICAgIGJv
b2wgaGFzVHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gcmVuZGVyZXIoKS5oYXNUcmFuc2Zvcm0o
KTsgfQogICAgIC8vIE5vdGUgdGhhdCB0aGlzIHRyYW5zZm9ybSBoYXMgdGhlIHRyYW5zZm9ybS1v
cmlnaW4gYmFrZWQgaW4uCiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgqIHRyYW5zZm9ybSgpIGNv
bnN0IHsgcmV0dXJuIG1fdHJhbnNmb3JtLmdldCgpOyB9CisgICAgLy8gdXBkYXRlVHJhbnNmb3Jt
RnJvbVN0eWxlIGNvbXB1dGVzIGEgdHJhbnNmb3JtIGFjY29yZGluZyB0byB0aGUgcGFzc2VkIG9w
dGlvbnMgKGUuZy4gdHJhbnNmb3JtLW9yaWdpbiBiYWtlZCBpbiBvciBleGNsdWRlZCkgYW5kIHRo
ZSBnaXZlbiBzdHlsZS4KKyAgICB2b2lkIHVwZGF0ZVRyYW5zZm9ybUZyb21TdHlsZShUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgT3B0aW9uU2V0PFJlbmRlclN0eWxl
OjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+KSBjb25zdDsKICAgICAvLyBjdXJyZW50VHJhbnNm
b3JtIGNvbXB1dGVzIGEgdHJhbnNmb3JtIHdoaWNoIHRha2VzIGFjY2VsZXJhdGVkIGFuaW1hdGlv
bnMgaW50byBhY2NvdW50LiBUaGUKLSAgICAvLyByZXN1bHRpbmcgdHJhbnNmb3JtIGhhcyB0cmFu
c2Zvcm0tb3JpZ2luIGJha2VkIGluLiBJZiB0aGUgbGF5ZXIgZG9lcyBub3QgaGF2ZSBhIHRyYW5z
Zm9ybSwKLSAgICAvLyByZXR1cm5zIHRoZSBpZGVudGl0eSBtYXRyaXguCisgICAgLy8gcmVzdWx0
aW5nIHRyYW5zZm9ybSBoYXMgdHJhbnNmb3JtLW9yaWdpbiBiYWtlZCBpbiwgdW5sZXNzIG5vbi1k
ZWZhdWx0IG9wdGlvbnMgYXJlIGdpdmVuLiBJZgorICAgIC8vIHRoZSBsYXllciBkb2VzIG5vdCBo
YXZlIGEgdHJhbnNmb3JtLCB0aGUgaWRlbnRpdHkgbWF0cml4IGlzIHJldHVybmVkLgogICAgIFRy
YW5zZm9ybWF0aW9uTWF0cml4IGN1cnJlbnRUcmFuc2Zvcm0oT3B0aW9uU2V0PFJlbmRlclN0eWxl
OjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9w
ZXJhdGlvbnMpIGNvbnN0OwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHJlbmRlcmFibGVUcmFu
c2Zvcm0oT3B0aW9uU2V0PFBhaW50QmVoYXZpb3I+KSBjb25zdDsKICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggZmJkOGJkZjhh
MTYzOGY4NWE0YjYwZTQ3NDY0MjhjNTdhZjVmNmRlMS4uY2U3ZWY0MmM3NzgzMDg3YzY4MjE4YmE5
YWY3MDIzMDUyNDdhZjdkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5jcHAKQEAgLTY0Myw3ICs2NDMsOCBAQCB2b2lkIFJlbmRlckxheWVyQmFj
a2luZzo6dXBkYXRlVHJhbnNmb3JtKGNvbnN0IFJlbmRlclN0eWxlJikKICAgICAvLyBiYWtlZCBp
bnRvIGl0LCBhbmQgd2UgZG9uJ3Qgd2FudCB0aGF0LgogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4
IHQ7CiAgICAgaWYgKG1fb3duaW5nTGF5ZXIuaGFzVHJhbnNmb3JtKCkpIHsKLSAgICAgICAgcmVu
ZGVyZXIoKS5hcHBseVRyYW5zZm9ybSh0LCBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKG1fb3duaW5n
TGF5ZXIucmVuZGVyZXJCb3JkZXJCb3hSZWN0KCksIGRldmljZVNjYWxlRmFjdG9yKCkpLCBSZW5k
ZXJTdHlsZTo6aW5kaXZpZHVhbFRyYW5zZm9ybU9wZXJhdGlvbnMpOworICAgICAgICAvLyBGSVhN
RTogVGhpcyB1c2VzIHRoZSB3cm9uZywgdHJhbnNmb3JtLWJveCB1bmF3YXJlLCBnZW9tZXRyeS4K
KyAgICAgICAgcmVuZGVyZXIoKS5hcHBseVRyYW5zZm9ybSh0LCByZW5kZXJlcigpLnN0eWxlKCks
IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMobV9vd25pbmdMYXllci5yZW5kZXJlckJvcmRlckJveFJl
Y3QoKSwgZGV2aWNlU2NhbGVGYWN0b3IoKSksIFJlbmRlclN0eWxlOjppbmRpdmlkdWFsVHJhbnNm
b3JtT3BlcmF0aW9ucyk7CiAgICAgICAgIG1ha2VNYXRyaXhSZW5kZXJhYmxlKHQsIGNvbXBvc2l0
b3IoKS5jYW5SZW5kZXIzRFRyYW5zZm9ybXMoKSk7CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgKaW5kZXggYzM1NGYz
NzdmMjhlMWMyMjI2YTlhMWUyYzU0NmMzNjE4MjYxNzNiZi4uZDQ0ZmY2YWQ1MmQzYTU5ZjUxZDFj
MGZlYWY2Y2U3OTVhNWUwZWRlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyTW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oCkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIG1hcExvY2FsVG9TVkdDb250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
YW5jZXN0b3JDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgT3B0aW9uU2V0PE1hcENvb3JkaW5h
dGVzTW9kZT4sIGJvb2wqIHdhc0ZpeGVkKSBjb25zdDsKICNlbmRpZgogCi0gICAgdmlydHVhbCB2
b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgRmxvYXRSZWN0
JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25P
cHRpb24+ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9wZXJhdGlvbnMpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBj
b25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNl
dDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjph
bGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBjb25zdCA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KEVsZW1lbnQmLCBSZW5kZXJTdHlsZSYmLCBCYXNlVHlwZUZsYWdz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9k
ZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2Rl
bE9iamVjdC5jcHAKaW5kZXggZWNjM2YwZGRhNmY0NGE1MWM1NmQyNmE3YTI3OTZmZjZiNzAzZDA4
YS4uYjE5Mjk0YjY3NThjOWQxN2I2Yzg1MDliMjFhZDE3MTRjMTg5MzRmOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAK
QEAgLTI3NiwxNSArMjc2LDYgQEAgYm9vbCBSZW5kZXJTVkdNb2RlbE9iamVjdDo6Y2hlY2tFbmNs
b3N1cmUoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIGNvbnN0IEZsb2F0UmUKICAgICByZXR1cm4g
cmVjdC5jb250YWlucyhjdG0ubWFwUmVjdChyZW5kZXJlci0+cmVwYWludFJlY3RJbkxvY2FsQ29v
cmRpbmF0ZXMoKSkpOwogfQogCi12b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0OjphcHBseVRyYW5z
Zm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFJlY3QmIGJv
dW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlv
bj4gb3B0aW9ucykgY29uc3QKLXsKLSAgICBVTlVTRURfUEFSQU0odHJhbnNmb3JtKTsKLSAgICBV
TlVTRURfUEFSQU0oYm91bmRpbmdCb3gpOwotICAgIFVOVVNFRF9QQVJBTShvcHRpb25zKTsKLSAg
ICAvLyBGSVhNRTogW0xCU0VdIFVwc3RyZWFtIFNWR1JlbmRlclN1cHBvcnQgY2hhbmdlcwotICAg
IC8vIFNWR1JlbmRlclN1cHBvcnQ6OmFwcGx5VHJhbnNmb3JtKCp0aGlzLCB0cmFuc2Zvcm0sIHN0
eWxlLCBib3VuZGluZ0JveCwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQsIG9wdGlvbnMpOwot
fQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTEFZRVJfQkFT
RURfU1ZHX0VOR0lORSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHTW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHTW9kZWxPYmplY3QuaAppbmRleCA5M2ZjOWZhZTJkZWU2MmFkYjZkZDU0NWM5YTkzY2Iz
ODI2NWZiZTQ4Li5iYzExMjQ1MDQzYzlkMWU1NGViMGNjNGNjMmMxNDhjOWE5YjIzOGMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVj
dC5oCkBAIC01OCw4ICs1OCw2IEBAIHB1YmxpYzoKIAogICAgIGlubGluZSBTVkdFbGVtZW50JiBl
bGVtZW50KCkgY29uc3Q7CiAKLSAgICB2b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9u
TWF0cml4JiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0
eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9y
bU9wZXJhdGlvbnMpIGNvbnN0IG92ZXJyaWRlOwotCiAgICAgLy8gTWltaWMgdGhlIFJlbmRlckJv
eCBhY2Nlc3NvcnMgLSBieSBzaGFyaW5nIHRoZSBzYW1lIHRlcm1pbm9sb2d5IHRoZSBwYWludGlu
ZyAvIGhpdCB0ZXN0aW5nIC8gbGF5b3V0IGxvZ2ljIGlzCiAgICAgLy8gc2ltaWxhciB0byByZWFk
IGNvbXBhcmVkIHRvIG5vbi1TVkcgcmVuZGVyZXJzIHN1Y2ggYXMgUmVuZGVyQm94ICYgZnJpZW5k
cy4KICAgICBMYXlvdXRSZWN0IGJvcmRlckJveFJlY3RFcXVpdmFsZW50KCkgY29uc3QgeyByZXR1
cm4geyBMYXlvdXRQb2ludCgpLCBtX2xheW91dFJlY3Quc2l6ZSgpIH07IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCmluZGV4IGQ0MDkxODY1MzY2
MTIzZTFlZmY5Yjc3MWQ4ODUwZjg0N2E1YTdmYmEuLjcxNmVhODMwNjg0NTkzM2NiOGYwNDdhZThh
OGQ5ZDI4NTAxYzhkNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUm9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSb290LmNwcApAQCAtNjA2LDE0ICs2MDYsNiBAQCBMYXlvdXRSZWN0IFJlbmRlclNWR1Jv
b3Q6Om92ZXJmbG93Q2xpcFJlY3QoY29uc3QgTGF5b3V0UG9pbnQmIGxvY2F0aW9uLCBSZW5kZXJG
cgogICAgIHJldHVybiBjbGlwUmVjdDsKIH0KIAotdm9pZCBSZW5kZXJTVkdSb290OjphcHBseVRy
YW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFJlY3Qm
IGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9w
dGlvbj4gb3B0aW9ucykgY29uc3QKLXsKLSAgICBSZW5kZXJSZXBsYWNlZDo6YXBwbHlUcmFuc2Zv
cm0odHJhbnNmb3JtLCBib3VuZGluZ0JveCwgb3B0aW9ucyk7Ci0KLSAgICAvLyBGSVhNRTogW0xC
U0VdIFVwc3RyZWFtIFNWR1JlbmRlclN1cHBvcnQgY2hhbmdlcwotICAgIC8vIFNWR1JlbmRlclN1
cHBvcnQ6OmFwcGx5VHJhbnNmb3JtKCp0aGlzLCB0cmFuc2Zvcm0sIHN0eWxlLCBib3VuZGluZ0Jv
eCwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQsIG9wdGlvbnMpOwotfQotCiB2b2lkIFJlbmRl
clNWR1Jvb3Q6OmFic29sdXRlUmVjdHMoVmVjdG9yPEludFJlY3Q+JiByZWN0cywgY29uc3QgTGF5
b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdAogewogICAgIGF1dG8gbG9jYWxSZWN0
ID0gTGF5b3V0UmVjdCh2YWx1ZU9yRGVmYXVsdChtX3N1cHBsZW1lbnRhbExvY2FsVG9QYXJlbnRU
cmFuc2Zvcm0uaW52ZXJzZSgpKS5tYXBSZWN0KGJvcmRlckJveFJlY3QoKSkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaAppbmRleCAyNGMzMGJjYTdiNjVi
ZTUwNGRhOWVkOGQ2ZWJmNzU5ZGYxYWM1N2VmLi5lN2Y3MTU1MzI2N2ViMjM5ODAwNThkMTdlZDA4
ZGM4MjAxODAwMDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jvb3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jvb3QuaApAQCAtNjYsOCArNjYsNiBAQCBwdWJsaWM6CiAKICAgICBib29sIHNob3VsZEFwcGx5
Vmlld3BvcnRDbGlwKCkgY29uc3Q7CiAKLSAgICB2b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9y
bWF0aW9uTWF0cml4JiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJl
bmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+ID0gUmVuZGVyU3R5bGU6OmFsbFRy
YW5zZm9ybU9wZXJhdGlvbnMpIGNvbnN0IGZpbmFsOwotCiAgICAgRmxvYXRSZWN0IG9iamVjdEJv
dW5kaW5nQm94KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9vYmplY3RCb3VuZGluZ0JveDsgfQog
ICAgIEZsb2F0UmVjdCBzdHJva2VCb3VuZGluZ0JveCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
c3Ryb2tlQm91bmRpbmdCb3g7IH0KICAgICBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2FsQ29v
cmRpbmF0ZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdCb3VuZGluZ0JveENvbXB1dGF0aW9u
Ojpjb21wdXRlUmVwYWludEJvdW5kaW5nQm94KCp0aGlzKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcAppbmRleCAzMjkzYTZjOWZjM2FjNWYx
Yjk5OTg2MjhiY2NkOTY1NDI5MzI4OGQ5Li4zMjU1NzI0MTkwYjcyMGFmZDM2Njg1NTg2MjAxNjBm
MGYzODEwMTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1NoYXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1NoYXBlLmNwcApAQCAtNTM0LDYgKzUzNCwxMiBAQCB2b2lkIFJlbmRlclNWR1NoYXBlOjpzdHls
ZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlJiBuZQog
ICAgIFJlbmRlclNWR01vZGVsT2JqZWN0OjpzdHlsZVdpbGxDaGFuZ2UoZGlmZiwgbmV3U3R5bGUp
OwogfQogCit2b2lkIFJlbmRlclNWR1NoYXBlOjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEZsb2F0
UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0
aW9uT3B0aW9uPiBvcHRpb25zKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBbTEJTRV0gVXBzdHJl
YW0gQ1NTL1NWRyB0cmFuc2Zvcm0gc3VwcG9ydAorICAgIHN0eWxlLmFwcGx5VHJhbnNmb3JtKHRy
YW5zZm9ybSwgYm91bmRpbmdCb3gsIG9wdGlvbnMpOworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFC
TEUoTEFZRVJfQkFTRURfU1ZHX0VOR0lORSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHU2hhcGUuaAppbmRleCBkMmEzMzZjZmE4YWZiNTBiYzEwODUxMGUxNGViMzdi
YzAxYmVlNjBkLi4xOWM2M2NhZjI5MTQxYmY5YjgwZWU0MDQwZTk5ZGM1NDY0NWQyODE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oCkBAIC04Miw2
ICs4Miw4IEBAIHB1YmxpYzoKIAogICAgIEZsb2F0UmVjdCBjb21wdXRlTWFya2VyQm91bmRpbmdC
b3goY29uc3QgU1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbjo6RGVjb3JhdGlvbk9wdGlvbnMmKSBj
b25zdDsKIAorICAgIHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBj
b25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNl
dDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjph
bGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBjb25zdCBvdmVycmlkZTsKKwogcHJvdGVjdGVkOgogICAg
IHZvaWQgZWxlbWVudCgpIGNvbnN0ID0gZGVsZXRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFp
bmVyLmNwcAppbmRleCBmYjM1YmY5MWZhMzU2NGE4N2U0ZTg2ZDBmZGRhMzIxZjA3NTFhN2Q0Li45
MDMxMjJiZTk3Yzc1MWEzZDUyYTk0ZTc3ZjhjYTc1ZjYxNDRjMTk1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3Jt
YWJsZUNvbnRhaW5lci5jcHAKQEAgLTEwMiwxMCArMTAyLDEwIEBAIHZvaWQgUmVuZGVyU1ZHVHJh
bnNmb3JtYWJsZUNvbnRhaW5lcjo6dXBkYXRlRnJvbVN0eWxlKCkKICAgICAvLyAgICBzZXRIYXNT
VkdUcmFuc2Zvcm0oKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVy
OjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBG
bG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9w
ZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHVHJhbnNmb3JtYWJs
ZUNvbnRhaW5lcjo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9y
bSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94
LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9u
cykgY29uc3QKIHsKICAgICAvLyBGSVhNRTogW0xCU0VdIFVwc3RyZWFtIENTUy9TVkcgdHJhbnNm
b3JtIHN1cHBvcnQKLSAgICBSZW5kZXJTVkdDb250YWluZXI6OmFwcGx5VHJhbnNmb3JtKHRyYW5z
Zm9ybSwgYm91bmRpbmdCb3gsIG9wdGlvbnMpOworICAgIHN0eWxlLmFwcGx5VHJhbnNmb3JtKHRy
YW5zZm9ybSwgYm91bmRpbmdCb3gsIG9wdGlvbnMpOwogfQogCiB2b2lkIFJlbmRlclNWR1RyYW5z
Zm9ybWFibGVDb250YWluZXI6OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwg
Y29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuaApp
bmRleCAxM2JkYTBiMGZiNjQ5ZDdmYzYwYTE2Njc0YmFjN2MyZWQxYTc3ZmFlLi42NGZhOWUxNjRh
YjYxZWE3N2FiMjA1NmQ2YjhlMDUxZGExZmFlNzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWlu
ZXIuaApAQCAtNDUsOCArNDUsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgbGF5b3V0Q2hpbGRyZW4o
KSBmaW5hbDsKICAgICB2b2lkIGNhbGN1bGF0ZVZpZXdwb3J0KCkgZmluYWw7CiAgICAgRmxvYXRQ
b2ludCBhZGRpdGlvbmFsQ29udGFpbmVyVHJhbnNsYXRpb24oKSBjb25zdDsKLSAgICB2b2lkIGFw
cGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgRmxvYXRSZWN0JiBib3Vu
ZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+
ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9wZXJhdGlvbnMpIGNvbnN0IGZpbmFsOworICAg
IHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBSZW5kZXJT
dHlsZSYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHls
ZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1P
cGVyYXRpb25zKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHN0eWxlV2lsbENoYW5nZShTdHlsZURp
ZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXdTdHlsZSkgZmluYWw7CisKICAgICB2b2lk
IHVwZGF0ZUZyb21TdHlsZSgpIGZpbmFsOwogCiAgICAgQWZmaW5lVHJhbnNmb3JtIG1fc3VwcGxl
bWVudGFsTG9jYWxUb1BhcmVudFRyYW5zZm9ybTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456752</attachid>
            <date>2022-04-05 14:58:45 -0700</date>
            <delta_ts>2022-04-07 03:24:00 -0700</delta_ts>
            <desc>Patch, v9</desc>
            <filename>bug-237701-20220405145843.patch</filename>
            <type>text/plain</type>
            <size>20433</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdlMGE2NTJmMzAwYzYy
MzZlNDJkYjJjMjljMDkwYjI2YTVhNDU3OS4uMDlkMTY0NzhjMjA4YmU1YjYwODk0YmRhYWNiYWNi
NmY4NTA0MDE4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIyLTA0LTA1ICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIFVuaWZ5
IHJlZmVyZW5jZSBib3ggLyBDVE0gY29tcHV0YXRpb24gaW4gUmVuZGVyTGF5ZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzcwMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dHJhY3QgdGhlIGNvZGUg
aW4gUmVuZGVyTGF5ZXIgdGhhdCBjb21wdXRlcyB0aGUgcmVmZXJlbmNlIGJveCwgb2J0YWlucyB0
aGUgQ1RNLAorICAgICAgICBhcHBsaWVzIHBpeGVsIHNuYXBwaW5nLCBldGMuIGludG8gYSBzaGFy
ZWQgdXBkYXRlVHJhbnNmb3JtRnJvbVN0eWxlKCkgaGVscGVyIGZ1bmN0aW9uLgorICAgICAgICBV
c2UgdGhhdCBoZWxwZXIgdG8gZGUtZHVwbGljYXRlIGNvZGUgYmV0d2VlbiB1cGRhdGVUcmFuc2Zv
cm0oKSAvIGN1cnJlbnRUcmFuc2Zvcm0oKQorICAgICAgICAoYW5kIFJlbmRlckxheWVyQmFja2lu
Zzo6dXBkYXRlVHJhbnNmb3JtKCkgaW4gZm9sbG93LXVwIHBhdGNoZXMpLgorCisgICAgICAgIGN1
cnJlbnRUcmFuc2Zvcm0oKSBuZWVkcyB0byBjb21wdXRlIHRoZSBDVE0sIGJhc2VkIG9uIGEgbm9u
LWRlZmF1bHQgUmVuZGVyU3R5bGUgKCE9IHJlbmRlcmVyKCkuc3R5bGUoKSksCisgICAgICAgIG5h
bWVseSB0aGUgYW5pbm1hdGVkU3R5bGUoKSwgaWYgYW4gYWNjZWxlcmF0ZWQgdHJhbnNmb3JtIGFu
aW1hdGlvbiBpcyBydW5uaW5nLiBUaGVyZWZvcmUgZXh0ZW5kCisgICAgICAgIFJlbmRlckxheWVy
TW9kZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtKCkgdG8gdGFrZSBhbiBhZGRpdGlvbmFsIFJlbmRl
clN0eWxlIHBhcmFtZXRlciwKKyAgICAgICAgdGhhdCBpcyB1c2VkIHRvIGFjY2VzcyB0aGUgQ1NT
IHRyYW5zZm9ybSBvcGVyYXRpb25zLCBpbnN0ZWFkIG9mIGFsd2F5cyBxdWVyeWluZyByZW5kZXJl
cigpLnN0eWxlKCkuCisgICAgICAgIFJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0oKSBjb250
aW51ZXMgdG8gcGFzcyAncmVuZGVyZXIoKS5zdHlsZSgpJyB0byB1cGRhdGVUcmFuc2Zvcm1Gcm9t
U3R5bGUoKSwKKyAgICAgICAgd2hlcmVhcyBSZW5kZXJMYXllcjo6Y3VycmVudFRyYW5zZm9ybSgp
IHBhc3NlcyB0aGUgZWxlbWVudHMgYW5pbWF0ZWRTdHlsZSgpLgorCisgICAgICAgIENvdmVyZWQg
YnkgZXhpc3RpbmcgdGVzdHMsIG5vIGNoYW5nZSBpbiBiZWhhdmlvdXIuCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6YXBw
bHlUcmFuc2Zvcm0gY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtIGNvbnN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0
ZVRyYW5zZm9ybUZyb21TdHlsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6dXBkYXRlVHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjdXJy
ZW50VHJhbnNmb3JtIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlVHJhbnNmb3JtKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
TW9kZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6
OmFwcGx5VHJhbnNmb3JtIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jvb3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1NoYXBlOjphcHBseVRyYW5zZm9ybSBj
b25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjphcHBseVRy
YW5zZm9ybSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyLmg6CisKIDIwMjItMDQtMDUgIE5pa29sYXMgWmltbWVybWFubiAgPG56
aW1tZXJtYW5uQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5pZnkgJ3RyYW5zZm9ybS1ib3gnIHJl
ZmVyZW5jZSBib3ggY29tcHV0YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5j
cHAKaW5kZXggZGYzZDM1MTMzNDgxMzYzMDQ1NjM2ODkyMzhjZjk4ZWFiOTFhMjFkOS4uNjA5ZWQ2
NmU1NTk1ZmRhMjdjOWVjMjFkYjZkZTRhZTk3ZmE3MjkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAKQEAgLTY3NCw5ICs2NzQsOSBAQCB2b2lkIFJlbmRlckJveDo6dXBk
YXRlTGF5ZXJUcmFuc2Zvcm0oKQogICAgICAgICBsYXllcigpLT51cGRhdGVUcmFuc2Zvcm0oKTsK
IH0KIAotdm9pZCBSZW5kZXJCb3g6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4
JiB0LCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6
OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKK3ZvaWQgUmVuZGVyQm94
OjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdCwgY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVy
U3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKIHsKLSAgICBz
dHlsZSgpLmFwcGx5VHJhbnNmb3JtKHQsIGJvdW5kaW5nQm94LCBvcHRpb25zKTsKKyAgICBzdHls
ZS5hcHBseVRyYW5zZm9ybSh0LCBib3VuZGluZ0JveCwgb3B0aW9ucyk7CiB9CiAKIExheW91dFVu
aXQgUmVuZGVyQm94Ojpjb25zdHJhaW5Mb2dpY2FsV2lkdGhJbkZyYWdtZW50QnlNaW5NYXgoTGF5
b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgsIFJlbmRlckJs
b2NrJiBjYiwgUmVuZGVyRnJhZ21lbnRDb250YWluZXIqIGZyYWdtZW50LCBBbGxvd0ludHJpbnNp
YyBhbGxvd0ludHJpbnNpYykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApp
bmRleCBjYWM2MTNmZDYxZTFiMDVlYjI3NDE1OWFiZmM5MjVlZWYzNTc3NDVkLi5lNDA3Y2JjZmM1
ZjQyOTE3YjU5OWVhMjU0ZjM0OTIwZGY1YzY3ZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5oCkBAIC0yMTksNyArMjE5LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkT3ZlcmZs
b3dGcm9tQ2hpbGQoY29uc3QgUmVuZGVyQm94KiBjaGlsZCwgY29uc3QgTGF5b3V0U2l6ZSYgZGVs
dGEpOwogCiAgICAgdm9pZCB1cGRhdGVMYXllclRyYW5zZm9ybSgpOwotICAgIHZvaWQgYXBwbHlU
cmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5n
Qm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gPSBS
ZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucykgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IFJlbmRlclN0
eWxlJiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxl
OjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9w
ZXJhdGlvbnMpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgTGF5b3V0U2l6ZSBjb250ZW50U2l6ZSgp
IGNvbnN0IHsgcmV0dXJuIHsgY29udGVudFdpZHRoKCksIGNvbnRlbnRIZWlnaHQoKSB9OyB9CiAg
ICAgTGF5b3V0VW5pdCBjb250ZW50V2lkdGgoKSBjb25zdCB7IHJldHVybiBzdGQ6Om1heCgwX2x1
LCBwYWRkaW5nQm94V2lkdGgoKSAtIHBhZGRpbmdMZWZ0KCkgLSBwYWRkaW5nUmlnaHQoKSk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3Bw
CmluZGV4IDI0YzgyYzlkNmJkNDNmNzRiYTA1YWI1YWM3Njc5M2Q3NWQxNWU1NzcuLjQ1YmRjYmJi
NjI5ZWFiYTc1YzRkYWViZmFkMTUxNDA1Yjg0MzM1ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtMjcwNiw3ICsyNzA2LDcg
QEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29sbGVjdEFic29sdXRlUXVhZHNGb3JDb250
aW51YXRpb24oVmVjdG9yPEZsb2F0UXVhZD4KICAgICB9CiB9CiAKLXZvaWQgUmVuZGVyQm94TW9k
ZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgRmxv
YXRSZWN0JiwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+
KSBjb25zdAordm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNm
b3JtYXRpb25NYXRyaXgmLCBjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZsb2F0UmVjdCYsIE9w
dGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPikgY29uc3QKIHsK
ICAgICAvLyBhcHBseVRyYW5zZm9ybSgpIGlzIG9ubHkgdXNlZCB0aHJvdWdoIFJlbmRlckxheWVy
Kiwgd2hpY2ggb25seSBpbnZva2VzIHRoaXMgZm9yIFJlbmRlckJveCBkZXJpdmVkIHJlbmRlcmVy
cywgdGh1cyBub3QgZm9yCiAgICAgLy8gUmVuZGVySW5saW5lL1JlbmRlckxpbmVCcmVhayAtIHRo
ZSBvdGhlciB0d28gcmVuZGVyZXJzIHRoYXQgaW5oZXJpdCBmcm9tIFJlbmRlckJveE1vZGVsT2Jq
ZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVs
T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
aAppbmRleCA5N2I5NjVhMzBmZGQ3NjYzMThiYjNkOGE1YzA5YzM0YzVhODNiZWRmLi4wYzVjYTY2
Y2FkYWQ5ZGU0NzBiZGNhZjAzYzZiMWZhZTM3MGVlYjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaApAQCAtMjU0LDcgKzI1NCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFzT3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRl
bnRXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGhhc092
ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KIAotICAgIHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBj
b25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5z
Zm9ybU9wZXJhdGlvbk9wdGlvbj4gPSBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9u
cykgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0Jv
eCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+ID0gUmVu
ZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9wZXJhdGlvbnMpIGNvbnN0IG92ZXJyaWRlOwogCiBwcm90
ZWN0ZWQ6CiAgICAgUmVuZGVyQm94TW9kZWxPYmplY3QoRWxlbWVudCYsIFJlbmRlclN0eWxlJiYs
IEJhc2VUeXBlRmxhZ3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAK
aW5kZXggMmZjNDExZDkxZmY3ZWVlZjU3YzFkOTcwYjdlY2E0NWEwYzk2MDExOC4uYjRhYTNhZDI2
MWNmZjhlNjk4MzkyOGVjMjlhMjZjOGM3ZDNmNzQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0xMzEwLDYgKzEzMTAsMTMgQEAgRmxvYXRSZWN0IFJlbmRl
ckxheWVyOjpyZWZlcmVuY2VCb3hSZWN0Rm9yQ2xpcHBpbmcoQ1NTQm94VHlwZSBib3hUeXBlLCBj
b25zdCBMYXkKICAgICByZXR1cm4gcmVmZXJlbmNlQm94UmVjdDsKIH0KIAordm9pZCBSZW5kZXJM
YXllcjo6dXBkYXRlVHJhbnNmb3JtRnJvbVN0eWxlKFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFu
c2Zvcm0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpU
cmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+IG9wdGlvbnMpIGNvbnN0Cit7CisgICAgYXV0byByZWZl
cmVuY2VCb3hSZWN0ID0gc25hcFJlY3RUb0RldmljZVBpeGVsc0lmTmVlZGVkKHJlbmRlcmVyKCku
dHJhbnNmb3JtUmVmZXJlbmNlQm94UmVjdChzdHlsZSkpOworICAgIHJlbmRlcmVyKCkuYXBwbHlU
cmFuc2Zvcm0odHJhbnNmb3JtLCBzdHlsZSwgcmVmZXJlbmNlQm94UmVjdCwgb3B0aW9ucyk7Cisg
ICAgbWFrZU1hdHJpeFJlbmRlcmFibGUodHJhbnNmb3JtLCBjYW5SZW5kZXIzRFRyYW5zZm9ybXMo
KSk7Cit9CisKIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZVRyYW5zZm9ybSgpCiB7CiAgICAgYm9v
bCBoYXNUcmFuc2Zvcm0gPSByZW5kZXJlcigpLmhhc1RyYW5zZm9ybSgpOwpAQCAtMTMzNSw5ICsx
MzQyLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlVHJhbnNmb3JtKCkKICAgICAgICAgICAg
IGJveFBhdGhPcGVyYXRpb24uc2V0UGF0aEZvclJlZmVyZW5jZVJlY3QoRmxvYXRSb3VuZGVkUmVj
dCB7IHBhdGhSZWZlcmVuY2VCb3hSZWN0IH0pOwogICAgICAgICB9CiAKLSAgICAgICAgYXV0byBy
ZWZlcmVuY2VCb3hSZWN0ID0gc25hcFJlY3RUb0RldmljZVBpeGVsc0lmTmVlZGVkKHJlbmRlcmVy
KCkudHJhbnNmb3JtUmVmZXJlbmNlQm94UmVjdChyZW5kZXJlcigpLnN0eWxlKCkpKTsKLSAgICAg
ICAgcmVuZGVyZXIoKS5hcHBseVRyYW5zZm9ybSgqbV90cmFuc2Zvcm0sIHJlZmVyZW5jZUJveFJl
Y3QpOwotICAgICAgICBtYWtlTWF0cml4UmVuZGVyYWJsZSgqbV90cmFuc2Zvcm0sIGNhblJlbmRl
cjNEVHJhbnNmb3JtcygpKTsKKyAgICAgICAgdXBkYXRlVHJhbnNmb3JtRnJvbVN0eWxlKCptX3Ry
YW5zZm9ybSwgcmVuZGVyZXIoKS5zdHlsZSgpLCBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3Bl
cmF0aW9ucyk7CiAgICAgfQogCiAgICAgaWYgKGhhZDNEVHJhbnNmb3JtICE9IGhhczNEVHJhbnNm
b3JtKCkpIHsKQEAgLTEzNjUsMTEgKzEzNzAsOSBAQCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBSZW5k
ZXJMYXllcjo6Y3VycmVudFRyYW5zZm9ybShPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZgog
ICAgIGF1dG8gc3R5bGVhYmxlID0gU3R5bGVhYmxlOjpmcm9tUmVuZGVyZXIocmVuZGVyQm94KTsK
ICAgICBpZiAoKHN0eWxlYWJsZSAmJiBzdHlsZWFibGUtPmlzUnVubmluZ0FjY2VsZXJhdGVkVHJh
bnNmb3JtQW5pbWF0aW9uKCkpIHx8ICFvcHRpb25zLmNvbnRhaW5zKFJlbmRlclN0eWxlOjpUcmFu
c2Zvcm1PcGVyYXRpb25PcHRpb246OlRyYW5zZm9ybU9yaWdpbikpIHsKICAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBhbmltYXRlZFN0eWxlID0gcmVuZGVyQm94LmFuaW1hdGVk
U3R5bGUoKTsKLSAgICAgICAgYXV0byByZWZlcmVuY2VCb3hSZWN0ID0gc25hcFJlY3RUb0Rldmlj
ZVBpeGVsc0lmTmVlZGVkKHJlbmRlcmVyKCkudHJhbnNmb3JtUmVmZXJlbmNlQm94UmVjdCgqYW5p
bWF0ZWRTdHlsZSkpOwogCiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRyYW5zZm9ybTsK
LSAgICAgICAgYW5pbWF0ZWRTdHlsZS0+YXBwbHlUcmFuc2Zvcm0odHJhbnNmb3JtLCByZWZlcmVu
Y2VCb3hSZWN0LCBvcHRpb25zKTsKLSAgICAgICAgbWFrZU1hdHJpeFJlbmRlcmFibGUodHJhbnNm
b3JtLCBjYW5SZW5kZXIzRFRyYW5zZm9ybXMoKSk7CisgICAgICAgIHVwZGF0ZVRyYW5zZm9ybUZy
b21TdHlsZSh0cmFuc2Zvcm0sICphbmltYXRlZFN0eWxlLCBvcHRpb25zKTsKICAgICAgICAgcmV0
dXJuIHRyYW5zZm9ybTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmgKaW5kZXggNzJjYWYzZGMzMmNhMmY1YTM3YjllZTYzOWRmZTIzNzU0YTFjMTEyNC4uNzAyZDQ2
ZmMxNjhiYzVkMGEyYzM4ZjdhNDM3OTNjZTQzMGI2YTQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmgKQEAgLTcyOSw5ICs3MjksMTEgQEAgcHVibGljOgogICAgIGJvb2wg
aGFzVHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gcmVuZGVyZXIoKS5oYXNUcmFuc2Zvcm0oKTsg
fQogICAgIC8vIE5vdGUgdGhhdCB0aGlzIHRyYW5zZm9ybSBoYXMgdGhlIHRyYW5zZm9ybS1vcmln
aW4gYmFrZWQgaW4uCiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgqIHRyYW5zZm9ybSgpIGNvbnN0
IHsgcmV0dXJuIG1fdHJhbnNmb3JtLmdldCgpOyB9CisgICAgLy8gdXBkYXRlVHJhbnNmb3JtRnJv
bVN0eWxlIGNvbXB1dGVzIGEgdHJhbnNmb3JtIGFjY29yZGluZyB0byB0aGUgcGFzc2VkIG9wdGlv
bnMgKGUuZy4gdHJhbnNmb3JtLW9yaWdpbiBiYWtlZCBpbiBvciBleGNsdWRlZCkgYW5kIHRoZSBn
aXZlbiBzdHlsZS4KKyAgICB2b2lkIHVwZGF0ZVRyYW5zZm9ybUZyb21TdHlsZShUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpU
cmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+KSBjb25zdDsKICAgICAvLyBjdXJyZW50VHJhbnNmb3Jt
IGNvbXB1dGVzIGEgdHJhbnNmb3JtIHdoaWNoIHRha2VzIGFjY2VsZXJhdGVkIGFuaW1hdGlvbnMg
aW50byBhY2NvdW50LiBUaGUKLSAgICAvLyByZXN1bHRpbmcgdHJhbnNmb3JtIGhhcyB0cmFuc2Zv
cm0tb3JpZ2luIGJha2VkIGluLiBJZiB0aGUgbGF5ZXIgZG9lcyBub3QgaGF2ZSBhIHRyYW5zZm9y
bSwKLSAgICAvLyByZXR1cm5zIHRoZSBpZGVudGl0eSBtYXRyaXguCisgICAgLy8gcmVzdWx0aW5n
IHRyYW5zZm9ybSBoYXMgdHJhbnNmb3JtLW9yaWdpbiBiYWtlZCBpbiwgdW5sZXNzIG5vbi1kZWZh
dWx0IG9wdGlvbnMgYXJlIGdpdmVuLiBJZgorICAgIC8vIHRoZSBsYXllciBkb2VzIG5vdCBoYXZl
IGEgdHJhbnNmb3JtLCB0aGUgaWRlbnRpdHkgbWF0cml4IGlzIHJldHVybmVkLgogICAgIFRyYW5z
Zm9ybWF0aW9uTWF0cml4IGN1cnJlbnRUcmFuc2Zvcm0oT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpU
cmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9wZXJh
dGlvbnMpIGNvbnN0OwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHJlbmRlcmFibGVUcmFuc2Zv
cm0oT3B0aW9uU2V0PFBhaW50QmVoYXZpb3I+KSBjb25zdDsKICAgICAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggYzIzZDE2NmJkZDAx
Y2VhOTE5Mzc3OTU5N2ViNDZjZDEyZjQ2ZDY2Zi4uODcwYjIwYjllYWI0YmZjOWZiZmY1OGJkZGE4
YmM3NzM4YTdhMWQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHAKQEAgLTY0Myw3ICs2NDMsOCBAQCB2b2lkIFJlbmRlckxheWVyQmFja2lu
Zzo6dXBkYXRlVHJhbnNmb3JtKGNvbnN0IFJlbmRlclN0eWxlJikKICAgICAvLyBiYWtlZCBpbnRv
IGl0LCBhbmQgd2UgZG9uJ3Qgd2FudCB0aGF0LgogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHQ7
CiAgICAgaWYgKG1fb3duaW5nTGF5ZXIuaGFzVHJhbnNmb3JtKCkpIHsKLSAgICAgICAgcmVuZGVy
ZXIoKS5hcHBseVRyYW5zZm9ybSh0LCBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKG1fb3duaW5nTGF5
ZXIucmVuZGVyZXJCb3JkZXJCb3hSZWN0KCksIGRldmljZVNjYWxlRmFjdG9yKCkpLCBSZW5kZXJT
dHlsZTo6aW5kaXZpZHVhbFRyYW5zZm9ybU9wZXJhdGlvbnMpOworICAgICAgICAvLyBGSVhNRTog
VGhpcyB1c2VzIHRoZSB3cm9uZywgdHJhbnNmb3JtLWJveCB1bmF3YXJlLCBnZW9tZXRyeS4KKyAg
ICAgICAgcmVuZGVyZXIoKS5hcHBseVRyYW5zZm9ybSh0LCByZW5kZXJlcigpLnN0eWxlKCksIHNu
YXBSZWN0VG9EZXZpY2VQaXhlbHMobV9vd25pbmdMYXllci5yZW5kZXJlckJvcmRlckJveFJlY3Qo
KSwgZGV2aWNlU2NhbGVGYWN0b3IoKSksIFJlbmRlclN0eWxlOjppbmRpdmlkdWFsVHJhbnNmb3Jt
T3BlcmF0aW9ucyk7CiAgICAgICAgIG1ha2VNYXRyaXhSZW5kZXJhYmxlKHQsIGNvbXBvc2l0b3Io
KS5jYW5SZW5kZXIzRFRyYW5zZm9ybXMoKSk7CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgKaW5kZXggYzM1NGYzNzdm
MjhlMWMyMjI2YTlhMWUyYzU0NmMzNjE4MjYxNzNiZi4uZDQ0ZmY2YWQ1MmQzYTU5ZjUxZDFjMGZl
YWY2Y2U3OTVhNWUwZWRlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyTW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdC5oCkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IG1hcExvY2FsVG9TVkdDb250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5j
ZXN0b3JDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgT3B0aW9uU2V0PE1hcENvb3JkaW5hdGVz
TW9kZT4sIGJvb2wqIHdhc0ZpeGVkKSBjb25zdDsKICNlbmRpZgogCi0gICAgdmlydHVhbCB2b2lk
IGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgRmxvYXRSZWN0JiBi
b3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRp
b24+ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9wZXJhdGlvbnMpIGNvbnN0ID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25z
dCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxS
ZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjphbGxU
cmFuc2Zvcm1PcGVyYXRpb25zKSBjb25zdCA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KEVsZW1lbnQmLCBSZW5kZXJTdHlsZSYmLCBCYXNlVHlwZUZsYWdzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9i
amVjdC5jcHAKaW5kZXggZWNjM2YwZGRhNmY0NGE1MWM1NmQyNmE3YTI3OTZmZjZiNzAzZDA4YS4u
YjE5Mjk0YjY3NThjOWQxN2I2Yzg1MDliMjFhZDE3MTRjMTg5MzRmOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAKQEAg
LTI3NiwxNSArMjc2LDYgQEAgYm9vbCBSZW5kZXJTVkdNb2RlbE9iamVjdDo6Y2hlY2tFbmNsb3N1
cmUoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIGNvbnN0IEZsb2F0UmUKICAgICByZXR1cm4gcmVj
dC5jb250YWlucyhjdG0ubWFwUmVjdChyZW5kZXJlci0+cmVwYWludFJlY3RJbkxvY2FsQ29vcmRp
bmF0ZXMoKSkpOwogfQogCi12b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0OjphcHBseVRyYW5zZm9y
bShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5k
aW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4g
b3B0aW9ucykgY29uc3QKLXsKLSAgICBVTlVTRURfUEFSQU0odHJhbnNmb3JtKTsKLSAgICBVTlVT
RURfUEFSQU0oYm91bmRpbmdCb3gpOwotICAgIFVOVVNFRF9QQVJBTShvcHRpb25zKTsKLSAgICAv
LyBGSVhNRTogW0xCU0VdIFVwc3RyZWFtIFNWR1JlbmRlclN1cHBvcnQgY2hhbmdlcwotICAgIC8v
IFNWR1JlbmRlclN1cHBvcnQ6OmFwcGx5VHJhbnNmb3JtKCp0aGlzLCB0cmFuc2Zvcm0sIHN0eWxl
LCBib3VuZGluZ0JveCwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQsIG9wdGlvbnMpOwotfQot
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTEFZRVJfQkFTRURf
U1ZHX0VOR0lORSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHTW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHTW9kZWxPYmplY3QuaAppbmRleCA5M2ZjOWZhZTJkZWU2MmFkYjZkZDU0NWM5YTkzY2IzODI2
NWZiZTQ4Li5iYzExMjQ1MDQzYzlkMWU1NGViMGNjNGNjMmMxNDhjOWE5YjIzOGMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5o
CkBAIC01OCw4ICs1OCw2IEBAIHB1YmxpYzoKIAogICAgIGlubGluZSBTVkdFbGVtZW50JiBlbGVt
ZW50KCkgY29uc3Q7CiAKLSAgICB2b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0
cml4JiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxl
OjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9w
ZXJhdGlvbnMpIGNvbnN0IG92ZXJyaWRlOwotCiAgICAgLy8gTWltaWMgdGhlIFJlbmRlckJveCBh
Y2Nlc3NvcnMgLSBieSBzaGFyaW5nIHRoZSBzYW1lIHRlcm1pbm9sb2d5IHRoZSBwYWludGluZyAv
IGhpdCB0ZXN0aW5nIC8gbGF5b3V0IGxvZ2ljIGlzCiAgICAgLy8gc2ltaWxhciB0byByZWFkIGNv
bXBhcmVkIHRvIG5vbi1TVkcgcmVuZGVyZXJzIHN1Y2ggYXMgUmVuZGVyQm94ICYgZnJpZW5kcy4K
ICAgICBMYXlvdXRSZWN0IGJvcmRlckJveFJlY3RFcXVpdmFsZW50KCkgY29uc3QgeyByZXR1cm4g
eyBMYXlvdXRQb2ludCgpLCBtX2xheW91dFJlY3Quc2l6ZSgpIH07IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCmluZGV4IGQ0MDkxODY1MzY2MTIz
ZTFlZmY5Yjc3MWQ4ODUwZjg0N2E1YTdmYmEuLjcxNmVhODMwNjg0NTkzM2NiOGYwNDdhZThhOGQ5
ZDI4NTAxYzhkNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUm9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdSb290LmNwcApAQCAtNjA2LDE0ICs2MDYsNiBAQCBMYXlvdXRSZWN0IFJlbmRlclNWR1Jvb3Q6
Om92ZXJmbG93Q2xpcFJlY3QoY29uc3QgTGF5b3V0UG9pbnQmIGxvY2F0aW9uLCBSZW5kZXJGcgog
ICAgIHJldHVybiBjbGlwUmVjdDsKIH0KIAotdm9pZCBSZW5kZXJTVkdSb290OjphcHBseVRyYW5z
Zm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFJlY3QmIGJv
dW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlv
bj4gb3B0aW9ucykgY29uc3QKLXsKLSAgICBSZW5kZXJSZXBsYWNlZDo6YXBwbHlUcmFuc2Zvcm0o
dHJhbnNmb3JtLCBib3VuZGluZ0JveCwgb3B0aW9ucyk7Ci0KLSAgICAvLyBGSVhNRTogW0xCU0Vd
IFVwc3RyZWFtIFNWR1JlbmRlclN1cHBvcnQgY2hhbmdlcwotICAgIC8vIFNWR1JlbmRlclN1cHBv
cnQ6OmFwcGx5VHJhbnNmb3JtKCp0aGlzLCB0cmFuc2Zvcm0sIHN0eWxlLCBib3VuZGluZ0JveCwg
c3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQsIG9wdGlvbnMpOwotfQotCiB2b2lkIFJlbmRlclNW
R1Jvb3Q6OmFic29sdXRlUmVjdHMoVmVjdG9yPEludFJlY3Q+JiByZWN0cywgY29uc3QgTGF5b3V0
UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdAogewogICAgIGF1dG8gbG9jYWxSZWN0ID0g
TGF5b3V0UmVjdCh2YWx1ZU9yRGVmYXVsdChtX3N1cHBsZW1lbnRhbExvY2FsVG9QYXJlbnRUcmFu
c2Zvcm0uaW52ZXJzZSgpKS5tYXBSZWN0KGJvcmRlckJveFJlY3QoKSkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaAppbmRleCAyNGMzMGJjYTdiNjViZTUw
NGRhOWVkOGQ2ZWJmNzU5ZGYxYWM1N2VmLi5lN2Y3MTU1MzI2N2ViMjM5ODAwNThkMTdlZDA4ZGM4
MjAxODAwMDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jvb3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jv
b3QuaApAQCAtNjYsOCArNjYsNiBAQCBwdWJsaWM6CiAKICAgICBib29sIHNob3VsZEFwcGx5Vmll
d3BvcnRDbGlwKCkgY29uc3Q7CiAKLSAgICB2b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0
aW9uTWF0cml4JiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRl
clN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5z
Zm9ybU9wZXJhdGlvbnMpIGNvbnN0IGZpbmFsOwotCiAgICAgRmxvYXRSZWN0IG9iamVjdEJvdW5k
aW5nQm94KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9vYmplY3RCb3VuZGluZ0JveDsgfQogICAg
IEZsb2F0UmVjdCBzdHJva2VCb3VuZGluZ0JveCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc3Ry
b2tlQm91bmRpbmdCb3g7IH0KICAgICBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2FsQ29vcmRp
bmF0ZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uOjpj
b21wdXRlUmVwYWludEJvdW5kaW5nQm94KCp0aGlzKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcAppbmRleCAzMjkzYTZjOWZjM2FjNWYxYjk5
OTg2MjhiY2NkOTY1NDI5MzI4OGQ5Li4zMjU1NzI0MTkwYjcyMGFmZDM2Njg1NTg2MjAxNjBmMGYz
ODEwMTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1NoYXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1No
YXBlLmNwcApAQCAtNTM0LDYgKzUzNCwxMiBAQCB2b2lkIFJlbmRlclNWR1NoYXBlOjpzdHlsZVdp
bGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlJiBuZQogICAg
IFJlbmRlclNWR01vZGVsT2JqZWN0OjpzdHlsZVdpbGxDaGFuZ2UoZGlmZiwgbmV3U3R5bGUpOwog
fQogCit2b2lkIFJlbmRlclNWR1NoYXBlOjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgdHJhbnNmb3JtLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEZsb2F0UmVj
dCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9u
T3B0aW9uPiBvcHRpb25zKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBbTEJTRV0gVXBzdHJlYW0g
Q1NTL1NWRyB0cmFuc2Zvcm0gc3VwcG9ydAorICAgIHN0eWxlLmFwcGx5VHJhbnNmb3JtKHRyYW5z
Zm9ybSwgYm91bmRpbmdCb3gsIG9wdGlvbnMpOworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUo
TEFZRVJfQkFTRURfU1ZHX0VOR0lORSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHU2hhcGUuaAppbmRleCBkMmEzMzZjZmE4YWZiNTBiYzEwODUxMGUxNGViMzdiYzAx
YmVlNjBkLi4xOWM2M2NhZjI5MTQxYmY5YjgwZWU0MDQwZTk5ZGM1NDY0NWQyODE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oCkBAIC04Miw2ICs4
Miw4IEBAIHB1YmxpYzoKIAogICAgIEZsb2F0UmVjdCBjb21wdXRlTWFya2VyQm91bmRpbmdCb3go
Y29uc3QgU1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbjo6RGVjb3JhdGlvbk9wdGlvbnMmKSBjb25z
dDsKIAorICAgIHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25z
dCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxS
ZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjphbGxU
cmFuc2Zvcm1PcGVyYXRpb25zKSBjb25zdCBvdmVycmlkZTsKKwogcHJvdGVjdGVkOgogICAgIHZv
aWQgZWxlbWVudCgpIGNvbnN0ID0gZGVsZXRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVy
LmNwcAppbmRleCBmYjM1YmY5MWZhMzU2NGE4N2U0ZTg2ZDBmZGRhMzIxZjA3NTFhN2Q0Li45MDMx
MjJiZTk3Yzc1MWEzZDUyYTk0ZTc3ZjhjYTc1ZjYxNDRjMTk1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJs
ZUNvbnRhaW5lci5jcHAKQEAgLTEwMiwxMCArMTAyLDEwIEBAIHZvaWQgUmVuZGVyU1ZHVHJhbnNm
b3JtYWJsZUNvbnRhaW5lcjo6dXBkYXRlRnJvbVN0eWxlKCkKICAgICAvLyAgICBzZXRIYXNTVkdU
cmFuc2Zvcm0oKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjph
cHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBGbG9h
dFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJh
dGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNv
bnRhaW5lcjo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwg
Y29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBP
cHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykg
Y29uc3QKIHsKICAgICAvLyBGSVhNRTogW0xCU0VdIFVwc3RyZWFtIENTUy9TVkcgdHJhbnNmb3Jt
IHN1cHBvcnQKLSAgICBSZW5kZXJTVkdDb250YWluZXI6OmFwcGx5VHJhbnNmb3JtKHRyYW5zZm9y
bSwgYm91bmRpbmdCb3gsIG9wdGlvbnMpOworICAgIHN0eWxlLmFwcGx5VHJhbnNmb3JtKHRyYW5z
Zm9ybSwgYm91bmRpbmdCb3gsIG9wdGlvbnMpOwogfQogCiB2b2lkIFJlbmRlclNWR1RyYW5zZm9y
bWFibGVDb250YWluZXI6OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29u
c3QgUmVuZGVyU3R5bGUmIG5ld1N0eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuaAppbmRl
eCAxM2JkYTBiMGZiNjQ5ZDdmYzYwYTE2Njc0YmFjN2MyZWQxYTc3ZmFlLi42NGZhOWUxNjRhYjYx
ZWE3N2FiMjA1NmQ2YjhlMDUxZGExZmFlNzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIu
aApAQCAtNDUsOCArNDUsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgbGF5b3V0Q2hpbGRyZW4oKSBm
aW5hbDsKICAgICB2b2lkIGNhbGN1bGF0ZVZpZXdwb3J0KCkgZmluYWw7CiAgICAgRmxvYXRQb2lu
dCBhZGRpdGlvbmFsQ29udGFpbmVyVHJhbnNsYXRpb24oKSBjb25zdDsKLSAgICB2b2lkIGFwcGx5
VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGlu
Z0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+ID0g
UmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9wZXJhdGlvbnMpIGNvbnN0IGZpbmFsOworICAgIHZv
aWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBSZW5kZXJTdHls
ZSYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6
VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1PcGVy
YXRpb25zKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZl
cmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXdTdHlsZSkgZmluYWw7CisKICAgICB2b2lkIHVw
ZGF0ZUZyb21TdHlsZSgpIGZpbmFsOwogCiAgICAgQWZmaW5lVHJhbnNmb3JtIG1fc3VwcGxlbWVu
dGFsTG9jYWxUb1BhcmVudFRyYW5zZm9ybTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456901</attachid>
            <date>2022-04-07 03:24:05 -0700</date>
            <delta_ts>2022-04-07 06:18:47 -0700</delta_ts>
            <desc>Patch, v10</desc>
            <filename>bug-237701-20220407032359.patch</filename>
            <type>text/plain</type>
            <size>20457</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTRiMDY4NjgzYWUwY2Vh
MWEwZjlhYmJhMDUyMzM1MTk1NzMyNzIwOC4uMzhmOThmY2I1ZGU2ZjExNDhkYjk3Mjc5ODg0Mzc0
YzI3NWM4NDRlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIyLTA0LTA3ICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIFVuaWZ5
IHJlZmVyZW5jZSBib3ggLyBDVE0gY29tcHV0YXRpb24gaW4gUmVuZGVyTGF5ZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzcwMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dHJhY3QgdGhlIGNvZGUg
aW4gUmVuZGVyTGF5ZXIgdGhhdCBjb21wdXRlcyB0aGUgcmVmZXJlbmNlIGJveCwgb2J0YWlucyB0
aGUgQ1RNLAorICAgICAgICBhcHBsaWVzIHBpeGVsIHNuYXBwaW5nLCBldGMuIGludG8gYSBzaGFy
ZWQgdXBkYXRlVHJhbnNmb3JtRnJvbVN0eWxlKCkgaGVscGVyIGZ1bmN0aW9uLgorICAgICAgICBV
c2UgdGhhdCBoZWxwZXIgdG8gZGUtZHVwbGljYXRlIGNvZGUgYmV0d2VlbiB1cGRhdGVUcmFuc2Zv
cm0oKSAvIGN1cnJlbnRUcmFuc2Zvcm0oKQorICAgICAgICAoYW5kIFJlbmRlckxheWVyQmFja2lu
Zzo6dXBkYXRlVHJhbnNmb3JtKCkgaW4gZm9sbG93LXVwIHBhdGNoZXMpLgorCisgICAgICAgIGN1
cnJlbnRUcmFuc2Zvcm0oKSBuZWVkcyB0byBjb21wdXRlIHRoZSBDVE0sIGJhc2VkIG9uIGEgbm9u
LWRlZmF1bHQgUmVuZGVyU3R5bGUgKCE9IHJlbmRlcmVyKCkuc3R5bGUoKSksCisgICAgICAgIG5h
bWVseSB0aGUgYW5pbm1hdGVkU3R5bGUoKSwgaWYgYW4gYWNjZWxlcmF0ZWQgdHJhbnNmb3JtIGFu
aW1hdGlvbiBpcyBydW5uaW5nLiBUaGVyZWZvcmUgZXh0ZW5kCisgICAgICAgIFJlbmRlckxheWVy
TW9kZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtKCkgdG8gdGFrZSBhbiBhZGRpdGlvbmFsIFJlbmRl
clN0eWxlIHBhcmFtZXRlciwKKyAgICAgICAgdGhhdCBpcyB1c2VkIHRvIGFjY2VzcyB0aGUgQ1NT
IHRyYW5zZm9ybSBvcGVyYXRpb25zLCBpbnN0ZWFkIG9mIGFsd2F5cyBxdWVyeWluZyByZW5kZXJl
cigpLnN0eWxlKCkuCisgICAgICAgIFJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0oKSBjb250
aW51ZXMgdG8gcGFzcyAncmVuZGVyZXIoKS5zdHlsZSgpJyB0byB1cGRhdGVUcmFuc2Zvcm1Gcm9t
U3R5bGUoKSwKKyAgICAgICAgd2hlcmVhcyBSZW5kZXJMYXllcjo6Y3VycmVudFRyYW5zZm9ybSgp
IHBhc3NlcyB0aGUgZWxlbWVudHMgYW5pbWF0ZWRTdHlsZSgpLgorCisgICAgICAgIENvdmVyZWQg
YnkgZXhpc3RpbmcgdGVzdHMsIG5vIGNoYW5nZSBpbiBiZWhhdmlvdXIuCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6YXBw
bHlUcmFuc2Zvcm0gY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtIGNvbnN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0
ZVRyYW5zZm9ybUZyb21TdHlsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6dXBkYXRlVHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjdXJy
ZW50VHJhbnNmb3JtIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlVHJhbnNmb3JtKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
TW9kZWxPYmplY3Q6OmFwcGx5VHJhbnNmb3JtIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6
OmFwcGx5VHJhbnNmb3JtIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jvb3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1NoYXBlOjphcHBseVRyYW5zZm9ybSBj
b25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjphcHBseVRy
YW5zZm9ybSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyLmg6CisKIDIwMjItMDQtMDcgIE5pa29sYXMgWmltbWVybWFubiAgPG56
aW1tZXJtYW5uQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggYWZ0
ZXIgcjI5MjUyNS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggZWY1
MzRhNWVmYjcxYjFjYTQ3ZWVkZGRmOGMxMmIwZDIzZGYyNjhlOC4uNTJhNmQ3YWRlZmRlZWJkODhk
NDU5ZDE2MmVjNThlZmNhYmJjOGY4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5jcHAKQEAgLTY3NCw5ICs2NzQsOSBAQCB2b2lkIFJlbmRlckJveDo6dXBkYXRlTGF5ZXJUcmFu
c2Zvcm0oKQogICAgICAgICBsYXllcigpLT51cGRhdGVUcmFuc2Zvcm0oKTsKIH0KIAotdm9pZCBS
ZW5kZXJCb3g6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0LCBjb25zdCBG
bG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9w
ZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKK3ZvaWQgUmVuZGVyQm94OjphcHBseVRyYW5z
Zm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBj
b25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5z
Zm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKIHsKLSAgICBzdHlsZSgpLmFwcGx5
VHJhbnNmb3JtKHQsIGJvdW5kaW5nQm94LCBvcHRpb25zKTsKKyAgICBzdHlsZS5hcHBseVRyYW5z
Zm9ybSh0LCBib3VuZGluZ0JveCwgb3B0aW9ucyk7CiB9CiAKIExheW91dFVuaXQgUmVuZGVyQm94
Ojpjb25zdHJhaW5Mb2dpY2FsV2lkdGhJbkZyYWdtZW50QnlNaW5NYXgoTGF5b3V0VW5pdCBsb2dp
Y2FsV2lkdGgsIExheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgsIFJlbmRlckJsb2NrJiBjYiwgUmVu
ZGVyRnJhZ21lbnRDb250YWluZXIqIGZyYWdtZW50LCBBbGxvd0ludHJpbnNpYyBhbGxvd0ludHJp
bnNpYykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBhNDg4ZWQ0
M2UxMDQ2OGM0M2I4MzliMTczODE2YTYxNTBjMTQ5MDAxLi4xYWZmN2UwMTdjYTMwMWI0NmE1Mzgw
ZDA2MTMwZmYzZWUxNTdkNTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBA
IC0yMTksNyArMjE5LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkT3ZlcmZsb3dGcm9tQ2hpbGQo
Y29uc3QgUmVuZGVyQm94KiBjaGlsZCwgY29uc3QgTGF5b3V0U2l6ZSYgZGVsdGEpOwogCiAgICAg
dm9pZCB1cGRhdGVMYXllclRyYW5zZm9ybSgpOwotICAgIHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJh
bnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25T
ZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gPSBSZW5kZXJTdHlsZTo6
YWxsVHJhbnNmb3JtT3BlcmF0aW9ucykgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBhcHBseVRy
YW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3Qg
RmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1P
cGVyYXRpb25PcHRpb24+ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9wZXJhdGlvbnMpIGNv
bnN0IG92ZXJyaWRlOwogCiAgICAgTGF5b3V0U2l6ZSBjb250ZW50U2l6ZSgpIGNvbnN0IHsgcmV0
dXJuIHsgY29udGVudFdpZHRoKCksIGNvbnRlbnRIZWlnaHQoKSB9OyB9CiAgICAgTGF5b3V0VW5p
dCBjb250ZW50V2lkdGgoKSBjb25zdCB7IHJldHVybiBzdGQ6Om1heCgwX2x1LCBwYWRkaW5nQm94
V2lkdGgoKSAtIHBhZGRpbmdMZWZ0KCkgLSBwYWRkaW5nUmlnaHQoKSk7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IDI0Yzgy
YzlkNmJkNDNmNzRiYTA1YWI1YWM3Njc5M2Q3NWQxNWU1NzcuLjQ1YmRjYmJiNjI5ZWFiYTc1YzRk
YWViZmFkMTUxNDA1Yjg0MzM1ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtMjcwNiw3ICsyNzA2LDcgQEAgdm9pZCBSZW5k
ZXJCb3hNb2RlbE9iamVjdDo6Y29sbGVjdEFic29sdXRlUXVhZHNGb3JDb250aW51YXRpb24oVmVj
dG9yPEZsb2F0UXVhZD4KICAgICB9CiB9CiAKLXZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmFw
cGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgRmxvYXRSZWN0JiwgT3B0
aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+KSBjb25zdAordm9p
ZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRy
aXgmLCBjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZsb2F0UmVjdCYsIE9wdGlvblNldDxSZW5k
ZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPikgY29uc3QKIHsKICAgICAvLyBhcHBs
eVRyYW5zZm9ybSgpIGlzIG9ubHkgdXNlZCB0aHJvdWdoIFJlbmRlckxheWVyKiwgd2hpY2ggb25s
eSBpbnZva2VzIHRoaXMgZm9yIFJlbmRlckJveCBkZXJpdmVkIHJlbmRlcmVycywgdGh1cyBub3Qg
Zm9yCiAgICAgLy8gUmVuZGVySW5saW5lL1JlbmRlckxpbmVCcmVhayAtIHRoZSBvdGhlciB0d28g
cmVuZGVyZXJzIHRoYXQgaW5oZXJpdCBmcm9tIFJlbmRlckJveE1vZGVsT2JqZWN0LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAppbmRleCA5N2I5
NjVhMzBmZGQ3NjYzMThiYjNkOGE1YzA5YzM0YzVhODNiZWRmLi4wYzVjYTY2Y2FkYWQ5ZGU0NzBi
ZGNhZjAzYzZiMWZhZTM3MGVlYjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94TW9kZWxPYmplY3QuaApAQCAtMjU0LDcgKzI1NCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgaGFzT3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRXaWR0aCgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGhhc092ZXJyaWRpbmdDb250
YWluaW5nQmxvY2tDb250ZW50SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAg
IHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBGbG9hdFJl
Y3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlv
bk9wdGlvbj4gPSBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucykgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNv
bnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0
PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+ID0gUmVuZGVyU3R5bGU6OmFs
bFRyYW5zZm9ybU9wZXJhdGlvbnMpIGNvbnN0IG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAg
UmVuZGVyQm94TW9kZWxPYmplY3QoRWxlbWVudCYsIFJlbmRlclN0eWxlJiYsIEJhc2VUeXBlRmxh
Z3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggMTlmY2Y3
NTdlZWE0MDY5NTQ5ODBhZTM5M2M5MjU5MzBkZDkzMzQ0MC4uMmFlOGYzMGFlMGRkMGY1ZmQwZjhi
YmY5ZTdiZTcyOGM0OGI3MTY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCkBAIC0xMzEwLDYgKzEzMTAsMTMgQEAgRmxvYXRSZWN0IFJlbmRlckxheWVyOjpyZWZl
cmVuY2VCb3hSZWN0Rm9yQ2xpcFBhdGgoQ1NTQm94VHlwZSBib3hUeXBlLCBjb25zdCBMYXkKICAg
ICByZXR1cm4gcmVmZXJlbmNlQm94UmVjdDsKIH0KIAordm9pZCBSZW5kZXJMYXllcjo6dXBkYXRl
VHJhbnNmb3JtRnJvbVN0eWxlKFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0
IFJlbmRlclN0eWxlJiBzdHlsZSwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVy
YXRpb25PcHRpb24+IG9wdGlvbnMpIGNvbnN0Cit7CisgICAgYXV0byByZWZlcmVuY2VCb3hSZWN0
ID0gc25hcFJlY3RUb0RldmljZVBpeGVsc0lmTmVlZGVkKHJlbmRlcmVyKCkudHJhbnNmb3JtUmVm
ZXJlbmNlQm94UmVjdChzdHlsZSksIHJlbmRlcmVyKCkpOworICAgIHJlbmRlcmVyKCkuYXBwbHlU
cmFuc2Zvcm0odHJhbnNmb3JtLCBzdHlsZSwgcmVmZXJlbmNlQm94UmVjdCwgb3B0aW9ucyk7Cisg
ICAgbWFrZU1hdHJpeFJlbmRlcmFibGUodHJhbnNmb3JtLCBjYW5SZW5kZXIzRFRyYW5zZm9ybXMo
KSk7Cit9CisKIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZVRyYW5zZm9ybSgpCiB7CiAgICAgYm9v
bCBoYXNUcmFuc2Zvcm0gPSByZW5kZXJlcigpLmhhc1RyYW5zZm9ybSgpOwpAQCAtMTMzNSw5ICsx
MzQyLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlVHJhbnNmb3JtKCkKICAgICAgICAgICAg
IGJveFBhdGhPcGVyYXRpb24uc2V0UGF0aEZvclJlZmVyZW5jZVJlY3QoRmxvYXRSb3VuZGVkUmVj
dCB7IHBhdGhSZWZlcmVuY2VCb3hSZWN0IH0pOwogICAgICAgICB9CiAKLSAgICAgICAgYXV0byBy
ZWZlcmVuY2VCb3hSZWN0ID0gc25hcFJlY3RUb0RldmljZVBpeGVsc0lmTmVlZGVkKHJlbmRlcmVy
KCkudHJhbnNmb3JtUmVmZXJlbmNlQm94UmVjdChyZW5kZXJlcigpLnN0eWxlKCkpLCByZW5kZXJl
cigpKTsKLSAgICAgICAgcmVuZGVyZXIoKS5hcHBseVRyYW5zZm9ybSgqbV90cmFuc2Zvcm0sIHJl
ZmVyZW5jZUJveFJlY3QpOwotICAgICAgICBtYWtlTWF0cml4UmVuZGVyYWJsZSgqbV90cmFuc2Zv
cm0sIGNhblJlbmRlcjNEVHJhbnNmb3JtcygpKTsKKyAgICAgICAgdXBkYXRlVHJhbnNmb3JtRnJv
bVN0eWxlKCptX3RyYW5zZm9ybSwgcmVuZGVyZXIoKS5zdHlsZSgpLCBSZW5kZXJTdHlsZTo6YWxs
VHJhbnNmb3JtT3BlcmF0aW9ucyk7CiAgICAgfQogCiAgICAgaWYgKGhhZDNEVHJhbnNmb3JtICE9
IGhhczNEVHJhbnNmb3JtKCkpIHsKQEAgLTEzNjUsMTEgKzEzNzAsOSBAQCBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCBSZW5kZXJMYXllcjo6Y3VycmVudFRyYW5zZm9ybShPcHRpb25TZXQ8UmVuZGVyU3R5
bGU6OlRyYW5zZgogICAgIGF1dG8gc3R5bGVhYmxlID0gU3R5bGVhYmxlOjpmcm9tUmVuZGVyZXIo
cmVuZGVyQm94KTsKICAgICBpZiAoKHN0eWxlYWJsZSAmJiBzdHlsZWFibGUtPmlzUnVubmluZ0Fj
Y2VsZXJhdGVkVHJhbnNmb3JtQW5pbWF0aW9uKCkpIHx8ICFvcHRpb25zLmNvbnRhaW5zKFJlbmRl
clN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb246OlRyYW5zZm9ybU9yaWdpbikpIHsKICAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBhbmltYXRlZFN0eWxlID0gcmVuZGVy
Qm94LmFuaW1hdGVkU3R5bGUoKTsKLSAgICAgICAgYXV0byByZWZlcmVuY2VCb3hSZWN0ID0gc25h
cFJlY3RUb0RldmljZVBpeGVsc0lmTmVlZGVkKHJlbmRlcmVyKCkudHJhbnNmb3JtUmVmZXJlbmNl
Qm94UmVjdCgqYW5pbWF0ZWRTdHlsZSksIHJlbmRlcmVyKCkpOwogCiAgICAgICAgIFRyYW5zZm9y
bWF0aW9uTWF0cml4IHRyYW5zZm9ybTsKLSAgICAgICAgYW5pbWF0ZWRTdHlsZS0+YXBwbHlUcmFu
c2Zvcm0odHJhbnNmb3JtLCByZWZlcmVuY2VCb3hSZWN0LCBvcHRpb25zKTsKLSAgICAgICAgbWFr
ZU1hdHJpeFJlbmRlcmFibGUodHJhbnNmb3JtLCBjYW5SZW5kZXIzRFRyYW5zZm9ybXMoKSk7Cisg
ICAgICAgIHVwZGF0ZVRyYW5zZm9ybUZyb21TdHlsZSh0cmFuc2Zvcm0sICphbmltYXRlZFN0eWxl
LCBvcHRpb25zKTsKICAgICAgICAgcmV0dXJuIHRyYW5zZm9ybTsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggOGFkNDY5MjIwN2JlNDQ4Y2EzM2E3OWIz
MDUwZmQ3NTc0ZDVjYWYxZi4uNDIwZjcwMTVjZTc1YWQ3Njc5ZGNmMzlmYTYwMGQ3YTk3NDRkMjBl
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTcyOSw5ICs3Mjks
MTEgQEAgcHVibGljOgogICAgIGJvb2wgaGFzVHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gcmVu
ZGVyZXIoKS5oYXNUcmFuc2Zvcm0oKTsgfQogICAgIC8vIE5vdGUgdGhhdCB0aGlzIHRyYW5zZm9y
bSBoYXMgdGhlIHRyYW5zZm9ybS1vcmlnaW4gYmFrZWQgaW4uCiAgICAgVHJhbnNmb3JtYXRpb25N
YXRyaXgqIHRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNmb3JtLmdldCgpOyB9Cisg
ICAgLy8gdXBkYXRlVHJhbnNmb3JtRnJvbVN0eWxlIGNvbXB1dGVzIGEgdHJhbnNmb3JtIGFjY29y
ZGluZyB0byB0aGUgcGFzc2VkIG9wdGlvbnMgKGUuZy4gdHJhbnNmb3JtLW9yaWdpbiBiYWtlZCBp
biBvciBleGNsdWRlZCkgYW5kIHRoZSBnaXZlbiBzdHlsZS4KKyAgICB2b2lkIHVwZGF0ZVRyYW5z
Zm9ybUZyb21TdHlsZShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IFJlbmRlclN0eWxlJiwg
T3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+KSBjb25zdDsK
ICAgICAvLyBjdXJyZW50VHJhbnNmb3JtIGNvbXB1dGVzIGEgdHJhbnNmb3JtIHdoaWNoIHRha2Vz
IGFjY2VsZXJhdGVkIGFuaW1hdGlvbnMgaW50byBhY2NvdW50LiBUaGUKLSAgICAvLyByZXN1bHRp
bmcgdHJhbnNmb3JtIGhhcyB0cmFuc2Zvcm0tb3JpZ2luIGJha2VkIGluLiBJZiB0aGUgbGF5ZXIg
ZG9lcyBub3QgaGF2ZSBhIHRyYW5zZm9ybSwKLSAgICAvLyByZXR1cm5zIHRoZSBpZGVudGl0eSBt
YXRyaXguCisgICAgLy8gcmVzdWx0aW5nIHRyYW5zZm9ybSBoYXMgdHJhbnNmb3JtLW9yaWdpbiBi
YWtlZCBpbiwgdW5sZXNzIG5vbi1kZWZhdWx0IG9wdGlvbnMgYXJlIGdpdmVuLiBJZgorICAgIC8v
IHRoZSBsYXllciBkb2VzIG5vdCBoYXZlIGEgdHJhbnNmb3JtLCB0aGUgaWRlbnRpdHkgbWF0cml4
IGlzIHJldHVybmVkLgogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGN1cnJlbnRUcmFuc2Zvcm0o
T3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+ID0gUmVuZGVy
U3R5bGU6OmFsbFRyYW5zZm9ybU9wZXJhdGlvbnMpIGNvbnN0OwogICAgIFRyYW5zZm9ybWF0aW9u
TWF0cml4IHJlbmRlcmFibGVUcmFuc2Zvcm0oT3B0aW9uU2V0PFBhaW50QmVoYXZpb3I+KSBjb25z
dDsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5jcHAKaW5kZXggNDMzYTA0NDViNzZjOWRkZGRiNmU4ZjdmY2RiNzcwY2Q1YjNkNTc3YS4uMjYz
YWM3NWFjN2U0ZDJhM2QyMzU5MTQ2YWFjM2RmN2NmNDliYjkyMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTY0Myw3ICs2NDMsOCBA
QCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlVHJhbnNmb3JtKGNvbnN0IFJlbmRlclN0
eWxlJikKICAgICAvLyBiYWtlZCBpbnRvIGl0LCBhbmQgd2UgZG9uJ3Qgd2FudCB0aGF0LgogICAg
IFRyYW5zZm9ybWF0aW9uTWF0cml4IHQ7CiAgICAgaWYgKG1fb3duaW5nTGF5ZXIuaGFzVHJhbnNm
b3JtKCkpIHsKLSAgICAgICAgcmVuZGVyZXIoKS5hcHBseVRyYW5zZm9ybSh0LCBzbmFwUmVjdFRv
RGV2aWNlUGl4ZWxzKG1fb3duaW5nTGF5ZXIucmVuZGVyZXJCb3JkZXJCb3hSZWN0KCksIGRldmlj
ZVNjYWxlRmFjdG9yKCkpLCBSZW5kZXJTdHlsZTo6aW5kaXZpZHVhbFRyYW5zZm9ybU9wZXJhdGlv
bnMpOworICAgICAgICAvLyBGSVhNRTogVGhpcyB1c2VzIHRoZSB3cm9uZywgdHJhbnNmb3JtLWJv
eCB1bmF3YXJlLCBnZW9tZXRyeS4KKyAgICAgICAgcmVuZGVyZXIoKS5hcHBseVRyYW5zZm9ybSh0
LCByZW5kZXJlcigpLnN0eWxlKCksIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMobV9vd25pbmdMYXll
ci5yZW5kZXJlckJvcmRlckJveFJlY3QoKSwgZGV2aWNlU2NhbGVGYWN0b3IoKSksIFJlbmRlclN0
eWxlOjppbmRpdmlkdWFsVHJhbnNmb3JtT3BlcmF0aW9ucyk7CiAgICAgICAgIG1ha2VNYXRyaXhS
ZW5kZXJhYmxlKHQsIGNvbXBvc2l0b3IoKS5jYW5SZW5kZXIzRFRyYW5zZm9ybXMoKSk7CiAgICAg
fQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
TW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVs
T2JqZWN0LmgKaW5kZXggNDI1MDljNzJkZGQ0MGY2ODdkMDFhMTk3Y2UwZDI3NzFkNjdkNDBmOC4u
ZjhiYTllZGZhZjQ5NGZlMDQ3OGQxNTg3ZmE3ZDcxMWI4NjY0NDUyYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oCkBAIC03Nyw3ICs3
Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1hcExvY2FsVG9TVkdDb250YWluZXIoY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwg
T3B0aW9uU2V0PE1hcENvb3JkaW5hdGVzTW9kZT4sIGJvb2wqIHdhc0ZpeGVkKSBjb25zdDsKICNl
bmRpZgogCi0gICAgdmlydHVhbCB2b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0
cml4JiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxl
OjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9w
ZXJhdGlvbnMpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJh
bnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZsb2F0UmVjdCYg
Ym91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0
aW9uPiA9IFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBjb25zdCA9IDA7CiAK
IHByb3RlY3RlZDoKICAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0KEVsZW1lbnQmLCBSZW5kZXJT
dHlsZSYmLCBCYXNlVHlwZUZsYWdzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAKaW5kZXggZWNjM2YwZGRhNmY0NGE1MWM1
NmQyNmE3YTI3OTZmZjZiNzAzZDA4YS4uYjE5Mjk0YjY3NThjOWQxN2I2Yzg1MDliMjFhZDE3MTRj
MTg5MzRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdNb2RlbE9iamVjdC5jcHAKQEAgLTI3NiwxNSArMjc2LDYgQEAgYm9vbCBSZW5kZXJTVkdN
b2RlbE9iamVjdDo6Y2hlY2tFbmNsb3N1cmUoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIGNvbnN0
IEZsb2F0UmUKICAgICByZXR1cm4gcmVjdC5jb250YWlucyhjdG0ubWFwUmVjdChyZW5kZXJlci0+
cmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKSkpOwogfQogCi12b2lkIFJlbmRlclNWR01v
ZGVsT2JqZWN0OjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3Jt
LCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRy
YW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKLXsKLSAgICBVTlVTRURfUEFS
QU0odHJhbnNmb3JtKTsKLSAgICBVTlVTRURfUEFSQU0oYm91bmRpbmdCb3gpOwotICAgIFVOVVNF
RF9QQVJBTShvcHRpb25zKTsKLSAgICAvLyBGSVhNRTogW0xCU0VdIFVwc3RyZWFtIFNWR1JlbmRl
clN1cHBvcnQgY2hhbmdlcwotICAgIC8vIFNWR1JlbmRlclN1cHBvcnQ6OmFwcGx5VHJhbnNmb3Jt
KCp0aGlzLCB0cmFuc2Zvcm0sIHN0eWxlLCBib3VuZGluZ0JveCwgc3RkOjpudWxsb3B0LCBzdGQ6
Om51bGxvcHQsIG9wdGlvbnMpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBFTkFCTEUoTEFZRVJfQkFTRURfU1ZHX0VOR0lORSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaAppbmRleCA5M2ZjOWZhZTJk
ZWU2MmFkYjZkZDU0NWM5YTkzY2IzODI2NWZiZTQ4Li5iYzExMjQ1MDQzYzlkMWU1NGViMGNjNGNj
MmMxNDhjOWE5YjIzOGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR01vZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCkBAIC01OCw4ICs1OCw2IEBAIHB1YmxpYzoKIAogICAg
IGlubGluZSBTVkdFbGVtZW50JiBlbGVtZW50KCkgY29uc3Q7CiAKLSAgICB2b2lkIGFwcGx5VHJh
bnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0Jv
eCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+ID0gUmVu
ZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9wZXJhdGlvbnMpIGNvbnN0IG92ZXJyaWRlOwotCiAgICAg
Ly8gTWltaWMgdGhlIFJlbmRlckJveCBhY2Nlc3NvcnMgLSBieSBzaGFyaW5nIHRoZSBzYW1lIHRl
cm1pbm9sb2d5IHRoZSBwYWludGluZyAvIGhpdCB0ZXN0aW5nIC8gbGF5b3V0IGxvZ2ljIGlzCiAg
ICAgLy8gc2ltaWxhciB0byByZWFkIGNvbXBhcmVkIHRvIG5vbi1TVkcgcmVuZGVyZXJzIHN1Y2gg
YXMgUmVuZGVyQm94ICYgZnJpZW5kcy4KICAgICBMYXlvdXRSZWN0IGJvcmRlckJveFJlY3RFcXVp
dmFsZW50KCkgY29uc3QgeyByZXR1cm4geyBMYXlvdXRQb2ludCgpLCBtX2xheW91dFJlY3Quc2l6
ZSgpIH07IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUm9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3Qu
Y3BwCmluZGV4IGQ0MDkxODY1MzY2MTIzZTFlZmY5Yjc3MWQ4ODUwZjg0N2E1YTdmYmEuLjcxNmVh
ODMwNjg0NTkzM2NiOGYwNDdhZThhOGQ5ZDI4NTAxYzhkNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcApAQCAtNjA2LDE0ICs2MDYsNiBAQCBM
YXlvdXRSZWN0IFJlbmRlclNWR1Jvb3Q6Om92ZXJmbG93Q2xpcFJlY3QoY29uc3QgTGF5b3V0UG9p
bnQmIGxvY2F0aW9uLCBSZW5kZXJGcgogICAgIHJldHVybiBjbGlwUmVjdDsKIH0KIAotdm9pZCBS
ZW5kZXJTVkdSb290OjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNm
b3JtLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6
OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKLXsKLSAgICBSZW5kZXJS
ZXBsYWNlZDo6YXBwbHlUcmFuc2Zvcm0odHJhbnNmb3JtLCBib3VuZGluZ0JveCwgb3B0aW9ucyk7
Ci0KLSAgICAvLyBGSVhNRTogW0xCU0VdIFVwc3RyZWFtIFNWR1JlbmRlclN1cHBvcnQgY2hhbmdl
cwotICAgIC8vIFNWR1JlbmRlclN1cHBvcnQ6OmFwcGx5VHJhbnNmb3JtKCp0aGlzLCB0cmFuc2Zv
cm0sIHN0eWxlLCBib3VuZGluZ0JveCwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQsIG9wdGlv
bnMpOwotfQotCiB2b2lkIFJlbmRlclNWR1Jvb3Q6OmFic29sdXRlUmVjdHMoVmVjdG9yPEludFJl
Y3Q+JiByZWN0cywgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdAog
ewogICAgIGF1dG8gbG9jYWxSZWN0ID0gTGF5b3V0UmVjdCh2YWx1ZU9yRGVmYXVsdChtX3N1cHBs
ZW1lbnRhbExvY2FsVG9QYXJlbnRUcmFuc2Zvcm0uaW52ZXJzZSgpKS5tYXBSZWN0KGJvcmRlckJv
eFJlY3QoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3Qu
aAppbmRleCAyNGMzMGJjYTdiNjViZTUwNGRhOWVkOGQ2ZWJmNzU5ZGYxYWM1N2VmLi5lN2Y3MTU1
MzI2N2ViMjM5ODAwNThkMTdlZDA4ZGM4MjAxODAwMDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaApAQCAtNjYsOCArNjYsNiBAQCBwdWJsaWM6CiAK
ICAgICBib29sIHNob3VsZEFwcGx5Vmlld3BvcnRDbGlwKCkgY29uc3Q7CiAKLSAgICB2b2lkIGFw
cGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgRmxvYXRSZWN0JiBib3Vu
ZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+
ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9wZXJhdGlvbnMpIGNvbnN0IGZpbmFsOwotCiAg
ICAgRmxvYXRSZWN0IG9iamVjdEJvdW5kaW5nQm94KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9v
YmplY3RCb3VuZGluZ0JveDsgfQogICAgIEZsb2F0UmVjdCBzdHJva2VCb3VuZGluZ0JveCgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fc3Ryb2tlQm91bmRpbmdCb3g7IH0KICAgICBGbG9hdFJlY3Qg
cmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdC
b3VuZGluZ0JveENvbXB1dGF0aW9uOjpjb21wdXRlUmVwYWludEJvdW5kaW5nQm94KCp0aGlzKTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcApp
bmRleCAzMjkzYTZjOWZjM2FjNWYxYjk5OTg2MjhiY2NkOTY1NDI5MzI4OGQ5Li4zMjU1NzI0MTkw
YjcyMGFmZDM2Njg1NTg2MjAxNjBmMGYzODEwMTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcApAQCAtNTM0LDYgKzUzNCwxMiBAQCB2b2lk
IFJlbmRlclNWR1NoYXBlOjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNv
bnN0IFJlbmRlclN0eWxlJiBuZQogICAgIFJlbmRlclNWR01vZGVsT2JqZWN0OjpzdHlsZVdpbGxD
aGFuZ2UoZGlmZiwgbmV3U3R5bGUpOwogfQogCit2b2lkIFJlbmRlclNWR1NoYXBlOjphcHBseVRy
YW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJT
dHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiBvcHRpb25zKSBjb25zdAoreworICAgIC8v
IEZJWE1FOiBbTEJTRV0gVXBzdHJlYW0gQ1NTL1NWRyB0cmFuc2Zvcm0gc3VwcG9ydAorICAgIHN0
eWxlLmFwcGx5VHJhbnNmb3JtKHRyYW5zZm9ybSwgYm91bmRpbmdCb3gsIG9wdGlvbnMpOworfQor
CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTEFZRVJfQkFTRURfU1ZHX0VOR0lORSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuaAppbmRleCBkMmEzMzZjZmE4
YWZiNTBiYzEwODUxMGUxNGViMzdiYzAxYmVlNjBkLi4xOWM2M2NhZjI5MTQxYmY5YjgwZWU0MDQw
ZTk5ZGM1NDY0NWQyODE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1NoYXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdTaGFwZS5oCkBAIC04Miw2ICs4Miw4IEBAIHB1YmxpYzoKIAogICAgIEZsb2F0UmVjdCBj
b21wdXRlTWFya2VyQm91bmRpbmdCb3goY29uc3QgU1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbjo6
RGVjb3JhdGlvbk9wdGlvbnMmKSBjb25zdDsKIAorICAgIHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJh
bnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZsb2F0UmVjdCYg
Ym91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0
aW9uPiA9IFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBjb25zdCBvdmVycmlk
ZTsKKwogcHJvdGVjdGVkOgogICAgIHZvaWQgZWxlbWVudCgpIGNvbnN0ID0gZGVsZXRlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9y
bWFibGVDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNwcAppbmRleCBmYjM1YmY5MWZhMzU2NGE4N2U0ZTg2
ZDBmZGRhMzIxZjA3NTFhN2Q0Li45MDMxMjJiZTk3Yzc1MWEzZDUyYTk0ZTc3ZjhjYTc1ZjYxNDRj
MTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Ry
YW5zZm9ybWFibGVDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHAKQEAgLTEwMiwxMCArMTAyLDEw
IEBAIHZvaWQgUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcjo6dXBkYXRlRnJvbVN0eWxl
KCkKICAgICAvLyAgICBzZXRIYXNTVkdUcmFuc2Zvcm0oKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdU
cmFuc2Zvcm1hYmxlQ29udGFpbmVyOjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVu
ZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKK3ZvaWQg
UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcjo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3Jt
YXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBG
bG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9w
ZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKIHsKICAgICAvLyBGSVhNRTogW0xCU0VdIFVw
c3RyZWFtIENTUy9TVkcgdHJhbnNmb3JtIHN1cHBvcnQKLSAgICBSZW5kZXJTVkdDb250YWluZXI6
OmFwcGx5VHJhbnNmb3JtKHRyYW5zZm9ybSwgYm91bmRpbmdCb3gsIG9wdGlvbnMpOworICAgIHN0
eWxlLmFwcGx5VHJhbnNmb3JtKHRyYW5zZm9ybSwgYm91bmRpbmdCb3gsIG9wdGlvbnMpOwogfQog
CiB2b2lkIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI6OnN0eWxlV2lsbENoYW5nZShT
dHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0eWxlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxl
Q29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5z
Zm9ybWFibGVDb250YWluZXIuaAppbmRleCAxM2JkYTBiMGZiNjQ5ZDdmYzYwYTE2Njc0YmFjN2My
ZWQxYTc3ZmFlLi42NGZhOWUxNjRhYjYxZWE3N2FiMjA1NmQ2YjhlMDUxZGExZmFlNzU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFi
bGVDb250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1RyYW5zZm9ybWFibGVDb250YWluZXIuaApAQCAtNDUsOCArNDUsOSBAQCBwcml2YXRlOgogICAg
IHZvaWQgbGF5b3V0Q2hpbGRyZW4oKSBmaW5hbDsKICAgICB2b2lkIGNhbGN1bGF0ZVZpZXdwb3J0
KCkgZmluYWw7CiAgICAgRmxvYXRQb2ludCBhZGRpdGlvbmFsQ29udGFpbmVyVHJhbnNsYXRpb24o
KSBjb25zdDsKLSAgICB2b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4Jiwg
Y29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFu
c2Zvcm1PcGVyYXRpb25PcHRpb24+ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9wZXJhdGlv
bnMpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25N
YXRyaXgmLCBjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gs
IE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRl
clN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRpb25zKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHN0
eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXdTdHls
ZSkgZmluYWw7CisKICAgICB2b2lkIHVwZGF0ZUZyb21TdHlsZSgpIGZpbmFsOwogCiAgICAgQWZm
aW5lVHJhbnNmb3JtIG1fc3VwcGxlbWVudGFsTG9jYWxUb1BhcmVudFRyYW5zZm9ybTsK
</data>
<flag name="review"
          id="485341"
          type_id="1"
          status="+"
          setter="rbuis"
    />
          </attachment>
      

    </bug>

</bugzilla>