<?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>122195</bug_id>
          
          <creation_ts>2013-10-01 17:25:07 -0700</creation_ts>
          <short_desc>Implement Array key, value and entries iterators</short_desc>
          <delta_ts>2013-10-02 13:32:49 -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>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>rego+ews</cc>
    
    <cc>rniwa</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>935280</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-10-01 17:25:07 -0700</bug_when>
    <thetext>Implement Array key, value and entries iterators</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935286</commentid>
    <comment_count>1</comment_count>
      <attachid>213136</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-10-01 17:44:30 -0700</bug_when>
    <thetext>Created attachment 213136
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935288</commentid>
    <comment_count>2</comment_count>
      <attachid>213136</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-10-01 17:52:06 -0700</bug_when>
    <thetext>Comment on attachment 213136
Patch

Attachment 213136 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/2891238</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935289</commentid>
    <comment_count>3</comment_count>
      <attachid>213136</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-10-01 17:52:27 -0700</bug_when>
    <thetext>Comment on attachment 213136
Patch

Attachment 213136 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/2889219</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935291</commentid>
    <comment_count>4</comment_count>
      <attachid>213136</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-01 17:56:08 -0700</bug_when>
    <thetext>Comment on attachment 213136
Patch

Attachment 213136 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/2853205</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935297</commentid>
    <comment_count>5</comment_count>
      <attachid>213136</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-01 18:13:50 -0700</bug_when>
    <thetext>Comment on attachment 213136
Patch

Attachment 213136 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/2905247</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935299</commentid>
    <comment_count>6</comment_count>
      <attachid>213136</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-01 18:24:28 -0700</bug_when>
    <thetext>Comment on attachment 213136
Patch

Attachment 213136 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/2892219</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935300</commentid>
    <comment_count>7</comment_count>
      <attachid>213136</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-01 18:28:33 -0700</bug_when>
    <thetext>Comment on attachment 213136
Patch

Attachment 213136 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/2907231</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935309</commentid>
    <comment_count>8</comment_count>
      <attachid>213136</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-01 18:52:53 -0700</bug_when>
    <thetext>Comment on attachment 213136
Patch

Attachment 213136 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/2908229</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935325</commentid>
    <comment_count>9</comment_count>
      <attachid>213136</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-10-01 20:00:05 -0700</bug_when>
    <thetext>Comment on attachment 213136
Patch

Attachment 213136 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/2853228</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935488</commentid>
    <comment_count>10</comment_count>
      <attachid>213184</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-10-02 12:17:55 -0700</bug_when>
    <thetext>Created attachment 213184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935498</commentid>
    <comment_count>11</comment_count>
      <attachid>213184</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-02 12:49:40 -0700</bug_when>
    <thetext>Comment on attachment 213184
Patch

Attachment 213184 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/3025005</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935503</commentid>
    <comment_count>12</comment_count>
      <attachid>213187</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-10-02 13:01:03 -0700</bug_when>
    <thetext>Created attachment 213187
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935507</commentid>
    <comment_count>13</comment_count>
      <attachid>213187</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-02 13:11:00 -0700</bug_when>
    <thetext>Comment on attachment 213187
Patch

Attachment 213187 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/2933037</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935514</commentid>
    <comment_count>14</comment_count>
      <attachid>213190</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-10-02 13:19:09 -0700</bug_when>
    <thetext>Created attachment 213190
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935520</commentid>
    <comment_count>15</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-10-02 13:32:49 -0700</bug_when>
    <thetext>Committed r156791: &lt;http://trac.webkit.org/changeset/156791&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213136</attachid>
            <date>2013-10-01 17:44:30 -0700</date>
            <delta_ts>2013-10-02 12:17:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122195-20131001174429.patch</filename>
            <type>text/plain</type>
            <size>46965</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2NzUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
MDViYjBhYWY4M2I3NGFhMGE2ZDE0NGY2NDFmNDY2ZjdlZTcxYzVlLi44MzY0ZTMyNzQyMmE0Njdm
ZGVlMzJlMjM1MWY5NzZiZTFkNTg5OThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MyBAQAorMjAxMy0xMC0wMSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIEltcGxlbWVudCBBcnJheSBrZXksIHZhbHVlIGFuZCBlbnRyaWVzIGl0ZXJhdG9y
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyMTk1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGlt
cGxlbWVudGF0aW9uIG9mIEVTNiBBcnJheSBpdGVyYXRvcnMgZm9yIGtleXMoKSwgdmFsdWVzKCkg
YW5kIGVudHJpZXMoKQorCisgICAgICAgIEZhaXJseSBzZWxmIGV4cGxhbmF0b3J5IGFzIHdlIGp1
c3QgbmVlZCBhIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBzbyB0aGF0IHdlIGNhbgorICAgICAgICBp
bXBsZW1lbnQgYW5kIHRlc3Qgb3RoZXIgZmVhdHVyZXMuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlJ
dGVyYXRvckNvbnN0cnVjdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OkFycmF5SXRlcmF0
b3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlJ
dGVyYXRvckNvbnN0cnVjdG9yLmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpBcnJheUl0ZXJhdG9y
Q29uc3RydWN0b3I6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkFycmF5SXRlcmF0b3JDb25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6QXJyYXlJdGVyYXRvckNvbnN0
cnVjdG9yOjpBcnJheUl0ZXJhdG9yQ29uc3RydWN0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvQXJy
YXlJdGVyYXRvclByb3RvdHlwZS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpBcnJheUl0ZXJh
dG9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OmNyZWF0ZUl0ZXJh
dG9yUmVzdWx0KToKKyAgICAgICAgKEpTQzo6YXJyYXlJdGVyYXRvclByb3RvdHlwZU5leHQpOgor
ICAgICAgICAqIHJ1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oOiBBZGRlZC4KKyAgICAg
ICAgKEpTQzo6QXJyYXlJdGVyYXRvclByb3RvdHlwZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6
QXJyYXlJdGVyYXRvclByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6
QXJyYXlJdGVyYXRvclByb3RvdHlwZTo6QXJyYXlJdGVyYXRvclByb3RvdHlwZSk6CisgICAgICAg
ICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9G
dW5jVmFsdWVzKToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNFbnRyaWVzKToKKyAgICAg
ICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNLZXlzKToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vbklk
ZW50aWZpZXJzLmg6CisgICAgICAgICogcnVudGltZS9JZGVudGlmaWVyLmg6CisgICAgICAgIChK
U0M6OklkZW50aWZpZXI6OmNyZWF0ZUVtcHR5VW5pcXVlKToKKyAgICAgICAgKiBydW50aW1lL0pT
QXJyYXlJdGVyYXRvci5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6
OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlJdGVyYXRvci5oOiBB
ZGRlZC4KKyAgICAgICAgKEpTQzo6SlNBcnJheUl0ZXJhdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkpT
QXJyYXlJdGVyYXRvcjo6aXRlcmF0aW9uS2luZCk6CisgICAgICAgIChKU0M6OkpTQXJyYXlJdGVy
YXRvcjo6aXRlcmF0ZWRPYmplY3QpOgorICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6Om5l
eHRJbmRleCk6CisgICAgICAgIChKU0M6OkpTQXJyYXlJdGVyYXRvcjo6c2V0TmV4dEluZGV4KToK
KyAgICAgICAgKEpTQzo6SlNBcnJheUl0ZXJhdG9yOjpmaW5pc2gpOgorICAgICAgICAoSlNDOjpK
U0FycmF5SXRlcmF0b3I6OkpTQXJyYXlJdGVyYXRvcik6CisgICAgICAgICogcnVudGltZS9KU0ds
b2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpyZXNldCk6Cisg
ICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0dsb2Jh
bE9iamVjdDo6aXRlcmF0b3JSZXN1bHRTdHJ1Y3R1cmUpOgorCiAyMDEzLTEwLTAxICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgVmFyaWFibGUgZXZlbnQgc3RyZWFt
IChmb3IgREZHIE9TUiBleGl0KSBzaG91bGQgYmUgZXhwbGljaXQgYWJvdXQgd2hlcmUgb24gdGhl
IHN0YWNrIGEgU2V0TG9jYWwgcHV0IGEgdmFsdWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggYmQwNjk1MDgyZWVhNTE0ODFiZDJlY2QxMmNmMjllNjZkMDAxYTE0Ny4uMDhjZjQ0ZTdl
NGU4NWM5OWFiMDVhMGU5NDVmMDU1NTEzYTA4ODRmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTkzOCw2ICs5MzgsMTIgQEAKIAkJQTdCNDhGNDkwRUU4OTM2RjAwRENCREI2IC8q
IEV4ZWN1dGFibGVBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTdCNDhEQjYwRUU3NENGQzAwRENCREI2IC8qIEV4ZWN1dGFibGVBbGxv
Y2F0b3IuY3BwICovOyB9OwogCQlBN0I0QUNBRjE0ODRDOUNFMDBCMzhBMzYgLyogSlNFeHBvcnRN
YWNyb3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
QjRBQ0FFMTQ4NEM5Q0UwMEIzOEEzNiAvKiBKU0V4cG9ydE1hY3Jvcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3QjYwMTgyMTYzOUZEMkEwMDM3
MkJBMyAvKiBVbmxpbmtlZENvZGVCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTc5RTc4MUYxNUVFQ0JBODAwNDdDODU1IC8qIFVubGlua2VkQ29k
ZUJsb2NrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJQTdCREFFQzYxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0b3JDb25zdHJ1Y3Rvci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0JEQUVD
MDE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yLmNwcCAqLzsgfTsK
KwkJQTdCREFFQzcxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0b3JDb25zdHJ1Y3Rvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCREFFQzEx
N0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0b3JDb25zdHJ1Y3Rvci5oICovOyB9OworCQlB
N0JEQUVDODE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0JEQUVDMjE3RjRF
QTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAgKi87IH07CisJCUE3QkRB
RUM5MTdGNEVBMTQwMEY2MTQwQyAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0JEQUVDMzE3RjRFQTE0MDBG
NjE0MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oICovOyB9OworCQlBN0JEQUVDQTE3RjRF
QTE0MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QkRBRUM0MTdGNEVBMTQwMEY2MTQwQyAvKiBKU0Fy
cmF5SXRlcmF0b3IuY3BwICovOyB9OworCQlBN0JEQUVDQjE3RjRFQTE0MDBGNjE0MEMgLyogSlNB
cnJheUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBN0JEQUVDNTE3RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9yLmggKi87IH07
CiAJCUE3QkZGM0MwMTc5ODY4OTQwMDAyRjQ2MiAvKiBERkdGaWx0cmF0aW9uUmVzdWx0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0JGRjNCRjE3OTg2
ODk0MDAwMkY0NjIgLyogREZHRmlsdHJhdGlvblJlc3VsdC5oICovOyB9OwogCQlBN0MwQzRBQzE2
ODEwMzAyMDAxNzAxMUQgLyogSlNTY3JpcHRSZWZQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0MwQzRBQjE2N0MwOENEMDAxNzAxMUQgLyog
SlNTY3JpcHRSZWZQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQTdDMEM0QUQxNjgxMDY3RTAwMTcwMTFEIC8qIEpTU2NyaXB0UmVmLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QzBDNEFB
MTY3QzA4Q0QwMDE3MDExRCAvKiBKU1NjcmlwdFJlZi5jcHAgKi87IH07CkBAIC0yMTU5LDYgKzIx
NjUsMTIgQEAKIAkJQTdCNDhEQjUwRUU3NENGQzAwRENCREI2IC8qIEV4ZWN1dGFibGVBbGxvY2F0
b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhlY3V0YWJsZUFsbG9jYXRv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0I0OERCNjBFRTc0Q0ZDMDBEQ0JE
QjYgLyogRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBFeGVjdXRhYmxlQWxsb2NhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTdCNEFDQUUxNDg0QzlDRTAwQjM4QTM2IC8qIEpTRXhwb3J0TWFjcm9zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXhwb3J0TWFjcm9zLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3QkRBRUMwMTdGNEVBMTQwMEY2MTQwQyAvKiBBcnJheUl0
ZXJhdG9yQ29uc3RydWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQTdCREFFQzExN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0b3JDb25zdHJ1Y3Rv
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcnJheUl0ZXJhdG9yQ29uc3Ry
dWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTdCREFFQzIxN0Y0RUExNDAw
RjYxNDBDIC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUE3QkRBRUMzMTdGNEVBMTQwMEY2MTQwQyAvKiBBcnJheUl0ZXJh
dG9yUHJvdG90eXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFycmF5SXRl
cmF0b3JQcm90b3R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTdCREFFQzQx
N0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0FycmF5SXRlcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBN0JEQUVDNTE3RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9y
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQXJyYXlJdGVyYXRvci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0JGRjNCRjE3OTg2ODk0MDAwMkY0NjIgLyog
REZHRmlsdHJhdGlvblJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBE
RkdGaWx0cmF0aW9uUmVzdWx0Lmg7IHBhdGggPSBkZmcvREZHRmlsdHJhdGlvblJlc3VsdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0MwQzRBQTE2N0MwOENEMDAxNzAxMUQgLyog
SlNTY3JpcHRSZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNT
Y3JpcHRSZWYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0MwQzRBQjE2N0Mw
OENEMDAxNzAxMUQgLyogSlNTY3JpcHRSZWZQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTU2NyaXB0UmVmUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMzQzMSw2ICszNDQzLDEyIEBACiAJCQkJQTdDQTNBRTIxN0RBNDFBRTAwNjUzOEFG
IC8qIEpTV2Vha01hcC5oICovLAogCQkJCUE3Q0EzQUU5MTdEQTUxNjgwMDY1MzhBRiAvKiBXZWFr
TWFwRGF0YS5jcHAgKi8sCiAJCQkJQTdDQTNBRUExN0RBNTE2ODAwNjUzOEFGIC8qIFdlYWtNYXBE
YXRhLmggKi8sCisJCQkJQTdCREFFQzAxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0b3JD
b25zdHJ1Y3Rvci5jcHAgKi8sCisJCQkJQTdCREFFQzExN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5
SXRlcmF0b3JDb25zdHJ1Y3Rvci5oICovLAorCQkJCUE3QkRBRUMyMTdGNEVBMTQwMEY2MTQwQyAv
KiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcCAqLywKKwkJCQlBN0JEQUVDMzE3RjRFQTE0MDBG
NjE0MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oICovLAorCQkJCUE3QkRBRUM0MTdGNEVB
MTQwMEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3IuY3BwICovLAorCQkJCUE3QkRBRUM1MTdGNEVB
MTQwMEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3IuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gcnVu
dGltZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC00MzEzLDYgKzQzMzEsNyBAQAog
CQkJCTBGNDY4MENCMTRCQkIxNzIwMEJGRTI3MiAvKiBMTEludE9mZmxpbmVBc21Db25maWcuaCBp
biBIZWFkZXJzICovLAogCQkJCUZFRDI4N0IyMTVFQzlBNTcwMERBODE2MSAvKiBMTEludE9wY29k
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0NjgwQTUxNEJBN0Y4RDAwQkZFMjcyIC8qIExMSW50
U2xvd1BhdGhzLmggaW4gSGVhZGVycyAqLywKKwkJCQlBN0JEQUVDQjE3RjRFQTE0MDBGNjE0MEMg
LyogSlNBcnJheUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjBCODM5RDE0QkNGNDY2
MDA4ODVCNEYgLyogTExJbnRUaHVua3MuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RTVBQjM4MTc5
OUU0QjIwMEQyODMzRCAvKiBMTFZNRGlzYXNzZW1ibGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
NDJFMzEzOTEzNEZGMEE2MDBBRkFEQjUgLyogTG9jYWwuaCBpbiBIZWFkZXJzICovLApAQCAtNDM3
Miw2ICs0MzkxLDcgQEAKIAkJCQkwRkNDQUU0NTE2RDBDRjc0MDBEMEM2NUIgLyogUGFyc2VyRXJy
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3N0YxODI1MTY0MTkyQzcwMDY0MEE0NyAvKiBQYXJz
ZXJNb2Rlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjUzMDNENjQxNDQ3QjlFMTAwRDNGOTA0IC8q
IFBhcnNlclRva2Vucy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTdCREFFQzcxN0Y0RUExNDAwRjYx
NDBDIC8qIEFycmF5SXRlcmF0b3JDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYz
NEIxNEMxNkQ0M0UwRDAwMUNEQTVBIC8qIFBvbHltb3JwaGljQWNjZXNzU3RydWN0dXJlTGlzdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5RkM4QzQxNEUxQjYwMDAwRDUyQUUwIC8qIFBvbHltb3Jw
aGljUHV0QnlJZExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTgyMDYxMTZCRkUzODMwMDI0
MEQwMiAvKiBQcmVjaXNlSnVtcFRhcmdldHMuaCBpbiBIZWFkZXJzICovLApAQCAtNDQxOSw2ICs0
NDM5LDcgQEAKIAkJCQlCQzE4QzUyQzBFMTZGQ0QyMDBCMzQ0NjAgLyogUmVnRXhwT2JqZWN0Lmx1
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEMjAyQzQwRTE3MDZBNzAwMkM3RTgyIC8qIFJlZ0V4
cFByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzIwQjI1OTkxNzA2NTM2MjAwQzIxRjRF
IC8qIFJlZ2lvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTdCREFFQzkxN0Y0RUExNDAwRjYxNDBD
IC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDVE
MEUxNkY1Q0QwMEIzNDQ2MCAvKiBSZWdpc3Rlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTY5QTA3
MkIwRUQxQ0U2OTAwRjFGNjgxIC8qIFJlZ2lzdGVySUQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
QjdGMzlEMTVFRDhFNDYwMEYxNjdCMiAvKiBSZWplY3QuaCBpbiBIZWFkZXJzICovLApAQCAtNTA5
Nyw2ICs1MTE4LDcgQEAKIAkJCQlBNzIwMjhCNjE3OTc2MDFFMDA5ODAyOEMgLyogSlNDVGVzdFJ1
bm5lclV0aWxzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMkI2NkVCMTdCNkI1QUIwMEE3QUUz
RiAvKiBKU0RhdGFWaWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMkI2NkVEMTdCNkI1QUIw
MEE3QUUzRiAvKiBKU0RhdGFWaWV3UHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE3
QkRBRUNBMTdGNEVBMTQwMEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3IuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTc4ODAxNDAxNDcxQUQ5MjAwNDFCMDE2IC8qIEpTRGF0ZU1hdGguY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMTQwNTY2RDYxMDdFQzI3MTAwNURCQzhEIC8qIEpTRnVuY3Rpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5RDIxMDdFQzM3NjAwNDI3QTQ4IC8qIEpTR2xvYmFs
T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNTE4OSw2ICs1MjExLDcgQEAKIAkJCQlFMTI0
QThGODBFNTU1Nzc1MDAzMDkxRjEgLyogT3BhcXVlSlNTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTY5QTA3OUEwRUQxRDNBRTAwRjFGNjgxIC8qIE9wY29kZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxNDI4MDg1MDEwN0VDMEQ3MDAxM0U3QjIgLyogT3BlcmF0aW9ucy5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlBN0JEQUVDODE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclBy
b3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkUyMjhFRTE0MzZBQjJDMDAxOTZDNDgg
LyogT3B0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDhGMjFCQzEwN0VDNTREMDA0MkVD
MkMgLyogUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMDUyQzM0MEZCNzkyMTkwMDQ4
RkRDMyAvKiBQYXJzZXJBcmVuYS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTUyMzMsNiArNTI1Niw3
IEBACiAJCQkJQTcyOTlEQTExN0QxMjg0ODAwNUY1RkY5IC8qIFNldFByb3RvdHlwZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRjJCNjcwNDE3QjZCNUFCMDBBN0FFM0YgLyogU2ltcGxlVHlwZWRB
cnJheUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzIyNTQ5NDMxNUY3REJBQTAw
NjVFODk4IC8qIFNsb3RWaXNpdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE3QkRBRUM2MTdG
NEVBMTQwMEY2MTQwQyAvKiBBcnJheUl0ZXJhdG9yQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTMzMDQwMkMwRTZBNzY0MDAwNzg2RTZBIC8qIFNtYWxsU3RyaW5ncy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRjhGMkI5RTE3MzA2QzhEMDA3REJEQTUgLyogU291cmNlQ29kZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQ5M0FGQTE2RDBDQUQzMDA4NDUwOEIgLyogU291cmNl
UHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wOTE2ZWVlZjJiNTMwNTYyMjE5ZTg3OTVhNjBjMzJmODExNTY0ODRmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvckNvbnN0cnVj
dG9yLmNwcApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
LCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXJyYXlJdGVy
YXRvckNvbnN0cnVjdG9yLmgiCisKKyNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgorI2lu
Y2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorCitu
YW1lc3BhY2UgSlNDIHsKKworY29uc3QgQ2xhc3NJbmZvIEFycmF5SXRlcmF0b3JDb25zdHJ1Y3Rv
cjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCAwLCAwLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKEFycmF5SXRlcmF0b3JDb25zdHJ1Y3RvcikgfTsKKwordm9pZCBBcnJheUl0ZXJh
dG9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKK3sKKyAgICBCYXNlOjpmaW5p
c2hDcmVhdGlvbih2bSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FycmF5SXRlcmF0b3JDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDg5ZDVk
OWU5MDRjYjJjOGJkMzMxOWEzMDY0Mzg3MDAxNGQ5NDZjMgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JDb25zdHJ1Y3Rvci5oCkBA
IC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUsIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpZm5kZWYgQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yX2gKKyNkZWZpbmUgQXJyYXlJ
dGVyYXRvckNvbnN0cnVjdG9yX2gKKworI2luY2x1ZGUgIkludGVybmFsRnVuY3Rpb24uaCIKKwor
bmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIEFycmF5SXRlcmF0b3JQcm90b3R5cGU7CisKK2NsYXNz
IEFycmF5SXRlcmF0b3JDb25zdHJ1Y3RvciA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKK3B1
YmxpYzoKKyAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKKworICAgIHN0YXRpYyBB
cnJheUl0ZXJhdG9yQ29uc3RydWN0b3IqIGNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0
dXJlLCBBcnJheUl0ZXJhdG9yUHJvdG90eXBlKikKKyAgICB7CisgICAgICAgIEFycmF5SXRlcmF0
b3JDb25zdHJ1Y3RvciogY29uc3RydWN0b3IgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxB
cnJheUl0ZXJhdG9yQ29uc3RydWN0b3I+KHZtLmhlYXApKSBBcnJheUl0ZXJhdG9yQ29uc3RydWN0
b3Iodm0sIHN0cnVjdHVyZSk7CisgICAgICAgIGNvbnN0cnVjdG9yLT5maW5pc2hDcmVhdGlvbih2
bSk7CisgICAgICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKKyAgICB9CisKKyAgICBERUNMQVJFX0lO
Rk87CisKKyAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICB7CisgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICB9CisK
K3ByaXZhdGU6CisgICAgQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCisgICAgICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIHsKKyAgICB9
CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYpOworfTsKKworfQorCisjZW5kaWYgLy8gIWRl
ZmluZWQoQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yX2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjVlYWQ4OWJmZjU1OTAyZDlmMGI1YWUwZGE5MjZiMmI1MzQwMjM4ZTUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90
eXBlLmNwcApAQCAtMCwwICsxLDEzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFycmF5SXRl
cmF0b3JQcm90b3R5cGUuaCIKKworI2luY2x1ZGUgIkpTQXJyYXlJdGVyYXRvci5oIgorI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKKwor
bmFtZXNwYWNlIEpTQyB7CisKK2NvbnN0IENsYXNzSW5mbyBBcnJheUl0ZXJhdG9yUHJvdG90eXBl
OjpzX2luZm8gPSB7ICJBcnJheSBJdGVyYXRvciIsICZCYXNlOjpzX2luZm8sIDAsIDAsIENSRUFU
RV9NRVRIT0RfVEFCTEUoQXJyYXlJdGVyYXRvclByb3RvdHlwZSkgfTsKKworc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlJdGVyYXRvclByb3RvdHlwZU5leHQoRXhlY1N0
YXRlKik7CisKK3ZvaWQgQXJyYXlJdGVyYXRvclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIEJhc2U6OmZpbmlzaENy
ZWF0aW9uKHZtKTsKKyAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7CisgICAgdm0ucHJvdG90
eXBlTWFwLmFkZFByb3RvdHlwZSh0aGlzKTsKKworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT04odm0u
cHJvcGVydHlOYW1lcy0+bmV4dCwgYXJyYXlJdGVyYXRvclByb3RvdHlwZU5leHQsIERvbnRFbnVt
LCAwKTsKK30KKworc3RhdGljIEVuY29kZWRKU1ZhbHVlIGNyZWF0ZUl0ZXJhdG9yUmVzdWx0KENh
bGxGcmFtZSogY2FsbEZyYW1lLCBBcnJheUl0ZXJhdGlvbktpbmQga2luZCwgc2l6ZV90IGluZGV4
LCBKU1ZhbHVlIHJlc3VsdCwgYm9vbCBkb25lKQoreworICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QgPSBjYWxsRnJhbWUtPmNhbGxlZSgpLT5nbG9iYWxPYmplY3QoKTsKKyAgICBKU09i
amVjdCogcmVzdWx0T2JqZWN0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoY2FsbEZyYW1lKTsKKyAg
ICByZXN1bHRPYmplY3QtPnB1dERpcmVjdChjYWxsRnJhbWUtPnZtKCksIGNhbGxGcmFtZS0+cHJv
cGVydHlOYW1lcygpLmRvbmUsIGpzQm9vbGVhbihkb25lKSk7CisgICAgc3dpdGNoIChraW5kICYg
fkFycmF5SXRlcmF0ZVNwYXJzZVRhZykgeworICAgIGNhc2UgQXJyYXlJdGVyYXRlS2V5OgorICAg
ICAgICByZXN1bHRPYmplY3QtPnB1dERpcmVjdChjYWxsRnJhbWUtPnZtKCksIGNhbGxGcmFtZS0+
cHJvcGVydHlOYW1lcygpLnZhbHVlLCBkb25lID8ganNVbmRlZmluZWQoKSA6IGpzTnVtYmVyKGlu
ZGV4KSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQXJyYXlJdGVyYXRlVmFsdWU6CisgICAg
ICAgIHJlc3VsdE9iamVjdC0+cHV0RGlyZWN0KGNhbGxGcmFtZS0+dm0oKSwgY2FsbEZyYW1lLT5w
cm9wZXJ0eU5hbWVzKCkudmFsdWUsIGRvbmUgPyBqc1VuZGVmaW5lZCgpIDogcmVzdWx0KTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBBcnJheUl0ZXJhdGVLZXlWYWx1ZTogeworICAgICAgICBp
ZiAoIWRvbmUpIHsKKyAgICAgICAgICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7CisgICAg
ICAgICAgICBhcmdzLmFwcGVuZChqc051bWJlcihpbmRleCkpOworICAgICAgICAgICAgYXJncy5h
cHBlbmQocmVzdWx0KTsKKyAgICAgICAgICAgIEpTQXJyYXkqIHJlc3VsdEFycmF5ID0gY29uc3Ry
dWN0QXJyYXkoY2FsbEZyYW1lLCAwLCBnbG9iYWxPYmplY3QsIGFyZ3MpOworICAgICAgICAgICAg
cmVzdWx0T2JqZWN0LT5wdXREaXJlY3QoY2FsbEZyYW1lLT52bSgpLCBjYWxsRnJhbWUtPnByb3Bl
cnR5TmFtZXMoKS52YWx1ZSwgcmVzdWx0QXJyYXkpOworICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgIHJlc3VsdE9iamVjdC0+cHV0RGlyZWN0KGNhbGxGcmFtZS0+dm0oKSwgY2FsbEZyYW1lLT5w
cm9wZXJ0eU5hbWVzKCkudmFsdWUsIGpzVW5kZWZpbmVkKCkpOworCisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIH0KKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdE9iamVjdCk7Cit9Cisg
ICAgCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5SXRlcmF0b3JQcm90b3R5cGVO
ZXh0KENhbGxGcmFtZSogY2FsbEZyYW1lKQoreworICAgIEpTQXJyYXlJdGVyYXRvciogaXRlcmF0
b3IgPSBqc0R5bmFtaWNDYXN0PEpTQXJyYXlJdGVyYXRvcio+KGNhbGxGcmFtZS0+dGhpc1ZhbHVl
KCkpOworICAgIGlmICghaXRlcmF0b3IpCisgICAgICAgIHRocm93VHlwZUVycm9yKGNhbGxGcmFt
ZSwgQVNDSUlMaXRlcmFsKCJDYW5ub3QgY2FsbCBBcnJheUl0ZXJhdG9yLm5leHQoKSBvbiBhIG5v
bi1BcnJheUl0ZXJhdG9yIG9iamVjdCIpKTsKKyAgICBKU09iamVjdCogaXRlcmF0ZWRPYmplY3Qg
PSBpdGVyYXRvci0+aXRlcmF0ZWRPYmplY3QoKTsKKyAgICBzaXplX3QgaW5kZXggPSBpdGVyYXRv
ci0+bmV4dEluZGV4KCk7CisgICAgQXJyYXlJdGVyYXRpb25LaW5kIGtpbmQgPSBpdGVyYXRvci0+
aXRlcmF0aW9uS2luZCgpOworICAgIEpTVmFsdWUganNMZW5ndGggPSBKU1ZhbHVlKGl0ZXJhdGVk
T2JqZWN0KS5nZXQoY2FsbEZyYW1lLCBjYWxsRnJhbWUtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgp
OworICAgIGlmIChjYWxsRnJhbWUtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKTsKKworICAgIHNpemVfdCBsZW5ndGggPSBqc0xlbmd0aC50
b1VJbnQzMihjYWxsRnJhbWUpOworICAgIGlmIChjYWxsRnJhbWUtPmhhZEV4Y2VwdGlvbigpKQor
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKTsKKworICAgIGlmIChpbmRl
eCA+PSBsZW5ndGgpIHsKKyAgICAgICAgaXRlcmF0b3ItPmZpbmlzaCgpOworICAgICAgICByZXR1
cm4gY3JlYXRlSXRlcmF0b3JSZXN1bHQoY2FsbEZyYW1lLCBraW5kLCBpbmRleCwganNVbmRlZmlu
ZWQoKSwgdHJ1ZSk7CisgICAgfQorICAgIGlmIChKU1ZhbHVlIHJlc3VsdCA9IGl0ZXJhdGVkT2Jq
ZWN0LT50cnlHZXRJbmRleFF1aWNrbHkoaW5kZXgpKSB7CisgICAgICAgIGl0ZXJhdG9yLT5zZXRO
ZXh0SW5kZXgoaW5kZXggKyAxKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUl0ZXJhdG9yUmVzdWx0
KGNhbGxGcmFtZSwga2luZCwgaW5kZXgsIHJlc3VsdCwgZmFsc2UpOworICAgIH0KKyAgICAKKyAg
ICBKU1ZhbHVlIHJlc3VsdCA9IGpzVW5kZWZpbmVkKCk7CisgICAgUHJvcGVydHlTbG90IHNsb3Qo
aXRlcmF0ZWRPYmplY3QpOworICAgIGlmIChraW5kID4gQXJyYXlJdGVyYXRlU3BhcnNlVGFnKSB7
CisgICAgICAgIC8vIFdlIGFzc3VtZSB0aGF0IHRoZSBpbmRleGVkIHByb3BlcnR5IHdpbGwgYmUg
YW4gb3duIHByb3BlcnR5IHNvIGNhY2hlIHRoZSBnZXRPd25Qcm9wZXJ0eQorICAgICAgICAvLyBt
ZXRob2QgbG9jYWxseQorICAgICAgICBhdXRvIGdldE93blByb3BlcnR5U2xvdEJ5SW5kZXggPSBp
dGVyYXRlZE9iamVjdC0+bWV0aG9kVGFibGUoKS0+Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleDsK
KyAgICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7CisgICAgICAgICAgICBpZiAoZ2V0T3du
UHJvcGVydHlTbG90QnlJbmRleChpdGVyYXRlZE9iamVjdCwgY2FsbEZyYW1lLCBpbmRleCwgc2xv
dCkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBzbG90LmdldFZhbHVlKGNhbGxGcmFtZSwg
aW5kZXgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgaWYgKGl0ZXJhdGVkT2JqZWN0LT5nZXRQcm9wZXJ0eVNsb3QoY2FsbEZyYW1lLCBpbmRleCwg
c2xvdCkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBzbG90LmdldFZhbHVlKGNhbGxGcmFt
ZSwgaW5kZXgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgaW5kZXgrKzsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoaXRlcmF0ZWRPYmplY3Qt
PmdldFByb3BlcnR5U2xvdChjYWxsRnJhbWUsIGluZGV4LCBzbG90KSkKKyAgICAgICAgcmVzdWx0
ID0gc2xvdC5nZXRWYWx1ZShjYWxsRnJhbWUsIGluZGV4KTsKKworICAgIGlmIChpbmRleCA9PSBs
ZW5ndGgpCisgICAgICAgIGl0ZXJhdG9yLT5maW5pc2goKTsKKyAgICBlbHNlCisgICAgICAgIGl0
ZXJhdG9yLT5zZXROZXh0SW5kZXgoaW5kZXggKyAxKTsKKyAgICByZXR1cm4gY3JlYXRlSXRlcmF0
b3JSZXN1bHQoY2FsbEZyYW1lLCBraW5kLCBpbmRleCwganNVbmRlZmluZWQoKSwgaW5kZXggPT0g
bGVuZ3RoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwZWU5YTZhMjY3NmQ5OWQx
OTM3ZDM4Yzg3ODEyOTU4NDRmYTBiNWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmgKQEAgLTAsMCArMSw2MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlX2gKKyNkZWZpbmUgQXJyYXlJdGVyYXRvclByb3RvdHlw
ZV9oCisKKyNpbmNsdWRlICJKU09iamVjdC5oIgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3Mg
QXJyYXlJdGVyYXRvclByb3RvdHlwZSA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKK3B1Ymxp
YzoKKyAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKKworICAgIHN0YXRpYyBBcnJh
eUl0ZXJhdG9yUHJvdG90eXBlKiBjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICB7CisgICAgICAgIEFycmF5SXRlcmF0
b3JQcm90b3R5cGUqIHByb3RvdHlwZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEFycmF5
SXRlcmF0b3JQcm90b3R5cGU+KHZtLmhlYXApKSBBcnJheUl0ZXJhdG9yUHJvdG90eXBlKHZtLCBz
dHJ1Y3R1cmUpOworICAgICAgICBwcm90b3R5cGUtPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxP
YmplY3QpOworICAgICAgICByZXR1cm4gcHJvdG90eXBlOworICAgIH0KKworICAgIERFQ0xBUkVf
SU5GTzsKKworICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIH0K
KworcHJpdmF0ZToKKyAgICBBcnJheUl0ZXJhdG9yUHJvdG90eXBlKFZNJiB2bSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCisgICAgICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIHsKKyAgICB9
CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kik7Cit9OworCit9
CisKKyNlbmRpZiAvLyAhZGVmaW5lZChBcnJheUl0ZXJhdG9yUHJvdG90eXBlX2gpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKaW5kZXggNWY4
Yzc2ZDMyMDY2OWE1YmU0YTQ1NmI1NGI1MzE2ZDZjNTY5MzQ0Ni4uYjJmNmE5ODcxMGRmNjY0NWU4
MzI1M2VkNDc0NDY5OGFiYzcwZmQxYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkVy
cm9yLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJKSVQuaCIKKyNpbmNs
dWRlICJKU0FycmF5SXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU1N0cmluZ0J1aWxkZXIuaCIKICNp
bmNsdWRlICJKU1N0cmluZ0pvaW5lci5oIgogI2luY2x1ZGUgIkxvb2t1cC5oIgpAQCAtNjQsNiAr
NjUsOSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVu
Y01hcChFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFy
cmF5UHJvdG9GdW5jUmVkdWNlKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNSZWR1Y2VSaWdodChFeGVjU3RhdGUqKTsKIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jTGFzdEluZGV4T2Yo
RXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVBy
b3RvRnVuY1ZhbHVlcyhFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGFycmF5UHJvdG9GdW5jS2V5cyhFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jRW50cmllcyhFeGVjU3RhdGUqKTsKIAog
fQogCkBAIC0xMTIsNiArMTE2LDkgQEAgY29uc3QgQ2xhc3NJbmZvIEFycmF5UHJvdG90eXBlOjpz
X2luZm8gPSB7IkFycmF5IiwgJkpTQXJyYXk6OnNfaW5mbywgMCwgRXhlY1N0YXQKICAgcmVkdWNl
ICAgICAgICAgYXJyYXlQcm90b0Z1bmNSZWR1Y2UgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAx
CiAgIHJlZHVjZVJpZ2h0ICAgIGFycmF5UHJvdG9GdW5jUmVkdWNlUmlnaHQgICAgRG9udEVudW18
RnVuY3Rpb24gMQogICBtYXAgICAgICAgICAgICBhcnJheVByb3RvRnVuY01hcCAgICAgICAgICAg
IERvbnRFbnVtfEZ1bmN0aW9uIDEKKyAgdmFsdWVzICAgICAgICAgYXJyYXlQcm90b0Z1bmNWYWx1
ZXMgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAwCisgIGVudHJpZXMgICAgICAgIGFycmF5UHJv
dG9GdW5jRW50cmllcyAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMAorICBrZXlzICAgICAgICAg
ICBhcnJheVByb3RvRnVuY0tleXMgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDAKIEBlbmQK
ICovCiAKQEAgLTEzMzEsNCArMTMzOCwyMiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGFycmF5UHJvdG9GdW5jTGFzdEluZGV4T2YoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoLTEpKTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBhcnJheVByb3RvRnVuY1ZhbHVlcyhFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgSlNP
YmplY3QqIHRoaXNPYmogPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmlj
dE1vZGUpLnRvT2JqZWN0KGV4ZWMpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNBcnJh
eUl0ZXJhdG9yOjpjcmVhdGUoZXhlYywgZXhlYy0+Y2FsbGVlKCktPmdsb2JhbE9iamVjdCgpLT5h
cnJheUl0ZXJhdG9yU3RydWN0dXJlKCksIEFycmF5SXRlcmF0ZVZhbHVlLCB0aGlzT2JqKSk7Cit9
CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNFbnRyaWVzKEV4
ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU09iamVjdCogdGhpc09iaiA9IGV4ZWMtPmhvc3RUaGlz
VmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9kZSkudG9PYmplY3QoZXhlYyk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShKU0FycmF5SXRlcmF0b3I6OmNyZWF0ZShleGVjLCBleGVjLT5j
YWxsZWUoKS0+Z2xvYmFsT2JqZWN0KCktPmFycmF5SXRlcmF0b3JTdHJ1Y3R1cmUoKSwgQXJyYXlJ
dGVyYXRlS2V5VmFsdWUsIHRoaXNPYmopKTsKK30KKyAgICAKK0VuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNLZXlzKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU09i
amVjdCogdGhpc09iaiA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0
TW9kZSkudG9PYmplY3QoZXhlYyk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0FycmF5
SXRlcmF0b3I6OmNyZWF0ZShleGVjLCBleGVjLT5jYWxsZWUoKS0+Z2xvYmFsT2JqZWN0KCktPmFy
cmF5SXRlcmF0b3JTdHJ1Y3R1cmUoKSwgQXJyYXlJdGVyYXRlS2V5LCB0aGlzT2JqKSk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbW1vbklkZW50aWZpZXJzLmgKaW5kZXggNTQyMmM3YTRmOGI4MGU2NDMyMmMxMzk0OGVkYWQy
MDcxY2UwNDY1ZC4uZDg3ZDBiNDFiNDhjNjQ5ZmFkYjMwOWQ5ZDBiOTA0MDY3N2ZkYTRlNiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5o
CkBAIC0yOSw2ICsyOSw3IEBACiAjZGVmaW5lIEpTQ19DT01NT05fSURFTlRJRklFUlNfRUFDSF9Q
Uk9QRVJUWV9OQU1FKG1hY3JvKSBcCiAgICAgbWFjcm8oQXJyYXkpIFwKICAgICBtYWNybyhBcnJh
eUJ1ZmZlcikgXAorICAgIG1hY3JvKEFycmF5SXRlcmF0b3IpIFwKICAgICBtYWNybyhCWVRFU19Q
RVJfRUxFTUVOVCkgXAogICAgIG1hY3JvKEJvb2xlYW4pIFwKICAgICBtYWNybyhEYXRlKSBcCkBA
IC04MCw2ICs4MSw3IEBACiAgICAgbWFjcm8oZGVzY3JpcHRpb25zKSBcCiAgICAgbWFjcm8oZGlz
cGxheU5hbWUpIFwKICAgICBtYWNybyhkb2N1bWVudCkgXAorICAgIG1hY3JvKGRvbmUpIFwKICAg
ICBtYWNybyhlbnVtZXJhYmxlKSBcCiAgICAgbWFjcm8oZXZhbCkgXAogICAgIG1hY3JvKGV4ZWMp
IFwKQEAgLTEwNiw2ICsxMDgsNyBAQAogICAgIG1hY3JvKG1lc3NhZ2UpIFwKICAgICBtYWNybyht
dWx0aWxpbmUpIFwKICAgICBtYWNybyhuYW1lKSBcCisgICAgbWFjcm8obmV4dCkgXAogICAgIG1h
Y3JvKG5vdykgXAogICAgIG1hY3JvKG51bUlubGluZWRDYWxscykgXAogICAgIG1hY3JvKG51bUlu
bGluZWRHZXRCeUlkcykgXApAQCAtMjA4LDYgKzIxMSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICBjb25zdCBJZGVudGlmaWVyIHVuZGVyc2NvcmVQcm90bzsKICAgICAgICAgY29uc3QgSWRl
bnRpZmllciB0aGlzSWRlbnRpZmllcjsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciB1c2VTdHJp
Y3RJZGVudGlmaWVyOworICAgICAgICBjb25zdCBQcml2YXRlTmFtZSBpdGVyYXRvclByaXZhdGVO
YW1lOwogCiAgICAgICAgIAogI2RlZmluZSBKU0NfSURFTlRJRklFUl9ERUNMQVJFX0tFWVdPUkRf
TkFNRV9HTE9CQUwobmFtZSkgY29uc3QgSWRlbnRpZmllciBuYW1lIyNLZXl3b3JkOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllci5oCmluZGV4IGQ0ZGIxMGJhYjA5Mjlk
ZDhjMTg0OGQ2ZTQxNTQ2MGJiYjE1MTViZTQuLmJkMWVlY2M4Y2ExZmRhMmI4NjQ5OGRmMDVhZmE0
OTA0ODIxMjI2ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lk
ZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVy
LmgKQEAgLTYwLDYgKzYwLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAKICAgICAgICAg
Q1N0cmluZyBhc2NpaSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RyaW5nLmFzY2lpKCk7IH0KICAgICAg
ICAgQ1N0cmluZyB1dGY4KCkgY29uc3QgeyByZXR1cm4gbV9zdHJpbmcudXRmOCgpOyB9CisgICAg
ICAgIAorICAgICAgICBzdGF0aWMgSWRlbnRpZmllciBjcmVhdGVFbXB0eVVuaXF1ZShWTSogdm0p
CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBJZGVudGlmaWVyKHZtLCBTdHJpbmcoU3Ry
aW5nSW1wbDo6Y3JlYXRlRW1wdHlVbmlxdWUoKSkpOworICAgICAgICB9CiAKICAgICAgICAgc3Rh
dGljIElkZW50aWZpZXIgY3JlYXRlTENoYXJGcm9tVUNoYXIoVk0qIHZtLCBjb25zdCBVQ2hhciog
cywgaW50IGxlbmd0aCkgeyByZXR1cm4gSWRlbnRpZmllcih2bSwgYWRkOCh2bSwgcywgbGVuZ3Ro
KSk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJh
eUl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlJdGVy
YXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYmQ3YzQyZmFhMTBhODAwZWRhNjkzYTRkZGRiOTFmZjBjNzVl
NjU4NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QXJyYXlJdGVyYXRvci5jcHAKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkpTQXJyYXlJdGVyYXRvci5oIgorCituYW1lc3BhY2UgSlNDIHsKKworY29uc3QgQ2xhc3NJbmZv
IEpTQXJyYXlJdGVyYXRvcjo6c19pbmZvID0geyAiQXJyYXlJdGVyYXRvciIsICZCYXNlOjpzX2lu
Zm8sIDAsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNBcnJheUl0ZXJhdG9yKSB9OworCit2b2lk
IEpTQXJyYXlJdGVyYXRvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCos
IEFycmF5SXRlcmF0aW9uS2luZCBraW5kLCBKU09iamVjdCogaXRlcmF0ZWRPYmplY3QpCit7Cisg
ICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOworICAgIG1faXRlcmF0aW9uS2luZCA9IGtpbmQ7
CisgICAgbV9pdGVyYXRlZE9iamVjdC5zZXQodm0sIHRoaXMsIGl0ZXJhdGVkT2JqZWN0KTsKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUl0
ZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5SXRlcmF0b3Iu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xZWYwNTU3NjBlZGY4N2FmY2YxODMzMmQxNjk5Yjc3NTRiNDI4NmQ3Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUl0
ZXJhdG9yLmgKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBKU0FycmF5SXRlcmF0b3JfaAorI2RlZmluZSBKU0Fy
cmF5SXRlcmF0b3JfaAorCisjaW5jbHVkZSAiSlNPYmplY3QuaCIKKworbmFtZXNwYWNlIEpTQyB7
CisKK2VudW0gQXJyYXlJdGVyYXRpb25LaW5kIHsKKyAgICBBcnJheUl0ZXJhdGVLZXksCisgICAg
QXJyYXlJdGVyYXRlVmFsdWUsCisgICAgQXJyYXlJdGVyYXRlS2V5VmFsdWUsCisgICAgQXJyYXlJ
dGVyYXRlU3BhcnNlVGFnID0gNCwKKyAgICBBcnJheUl0ZXJhdGVTcGFyc2VLZXksCisgICAgQXJy
YXlJdGVyYXRlU3BhcnNlVmFsdWUsCisgICAgQXJyYXlJdGVyYXRlU3BhcnNlS2V5VmFsdWUKK307
CisKK2NsYXNzIEpTQXJyYXlJdGVyYXRvciA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKK3B1
YmxpYzoKKyAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKKworICAgIERFQ0xBUkVf
RVhQT1JUX0lORk87CisKKyAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKKyAg
ICB7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsK
KyAgICB9CisKKyAgICBzdGF0aWMgSlNBcnJheUl0ZXJhdG9yKiBjcmVhdGUoRXhlY1N0YXRlKiBl
eGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQXJyYXlJdGVyYXRpb25LaW5kIGtpbmQsIEpTT2Jq
ZWN0KiBpdGVyYXRlZE9iamVjdCkKKyAgICB7CisgICAgICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7
CisgICAgICAgIEpTQXJyYXlJdGVyYXRvciogaW5zdGFuY2UgPSBuZXcgKE5vdE51bGwsIGFsbG9j
YXRlQ2VsbDxKU0FycmF5SXRlcmF0b3I+KHZtLmhlYXApKSBKU0FycmF5SXRlcmF0b3Iodm0sIHN0
cnVjdHVyZSk7CisgICAgICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbih2bSwgc3RydWN0dXJl
LT5nbG9iYWxPYmplY3QoKSwga2luZCwgaXRlcmF0ZWRPYmplY3QpOworICAgICAgICByZXR1cm4g
aW5zdGFuY2U7CisgICAgfQorCisgICAgQXJyYXlJdGVyYXRpb25LaW5kIGl0ZXJhdGlvbktpbmQo
KSBjb25zdCB7IHJldHVybiBtX2l0ZXJhdGlvbktpbmQ7IH0KKyAgICBKU09iamVjdCogaXRlcmF0
ZWRPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX2l0ZXJhdGVkT2JqZWN0LmdldCgpOyB9CisgICAg
c2l6ZV90IG5leHRJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dEluZGV4OyB9CisgICAgdm9p
ZCBzZXROZXh0SW5kZXgoc2l6ZV90IG5leHRJbmRleCkgeyBtX25leHRJbmRleCA9IG5leHRJbmRl
eDsgfQorICAgIHZvaWQgZmluaXNoKCkgeyBtX25leHRJbmRleCA9IHN0ZDo6bnVtZXJpY19saW1p
dHM8c2l6ZV90Pjo6bWF4KCk7IH0KKyAgICAKKyAgICB1c2luZyBKU05vbkZpbmFsT2JqZWN0Ojph
cnJheVN0b3JhZ2VPck51bGw7CisKK3ByaXZhdGU6CisKKyAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKworICAgIEpTQXJyYXlJ
dGVyYXRvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAgICAgICA6IEJhc2Uodm0s
IHN0cnVjdHVyZSkKKyAgICAgICAgLCBtX25leHRJbmRleCgwKQorICAgIHsKKyAgICB9CisKKyAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBBcnJheUl0ZXJhdGlv
bktpbmQsIEpTT2JqZWN0KiBpdGVyYXRlZE9iamVjdCk7CisgICAgCisgICAgQXJyYXlJdGVyYXRp
b25LaW5kIG1faXRlcmF0aW9uS2luZDsKKyAgICBXcml0ZUJhcnJpZXI8SlNPYmplY3Q+IG1faXRl
cmF0ZWRPYmplY3Q7CisgICAgc2l6ZV90IG1fbmV4dEluZGV4OworfTsKKworfQorCisjZW5kaWYg
Ly8gIWRlZmluZWQoSlNBcnJheUl0ZXJhdG9yX2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggY2U4NDBiMjBjMWEwYTNmODk4OWRk
YjBmOTU1YTg3NDRkNGQxNWM0OS4uOTJmNWFiYTFiMTU0NWQ1MjkzZmNlNDZjZjc4ZWY0ZGFhM2Nl
M2Y1OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmNwcApAQCAtMzIsNiArMzIsOCBAQAogCiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCiAjaW5j
bHVkZSAiQXJyYXlDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIkFycmF5SXRlcmF0b3JDb25zdHJ1
Y3Rvci5oIgorI2luY2x1ZGUgIkFycmF5SXRlcmF0b3JQcm90b3R5cGUuaCIKICNpbmNsdWRlICJB
cnJheVByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkJvb2xlYW5Db25zdHJ1Y3Rvci5oIgogI2luY2x1
ZGUgIkJvb2xlYW5Qcm90b3R5cGUuaCIKQEAgLTUzLDYgKzU1LDcgQEAKICNpbmNsdWRlICJKU0Fy
cmF5QnVmZmVyLmgiCiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmgiCiAjaW5j
bHVkZSAiSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5oIgorI2luY2x1ZGUgIkpTQXJyYXlJdGVyYXRv
ci5oIgogI2luY2x1ZGUgIkpTQm91bmRGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTQ2FsbGJhY2tD
b25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkpTQ2FsbGJhY2tGdW5jdGlvbi5oIgpAQCAtMzgyLDcg
KzM4NSwxMiBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0OjpyZXNldChKU1ZhbHVlIHByb3RvdHlwZSkK
ICAgICBGT1JfRUFDSF9TSU1QTEVfQlVJTFRJTl9UWVBFKFBVVF9DT05TVFJVQ1RPUl9GT1JfU0lN
UExFX1RZUEUpCiAKICN1bmRlZiBQVVRfQ09OU1RSVUNUT1JfRk9SX1NJTVBMRV9UWVBFCi0KKyAg
ICBQcm90b3R5cGVNYXAmIHByb3RvdHlwZU1hcCA9IHZtLnByb3RvdHlwZU1hcDsKKyAgICBTdHJ1
Y3R1cmUqIGl0ZXJhdG9yUmVzdWx0U3RydWN0dXJlID0gcHJvdG90eXBlTWFwLmVtcHR5T2JqZWN0
U3RydWN0dXJlRm9yUHJvdG90eXBlKG1fb2JqZWN0UHJvdG90eXBlLmdldCgpLCBKU0ZpbmFsT2Jq
ZWN0OjpkZWZhdWx0SW5saW5lQ2FwYWNpdHkoKSk7CisgICAgUHJvcGVydHlPZmZzZXQgb2Zmc2V0
OworICAgIGl0ZXJhdG9yUmVzdWx0U3RydWN0dXJlID0gU3RydWN0dXJlOjphZGRQcm9wZXJ0eVRy
YW5zaXRpb24odm0sIGl0ZXJhdG9yUmVzdWx0U3RydWN0dXJlLCB2bS5wcm9wZXJ0eU5hbWVzLT5k
b25lLCAwLCAwLCBvZmZzZXQpOworICAgIGl0ZXJhdG9yUmVzdWx0U3RydWN0dXJlID0gU3RydWN0
dXJlOjphZGRQcm9wZXJ0eVRyYW5zaXRpb24odm0sIGl0ZXJhdG9yUmVzdWx0U3RydWN0dXJlLCB2
bS5wcm9wZXJ0eU5hbWVzLT52YWx1ZSwgMCwgMCwgb2Zmc2V0KTsKKyAgICBtX2l0ZXJhdG9yUmVz
dWx0U3RydWN0dXJlLnNldCh2bSwgdGhpcywgaXRlcmF0b3JSZXN1bHRTdHJ1Y3R1cmUpOwogCiAg
ICAgbV9ldmFsRnVuY3Rpb24uc2V0KHZtLCB0aGlzLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRo
aXMsIDEsIHZtLnByb3BlcnR5TmFtZXMtPmV2YWwuc3RyaW5nKCksIGdsb2JhbEZ1bmNFdmFsKSk7
CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmV2
YWwsIG1fZXZhbEZ1bmN0aW9uLmdldCgpLCBEb250RW51bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCAyNzRjOWJlZWU4ZjlhMzI1NzMz
ZDA5OGZjOGU5ZDg3MDYzOThkZTdlLi5hNjViOWY1MjlmOWMxMzMyOTQxNzZjZDM0NzE4YTExODcw
NmZkYTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmgKQEAgLTgxLDYgKzgxLDcgQEAgc3RydWN0IEhhc2hUYWJsZTsKICAgICBtYWNybyhFcnJv
ciwgZXJyb3IsIGVycm9yLCBFcnJvckluc3RhbmNlLCBFcnJvcikgXAogICAgIG1hY3JvKEpTQXJy
YXlCdWZmZXIsIGFycmF5QnVmZmVyLCBhcnJheUJ1ZmZlciwgSlNBcnJheUJ1ZmZlciwgQXJyYXlC
dWZmZXIpIFwKICAgICBtYWNybyhXZWFrTWFwLCB3ZWFrTWFwLCB3ZWFrTWFwLCBKU1dlYWtNYXAs
IFdlYWtNYXApIFwKKyAgICBtYWNybyhBcnJheUl0ZXJhdG9yLCBhcnJheUl0ZXJhdG9yLCBhcnJh
eUl0ZXJhdG9yLCBKU0FycmF5SXRlcmF0b3IsIEFycmF5SXRlcmF0b3IpIFwKIAogI2RlZmluZSBE
RUNMQVJFX1NJTVBMRV9CVUlMVElOX1RZUEUoY2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVy
TmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUpIFwKICAgICBjbGFzcyBKUyAjIyBjYXBpdGFsTmFt
ZTsgXApAQCAtMTk0LDYgKzE5NSw4IEBAIHByb3RlY3RlZDoKICAgICBXcml0ZUJhcnJpZXI8U3Ry
dWN0dXJlPiBtX3JlZ0V4cE1hdGNoZXNBcnJheVN0cnVjdHVyZTsKICAgICBXcml0ZUJhcnJpZXI8
U3RydWN0dXJlPiBtX3JlZ0V4cFN0cnVjdHVyZTsKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJl
PiBtX2ludGVybmFsRnVuY3Rpb25TdHJ1Y3R1cmU7CisgICAgCisgICAgV3JpdGVCYXJyaWVyPFN0
cnVjdHVyZT4gbV9pdGVyYXRvclJlc3VsdFN0cnVjdHVyZTsKIAogI2lmIEVOQUJMRShQUk9NSVNF
UykKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3Byb21pc2VTdHJ1Y3R1cmU7CkBAIC00
MDIsNiArNDA1LDcgQEAgcHVibGljOgogICAgIFN0cnVjdHVyZSogcmVnRXhwU3RydWN0dXJlKCkg
Y29uc3QgeyByZXR1cm4gbV9yZWdFeHBTdHJ1Y3R1cmUuZ2V0KCk7IH0KICAgICBTdHJ1Y3R1cmUq
IHNldFN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2V0U3RydWN0dXJlLmdldCgpOyB9CiAg
ICAgU3RydWN0dXJlKiBzdHJpbmdPYmplY3RTdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX3N0
cmluZ09iamVjdFN0cnVjdHVyZS5nZXQoKTsgfQorICAgIFN0cnVjdHVyZSogaXRlcmF0b3JSZXN1
bHRTdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX2l0ZXJhdG9yUmVzdWx0U3RydWN0dXJlLmdl
dCgpOyB9CiAKICNpZiBFTkFCTEUoUFJPTUlTRVMpCiAgICAgU3RydWN0dXJlKiBwcm9taXNlU3Ry
dWN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV9wcm9taXNlU3RydWN0dXJlLmdldCgpOyB9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggODY1ZDI4MWIxOTJkNDhjMWM2N2FmMTk3MTE2YjYzOTM4ODI2MjI2ZS4uMTUxOWEwNmQ0NDZm
YWU1NzFiNWYzNzA0YWQ4YWU1NmE1NzgwNjRiOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEz
LTEwLTAxICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVt
ZW50IEFycmF5IGtleSwgdmFsdWUgYW5kIGVudHJpZXMgaXRlcmF0b3JzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjIxOTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdHMKKworICAgICAgICAq
IGpzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBq
cy9hcnJheS1pdGVyYXRvcnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9hcnJh
eS1pdGVyYXRvcnMuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL09iamVj
dC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzOgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9hcnJh
eS1pdGVyYXRvcnMuanM6IEFkZGVkLgorCiAyMDEzLTEwLTAxICBUaW0gSG9ydG9uICA8dGltb3Ro
eV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFRpbGVkIGRyYXdpbmcgR3JhcGhpY3NMYXll
ciB0cmVlIGR1bXBzIHNob3VsZCBtYXRjaCBub24tdGlsZWQgbW9yZSBjbG9zZWx5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9qcy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy1leHBlY3RlZC50
eHQKaW5kZXggNDgxNGViNzIwNDVkODFmZTM1N2I0ZTBjMDgzYzI5MzE3YjIyOWEzMi4uOWVkZDA2
NjRjNDE0OGQyYjQ1NWNmY2ZjMDc4NDZlYTdiZDMzMGVjZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvanMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2pzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dApAQCAtNDUs
NyArNDUsNyBAQCBQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoT2JqZWN0LnByb3RvdHlw
ZSkgaXMgWydfX2RlZmluZUdldHRlcl9fJywgJ19fZGVmaQogUEFTUyBnZXRTb3J0ZWRPd25Qcm9w
ZXJ0eU5hbWVzKEZ1bmN0aW9uKSBpcyBbJ2xlbmd0aCcsICduYW1lJywgJ3Byb3RvdHlwZSddCiBQ
QVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoRnVuY3Rpb24ucHJvdG90eXBlKSBpcyBbJ2Fw
cGx5JywgJ2JpbmQnLCAnY2FsbCcsICdjb25zdHJ1Y3RvcicsICdsZW5ndGgnLCAnbmFtZScsICd0
b1N0cmluZyddCiBQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoQXJyYXkpIGlzIFsnaXNB
cnJheScsICdsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUnXQotUEFTUyBnZXRTb3J0ZWRPd25Q
cm9wZXJ0eU5hbWVzKEFycmF5LnByb3RvdHlwZSkgaXMgWydjb25jYXQnLCAnY29uc3RydWN0b3In
LCAnZXZlcnknLCAnZmlsdGVyJywgJ2ZvckVhY2gnLCAnaW5kZXhPZicsICdqb2luJywgJ2xhc3RJ
bmRleE9mJywgJ2xlbmd0aCcsICdtYXAnLCAncG9wJywgJ3B1c2gnLCAncmVkdWNlJywgJ3JlZHVj
ZVJpZ2h0JywgJ3JldmVyc2UnLCAnc2hpZnQnLCAnc2xpY2UnLCAnc29tZScsICdzb3J0JywgJ3Nw
bGljZScsICd0b0xvY2FsZVN0cmluZycsICd0b1N0cmluZycsICd1bnNoaWZ0J10KK1BBU1MgZ2V0
U29ydGVkT3duUHJvcGVydHlOYW1lcyhBcnJheS5wcm90b3R5cGUpIGlzIFsnY29uY2F0JywgJ2Nv
bnN0cnVjdG9yJywgJ2VudHJpZXMnLCAnZXZlcnknLCAnZmlsdGVyJywgJ2ZvckVhY2gnLCAnaW5k
ZXhPZicsICdqb2luJywgJ2tleXMnLCAnbGFzdEluZGV4T2YnLCAnbGVuZ3RoJywgJ21hcCcsICdw
b3AnLCAncHVzaCcsICdyZWR1Y2UnLCAncmVkdWNlUmlnaHQnLCAncmV2ZXJzZScsICdzaGlmdCcs
ICdzbGljZScsICdzb21lJywgJ3NvcnQnLCAnc3BsaWNlJywgJ3RvTG9jYWxlU3RyaW5nJywgJ3Rv
U3RyaW5nJywgJ3Vuc2hpZnQnLCAndmFsdWVzJ10KIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlO
YW1lcyhTdHJpbmcpIGlzIFsnZnJvbUNoYXJDb2RlJywgJ2xlbmd0aCcsICduYW1lJywgJ3Byb3Rv
dHlwZSddCiBQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoU3RyaW5nLnByb3RvdHlwZSkg
aXMgWydhbmNob3InLCAnYmlnJywgJ2JsaW5rJywgJ2JvbGQnLCAnY2hhckF0JywgJ2NoYXJDb2Rl
QXQnLCAnY29uY2F0JywgJ2NvbnN0cnVjdG9yJywgJ2ZpeGVkJywgJ2ZvbnRjb2xvcicsICdmb250
c2l6ZScsICdpbmRleE9mJywgJ2l0YWxpY3MnLCAnbGFzdEluZGV4T2YnLCAnbGVuZ3RoJywgJ2xp
bmsnLCAnbG9jYWxlQ29tcGFyZScsICdtYXRjaCcsICdyZXBsYWNlJywgJ3NlYXJjaCcsICdzbGlj
ZScsICdzbWFsbCcsICdzcGxpdCcsICdzdHJpa2UnLCAnc3ViJywgJ3N1YnN0cicsICdzdWJzdHJp
bmcnLCAnc3VwJywgJ3RvTG9jYWxlTG93ZXJDYXNlJywgJ3RvTG9jYWxlVXBwZXJDYXNlJywgJ3Rv
TG93ZXJDYXNlJywgJ3RvU3RyaW5nJywgJ3RvVXBwZXJDYXNlJywgJ3RyaW0nLCAndHJpbUxlZnQn
LCAndHJpbVJpZ2h0JywgJ3ZhbHVlT2YnXQogUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVz
KEJvb2xlYW4pIGlzIFsnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL2FycmF5LWl0ZXJhdG9ycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9qcy9hcnJheS1pdGVyYXRvcnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4MTllYzBmNWRk
MjhiNDVkYjM3YTQ4MjgzNGY3NjYzYWZkMTEyOWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9hcnJheS1pdGVyYXRvcnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNjUgQEAKK1Ro
aXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBpdGVyYXRvciBtZXRob2RzIG9uIEFy
cmF5IG9iamVjdHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGtleSBp
cyAwCitQQVNTIGtleSBpcyAxCitQQVNTIGtleSBpcyAyCitQQVNTIGtleSBpcyAzCitQQVNTIGtl
eSBpcyA0CitQQVNTIGtleSBpcyA1CitQQVNTIHRlc3RBcnJheS5sZW5ndGggaXMgNgorUEFTUyBr
ZXlzLm5leHQoKS52YWx1ZSBpcyB1bmRlZmluZWQuCitQQVNTIHZhbHVlIGlzIDEKK1BBU1MgdmFs
dWUgaXMgMgorUEFTUyB2YWx1ZSBpcyAzCitQQVNTIHZhbHVlIGlzIDQKK1BBU1MgdmFsdWUgaXMg
NQorUEFTUyB2YWx1ZSBpcyA2CitQQVNTIHRlc3RBcnJheS5sZW5ndGggaXMgNgorUEFTUyB2YWx1
ZXMubmV4dCgpLnZhbHVlIGlzIHVuZGVmaW5lZC4KK1BBU1MgdmFsdWUgaXMgdGVzdEFycmF5W2tl
eV0KK1BBU1Mga2V5IGlzIDAKK1BBU1MgdmFsdWUgaXMgMQorUEFTUyB2YWx1ZSBpcyB0ZXN0QXJy
YXlba2V5XQorUEFTUyBrZXkgaXMgMQorUEFTUyB2YWx1ZSBpcyAyCitQQVNTIHZhbHVlIGlzIHRl
c3RBcnJheVtrZXldCitQQVNTIGtleSBpcyAyCitQQVNTIHZhbHVlIGlzIDMKK1BBU1MgdmFsdWUg
aXMgdGVzdEFycmF5W2tleV0KK1BBU1Mga2V5IGlzIDMKK1BBU1MgdmFsdWUgaXMgNAorUEFTUyB2
YWx1ZSBpcyB0ZXN0QXJyYXlba2V5XQorUEFTUyBrZXkgaXMgNAorUEFTUyB2YWx1ZSBpcyA1CitQ
QVNTIHZhbHVlIGlzIHRlc3RBcnJheVtrZXldCitQQVNTIGtleSBpcyA1CitQQVNTIHZhbHVlIGlz
IDYKK1BBU1MgdGVzdEFycmF5Lmxlbmd0aCBpcyA2CitQQVNTIGVudHJpZXMubmV4dCgpLnZhbHVl
IGlzIHVuZGVmaW5lZC4KK1BBU1MgdmFsdWUgaXMgdGVzdEFycmF5W2tleV0KK1BBU1Mga2V5IGlz
IGkKK1BBU1MgdmFsdWUgaXMgdGVzdEFycmF5W2tleV0KK1BBU1Mga2V5IGlzIGkKK1BBU1MgdmFs
dWUgaXMgdGVzdEFycmF5W2tleV0KK1BBU1Mga2V5IGlzIGkKK1BBU1MgdmFsdWUgaXMgdGVzdEFy
cmF5W2tleV0KK1BBU1Mga2V5IGlzIGkKK1BBU1MgdmFsdWUgaXMgdGVzdEFycmF5W2tleV0KK1BB
U1Mga2V5IGlzIGkKK1BBU1MgdmFsdWUgaXMgdGVzdEFycmF5W2tleV0KK1BBU1Mga2V5IGlzIGkK
K1BBU1MgdmFsdWUgaXMgdGVzdEFycmF5W2tleV0KK1BBU1Mga2V5IGlzIGkKK1BBU1MgdmFsdWUg
aXMgdGVzdEFycmF5W2tleV0KK1BBU1Mga2V5IGlzIGkKK1BBU1MgdmFsdWUgaXMgdGVzdEFycmF5
W2tleV0KK1BBU1Mga2V5IGlzIGkKK1BBU1MgdGVzdEFycmF5Lmxlbmd0aCBpcyA5CitQQVNTIGVu
dHJpZXMubmV4dCgpLnZhbHVlIGlzIHVuZGVmaW5lZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9h
cnJheS1pdGVyYXRvcnMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2FycmF5LWl0ZXJhdG9ycy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjllZTY2NGJlOWUzOTkwZjBmYzI0YjNmMjEzOWU0NGE3ZDAxMTMyODgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9hcnJheS1pdGVyYXRvcnMuaHRtbApAQCAt
MCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVz
dHMvYXJyYXktaXRlcmF0b3JzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1l
cy5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9PYmplY3QtZ2V0T3duUHJvcGVydHlO
YW1lcy5qcwppbmRleCA0M2RmNDE3NmY2ZTg5ZjVlN2I3OWMwMmI0MzYyOTY1ZWZhODM1MmU2Li4w
ZjUzNzBiOWJjZDBiYzQ2NjIwMmFlYmZkY2RiOTI2NTQzY2UzZGJlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMuanMKKysr
IGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVz
LmpzCkBAIC01Myw3ICs1Myw3IEBAIHZhciBleHBlY3RlZFByb3BlcnR5TmFtZXNTZXQgPSB7CiAg
ICAgIkZ1bmN0aW9uIjogIlsnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10iLAogICAgICJG
dW5jdGlvbi5wcm90b3R5cGUiOiAiWydhcHBseScsICdiaW5kJywgJ2NhbGwnLCAnY29uc3RydWN0
b3InLCAnbGVuZ3RoJywgJ25hbWUnLCAndG9TdHJpbmcnXSIsCiAgICAgIkFycmF5IjogIlsnaXNB
cnJheScsICdsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUnXSIsCi0gICAgIkFycmF5LnByb3Rv
dHlwZSI6ICJbJ2NvbmNhdCcsICdjb25zdHJ1Y3RvcicsICdldmVyeScsICdmaWx0ZXInLCAnZm9y
RWFjaCcsICdpbmRleE9mJywgJ2pvaW4nLCAnbGFzdEluZGV4T2YnLCAnbGVuZ3RoJywgJ21hcCcs
ICdwb3AnLCAncHVzaCcsICdyZWR1Y2UnLCAncmVkdWNlUmlnaHQnLCAncmV2ZXJzZScsICdzaGlm
dCcsICdzbGljZScsICdzb21lJywgJ3NvcnQnLCAnc3BsaWNlJywgJ3RvTG9jYWxlU3RyaW5nJywg
J3RvU3RyaW5nJywgJ3Vuc2hpZnQnXSIsCisgICAgIkFycmF5LnByb3RvdHlwZSI6ICJbJ2NvbmNh
dCcsICdjb25zdHJ1Y3RvcicsICdlbnRyaWVzJywgJ2V2ZXJ5JywgJ2ZpbHRlcicsICdmb3JFYWNo
JywgJ2luZGV4T2YnLCAnam9pbicsICdrZXlzJywgJ2xhc3RJbmRleE9mJywgJ2xlbmd0aCcsICdt
YXAnLCAncG9wJywgJ3B1c2gnLCAncmVkdWNlJywgJ3JlZHVjZVJpZ2h0JywgJ3JldmVyc2UnLCAn
c2hpZnQnLCAnc2xpY2UnLCAnc29tZScsICdzb3J0JywgJ3NwbGljZScsICd0b0xvY2FsZVN0cmlu
ZycsICd0b1N0cmluZycsICd1bnNoaWZ0JywgJ3ZhbHVlcyddIiwKICAgICAiU3RyaW5nIjogIlsn
ZnJvbUNoYXJDb2RlJywgJ2xlbmd0aCcsICduYW1lJywgJ3Byb3RvdHlwZSddIiwKICAgICAiU3Ry
aW5nLnByb3RvdHlwZSI6ICJbJ2FuY2hvcicsICdiaWcnLCAnYmxpbmsnLCAnYm9sZCcsICdjaGFy
QXQnLCAnY2hhckNvZGVBdCcsICdjb25jYXQnLCAnY29uc3RydWN0b3InLCAnZml4ZWQnLCAnZm9u
dGNvbG9yJywgJ2ZvbnRzaXplJywgJ2luZGV4T2YnLCAnaXRhbGljcycsICdsYXN0SW5kZXhPZics
ICdsZW5ndGgnLCAnbGluaycsICdsb2NhbGVDb21wYXJlJywgJ21hdGNoJywgJ3JlcGxhY2UnLCAn
c2VhcmNoJywgJ3NsaWNlJywgJ3NtYWxsJywgJ3NwbGl0JywgJ3N0cmlrZScsICdzdWInLCAnc3Vi
c3RyJywgJ3N1YnN0cmluZycsICdzdXAnLCAndG9Mb2NhbGVMb3dlckNhc2UnLCAndG9Mb2NhbGVV
cHBlckNhc2UnLCAndG9Mb3dlckNhc2UnLCAndG9TdHJpbmcnLCAndG9VcHBlckNhc2UnLCAndHJp
bScsICd0cmltTGVmdCcsICd0cmltUmlnaHQnLCAndmFsdWVPZiddIiwKICAgICAiQm9vbGVhbiI6
ICJbJ2xlbmd0aCcsICduYW1lJywgJ3Byb3RvdHlwZSddIiwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL3NjcmlwdC10ZXN0cy9hcnJheS1pdGVyYXRvcnMuanMgYi9MYXlvdXRUZXN0cy9qcy9z
Y3JpcHQtdGVzdHMvYXJyYXktaXRlcmF0b3JzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjY2I3ODkzODg5MjE0
MmY5YmMzMjcwYmI0MGE1NmNjZWVkMTg4OGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9qcy9zY3JpcHQtdGVzdHMvYXJyYXktaXRlcmF0b3JzLmpzCkBAIC0wLDAgKzEsNzYgQEAKK2Rl
c2NyaXB0aW9uKAorIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBpdGVyYXRv
ciBtZXRob2RzIG9uIEFycmF5IG9iamVjdHMuIgorKTsKKworCit2YXIgdGVzdEFycmF5ID0gWzEs
MiwzLDQsNSw2XQordmFyIGtleXMgPSB0ZXN0QXJyYXkua2V5cygpOwordmFyIGkgPSAwOword2hp
bGUgKHRydWUpIHsKKyAgICB2YXIge2RvbmUsIHZhbHVlOiBrZXl9ID0ga2V5cy5uZXh0KCk7Cisg
ICAgaWYgKGRvbmUpCisgICAgICAgIGJyZWFrOworICAgIHNob3VsZEJlKCJrZXkiLCBTdHJpbmco
aSkpCisgICAgaSsrOworfQorCitzaG91bGRCZSgidGVzdEFycmF5Lmxlbmd0aCIsIFN0cmluZyhp
KSkKKworc2hvdWxkQmVVbmRlZmluZWQoImtleXMubmV4dCgpLnZhbHVlIikKKwordmFyIHZhbHVl
cyA9IHRlc3RBcnJheS52YWx1ZXMoKTsKK3ZhciBpID0gMDsKK3doaWxlICh0cnVlKSB7CisgICAg
dmFyIHtkb25lLCB2YWx1ZX0gPSB2YWx1ZXMubmV4dCgpOworICAgIGlmIChkb25lKQorICAgICAg
ICBicmVhazsKKyAgICBpKys7CisgICAgc2hvdWxkQmUoInZhbHVlIiwgU3RyaW5nKGkpICkKK30K
Kworc2hvdWxkQmUoInRlc3RBcnJheS5sZW5ndGgiLCBTdHJpbmcoaSkpCisKK3Nob3VsZEJlVW5k
ZWZpbmVkKCJ2YWx1ZXMubmV4dCgpLnZhbHVlIikKKwordmFyIGVudHJpZXMgPSB0ZXN0QXJyYXku
ZW50cmllcygpOwordmFyIGkgPSAwOworZG8geworICAgIHZhciB7ZG9uZSwgdmFsdWU6IGVudHJ5
fSA9IGVudHJpZXMubmV4dCgpOworICAgIGlmIChkb25lKQorICAgICAgICBicmVhazsKKyAgICB2
YXIgW2tleSwgdmFsdWVdID0gZW50cnk7CisgICAgc2hvdWxkQmUoInZhbHVlIiwgInRlc3RBcnJh
eVtrZXldIikKKyAgICBzaG91bGRCZSgia2V5IiwgU3RyaW5nKGkpKQorICAgIGkrKworICAgIHNo
b3VsZEJlKCJ2YWx1ZSIsIFN0cmluZyhpKSkKK30gd2hpbGUgKCFkb25lKTsKKworc2hvdWxkQmUo
InRlc3RBcnJheS5sZW5ndGgiLCBTdHJpbmcoaSkpCisKK3Nob3VsZEJlVW5kZWZpbmVkKCJlbnRy
aWVzLm5leHQoKS52YWx1ZSIpCisKKworCit2YXIgZW50cmllcyA9IHRlc3RBcnJheS5lbnRyaWVz
KCk7Cit2YXIgaSA9IDA7CitkbyB7CisgICAgdmFyIHtkb25lLCB2YWx1ZTogZW50cnl9ID0gZW50
cmllcy5uZXh0KCk7CisgICAgaWYgKGRvbmUpCisgICAgICAgIGJyZWFrOworICAgIHZhciBba2V5
LCB2YWx1ZV0gPSBlbnRyeTsKKyAgICBzaG91bGRCZSgidmFsdWUiLCAidGVzdEFycmF5W2tleV0i
KQorICAgIHNob3VsZEJlKCJrZXkiLCAiaSIpCisgICAgaSsrCisgICAgaWYgKGkgJSAyID09IDAp
CisgICAgICAgIHRlc3RBcnJheVtpXSAqPSAyOworICAgIGlmIChpIDwgNCkKKyAgICAgICAgdGVz
dEFycmF5LnB1c2godGVzdEFycmF5Lmxlbmd0aCkKKyAgICBpZiAoaSA9PSA0KQorICAgICAgICBk
ZWxldGUgdGVzdEFycmF5WzRdCisgICAgaWYgKGkgPT0gNSkKKyAgICAgICAgdGVzdEFycmF5WzRd
ID0gNQorfSB3aGlsZSAoIWRvbmUpOworc2hvdWxkQmUoInRlc3RBcnJheS5sZW5ndGgiLCBTdHJp
bmcoaSkpCisKK3Nob3VsZEJlVW5kZWZpbmVkKCJlbnRyaWVzLm5leHQoKS52YWx1ZSIpCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213184</attachid>
            <date>2013-10-02 12:17:55 -0700</date>
            <delta_ts>2013-10-02 13:00:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122195-20131002121754.patch</filename>
            <type>text/plain</type>
            <size>51445</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
NjY5NjM1MTRlN2ZjN2VkMzFjY2M5MzUwMjIxYjkxYWExZmU4MDBhLi42ZmIxNWFlZTkxZjJkNzNk
YTA0OGIyYTA3YjE1MmQ4MjBlNWQ3MDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MyBAQAorMjAxMy0xMC0wMSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIEltcGxlbWVudCBBcnJheSBrZXksIHZhbHVlIGFuZCBlbnRyaWVzIGl0ZXJhdG9y
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyMTk1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGlt
cGxlbWVudGF0aW9uIG9mIEVTNiBBcnJheSBpdGVyYXRvcnMgZm9yIGtleXMoKSwgdmFsdWVzKCkg
YW5kIGVudHJpZXMoKQorCisgICAgICAgIEZhaXJseSBzZWxmIGV4cGxhbmF0b3J5IGFzIHdlIGp1
c3QgbmVlZCBhIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBzbyB0aGF0IHdlIGNhbgorICAgICAgICBp
bXBsZW1lbnQgYW5kIHRlc3Qgb3RoZXIgZmVhdHVyZXMuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlJ
dGVyYXRvckNvbnN0cnVjdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OkFycmF5SXRlcmF0
b3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlJ
dGVyYXRvckNvbnN0cnVjdG9yLmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpBcnJheUl0ZXJhdG9y
Q29uc3RydWN0b3I6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkFycmF5SXRlcmF0b3JDb25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6QXJyYXlJdGVyYXRvckNvbnN0
cnVjdG9yOjpBcnJheUl0ZXJhdG9yQ29uc3RydWN0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvQXJy
YXlJdGVyYXRvclByb3RvdHlwZS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpBcnJheUl0ZXJh
dG9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OmNyZWF0ZUl0ZXJh
dG9yUmVzdWx0KToKKyAgICAgICAgKEpTQzo6YXJyYXlJdGVyYXRvclByb3RvdHlwZU5leHQpOgor
ICAgICAgICAqIHJ1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oOiBBZGRlZC4KKyAgICAg
ICAgKEpTQzo6QXJyYXlJdGVyYXRvclByb3RvdHlwZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6
QXJyYXlJdGVyYXRvclByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6
QXJyYXlJdGVyYXRvclByb3RvdHlwZTo6QXJyYXlJdGVyYXRvclByb3RvdHlwZSk6CisgICAgICAg
ICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9G
dW5jVmFsdWVzKToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNFbnRyaWVzKToKKyAgICAg
ICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNLZXlzKToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vbklk
ZW50aWZpZXJzLmg6CisgICAgICAgICogcnVudGltZS9JZGVudGlmaWVyLmg6CisgICAgICAgIChK
U0M6OklkZW50aWZpZXI6OmNyZWF0ZUVtcHR5VW5pcXVlKToKKyAgICAgICAgKiBydW50aW1lL0pT
QXJyYXlJdGVyYXRvci5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6
OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlJdGVyYXRvci5oOiBB
ZGRlZC4KKyAgICAgICAgKEpTQzo6SlNBcnJheUl0ZXJhdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkpT
QXJyYXlJdGVyYXRvcjo6aXRlcmF0aW9uS2luZCk6CisgICAgICAgIChKU0M6OkpTQXJyYXlJdGVy
YXRvcjo6aXRlcmF0ZWRPYmplY3QpOgorICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6Om5l
eHRJbmRleCk6CisgICAgICAgIChKU0M6OkpTQXJyYXlJdGVyYXRvcjo6c2V0TmV4dEluZGV4KToK
KyAgICAgICAgKEpTQzo6SlNBcnJheUl0ZXJhdG9yOjpmaW5pc2gpOgorICAgICAgICAoSlNDOjpK
U0FycmF5SXRlcmF0b3I6OkpTQXJyYXlJdGVyYXRvcik6CisgICAgICAgICogcnVudGltZS9KU0ds
b2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpyZXNldCk6Cisg
ICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0dsb2Jh
bE9iamVjdDo6aXRlcmF0b3JSZXN1bHRTdHJ1Y3R1cmUpOgorCiAyMDEzLTA5LTI1ICBPbGl2ZXIg
SHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IHByZWZpeGVkLWRl
c3RydWN0dXJpbmcgYXNzaWdubWVudApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGQ4YmY1NTUwOTk2MjFkYTM3YzY1YjQxODk1MTY0ODExYWEwNDJmYmQuLmZiM2Q4NTBlMTM1
OGI2ZmQ2NmIyYTc1MGFiMjQzYTk1NGNhYjM2MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VM
aXN0cy50eHQKQEAgLTI2Niw2ICsyNjYsOCBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwog
ICAgIHJ1bnRpbWUvQXJyYXlCdWZmZXIuY3BwCiAgICAgcnVudGltZS9BcnJheUJ1ZmZlclZpZXcu
Y3BwCiAgICAgcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcAorICAgIHJ1bnRpbWUvQXJyYXlJ
dGVyYXRvckNvbnN0cnVjdG9yLmNwcAorICAgIHJ1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlw
ZS5jcHAKICAgICBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAogICAgIHJ1bnRpbWUvQm9vbGVh
bkNvbnN0cnVjdG9yLmNwcAogICAgIHJ1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAKQEAgLTMwOSw2
ICszMTEsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIHJ1bnRpbWUvSlNBcnJh
eUJ1ZmZlckNvbnN0cnVjdG9yLmNwcAogICAgIHJ1bnRpbWUvSlNBcnJheUJ1ZmZlclByb3RvdHlw
ZS5jcHAKICAgICBydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3LmNwcAorICAgIHJ1bnRpbWUvSlNB
cnJheUl0ZXJhdG9yLmNwcAogICAgIHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcAogICAgIHJ1
bnRpbWUvSlNDSlNWYWx1ZS5jcHAKICAgICBydW50aW1lL0pTQ2VsbC5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZjhiM2I5NzQyOGNmMjAwY2Y0YzRm
Y2E2ODUwZWU3ZGJhMGY4ZDRjZS4uZGNiNzE4OTkzMDQzOTc2NmQzMWFhOGQ4ZmIyMjA1MDU5NWI5
NGE0YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTc0
OCw2ICs3NDgsMTAgQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAgXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaCBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJyYXlDb252ZW50aW9ucy5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9BcnJheUl0ZXJhdG9yQ29uc3RydWN0b3IuY3BwIFwKKyAgICBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yQ29uc3RydWN0b3IuaCBcCisgICAgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAgXAorICAg
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuaCBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oIFwKIAlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVN0b3JhZ2UuaCBcCkBAIC04NTMsNiArODU3LDgg
QEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXcuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FycmF5QnVmZmVyVmlldy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5QnVmZmVyVmlld0lubGluZXMuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheUl0ZXJhdG9yLmNwcCBcCisgICAgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheUl0ZXJhdG9yLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbC5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oIFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3LmNwcCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagppbmRleCBkZDA3MjdmNzRkYTNmNTA5MjU0ZGJi
ZGNlNmJhNzcwNmMwZDNkOWRjLi44OTFmNjkwMTc3YTYxNzI3MzQ2MTdlY2EyNDIxMmRiNTdiZTJh
N2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4
cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKQEAgLTQyNSw2ICs0
MjUsOCBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxBcnJheUJ1ZmZlci5j
cHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxBcnJheUJ1ZmZlclZp
ZXcuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcQXJyYXlDb25z
dHJ1Y3Rvci5jcHAiIC8+DQorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxBcnJh
eUl0ZXJhdG9yQ29uc3RydWN0b3IuY3BwIiAvPg0KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHJ1bnRpbWVcQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5ccnVudGltZVxBcnJheVByb3RvdHlwZS5jcHAiIC8+DQogICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5ccnVudGltZVxCb29sZWFuQ29uc3RydWN0b3IuY3BwIiAvPg0KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcQm9vbGVhbk9iamVjdC5jcHAiIC8+DQpAQCAt
NDYwLDYgKzQ2Miw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTQVBJ
VmFsdWVXcmFwcGVyLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1l
XEpTQWN0aXZhdGlvbi5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGlt
ZVxKU0FycmF5LmNwcCIgLz4NCisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEpT
QXJyYXlJdGVyYXRvci5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGlt
ZVxKU0FycmF5QnVmZmVyLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50
aW1lXEpTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccnVudGltZVxKU0FycmF5QnVmZmVyUHJvdG90eXBlLmNwcCIgLz4NCkBAIC04NDAs
NiArODQzLDggQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcQXJyYXlCdWZm
ZXJWaWV3LmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxBcnJheUNv
bnN0cnVjdG9yLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxBcnJh
eUNvbnZlbnRpb25zLmgiIC8+DQorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxB
cnJheUl0ZXJhdG9yQ29uc3RydWN0b3IuaCIgLz4NCisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxydW50aW1lXEFycmF5SXRlcmF0b3JQcm90b3R5cGUuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxydW50aW1lXEFycmF5UHJvdG90eXBlLmgiIC8+DQogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5ccnVudGltZVxBcnJheVN0b3JhZ2UuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxydW50aW1lXEJhdGNoZWRUcmFuc2l0aW9uT3B0aW1pemVyLmgiIC8+DQpAQCAt
ODk4LDYgKzkwMyw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTQXJy
YXlCdWZmZXJQcm90b3R5cGUuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50
aW1lXEpTQXJyYXlCdWZmZXJWaWV3LmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
cnVudGltZVxKU0FycmF5QnVmZmVyVmlld0lubGluZXMuaCIgLz4NCisgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxydW50aW1lXEpTQXJyYXlJdGVyYXRvci5oIiAvPg0KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNCb3VuZEZ1bmN0aW9uLmgiIC8+DQogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU0NKU1ZhbHVlLmgiIC8+DQogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5ccnVudGltZVxKU0NKU1ZhbHVlSW5saW5lcy5oIiAvPg0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggYmQwNjk1MDgyZWVhNTE0ODFiZDJlY2QxMmNmMjllNjZkMDAx
YTE0Ny4uMDhjZjQ0ZTdlNGU4NWM5OWFiMDVhMGU5NDVmMDU1NTEzYTA4ODRmZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkzOCw2ICs5MzgsMTIgQEAKIAkJQTdCNDhGNDkwRUU4
OTM2RjAwRENCREI2IC8qIEV4ZWN1dGFibGVBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCNDhEQjYwRUU3NENGQzAwRENCREI2IC8q
IEV4ZWN1dGFibGVBbGxvY2F0b3IuY3BwICovOyB9OwogCQlBN0I0QUNBRjE0ODRDOUNFMDBCMzhB
MzYgLyogSlNFeHBvcnRNYWNyb3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3QjRBQ0FFMTQ4NEM5Q0UwMEIzOEEzNiAvKiBKU0V4cG9ydE1hY3Jvcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3QjYw
MTgyMTYzOUZEMkEwMDM3MkJBMyAvKiBVbmxpbmtlZENvZGVCbG9jay5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc5RTc4MUYxNUVFQ0JBODAwNDdDODU1
IC8qIFVubGlua2VkQ29kZUJsb2NrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJQTdCREFFQzYxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0
b3JDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBN0JEQUVDMDE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvckNvbnN0cnVj
dG9yLmNwcCAqLzsgfTsKKwkJQTdCREFFQzcxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0
b3JDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTdCREFFQzExN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0b3JDb25zdHJ1Y3Rv
ci5oICovOyB9OworCQlBN0JEQUVDODE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclBy
b3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBN0JEQUVDMjE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAg
Ki87IH07CisJCUE3QkRBRUM5MTdGNEVBMTQwMEY2MTQwQyAvKiBBcnJheUl0ZXJhdG9yUHJvdG90
eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0JE
QUVDMzE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oICovOyB9Owor
CQlBN0JEQUVDQTE3RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9yLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QkRBRUM0MTdGNEVBMTQw
MEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3IuY3BwICovOyB9OworCQlBN0JEQUVDQjE3RjRFQTE0
MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBN0JEQUVDNTE3RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0
ZXJhdG9yLmggKi87IH07CiAJCUE3QkZGM0MwMTc5ODY4OTQwMDAyRjQ2MiAvKiBERkdGaWx0cmF0
aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBN0JGRjNCRjE3OTg2ODk0MDAwMkY0NjIgLyogREZHRmlsdHJhdGlvblJlc3VsdC5oICovOyB9
OwogCQlBN0MwQzRBQzE2ODEwMzAyMDAxNzAxMUQgLyogSlNTY3JpcHRSZWZQcml2YXRlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0MwQzRBQjE2N0Mw
OENEMDAxNzAxMUQgLyogSlNTY3JpcHRSZWZQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTdDMEM0QUQxNjgxMDY3RTAwMTcwMTFEIC8q
IEpTU2NyaXB0UmVmLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3QzBDNEFBMTY3QzA4Q0QwMDE3MDExRCAvKiBKU1NjcmlwdFJlZi5jcHAgKi87IH07
CkBAIC0yMTU5LDYgKzIxNjUsMTIgQEAKIAkJQTdCNDhEQjUwRUU3NENGQzAwRENCREI2IC8qIEV4
ZWN1dGFibGVBbGxvY2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhl
Y3V0YWJsZUFsbG9jYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0I0OERC
NjBFRTc0Q0ZDMDBEQ0JEQjYgLyogRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeGVjdXRhYmxlQWxsb2NhdG9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdCNEFDQUUxNDg0QzlDRTAwQjM4QTM2IC8qIEpTRXhw
b3J0TWFjcm9zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXhwb3J0TWFj
cm9zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3QkRBRUMwMTdGNEVBMTQwMEY2
MTQwQyAvKiBBcnJheUl0ZXJhdG9yQ29uc3RydWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTdCREFFQzExN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRl
cmF0b3JDb25zdHJ1Y3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcnJh
eUl0ZXJhdG9yQ29uc3RydWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTdC
REFFQzIxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXJyYXlJdGVyYXRvclByb3RvdHlwZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3QkRBRUMzMTdGNEVBMTQwMEY2MTQw
QyAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEFycmF5SXRlcmF0b3JQcm90b3R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQTdCREFFQzQxN0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0FycmF5SXRlcmF0b3IuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBN0JEQUVDNTE3RjRFQTE0MDBGNjE0MEMgLyog
SlNBcnJheUl0ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQXJy
YXlJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0JGRjNCRjE3OTg2
ODk0MDAwMkY0NjIgLyogREZHRmlsdHJhdGlvblJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBERkdGaWx0cmF0aW9uUmVzdWx0Lmg7IHBhdGggPSBkZmcvREZHRmlsdHJh
dGlvblJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0MwQzRBQTE2N0Mw
OENEMDAxNzAxMUQgLyogSlNTY3JpcHRSZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNTY3JpcHRSZWYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBN0MwQzRBQjE2N0MwOENEMDAxNzAxMUQgLyogSlNTY3JpcHRSZWZQcml2YXRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2NyaXB0UmVmUHJpdmF0ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzQzMSw2ICszNDQzLDEyIEBACiAJCQkJQTdDQTNBRTIx
N0RBNDFBRTAwNjUzOEFGIC8qIEpTV2Vha01hcC5oICovLAogCQkJCUE3Q0EzQUU5MTdEQTUxNjgw
MDY1MzhBRiAvKiBXZWFrTWFwRGF0YS5jcHAgKi8sCiAJCQkJQTdDQTNBRUExN0RBNTE2ODAwNjUz
OEFGIC8qIFdlYWtNYXBEYXRhLmggKi8sCisJCQkJQTdCREFFQzAxN0Y0RUExNDAwRjYxNDBDIC8q
IEFycmF5SXRlcmF0b3JDb25zdHJ1Y3Rvci5jcHAgKi8sCisJCQkJQTdCREFFQzExN0Y0RUExNDAw
RjYxNDBDIC8qIEFycmF5SXRlcmF0b3JDb25zdHJ1Y3Rvci5oICovLAorCQkJCUE3QkRBRUMyMTdG
NEVBMTQwMEY2MTQwQyAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcCAqLywKKwkJCQlBN0JE
QUVDMzE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oICovLAorCQkJ
CUE3QkRBRUM0MTdGNEVBMTQwMEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3IuY3BwICovLAorCQkJ
CUE3QkRBRUM1MTdGNEVBMTQwMEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3IuaCAqLywKIAkJCSk7
CiAJCQlwYXRoID0gcnVudGltZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC00MzEz
LDYgKzQzMzEsNyBAQAogCQkJCTBGNDY4MENCMTRCQkIxNzIwMEJGRTI3MiAvKiBMTEludE9mZmxp
bmVBc21Db25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFRDI4N0IyMTVFQzlBNTcwMERBODE2
MSAvKiBMTEludE9wY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0NjgwQTUxNEJBN0Y4RDAw
QkZFMjcyIC8qIExMSW50U2xvd1BhdGhzLmggaW4gSGVhZGVycyAqLywKKwkJCQlBN0JEQUVDQjE3
RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjBCODM5RDE0QkNGNDY2MDA4ODVCNEYgLyogTExJbnRUaHVua3MuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE3RTVBQjM4MTc5OUU0QjIwMEQyODMzRCAvKiBMTFZNRGlzYXNzZW1ibGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxNDJFMzEzOTEzNEZGMEE2MDBBRkFEQjUgLyogTG9jYWwuaCBpbiBIZWFk
ZXJzICovLApAQCAtNDM3Miw2ICs0MzkxLDcgQEAKIAkJCQkwRkNDQUU0NTE2RDBDRjc0MDBEMEM2
NUIgLyogUGFyc2VyRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3N0YxODI1MTY0MTkyQzcw
MDY0MEE0NyAvKiBQYXJzZXJNb2Rlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjUzMDNENjQxNDQ3
QjlFMTAwRDNGOTA0IC8qIFBhcnNlclRva2Vucy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTdCREFF
QzcxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0b3JDb25zdHJ1Y3Rvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYzNEIxNEMxNkQ0M0UwRDAwMUNEQTVBIC8qIFBvbHltb3JwaGljQWNjZXNz
U3RydWN0dXJlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5RkM4QzQxNEUxQjYwMDAwRDUy
QUUwIC8qIFBvbHltb3JwaGljUHV0QnlJZExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTgy
MDYxMTZCRkUzODMwMDI0MEQwMiAvKiBQcmVjaXNlSnVtcFRhcmdldHMuaCBpbiBIZWFkZXJzICov
LApAQCAtNDQxOSw2ICs0NDM5LDcgQEAKIAkJCQlCQzE4QzUyQzBFMTZGQ0QyMDBCMzQ0NjAgLyog
UmVnRXhwT2JqZWN0Lmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEMjAyQzQwRTE3MDZBNzAw
MkM3RTgyIC8qIFJlZ0V4cFByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzIwQjI1OTkx
NzA2NTM2MjAwQzIxRjRFIC8qIFJlZ2lvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTdCREFFQzkx
N0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDMThDNDVEMEUxNkY1Q0QwMEIzNDQ2MCAvKiBSZWdpc3Rlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTY5QTA3MkIwRUQxQ0U2OTAwRjFGNjgxIC8qIFJlZ2lzdGVySUQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGQjdGMzlEMTVFRDhFNDYwMEYxNjdCMiAvKiBSZWplY3QuaCBpbiBIZWFk
ZXJzICovLApAQCAtNTA5Nyw2ICs1MTE4LDcgQEAKIAkJCQlBNzIwMjhCNjE3OTc2MDFFMDA5ODAy
OEMgLyogSlNDVGVzdFJ1bm5lclV0aWxzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMkI2NkVC
MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0RhdGFWaWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
MkI2NkVEMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0RhdGFWaWV3UHJvdG90eXBlLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUE3QkRBRUNBMTdGNEVBMTQwMEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc4ODAxNDAxNDcxQUQ5MjAwNDFCMDE2IC8qIEpTRGF0
ZU1hdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQwNTY2RDYxMDdFQzI3MTAwNURCQzhEIC8q
IEpTRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5RDIxMDdFQzM3NjAwNDI3
QTQ4IC8qIEpTR2xvYmFsT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNTE4OSw2ICs1MjEx
LDcgQEAKIAkJCQlFMTI0QThGODBFNTU1Nzc1MDAzMDkxRjEgLyogT3BhcXVlSlNTdHJpbmcuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJOTY5QTA3OUEwRUQxRDNBRTAwRjFGNjgxIC8qIE9wY29kZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDg1MDEwN0VDMEQ3MDAxM0U3QjIgLyogT3BlcmF0
aW9ucy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBN0JEQUVDODE3RjRFQTE0MDBGNjE0MEMgLyog
QXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkUyMjhFRTE0
MzZBQjJDMDAxOTZDNDggLyogT3B0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDhGMjFC
QzEwN0VDNTREMDA0MkVDMkMgLyogUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMDUy
QzM0MEZCNzkyMTkwMDQ4RkRDMyAvKiBQYXJzZXJBcmVuYS5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTUyMzMsNiArNTI1Niw3IEBACiAJCQkJQTcyOTlEQTExN0QxMjg0ODAwNUY1RkY5IC8qIFNldFBy
b3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCNjcwNDE3QjZCNUFCMDBBN0FFM0Yg
LyogU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzIy
NTQ5NDMxNUY3REJBQTAwNjVFODk4IC8qIFNsb3RWaXNpdG9yLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUE3QkRBRUM2MTdGNEVBMTQwMEY2MTQwQyAvKiBBcnJheUl0ZXJhdG9yQ29uc3RydWN0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDQwMkMwRTZBNzY0MDAwNzg2RTZBIC8qIFNtYWxs
U3RyaW5ncy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjhGMkI5RTE3MzA2QzhEMDA3REJEQTUg
LyogU291cmNlQ29kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQ5M0FGQTE2RDBDQUQzMDA4
NDUwOEIgLyogU291cmNlUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yQ29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9y
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wOTE2ZWVlZjJiNTMwNTYyMjE5ZTg3OTVhNjBjMzJmODExNTY0ODRm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJ
dGVyYXRvckNvbnN0cnVjdG9yLmNwcApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yLmgiCisKKyNpbmNsdWRlICJKU0NKU1ZhbHVl
SW5saW5lcy5oIgorI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKKyNpbmNsdWRlICJKU0dsb2Jh
bE9iamVjdC5oIgorCituYW1lc3BhY2UgSlNDIHsKKworY29uc3QgQ2xhc3NJbmZvIEFycmF5SXRl
cmF0b3JDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCAw
LCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEFycmF5SXRlcmF0b3JDb25zdHJ1Y3RvcikgfTsKKwor
dm9pZCBBcnJheUl0ZXJhdG9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKK3sK
KyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JDb25zdHJ1Y3Rvci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDg5ZDVkOWU5MDRjYjJjOGJkMzMxOWEzMDY0Mzg3MDAxNGQ5NDZjMgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JD
b25zdHJ1Y3Rvci5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yX2gK
KyNkZWZpbmUgQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yX2gKKworI2luY2x1ZGUgIkludGVybmFs
RnVuY3Rpb24uaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIEFycmF5SXRlcmF0b3JQcm90
b3R5cGU7CisKK2NsYXNzIEFycmF5SXRlcmF0b3JDb25zdHJ1Y3RvciA6IHB1YmxpYyBKU05vbkZp
bmFsT2JqZWN0IHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsK
KworICAgIHN0YXRpYyBBcnJheUl0ZXJhdG9yQ29uc3RydWN0b3IqIGNyZWF0ZShWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBBcnJheUl0ZXJhdG9yUHJvdG90eXBlKikKKyAgICB7CisgICAg
ICAgIEFycmF5SXRlcmF0b3JDb25zdHJ1Y3RvciogY29uc3RydWN0b3IgPSBuZXcgKE5vdE51bGws
IGFsbG9jYXRlQ2VsbDxBcnJheUl0ZXJhdG9yQ29uc3RydWN0b3I+KHZtLmhlYXApKSBBcnJheUl0
ZXJhdG9yQ29uc3RydWN0b3Iodm0sIHN0cnVjdHVyZSk7CisgICAgICAgIGNvbnN0cnVjdG9yLT5m
aW5pc2hDcmVhdGlvbih2bSk7CisgICAgICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKKyAgICB9CisK
KyAgICBERUNMQVJFX0lORk87CisKKyAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlw
ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5m
bygpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yKFZN
JiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgICAgIDogQmFzZSh2bSwgc3RydWN0dXJl
KQorICAgIHsKKyAgICB9CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYpOworfTsKKworfQor
CisjZW5kaWYgLy8gIWRlZmluZWQoQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yX2gpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5
cGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjVlYWQ4OWJmZjU1OTAyZDlmMGI1YWUwZGE5MjZiMmI1MzQwMjM4
ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJh
eUl0ZXJhdG9yUHJvdG90eXBlLmNwcApAQCAtMCwwICsxLDEzMCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkFycmF5SXRlcmF0b3JQcm90b3R5cGUuaCIKKworI2luY2x1ZGUgIkpTQXJyYXlJdGVy
YXRvci5oIgorI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT2JqZWN0Q29u
c3RydWN0b3IuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NvbnN0IENsYXNzSW5mbyBBcnJheUl0
ZXJhdG9yUHJvdG90eXBlOjpzX2luZm8gPSB7ICJBcnJheSBJdGVyYXRvciIsICZCYXNlOjpzX2lu
Zm8sIDAsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoQXJyYXlJdGVyYXRvclByb3RvdHlwZSkgfTsK
Kworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlJdGVyYXRvclByb3Rv
dHlwZU5leHQoRXhlY1N0YXRlKik7CisKK3ZvaWQgQXJyYXlJdGVyYXRvclByb3RvdHlwZTo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAg
IEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKKyAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7
CisgICAgdm0ucHJvdG90eXBlTWFwLmFkZFByb3RvdHlwZSh0aGlzKTsKKworICAgIEpTQ19OQVRJ
VkVfRlVOQ1RJT04odm0ucHJvcGVydHlOYW1lcy0+bmV4dCwgYXJyYXlJdGVyYXRvclByb3RvdHlw
ZU5leHQsIERvbnRFbnVtLCAwKTsKK30KKworc3RhdGljIEVuY29kZWRKU1ZhbHVlIGNyZWF0ZUl0
ZXJhdG9yUmVzdWx0KENhbGxGcmFtZSogY2FsbEZyYW1lLCBBcnJheUl0ZXJhdGlvbktpbmQga2lu
ZCwgc2l6ZV90IGluZGV4LCBKU1ZhbHVlIHJlc3VsdCwgYm9vbCBkb25lKQoreworICAgIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBjYWxsRnJhbWUtPmNhbGxlZSgpLT5nbG9iYWxPYmpl
Y3QoKTsKKyAgICBKU09iamVjdCogcmVzdWx0T2JqZWN0ID0gY29uc3RydWN0RW1wdHlPYmplY3Qo
Y2FsbEZyYW1lKTsKKyAgICByZXN1bHRPYmplY3QtPnB1dERpcmVjdChjYWxsRnJhbWUtPnZtKCks
IGNhbGxGcmFtZS0+cHJvcGVydHlOYW1lcygpLmRvbmUsIGpzQm9vbGVhbihkb25lKSk7CisgICAg
c3dpdGNoIChraW5kICYgfkFycmF5SXRlcmF0ZVNwYXJzZVRhZykgeworICAgIGNhc2UgQXJyYXlJ
dGVyYXRlS2V5OgorICAgICAgICByZXN1bHRPYmplY3QtPnB1dERpcmVjdChjYWxsRnJhbWUtPnZt
KCksIGNhbGxGcmFtZS0+cHJvcGVydHlOYW1lcygpLnZhbHVlLCBkb25lID8ganNVbmRlZmluZWQo
KSA6IGpzTnVtYmVyKGluZGV4KSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQXJyYXlJdGVy
YXRlVmFsdWU6CisgICAgICAgIHJlc3VsdE9iamVjdC0+cHV0RGlyZWN0KGNhbGxGcmFtZS0+dm0o
KSwgY2FsbEZyYW1lLT5wcm9wZXJ0eU5hbWVzKCkudmFsdWUsIGRvbmUgPyBqc1VuZGVmaW5lZCgp
IDogcmVzdWx0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBcnJheUl0ZXJhdGVLZXlWYWx1
ZTogeworICAgICAgICBpZiAoIWRvbmUpIHsKKyAgICAgICAgICAgIE1hcmtlZEFyZ3VtZW50QnVm
ZmVyIGFyZ3M7CisgICAgICAgICAgICBhcmdzLmFwcGVuZChqc051bWJlcihpbmRleCkpOworICAg
ICAgICAgICAgYXJncy5hcHBlbmQocmVzdWx0KTsKKyAgICAgICAgICAgIEpTQXJyYXkqIHJlc3Vs
dEFycmF5ID0gY29uc3RydWN0QXJyYXkoY2FsbEZyYW1lLCAwLCBnbG9iYWxPYmplY3QsIGFyZ3Mp
OworICAgICAgICAgICAgcmVzdWx0T2JqZWN0LT5wdXREaXJlY3QoY2FsbEZyYW1lLT52bSgpLCBj
YWxsRnJhbWUtPnByb3BlcnR5TmFtZXMoKS52YWx1ZSwgcmVzdWx0QXJyYXkpOworICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgIHJlc3VsdE9iamVjdC0+cHV0RGlyZWN0KGNhbGxGcmFtZS0+dm0o
KSwgY2FsbEZyYW1lLT5wcm9wZXJ0eU5hbWVzKCkudmFsdWUsIGpzVW5kZWZpbmVkKCkpOworCisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3Vs
dE9iamVjdCk7Cit9CisgICAgCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5SXRl
cmF0b3JQcm90b3R5cGVOZXh0KENhbGxGcmFtZSogY2FsbEZyYW1lKQoreworICAgIEpTQXJyYXlJ
dGVyYXRvciogaXRlcmF0b3IgPSBqc0R5bmFtaWNDYXN0PEpTQXJyYXlJdGVyYXRvcio+KGNhbGxG
cmFtZS0+dGhpc1ZhbHVlKCkpOworICAgIGlmICghaXRlcmF0b3IpCisgICAgICAgIHRocm93VHlw
ZUVycm9yKGNhbGxGcmFtZSwgQVNDSUlMaXRlcmFsKCJDYW5ub3QgY2FsbCBBcnJheUl0ZXJhdG9y
Lm5leHQoKSBvbiBhIG5vbi1BcnJheUl0ZXJhdG9yIG9iamVjdCIpKTsKKyAgICBKU09iamVjdCog
aXRlcmF0ZWRPYmplY3QgPSBpdGVyYXRvci0+aXRlcmF0ZWRPYmplY3QoKTsKKyAgICBzaXplX3Qg
aW5kZXggPSBpdGVyYXRvci0+bmV4dEluZGV4KCk7CisgICAgQXJyYXlJdGVyYXRpb25LaW5kIGtp
bmQgPSBpdGVyYXRvci0+aXRlcmF0aW9uS2luZCgpOworICAgIEpTVmFsdWUganNMZW5ndGggPSBK
U1ZhbHVlKGl0ZXJhdGVkT2JqZWN0KS5nZXQoY2FsbEZyYW1lLCBjYWxsRnJhbWUtPnByb3BlcnR5
TmFtZXMoKS5sZW5ndGgpOworICAgIGlmIChjYWxsRnJhbWUtPmhhZEV4Y2VwdGlvbigpKQorICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKTsKKworICAgIHNpemVfdCBsZW5n
dGggPSBqc0xlbmd0aC50b1VJbnQzMihjYWxsRnJhbWUpOworICAgIGlmIChjYWxsRnJhbWUtPmhh
ZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKTsK
KworICAgIGlmIChpbmRleCA+PSBsZW5ndGgpIHsKKyAgICAgICAgaXRlcmF0b3ItPmZpbmlzaCgp
OworICAgICAgICByZXR1cm4gY3JlYXRlSXRlcmF0b3JSZXN1bHQoY2FsbEZyYW1lLCBraW5kLCBp
bmRleCwganNVbmRlZmluZWQoKSwgdHJ1ZSk7CisgICAgfQorICAgIGlmIChKU1ZhbHVlIHJlc3Vs
dCA9IGl0ZXJhdGVkT2JqZWN0LT50cnlHZXRJbmRleFF1aWNrbHkoaW5kZXgpKSB7CisgICAgICAg
IGl0ZXJhdG9yLT5zZXROZXh0SW5kZXgoaW5kZXggKyAxKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0
ZUl0ZXJhdG9yUmVzdWx0KGNhbGxGcmFtZSwga2luZCwgaW5kZXgsIHJlc3VsdCwgZmFsc2UpOwor
ICAgIH0KKyAgICAKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzVW5kZWZpbmVkKCk7CisgICAgUHJv
cGVydHlTbG90IHNsb3QoaXRlcmF0ZWRPYmplY3QpOworICAgIGlmIChraW5kID4gQXJyYXlJdGVy
YXRlU3BhcnNlVGFnKSB7CisgICAgICAgIC8vIFdlIGFzc3VtZSB0aGF0IHRoZSBpbmRleGVkIHBy
b3BlcnR5IHdpbGwgYmUgYW4gb3duIHByb3BlcnR5IHNvIGNhY2hlIHRoZSBnZXRPd25Qcm9wZXJ0
eQorICAgICAgICAvLyBtZXRob2QgbG9jYWxseQorICAgICAgICBhdXRvIGdldE93blByb3BlcnR5
U2xvdEJ5SW5kZXggPSBpdGVyYXRlZE9iamVjdC0+bWV0aG9kVGFibGUoKS0+Z2V0T3duUHJvcGVy
dHlTbG90QnlJbmRleDsKKyAgICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7CisgICAgICAg
ICAgICBpZiAoZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleChpdGVyYXRlZE9iamVjdCwgY2FsbEZy
YW1lLCBpbmRleCwgc2xvdCkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBzbG90LmdldFZh
bHVlKGNhbGxGcmFtZSwgaW5kZXgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgaWYgKGl0ZXJhdGVkT2JqZWN0LT5nZXRQcm9wZXJ0eVNsb3QoY2Fs
bEZyYW1lLCBpbmRleCwgc2xvdCkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBzbG90Lmdl
dFZhbHVlKGNhbGxGcmFtZSwgaW5kZXgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgaW5kZXgrKzsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAo
aXRlcmF0ZWRPYmplY3QtPmdldFByb3BlcnR5U2xvdChjYWxsRnJhbWUsIGluZGV4LCBzbG90KSkK
KyAgICAgICAgcmVzdWx0ID0gc2xvdC5nZXRWYWx1ZShjYWxsRnJhbWUsIGluZGV4KTsKKworICAg
IGlmIChpbmRleCA9PSBsZW5ndGgpCisgICAgICAgIGl0ZXJhdG9yLT5maW5pc2goKTsKKyAgICBl
bHNlCisgICAgICAgIGl0ZXJhdG9yLT5zZXROZXh0SW5kZXgoaW5kZXggKyAxKTsKKyAgICByZXR1
cm4gY3JlYXRlSXRlcmF0b3JSZXN1bHQoY2FsbEZyYW1lLCBraW5kLCBpbmRleCwganNVbmRlZmlu
ZWQoKSwgaW5kZXggPT0gbGVuZ3RoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEw
ZWU5YTZhMjY3NmQ5OWQxOTM3ZDM4Yzg3ODEyOTU4NDRmYTBiNWQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmgK
QEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSwgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2lmbmRlZiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlX2gKKyNkZWZpbmUgQXJyYXlJ
dGVyYXRvclByb3RvdHlwZV9oCisKKyNpbmNsdWRlICJKU09iamVjdC5oIgorCituYW1lc3BhY2Ug
SlNDIHsKKworY2xhc3MgQXJyYXlJdGVyYXRvclByb3RvdHlwZSA6IHB1YmxpYyBKU05vbkZpbmFs
T2JqZWN0IHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKKwor
ICAgIHN0YXRpYyBBcnJheUl0ZXJhdG9yUHJvdG90eXBlKiBjcmVhdGUoVk0mIHZtLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICB7CisgICAg
ICAgIEFycmF5SXRlcmF0b3JQcm90b3R5cGUqIHByb3RvdHlwZSA9IG5ldyAoTm90TnVsbCwgYWxs
b2NhdGVDZWxsPEFycmF5SXRlcmF0b3JQcm90b3R5cGU+KHZtLmhlYXApKSBBcnJheUl0ZXJhdG9y
UHJvdG90eXBlKHZtLCBzdHJ1Y3R1cmUpOworICAgICAgICBwcm90b3R5cGUtPmZpbmlzaENyZWF0
aW9uKHZtLCBnbG9iYWxPYmplY3QpOworICAgICAgICByZXR1cm4gcHJvdG90eXBlOworICAgIH0K
KworICAgIERFQ0xBUkVfSU5GTzsKKworICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVj
dHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90
eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBp
bmZvKCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBBcnJheUl0ZXJhdG9yUHJvdG90eXBlKFZN
JiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgICAgIDogQmFzZSh2bSwgc3RydWN0dXJl
KQorICAgIHsKKyAgICB9CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2Jq
ZWN0Kik7Cit9OworCit9CisKKyNlbmRpZiAvLyAhZGVmaW5lZChBcnJheUl0ZXJhdG9yUHJvdG90
eXBlX2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVBy
b3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlw
ZS5jcHAKaW5kZXggNWY4Yzc2ZDMyMDY2OWE1YmU0YTQ1NmI1NGI1MzE2ZDZjNTY5MzQ0Ni4uYjJm
NmE5ODcxMGRmNjY0NWU4MzI1M2VkNDc0NDY5OGFiYzcwZmQxYyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRl
ICJKSVQuaCIKKyNpbmNsdWRlICJKU0FycmF5SXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU1N0cmlu
Z0J1aWxkZXIuaCIKICNpbmNsdWRlICJKU1N0cmluZ0pvaW5lci5oIgogI2luY2x1ZGUgIkxvb2t1
cC5oIgpAQCAtNjQsNiArNjUsOSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBhcnJheVByb3RvRnVuY01hcChFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jUmVkdWNlKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNSZWR1Y2VSaWdodChFeGVj
U3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9G
dW5jTGFzdEluZGV4T2YoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBhcnJheVByb3RvRnVuY1ZhbHVlcyhFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jS2V5cyhFeGVjU3RhdGUqKTsKK3N0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jRW50cmllcyhF
eGVjU3RhdGUqKTsKIAogfQogCkBAIC0xMTIsNiArMTE2LDkgQEAgY29uc3QgQ2xhc3NJbmZvIEFy
cmF5UHJvdG90eXBlOjpzX2luZm8gPSB7IkFycmF5IiwgJkpTQXJyYXk6OnNfaW5mbywgMCwgRXhl
Y1N0YXQKICAgcmVkdWNlICAgICAgICAgYXJyYXlQcm90b0Z1bmNSZWR1Y2UgICAgICAgICBEb250
RW51bXxGdW5jdGlvbiAxCiAgIHJlZHVjZVJpZ2h0ICAgIGFycmF5UHJvdG9GdW5jUmVkdWNlUmln
aHQgICAgRG9udEVudW18RnVuY3Rpb24gMQogICBtYXAgICAgICAgICAgICBhcnJheVByb3RvRnVu
Y01hcCAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKKyAgdmFsdWVzICAgICAgICAgYXJy
YXlQcm90b0Z1bmNWYWx1ZXMgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAwCisgIGVudHJpZXMg
ICAgICAgIGFycmF5UHJvdG9GdW5jRW50cmllcyAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMAor
ICBrZXlzICAgICAgICAgICBhcnJheVByb3RvRnVuY0tleXMgICAgICAgICAgIERvbnRFbnVtfEZ1
bmN0aW9uIDAKIEBlbmQKICovCiAKQEAgLTEzMzEsNCArMTMzOCwyMiBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jTGFzdEluZGV4T2YoRXhlY1N0YXRlKiBleGVj
KQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoLTEpKTsKIH0KIAorRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1ZhbHVlcyhFeGVjU3RhdGUqIGV4
ZWMpCit7CisgICAgSlNPYmplY3QqIHRoaXNPYmogPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9U
aGlzKGV4ZWMsIFN0cmljdE1vZGUpLnRvT2JqZWN0KGV4ZWMpOworICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoSlNBcnJheUl0ZXJhdG9yOjpjcmVhdGUoZXhlYywgZXhlYy0+Y2FsbGVlKCktPmds
b2JhbE9iamVjdCgpLT5hcnJheUl0ZXJhdG9yU3RydWN0dXJlKCksIEFycmF5SXRlcmF0ZVZhbHVl
LCB0aGlzT2JqKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90
b0Z1bmNFbnRyaWVzKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU09iamVjdCogdGhpc09iaiA9
IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9kZSkudG9PYmplY3Qo
ZXhlYyk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0FycmF5SXRlcmF0b3I6OmNyZWF0
ZShleGVjLCBleGVjLT5jYWxsZWUoKS0+Z2xvYmFsT2JqZWN0KCktPmFycmF5SXRlcmF0b3JTdHJ1
Y3R1cmUoKSwgQXJyYXlJdGVyYXRlS2V5VmFsdWUsIHRoaXNPYmopKTsKK30KKyAgICAKK0VuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNLZXlzKEV4ZWNTdGF0ZSogZXhl
YykKK3sKKyAgICBKU09iamVjdCogdGhpc09iaiA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKS50b1Ro
aXMoZXhlYywgU3RyaWN0TW9kZSkudG9PYmplY3QoZXhlYyk7CisgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShKU0FycmF5SXRlcmF0b3I6OmNyZWF0ZShleGVjLCBleGVjLT5jYWxsZWUoKS0+Z2xv
YmFsT2JqZWN0KCktPmFycmF5SXRlcmF0b3JTdHJ1Y3R1cmUoKSwgQXJyYXlJdGVyYXRlS2V5LCB0
aGlzT2JqKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKaW5kZXggNTQyMmM3YTRmOGI4MGU2
NDMyMmMxMzk0OGVkYWQyMDcxY2UwNDY1ZC4uZDg3ZDBiNDFiNDhjNjQ5ZmFkYjMwOWQ5ZDBiOTA0
MDY3N2ZkYTRlNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29t
bW9uSWRlbnRpZmllcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21t
b25JZGVudGlmaWVycy5oCkBAIC0yOSw2ICsyOSw3IEBACiAjZGVmaW5lIEpTQ19DT01NT05fSURF
TlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKG1hY3JvKSBcCiAgICAgbWFjcm8oQXJyYXkpIFwK
ICAgICBtYWNybyhBcnJheUJ1ZmZlcikgXAorICAgIG1hY3JvKEFycmF5SXRlcmF0b3IpIFwKICAg
ICBtYWNybyhCWVRFU19QRVJfRUxFTUVOVCkgXAogICAgIG1hY3JvKEJvb2xlYW4pIFwKICAgICBt
YWNybyhEYXRlKSBcCkBAIC04MCw2ICs4MSw3IEBACiAgICAgbWFjcm8oZGVzY3JpcHRpb25zKSBc
CiAgICAgbWFjcm8oZGlzcGxheU5hbWUpIFwKICAgICBtYWNybyhkb2N1bWVudCkgXAorICAgIG1h
Y3JvKGRvbmUpIFwKICAgICBtYWNybyhlbnVtZXJhYmxlKSBcCiAgICAgbWFjcm8oZXZhbCkgXAog
ICAgIG1hY3JvKGV4ZWMpIFwKQEAgLTEwNiw2ICsxMDgsNyBAQAogICAgIG1hY3JvKG1lc3NhZ2Up
IFwKICAgICBtYWNybyhtdWx0aWxpbmUpIFwKICAgICBtYWNybyhuYW1lKSBcCisgICAgbWFjcm8o
bmV4dCkgXAogICAgIG1hY3JvKG5vdykgXAogICAgIG1hY3JvKG51bUlubGluZWRDYWxscykgXAog
ICAgIG1hY3JvKG51bUlubGluZWRHZXRCeUlkcykgXApAQCAtMjA4LDYgKzIxMSw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICBjb25zdCBJZGVudGlmaWVyIHVuZGVyc2NvcmVQcm90bzsKICAg
ICAgICAgY29uc3QgSWRlbnRpZmllciB0aGlzSWRlbnRpZmllcjsKICAgICAgICAgY29uc3QgSWRl
bnRpZmllciB1c2VTdHJpY3RJZGVudGlmaWVyOworICAgICAgICBjb25zdCBQcml2YXRlTmFtZSBp
dGVyYXRvclByaXZhdGVOYW1lOwogCiAgICAgICAgIAogI2RlZmluZSBKU0NfSURFTlRJRklFUl9E
RUNMQVJFX0tFWVdPUkRfTkFNRV9HTE9CQUwobmFtZSkgY29uc3QgSWRlbnRpZmllciBuYW1lIyNL
ZXl3b3JkOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRp
Zmllci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllci5oCmluZGV4
IGQ0ZGIxMGJhYjA5MjlkZDhjMTg0OGQ2ZTQxNTQ2MGJiYjE1MTViZTQuLmJkMWVlY2M4Y2ExZmRh
MmI4NjQ5OGRmMDVhZmE0OTA0ODIxMjI2ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0lkZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JZGVudGlmaWVyLmgKQEAgLTYwLDYgKzYwLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICAKICAgICAgICAgQ1N0cmluZyBhc2NpaSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RyaW5nLmFz
Y2lpKCk7IH0KICAgICAgICAgQ1N0cmluZyB1dGY4KCkgY29uc3QgeyByZXR1cm4gbV9zdHJpbmcu
dXRmOCgpOyB9CisgICAgICAgIAorICAgICAgICBzdGF0aWMgSWRlbnRpZmllciBjcmVhdGVFbXB0
eVVuaXF1ZShWTSogdm0pCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBJZGVudGlmaWVy
KHZtLCBTdHJpbmcoU3RyaW5nSW1wbDo6Y3JlYXRlRW1wdHlVbmlxdWUoKSkpOworICAgICAgICB9
CiAKICAgICAgICAgc3RhdGljIElkZW50aWZpZXIgY3JlYXRlTENoYXJGcm9tVUNoYXIoVk0qIHZt
LCBjb25zdCBVQ2hhciogcywgaW50IGxlbmd0aCkgeyByZXR1cm4gSWRlbnRpZmllcih2bSwgYWRk
OCh2bSwgcywgbGVuZ3RoKSk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcnJheUl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQXJyYXlJdGVyYXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmQ3YzQyZmFhMTBhODAwZWRhNjkz
YTRkZGRiOTFmZjBjNzVlNjU4NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQXJyYXlJdGVyYXRvci5jcHAKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkpTQXJyYXlJdGVyYXRvci5oIgorCituYW1lc3BhY2UgSlNDIHsKKwor
Y29uc3QgQ2xhc3NJbmZvIEpTQXJyYXlJdGVyYXRvcjo6c19pbmZvID0geyAiQXJyYXlJdGVyYXRv
ciIsICZCYXNlOjpzX2luZm8sIDAsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNBcnJheUl0ZXJh
dG9yKSB9OworCit2b2lkIEpTQXJyYXlJdGVyYXRvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCosIEFycmF5SXRlcmF0aW9uS2luZCBraW5kLCBKU09iamVjdCogaXRlcmF0
ZWRPYmplY3QpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOworICAgIG1faXRlcmF0
aW9uS2luZCA9IGtpbmQ7CisgICAgbV9pdGVyYXRlZE9iamVjdC5zZXQodm0sIHRoaXMsIGl0ZXJh
dGVkT2JqZWN0KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheUl0ZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0FycmF5SXRlcmF0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZWYwNTU3NjBlZGY4N2FmY2YxODMzMmQxNjk5
Yjc3NTRiNDI4NmQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheUl0ZXJhdG9yLmgKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBKU0FycmF5SXRlcmF0b3Jf
aAorI2RlZmluZSBKU0FycmF5SXRlcmF0b3JfaAorCisjaW5jbHVkZSAiSlNPYmplY3QuaCIKKwor
bmFtZXNwYWNlIEpTQyB7CisKK2VudW0gQXJyYXlJdGVyYXRpb25LaW5kIHsKKyAgICBBcnJheUl0
ZXJhdGVLZXksCisgICAgQXJyYXlJdGVyYXRlVmFsdWUsCisgICAgQXJyYXlJdGVyYXRlS2V5VmFs
dWUsCisgICAgQXJyYXlJdGVyYXRlU3BhcnNlVGFnID0gNCwKKyAgICBBcnJheUl0ZXJhdGVTcGFy
c2VLZXksCisgICAgQXJyYXlJdGVyYXRlU3BhcnNlVmFsdWUsCisgICAgQXJyYXlJdGVyYXRlU3Bh
cnNlS2V5VmFsdWUKK307CisKK2NsYXNzIEpTQXJyYXlJdGVyYXRvciA6IHB1YmxpYyBKU05vbkZp
bmFsT2JqZWN0IHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsK
KworICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CisKKyAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVh
dGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
IHByb3RvdHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgaW5mbygpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgSlNBcnJheUl0ZXJhdG9yKiBjcmVh
dGUoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQXJyYXlJdGVyYXRpb25L
aW5kIGtpbmQsIEpTT2JqZWN0KiBpdGVyYXRlZE9iamVjdCkKKyAgICB7CisgICAgICAgIFZNJiB2
bSA9IGV4ZWMtPnZtKCk7CisgICAgICAgIEpTQXJyYXlJdGVyYXRvciogaW5zdGFuY2UgPSBuZXcg
KE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxKU0FycmF5SXRlcmF0b3I+KHZtLmhlYXApKSBKU0FycmF5
SXRlcmF0b3Iodm0sIHN0cnVjdHVyZSk7CisgICAgICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlv
bih2bSwgc3RydWN0dXJlLT5nbG9iYWxPYmplY3QoKSwga2luZCwgaXRlcmF0ZWRPYmplY3QpOwor
ICAgICAgICByZXR1cm4gaW5zdGFuY2U7CisgICAgfQorCisgICAgQXJyYXlJdGVyYXRpb25LaW5k
IGl0ZXJhdGlvbktpbmQoKSBjb25zdCB7IHJldHVybiBtX2l0ZXJhdGlvbktpbmQ7IH0KKyAgICBK
U09iamVjdCogaXRlcmF0ZWRPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX2l0ZXJhdGVkT2JqZWN0
LmdldCgpOyB9CisgICAgc2l6ZV90IG5leHRJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dElu
ZGV4OyB9CisgICAgdm9pZCBzZXROZXh0SW5kZXgoc2l6ZV90IG5leHRJbmRleCkgeyBtX25leHRJ
bmRleCA9IG5leHRJbmRleDsgfQorICAgIHZvaWQgZmluaXNoKCkgeyBtX25leHRJbmRleCA9IHN0
ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCk7IH0KKyAgICAKKyAgICB1c2luZyBKU05v
bkZpbmFsT2JqZWN0OjphcnJheVN0b3JhZ2VPck51bGw7CisKK3ByaXZhdGU6CisKKyAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsK
KworICAgIEpTQXJyYXlJdGVyYXRvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAg
ICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICAgICAgLCBtX25leHRJbmRleCgwKQorICAg
IHsKKyAgICB9CisKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3Qq
LCBBcnJheUl0ZXJhdGlvbktpbmQsIEpTT2JqZWN0KiBpdGVyYXRlZE9iamVjdCk7CisgICAgCisg
ICAgQXJyYXlJdGVyYXRpb25LaW5kIG1faXRlcmF0aW9uS2luZDsKKyAgICBXcml0ZUJhcnJpZXI8
SlNPYmplY3Q+IG1faXRlcmF0ZWRPYmplY3Q7CisgICAgc2l6ZV90IG1fbmV4dEluZGV4OworfTsK
KworfQorCisjZW5kaWYgLy8gIWRlZmluZWQoSlNBcnJheUl0ZXJhdG9yX2gpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggY2U4NDBi
MjBjMWEwYTNmODk4OWRkYjBmOTU1YTg3NDRkNGQxNWM0OS4uOTJmNWFiYTFiMTU0NWQ1MjkzZmNl
NDZjZjc4ZWY0ZGFhM2NlM2Y1OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtMzIsNiArMzIsOCBAQAogCiAjaW5jbHVkZSAiQXJn
dW1lbnRzLmgiCiAjaW5jbHVkZSAiQXJyYXlDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIkFycmF5
SXRlcmF0b3JDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIkFycmF5SXRlcmF0b3JQcm90b3R5cGUu
aCIKICNpbmNsdWRlICJBcnJheVByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkJvb2xlYW5Db25zdHJ1
Y3Rvci5oIgogI2luY2x1ZGUgIkJvb2xlYW5Qcm90b3R5cGUuaCIKQEAgLTUzLDYgKzU1LDcgQEAK
ICNpbmNsdWRlICJKU0FycmF5QnVmZmVyLmgiCiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlckNvbnN0
cnVjdG9yLmgiCiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5oIgorI2luY2x1ZGUg
IkpTQXJyYXlJdGVyYXRvci5oIgogI2luY2x1ZGUgIkpTQm91bmRGdW5jdGlvbi5oIgogI2luY2x1
ZGUgIkpTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkpTQ2FsbGJhY2tGdW5jdGlv
bi5oIgpAQCAtMzgyLDcgKzM4NSwxMiBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0OjpyZXNldChKU1Zh
bHVlIHByb3RvdHlwZSkKICAgICBGT1JfRUFDSF9TSU1QTEVfQlVJTFRJTl9UWVBFKFBVVF9DT05T
VFJVQ1RPUl9GT1JfU0lNUExFX1RZUEUpCiAKICN1bmRlZiBQVVRfQ09OU1RSVUNUT1JfRk9SX1NJ
TVBMRV9UWVBFCi0KKyAgICBQcm90b3R5cGVNYXAmIHByb3RvdHlwZU1hcCA9IHZtLnByb3RvdHlw
ZU1hcDsKKyAgICBTdHJ1Y3R1cmUqIGl0ZXJhdG9yUmVzdWx0U3RydWN0dXJlID0gcHJvdG90eXBl
TWFwLmVtcHR5T2JqZWN0U3RydWN0dXJlRm9yUHJvdG90eXBlKG1fb2JqZWN0UHJvdG90eXBlLmdl
dCgpLCBKU0ZpbmFsT2JqZWN0OjpkZWZhdWx0SW5saW5lQ2FwYWNpdHkoKSk7CisgICAgUHJvcGVy
dHlPZmZzZXQgb2Zmc2V0OworICAgIGl0ZXJhdG9yUmVzdWx0U3RydWN0dXJlID0gU3RydWN0dXJl
OjphZGRQcm9wZXJ0eVRyYW5zaXRpb24odm0sIGl0ZXJhdG9yUmVzdWx0U3RydWN0dXJlLCB2bS5w
cm9wZXJ0eU5hbWVzLT5kb25lLCAwLCAwLCBvZmZzZXQpOworICAgIGl0ZXJhdG9yUmVzdWx0U3Ry
dWN0dXJlID0gU3RydWN0dXJlOjphZGRQcm9wZXJ0eVRyYW5zaXRpb24odm0sIGl0ZXJhdG9yUmVz
dWx0U3RydWN0dXJlLCB2bS5wcm9wZXJ0eU5hbWVzLT52YWx1ZSwgMCwgMCwgb2Zmc2V0KTsKKyAg
ICBtX2l0ZXJhdG9yUmVzdWx0U3RydWN0dXJlLnNldCh2bSwgdGhpcywgaXRlcmF0b3JSZXN1bHRT
dHJ1Y3R1cmUpOwogCiAgICAgbV9ldmFsRnVuY3Rpb24uc2V0KHZtLCB0aGlzLCBKU0Z1bmN0aW9u
OjpjcmVhdGUodm0sIHRoaXMsIDEsIHZtLnByb3BlcnR5TmFtZXMtPmV2YWwuc3RyaW5nKCksIGds
b2JhbEZ1bmNFdmFsKSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnBy
b3BlcnR5TmFtZXMtPmV2YWwsIG1fZXZhbEZ1bmN0aW9uLmdldCgpLCBEb250RW51bSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCAyNzRj
OWJlZWU4ZjlhMzI1NzMzZDA5OGZjOGU5ZDg3MDYzOThkZTdlLi5hNjViOWY1MjlmOWMxMzMyOTQx
NzZjZDM0NzE4YTExODcwNmZkYTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTgxLDYgKzgxLDcgQEAgc3RydWN0IEhhc2hUYWJsZTsK
ICAgICBtYWNybyhFcnJvciwgZXJyb3IsIGVycm9yLCBFcnJvckluc3RhbmNlLCBFcnJvcikgXAog
ICAgIG1hY3JvKEpTQXJyYXlCdWZmZXIsIGFycmF5QnVmZmVyLCBhcnJheUJ1ZmZlciwgSlNBcnJh
eUJ1ZmZlciwgQXJyYXlCdWZmZXIpIFwKICAgICBtYWNybyhXZWFrTWFwLCB3ZWFrTWFwLCB3ZWFr
TWFwLCBKU1dlYWtNYXAsIFdlYWtNYXApIFwKKyAgICBtYWNybyhBcnJheUl0ZXJhdG9yLCBhcnJh
eUl0ZXJhdG9yLCBhcnJheUl0ZXJhdG9yLCBKU0FycmF5SXRlcmF0b3IsIEFycmF5SXRlcmF0b3Ip
IFwKIAogI2RlZmluZSBERUNMQVJFX1NJTVBMRV9CVUlMVElOX1RZUEUoY2FwaXRhbE5hbWUsIGxv
d2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUpIFwKICAgICBjbGFzcyBK
UyAjIyBjYXBpdGFsTmFtZTsgXApAQCAtMTk0LDYgKzE5NSw4IEBAIHByb3RlY3RlZDoKICAgICBX
cml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3JlZ0V4cE1hdGNoZXNBcnJheVN0cnVjdHVyZTsKICAg
ICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3JlZ0V4cFN0cnVjdHVyZTsKICAgICBXcml0ZUJh
cnJpZXI8U3RydWN0dXJlPiBtX2ludGVybmFsRnVuY3Rpb25TdHJ1Y3R1cmU7CisgICAgCisgICAg
V3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9pdGVyYXRvclJlc3VsdFN0cnVjdHVyZTsKIAogI2lm
IEVOQUJMRShQUk9NSVNFUykKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3Byb21pc2VT
dHJ1Y3R1cmU7CkBAIC00MDIsNiArNDA1LDcgQEAgcHVibGljOgogICAgIFN0cnVjdHVyZSogcmVn
RXhwU3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV9yZWdFeHBTdHJ1Y3R1cmUuZ2V0KCk7IH0K
ICAgICBTdHJ1Y3R1cmUqIHNldFN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2V0U3RydWN0
dXJlLmdldCgpOyB9CiAgICAgU3RydWN0dXJlKiBzdHJpbmdPYmplY3RTdHJ1Y3R1cmUoKSBjb25z
dCB7IHJldHVybiBtX3N0cmluZ09iamVjdFN0cnVjdHVyZS5nZXQoKTsgfQorICAgIFN0cnVjdHVy
ZSogaXRlcmF0b3JSZXN1bHRTdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX2l0ZXJhdG9yUmVz
dWx0U3RydWN0dXJlLmdldCgpOyB9CiAKICNpZiBFTkFCTEUoUFJPTUlTRVMpCiAgICAgU3RydWN0
dXJlKiBwcm9taXNlU3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV9wcm9taXNlU3RydWN0dXJl
LmdldCgpOyB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggYTNjZTJjNzM3MDEzNjAyNzJlYTZmNDQxYzdiZjQwYWY3MGUzYzg0
My4uODhlMGY2ZTQzMTFlMDM3YjgzMWFjNmQ5YzUwNWMxMGM2YjdjODM4MSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE4IEBACisyMDEzLTEwLTAxICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisK
KyAgICAgICAgSW1wbGVtZW50IEFycmF5IGtleSwgdmFsdWUgYW5kIGVudHJpZXMgaXRlcmF0b3Jz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjIxOTUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVz
dHMKKworICAgICAgICAqIGpzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBqcy9hcnJheS1pdGVyYXRvcnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBqcy9hcnJheS1pdGVyYXRvcnMuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvc2Ny
aXB0LXRlc3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzOgorICAgICAgICAqIGpzL3Nj
cmlwdC10ZXN0cy9hcnJheS1pdGVyYXRvcnMuanM6IEFkZGVkLgorCiAyMDEzLTA5LTI1ICBPbGl2
ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IHByZWZpeGVk
LWRlc3RydWN0dXJpbmcgYXNzaWdubWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvT2Jq
ZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvT2Jq
ZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0CmluZGV4IDQ4MTRlYjcyMDQ1ZDgx
ZmUzNTdiNGUwYzA4M2MyOTMxN2IyMjlhMzIuLjllZGQwNjY0YzQxNDhkMmI0NTVjZmNmYzA3ODQ2
ZWE3YmQzMzBlY2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL09iamVjdC1nZXRPd25Qcm9w
ZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9PYmplY3QtZ2V0T3du
UHJvcGVydHlOYW1lcy1leHBlY3RlZC50eHQKQEAgLTQ1LDcgKzQ1LDcgQEAgUEFTUyBnZXRTb3J0
ZWRPd25Qcm9wZXJ0eU5hbWVzKE9iamVjdC5wcm90b3R5cGUpIGlzIFsnX19kZWZpbmVHZXR0ZXJf
XycsICdfX2RlZmkKIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhGdW5jdGlvbikgaXMg
WydsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUnXQogUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0
eU5hbWVzKEZ1bmN0aW9uLnByb3RvdHlwZSkgaXMgWydhcHBseScsICdiaW5kJywgJ2NhbGwnLCAn
Y29uc3RydWN0b3InLCAnbGVuZ3RoJywgJ25hbWUnLCAndG9TdHJpbmcnXQogUEFTUyBnZXRTb3J0
ZWRPd25Qcm9wZXJ0eU5hbWVzKEFycmF5KSBpcyBbJ2lzQXJyYXknLCAnbGVuZ3RoJywgJ25hbWUn
LCAncHJvdG90eXBlJ10KLVBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhBcnJheS5wcm90
b3R5cGUpIGlzIFsnY29uY2F0JywgJ2NvbnN0cnVjdG9yJywgJ2V2ZXJ5JywgJ2ZpbHRlcicsICdm
b3JFYWNoJywgJ2luZGV4T2YnLCAnam9pbicsICdsYXN0SW5kZXhPZicsICdsZW5ndGgnLCAnbWFw
JywgJ3BvcCcsICdwdXNoJywgJ3JlZHVjZScsICdyZWR1Y2VSaWdodCcsICdyZXZlcnNlJywgJ3No
aWZ0JywgJ3NsaWNlJywgJ3NvbWUnLCAnc29ydCcsICdzcGxpY2UnLCAndG9Mb2NhbGVTdHJpbmcn
LCAndG9TdHJpbmcnLCAndW5zaGlmdCddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMo
QXJyYXkucHJvdG90eXBlKSBpcyBbJ2NvbmNhdCcsICdjb25zdHJ1Y3RvcicsICdlbnRyaWVzJywg
J2V2ZXJ5JywgJ2ZpbHRlcicsICdmb3JFYWNoJywgJ2luZGV4T2YnLCAnam9pbicsICdrZXlzJywg
J2xhc3RJbmRleE9mJywgJ2xlbmd0aCcsICdtYXAnLCAncG9wJywgJ3B1c2gnLCAncmVkdWNlJywg
J3JlZHVjZVJpZ2h0JywgJ3JldmVyc2UnLCAnc2hpZnQnLCAnc2xpY2UnLCAnc29tZScsICdzb3J0
JywgJ3NwbGljZScsICd0b0xvY2FsZVN0cmluZycsICd0b1N0cmluZycsICd1bnNoaWZ0JywgJ3Zh
bHVlcyddCiBQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoU3RyaW5nKSBpcyBbJ2Zyb21D
aGFyQ29kZScsICdsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUnXQogUEFTUyBnZXRTb3J0ZWRP
d25Qcm9wZXJ0eU5hbWVzKFN0cmluZy5wcm90b3R5cGUpIGlzIFsnYW5jaG9yJywgJ2JpZycsICdi
bGluaycsICdib2xkJywgJ2NoYXJBdCcsICdjaGFyQ29kZUF0JywgJ2NvbmNhdCcsICdjb25zdHJ1
Y3RvcicsICdmaXhlZCcsICdmb250Y29sb3InLCAnZm9udHNpemUnLCAnaW5kZXhPZicsICdpdGFs
aWNzJywgJ2xhc3RJbmRleE9mJywgJ2xlbmd0aCcsICdsaW5rJywgJ2xvY2FsZUNvbXBhcmUnLCAn
bWF0Y2gnLCAncmVwbGFjZScsICdzZWFyY2gnLCAnc2xpY2UnLCAnc21hbGwnLCAnc3BsaXQnLCAn
c3RyaWtlJywgJ3N1YicsICdzdWJzdHInLCAnc3Vic3RyaW5nJywgJ3N1cCcsICd0b0xvY2FsZUxv
d2VyQ2FzZScsICd0b0xvY2FsZVVwcGVyQ2FzZScsICd0b0xvd2VyQ2FzZScsICd0b1N0cmluZycs
ICd0b1VwcGVyQ2FzZScsICd0cmltJywgJ3RyaW1MZWZ0JywgJ3RyaW1SaWdodCcsICd2YWx1ZU9m
J10KIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhCb29sZWFuKSBpcyBbJ2xlbmd0aCcs
ICduYW1lJywgJ3Byb3RvdHlwZSddCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9hcnJheS1p
dGVyYXRvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvYXJyYXktaXRlcmF0b3JzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODE5ZWMwZjVkZDI4YjQ1ZGIzN2E0ODI4MzRmNzY2M2Fm
ZDExMjllCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvYXJyYXktaXRlcmF0b3Jz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDY1IEBACitUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhh
dmlvciBvZiB0aGUgaXRlcmF0b3IgbWV0aG9kcyBvbiBBcnJheSBvYmplY3RzLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBrZXkgaXMgMAorUEFTUyBrZXkgaXMgMQorUEFT
UyBrZXkgaXMgMgorUEFTUyBrZXkgaXMgMworUEFTUyBrZXkgaXMgNAorUEFTUyBrZXkgaXMgNQor
UEFTUyB0ZXN0QXJyYXkubGVuZ3RoIGlzIDYKK1BBU1Mga2V5cy5uZXh0KCkudmFsdWUgaXMgdW5k
ZWZpbmVkLgorUEFTUyB2YWx1ZSBpcyAxCitQQVNTIHZhbHVlIGlzIDIKK1BBU1MgdmFsdWUgaXMg
MworUEFTUyB2YWx1ZSBpcyA0CitQQVNTIHZhbHVlIGlzIDUKK1BBU1MgdmFsdWUgaXMgNgorUEFT
UyB0ZXN0QXJyYXkubGVuZ3RoIGlzIDYKK1BBU1MgdmFsdWVzLm5leHQoKS52YWx1ZSBpcyB1bmRl
ZmluZWQuCitQQVNTIHZhbHVlIGlzIHRlc3RBcnJheVtrZXldCitQQVNTIGtleSBpcyAwCitQQVNT
IHZhbHVlIGlzIDEKK1BBU1MgdmFsdWUgaXMgdGVzdEFycmF5W2tleV0KK1BBU1Mga2V5IGlzIDEK
K1BBU1MgdmFsdWUgaXMgMgorUEFTUyB2YWx1ZSBpcyB0ZXN0QXJyYXlba2V5XQorUEFTUyBrZXkg
aXMgMgorUEFTUyB2YWx1ZSBpcyAzCitQQVNTIHZhbHVlIGlzIHRlc3RBcnJheVtrZXldCitQQVNT
IGtleSBpcyAzCitQQVNTIHZhbHVlIGlzIDQKK1BBU1MgdmFsdWUgaXMgdGVzdEFycmF5W2tleV0K
K1BBU1Mga2V5IGlzIDQKK1BBU1MgdmFsdWUgaXMgNQorUEFTUyB2YWx1ZSBpcyB0ZXN0QXJyYXlb
a2V5XQorUEFTUyBrZXkgaXMgNQorUEFTUyB2YWx1ZSBpcyA2CitQQVNTIHRlc3RBcnJheS5sZW5n
dGggaXMgNgorUEFTUyBlbnRyaWVzLm5leHQoKS52YWx1ZSBpcyB1bmRlZmluZWQuCitQQVNTIHZh
bHVlIGlzIHRlc3RBcnJheVtrZXldCitQQVNTIGtleSBpcyBpCitQQVNTIHZhbHVlIGlzIHRlc3RB
cnJheVtrZXldCitQQVNTIGtleSBpcyBpCitQQVNTIHZhbHVlIGlzIHRlc3RBcnJheVtrZXldCitQ
QVNTIGtleSBpcyBpCitQQVNTIHZhbHVlIGlzIHRlc3RBcnJheVtrZXldCitQQVNTIGtleSBpcyBp
CitQQVNTIHZhbHVlIGlzIHRlc3RBcnJheVtrZXldCitQQVNTIGtleSBpcyBpCitQQVNTIHZhbHVl
IGlzIHRlc3RBcnJheVtrZXldCitQQVNTIGtleSBpcyBpCitQQVNTIHZhbHVlIGlzIHRlc3RBcnJh
eVtrZXldCitQQVNTIGtleSBpcyBpCitQQVNTIHZhbHVlIGlzIHRlc3RBcnJheVtrZXldCitQQVNT
IGtleSBpcyBpCitQQVNTIHZhbHVlIGlzIHRlc3RBcnJheVtrZXldCitQQVNTIGtleSBpcyBpCitQ
QVNTIHRlc3RBcnJheS5sZW5ndGggaXMgOQorUEFTUyBlbnRyaWVzLm5leHQoKS52YWx1ZSBpcyB1
bmRlZmluZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvYXJyYXktaXRlcmF0b3JzLmh0bWwgYi9M
YXlvdXRUZXN0cy9qcy9hcnJheS1pdGVyYXRvcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZWU2NjRiZTll
Mzk5MGYwZmMyNGIzZjIxMzllNDRhN2QwMTEzMjg4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvanMvYXJyYXktaXRlcmF0b3JzLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LWl0ZXJhdG9ycy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3Jp
cHQtdGVzdHMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMuanMgYi9MYXlvdXRUZXN0cy9qcy9z
Y3JpcHQtdGVzdHMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMuanMKaW5kZXggNDNkZjQxNzZm
NmU4OWY1ZTdiNzljMDJiNDM2Mjk2NWVmYTgzNTJlNi4uMGY1MzcwYjliY2QwYmM0NjYyMDJhZWJm
ZGNkYjkyNjU0M2NlM2RiZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3Rz
L09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzCisrKyBiL0xheW91dFRlc3RzL2pzL3Njcmlw
dC10ZXN0cy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy5qcwpAQCAtNTMsNyArNTMsNyBAQCB2
YXIgZXhwZWN0ZWRQcm9wZXJ0eU5hbWVzU2V0ID0gewogICAgICJGdW5jdGlvbiI6ICJbJ2xlbmd0
aCcsICduYW1lJywgJ3Byb3RvdHlwZSddIiwKICAgICAiRnVuY3Rpb24ucHJvdG90eXBlIjogIlsn
YXBwbHknLCAnYmluZCcsICdjYWxsJywgJ2NvbnN0cnVjdG9yJywgJ2xlbmd0aCcsICduYW1lJywg
J3RvU3RyaW5nJ10iLAogICAgICJBcnJheSI6ICJbJ2lzQXJyYXknLCAnbGVuZ3RoJywgJ25hbWUn
LCAncHJvdG90eXBlJ10iLAotICAgICJBcnJheS5wcm90b3R5cGUiOiAiWydjb25jYXQnLCAnY29u
c3RydWN0b3InLCAnZXZlcnknLCAnZmlsdGVyJywgJ2ZvckVhY2gnLCAnaW5kZXhPZicsICdqb2lu
JywgJ2xhc3RJbmRleE9mJywgJ2xlbmd0aCcsICdtYXAnLCAncG9wJywgJ3B1c2gnLCAncmVkdWNl
JywgJ3JlZHVjZVJpZ2h0JywgJ3JldmVyc2UnLCAnc2hpZnQnLCAnc2xpY2UnLCAnc29tZScsICdz
b3J0JywgJ3NwbGljZScsICd0b0xvY2FsZVN0cmluZycsICd0b1N0cmluZycsICd1bnNoaWZ0J10i
LAorICAgICJBcnJheS5wcm90b3R5cGUiOiAiWydjb25jYXQnLCAnY29uc3RydWN0b3InLCAnZW50
cmllcycsICdldmVyeScsICdmaWx0ZXInLCAnZm9yRWFjaCcsICdpbmRleE9mJywgJ2pvaW4nLCAn
a2V5cycsICdsYXN0SW5kZXhPZicsICdsZW5ndGgnLCAnbWFwJywgJ3BvcCcsICdwdXNoJywgJ3Jl
ZHVjZScsICdyZWR1Y2VSaWdodCcsICdyZXZlcnNlJywgJ3NoaWZ0JywgJ3NsaWNlJywgJ3NvbWUn
LCAnc29ydCcsICdzcGxpY2UnLCAndG9Mb2NhbGVTdHJpbmcnLCAndG9TdHJpbmcnLCAndW5zaGlm
dCcsICd2YWx1ZXMnXSIsCiAgICAgIlN0cmluZyI6ICJbJ2Zyb21DaGFyQ29kZScsICdsZW5ndGgn
LCAnbmFtZScsICdwcm90b3R5cGUnXSIsCiAgICAgIlN0cmluZy5wcm90b3R5cGUiOiAiWydhbmNo
b3InLCAnYmlnJywgJ2JsaW5rJywgJ2JvbGQnLCAnY2hhckF0JywgJ2NoYXJDb2RlQXQnLCAnY29u
Y2F0JywgJ2NvbnN0cnVjdG9yJywgJ2ZpeGVkJywgJ2ZvbnRjb2xvcicsICdmb250c2l6ZScsICdp
bmRleE9mJywgJ2l0YWxpY3MnLCAnbGFzdEluZGV4T2YnLCAnbGVuZ3RoJywgJ2xpbmsnLCAnbG9j
YWxlQ29tcGFyZScsICdtYXRjaCcsICdyZXBsYWNlJywgJ3NlYXJjaCcsICdzbGljZScsICdzbWFs
bCcsICdzcGxpdCcsICdzdHJpa2UnLCAnc3ViJywgJ3N1YnN0cicsICdzdWJzdHJpbmcnLCAnc3Vw
JywgJ3RvTG9jYWxlTG93ZXJDYXNlJywgJ3RvTG9jYWxlVXBwZXJDYXNlJywgJ3RvTG93ZXJDYXNl
JywgJ3RvU3RyaW5nJywgJ3RvVXBwZXJDYXNlJywgJ3RyaW0nLCAndHJpbUxlZnQnLCAndHJpbVJp
Z2h0JywgJ3ZhbHVlT2YnXSIsCiAgICAgIkJvb2xlYW4iOiAiWydsZW5ndGgnLCAnbmFtZScsICdw
cm90b3R5cGUnXSIsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvYXJy
YXktaXRlcmF0b3JzLmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2FycmF5LWl0ZXJh
dG9ycy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43Y2NiNzg5Mzg4OTIxNDJmOWJjMzI3MGJiNDBhNTZjY2VlZDE4
ODhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2FycmF5
LWl0ZXJhdG9ycy5qcwpAQCAtMCwwICsxLDc2IEBACitkZXNjcmlwdGlvbigKKyJUaGlzIHRlc3Qg
Y2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgaXRlcmF0b3IgbWV0aG9kcyBvbiBBcnJheSBvYmpl
Y3RzLiIKKyk7CisKKwordmFyIHRlc3RBcnJheSA9IFsxLDIsMyw0LDUsNl0KK3ZhciBrZXlzID0g
dGVzdEFycmF5LmtleXMoKTsKK3ZhciBpID0gMDsKK3doaWxlICh0cnVlKSB7CisgICAgdmFyIHtk
b25lLCB2YWx1ZToga2V5fSA9IGtleXMubmV4dCgpOworICAgIGlmIChkb25lKQorICAgICAgICBi
cmVhazsKKyAgICBzaG91bGRCZSgia2V5IiwgU3RyaW5nKGkpKQorICAgIGkrKzsKK30KKworc2hv
dWxkQmUoInRlc3RBcnJheS5sZW5ndGgiLCBTdHJpbmcoaSkpCisKK3Nob3VsZEJlVW5kZWZpbmVk
KCJrZXlzLm5leHQoKS52YWx1ZSIpCisKK3ZhciB2YWx1ZXMgPSB0ZXN0QXJyYXkudmFsdWVzKCk7
Cit2YXIgaSA9IDA7Cit3aGlsZSAodHJ1ZSkgeworICAgIHZhciB7ZG9uZSwgdmFsdWV9ID0gdmFs
dWVzLm5leHQoKTsKKyAgICBpZiAoZG9uZSkKKyAgICAgICAgYnJlYWs7CisgICAgaSsrOworICAg
IHNob3VsZEJlKCJ2YWx1ZSIsIFN0cmluZyhpKSApCit9CisKK3Nob3VsZEJlKCJ0ZXN0QXJyYXku
bGVuZ3RoIiwgU3RyaW5nKGkpKQorCitzaG91bGRCZVVuZGVmaW5lZCgidmFsdWVzLm5leHQoKS52
YWx1ZSIpCisKK3ZhciBlbnRyaWVzID0gdGVzdEFycmF5LmVudHJpZXMoKTsKK3ZhciBpID0gMDsK
K2RvIHsKKyAgICB2YXIge2RvbmUsIHZhbHVlOiBlbnRyeX0gPSBlbnRyaWVzLm5leHQoKTsKKyAg
ICBpZiAoZG9uZSkKKyAgICAgICAgYnJlYWs7CisgICAgdmFyIFtrZXksIHZhbHVlXSA9IGVudHJ5
OworICAgIHNob3VsZEJlKCJ2YWx1ZSIsICJ0ZXN0QXJyYXlba2V5XSIpCisgICAgc2hvdWxkQmUo
ImtleSIsIFN0cmluZyhpKSkKKyAgICBpKysKKyAgICBzaG91bGRCZSgidmFsdWUiLCBTdHJpbmco
aSkpCit9IHdoaWxlICghZG9uZSk7CisKK3Nob3VsZEJlKCJ0ZXN0QXJyYXkubGVuZ3RoIiwgU3Ry
aW5nKGkpKQorCitzaG91bGRCZVVuZGVmaW5lZCgiZW50cmllcy5uZXh0KCkudmFsdWUiKQorCisK
KwordmFyIGVudHJpZXMgPSB0ZXN0QXJyYXkuZW50cmllcygpOwordmFyIGkgPSAwOworZG8gewor
ICAgIHZhciB7ZG9uZSwgdmFsdWU6IGVudHJ5fSA9IGVudHJpZXMubmV4dCgpOworICAgIGlmIChk
b25lKQorICAgICAgICBicmVhazsKKyAgICB2YXIgW2tleSwgdmFsdWVdID0gZW50cnk7CisgICAg
c2hvdWxkQmUoInZhbHVlIiwgInRlc3RBcnJheVtrZXldIikKKyAgICBzaG91bGRCZSgia2V5Iiwg
ImkiKQorICAgIGkrKworICAgIGlmIChpICUgMiA9PSAwKQorICAgICAgICB0ZXN0QXJyYXlbaV0g
Kj0gMjsKKyAgICBpZiAoaSA8IDQpCisgICAgICAgIHRlc3RBcnJheS5wdXNoKHRlc3RBcnJheS5s
ZW5ndGgpCisgICAgaWYgKGkgPT0gNCkKKyAgICAgICAgZGVsZXRlIHRlc3RBcnJheVs0XQorICAg
IGlmIChpID09IDUpCisgICAgICAgIHRlc3RBcnJheVs0XSA9IDUKK30gd2hpbGUgKCFkb25lKTsK
K3Nob3VsZEJlKCJ0ZXN0QXJyYXkubGVuZ3RoIiwgU3RyaW5nKGkpKQorCitzaG91bGRCZVVuZGVm
aW5lZCgiZW50cmllcy5uZXh0KCkudmFsdWUiKQorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213187</attachid>
            <date>2013-10-02 13:01:03 -0700</date>
            <delta_ts>2013-10-02 13:19:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122195-20131002130102.patch</filename>
            <type>text/plain</type>
            <size>51503</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2Nzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
NjY5NjM1MTRlN2ZjN2VkMzFjY2M5MzUwMjIxYjkxYWExZmU4MDBhLi42ZmIxNWFlZTkxZjJkNzNk
YTA0OGIyYTA3YjE1MmQ4MjBlNWQ3MDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MyBAQAorMjAxMy0xMC0wMSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIEltcGxlbWVudCBBcnJheSBrZXksIHZhbHVlIGFuZCBlbnRyaWVzIGl0ZXJhdG9y
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyMTk1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGlt
cGxlbWVudGF0aW9uIG9mIEVTNiBBcnJheSBpdGVyYXRvcnMgZm9yIGtleXMoKSwgdmFsdWVzKCkg
YW5kIGVudHJpZXMoKQorCisgICAgICAgIEZhaXJseSBzZWxmIGV4cGxhbmF0b3J5IGFzIHdlIGp1
c3QgbmVlZCBhIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBzbyB0aGF0IHdlIGNhbgorICAgICAgICBp
bXBsZW1lbnQgYW5kIHRlc3Qgb3RoZXIgZmVhdHVyZXMuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlJ
dGVyYXRvckNvbnN0cnVjdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OkFycmF5SXRlcmF0
b3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlJ
dGVyYXRvckNvbnN0cnVjdG9yLmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpBcnJheUl0ZXJhdG9y
Q29uc3RydWN0b3I6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkFycmF5SXRlcmF0b3JDb25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6QXJyYXlJdGVyYXRvckNvbnN0
cnVjdG9yOjpBcnJheUl0ZXJhdG9yQ29uc3RydWN0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvQXJy
YXlJdGVyYXRvclByb3RvdHlwZS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpBcnJheUl0ZXJh
dG9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OmNyZWF0ZUl0ZXJh
dG9yUmVzdWx0KToKKyAgICAgICAgKEpTQzo6YXJyYXlJdGVyYXRvclByb3RvdHlwZU5leHQpOgor
ICAgICAgICAqIHJ1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oOiBBZGRlZC4KKyAgICAg
ICAgKEpTQzo6QXJyYXlJdGVyYXRvclByb3RvdHlwZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6
QXJyYXlJdGVyYXRvclByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6
QXJyYXlJdGVyYXRvclByb3RvdHlwZTo6QXJyYXlJdGVyYXRvclByb3RvdHlwZSk6CisgICAgICAg
ICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9G
dW5jVmFsdWVzKToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNFbnRyaWVzKToKKyAgICAg
ICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNLZXlzKToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vbklk
ZW50aWZpZXJzLmg6CisgICAgICAgICogcnVudGltZS9JZGVudGlmaWVyLmg6CisgICAgICAgIChK
U0M6OklkZW50aWZpZXI6OmNyZWF0ZUVtcHR5VW5pcXVlKToKKyAgICAgICAgKiBydW50aW1lL0pT
QXJyYXlJdGVyYXRvci5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6
OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlJdGVyYXRvci5oOiBB
ZGRlZC4KKyAgICAgICAgKEpTQzo6SlNBcnJheUl0ZXJhdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkpT
QXJyYXlJdGVyYXRvcjo6aXRlcmF0aW9uS2luZCk6CisgICAgICAgIChKU0M6OkpTQXJyYXlJdGVy
YXRvcjo6aXRlcmF0ZWRPYmplY3QpOgorICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6Om5l
eHRJbmRleCk6CisgICAgICAgIChKU0M6OkpTQXJyYXlJdGVyYXRvcjo6c2V0TmV4dEluZGV4KToK
KyAgICAgICAgKEpTQzo6SlNBcnJheUl0ZXJhdG9yOjpmaW5pc2gpOgorICAgICAgICAoSlNDOjpK
U0FycmF5SXRlcmF0b3I6OkpTQXJyYXlJdGVyYXRvcik6CisgICAgICAgICogcnVudGltZS9KU0ds
b2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpyZXNldCk6Cisg
ICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0dsb2Jh
bE9iamVjdDo6aXRlcmF0b3JSZXN1bHRTdHJ1Y3R1cmUpOgorCiAyMDEzLTA5LTI1ICBPbGl2ZXIg
SHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IHByZWZpeGVkLWRl
c3RydWN0dXJpbmcgYXNzaWdubWVudApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGQ4YmY1NTUwOTk2MjFkYTM3YzY1YjQxODk1MTY0ODExYWEwNDJmYmQuLmZiM2Q4NTBlMTM1
OGI2ZmQ2NmIyYTc1MGFiMjQzYTk1NGNhYjM2MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VM
aXN0cy50eHQKQEAgLTI2Niw2ICsyNjYsOCBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwog
ICAgIHJ1bnRpbWUvQXJyYXlCdWZmZXIuY3BwCiAgICAgcnVudGltZS9BcnJheUJ1ZmZlclZpZXcu
Y3BwCiAgICAgcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcAorICAgIHJ1bnRpbWUvQXJyYXlJ
dGVyYXRvckNvbnN0cnVjdG9yLmNwcAorICAgIHJ1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlw
ZS5jcHAKICAgICBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAogICAgIHJ1bnRpbWUvQm9vbGVh
bkNvbnN0cnVjdG9yLmNwcAogICAgIHJ1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAKQEAgLTMwOSw2
ICszMTEsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIHJ1bnRpbWUvSlNBcnJh
eUJ1ZmZlckNvbnN0cnVjdG9yLmNwcAogICAgIHJ1bnRpbWUvSlNBcnJheUJ1ZmZlclByb3RvdHlw
ZS5jcHAKICAgICBydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3LmNwcAorICAgIHJ1bnRpbWUvSlNB
cnJheUl0ZXJhdG9yLmNwcAogICAgIHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcAogICAgIHJ1
bnRpbWUvSlNDSlNWYWx1ZS5jcHAKICAgICBydW50aW1lL0pTQ2VsbC5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZjhiM2I5NzQyOGNmMjAwY2Y0YzRm
Y2E2ODUwZWU3ZGJhMGY4ZDRjZS4uZGNiNzE4OTkzMDQzOTc2NmQzMWFhOGQ4ZmIyMjA1MDU5NWI5
NGE0YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTc0
OCw2ICs3NDgsMTAgQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAgXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaCBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJyYXlDb252ZW50aW9ucy5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9BcnJheUl0ZXJhdG9yQ29uc3RydWN0b3IuY3BwIFwKKyAgICBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yQ29uc3RydWN0b3IuaCBcCisgICAgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAgXAorICAg
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuaCBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oIFwKIAlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVN0b3JhZ2UuaCBcCkBAIC04NTMsNiArODU3LDgg
QEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXcuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FycmF5QnVmZmVyVmlldy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5QnVmZmVyVmlld0lubGluZXMuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheUl0ZXJhdG9yLmNwcCBcCisgICAgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheUl0ZXJhdG9yLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbC5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oIFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3LmNwcCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagppbmRleCBkZDA3MjdmNzRkYTNmNTA5MjU0ZGJi
ZGNlNmJhNzcwNmMwZDNkOWRjLi44OTFmNjkwMTc3YTYxNzI3MzQ2MTdlY2EyNDIxMmRiNTdiZTJh
N2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4
cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKQEAgLTQyNSw2ICs0
MjUsOCBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxBcnJheUJ1ZmZlci5j
cHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxBcnJheUJ1ZmZlclZp
ZXcuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcQXJyYXlDb25z
dHJ1Y3Rvci5jcHAiIC8+DQorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxBcnJh
eUl0ZXJhdG9yQ29uc3RydWN0b3IuY3BwIiAvPg0KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHJ1bnRpbWVcQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5ccnVudGltZVxBcnJheVByb3RvdHlwZS5jcHAiIC8+DQogICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5ccnVudGltZVxCb29sZWFuQ29uc3RydWN0b3IuY3BwIiAvPg0KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcQm9vbGVhbk9iamVjdC5jcHAiIC8+DQpAQCAt
NDYwLDYgKzQ2Miw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTQVBJ
VmFsdWVXcmFwcGVyLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1l
XEpTQWN0aXZhdGlvbi5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGlt
ZVxKU0FycmF5LmNwcCIgLz4NCisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEpT
QXJyYXlJdGVyYXRvci5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGlt
ZVxKU0FycmF5QnVmZmVyLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50
aW1lXEpTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccnVudGltZVxKU0FycmF5QnVmZmVyUHJvdG90eXBlLmNwcCIgLz4NCkBAIC04NDAs
NiArODQzLDggQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcQXJyYXlCdWZm
ZXJWaWV3LmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxBcnJheUNv
bnN0cnVjdG9yLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxBcnJh
eUNvbnZlbnRpb25zLmgiIC8+DQorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxB
cnJheUl0ZXJhdG9yQ29uc3RydWN0b3IuaCIgLz4NCisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxydW50aW1lXEFycmF5SXRlcmF0b3JQcm90b3R5cGUuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxydW50aW1lXEFycmF5UHJvdG90eXBlLmgiIC8+DQogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5ccnVudGltZVxBcnJheVN0b3JhZ2UuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxydW50aW1lXEJhdGNoZWRUcmFuc2l0aW9uT3B0aW1pemVyLmgiIC8+DQpAQCAt
ODk4LDYgKzkwMyw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTQXJy
YXlCdWZmZXJQcm90b3R5cGUuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50
aW1lXEpTQXJyYXlCdWZmZXJWaWV3LmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
cnVudGltZVxKU0FycmF5QnVmZmVyVmlld0lubGluZXMuaCIgLz4NCisgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxydW50aW1lXEpTQXJyYXlJdGVyYXRvci5oIiAvPg0KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNCb3VuZEZ1bmN0aW9uLmgiIC8+DQogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU0NKU1ZhbHVlLmgiIC8+DQogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5ccnVudGltZVxKU0NKU1ZhbHVlSW5saW5lcy5oIiAvPg0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggYmQwNjk1MDgyZWVhNTE0ODFiZDJlY2QxMmNmMjllNjZkMDAx
YTE0Ny4uMDhjZjQ0ZTdlNGU4NWM5OWFiMDVhMGU5NDVmMDU1NTEzYTA4ODRmZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkzOCw2ICs5MzgsMTIgQEAKIAkJQTdCNDhGNDkwRUU4
OTM2RjAwRENCREI2IC8qIEV4ZWN1dGFibGVBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCNDhEQjYwRUU3NENGQzAwRENCREI2IC8q
IEV4ZWN1dGFibGVBbGxvY2F0b3IuY3BwICovOyB9OwogCQlBN0I0QUNBRjE0ODRDOUNFMDBCMzhB
MzYgLyogSlNFeHBvcnRNYWNyb3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3QjRBQ0FFMTQ4NEM5Q0UwMEIzOEEzNiAvKiBKU0V4cG9ydE1hY3Jvcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3QjYw
MTgyMTYzOUZEMkEwMDM3MkJBMyAvKiBVbmxpbmtlZENvZGVCbG9jay5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc5RTc4MUYxNUVFQ0JBODAwNDdDODU1
IC8qIFVubGlua2VkQ29kZUJsb2NrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJQTdCREFFQzYxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0
b3JDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBN0JEQUVDMDE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvckNvbnN0cnVj
dG9yLmNwcCAqLzsgfTsKKwkJQTdCREFFQzcxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0
b3JDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTdCREFFQzExN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0b3JDb25zdHJ1Y3Rv
ci5oICovOyB9OworCQlBN0JEQUVDODE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclBy
b3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBN0JEQUVDMjE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAg
Ki87IH07CisJCUE3QkRBRUM5MTdGNEVBMTQwMEY2MTQwQyAvKiBBcnJheUl0ZXJhdG9yUHJvdG90
eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0JE
QUVDMzE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oICovOyB9Owor
CQlBN0JEQUVDQTE3RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9yLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QkRBRUM0MTdGNEVBMTQw
MEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3IuY3BwICovOyB9OworCQlBN0JEQUVDQjE3RjRFQTE0
MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBN0JEQUVDNTE3RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0
ZXJhdG9yLmggKi87IH07CiAJCUE3QkZGM0MwMTc5ODY4OTQwMDAyRjQ2MiAvKiBERkdGaWx0cmF0
aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBN0JGRjNCRjE3OTg2ODk0MDAwMkY0NjIgLyogREZHRmlsdHJhdGlvblJlc3VsdC5oICovOyB9
OwogCQlBN0MwQzRBQzE2ODEwMzAyMDAxNzAxMUQgLyogSlNTY3JpcHRSZWZQcml2YXRlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0MwQzRBQjE2N0Mw
OENEMDAxNzAxMUQgLyogSlNTY3JpcHRSZWZQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTdDMEM0QUQxNjgxMDY3RTAwMTcwMTFEIC8q
IEpTU2NyaXB0UmVmLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3QzBDNEFBMTY3QzA4Q0QwMDE3MDExRCAvKiBKU1NjcmlwdFJlZi5jcHAgKi87IH07
CkBAIC0yMTU5LDYgKzIxNjUsMTIgQEAKIAkJQTdCNDhEQjUwRUU3NENGQzAwRENCREI2IC8qIEV4
ZWN1dGFibGVBbGxvY2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhl
Y3V0YWJsZUFsbG9jYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0I0OERC
NjBFRTc0Q0ZDMDBEQ0JEQjYgLyogRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeGVjdXRhYmxlQWxsb2NhdG9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdCNEFDQUUxNDg0QzlDRTAwQjM4QTM2IC8qIEpTRXhw
b3J0TWFjcm9zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXhwb3J0TWFj
cm9zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3QkRBRUMwMTdGNEVBMTQwMEY2
MTQwQyAvKiBBcnJheUl0ZXJhdG9yQ29uc3RydWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTdCREFFQzExN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRl
cmF0b3JDb25zdHJ1Y3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcnJh
eUl0ZXJhdG9yQ29uc3RydWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTdC
REFFQzIxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXJyYXlJdGVyYXRvclByb3RvdHlwZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3QkRBRUMzMTdGNEVBMTQwMEY2MTQw
QyAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEFycmF5SXRlcmF0b3JQcm90b3R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQTdCREFFQzQxN0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0FycmF5SXRlcmF0b3IuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBN0JEQUVDNTE3RjRFQTE0MDBGNjE0MEMgLyog
SlNBcnJheUl0ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQXJy
YXlJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0JGRjNCRjE3OTg2
ODk0MDAwMkY0NjIgLyogREZHRmlsdHJhdGlvblJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBERkdGaWx0cmF0aW9uUmVzdWx0Lmg7IHBhdGggPSBkZmcvREZHRmlsdHJh
dGlvblJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0MwQzRBQTE2N0Mw
OENEMDAxNzAxMUQgLyogSlNTY3JpcHRSZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNTY3JpcHRSZWYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBN0MwQzRBQjE2N0MwOENEMDAxNzAxMUQgLyogSlNTY3JpcHRSZWZQcml2YXRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2NyaXB0UmVmUHJpdmF0ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzQzMSw2ICszNDQzLDEyIEBACiAJCQkJQTdDQTNBRTIx
N0RBNDFBRTAwNjUzOEFGIC8qIEpTV2Vha01hcC5oICovLAogCQkJCUE3Q0EzQUU5MTdEQTUxNjgw
MDY1MzhBRiAvKiBXZWFrTWFwRGF0YS5jcHAgKi8sCiAJCQkJQTdDQTNBRUExN0RBNTE2ODAwNjUz
OEFGIC8qIFdlYWtNYXBEYXRhLmggKi8sCisJCQkJQTdCREFFQzAxN0Y0RUExNDAwRjYxNDBDIC8q
IEFycmF5SXRlcmF0b3JDb25zdHJ1Y3Rvci5jcHAgKi8sCisJCQkJQTdCREFFQzExN0Y0RUExNDAw
RjYxNDBDIC8qIEFycmF5SXRlcmF0b3JDb25zdHJ1Y3Rvci5oICovLAorCQkJCUE3QkRBRUMyMTdG
NEVBMTQwMEY2MTQwQyAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcCAqLywKKwkJCQlBN0JE
QUVDMzE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oICovLAorCQkJ
CUE3QkRBRUM0MTdGNEVBMTQwMEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3IuY3BwICovLAorCQkJ
CUE3QkRBRUM1MTdGNEVBMTQwMEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3IuaCAqLywKIAkJCSk7
CiAJCQlwYXRoID0gcnVudGltZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC00MzEz
LDYgKzQzMzEsNyBAQAogCQkJCTBGNDY4MENCMTRCQkIxNzIwMEJGRTI3MiAvKiBMTEludE9mZmxp
bmVBc21Db25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFRDI4N0IyMTVFQzlBNTcwMERBODE2
MSAvKiBMTEludE9wY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0NjgwQTUxNEJBN0Y4RDAw
QkZFMjcyIC8qIExMSW50U2xvd1BhdGhzLmggaW4gSGVhZGVycyAqLywKKwkJCQlBN0JEQUVDQjE3
RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjBCODM5RDE0QkNGNDY2MDA4ODVCNEYgLyogTExJbnRUaHVua3MuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE3RTVBQjM4MTc5OUU0QjIwMEQyODMzRCAvKiBMTFZNRGlzYXNzZW1ibGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxNDJFMzEzOTEzNEZGMEE2MDBBRkFEQjUgLyogTG9jYWwuaCBpbiBIZWFk
ZXJzICovLApAQCAtNDM3Miw2ICs0MzkxLDcgQEAKIAkJCQkwRkNDQUU0NTE2RDBDRjc0MDBEMEM2
NUIgLyogUGFyc2VyRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3N0YxODI1MTY0MTkyQzcw
MDY0MEE0NyAvKiBQYXJzZXJNb2Rlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjUzMDNENjQxNDQ3
QjlFMTAwRDNGOTA0IC8qIFBhcnNlclRva2Vucy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTdCREFF
QzcxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0b3JDb25zdHJ1Y3Rvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYzNEIxNEMxNkQ0M0UwRDAwMUNEQTVBIC8qIFBvbHltb3JwaGljQWNjZXNz
U3RydWN0dXJlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5RkM4QzQxNEUxQjYwMDAwRDUy
QUUwIC8qIFBvbHltb3JwaGljUHV0QnlJZExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTgy
MDYxMTZCRkUzODMwMDI0MEQwMiAvKiBQcmVjaXNlSnVtcFRhcmdldHMuaCBpbiBIZWFkZXJzICov
LApAQCAtNDQxOSw2ICs0NDM5LDcgQEAKIAkJCQlCQzE4QzUyQzBFMTZGQ0QyMDBCMzQ0NjAgLyog
UmVnRXhwT2JqZWN0Lmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEMjAyQzQwRTE3MDZBNzAw
MkM3RTgyIC8qIFJlZ0V4cFByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzIwQjI1OTkx
NzA2NTM2MjAwQzIxRjRFIC8qIFJlZ2lvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTdCREFFQzkx
N0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDMThDNDVEMEUxNkY1Q0QwMEIzNDQ2MCAvKiBSZWdpc3Rlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTY5QTA3MkIwRUQxQ0U2OTAwRjFGNjgxIC8qIFJlZ2lzdGVySUQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGQjdGMzlEMTVFRDhFNDYwMEYxNjdCMiAvKiBSZWplY3QuaCBpbiBIZWFk
ZXJzICovLApAQCAtNTA5Nyw2ICs1MTE4LDcgQEAKIAkJCQlBNzIwMjhCNjE3OTc2MDFFMDA5ODAy
OEMgLyogSlNDVGVzdFJ1bm5lclV0aWxzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMkI2NkVC
MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0RhdGFWaWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
MkI2NkVEMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0RhdGFWaWV3UHJvdG90eXBlLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUE3QkRBRUNBMTdGNEVBMTQwMEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc4ODAxNDAxNDcxQUQ5MjAwNDFCMDE2IC8qIEpTRGF0
ZU1hdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQwNTY2RDYxMDdFQzI3MTAwNURCQzhEIC8q
IEpTRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5RDIxMDdFQzM3NjAwNDI3
QTQ4IC8qIEpTR2xvYmFsT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNTE4OSw2ICs1MjEx
LDcgQEAKIAkJCQlFMTI0QThGODBFNTU1Nzc1MDAzMDkxRjEgLyogT3BhcXVlSlNTdHJpbmcuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJOTY5QTA3OUEwRUQxRDNBRTAwRjFGNjgxIC8qIE9wY29kZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDg1MDEwN0VDMEQ3MDAxM0U3QjIgLyogT3BlcmF0
aW9ucy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBN0JEQUVDODE3RjRFQTE0MDBGNjE0MEMgLyog
QXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkUyMjhFRTE0
MzZBQjJDMDAxOTZDNDggLyogT3B0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDhGMjFC
QzEwN0VDNTREMDA0MkVDMkMgLyogUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMDUy
QzM0MEZCNzkyMTkwMDQ4RkRDMyAvKiBQYXJzZXJBcmVuYS5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTUyMzMsNiArNTI1Niw3IEBACiAJCQkJQTcyOTlEQTExN0QxMjg0ODAwNUY1RkY5IC8qIFNldFBy
b3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCNjcwNDE3QjZCNUFCMDBBN0FFM0Yg
LyogU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzIy
NTQ5NDMxNUY3REJBQTAwNjVFODk4IC8qIFNsb3RWaXNpdG9yLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUE3QkRBRUM2MTdGNEVBMTQwMEY2MTQwQyAvKiBBcnJheUl0ZXJhdG9yQ29uc3RydWN0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDQwMkMwRTZBNzY0MDAwNzg2RTZBIC8qIFNtYWxs
U3RyaW5ncy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjhGMkI5RTE3MzA2QzhEMDA3REJEQTUg
LyogU291cmNlQ29kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQ5M0FGQTE2RDBDQUQzMDA4
NDUwOEIgLyogU291cmNlUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yQ29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9y
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wOTE2ZWVlZjJiNTMwNTYyMjE5ZTg3OTVhNjBjMzJmODExNTY0ODRm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJ
dGVyYXRvckNvbnN0cnVjdG9yLmNwcApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yLmgiCisKKyNpbmNsdWRlICJKU0NKU1ZhbHVl
SW5saW5lcy5oIgorI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKKyNpbmNsdWRlICJKU0dsb2Jh
bE9iamVjdC5oIgorCituYW1lc3BhY2UgSlNDIHsKKworY29uc3QgQ2xhc3NJbmZvIEFycmF5SXRl
cmF0b3JDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCAw
LCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEFycmF5SXRlcmF0b3JDb25zdHJ1Y3RvcikgfTsKKwor
dm9pZCBBcnJheUl0ZXJhdG9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKK3sK
KyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JDb25zdHJ1Y3Rvci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDg5ZDVkOWU5MDRjYjJjOGJkMzMxOWEzMDY0Mzg3MDAxNGQ5NDZjMgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JD
b25zdHJ1Y3Rvci5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yX2gK
KyNkZWZpbmUgQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yX2gKKworI2luY2x1ZGUgIkludGVybmFs
RnVuY3Rpb24uaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIEFycmF5SXRlcmF0b3JQcm90
b3R5cGU7CisKK2NsYXNzIEFycmF5SXRlcmF0b3JDb25zdHJ1Y3RvciA6IHB1YmxpYyBKU05vbkZp
bmFsT2JqZWN0IHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsK
KworICAgIHN0YXRpYyBBcnJheUl0ZXJhdG9yQ29uc3RydWN0b3IqIGNyZWF0ZShWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBBcnJheUl0ZXJhdG9yUHJvdG90eXBlKikKKyAgICB7CisgICAg
ICAgIEFycmF5SXRlcmF0b3JDb25zdHJ1Y3RvciogY29uc3RydWN0b3IgPSBuZXcgKE5vdE51bGws
IGFsbG9jYXRlQ2VsbDxBcnJheUl0ZXJhdG9yQ29uc3RydWN0b3I+KHZtLmhlYXApKSBBcnJheUl0
ZXJhdG9yQ29uc3RydWN0b3Iodm0sIHN0cnVjdHVyZSk7CisgICAgICAgIGNvbnN0cnVjdG9yLT5m
aW5pc2hDcmVhdGlvbih2bSk7CisgICAgICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKKyAgICB9CisK
KyAgICBERUNMQVJFX0lORk87CisKKyAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlw
ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5m
bygpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yKFZN
JiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgICAgIDogQmFzZSh2bSwgc3RydWN0dXJl
KQorICAgIHsKKyAgICB9CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYpOworfTsKKworfQor
CisjZW5kaWYgLy8gIWRlZmluZWQoQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yX2gpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5
cGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFhMmVmOTFlZGNmYTkwZDRkOTk0MmE4YmFjMjAyYWMwY2M3ZmM5
MDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJh
eUl0ZXJhdG9yUHJvdG90eXBlLmNwcApAQCAtMCwwICsxLDEzMSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkFycmF5SXRlcmF0b3JQcm90b3R5cGUuaCIKKworI2luY2x1ZGUgIkpTQXJyYXlJdGVy
YXRvci5oIgorI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKKyNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgorI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCisKK25hbWVzcGFjZSBKU0Mg
eworCitjb25zdCBDbGFzc0luZm8gQXJyYXlJdGVyYXRvclByb3RvdHlwZTo6c19pbmZvID0geyAi
QXJyYXkgSXRlcmF0b3IiLCAmQmFzZTo6c19pbmZvLCAwLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxF
KEFycmF5SXRlcmF0b3JQcm90b3R5cGUpIH07CisKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGFycmF5SXRlcmF0b3JQcm90b3R5cGVOZXh0KEV4ZWNTdGF0ZSopOworCit2b2lk
IEFycmF5SXRlcmF0b3JQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Cisg
ICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOworICAgIHZtLnByb3RvdHlwZU1hcC5hZGRQcm90
b3R5cGUodGhpcyk7CisKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OKHZtLnByb3BlcnR5TmFtZXMt
Pm5leHQsIGFycmF5SXRlcmF0b3JQcm90b3R5cGVOZXh0LCBEb250RW51bSwgMCk7Cit9CisKK3N0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBjcmVhdGVJdGVyYXRvclJlc3VsdChDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgQXJyYXlJdGVyYXRpb25LaW5kIGtpbmQsIHNpemVfdCBpbmRleCwgSlNWYWx1ZSByZXN1
bHQsIGJvb2wgZG9uZSkKK3sKKyAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gY2Fs
bEZyYW1lLT5jYWxsZWUoKS0+Z2xvYmFsT2JqZWN0KCk7CisgICAgSlNPYmplY3QqIHJlc3VsdE9i
amVjdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGNhbGxGcmFtZSk7CisgICAgcmVzdWx0T2JqZWN0
LT5wdXREaXJlY3QoY2FsbEZyYW1lLT52bSgpLCBjYWxsRnJhbWUtPnByb3BlcnR5TmFtZXMoKS5k
b25lLCBqc0Jvb2xlYW4oZG9uZSkpOworICAgIHN3aXRjaCAoa2luZCAmIH5BcnJheUl0ZXJhdGVT
cGFyc2VUYWcpIHsKKyAgICBjYXNlIEFycmF5SXRlcmF0ZUtleToKKyAgICAgICAgcmVzdWx0T2Jq
ZWN0LT5wdXREaXJlY3QoY2FsbEZyYW1lLT52bSgpLCBjYWxsRnJhbWUtPnByb3BlcnR5TmFtZXMo
KS52YWx1ZSwgZG9uZSA/IGpzVW5kZWZpbmVkKCkgOiBqc051bWJlcihpbmRleCkpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEFycmF5SXRlcmF0ZVZhbHVlOgorICAgICAgICByZXN1bHRPYmpl
Y3QtPnB1dERpcmVjdChjYWxsRnJhbWUtPnZtKCksIGNhbGxGcmFtZS0+cHJvcGVydHlOYW1lcygp
LnZhbHVlLCBkb25lID8ganNVbmRlZmluZWQoKSA6IHJlc3VsdCk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQXJyYXlJdGVyYXRlS2V5VmFsdWU6IHsKKyAgICAgICAgaWYgKCFkb25lKSB7Cisg
ICAgICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOworICAgICAgICAgICAgYXJncy5h
cHBlbmQoanNOdW1iZXIoaW5kZXgpKTsKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKHJlc3VsdCk7
CisgICAgICAgICAgICBKU0FycmF5KiByZXN1bHRBcnJheSA9IGNvbnN0cnVjdEFycmF5KGNhbGxG
cmFtZSwgMCwgZ2xvYmFsT2JqZWN0LCBhcmdzKTsKKyAgICAgICAgICAgIHJlc3VsdE9iamVjdC0+
cHV0RGlyZWN0KGNhbGxGcmFtZS0+dm0oKSwgY2FsbEZyYW1lLT5wcm9wZXJ0eU5hbWVzKCkudmFs
dWUsIHJlc3VsdEFycmF5KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByZXN1bHRPYmpl
Y3QtPnB1dERpcmVjdChjYWxsRnJhbWUtPnZtKCksIGNhbGxGcmFtZS0+cHJvcGVydHlOYW1lcygp
LnZhbHVlLCBqc1VuZGVmaW5lZCgpKTsKKworICAgICAgICBicmVhazsKKyAgICB9CisgICAgZGVm
YXVsdDoKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHRPYmplY3QpOworfQorICAgIAorRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheUl0ZXJhdG9yUHJvdG90eXBlTmV4dChDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK3sKKyAgICBKU0FycmF5SXRlcmF0b3IqIGl0ZXJhdG9yID0ganNEeW5hbWlj
Q2FzdDxKU0FycmF5SXRlcmF0b3IqPihjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKKyAgICBpZiAo
IWl0ZXJhdG9yKQorICAgICAgICB0aHJvd1R5cGVFcnJvcihjYWxsRnJhbWUsIEFTQ0lJTGl0ZXJh
bCgiQ2Fubm90IGNhbGwgQXJyYXlJdGVyYXRvci5uZXh0KCkgb24gYSBub24tQXJyYXlJdGVyYXRv
ciBvYmplY3QiKSk7CisgICAgSlNPYmplY3QqIGl0ZXJhdGVkT2JqZWN0ID0gaXRlcmF0b3ItPml0
ZXJhdGVkT2JqZWN0KCk7CisgICAgc2l6ZV90IGluZGV4ID0gaXRlcmF0b3ItPm5leHRJbmRleCgp
OworICAgIEFycmF5SXRlcmF0aW9uS2luZCBraW5kID0gaXRlcmF0b3ItPml0ZXJhdGlvbktpbmQo
KTsKKyAgICBKU1ZhbHVlIGpzTGVuZ3RoID0gSlNWYWx1ZShpdGVyYXRlZE9iamVjdCkuZ2V0KGNh
bGxGcmFtZSwgY2FsbEZyYW1lLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKTsKKyAgICBpZiAoY2Fs
bEZyYW1lLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c051bGwoKSk7CisKKyAgICBzaXplX3QgbGVuZ3RoID0ganNMZW5ndGgudG9VSW50MzIoY2FsbEZy
YW1lKTsKKyAgICBpZiAoY2FsbEZyYW1lLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bGwoKSk7CisKKyAgICBpZiAoaW5kZXggPj0gbGVuZ3RoKSB7
CisgICAgICAgIGl0ZXJhdG9yLT5maW5pc2goKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUl0ZXJh
dG9yUmVzdWx0KGNhbGxGcmFtZSwga2luZCwgaW5kZXgsIGpzVW5kZWZpbmVkKCksIHRydWUpOwor
ICAgIH0KKyAgICBpZiAoSlNWYWx1ZSByZXN1bHQgPSBpdGVyYXRlZE9iamVjdC0+dHJ5R2V0SW5k
ZXhRdWlja2x5KGluZGV4KSkgeworICAgICAgICBpdGVyYXRvci0+c2V0TmV4dEluZGV4KGluZGV4
ICsgMSk7CisgICAgICAgIHJldHVybiBjcmVhdGVJdGVyYXRvclJlc3VsdChjYWxsRnJhbWUsIGtp
bmQsIGluZGV4LCByZXN1bHQsIGZhbHNlKTsKKyAgICB9CisgICAgCisgICAgSlNWYWx1ZSByZXN1
bHQgPSBqc1VuZGVmaW5lZCgpOworICAgIFByb3BlcnR5U2xvdCBzbG90KGl0ZXJhdGVkT2JqZWN0
KTsKKyAgICBpZiAoa2luZCA+IEFycmF5SXRlcmF0ZVNwYXJzZVRhZykgeworICAgICAgICAvLyBX
ZSBhc3N1bWUgdGhhdCB0aGUgaW5kZXhlZCBwcm9wZXJ0eSB3aWxsIGJlIGFuIG93biBwcm9wZXJ0
eSBzbyBjYWNoZSB0aGUgZ2V0T3duUHJvcGVydHkKKyAgICAgICAgLy8gbWV0aG9kIGxvY2FsbHkK
KyAgICAgICAgYXV0byBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4ID0gaXRlcmF0ZWRPYmplY3Qt
Pm1ldGhvZFRhYmxlKCktPmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXg7CisgICAgICAgIHdoaWxl
IChpbmRleCA8IGxlbmd0aCkgeworICAgICAgICAgICAgaWYgKGdldE93blByb3BlcnR5U2xvdEJ5
SW5kZXgoaXRlcmF0ZWRPYmplY3QsIGNhbGxGcmFtZSwgaW5kZXgsIHNsb3QpKSB7CisgICAgICAg
ICAgICAgICAgcmVzdWx0ID0gc2xvdC5nZXRWYWx1ZShjYWxsRnJhbWUsIGluZGV4KTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpdGVyYXRl
ZE9iamVjdC0+Z2V0UHJvcGVydHlTbG90KGNhbGxGcmFtZSwgaW5kZXgsIHNsb3QpKSB7CisgICAg
ICAgICAgICAgICAgcmVzdWx0ID0gc2xvdC5nZXRWYWx1ZShjYWxsRnJhbWUsIGluZGV4KTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGluZGV4Kys7
CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKGl0ZXJhdGVkT2JqZWN0LT5nZXRQcm9wZXJ0eVNs
b3QoY2FsbEZyYW1lLCBpbmRleCwgc2xvdCkpCisgICAgICAgIHJlc3VsdCA9IHNsb3QuZ2V0VmFs
dWUoY2FsbEZyYW1lLCBpbmRleCk7CisKKyAgICBpZiAoaW5kZXggPT0gbGVuZ3RoKQorICAgICAg
ICBpdGVyYXRvci0+ZmluaXNoKCk7CisgICAgZWxzZQorICAgICAgICBpdGVyYXRvci0+c2V0TmV4
dEluZGV4KGluZGV4ICsgMSk7CisgICAgcmV0dXJuIGNyZWF0ZUl0ZXJhdG9yUmVzdWx0KGNhbGxG
cmFtZSwga2luZCwgaW5kZXgsIGpzVW5kZWZpbmVkKCksIGluZGV4ID09IGxlbmd0aCk7Cit9CisK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0
b3JQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0
b3JQcm90b3R5cGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGVlOWE2YTI2NzZkOTlkMTkzN2QzOGM4NzgxMjk1
ODQ0ZmEwYjVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQXJyYXlJdGVyYXRv
clByb3RvdHlwZV9oCisjZGVmaW5lIEFycmF5SXRlcmF0b3JQcm90b3R5cGVfaAorCisjaW5jbHVk
ZSAiSlNPYmplY3QuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIEFycmF5SXRlcmF0b3JQ
cm90b3R5cGUgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CitwdWJsaWM6CisgICAgdHlwZWRl
ZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CisKKyAgICBzdGF0aWMgQXJyYXlJdGVyYXRvclByb3Rv
dHlwZSogY3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCisgICAgeworICAgICAgICBBcnJheUl0ZXJhdG9yUHJvdG90eXBlKiBw
cm90b3R5cGUgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxBcnJheUl0ZXJhdG9yUHJvdG90
eXBlPih2bS5oZWFwKSkgQXJyYXlJdGVyYXRvclByb3RvdHlwZSh2bSwgc3RydWN0dXJlKTsKKyAg
ICAgICAgcHJvdG90eXBlLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAg
ICAgcmV0dXJuIHByb3RvdHlwZTsKKyAgICB9CisKKyAgICBERUNMQVJFX0lORk87CisKKyAgICBz
dGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICB9CisKK3ByaXZhdGU6Cisg
ICAgQXJyYXlJdGVyYXRvclByb3RvdHlwZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQor
ICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICB7CisgICAgfQorICAgIHZvaWQgZmlu
aXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCopOworfTsKKworfQorCisjZW5kaWYgLy8g
IWRlZmluZWQoQXJyYXlJdGVyYXRvclByb3RvdHlwZV9oKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCmluZGV4IDVmOGM3NmQzMjA2NjlhNWJl
NGE0NTZiNTRiNTMxNmQ2YzU2OTM0NDYuLmIyZjZhOTg3MTBkZjY2NDVlODMyNTNlZDQ3NDQ2OThh
YmM3MGZkMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5
UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVBy
b3RvdHlwZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJFcnJvci5oIgogI2luY2x1
ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSklULmgiCisjaW5jbHVkZSAiSlNBcnJheUl0
ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmdCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSlNTdHJp
bmdKb2luZXIuaCIKICNpbmNsdWRlICJMb29rdXAuaCIKQEAgLTY0LDYgKzY1LDkgQEAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNNYXAoRXhlY1N0YXRl
Kik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1Jl
ZHVjZShFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFy
cmF5UHJvdG9GdW5jUmVkdWNlUmlnaHQoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY0xhc3RJbmRleE9mKEV4ZWNTdGF0ZSopOwor
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNWYWx1ZXMo
RXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVBy
b3RvRnVuY0tleXMoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBhcnJheVByb3RvRnVuY0VudHJpZXMoRXhlY1N0YXRlKik7CiAKIH0KIApAQCAtMTEyLDYg
KzExNiw5IEBAIGNvbnN0IENsYXNzSW5mbyBBcnJheVByb3RvdHlwZTo6c19pbmZvID0geyJBcnJh
eSIsICZKU0FycmF5OjpzX2luZm8sIDAsIEV4ZWNTdGF0CiAgIHJlZHVjZSAgICAgICAgIGFycmF5
UHJvdG9GdW5jUmVkdWNlICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMQogICByZWR1Y2VSaWdo
dCAgICBhcnJheVByb3RvRnVuY1JlZHVjZVJpZ2h0ICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKICAg
bWFwICAgICAgICAgICAgYXJyYXlQcm90b0Z1bmNNYXAgICAgICAgICAgICBEb250RW51bXxGdW5j
dGlvbiAxCisgIHZhbHVlcyAgICAgICAgIGFycmF5UHJvdG9GdW5jVmFsdWVzICAgICAgICAgRG9u
dEVudW18RnVuY3Rpb24gMAorICBlbnRyaWVzICAgICAgICBhcnJheVByb3RvRnVuY0VudHJpZXMg
ICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDAKKyAga2V5cyAgICAgICAgICAgYXJyYXlQcm90b0Z1
bmNLZXlzICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAwCiBAZW5kCiAqLwogCkBAIC0xMzMx
LDQgKzEzMzgsMjIgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVu
Y0xhc3RJbmRleE9mKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzTnVtYmVyKC0xKSk7CiB9CiAKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQ
cm90b0Z1bmNWYWx1ZXMoRXhlY1N0YXRlKiBleGVjKQoreworICAgIEpTT2JqZWN0KiB0aGlzT2Jq
ID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKS50b09iamVj
dChleGVjKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQXJyYXlJdGVyYXRvcjo6Y3Jl
YXRlKGV4ZWMsIGV4ZWMtPmNhbGxlZSgpLT5nbG9iYWxPYmplY3QoKS0+YXJyYXlJdGVyYXRvclN0
cnVjdHVyZSgpLCBBcnJheUl0ZXJhdGVWYWx1ZSwgdGhpc09iaikpOworfQorCitFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jRW50cmllcyhFeGVjU3RhdGUqIGV4ZWMp
Cit7CisgICAgSlNPYmplY3QqIHRoaXNPYmogPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlz
KGV4ZWMsIFN0cmljdE1vZGUpLnRvT2JqZWN0KGV4ZWMpOworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoSlNBcnJheUl0ZXJhdG9yOjpjcmVhdGUoZXhlYywgZXhlYy0+Y2FsbGVlKCktPmdsb2Jh
bE9iamVjdCgpLT5hcnJheUl0ZXJhdG9yU3RydWN0dXJlKCksIEFycmF5SXRlcmF0ZUtleVZhbHVl
LCB0aGlzT2JqKSk7Cit9CisgICAgCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5
UHJvdG9GdW5jS2V5cyhFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgSlNPYmplY3QqIHRoaXNPYmog
PSBleGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpLnRvT2JqZWN0
KGV4ZWMpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNBcnJheUl0ZXJhdG9yOjpjcmVh
dGUoZXhlYywgZXhlYy0+Y2FsbGVlKCktPmdsb2JhbE9iamVjdCgpLT5hcnJheUl0ZXJhdG9yU3Ry
dWN0dXJlKCksIEFycmF5SXRlcmF0ZUtleSwgdGhpc09iaikpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklk
ZW50aWZpZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlm
aWVycy5oCmluZGV4IDU0MjJjN2E0ZjhiODBlNjQzMjJjMTM5NDhlZGFkMjA3MWNlMDQ2NWQuLmQ4
N2QwYjQxYjQ4YzY0OWZhZGIzMDlkOWQwYjkwNDA2NzdmZGE0ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaApAQCAtMjksNiArMjks
NyBAQAogI2RlZmluZSBKU0NfQ09NTU9OX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRSht
YWNybykgXAogICAgIG1hY3JvKEFycmF5KSBcCiAgICAgbWFjcm8oQXJyYXlCdWZmZXIpIFwKKyAg
ICBtYWNybyhBcnJheUl0ZXJhdG9yKSBcCiAgICAgbWFjcm8oQllURVNfUEVSX0VMRU1FTlQpIFwK
ICAgICBtYWNybyhCb29sZWFuKSBcCiAgICAgbWFjcm8oRGF0ZSkgXApAQCAtODAsNiArODEsNyBA
QAogICAgIG1hY3JvKGRlc2NyaXB0aW9ucykgXAogICAgIG1hY3JvKGRpc3BsYXlOYW1lKSBcCiAg
ICAgbWFjcm8oZG9jdW1lbnQpIFwKKyAgICBtYWNybyhkb25lKSBcCiAgICAgbWFjcm8oZW51bWVy
YWJsZSkgXAogICAgIG1hY3JvKGV2YWwpIFwKICAgICBtYWNybyhleGVjKSBcCkBAIC0xMDYsNiAr
MTA4LDcgQEAKICAgICBtYWNybyhtZXNzYWdlKSBcCiAgICAgbWFjcm8obXVsdGlsaW5lKSBcCiAg
ICAgbWFjcm8obmFtZSkgXAorICAgIG1hY3JvKG5leHQpIFwKICAgICBtYWNybyhub3cpIFwKICAg
ICBtYWNybyhudW1JbmxpbmVkQ2FsbHMpIFwKICAgICBtYWNybyhudW1JbmxpbmVkR2V0QnlJZHMp
IFwKQEAgLTIwOCw2ICsyMTEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgY29uc3QgSWRl
bnRpZmllciB1bmRlcnNjb3JlUHJvdG87CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXIgdGhpc0lk
ZW50aWZpZXI7CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXIgdXNlU3RyaWN0SWRlbnRpZmllcjsK
KyAgICAgICAgY29uc3QgUHJpdmF0ZU5hbWUgaXRlcmF0b3JQcml2YXRlTmFtZTsKIAogICAgICAg
ICAKICNkZWZpbmUgSlNDX0lERU5USUZJRVJfREVDTEFSRV9LRVlXT1JEX05BTUVfR0xPQkFMKG5h
bWUpIGNvbnN0IElkZW50aWZpZXIgbmFtZSMjS2V5d29yZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0lkZW50aWZpZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0lkZW50aWZpZXIuaAppbmRleCBkNGRiMTBiYWIwOTI5ZGQ4YzE4NDhkNmU0MTU0
NjBiYmIxNTE1YmU0Li5iZDFlZWNjOGNhMWZkYTJiODY0OThkZjA1YWZhNDkwNDgyMTIyNmZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllci5oCkBAIC02MCw2ICs2
MCwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgCiAgICAgICAgIENTdHJpbmcgYXNjaWko
KSBjb25zdCB7IHJldHVybiBtX3N0cmluZy5hc2NpaSgpOyB9CiAgICAgICAgIENTdHJpbmcgdXRm
OCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RyaW5nLnV0ZjgoKTsgfQorICAgICAgICAKKyAgICAgICAg
c3RhdGljIElkZW50aWZpZXIgY3JlYXRlRW1wdHlVbmlxdWUoVk0qIHZtKQorICAgICAgICB7Cisg
ICAgICAgICAgICByZXR1cm4gSWRlbnRpZmllcih2bSwgU3RyaW5nKFN0cmluZ0ltcGw6OmNyZWF0
ZUVtcHR5VW5pcXVlKCkpKTsKKyAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBJZGVudGlmaWVy
IGNyZWF0ZUxDaGFyRnJvbVVDaGFyKFZNKiB2bSwgY29uc3QgVUNoYXIqIHMsIGludCBsZW5ndGgp
IHsgcmV0dXJuIElkZW50aWZpZXIodm0sIGFkZDgodm0sIHMsIGxlbmd0aCkpOyB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlJdGVyYXRvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5SXRlcmF0b3IuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjhlYzYxNmY5NDY2ZTM5N2RiMWI0ZTY3YmJiNWUyY2ExZGI3YzBjYWIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5SXRlcmF0b3Iu
Y3BwCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUsIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU0FycmF5SXRlcmF0
b3IuaCIKKworI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKKworbmFtZXNwYWNlIEpTQyB7CisK
K2NvbnN0IENsYXNzSW5mbyBKU0FycmF5SXRlcmF0b3I6OnNfaW5mbyA9IHsgIkFycmF5SXRlcmF0
b3IiLCAmQmFzZTo6c19pbmZvLCAwLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTQXJyYXlJdGVy
YXRvcikgfTsKKwordm9pZCBKU0FycmF5SXRlcmF0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqLCBBcnJheUl0ZXJhdGlvbktpbmQga2luZCwgSlNPYmplY3QqIGl0ZXJh
dGVkT2JqZWN0KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKKyAgICBtX2l0ZXJh
dGlvbktpbmQgPSBraW5kOworICAgIG1faXRlcmF0ZWRPYmplY3Quc2V0KHZtLCB0aGlzLCBpdGVy
YXRlZE9iamVjdCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQXJyYXlJdGVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNBcnJheUl0ZXJhdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWVmMDU1NzYwZWRmODdhZmNmMTgzMzJkMTY5
OWI3NzU0YjQyODZkNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQXJyYXlJdGVyYXRvci5oCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgSlNBcnJheUl0ZXJhdG9y
X2gKKyNkZWZpbmUgSlNBcnJheUl0ZXJhdG9yX2gKKworI2luY2x1ZGUgIkpTT2JqZWN0LmgiCisK
K25hbWVzcGFjZSBKU0MgeworCitlbnVtIEFycmF5SXRlcmF0aW9uS2luZCB7CisgICAgQXJyYXlJ
dGVyYXRlS2V5LAorICAgIEFycmF5SXRlcmF0ZVZhbHVlLAorICAgIEFycmF5SXRlcmF0ZUtleVZh
bHVlLAorICAgIEFycmF5SXRlcmF0ZVNwYXJzZVRhZyA9IDQsCisgICAgQXJyYXlJdGVyYXRlU3Bh
cnNlS2V5LAorICAgIEFycmF5SXRlcmF0ZVNwYXJzZVZhbHVlLAorICAgIEFycmF5SXRlcmF0ZVNw
YXJzZUtleVZhbHVlCit9OworCitjbGFzcyBKU0FycmF5SXRlcmF0b3IgOiBwdWJsaWMgSlNOb25G
aW5hbE9iamVjdCB7CitwdWJsaWM6CisgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7
CisKKyAgICBERUNMQVJFX0VYUE9SVF9JTkZPOworCisgICAgc3RhdGljIFN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSBwcm90b3R5cGUpCisgICAgeworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIGluZm8oKSk7CisgICAgfQorCisgICAgc3RhdGljIEpTQXJyYXlJdGVyYXRvciogY3Jl
YXRlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEFycmF5SXRlcmF0aW9u
S2luZCBraW5kLCBKU09iamVjdCogaXRlcmF0ZWRPYmplY3QpCisgICAgeworICAgICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOworICAgICAgICBKU0FycmF5SXRlcmF0b3IqIGluc3RhbmNlID0gbmV3
IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SlNBcnJheUl0ZXJhdG9yPih2bS5oZWFwKSkgSlNBcnJh
eUl0ZXJhdG9yKHZtLCBzdHJ1Y3R1cmUpOworICAgICAgICBpbnN0YW5jZS0+ZmluaXNoQ3JlYXRp
b24odm0sIHN0cnVjdHVyZS0+Z2xvYmFsT2JqZWN0KCksIGtpbmQsIGl0ZXJhdGVkT2JqZWN0KTsK
KyAgICAgICAgcmV0dXJuIGluc3RhbmNlOworICAgIH0KKworICAgIEFycmF5SXRlcmF0aW9uS2lu
ZCBpdGVyYXRpb25LaW5kKCkgY29uc3QgeyByZXR1cm4gbV9pdGVyYXRpb25LaW5kOyB9CisgICAg
SlNPYmplY3QqIGl0ZXJhdGVkT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gbV9pdGVyYXRlZE9iamVj
dC5nZXQoKTsgfQorICAgIHNpemVfdCBuZXh0SW5kZXgoKSBjb25zdCB7IHJldHVybiBtX25leHRJ
bmRleDsgfQorICAgIHZvaWQgc2V0TmV4dEluZGV4KHNpemVfdCBuZXh0SW5kZXgpIHsgbV9uZXh0
SW5kZXggPSBuZXh0SW5kZXg7IH0KKyAgICB2b2lkIGZpbmlzaCgpIHsgbV9uZXh0SW5kZXggPSBz
dGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpOyB9CisgICAgCisgICAgdXNpbmcgSlNO
b25GaW5hbE9iamVjdDo6YXJyYXlTdG9yYWdlT3JOdWxsOworCitwcml2YXRlOgorCisgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7
CisKKyAgICBKU0FycmF5SXRlcmF0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAg
ICAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgICAgICwgbV9uZXh0SW5kZXgoMCkKKyAg
ICB7CisgICAgfQorCisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0
KiwgQXJyYXlJdGVyYXRpb25LaW5kLCBKU09iamVjdCogaXRlcmF0ZWRPYmplY3QpOworICAgIAor
ICAgIEFycmF5SXRlcmF0aW9uS2luZCBtX2l0ZXJhdGlvbktpbmQ7CisgICAgV3JpdGVCYXJyaWVy
PEpTT2JqZWN0PiBtX2l0ZXJhdGVkT2JqZWN0OworICAgIHNpemVfdCBtX25leHRJbmRleDsKK307
CisKK30KKworI2VuZGlmIC8vICFkZWZpbmVkKEpTQXJyYXlJdGVyYXRvcl9oKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IGNlODQw
YjIwYzFhMGEzZjg5ODlkZGIwZjk1NWE4NzQ0ZDRkMTVjNDkuLjkyZjVhYmExYjE1NDVkNTI5M2Zj
ZTQ2Y2Y3OGVmNGRhYTNjZTNmNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTMyLDYgKzMyLDggQEAKIAogI2luY2x1ZGUgIkFy
Z3VtZW50cy5oIgogI2luY2x1ZGUgIkFycmF5Q29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJBcnJh
eUl0ZXJhdG9yQ29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJBcnJheUl0ZXJhdG9yUHJvdG90eXBl
LmgiCiAjaW5jbHVkZSAiQXJyYXlQcm90b3R5cGUuaCIKICNpbmNsdWRlICJCb29sZWFuQ29uc3Ry
dWN0b3IuaCIKICNpbmNsdWRlICJCb29sZWFuUHJvdG90eXBlLmgiCkBAIC01Myw2ICs1NSw3IEBA
CiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJDb25z
dHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJQcm90b3R5cGUuaCIKKyNpbmNsdWRl
ICJKU0FycmF5SXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU0JvdW5kRnVuY3Rpb24uaCIKICNpbmNs
dWRlICJKU0NhbGxiYWNrQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJKU0NhbGxiYWNrRnVuY3Rp
b24uaCIKQEAgLTM4Miw3ICszODUsMTIgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6cmVzZXQoSlNW
YWx1ZSBwcm90b3R5cGUpCiAgICAgRk9SX0VBQ0hfU0lNUExFX0JVSUxUSU5fVFlQRShQVVRfQ09O
U1RSVUNUT1JfRk9SX1NJTVBMRV9UWVBFKQogCiAjdW5kZWYgUFVUX0NPTlNUUlVDVE9SX0ZPUl9T
SU1QTEVfVFlQRQotCisgICAgUHJvdG90eXBlTWFwJiBwcm90b3R5cGVNYXAgPSB2bS5wcm90b3R5
cGVNYXA7CisgICAgU3RydWN0dXJlKiBpdGVyYXRvclJlc3VsdFN0cnVjdHVyZSA9IHByb3RvdHlw
ZU1hcC5lbXB0eU9iamVjdFN0cnVjdHVyZUZvclByb3RvdHlwZShtX29iamVjdFByb3RvdHlwZS5n
ZXQoKSwgSlNGaW5hbE9iamVjdDo6ZGVmYXVsdElubGluZUNhcGFjaXR5KCkpOworICAgIFByb3Bl
cnR5T2Zmc2V0IG9mZnNldDsKKyAgICBpdGVyYXRvclJlc3VsdFN0cnVjdHVyZSA9IFN0cnVjdHVy
ZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uKHZtLCBpdGVyYXRvclJlc3VsdFN0cnVjdHVyZSwgdm0u
cHJvcGVydHlOYW1lcy0+ZG9uZSwgMCwgMCwgb2Zmc2V0KTsKKyAgICBpdGVyYXRvclJlc3VsdFN0
cnVjdHVyZSA9IFN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uKHZtLCBpdGVyYXRvclJl
c3VsdFN0cnVjdHVyZSwgdm0ucHJvcGVydHlOYW1lcy0+dmFsdWUsIDAsIDAsIG9mZnNldCk7Cisg
ICAgbV9pdGVyYXRvclJlc3VsdFN0cnVjdHVyZS5zZXQodm0sIHRoaXMsIGl0ZXJhdG9yUmVzdWx0
U3RydWN0dXJlKTsKIAogICAgIG1fZXZhbEZ1bmN0aW9uLnNldCh2bSwgdGhpcywgSlNGdW5jdGlv
bjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCB2bS5wcm9wZXJ0eU5hbWVzLT5ldmFsLnN0cmluZygpLCBn
bG9iYWxGdW5jRXZhbCkpOwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5ldmFsLCBtX2V2YWxGdW5jdGlvbi5nZXQoKSwgRG9udEVudW0pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggMjc0
YzliZWVlOGY5YTMyNTczM2QwOThmYzhlOWQ4NzA2Mzk4ZGU3ZS4uYTY1YjlmNTI5ZjljMTMzMjk0
MTc2Y2QzNDcxOGExMTg3MDZmZGE0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC04MSw2ICs4MSw3IEBAIHN0cnVjdCBIYXNoVGFibGU7
CiAgICAgbWFjcm8oRXJyb3IsIGVycm9yLCBlcnJvciwgRXJyb3JJbnN0YW5jZSwgRXJyb3IpIFwK
ICAgICBtYWNybyhKU0FycmF5QnVmZmVyLCBhcnJheUJ1ZmZlciwgYXJyYXlCdWZmZXIsIEpTQXJy
YXlCdWZmZXIsIEFycmF5QnVmZmVyKSBcCiAgICAgbWFjcm8oV2Vha01hcCwgd2Vha01hcCwgd2Vh
a01hcCwgSlNXZWFrTWFwLCBXZWFrTWFwKSBcCisgICAgbWFjcm8oQXJyYXlJdGVyYXRvciwgYXJy
YXlJdGVyYXRvciwgYXJyYXlJdGVyYXRvciwgSlNBcnJheUl0ZXJhdG9yLCBBcnJheUl0ZXJhdG9y
KSBcCiAKICNkZWZpbmUgREVDTEFSRV9TSU1QTEVfQlVJTFRJTl9UWVBFKGNhcGl0YWxOYW1lLCBs
b3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lKSBcCiAgICAgY2xhc3Mg
SlMgIyMgY2FwaXRhbE5hbWU7IFwKQEAgLTE5NCw2ICsxOTUsOCBAQCBwcm90ZWN0ZWQ6CiAgICAg
V3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9yZWdFeHBNYXRjaGVzQXJyYXlTdHJ1Y3R1cmU7CiAg
ICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9yZWdFeHBTdHJ1Y3R1cmU7CiAgICAgV3JpdGVC
YXJyaWVyPFN0cnVjdHVyZT4gbV9pbnRlcm5hbEZ1bmN0aW9uU3RydWN0dXJlOworICAgIAorICAg
IFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1faXRlcmF0b3JSZXN1bHRTdHJ1Y3R1cmU7CiAKICNp
ZiBFTkFCTEUoUFJPTUlTRVMpCiAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9wcm9taXNl
U3RydWN0dXJlOwpAQCAtNDAyLDYgKzQwNSw3IEBAIHB1YmxpYzoKICAgICBTdHJ1Y3R1cmUqIHJl
Z0V4cFN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVnRXhwU3RydWN0dXJlLmdldCgpOyB9
CiAgICAgU3RydWN0dXJlKiBzZXRTdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX3NldFN0cnVj
dHVyZS5nZXQoKTsgfQogICAgIFN0cnVjdHVyZSogc3RyaW5nT2JqZWN0U3RydWN0dXJlKCkgY29u
c3QgeyByZXR1cm4gbV9zdHJpbmdPYmplY3RTdHJ1Y3R1cmUuZ2V0KCk7IH0KKyAgICBTdHJ1Y3R1
cmUqIGl0ZXJhdG9yUmVzdWx0U3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV9pdGVyYXRvclJl
c3VsdFN0cnVjdHVyZS5nZXQoKTsgfQogCiAjaWYgRU5BQkxFKFBST01JU0VTKQogICAgIFN0cnVj
dHVyZSogcHJvbWlzZVN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvbWlzZVN0cnVjdHVy
ZS5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGEzY2UyYzczNzAxMzYwMjcyZWE2ZjQ0MWM3YmY0MGFmNzBlM2M4
NDMuLjg4ZTBmNmU0MzExZTAzN2I4MzFhYzZkOWM1MDVjMTBjNmI3YzgzODEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxMy0xMC0wMSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIEltcGxlbWVudCBBcnJheSBrZXksIHZhbHVlIGFuZCBlbnRyaWVzIGl0ZXJhdG9y
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyMTk1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRl
c3RzCisKKyAgICAgICAgKiBqcy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy1leHBlY3RlZC50
eHQ6CisgICAgICAgICoganMvYXJyYXktaXRlcmF0b3JzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICoganMvYXJyYXktaXRlcmF0b3JzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3Nj
cmlwdC10ZXN0cy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy5qczoKKyAgICAgICAgKiBqcy9z
Y3JpcHQtdGVzdHMvYXJyYXktaXRlcmF0b3JzLmpzOiBBZGRlZC4KKwogMjAxMy0wOS0yNSAgT2xp
dmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBwcmVmaXhl
ZC1kZXN0cnVjdHVyaW5nIGFzc2lnbm1lbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL09i
amVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL09i
amVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dAppbmRleCA0ODE0ZWI3MjA0NWQ4
MWZlMzU3YjRlMGMwODNjMjkzMTdiMjI5YTMyLi45ZWRkMDY2NGM0MTQ4ZDJiNDU1Y2ZjZmMwNzg0
NmVhN2JkMzMwZWNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9PYmplY3QtZ2V0T3duUHJv
cGVydHlOYW1lcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvT2JqZWN0LWdldE93
blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0CkBAIC00NSw3ICs0NSw3IEBAIFBBU1MgZ2V0U29y
dGVkT3duUHJvcGVydHlOYW1lcyhPYmplY3QucHJvdG90eXBlKSBpcyBbJ19fZGVmaW5lR2V0dGVy
X18nLCAnX19kZWZpCiBQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoRnVuY3Rpb24pIGlz
IFsnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10KIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVy
dHlOYW1lcyhGdW5jdGlvbi5wcm90b3R5cGUpIGlzIFsnYXBwbHknLCAnYmluZCcsICdjYWxsJywg
J2NvbnN0cnVjdG9yJywgJ2xlbmd0aCcsICduYW1lJywgJ3RvU3RyaW5nJ10KIFBBU1MgZ2V0U29y
dGVkT3duUHJvcGVydHlOYW1lcyhBcnJheSkgaXMgWydpc0FycmF5JywgJ2xlbmd0aCcsICduYW1l
JywgJ3Byb3RvdHlwZSddCi1QQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoQXJyYXkucHJv
dG90eXBlKSBpcyBbJ2NvbmNhdCcsICdjb25zdHJ1Y3RvcicsICdldmVyeScsICdmaWx0ZXInLCAn
Zm9yRWFjaCcsICdpbmRleE9mJywgJ2pvaW4nLCAnbGFzdEluZGV4T2YnLCAnbGVuZ3RoJywgJ21h
cCcsICdwb3AnLCAncHVzaCcsICdyZWR1Y2UnLCAncmVkdWNlUmlnaHQnLCAncmV2ZXJzZScsICdz
aGlmdCcsICdzbGljZScsICdzb21lJywgJ3NvcnQnLCAnc3BsaWNlJywgJ3RvTG9jYWxlU3RyaW5n
JywgJ3RvU3RyaW5nJywgJ3Vuc2hpZnQnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVz
KEFycmF5LnByb3RvdHlwZSkgaXMgWydjb25jYXQnLCAnY29uc3RydWN0b3InLCAnZW50cmllcycs
ICdldmVyeScsICdmaWx0ZXInLCAnZm9yRWFjaCcsICdpbmRleE9mJywgJ2pvaW4nLCAna2V5cycs
ICdsYXN0SW5kZXhPZicsICdsZW5ndGgnLCAnbWFwJywgJ3BvcCcsICdwdXNoJywgJ3JlZHVjZScs
ICdyZWR1Y2VSaWdodCcsICdyZXZlcnNlJywgJ3NoaWZ0JywgJ3NsaWNlJywgJ3NvbWUnLCAnc29y
dCcsICdzcGxpY2UnLCAndG9Mb2NhbGVTdHJpbmcnLCAndG9TdHJpbmcnLCAndW5zaGlmdCcsICd2
YWx1ZXMnXQogUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKFN0cmluZykgaXMgWydmcm9t
Q2hhckNvZGUnLCAnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10KIFBBU1MgZ2V0U29ydGVk
T3duUHJvcGVydHlOYW1lcyhTdHJpbmcucHJvdG90eXBlKSBpcyBbJ2FuY2hvcicsICdiaWcnLCAn
YmxpbmsnLCAnYm9sZCcsICdjaGFyQXQnLCAnY2hhckNvZGVBdCcsICdjb25jYXQnLCAnY29uc3Ry
dWN0b3InLCAnZml4ZWQnLCAnZm9udGNvbG9yJywgJ2ZvbnRzaXplJywgJ2luZGV4T2YnLCAnaXRh
bGljcycsICdsYXN0SW5kZXhPZicsICdsZW5ndGgnLCAnbGluaycsICdsb2NhbGVDb21wYXJlJywg
J21hdGNoJywgJ3JlcGxhY2UnLCAnc2VhcmNoJywgJ3NsaWNlJywgJ3NtYWxsJywgJ3NwbGl0Jywg
J3N0cmlrZScsICdzdWInLCAnc3Vic3RyJywgJ3N1YnN0cmluZycsICdzdXAnLCAndG9Mb2NhbGVM
b3dlckNhc2UnLCAndG9Mb2NhbGVVcHBlckNhc2UnLCAndG9Mb3dlckNhc2UnLCAndG9TdHJpbmcn
LCAndG9VcHBlckNhc2UnLCAndHJpbScsICd0cmltTGVmdCcsICd0cmltUmlnaHQnLCAndmFsdWVP
ZiddCiBQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoQm9vbGVhbikgaXMgWydsZW5ndGgn
LCAnbmFtZScsICdwcm90b3R5cGUnXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvYXJyYXkt
aXRlcmF0b3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2FycmF5LWl0ZXJhdG9ycy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTgxOWVjMGY1ZGQyOGI0NWRiMzdhNDgyODM0Zjc2NjNh
ZmQxMTI5ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2FycmF5LWl0ZXJhdG9y
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2NSBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVo
YXZpb3Igb2YgdGhlIGl0ZXJhdG9yIG1ldGhvZHMgb24gQXJyYXkgb2JqZWN0cy4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mga2V5IGlzIDAKK1BBU1Mga2V5IGlzIDEKK1BB
U1Mga2V5IGlzIDIKK1BBU1Mga2V5IGlzIDMKK1BBU1Mga2V5IGlzIDQKK1BBU1Mga2V5IGlzIDUK
K1BBU1MgdGVzdEFycmF5Lmxlbmd0aCBpcyA2CitQQVNTIGtleXMubmV4dCgpLnZhbHVlIGlzIHVu
ZGVmaW5lZC4KK1BBU1MgdmFsdWUgaXMgMQorUEFTUyB2YWx1ZSBpcyAyCitQQVNTIHZhbHVlIGlz
IDMKK1BBU1MgdmFsdWUgaXMgNAorUEFTUyB2YWx1ZSBpcyA1CitQQVNTIHZhbHVlIGlzIDYKK1BB
U1MgdGVzdEFycmF5Lmxlbmd0aCBpcyA2CitQQVNTIHZhbHVlcy5uZXh0KCkudmFsdWUgaXMgdW5k
ZWZpbmVkLgorUEFTUyB2YWx1ZSBpcyB0ZXN0QXJyYXlba2V5XQorUEFTUyBrZXkgaXMgMAorUEFT
UyB2YWx1ZSBpcyAxCitQQVNTIHZhbHVlIGlzIHRlc3RBcnJheVtrZXldCitQQVNTIGtleSBpcyAx
CitQQVNTIHZhbHVlIGlzIDIKK1BBU1MgdmFsdWUgaXMgdGVzdEFycmF5W2tleV0KK1BBU1Mga2V5
IGlzIDIKK1BBU1MgdmFsdWUgaXMgMworUEFTUyB2YWx1ZSBpcyB0ZXN0QXJyYXlba2V5XQorUEFT
UyBrZXkgaXMgMworUEFTUyB2YWx1ZSBpcyA0CitQQVNTIHZhbHVlIGlzIHRlc3RBcnJheVtrZXld
CitQQVNTIGtleSBpcyA0CitQQVNTIHZhbHVlIGlzIDUKK1BBU1MgdmFsdWUgaXMgdGVzdEFycmF5
W2tleV0KK1BBU1Mga2V5IGlzIDUKK1BBU1MgdmFsdWUgaXMgNgorUEFTUyB0ZXN0QXJyYXkubGVu
Z3RoIGlzIDYKK1BBU1MgZW50cmllcy5uZXh0KCkudmFsdWUgaXMgdW5kZWZpbmVkLgorUEFTUyB2
YWx1ZSBpcyB0ZXN0QXJyYXlba2V5XQorUEFTUyBrZXkgaXMgaQorUEFTUyB2YWx1ZSBpcyB0ZXN0
QXJyYXlba2V5XQorUEFTUyBrZXkgaXMgaQorUEFTUyB2YWx1ZSBpcyB0ZXN0QXJyYXlba2V5XQor
UEFTUyBrZXkgaXMgaQorUEFTUyB2YWx1ZSBpcyB0ZXN0QXJyYXlba2V5XQorUEFTUyBrZXkgaXMg
aQorUEFTUyB2YWx1ZSBpcyB0ZXN0QXJyYXlba2V5XQorUEFTUyBrZXkgaXMgaQorUEFTUyB2YWx1
ZSBpcyB0ZXN0QXJyYXlba2V5XQorUEFTUyBrZXkgaXMgaQorUEFTUyB2YWx1ZSBpcyB0ZXN0QXJy
YXlba2V5XQorUEFTUyBrZXkgaXMgaQorUEFTUyB2YWx1ZSBpcyB0ZXN0QXJyYXlba2V5XQorUEFT
UyBrZXkgaXMgaQorUEFTUyB2YWx1ZSBpcyB0ZXN0QXJyYXlba2V5XQorUEFTUyBrZXkgaXMgaQor
UEFTUyB0ZXN0QXJyYXkubGVuZ3RoIGlzIDkKK1BBU1MgZW50cmllcy5uZXh0KCkudmFsdWUgaXMg
dW5kZWZpbmVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2FycmF5LWl0ZXJhdG9ycy5odG1sIGIv
TGF5b3V0VGVzdHMvanMvYXJyYXktaXRlcmF0b3JzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWVlNjY0YmU5
ZTM5OTBmMGZjMjRiM2YyMTM5ZTQ0YTdkMDExMzI4OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL2FycmF5LWl0ZXJhdG9ycy5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9hcnJheS1pdGVyYXRvcnMuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2Ny
aXB0LXRlc3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzIGIvTGF5b3V0VGVzdHMvanMv
c2NyaXB0LXRlc3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzCmluZGV4IDQzZGY0MTc2
ZjZlODlmNWU3Yjc5YzAyYjQzNjI5NjVlZmE4MzUyZTYuLjBmNTM3MGI5YmNkMGJjNDY2MjAyYWVi
ZmRjZGI5MjY1NDNjZTNkYmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0
cy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy5qcworKysgYi9MYXlvdXRUZXN0cy9qcy9zY3Jp
cHQtdGVzdHMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMuanMKQEAgLTUzLDcgKzUzLDcgQEAg
dmFyIGV4cGVjdGVkUHJvcGVydHlOYW1lc1NldCA9IHsKICAgICAiRnVuY3Rpb24iOiAiWydsZW5n
dGgnLCAnbmFtZScsICdwcm90b3R5cGUnXSIsCiAgICAgIkZ1bmN0aW9uLnByb3RvdHlwZSI6ICJb
J2FwcGx5JywgJ2JpbmQnLCAnY2FsbCcsICdjb25zdHJ1Y3RvcicsICdsZW5ndGgnLCAnbmFtZScs
ICd0b1N0cmluZyddIiwKICAgICAiQXJyYXkiOiAiWydpc0FycmF5JywgJ2xlbmd0aCcsICduYW1l
JywgJ3Byb3RvdHlwZSddIiwKLSAgICAiQXJyYXkucHJvdG90eXBlIjogIlsnY29uY2F0JywgJ2Nv
bnN0cnVjdG9yJywgJ2V2ZXJ5JywgJ2ZpbHRlcicsICdmb3JFYWNoJywgJ2luZGV4T2YnLCAnam9p
bicsICdsYXN0SW5kZXhPZicsICdsZW5ndGgnLCAnbWFwJywgJ3BvcCcsICdwdXNoJywgJ3JlZHVj
ZScsICdyZWR1Y2VSaWdodCcsICdyZXZlcnNlJywgJ3NoaWZ0JywgJ3NsaWNlJywgJ3NvbWUnLCAn
c29ydCcsICdzcGxpY2UnLCAndG9Mb2NhbGVTdHJpbmcnLCAndG9TdHJpbmcnLCAndW5zaGlmdCdd
IiwKKyAgICAiQXJyYXkucHJvdG90eXBlIjogIlsnY29uY2F0JywgJ2NvbnN0cnVjdG9yJywgJ2Vu
dHJpZXMnLCAnZXZlcnknLCAnZmlsdGVyJywgJ2ZvckVhY2gnLCAnaW5kZXhPZicsICdqb2luJywg
J2tleXMnLCAnbGFzdEluZGV4T2YnLCAnbGVuZ3RoJywgJ21hcCcsICdwb3AnLCAncHVzaCcsICdy
ZWR1Y2UnLCAncmVkdWNlUmlnaHQnLCAncmV2ZXJzZScsICdzaGlmdCcsICdzbGljZScsICdzb21l
JywgJ3NvcnQnLCAnc3BsaWNlJywgJ3RvTG9jYWxlU3RyaW5nJywgJ3RvU3RyaW5nJywgJ3Vuc2hp
ZnQnLCAndmFsdWVzJ10iLAogICAgICJTdHJpbmciOiAiWydmcm9tQ2hhckNvZGUnLCAnbGVuZ3Ro
JywgJ25hbWUnLCAncHJvdG90eXBlJ10iLAogICAgICJTdHJpbmcucHJvdG90eXBlIjogIlsnYW5j
aG9yJywgJ2JpZycsICdibGluaycsICdib2xkJywgJ2NoYXJBdCcsICdjaGFyQ29kZUF0JywgJ2Nv
bmNhdCcsICdjb25zdHJ1Y3RvcicsICdmaXhlZCcsICdmb250Y29sb3InLCAnZm9udHNpemUnLCAn
aW5kZXhPZicsICdpdGFsaWNzJywgJ2xhc3RJbmRleE9mJywgJ2xlbmd0aCcsICdsaW5rJywgJ2xv
Y2FsZUNvbXBhcmUnLCAnbWF0Y2gnLCAncmVwbGFjZScsICdzZWFyY2gnLCAnc2xpY2UnLCAnc21h
bGwnLCAnc3BsaXQnLCAnc3RyaWtlJywgJ3N1YicsICdzdWJzdHInLCAnc3Vic3RyaW5nJywgJ3N1
cCcsICd0b0xvY2FsZUxvd2VyQ2FzZScsICd0b0xvY2FsZVVwcGVyQ2FzZScsICd0b0xvd2VyQ2Fz
ZScsICd0b1N0cmluZycsICd0b1VwcGVyQ2FzZScsICd0cmltJywgJ3RyaW1MZWZ0JywgJ3RyaW1S
aWdodCcsICd2YWx1ZU9mJ10iLAogICAgICJCb29sZWFuIjogIlsnbGVuZ3RoJywgJ25hbWUnLCAn
cHJvdG90eXBlJ10iLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2Fy
cmF5LWl0ZXJhdG9ycy5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9hcnJheS1pdGVy
YXRvcnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uN2NjYjc4OTM4ODkyMTQyZjliYzMyNzBiYjQwYTU2Y2NlZWQx
ODg4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9hcnJh
eS1pdGVyYXRvcnMuanMKQEAgLTAsMCArMSw3NiBAQAorZGVzY3JpcHRpb24oCisiVGhpcyB0ZXN0
IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIGl0ZXJhdG9yIG1ldGhvZHMgb24gQXJyYXkgb2Jq
ZWN0cy4iCispOworCisKK3ZhciB0ZXN0QXJyYXkgPSBbMSwyLDMsNCw1LDZdCit2YXIga2V5cyA9
IHRlc3RBcnJheS5rZXlzKCk7Cit2YXIgaSA9IDA7Cit3aGlsZSAodHJ1ZSkgeworICAgIHZhciB7
ZG9uZSwgdmFsdWU6IGtleX0gPSBrZXlzLm5leHQoKTsKKyAgICBpZiAoZG9uZSkKKyAgICAgICAg
YnJlYWs7CisgICAgc2hvdWxkQmUoImtleSIsIFN0cmluZyhpKSkKKyAgICBpKys7Cit9CisKK3No
b3VsZEJlKCJ0ZXN0QXJyYXkubGVuZ3RoIiwgU3RyaW5nKGkpKQorCitzaG91bGRCZVVuZGVmaW5l
ZCgia2V5cy5uZXh0KCkudmFsdWUiKQorCit2YXIgdmFsdWVzID0gdGVzdEFycmF5LnZhbHVlcygp
OwordmFyIGkgPSAwOword2hpbGUgKHRydWUpIHsKKyAgICB2YXIge2RvbmUsIHZhbHVlfSA9IHZh
bHVlcy5uZXh0KCk7CisgICAgaWYgKGRvbmUpCisgICAgICAgIGJyZWFrOworICAgIGkrKzsKKyAg
ICBzaG91bGRCZSgidmFsdWUiLCBTdHJpbmcoaSkgKQorfQorCitzaG91bGRCZSgidGVzdEFycmF5
Lmxlbmd0aCIsIFN0cmluZyhpKSkKKworc2hvdWxkQmVVbmRlZmluZWQoInZhbHVlcy5uZXh0KCku
dmFsdWUiKQorCit2YXIgZW50cmllcyA9IHRlc3RBcnJheS5lbnRyaWVzKCk7Cit2YXIgaSA9IDA7
CitkbyB7CisgICAgdmFyIHtkb25lLCB2YWx1ZTogZW50cnl9ID0gZW50cmllcy5uZXh0KCk7Cisg
ICAgaWYgKGRvbmUpCisgICAgICAgIGJyZWFrOworICAgIHZhciBba2V5LCB2YWx1ZV0gPSBlbnRy
eTsKKyAgICBzaG91bGRCZSgidmFsdWUiLCAidGVzdEFycmF5W2tleV0iKQorICAgIHNob3VsZEJl
KCJrZXkiLCBTdHJpbmcoaSkpCisgICAgaSsrCisgICAgc2hvdWxkQmUoInZhbHVlIiwgU3RyaW5n
KGkpKQorfSB3aGlsZSAoIWRvbmUpOworCitzaG91bGRCZSgidGVzdEFycmF5Lmxlbmd0aCIsIFN0
cmluZyhpKSkKKworc2hvdWxkQmVVbmRlZmluZWQoImVudHJpZXMubmV4dCgpLnZhbHVlIikKKwor
CisKK3ZhciBlbnRyaWVzID0gdGVzdEFycmF5LmVudHJpZXMoKTsKK3ZhciBpID0gMDsKK2RvIHsK
KyAgICB2YXIge2RvbmUsIHZhbHVlOiBlbnRyeX0gPSBlbnRyaWVzLm5leHQoKTsKKyAgICBpZiAo
ZG9uZSkKKyAgICAgICAgYnJlYWs7CisgICAgdmFyIFtrZXksIHZhbHVlXSA9IGVudHJ5OworICAg
IHNob3VsZEJlKCJ2YWx1ZSIsICJ0ZXN0QXJyYXlba2V5XSIpCisgICAgc2hvdWxkQmUoImtleSIs
ICJpIikKKyAgICBpKysKKyAgICBpZiAoaSAlIDIgPT0gMCkKKyAgICAgICAgdGVzdEFycmF5W2ld
ICo9IDI7CisgICAgaWYgKGkgPCA0KQorICAgICAgICB0ZXN0QXJyYXkucHVzaCh0ZXN0QXJyYXku
bGVuZ3RoKQorICAgIGlmIChpID09IDQpCisgICAgICAgIGRlbGV0ZSB0ZXN0QXJyYXlbNF0KKyAg
ICBpZiAoaSA9PSA1KQorICAgICAgICB0ZXN0QXJyYXlbNF0gPSA1Cit9IHdoaWxlICghZG9uZSk7
CitzaG91bGRCZSgidGVzdEFycmF5Lmxlbmd0aCIsIFN0cmluZyhpKSkKKworc2hvdWxkQmVVbmRl
ZmluZWQoImVudHJpZXMubmV4dCgpLnZhbHVlIikKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213190</attachid>
            <date>2013-10-02 13:19:09 -0700</date>
            <delta_ts>2013-10-02 13:29:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122195-20131002131908.patch</filename>
            <type>text/plain</type>
            <size>51567</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2Nzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
NjY5NjM1MTRlN2ZjN2VkMzFjY2M5MzUwMjIxYjkxYWExZmU4MDBhLi42ZmIxNWFlZTkxZjJkNzNk
YTA0OGIyYTA3YjE1MmQ4MjBlNWQ3MDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MyBAQAorMjAxMy0xMC0wMSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIEltcGxlbWVudCBBcnJheSBrZXksIHZhbHVlIGFuZCBlbnRyaWVzIGl0ZXJhdG9y
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyMTk1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGlt
cGxlbWVudGF0aW9uIG9mIEVTNiBBcnJheSBpdGVyYXRvcnMgZm9yIGtleXMoKSwgdmFsdWVzKCkg
YW5kIGVudHJpZXMoKQorCisgICAgICAgIEZhaXJseSBzZWxmIGV4cGxhbmF0b3J5IGFzIHdlIGp1
c3QgbmVlZCBhIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBzbyB0aGF0IHdlIGNhbgorICAgICAgICBp
bXBsZW1lbnQgYW5kIHRlc3Qgb3RoZXIgZmVhdHVyZXMuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlJ
dGVyYXRvckNvbnN0cnVjdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OkFycmF5SXRlcmF0
b3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlJ
dGVyYXRvckNvbnN0cnVjdG9yLmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpBcnJheUl0ZXJhdG9y
Q29uc3RydWN0b3I6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkFycmF5SXRlcmF0b3JDb25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6QXJyYXlJdGVyYXRvckNvbnN0
cnVjdG9yOjpBcnJheUl0ZXJhdG9yQ29uc3RydWN0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvQXJy
YXlJdGVyYXRvclByb3RvdHlwZS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpBcnJheUl0ZXJh
dG9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OmNyZWF0ZUl0ZXJh
dG9yUmVzdWx0KToKKyAgICAgICAgKEpTQzo6YXJyYXlJdGVyYXRvclByb3RvdHlwZU5leHQpOgor
ICAgICAgICAqIHJ1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oOiBBZGRlZC4KKyAgICAg
ICAgKEpTQzo6QXJyYXlJdGVyYXRvclByb3RvdHlwZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6
QXJyYXlJdGVyYXRvclByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6
QXJyYXlJdGVyYXRvclByb3RvdHlwZTo6QXJyYXlJdGVyYXRvclByb3RvdHlwZSk6CisgICAgICAg
ICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9G
dW5jVmFsdWVzKToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNFbnRyaWVzKToKKyAgICAg
ICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNLZXlzKToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vbklk
ZW50aWZpZXJzLmg6CisgICAgICAgICogcnVudGltZS9JZGVudGlmaWVyLmg6CisgICAgICAgIChK
U0M6OklkZW50aWZpZXI6OmNyZWF0ZUVtcHR5VW5pcXVlKToKKyAgICAgICAgKiBydW50aW1lL0pT
QXJyYXlJdGVyYXRvci5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6
OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlJdGVyYXRvci5oOiBB
ZGRlZC4KKyAgICAgICAgKEpTQzo6SlNBcnJheUl0ZXJhdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkpT
QXJyYXlJdGVyYXRvcjo6aXRlcmF0aW9uS2luZCk6CisgICAgICAgIChKU0M6OkpTQXJyYXlJdGVy
YXRvcjo6aXRlcmF0ZWRPYmplY3QpOgorICAgICAgICAoSlNDOjpKU0FycmF5SXRlcmF0b3I6Om5l
eHRJbmRleCk6CisgICAgICAgIChKU0M6OkpTQXJyYXlJdGVyYXRvcjo6c2V0TmV4dEluZGV4KToK
KyAgICAgICAgKEpTQzo6SlNBcnJheUl0ZXJhdG9yOjpmaW5pc2gpOgorICAgICAgICAoSlNDOjpK
U0FycmF5SXRlcmF0b3I6OkpTQXJyYXlJdGVyYXRvcik6CisgICAgICAgICogcnVudGltZS9KU0ds
b2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpyZXNldCk6Cisg
ICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0dsb2Jh
bE9iamVjdDo6aXRlcmF0b3JSZXN1bHRTdHJ1Y3R1cmUpOgorCiAyMDEzLTA5LTI1ICBPbGl2ZXIg
SHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IHByZWZpeGVkLWRl
c3RydWN0dXJpbmcgYXNzaWdubWVudApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGQ4YmY1NTUwOTk2MjFkYTM3YzY1YjQxODk1MTY0ODExYWEwNDJmYmQuLmZiM2Q4NTBlMTM1
OGI2ZmQ2NmIyYTc1MGFiMjQzYTk1NGNhYjM2MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VM
aXN0cy50eHQKQEAgLTI2Niw2ICsyNjYsOCBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwog
ICAgIHJ1bnRpbWUvQXJyYXlCdWZmZXIuY3BwCiAgICAgcnVudGltZS9BcnJheUJ1ZmZlclZpZXcu
Y3BwCiAgICAgcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcAorICAgIHJ1bnRpbWUvQXJyYXlJ
dGVyYXRvckNvbnN0cnVjdG9yLmNwcAorICAgIHJ1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlw
ZS5jcHAKICAgICBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAogICAgIHJ1bnRpbWUvQm9vbGVh
bkNvbnN0cnVjdG9yLmNwcAogICAgIHJ1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAKQEAgLTMwOSw2
ICszMTEsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIHJ1bnRpbWUvSlNBcnJh
eUJ1ZmZlckNvbnN0cnVjdG9yLmNwcAogICAgIHJ1bnRpbWUvSlNBcnJheUJ1ZmZlclByb3RvdHlw
ZS5jcHAKICAgICBydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3LmNwcAorICAgIHJ1bnRpbWUvSlNB
cnJheUl0ZXJhdG9yLmNwcAogICAgIHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcAogICAgIHJ1
bnRpbWUvSlNDSlNWYWx1ZS5jcHAKICAgICBydW50aW1lL0pTQ2VsbC5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZjhiM2I5NzQyOGNmMjAwY2Y0YzRm
Y2E2ODUwZWU3ZGJhMGY4ZDRjZS4uZGNiNzE4OTkzMDQzOTc2NmQzMWFhOGQ4ZmIyMjA1MDU5NWI5
NGE0YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTc0
OCw2ICs3NDgsMTAgQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAgXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaCBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJyYXlDb252ZW50aW9ucy5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9BcnJheUl0ZXJhdG9yQ29uc3RydWN0b3IuY3BwIFwKKyAgICBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yQ29uc3RydWN0b3IuaCBcCisgICAgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAgXAorICAg
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuaCBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oIFwKIAlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVN0b3JhZ2UuaCBcCkBAIC04NTMsNiArODU3LDgg
QEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXcuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FycmF5QnVmZmVyVmlldy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5QnVmZmVyVmlld0lubGluZXMuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheUl0ZXJhdG9yLmNwcCBcCisgICAgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheUl0ZXJhdG9yLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbC5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oIFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3LmNwcCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagppbmRleCBkZDA3MjdmNzRkYTNmNTA5MjU0ZGJi
ZGNlNmJhNzcwNmMwZDNkOWRjLi44OTFmNjkwMTc3YTYxNzI3MzQ2MTdlY2EyNDIxMmRiNTdiZTJh
N2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4
cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKQEAgLTQyNSw2ICs0
MjUsOCBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxBcnJheUJ1ZmZlci5j
cHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxBcnJheUJ1ZmZlclZp
ZXcuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcQXJyYXlDb25z
dHJ1Y3Rvci5jcHAiIC8+DQorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxBcnJh
eUl0ZXJhdG9yQ29uc3RydWN0b3IuY3BwIiAvPg0KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHJ1bnRpbWVcQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5ccnVudGltZVxBcnJheVByb3RvdHlwZS5jcHAiIC8+DQogICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5ccnVudGltZVxCb29sZWFuQ29uc3RydWN0b3IuY3BwIiAvPg0KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcQm9vbGVhbk9iamVjdC5jcHAiIC8+DQpAQCAt
NDYwLDYgKzQ2Miw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTQVBJ
VmFsdWVXcmFwcGVyLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1l
XEpTQWN0aXZhdGlvbi5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGlt
ZVxKU0FycmF5LmNwcCIgLz4NCisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEpT
QXJyYXlJdGVyYXRvci5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGlt
ZVxKU0FycmF5QnVmZmVyLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50
aW1lXEpTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccnVudGltZVxKU0FycmF5QnVmZmVyUHJvdG90eXBlLmNwcCIgLz4NCkBAIC04NDAs
NiArODQzLDggQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcQXJyYXlCdWZm
ZXJWaWV3LmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxBcnJheUNv
bnN0cnVjdG9yLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxBcnJh
eUNvbnZlbnRpb25zLmgiIC8+DQorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxB
cnJheUl0ZXJhdG9yQ29uc3RydWN0b3IuaCIgLz4NCisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxydW50aW1lXEFycmF5SXRlcmF0b3JQcm90b3R5cGUuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxydW50aW1lXEFycmF5UHJvdG90eXBlLmgiIC8+DQogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5ccnVudGltZVxBcnJheVN0b3JhZ2UuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxydW50aW1lXEJhdGNoZWRUcmFuc2l0aW9uT3B0aW1pemVyLmgiIC8+DQpAQCAt
ODk4LDYgKzkwMyw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTQXJy
YXlCdWZmZXJQcm90b3R5cGUuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50
aW1lXEpTQXJyYXlCdWZmZXJWaWV3LmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
cnVudGltZVxKU0FycmF5QnVmZmVyVmlld0lubGluZXMuaCIgLz4NCisgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxydW50aW1lXEpTQXJyYXlJdGVyYXRvci5oIiAvPg0KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNCb3VuZEZ1bmN0aW9uLmgiIC8+DQogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU0NKU1ZhbHVlLmgiIC8+DQogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5ccnVudGltZVxKU0NKU1ZhbHVlSW5saW5lcy5oIiAvPg0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggYmQwNjk1MDgyZWVhNTE0ODFiZDJlY2QxMmNmMjllNjZkMDAx
YTE0Ny4uMDhjZjQ0ZTdlNGU4NWM5OWFiMDVhMGU5NDVmMDU1NTEzYTA4ODRmZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkzOCw2ICs5MzgsMTIgQEAKIAkJQTdCNDhGNDkwRUU4
OTM2RjAwRENCREI2IC8qIEV4ZWN1dGFibGVBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCNDhEQjYwRUU3NENGQzAwRENCREI2IC8q
IEV4ZWN1dGFibGVBbGxvY2F0b3IuY3BwICovOyB9OwogCQlBN0I0QUNBRjE0ODRDOUNFMDBCMzhB
MzYgLyogSlNFeHBvcnRNYWNyb3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3QjRBQ0FFMTQ4NEM5Q0UwMEIzOEEzNiAvKiBKU0V4cG9ydE1hY3Jvcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3QjYw
MTgyMTYzOUZEMkEwMDM3MkJBMyAvKiBVbmxpbmtlZENvZGVCbG9jay5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc5RTc4MUYxNUVFQ0JBODAwNDdDODU1
IC8qIFVubGlua2VkQ29kZUJsb2NrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJQTdCREFFQzYxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0
b3JDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBN0JEQUVDMDE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvckNvbnN0cnVj
dG9yLmNwcCAqLzsgfTsKKwkJQTdCREFFQzcxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0
b3JDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTdCREFFQzExN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0b3JDb25zdHJ1Y3Rv
ci5oICovOyB9OworCQlBN0JEQUVDODE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclBy
b3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBN0JEQUVDMjE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAg
Ki87IH07CisJCUE3QkRBRUM5MTdGNEVBMTQwMEY2MTQwQyAvKiBBcnJheUl0ZXJhdG9yUHJvdG90
eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0JE
QUVDMzE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oICovOyB9Owor
CQlBN0JEQUVDQTE3RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9yLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QkRBRUM0MTdGNEVBMTQw
MEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3IuY3BwICovOyB9OworCQlBN0JEQUVDQjE3RjRFQTE0
MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBN0JEQUVDNTE3RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0
ZXJhdG9yLmggKi87IH07CiAJCUE3QkZGM0MwMTc5ODY4OTQwMDAyRjQ2MiAvKiBERkdGaWx0cmF0
aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBN0JGRjNCRjE3OTg2ODk0MDAwMkY0NjIgLyogREZHRmlsdHJhdGlvblJlc3VsdC5oICovOyB9
OwogCQlBN0MwQzRBQzE2ODEwMzAyMDAxNzAxMUQgLyogSlNTY3JpcHRSZWZQcml2YXRlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0MwQzRBQjE2N0Mw
OENEMDAxNzAxMUQgLyogSlNTY3JpcHRSZWZQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTdDMEM0QUQxNjgxMDY3RTAwMTcwMTFEIC8q
IEpTU2NyaXB0UmVmLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3QzBDNEFBMTY3QzA4Q0QwMDE3MDExRCAvKiBKU1NjcmlwdFJlZi5jcHAgKi87IH07
CkBAIC0yMTU5LDYgKzIxNjUsMTIgQEAKIAkJQTdCNDhEQjUwRUU3NENGQzAwRENCREI2IC8qIEV4
ZWN1dGFibGVBbGxvY2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhl
Y3V0YWJsZUFsbG9jYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0I0OERC
NjBFRTc0Q0ZDMDBEQ0JEQjYgLyogRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeGVjdXRhYmxlQWxsb2NhdG9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdCNEFDQUUxNDg0QzlDRTAwQjM4QTM2IC8qIEpTRXhw
b3J0TWFjcm9zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXhwb3J0TWFj
cm9zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3QkRBRUMwMTdGNEVBMTQwMEY2
MTQwQyAvKiBBcnJheUl0ZXJhdG9yQ29uc3RydWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTdCREFFQzExN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRl
cmF0b3JDb25zdHJ1Y3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcnJh
eUl0ZXJhdG9yQ29uc3RydWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTdC
REFFQzIxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXJyYXlJdGVyYXRvclByb3RvdHlwZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3QkRBRUMzMTdGNEVBMTQwMEY2MTQw
QyAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEFycmF5SXRlcmF0b3JQcm90b3R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQTdCREFFQzQxN0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0FycmF5SXRlcmF0b3IuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBN0JEQUVDNTE3RjRFQTE0MDBGNjE0MEMgLyog
SlNBcnJheUl0ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQXJy
YXlJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0JGRjNCRjE3OTg2
ODk0MDAwMkY0NjIgLyogREZHRmlsdHJhdGlvblJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBERkdGaWx0cmF0aW9uUmVzdWx0Lmg7IHBhdGggPSBkZmcvREZHRmlsdHJh
dGlvblJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0MwQzRBQTE2N0Mw
OENEMDAxNzAxMUQgLyogSlNTY3JpcHRSZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNTY3JpcHRSZWYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBN0MwQzRBQjE2N0MwOENEMDAxNzAxMUQgLyogSlNTY3JpcHRSZWZQcml2YXRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2NyaXB0UmVmUHJpdmF0ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzQzMSw2ICszNDQzLDEyIEBACiAJCQkJQTdDQTNBRTIx
N0RBNDFBRTAwNjUzOEFGIC8qIEpTV2Vha01hcC5oICovLAogCQkJCUE3Q0EzQUU5MTdEQTUxNjgw
MDY1MzhBRiAvKiBXZWFrTWFwRGF0YS5jcHAgKi8sCiAJCQkJQTdDQTNBRUExN0RBNTE2ODAwNjUz
OEFGIC8qIFdlYWtNYXBEYXRhLmggKi8sCisJCQkJQTdCREFFQzAxN0Y0RUExNDAwRjYxNDBDIC8q
IEFycmF5SXRlcmF0b3JDb25zdHJ1Y3Rvci5jcHAgKi8sCisJCQkJQTdCREFFQzExN0Y0RUExNDAw
RjYxNDBDIC8qIEFycmF5SXRlcmF0b3JDb25zdHJ1Y3Rvci5oICovLAorCQkJCUE3QkRBRUMyMTdG
NEVBMTQwMEY2MTQwQyAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcCAqLywKKwkJCQlBN0JE
QUVDMzE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oICovLAorCQkJ
CUE3QkRBRUM0MTdGNEVBMTQwMEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3IuY3BwICovLAorCQkJ
CUE3QkRBRUM1MTdGNEVBMTQwMEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3IuaCAqLywKIAkJCSk7
CiAJCQlwYXRoID0gcnVudGltZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC00MzEz
LDYgKzQzMzEsNyBAQAogCQkJCTBGNDY4MENCMTRCQkIxNzIwMEJGRTI3MiAvKiBMTEludE9mZmxp
bmVBc21Db25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFRDI4N0IyMTVFQzlBNTcwMERBODE2
MSAvKiBMTEludE9wY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0NjgwQTUxNEJBN0Y4RDAw
QkZFMjcyIC8qIExMSW50U2xvd1BhdGhzLmggaW4gSGVhZGVycyAqLywKKwkJCQlBN0JEQUVDQjE3
RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjBCODM5RDE0QkNGNDY2MDA4ODVCNEYgLyogTExJbnRUaHVua3MuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE3RTVBQjM4MTc5OUU0QjIwMEQyODMzRCAvKiBMTFZNRGlzYXNzZW1ibGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxNDJFMzEzOTEzNEZGMEE2MDBBRkFEQjUgLyogTG9jYWwuaCBpbiBIZWFk
ZXJzICovLApAQCAtNDM3Miw2ICs0MzkxLDcgQEAKIAkJCQkwRkNDQUU0NTE2RDBDRjc0MDBEMEM2
NUIgLyogUGFyc2VyRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3N0YxODI1MTY0MTkyQzcw
MDY0MEE0NyAvKiBQYXJzZXJNb2Rlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjUzMDNENjQxNDQ3
QjlFMTAwRDNGOTA0IC8qIFBhcnNlclRva2Vucy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTdCREFF
QzcxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0b3JDb25zdHJ1Y3Rvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYzNEIxNEMxNkQ0M0UwRDAwMUNEQTVBIC8qIFBvbHltb3JwaGljQWNjZXNz
U3RydWN0dXJlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5RkM4QzQxNEUxQjYwMDAwRDUy
QUUwIC8qIFBvbHltb3JwaGljUHV0QnlJZExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTgy
MDYxMTZCRkUzODMwMDI0MEQwMiAvKiBQcmVjaXNlSnVtcFRhcmdldHMuaCBpbiBIZWFkZXJzICov
LApAQCAtNDQxOSw2ICs0NDM5LDcgQEAKIAkJCQlCQzE4QzUyQzBFMTZGQ0QyMDBCMzQ0NjAgLyog
UmVnRXhwT2JqZWN0Lmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEMjAyQzQwRTE3MDZBNzAw
MkM3RTgyIC8qIFJlZ0V4cFByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzIwQjI1OTkx
NzA2NTM2MjAwQzIxRjRFIC8qIFJlZ2lvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTdCREFFQzkx
N0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDMThDNDVEMEUxNkY1Q0QwMEIzNDQ2MCAvKiBSZWdpc3Rlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTY5QTA3MkIwRUQxQ0U2OTAwRjFGNjgxIC8qIFJlZ2lzdGVySUQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGQjdGMzlEMTVFRDhFNDYwMEYxNjdCMiAvKiBSZWplY3QuaCBpbiBIZWFk
ZXJzICovLApAQCAtNTA5Nyw2ICs1MTE4LDcgQEAKIAkJCQlBNzIwMjhCNjE3OTc2MDFFMDA5ODAy
OEMgLyogSlNDVGVzdFJ1bm5lclV0aWxzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMkI2NkVC
MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0RhdGFWaWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
MkI2NkVEMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0RhdGFWaWV3UHJvdG90eXBlLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUE3QkRBRUNBMTdGNEVBMTQwMEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc4ODAxNDAxNDcxQUQ5MjAwNDFCMDE2IC8qIEpTRGF0
ZU1hdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQwNTY2RDYxMDdFQzI3MTAwNURCQzhEIC8q
IEpTRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5RDIxMDdFQzM3NjAwNDI3
QTQ4IC8qIEpTR2xvYmFsT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNTE4OSw2ICs1MjEx
LDcgQEAKIAkJCQlFMTI0QThGODBFNTU1Nzc1MDAzMDkxRjEgLyogT3BhcXVlSlNTdHJpbmcuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJOTY5QTA3OUEwRUQxRDNBRTAwRjFGNjgxIC8qIE9wY29kZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDg1MDEwN0VDMEQ3MDAxM0U3QjIgLyogT3BlcmF0
aW9ucy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBN0JEQUVDODE3RjRFQTE0MDBGNjE0MEMgLyog
QXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkUyMjhFRTE0
MzZBQjJDMDAxOTZDNDggLyogT3B0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDhGMjFC
QzEwN0VDNTREMDA0MkVDMkMgLyogUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMDUy
QzM0MEZCNzkyMTkwMDQ4RkRDMyAvKiBQYXJzZXJBcmVuYS5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTUyMzMsNiArNTI1Niw3IEBACiAJCQkJQTcyOTlEQTExN0QxMjg0ODAwNUY1RkY5IC8qIFNldFBy
b3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCNjcwNDE3QjZCNUFCMDBBN0FFM0Yg
LyogU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzIy
NTQ5NDMxNUY3REJBQTAwNjVFODk4IC8qIFNsb3RWaXNpdG9yLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUE3QkRBRUM2MTdGNEVBMTQwMEY2MTQwQyAvKiBBcnJheUl0ZXJhdG9yQ29uc3RydWN0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDQwMkMwRTZBNzY0MDAwNzg2RTZBIC8qIFNtYWxs
U3RyaW5ncy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjhGMkI5RTE3MzA2QzhEMDA3REJEQTUg
LyogU291cmNlQ29kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQ5M0FGQTE2RDBDQUQzMDA4
NDUwOEIgLyogU291cmNlUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yQ29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9y
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wOTE2ZWVlZjJiNTMwNTYyMjE5ZTg3OTVhNjBjMzJmODExNTY0ODRm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJ
dGVyYXRvckNvbnN0cnVjdG9yLmNwcApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yLmgiCisKKyNpbmNsdWRlICJKU0NKU1ZhbHVl
SW5saW5lcy5oIgorI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKKyNpbmNsdWRlICJKU0dsb2Jh
bE9iamVjdC5oIgorCituYW1lc3BhY2UgSlNDIHsKKworY29uc3QgQ2xhc3NJbmZvIEFycmF5SXRl
cmF0b3JDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCAw
LCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEFycmF5SXRlcmF0b3JDb25zdHJ1Y3RvcikgfTsKKwor
dm9pZCBBcnJheUl0ZXJhdG9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKK3sK
KyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JDb25zdHJ1Y3Rvci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDg5ZDVkOWU5MDRjYjJjOGJkMzMxOWEzMDY0Mzg3MDAxNGQ5NDZjMgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JD
b25zdHJ1Y3Rvci5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yX2gK
KyNkZWZpbmUgQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yX2gKKworI2luY2x1ZGUgIkludGVybmFs
RnVuY3Rpb24uaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIEFycmF5SXRlcmF0b3JQcm90
b3R5cGU7CisKK2NsYXNzIEFycmF5SXRlcmF0b3JDb25zdHJ1Y3RvciA6IHB1YmxpYyBKU05vbkZp
bmFsT2JqZWN0IHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsK
KworICAgIHN0YXRpYyBBcnJheUl0ZXJhdG9yQ29uc3RydWN0b3IqIGNyZWF0ZShWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBBcnJheUl0ZXJhdG9yUHJvdG90eXBlKikKKyAgICB7CisgICAg
ICAgIEFycmF5SXRlcmF0b3JDb25zdHJ1Y3RvciogY29uc3RydWN0b3IgPSBuZXcgKE5vdE51bGws
IGFsbG9jYXRlQ2VsbDxBcnJheUl0ZXJhdG9yQ29uc3RydWN0b3I+KHZtLmhlYXApKSBBcnJheUl0
ZXJhdG9yQ29uc3RydWN0b3Iodm0sIHN0cnVjdHVyZSk7CisgICAgICAgIGNvbnN0cnVjdG9yLT5m
aW5pc2hDcmVhdGlvbih2bSk7CisgICAgICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKKyAgICB9CisK
KyAgICBERUNMQVJFX0lORk87CisKKyAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlw
ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5m
bygpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yKFZN
JiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgICAgIDogQmFzZSh2bSwgc3RydWN0dXJl
KQorICAgIHsKKyAgICB9CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYpOworfTsKKworfQor
CisjZW5kaWYgLy8gIWRlZmluZWQoQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yX2gpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5
cGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjJjOGZhMTUwYmQwNjg4Yzg4ZmJmNjlhNTEwY2NhMjVmZDE4NDQ1
Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJh
eUl0ZXJhdG9yUHJvdG90eXBlLmNwcApAQCAtMCwwICsxLDEzMiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkFycmF5SXRlcmF0b3JQcm90b3R5cGUuaCIKKworI2luY2x1ZGUgIkpTQXJyYXlJdGVy
YXRvci5oIgorI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiSlNDZWxs
SW5saW5lcy5oIgorI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiT2JqZWN0
Q29uc3RydWN0b3IuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NvbnN0IENsYXNzSW5mbyBBcnJh
eUl0ZXJhdG9yUHJvdG90eXBlOjpzX2luZm8gPSB7ICJBcnJheSBJdGVyYXRvciIsICZCYXNlOjpz
X2luZm8sIDAsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoQXJyYXlJdGVyYXRvclByb3RvdHlwZSkg
fTsKKworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlJdGVyYXRvclBy
b3RvdHlwZU5leHQoRXhlY1N0YXRlKik7CisKK3ZvaWQgQXJyYXlJdGVyYXRvclByb3RvdHlwZTo6
ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQorewor
ICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKKyAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygp
KSk7CisgICAgdm0ucHJvdG90eXBlTWFwLmFkZFByb3RvdHlwZSh0aGlzKTsKKworICAgIEpTQ19O
QVRJVkVfRlVOQ1RJT04odm0ucHJvcGVydHlOYW1lcy0+bmV4dCwgYXJyYXlJdGVyYXRvclByb3Rv
dHlwZU5leHQsIERvbnRFbnVtLCAwKTsKK30KKworc3RhdGljIEVuY29kZWRKU1ZhbHVlIGNyZWF0
ZUl0ZXJhdG9yUmVzdWx0KENhbGxGcmFtZSogY2FsbEZyYW1lLCBBcnJheUl0ZXJhdGlvbktpbmQg
a2luZCwgc2l6ZV90IGluZGV4LCBKU1ZhbHVlIHJlc3VsdCwgYm9vbCBkb25lKQoreworICAgIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBjYWxsRnJhbWUtPmNhbGxlZSgpLT5nbG9iYWxP
YmplY3QoKTsKKyAgICBKU09iamVjdCogcmVzdWx0T2JqZWN0ID0gY29uc3RydWN0RW1wdHlPYmpl
Y3QoY2FsbEZyYW1lKTsKKyAgICByZXN1bHRPYmplY3QtPnB1dERpcmVjdChjYWxsRnJhbWUtPnZt
KCksIGNhbGxGcmFtZS0+cHJvcGVydHlOYW1lcygpLmRvbmUsIGpzQm9vbGVhbihkb25lKSk7Cisg
ICAgc3dpdGNoIChraW5kICYgfkFycmF5SXRlcmF0ZVNwYXJzZVRhZykgeworICAgIGNhc2UgQXJy
YXlJdGVyYXRlS2V5OgorICAgICAgICByZXN1bHRPYmplY3QtPnB1dERpcmVjdChjYWxsRnJhbWUt
PnZtKCksIGNhbGxGcmFtZS0+cHJvcGVydHlOYW1lcygpLnZhbHVlLCBkb25lID8ganNVbmRlZmlu
ZWQoKSA6IGpzTnVtYmVyKGluZGV4KSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQXJyYXlJ
dGVyYXRlVmFsdWU6CisgICAgICAgIHJlc3VsdE9iamVjdC0+cHV0RGlyZWN0KGNhbGxGcmFtZS0+
dm0oKSwgY2FsbEZyYW1lLT5wcm9wZXJ0eU5hbWVzKCkudmFsdWUsIGRvbmUgPyBqc1VuZGVmaW5l
ZCgpIDogcmVzdWx0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBcnJheUl0ZXJhdGVLZXlW
YWx1ZTogeworICAgICAgICBpZiAoIWRvbmUpIHsKKyAgICAgICAgICAgIE1hcmtlZEFyZ3VtZW50
QnVmZmVyIGFyZ3M7CisgICAgICAgICAgICBhcmdzLmFwcGVuZChqc051bWJlcihpbmRleCkpOwor
ICAgICAgICAgICAgYXJncy5hcHBlbmQocmVzdWx0KTsKKyAgICAgICAgICAgIEpTQXJyYXkqIHJl
c3VsdEFycmF5ID0gY29uc3RydWN0QXJyYXkoY2FsbEZyYW1lLCAwLCBnbG9iYWxPYmplY3QsIGFy
Z3MpOworICAgICAgICAgICAgcmVzdWx0T2JqZWN0LT5wdXREaXJlY3QoY2FsbEZyYW1lLT52bSgp
LCBjYWxsRnJhbWUtPnByb3BlcnR5TmFtZXMoKS52YWx1ZSwgcmVzdWx0QXJyYXkpOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIHJlc3VsdE9iamVjdC0+cHV0RGlyZWN0KGNhbGxGcmFtZS0+
dm0oKSwgY2FsbEZyYW1lLT5wcm9wZXJ0eU5hbWVzKCkudmFsdWUsIGpzVW5kZWZpbmVkKCkpOwor
CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJl
c3VsdE9iamVjdCk7Cit9CisgICAgCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5
SXRlcmF0b3JQcm90b3R5cGVOZXh0KENhbGxGcmFtZSogY2FsbEZyYW1lKQoreworICAgIEpTQXJy
YXlJdGVyYXRvciogaXRlcmF0b3IgPSBqc0R5bmFtaWNDYXN0PEpTQXJyYXlJdGVyYXRvcio+KGNh
bGxGcmFtZS0+dGhpc1ZhbHVlKCkpOworICAgIGlmICghaXRlcmF0b3IpCisgICAgICAgIHRocm93
VHlwZUVycm9yKGNhbGxGcmFtZSwgQVNDSUlMaXRlcmFsKCJDYW5ub3QgY2FsbCBBcnJheUl0ZXJh
dG9yLm5leHQoKSBvbiBhIG5vbi1BcnJheUl0ZXJhdG9yIG9iamVjdCIpKTsKKyAgICBKU09iamVj
dCogaXRlcmF0ZWRPYmplY3QgPSBpdGVyYXRvci0+aXRlcmF0ZWRPYmplY3QoKTsKKyAgICBzaXpl
X3QgaW5kZXggPSBpdGVyYXRvci0+bmV4dEluZGV4KCk7CisgICAgQXJyYXlJdGVyYXRpb25LaW5k
IGtpbmQgPSBpdGVyYXRvci0+aXRlcmF0aW9uS2luZCgpOworICAgIEpTVmFsdWUganNMZW5ndGgg
PSBKU1ZhbHVlKGl0ZXJhdGVkT2JqZWN0KS5nZXQoY2FsbEZyYW1lLCBjYWxsRnJhbWUtPnByb3Bl
cnR5TmFtZXMoKS5sZW5ndGgpOworICAgIGlmIChjYWxsRnJhbWUtPmhhZEV4Y2VwdGlvbigpKQor
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKTsKKworICAgIHNpemVfdCBs
ZW5ndGggPSBqc0xlbmd0aC50b1VJbnQzMihjYWxsRnJhbWUpOworICAgIGlmIChjYWxsRnJhbWUt
PmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgp
KTsKKworICAgIGlmIChpbmRleCA+PSBsZW5ndGgpIHsKKyAgICAgICAgaXRlcmF0b3ItPmZpbmlz
aCgpOworICAgICAgICByZXR1cm4gY3JlYXRlSXRlcmF0b3JSZXN1bHQoY2FsbEZyYW1lLCBraW5k
LCBpbmRleCwganNVbmRlZmluZWQoKSwgdHJ1ZSk7CisgICAgfQorICAgIGlmIChKU1ZhbHVlIHJl
c3VsdCA9IGl0ZXJhdGVkT2JqZWN0LT50cnlHZXRJbmRleFF1aWNrbHkoaW5kZXgpKSB7CisgICAg
ICAgIGl0ZXJhdG9yLT5zZXROZXh0SW5kZXgoaW5kZXggKyAxKTsKKyAgICAgICAgcmV0dXJuIGNy
ZWF0ZUl0ZXJhdG9yUmVzdWx0KGNhbGxGcmFtZSwga2luZCwgaW5kZXgsIHJlc3VsdCwgZmFsc2Up
OworICAgIH0KKyAgICAKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzVW5kZWZpbmVkKCk7CisgICAg
UHJvcGVydHlTbG90IHNsb3QoaXRlcmF0ZWRPYmplY3QpOworICAgIGlmIChraW5kID4gQXJyYXlJ
dGVyYXRlU3BhcnNlVGFnKSB7CisgICAgICAgIC8vIFdlIGFzc3VtZSB0aGF0IHRoZSBpbmRleGVk
IHByb3BlcnR5IHdpbGwgYmUgYW4gb3duIHByb3BlcnR5IHNvIGNhY2hlIHRoZSBnZXRPd25Qcm9w
ZXJ0eQorICAgICAgICAvLyBtZXRob2QgbG9jYWxseQorICAgICAgICBhdXRvIGdldE93blByb3Bl
cnR5U2xvdEJ5SW5kZXggPSBpdGVyYXRlZE9iamVjdC0+bWV0aG9kVGFibGUoKS0+Z2V0T3duUHJv
cGVydHlTbG90QnlJbmRleDsKKyAgICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7CisgICAg
ICAgICAgICBpZiAoZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleChpdGVyYXRlZE9iamVjdCwgY2Fs
bEZyYW1lLCBpbmRleCwgc2xvdCkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBzbG90Lmdl
dFZhbHVlKGNhbGxGcmFtZSwgaW5kZXgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgaWYgKGl0ZXJhdGVkT2JqZWN0LT5nZXRQcm9wZXJ0eVNsb3Qo
Y2FsbEZyYW1lLCBpbmRleCwgc2xvdCkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBzbG90
LmdldFZhbHVlKGNhbGxGcmFtZSwgaW5kZXgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgaW5kZXgrKzsKKyAgICAgICAgfQorICAgIH0gZWxzZSBp
ZiAoaXRlcmF0ZWRPYmplY3QtPmdldFByb3BlcnR5U2xvdChjYWxsRnJhbWUsIGluZGV4LCBzbG90
KSkKKyAgICAgICAgcmVzdWx0ID0gc2xvdC5nZXRWYWx1ZShjYWxsRnJhbWUsIGluZGV4KTsKKwor
ICAgIGlmIChpbmRleCA9PSBsZW5ndGgpCisgICAgICAgIGl0ZXJhdG9yLT5maW5pc2goKTsKKyAg
ICBlbHNlCisgICAgICAgIGl0ZXJhdG9yLT5zZXROZXh0SW5kZXgoaW5kZXggKyAxKTsKKyAgICBy
ZXR1cm4gY3JlYXRlSXRlcmF0b3JSZXN1bHQoY2FsbEZyYW1lLCBraW5kLCBpbmRleCwganNVbmRl
ZmluZWQoKSwgaW5kZXggPT0gbGVuZ3RoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjEwZWU5YTZhMjY3NmQ5OWQxOTM3ZDM4Yzg3ODEyOTU4NDRmYTBiNWQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBl
LmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSwgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2lmbmRlZiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlX2gKKyNkZWZpbmUgQXJy
YXlJdGVyYXRvclByb3RvdHlwZV9oCisKKyNpbmNsdWRlICJKU09iamVjdC5oIgorCituYW1lc3Bh
Y2UgSlNDIHsKKworY2xhc3MgQXJyYXlJdGVyYXRvclByb3RvdHlwZSA6IHB1YmxpYyBKU05vbkZp
bmFsT2JqZWN0IHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsK
KworICAgIHN0YXRpYyBBcnJheUl0ZXJhdG9yUHJvdG90eXBlKiBjcmVhdGUoVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICB7Cisg
ICAgICAgIEFycmF5SXRlcmF0b3JQcm90b3R5cGUqIHByb3RvdHlwZSA9IG5ldyAoTm90TnVsbCwg
YWxsb2NhdGVDZWxsPEFycmF5SXRlcmF0b3JQcm90b3R5cGU+KHZtLmhlYXApKSBBcnJheUl0ZXJh
dG9yUHJvdG90eXBlKHZtLCBzdHJ1Y3R1cmUpOworICAgICAgICBwcm90b3R5cGUtPmZpbmlzaENy
ZWF0aW9uKHZtLCBnbG9iYWxPYmplY3QpOworICAgICAgICByZXR1cm4gcHJvdG90eXBlOworICAg
IH0KKworICAgIERFQ0xBUkVfSU5GTzsKKworICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJv
dG90eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBpbmZvKCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBBcnJheUl0ZXJhdG9yUHJvdG90eXBl
KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgICAgIDogQmFzZSh2bSwgc3RydWN0
dXJlKQorICAgIHsKKyAgICB9CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFs
T2JqZWN0Kik7Cit9OworCit9CisKKyNlbmRpZiAvLyAhZGVmaW5lZChBcnJheUl0ZXJhdG9yUHJv
dG90eXBlX2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJh
eVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3Rv
dHlwZS5jcHAKaW5kZXggNWY4Yzc2ZDMyMDY2OWE1YmU0YTQ1NmI1NGI1MzE2ZDZjNTY5MzQ0Ni4u
YjJmNmE5ODcxMGRmNjY0NWU4MzI1M2VkNDc0NDY5OGFiYzcwZmQxYyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAtMzEsNiArMzEs
NyBAQAogI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNs
dWRlICJKSVQuaCIKKyNpbmNsdWRlICJKU0FycmF5SXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU1N0
cmluZ0J1aWxkZXIuaCIKICNpbmNsdWRlICJKU1N0cmluZ0pvaW5lci5oIgogI2luY2x1ZGUgIkxv
b2t1cC5oIgpAQCAtNjQsNiArNjUsOSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBhcnJheVByb3RvRnVuY01hcChFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jUmVkdWNlKEV4ZWNTdGF0ZSopOwogc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNSZWR1Y2VSaWdodChF
eGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJv
dG9GdW5jTGFzdEluZGV4T2YoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1ZhbHVlcyhFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jS2V5cyhFeGVjU3RhdGUqKTsK
K3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jRW50cmll
cyhFeGVjU3RhdGUqKTsKIAogfQogCkBAIC0xMTIsNiArMTE2LDkgQEAgY29uc3QgQ2xhc3NJbmZv
IEFycmF5UHJvdG90eXBlOjpzX2luZm8gPSB7IkFycmF5IiwgJkpTQXJyYXk6OnNfaW5mbywgMCwg
RXhlY1N0YXQKICAgcmVkdWNlICAgICAgICAgYXJyYXlQcm90b0Z1bmNSZWR1Y2UgICAgICAgICBE
b250RW51bXxGdW5jdGlvbiAxCiAgIHJlZHVjZVJpZ2h0ICAgIGFycmF5UHJvdG9GdW5jUmVkdWNl
UmlnaHQgICAgRG9udEVudW18RnVuY3Rpb24gMQogICBtYXAgICAgICAgICAgICBhcnJheVByb3Rv
RnVuY01hcCAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKKyAgdmFsdWVzICAgICAgICAg
YXJyYXlQcm90b0Z1bmNWYWx1ZXMgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAwCisgIGVudHJp
ZXMgICAgICAgIGFycmF5UHJvdG9GdW5jRW50cmllcyAgICAgICAgRG9udEVudW18RnVuY3Rpb24g
MAorICBrZXlzICAgICAgICAgICBhcnJheVByb3RvRnVuY0tleXMgICAgICAgICAgIERvbnRFbnVt
fEZ1bmN0aW9uIDAKIEBlbmQKICovCiAKQEAgLTEzMzEsNCArMTMzOCwyMiBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jTGFzdEluZGV4T2YoRXhlY1N0YXRlKiBl
eGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoLTEpKTsKIH0KIAorRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1ZhbHVlcyhFeGVjU3RhdGUq
IGV4ZWMpCit7CisgICAgSlNPYmplY3QqIHRoaXNPYmogPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCku
dG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpLnRvT2JqZWN0KGV4ZWMpOworICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoSlNBcnJheUl0ZXJhdG9yOjpjcmVhdGUoZXhlYywgZXhlYy0+Y2FsbGVlKCkt
Pmdsb2JhbE9iamVjdCgpLT5hcnJheUl0ZXJhdG9yU3RydWN0dXJlKCksIEFycmF5SXRlcmF0ZVZh
bHVlLCB0aGlzT2JqKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQ
cm90b0Z1bmNFbnRyaWVzKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU09iamVjdCogdGhpc09i
aiA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9kZSkudG9PYmpl
Y3QoZXhlYyk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0FycmF5SXRlcmF0b3I6OmNy
ZWF0ZShleGVjLCBleGVjLT5jYWxsZWUoKS0+Z2xvYmFsT2JqZWN0KCktPmFycmF5SXRlcmF0b3JT
dHJ1Y3R1cmUoKSwgQXJyYXlJdGVyYXRlS2V5VmFsdWUsIHRoaXNPYmopKTsKK30KKyAgICAKK0Vu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNLZXlzKEV4ZWNTdGF0ZSog
ZXhlYykKK3sKKyAgICBKU09iamVjdCogdGhpc09iaiA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKS50
b1RoaXMoZXhlYywgU3RyaWN0TW9kZSkudG9PYmplY3QoZXhlYyk7CisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShKU0FycmF5SXRlcmF0b3I6OmNyZWF0ZShleGVjLCBleGVjLT5jYWxsZWUoKS0+
Z2xvYmFsT2JqZWN0KCktPmFycmF5SXRlcmF0b3JTdHJ1Y3R1cmUoKSwgQXJyYXlJdGVyYXRlS2V5
LCB0aGlzT2JqKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKaW5kZXggNTQyMmM3YTRmOGI4
MGU2NDMyMmMxMzk0OGVkYWQyMDcxY2UwNDY1ZC4uZDg3ZDBiNDFiNDhjNjQ5ZmFkYjMwOWQ5ZDBi
OTA0MDY3N2ZkYTRlNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29tbW9uSWRlbnRpZmllcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
b21tb25JZGVudGlmaWVycy5oCkBAIC0yOSw2ICsyOSw3IEBACiAjZGVmaW5lIEpTQ19DT01NT05f
SURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKG1hY3JvKSBcCiAgICAgbWFjcm8oQXJyYXkp
IFwKICAgICBtYWNybyhBcnJheUJ1ZmZlcikgXAorICAgIG1hY3JvKEFycmF5SXRlcmF0b3IpIFwK
ICAgICBtYWNybyhCWVRFU19QRVJfRUxFTUVOVCkgXAogICAgIG1hY3JvKEJvb2xlYW4pIFwKICAg
ICBtYWNybyhEYXRlKSBcCkBAIC04MCw2ICs4MSw3IEBACiAgICAgbWFjcm8oZGVzY3JpcHRpb25z
KSBcCiAgICAgbWFjcm8oZGlzcGxheU5hbWUpIFwKICAgICBtYWNybyhkb2N1bWVudCkgXAorICAg
IG1hY3JvKGRvbmUpIFwKICAgICBtYWNybyhlbnVtZXJhYmxlKSBcCiAgICAgbWFjcm8oZXZhbCkg
XAogICAgIG1hY3JvKGV4ZWMpIFwKQEAgLTEwNiw2ICsxMDgsNyBAQAogICAgIG1hY3JvKG1lc3Nh
Z2UpIFwKICAgICBtYWNybyhtdWx0aWxpbmUpIFwKICAgICBtYWNybyhuYW1lKSBcCisgICAgbWFj
cm8obmV4dCkgXAogICAgIG1hY3JvKG5vdykgXAogICAgIG1hY3JvKG51bUlubGluZWRDYWxscykg
XAogICAgIG1hY3JvKG51bUlubGluZWRHZXRCeUlkcykgXApAQCAtMjA4LDYgKzIxMSw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBjb25zdCBJZGVudGlmaWVyIHVuZGVyc2NvcmVQcm90bzsK
ICAgICAgICAgY29uc3QgSWRlbnRpZmllciB0aGlzSWRlbnRpZmllcjsKICAgICAgICAgY29uc3Qg
SWRlbnRpZmllciB1c2VTdHJpY3RJZGVudGlmaWVyOworICAgICAgICBjb25zdCBQcml2YXRlTmFt
ZSBpdGVyYXRvclByaXZhdGVOYW1lOwogCiAgICAgICAgIAogI2RlZmluZSBKU0NfSURFTlRJRklF
Ul9ERUNMQVJFX0tFWVdPUkRfTkFNRV9HTE9CQUwobmFtZSkgY29uc3QgSWRlbnRpZmllciBuYW1l
IyNLZXl3b3JkOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRl
bnRpZmllci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllci5oCmlu
ZGV4IGQ0ZGIxMGJhYjA5MjlkZDhjMTg0OGQ2ZTQxNTQ2MGJiYjE1MTViZTQuLmJkMWVlY2M4Y2Ex
ZmRhMmI4NjQ5OGRmMDVhZmE0OTA0ODIxMjI2ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0lkZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JZGVudGlmaWVyLmgKQEAgLTYwLDYgKzYwLDExIEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICAKICAgICAgICAgQ1N0cmluZyBhc2NpaSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RyaW5n
LmFzY2lpKCk7IH0KICAgICAgICAgQ1N0cmluZyB1dGY4KCkgY29uc3QgeyByZXR1cm4gbV9zdHJp
bmcudXRmOCgpOyB9CisgICAgICAgIAorICAgICAgICBzdGF0aWMgSWRlbnRpZmllciBjcmVhdGVF
bXB0eVVuaXF1ZShWTSogdm0pCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBJZGVudGlm
aWVyKHZtLCBTdHJpbmcoU3RyaW5nSW1wbDo6Y3JlYXRlRW1wdHlVbmlxdWUoKSkpOworICAgICAg
ICB9CiAKICAgICAgICAgc3RhdGljIElkZW50aWZpZXIgY3JlYXRlTENoYXJGcm9tVUNoYXIoVk0q
IHZtLCBjb25zdCBVQ2hhciogcywgaW50IGxlbmd0aCkgeyByZXR1cm4gSWRlbnRpZmllcih2bSwg
YWRkOCh2bSwgcywgbGVuZ3RoKSk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBcnJheUl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQXJyYXlJdGVyYXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWE1OWYxZWM0ZmQxZjE3Yzgy
ODY3NGJjMGI0NzIyMDg0Y2JkNzNhYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQXJyYXlJdGVyYXRvci5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkpTQXJyYXlJdGVyYXRvci5oIgorCisjaW5jbHVkZSAiSlNDSlNW
YWx1ZUlubGluZXMuaCIKKyNpbmNsdWRlICJKU0NlbGxJbmxpbmVzLmgiCisKK25hbWVzcGFjZSBK
U0MgeworCitjb25zdCBDbGFzc0luZm8gSlNBcnJheUl0ZXJhdG9yOjpzX2luZm8gPSB7ICJBcnJh
eUl0ZXJhdG9yIiwgJkJhc2U6OnNfaW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0Fy
cmF5SXRlcmF0b3IpIH07CisKK3ZvaWQgSlNBcnJheUl0ZXJhdG9yOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiwgQXJyYXlJdGVyYXRpb25LaW5kIGtpbmQsIEpTT2JqZWN0
KiBpdGVyYXRlZE9iamVjdCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CisgICAg
bV9pdGVyYXRpb25LaW5kID0ga2luZDsKKyAgICBtX2l0ZXJhdGVkT2JqZWN0LnNldCh2bSwgdGhp
cywgaXRlcmF0ZWRPYmplY3QpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FycmF5SXRlcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQXJyYXlJdGVyYXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlZjA1NTc2MGVkZjg3YWZjZjE4
MzMyZDE2OTliNzc1NGI0Mjg2ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FycmF5SXRlcmF0b3IuaApAQCAtMCwwICsxLDg5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEpTQXJyYXlJ
dGVyYXRvcl9oCisjZGVmaW5lIEpTQXJyYXlJdGVyYXRvcl9oCisKKyNpbmNsdWRlICJKU09iamVj
dC5oIgorCituYW1lc3BhY2UgSlNDIHsKKworZW51bSBBcnJheUl0ZXJhdGlvbktpbmQgeworICAg
IEFycmF5SXRlcmF0ZUtleSwKKyAgICBBcnJheUl0ZXJhdGVWYWx1ZSwKKyAgICBBcnJheUl0ZXJh
dGVLZXlWYWx1ZSwKKyAgICBBcnJheUl0ZXJhdGVTcGFyc2VUYWcgPSA0LAorICAgIEFycmF5SXRl
cmF0ZVNwYXJzZUtleSwKKyAgICBBcnJheUl0ZXJhdGVTcGFyc2VWYWx1ZSwKKyAgICBBcnJheUl0
ZXJhdGVTcGFyc2VLZXlWYWx1ZQorfTsKKworY2xhc3MgSlNBcnJheUl0ZXJhdG9yIDogcHVibGlj
IEpTTm9uRmluYWxPYmplY3QgeworcHVibGljOgorICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVj
dCBCYXNlOworCisgICAgREVDTEFSRV9FWFBPUlRfSU5GTzsKKworICAgIHN0YXRpYyBTdHJ1Y3R1
cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgcHJvdG90eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIH0KKworICAgIHN0YXRpYyBKU0FycmF5SXRlcmF0
b3IqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBBcnJheUl0
ZXJhdGlvbktpbmQga2luZCwgSlNPYmplY3QqIGl0ZXJhdGVkT2JqZWN0KQorICAgIHsKKyAgICAg
ICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKKyAgICAgICAgSlNBcnJheUl0ZXJhdG9yKiBpbnN0YW5j
ZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEpTQXJyYXlJdGVyYXRvcj4odm0uaGVhcCkp
IEpTQXJyYXlJdGVyYXRvcih2bSwgc3RydWN0dXJlKTsKKyAgICAgICAgaW5zdGFuY2UtPmZpbmlz
aENyZWF0aW9uKHZtLCBzdHJ1Y3R1cmUtPmdsb2JhbE9iamVjdCgpLCBraW5kLCBpdGVyYXRlZE9i
amVjdCk7CisgICAgICAgIHJldHVybiBpbnN0YW5jZTsKKyAgICB9CisKKyAgICBBcnJheUl0ZXJh
dGlvbktpbmQgaXRlcmF0aW9uS2luZCgpIGNvbnN0IHsgcmV0dXJuIG1faXRlcmF0aW9uS2luZDsg
fQorICAgIEpTT2JqZWN0KiBpdGVyYXRlZE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1faXRlcmF0
ZWRPYmplY3QuZ2V0KCk7IH0KKyAgICBzaXplX3QgbmV4dEluZGV4KCkgY29uc3QgeyByZXR1cm4g
bV9uZXh0SW5kZXg7IH0KKyAgICB2b2lkIHNldE5leHRJbmRleChzaXplX3QgbmV4dEluZGV4KSB7
IG1fbmV4dEluZGV4ID0gbmV4dEluZGV4OyB9CisgICAgdm9pZCBmaW5pc2goKSB7IG1fbmV4dElu
ZGV4ID0gc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKTsgfQorICAgIAorICAgIHVz
aW5nIEpTTm9uRmluYWxPYmplY3Q6OmFycmF5U3RvcmFnZU9yTnVsbDsKKworcHJpdmF0ZToKKwor
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVy
ZUZsYWdzOworCisgICAgSlNBcnJheUl0ZXJhdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCisgICAgICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgICAgICAsIG1fbmV4dEluZGV4
KDApCisgICAgeworICAgIH0KKworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2Jh
bE9iamVjdCosIEFycmF5SXRlcmF0aW9uS2luZCwgSlNPYmplY3QqIGl0ZXJhdGVkT2JqZWN0KTsK
KyAgICAKKyAgICBBcnJheUl0ZXJhdGlvbktpbmQgbV9pdGVyYXRpb25LaW5kOworICAgIFdyaXRl
QmFycmllcjxKU09iamVjdD4gbV9pdGVyYXRlZE9iamVjdDsKKyAgICBzaXplX3QgbV9uZXh0SW5k
ZXg7Cit9OworCit9CisKKyNlbmRpZiAvLyAhZGVmaW5lZChKU0FycmF5SXRlcmF0b3JfaCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRl
eCBjZTg0MGIyMGMxYTBhM2Y4OTg5ZGRiMGY5NTVhODc0NGQ0ZDE1YzQ5Li45MmY1YWJhMWIxNTQ1
ZDUyOTNmY2U0NmNmNzhlZjRkYWEzY2UzZjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC0zMiw2ICszMiw4IEBACiAKICNpbmNs
dWRlICJBcmd1bWVudHMuaCIKICNpbmNsdWRlICJBcnJheUNvbnN0cnVjdG9yLmgiCisjaW5jbHVk
ZSAiQXJyYXlJdGVyYXRvckNvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSAiQXJyYXlJdGVyYXRvclBy
b3RvdHlwZS5oIgogI2luY2x1ZGUgIkFycmF5UHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiQm9vbGVh
bkNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiQm9vbGVhblByb3RvdHlwZS5oIgpAQCAtNTMsNiAr
NTUsNyBAQAogI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXIuaCIKICNpbmNsdWRlICJKU0FycmF5QnVm
ZmVyQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyUHJvdG90eXBlLmgiCisj
aW5jbHVkZSAiSlNBcnJheUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNCb3VuZEZ1bmN0aW9uLmgi
CiAjaW5jbHVkZSAiSlNDYWxsYmFja0NvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiSlNDYWxsYmFj
a0Z1bmN0aW9uLmgiCkBAIC0zODIsNyArMzg1LDEyIEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnJl
c2V0KEpTVmFsdWUgcHJvdG90eXBlKQogICAgIEZPUl9FQUNIX1NJTVBMRV9CVUlMVElOX1RZUEUo
UFVUX0NPTlNUUlVDVE9SX0ZPUl9TSU1QTEVfVFlQRSkKIAogI3VuZGVmIFBVVF9DT05TVFJVQ1RP
Ul9GT1JfU0lNUExFX1RZUEUKLQorICAgIFByb3RvdHlwZU1hcCYgcHJvdG90eXBlTWFwID0gdm0u
cHJvdG90eXBlTWFwOworICAgIFN0cnVjdHVyZSogaXRlcmF0b3JSZXN1bHRTdHJ1Y3R1cmUgPSBw
cm90b3R5cGVNYXAuZW1wdHlPYmplY3RTdHJ1Y3R1cmVGb3JQcm90b3R5cGUobV9vYmplY3RQcm90
b3R5cGUuZ2V0KCksIEpTRmluYWxPYmplY3Q6OmRlZmF1bHRJbmxpbmVDYXBhY2l0eSgpKTsKKyAg
ICBQcm9wZXJ0eU9mZnNldCBvZmZzZXQ7CisgICAgaXRlcmF0b3JSZXN1bHRTdHJ1Y3R1cmUgPSBT
dHJ1Y3R1cmU6OmFkZFByb3BlcnR5VHJhbnNpdGlvbih2bSwgaXRlcmF0b3JSZXN1bHRTdHJ1Y3R1
cmUsIHZtLnByb3BlcnR5TmFtZXMtPmRvbmUsIDAsIDAsIG9mZnNldCk7CisgICAgaXRlcmF0b3JS
ZXN1bHRTdHJ1Y3R1cmUgPSBTdHJ1Y3R1cmU6OmFkZFByb3BlcnR5VHJhbnNpdGlvbih2bSwgaXRl
cmF0b3JSZXN1bHRTdHJ1Y3R1cmUsIHZtLnByb3BlcnR5TmFtZXMtPnZhbHVlLCAwLCAwLCBvZmZz
ZXQpOworICAgIG1faXRlcmF0b3JSZXN1bHRTdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBpdGVyYXRv
clJlc3VsdFN0cnVjdHVyZSk7CiAKICAgICBtX2V2YWxGdW5jdGlvbi5zZXQodm0sIHRoaXMsIEpT
RnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwgdm0ucHJvcGVydHlOYW1lcy0+ZXZhbC5zdHJp
bmcoKSwgZ2xvYmFsRnVuY0V2YWwpKTsKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2
bSwgdm0ucHJvcGVydHlOYW1lcy0+ZXZhbCwgbV9ldmFsRnVuY3Rpb24uZ2V0KCksIERvbnRFbnVt
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmlu
ZGV4IDI3NGM5YmVlZThmOWEzMjU3MzNkMDk4ZmM4ZTlkODcwNjM5OGRlN2UuLmE2NWI5ZjUyOWY5
YzEzMzI5NDE3NmNkMzQ3MThhMTE4NzA2ZmRhNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtODEsNiArODEsNyBAQCBzdHJ1Y3QgSGFz
aFRhYmxlOwogICAgIG1hY3JvKEVycm9yLCBlcnJvciwgZXJyb3IsIEVycm9ySW5zdGFuY2UsIEVy
cm9yKSBcCiAgICAgbWFjcm8oSlNBcnJheUJ1ZmZlciwgYXJyYXlCdWZmZXIsIGFycmF5QnVmZmVy
LCBKU0FycmF5QnVmZmVyLCBBcnJheUJ1ZmZlcikgXAogICAgIG1hY3JvKFdlYWtNYXAsIHdlYWtN
YXAsIHdlYWtNYXAsIEpTV2Vha01hcCwgV2Vha01hcCkgXAorICAgIG1hY3JvKEFycmF5SXRlcmF0
b3IsIGFycmF5SXRlcmF0b3IsIGFycmF5SXRlcmF0b3IsIEpTQXJyYXlJdGVyYXRvciwgQXJyYXlJ
dGVyYXRvcikgXAogCiAjZGVmaW5lIERFQ0xBUkVfU0lNUExFX0JVSUxUSU5fVFlQRShjYXBpdGFs
TmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSkgXAogICAg
IGNsYXNzIEpTICMjIGNhcGl0YWxOYW1lOyBcCkBAIC0xOTQsNiArMTk1LDggQEAgcHJvdGVjdGVk
OgogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fcmVnRXhwTWF0Y2hlc0FycmF5U3RydWN0
dXJlOwogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fcmVnRXhwU3RydWN0dXJlOwogICAg
IFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1faW50ZXJuYWxGdW5jdGlvblN0cnVjdHVyZTsKKyAg
ICAKKyAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX2l0ZXJhdG9yUmVzdWx0U3RydWN0dXJl
OwogCiAjaWYgRU5BQkxFKFBST01JU0VTKQogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1f
cHJvbWlzZVN0cnVjdHVyZTsKQEAgLTQwMiw2ICs0MDUsNyBAQCBwdWJsaWM6CiAgICAgU3RydWN0
dXJlKiByZWdFeHBTdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX3JlZ0V4cFN0cnVjdHVyZS5n
ZXQoKTsgfQogICAgIFN0cnVjdHVyZSogc2V0U3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV9z
ZXRTdHJ1Y3R1cmUuZ2V0KCk7IH0KICAgICBTdHJ1Y3R1cmUqIHN0cmluZ09iamVjdFN0cnVjdHVy
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RyaW5nT2JqZWN0U3RydWN0dXJlLmdldCgpOyB9CisgICAg
U3RydWN0dXJlKiBpdGVyYXRvclJlc3VsdFN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1faXRl
cmF0b3JSZXN1bHRTdHJ1Y3R1cmUuZ2V0KCk7IH0KIAogI2lmIEVOQUJMRShQUk9NSVNFUykKICAg
ICBTdHJ1Y3R1cmUqIHByb21pc2VTdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX3Byb21pc2VT
dHJ1Y3R1cmUuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhM2NlMmM3MzcwMTM2MDI3MmVhNmY0NDFjN2JmNDBh
ZjcwZTNjODQzLi44OGUwZjZlNDMxMWUwMzdiODMxYWM2ZDljNTA1YzEwYzZiN2M4MzgxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTggQEAKKzIwMTMtMTAtMDEgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxl
LmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQXJyYXkga2V5LCB2YWx1ZSBhbmQgZW50cmllcyBp
dGVyYXRvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyMjE5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCB0ZXN0cworCisgICAgICAgICoganMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGpzL2FycmF5LWl0ZXJhdG9ycy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGpzL2FycmF5LWl0ZXJhdG9ycy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBqcy9zY3JpcHQtdGVzdHMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMuanM6CisgICAgICAg
ICoganMvc2NyaXB0LXRlc3RzL2FycmF5LWl0ZXJhdG9ycy5qczogQWRkZWQuCisKIDIwMTMtMDkt
MjUgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQg
cHJlZml4ZWQtZGVzdHJ1Y3R1cmluZyBhc3NpZ25tZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9qcy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy1leHBlY3RlZC50eHQKaW5kZXggNDgxNGVi
NzIwNDVkODFmZTM1N2I0ZTBjMDgzYzI5MzE3YjIyOWEzMi4uOWVkZDA2NjRjNDE0OGQyYjQ1NWNm
Y2ZjMDc4NDZlYTdiZDMzMGVjZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvT2JqZWN0LWdl
dE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL09iamVj
dC1nZXRPd25Qcm9wZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dApAQCAtNDUsNyArNDUsNyBAQCBQQVNT
IGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoT2JqZWN0LnByb3RvdHlwZSkgaXMgWydfX2RlZmlu
ZUdldHRlcl9fJywgJ19fZGVmaQogUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKEZ1bmN0
aW9uKSBpcyBbJ2xlbmd0aCcsICduYW1lJywgJ3Byb3RvdHlwZSddCiBQQVNTIGdldFNvcnRlZE93
blByb3BlcnR5TmFtZXMoRnVuY3Rpb24ucHJvdG90eXBlKSBpcyBbJ2FwcGx5JywgJ2JpbmQnLCAn
Y2FsbCcsICdjb25zdHJ1Y3RvcicsICdsZW5ndGgnLCAnbmFtZScsICd0b1N0cmluZyddCiBQQVNT
IGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoQXJyYXkpIGlzIFsnaXNBcnJheScsICdsZW5ndGgn
LCAnbmFtZScsICdwcm90b3R5cGUnXQotUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKEFy
cmF5LnByb3RvdHlwZSkgaXMgWydjb25jYXQnLCAnY29uc3RydWN0b3InLCAnZXZlcnknLCAnZmls
dGVyJywgJ2ZvckVhY2gnLCAnaW5kZXhPZicsICdqb2luJywgJ2xhc3RJbmRleE9mJywgJ2xlbmd0
aCcsICdtYXAnLCAncG9wJywgJ3B1c2gnLCAncmVkdWNlJywgJ3JlZHVjZVJpZ2h0JywgJ3JldmVy
c2UnLCAnc2hpZnQnLCAnc2xpY2UnLCAnc29tZScsICdzb3J0JywgJ3NwbGljZScsICd0b0xvY2Fs
ZVN0cmluZycsICd0b1N0cmluZycsICd1bnNoaWZ0J10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVy
dHlOYW1lcyhBcnJheS5wcm90b3R5cGUpIGlzIFsnY29uY2F0JywgJ2NvbnN0cnVjdG9yJywgJ2Vu
dHJpZXMnLCAnZXZlcnknLCAnZmlsdGVyJywgJ2ZvckVhY2gnLCAnaW5kZXhPZicsICdqb2luJywg
J2tleXMnLCAnbGFzdEluZGV4T2YnLCAnbGVuZ3RoJywgJ21hcCcsICdwb3AnLCAncHVzaCcsICdy
ZWR1Y2UnLCAncmVkdWNlUmlnaHQnLCAncmV2ZXJzZScsICdzaGlmdCcsICdzbGljZScsICdzb21l
JywgJ3NvcnQnLCAnc3BsaWNlJywgJ3RvTG9jYWxlU3RyaW5nJywgJ3RvU3RyaW5nJywgJ3Vuc2hp
ZnQnLCAndmFsdWVzJ10KIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhTdHJpbmcpIGlz
IFsnZnJvbUNoYXJDb2RlJywgJ2xlbmd0aCcsICduYW1lJywgJ3Byb3RvdHlwZSddCiBQQVNTIGdl
dFNvcnRlZE93blByb3BlcnR5TmFtZXMoU3RyaW5nLnByb3RvdHlwZSkgaXMgWydhbmNob3InLCAn
YmlnJywgJ2JsaW5rJywgJ2JvbGQnLCAnY2hhckF0JywgJ2NoYXJDb2RlQXQnLCAnY29uY2F0Jywg
J2NvbnN0cnVjdG9yJywgJ2ZpeGVkJywgJ2ZvbnRjb2xvcicsICdmb250c2l6ZScsICdpbmRleE9m
JywgJ2l0YWxpY3MnLCAnbGFzdEluZGV4T2YnLCAnbGVuZ3RoJywgJ2xpbmsnLCAnbG9jYWxlQ29t
cGFyZScsICdtYXRjaCcsICdyZXBsYWNlJywgJ3NlYXJjaCcsICdzbGljZScsICdzbWFsbCcsICdz
cGxpdCcsICdzdHJpa2UnLCAnc3ViJywgJ3N1YnN0cicsICdzdWJzdHJpbmcnLCAnc3VwJywgJ3Rv
TG9jYWxlTG93ZXJDYXNlJywgJ3RvTG9jYWxlVXBwZXJDYXNlJywgJ3RvTG93ZXJDYXNlJywgJ3Rv
U3RyaW5nJywgJ3RvVXBwZXJDYXNlJywgJ3RyaW0nLCAndHJpbUxlZnQnLCAndHJpbVJpZ2h0Jywg
J3ZhbHVlT2YnXQogUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKEJvb2xlYW4pIGlzIFsn
bGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pz
L2FycmF5LWl0ZXJhdG9ycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9hcnJheS1pdGVy
YXRvcnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4MTllYzBmNWRkMjhiNDVkYjM3YTQ4Mjgz
NGY3NjYzYWZkMTEyOWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9hcnJheS1p
dGVyYXRvcnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNjUgQEAKK1RoaXMgdGVzdCBjaGVja3Mg
dGhlIGJlaGF2aW9yIG9mIHRoZSBpdGVyYXRvciBtZXRob2RzIG9uIEFycmF5IG9iamVjdHMuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGtleSBpcyAwCitQQVNTIGtleSBp
cyAxCitQQVNTIGtleSBpcyAyCitQQVNTIGtleSBpcyAzCitQQVNTIGtleSBpcyA0CitQQVNTIGtl
eSBpcyA1CitQQVNTIHRlc3RBcnJheS5sZW5ndGggaXMgNgorUEFTUyBrZXlzLm5leHQoKS52YWx1
ZSBpcyB1bmRlZmluZWQuCitQQVNTIHZhbHVlIGlzIDEKK1BBU1MgdmFsdWUgaXMgMgorUEFTUyB2
YWx1ZSBpcyAzCitQQVNTIHZhbHVlIGlzIDQKK1BBU1MgdmFsdWUgaXMgNQorUEFTUyB2YWx1ZSBp
cyA2CitQQVNTIHRlc3RBcnJheS5sZW5ndGggaXMgNgorUEFTUyB2YWx1ZXMubmV4dCgpLnZhbHVl
IGlzIHVuZGVmaW5lZC4KK1BBU1MgdmFsdWUgaXMgdGVzdEFycmF5W2tleV0KK1BBU1Mga2V5IGlz
IDAKK1BBU1MgdmFsdWUgaXMgMQorUEFTUyB2YWx1ZSBpcyB0ZXN0QXJyYXlba2V5XQorUEFTUyBr
ZXkgaXMgMQorUEFTUyB2YWx1ZSBpcyAyCitQQVNTIHZhbHVlIGlzIHRlc3RBcnJheVtrZXldCitQ
QVNTIGtleSBpcyAyCitQQVNTIHZhbHVlIGlzIDMKK1BBU1MgdmFsdWUgaXMgdGVzdEFycmF5W2tl
eV0KK1BBU1Mga2V5IGlzIDMKK1BBU1MgdmFsdWUgaXMgNAorUEFTUyB2YWx1ZSBpcyB0ZXN0QXJy
YXlba2V5XQorUEFTUyBrZXkgaXMgNAorUEFTUyB2YWx1ZSBpcyA1CitQQVNTIHZhbHVlIGlzIHRl
c3RBcnJheVtrZXldCitQQVNTIGtleSBpcyA1CitQQVNTIHZhbHVlIGlzIDYKK1BBU1MgdGVzdEFy
cmF5Lmxlbmd0aCBpcyA2CitQQVNTIGVudHJpZXMubmV4dCgpLnZhbHVlIGlzIHVuZGVmaW5lZC4K
K1BBU1MgdmFsdWUgaXMgdGVzdEFycmF5W2tleV0KK1BBU1Mga2V5IGlzIGkKK1BBU1MgdmFsdWUg
aXMgdGVzdEFycmF5W2tleV0KK1BBU1Mga2V5IGlzIGkKK1BBU1MgdmFsdWUgaXMgdGVzdEFycmF5
W2tleV0KK1BBU1Mga2V5IGlzIGkKK1BBU1MgdmFsdWUgaXMgdGVzdEFycmF5W2tleV0KK1BBU1Mg
a2V5IGlzIGkKK1BBU1MgdmFsdWUgaXMgdGVzdEFycmF5W2tleV0KK1BBU1Mga2V5IGlzIGkKK1BB
U1MgdmFsdWUgaXMgdGVzdEFycmF5W2tleV0KK1BBU1Mga2V5IGlzIGkKK1BBU1MgdmFsdWUgaXMg
dGVzdEFycmF5W2tleV0KK1BBU1Mga2V5IGlzIGkKK1BBU1MgdmFsdWUgaXMgdGVzdEFycmF5W2tl
eV0KK1BBU1Mga2V5IGlzIGkKK1BBU1MgdmFsdWUgaXMgdGVzdEFycmF5W2tleV0KK1BBU1Mga2V5
IGlzIGkKK1BBU1MgdGVzdEFycmF5Lmxlbmd0aCBpcyA5CitQQVNTIGVudHJpZXMubmV4dCgpLnZh
bHVlIGlzIHVuZGVmaW5lZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9hcnJheS1pdGVyYXRvcnMu
aHRtbCBiL0xheW91dFRlc3RzL2pzL2FycmF5LWl0ZXJhdG9ycy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjll
ZTY2NGJlOWUzOTkwZjBmYzI0YjNmMjEzOWU0NGE3ZDAxMTMyODgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9hcnJheS1pdGVyYXRvcnMuaHRtbApAQCAtMCwwICsxLDEwIEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJyYXktaXRlcmF0
b3JzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL3NjcmlwdC10ZXN0cy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy5qcyBiL0xheW91dFRl
c3RzL2pzL3NjcmlwdC10ZXN0cy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy5qcwppbmRleCA0
M2RmNDE3NmY2ZTg5ZjVlN2I3OWMwMmI0MzYyOTY1ZWZhODM1MmU2Li4wZjUzNzBiOWJjZDBiYzQ2
NjIwMmFlYmZkY2RiOTI2NTQzY2UzZGJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9zY3Jp
cHQtdGVzdHMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMuanMKKysrIGIvTGF5b3V0VGVzdHMv
anMvc2NyaXB0LXRlc3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzCkBAIC01Myw3ICs1
Myw3IEBAIHZhciBleHBlY3RlZFByb3BlcnR5TmFtZXNTZXQgPSB7CiAgICAgIkZ1bmN0aW9uIjog
IlsnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10iLAogICAgICJGdW5jdGlvbi5wcm90b3R5
cGUiOiAiWydhcHBseScsICdiaW5kJywgJ2NhbGwnLCAnY29uc3RydWN0b3InLCAnbGVuZ3RoJywg
J25hbWUnLCAndG9TdHJpbmcnXSIsCiAgICAgIkFycmF5IjogIlsnaXNBcnJheScsICdsZW5ndGgn
LCAnbmFtZScsICdwcm90b3R5cGUnXSIsCi0gICAgIkFycmF5LnByb3RvdHlwZSI6ICJbJ2NvbmNh
dCcsICdjb25zdHJ1Y3RvcicsICdldmVyeScsICdmaWx0ZXInLCAnZm9yRWFjaCcsICdpbmRleE9m
JywgJ2pvaW4nLCAnbGFzdEluZGV4T2YnLCAnbGVuZ3RoJywgJ21hcCcsICdwb3AnLCAncHVzaCcs
ICdyZWR1Y2UnLCAncmVkdWNlUmlnaHQnLCAncmV2ZXJzZScsICdzaGlmdCcsICdzbGljZScsICdz
b21lJywgJ3NvcnQnLCAnc3BsaWNlJywgJ3RvTG9jYWxlU3RyaW5nJywgJ3RvU3RyaW5nJywgJ3Vu
c2hpZnQnXSIsCisgICAgIkFycmF5LnByb3RvdHlwZSI6ICJbJ2NvbmNhdCcsICdjb25zdHJ1Y3Rv
cicsICdlbnRyaWVzJywgJ2V2ZXJ5JywgJ2ZpbHRlcicsICdmb3JFYWNoJywgJ2luZGV4T2YnLCAn
am9pbicsICdrZXlzJywgJ2xhc3RJbmRleE9mJywgJ2xlbmd0aCcsICdtYXAnLCAncG9wJywgJ3B1
c2gnLCAncmVkdWNlJywgJ3JlZHVjZVJpZ2h0JywgJ3JldmVyc2UnLCAnc2hpZnQnLCAnc2xpY2Un
LCAnc29tZScsICdzb3J0JywgJ3NwbGljZScsICd0b0xvY2FsZVN0cmluZycsICd0b1N0cmluZycs
ICd1bnNoaWZ0JywgJ3ZhbHVlcyddIiwKICAgICAiU3RyaW5nIjogIlsnZnJvbUNoYXJDb2RlJywg
J2xlbmd0aCcsICduYW1lJywgJ3Byb3RvdHlwZSddIiwKICAgICAiU3RyaW5nLnByb3RvdHlwZSI6
ICJbJ2FuY2hvcicsICdiaWcnLCAnYmxpbmsnLCAnYm9sZCcsICdjaGFyQXQnLCAnY2hhckNvZGVB
dCcsICdjb25jYXQnLCAnY29uc3RydWN0b3InLCAnZml4ZWQnLCAnZm9udGNvbG9yJywgJ2ZvbnRz
aXplJywgJ2luZGV4T2YnLCAnaXRhbGljcycsICdsYXN0SW5kZXhPZicsICdsZW5ndGgnLCAnbGlu
aycsICdsb2NhbGVDb21wYXJlJywgJ21hdGNoJywgJ3JlcGxhY2UnLCAnc2VhcmNoJywgJ3NsaWNl
JywgJ3NtYWxsJywgJ3NwbGl0JywgJ3N0cmlrZScsICdzdWInLCAnc3Vic3RyJywgJ3N1YnN0cmlu
ZycsICdzdXAnLCAndG9Mb2NhbGVMb3dlckNhc2UnLCAndG9Mb2NhbGVVcHBlckNhc2UnLCAndG9M
b3dlckNhc2UnLCAndG9TdHJpbmcnLCAndG9VcHBlckNhc2UnLCAndHJpbScsICd0cmltTGVmdCcs
ICd0cmltUmlnaHQnLCAndmFsdWVPZiddIiwKICAgICAiQm9vbGVhbiI6ICJbJ2xlbmd0aCcsICdu
YW1lJywgJ3Byb3RvdHlwZSddIiwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10
ZXN0cy9hcnJheS1pdGVyYXRvcnMuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvYXJy
YXktaXRlcmF0b3JzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjY2I3ODkzODg5MjE0MmY5YmMzMjcwYmI0MGE1
NmNjZWVkMTg4OGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVz
dHMvYXJyYXktaXRlcmF0b3JzLmpzCkBAIC0wLDAgKzEsNzYgQEAKK2Rlc2NyaXB0aW9uKAorIlRo
aXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBpdGVyYXRvciBtZXRob2RzIG9uIEFy
cmF5IG9iamVjdHMuIgorKTsKKworCit2YXIgdGVzdEFycmF5ID0gWzEsMiwzLDQsNSw2XQordmFy
IGtleXMgPSB0ZXN0QXJyYXkua2V5cygpOwordmFyIGkgPSAwOword2hpbGUgKHRydWUpIHsKKyAg
ICB2YXIge2RvbmUsIHZhbHVlOiBrZXl9ID0ga2V5cy5uZXh0KCk7CisgICAgaWYgKGRvbmUpCisg
ICAgICAgIGJyZWFrOworICAgIHNob3VsZEJlKCJrZXkiLCBTdHJpbmcoaSkpCisgICAgaSsrOwor
fQorCitzaG91bGRCZSgidGVzdEFycmF5Lmxlbmd0aCIsIFN0cmluZyhpKSkKKworc2hvdWxkQmVV
bmRlZmluZWQoImtleXMubmV4dCgpLnZhbHVlIikKKwordmFyIHZhbHVlcyA9IHRlc3RBcnJheS52
YWx1ZXMoKTsKK3ZhciBpID0gMDsKK3doaWxlICh0cnVlKSB7CisgICAgdmFyIHtkb25lLCB2YWx1
ZX0gPSB2YWx1ZXMubmV4dCgpOworICAgIGlmIChkb25lKQorICAgICAgICBicmVhazsKKyAgICBp
Kys7CisgICAgc2hvdWxkQmUoInZhbHVlIiwgU3RyaW5nKGkpICkKK30KKworc2hvdWxkQmUoInRl
c3RBcnJheS5sZW5ndGgiLCBTdHJpbmcoaSkpCisKK3Nob3VsZEJlVW5kZWZpbmVkKCJ2YWx1ZXMu
bmV4dCgpLnZhbHVlIikKKwordmFyIGVudHJpZXMgPSB0ZXN0QXJyYXkuZW50cmllcygpOwordmFy
IGkgPSAwOworZG8geworICAgIHZhciB7ZG9uZSwgdmFsdWU6IGVudHJ5fSA9IGVudHJpZXMubmV4
dCgpOworICAgIGlmIChkb25lKQorICAgICAgICBicmVhazsKKyAgICB2YXIgW2tleSwgdmFsdWVd
ID0gZW50cnk7CisgICAgc2hvdWxkQmUoInZhbHVlIiwgInRlc3RBcnJheVtrZXldIikKKyAgICBz
aG91bGRCZSgia2V5IiwgU3RyaW5nKGkpKQorICAgIGkrKworICAgIHNob3VsZEJlKCJ2YWx1ZSIs
IFN0cmluZyhpKSkKK30gd2hpbGUgKCFkb25lKTsKKworc2hvdWxkQmUoInRlc3RBcnJheS5sZW5n
dGgiLCBTdHJpbmcoaSkpCisKK3Nob3VsZEJlVW5kZWZpbmVkKCJlbnRyaWVzLm5leHQoKS52YWx1
ZSIpCisKKworCit2YXIgZW50cmllcyA9IHRlc3RBcnJheS5lbnRyaWVzKCk7Cit2YXIgaSA9IDA7
CitkbyB7CisgICAgdmFyIHtkb25lLCB2YWx1ZTogZW50cnl9ID0gZW50cmllcy5uZXh0KCk7Cisg
ICAgaWYgKGRvbmUpCisgICAgICAgIGJyZWFrOworICAgIHZhciBba2V5LCB2YWx1ZV0gPSBlbnRy
eTsKKyAgICBzaG91bGRCZSgidmFsdWUiLCAidGVzdEFycmF5W2tleV0iKQorICAgIHNob3VsZEJl
KCJrZXkiLCAiaSIpCisgICAgaSsrCisgICAgaWYgKGkgJSAyID09IDApCisgICAgICAgIHRlc3RB
cnJheVtpXSAqPSAyOworICAgIGlmIChpIDwgNCkKKyAgICAgICAgdGVzdEFycmF5LnB1c2godGVz
dEFycmF5Lmxlbmd0aCkKKyAgICBpZiAoaSA9PSA0KQorICAgICAgICBkZWxldGUgdGVzdEFycmF5
WzRdCisgICAgaWYgKGkgPT0gNSkKKyAgICAgICAgdGVzdEFycmF5WzRdID0gNQorfSB3aGlsZSAo
IWRvbmUpOworc2hvdWxkQmUoInRlc3RBcnJheS5sZW5ndGgiLCBTdHJpbmcoaSkpCisKK3Nob3Vs
ZEJlVW5kZWZpbmVkKCJlbnRyaWVzLm5leHQoKS52YWx1ZSIpCisK
</data>
<flag name="review"
          id="235519"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>