<?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>83655</bug_id>
          
          <creation_ts>2012-04-10 19:28:06 -0700</creation_ts>
          <short_desc>Delete CanvasPixelArray, ByteArray, JSByteArray and JSC code once unreferenced</short_desc>
          <delta_ts>2012-04-25 15:12:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</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>
          <dependson>73011</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Russell">kbr</reporter>
          <assigned_to name="Kenneth Russell">kbr</assigned_to>
          <cc>abarth</cc>
    
    <cc>fpizlo</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>noam</cc>
    
    <cc>ojan</cc>
    
    <cc>oliver</cc>
    
    <cc>rakuco</cc>
    
    <cc>vestbo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zmo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>599941</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-04-10 19:28:06 -0700</bug_when>
    <thetext>Once https://bugs.webkit.org/show_bug.cgi?id=73011 is fixed, ByteArray, JSByteArray and a bunch of JSC code dealing with CanvasPixelArray will be unreferenced and can be deleted. This is being separated out from the cutover in order to keep the sizes of the patches manageable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609896</commentid>
    <comment_count>1</comment_count>
      <attachid>138842</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-04-25 10:47:38 -0700</bug_when>
    <thetext>Created attachment 138842
Patch for EWS bots</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609907</commentid>
    <comment_count>2</comment_count>
      <attachid>138842</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-04-25 10:57:48 -0700</bug_when>
    <thetext>Comment on attachment 138842
Patch for EWS bots

Attachment 138842 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12517642</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609942</commentid>
    <comment_count>3</comment_count>
      <attachid>138842</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-04-25 11:46:27 -0700</bug_when>
    <thetext>Comment on attachment 138842
Patch for EWS bots

Attachment 138842 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12521598</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610001</commentid>
    <comment_count>4</comment_count>
      <attachid>138867</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-04-25 13:26:10 -0700</bug_when>
    <thetext>Created attachment 138867
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610003</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-04-25 13:26:52 -0700</bug_when>
    <thetext>Here&apos;s the patch. I&apos;m quite pleased with the amount of code that was able to be deleted. Please review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610031</commentid>
    <comment_count>6</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-04-25 14:02:23 -0700</bug_when>
    <thetext>Thanks for not leaving the qt ews red!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610044</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-04-25 14:23:13 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Thanks for not leaving the qt ews red!

Of course of course!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610078</commentid>
    <comment_count>8</comment_count>
      <attachid>138867</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-25 15:12:10 -0700</bug_when>
    <thetext>Comment on attachment 138867
Patch

Clearing flags on attachment: 138867

Committed r115248: &lt;http://trac.webkit.org/changeset/115248&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610079</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-25 15:12:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138842</attachid>
            <date>2012-04-25 10:47:38 -0700</date>
            <delta_ts>2012-04-25 13:26:00 -0700</delta_ts>
            <desc>Patch for EWS bots</desc>
            <filename>bug-83655-20120425104737.patch</filename>
            <type>text/plain</type>
            <size>125455</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1MjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
MzI5YzIxNWFiMmE5MDNhNjFhNTM5Y2RlMDAyNDU3MjhiMmVhMTQ0Li5hOWE2YzQ1NmYwOWU1YTY3
ZmY2OTA5ZmIzY2UwYjhhMjk4NDljN2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MSBAQAorMjAxMi0wNC0yNSAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+
CisKKyAgICAgICAgRGVsZXRlIENhbnZhc1BpeGVsQXJyYXksIEJ5dGVBcnJheSwgSlNCeXRlQXJy
YXkgYW5kIEpTQyBjb2RlIG9uY2UgdW5yZWZlcmVuY2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzY1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5neXBpOgorICAgICAg
ICAqIEphdmFTY3JpcHRDb3JlLm9yZGVyOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJv
ai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWY6CisgICAgICAgICogSmF2YVNjcmlw
dENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvajoKKyAgICAg
ICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFRhcmdldC5wcmk6CisgICAgICAgICogYnl0ZWNvZGUvUHJlZGljdGVkVHlwZS5jcHA6CisgICAg
ICAgIChKU0M6OnByZWRpY3Rpb25Ub1N0cmluZyk6CisgICAgICAgIChKU0M6OnByZWRpY3Rpb25U
b0FiYnJldmlhdGVkU3RyaW5nKToKKyAgICAgICAgKEpTQzo6cHJlZGljdGlvbkZyb21DbGFzc0lu
Zm8pOgorICAgICAgICAqIGJ5dGVjb2RlL1ByZWRpY3RlZFR5cGUuaDoKKyAgICAgICAgKEpTQyk6
CisgICAgICAgIChKU0M6OmlzQWN0aW9uYWJsZUludE11dGFibGVBcnJheVByZWRpY3Rpb24pOgor
ICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpB
YnN0cmFjdFN0YXRlOjppbml0aWFsaXplKToKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdFN0
YXRlOjpleGVjdXRlKToKKyAgICAgICAgKiBkZmcvREZHQ1NFUGhhc2UuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OkNTRVBoYXNlOjpwZXJmb3JtTm9kZUNTRSk6CisgICAgICAgICogZGZnL0RGR0Zp
eHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6
CisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUuaDoK
KyAgICAgICAgKERGRyk6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OnB1dEJ5VmFsKToKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3Bh
Z2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlByZWRpY3Rpb25Qcm9wYWdhdGlv
blBoYXNlOjpwcm9wYWdhdGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNoZWNrQXJndW1lbnRUeXBlcyk6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRJbmRleGVkUHJv
cGVydHlTdG9yYWdlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAg
ICAgKEpTQzo6REZHOjpWYWx1ZVNvdXJjZTo6Zm9yUHJlZGljdGlvbik6CisgICAgICAgIChTcGVj
dWxhdGl2ZUpJVCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBk
ZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmNwcDoK
KyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OnByaXZhdGVFeGVjdXRlKToKKyAgICAgICAgKiBq
aXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpERUZJTkVfU1RVQl9GVU5DVElPTik6Cisg
ICAgICAgICogaml0L0pJVFN0dWJzLmg6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMu
Y3BwOgorICAgICAgICAoSlNDOjpMTEludDo6Z2V0QnlWYWwpOgorICAgICAgICAoSlNDOjpMTElu
dDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXku
Y3BwOiBSZW1vdmVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuaDogUmVtb3ZlZC4K
KyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsRGF0YS5jcHA6CisKIDIwMTItMDQtMjUgIE1pY2hh
ZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xvc3VyZSBpbiB0cnkg
e30gd2l0aCBjYXRjaCBjYXB0dXJlcyBhbGwgbG9jYWxzIGZyb20gdGhlIGVuY2xvc2luZyBmdW5j
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZwppbmRleCAzNmJiNTE5NDNhZmQ1OTEyZGVhOGQxZTVkYmFlMjk5OTJkZGI5YTc3Li5lNDVm
MTgxNzE0ZTM4NDc3ZGI0MmE2NTExMmM5OGI3YmJhNDhiMjgyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBA
CisyMDEyLTA0LTI1ICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KKworICAgICAg
ICBEZWxldGUgQ2FudmFzUGl4ZWxBcnJheSwgQnl0ZUFycmF5LCBKU0J5dGVBcnJheSBhbmQgSlND
IGNvZGUgb25jZSB1bnJlZmVyZW5jZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTgzNjU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdURi5neXBp
OgorICAgICAgICAqIFdURi5wcm86CisgICAgICAgICogV1RGLnZjcHJvai9XVEYudmNwcm9qOgor
ICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0Zi9C
eXRlQXJyYXkuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHd0Zi9CeXRlQXJyYXkuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6CisKIDIwMTItMDQtMjUgIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFdlYmtpdCBidWlsZCBm
YWlscyBkdWUgdG8gbWlzc2luZyBnc3RyZWFtZXIgaW5jbHVkZSBmaWxlIG9uIEt1YnVudHUgOC4w
NApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGU2OGMyYTg4MDJjYjUxMDMzMGE3ZWZkMTI2MWY1NTJlMWJkY2YwODQu
LjNmYjcyYWFlNTdiYzFmM2JhZGQzMjk2OWQ1Y2Q0M2ViYzkyN2ZmNGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw0OSBAQAorMjAxMi0wNC0yNSAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5j
b20+CisKKyAgICAgICAgRGVsZXRlIENhbnZhc1BpeGVsQXJyYXksIEJ5dGVBcnJheSwgSlNCeXRl
QXJyYXkgYW5kIEpTQyBjb2RlIG9uY2UgdW5yZWZlcmVuY2VkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzY1NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQgbGFzdCBmZXcgcmVmZXJlbmNlcyB0
byBCeXRlQXJyYXksIHJlcGxhY2luZyB3aXRoCisgICAgICAgIFVpbnQ4Q2xhbXBlZEFycmF5IGFz
IG5lY2Vzc2FyeSwgYW5kIGRlbGV0ZWQgbm93LW9ic29sZXRlCisgICAgICAgIENhbnZhc1BpeGVs
QXJyYXksIEJ5dGVBcnJheSBhbmQgSlNCeXRlQXJyYXkuIFJlbW92ZWQgY29kZSBmcm9tCisgICAg
ICAgIEphdmFTY3JpcHRDb3JlIHNwZWNpYWwtY2FzaW5nIEJ5dGVBcnJheS4KKworICAgICAgICBO
byBuZXcgdGVzdHMuIERpZCBmdWxsIGxheW91dCB0ZXN0IHJ1biBvbiBNYWMgT1M7IG5vIHJlZ3Jl
c3Npb25zCisgICAgICAgIHNlZW4gZnJvbSB0aGlzIGNoYW5nZS4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLnByaToKKyAgICAgICAgKiBGb3J3
YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTQnl0ZUFycmF5Lmg6IFJlbW92ZWQuCisgICAgICAgICog
R05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBQbGF0Zm9ybUJsYWNrQmVycnkuY21ha2U6
CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBVc2VWOC5jbWFrZToKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5vcmRlcjoKKyAgICAgICAgKiBXZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOEJpbmRpbmcuaDoKKyAgICAgICAgKFdl
YkNvcmU6OmlzSG9zdE9iamVjdCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q2Fu
dmFzUGl4ZWxBcnJheUN1c3RvbS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlY4SW5qZWN0ZWRTY3JpcHRIb3N0Ojp0eXBlQ2FsbGJhY2spOgorICAgICAgICAqIGJyaWRnZS9x
dC9xdF9ydW50aW1lLmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmlzSlNVaW50OENsYW1w
ZWRBcnJheSk6CisgICAgICAgIChCaW5kaW5ncyk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjp2
YWx1ZVJlYWxUeXBlKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmNvbnZlcnRWYWx1ZVRvUVZh
cmlhbnQpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6Y29udmVydFFWYXJpYW50VG9WYWx1ZSk6
CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUGl4ZWxBcnJheS5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUGl4ZWxBcnJheS5oOiBSZW1vdmVkLgorICAgICAg
ICAqIGh0bWwvY2FudmFzL0NhbnZhc1BpeGVsQXJyYXkuaWRsOiBSZW1vdmVkLgorICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXgu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcDoK
KwogMjAxMi0wNC0yNSAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJFR1JFU1NJT04gKHIxMDAzMTEpOiBZdW1teVNvdXAgYXBwIGNyYXNoZXMgd2hlbiB0cnlp
bmcgdG8gcHJpbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA1YzM2ZWMz
OTVkZGRlOWE0OGJjNWZmZTQ4OWVlN2ViNzYzM2FiNmU5Li5hY2M2NTk4YmZjNWRkYWIzZDIyMzRh
ZTFjMGYyMzQwOTkzZWMyNjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBA
IC0xNjYsNyArMTY2LDYgQEAgU0VUKEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBydW50aW1l
L0pTQWN0aXZhdGlvbi5jcHAKICAgICBydW50aW1lL0pTQVBJVmFsdWVXcmFwcGVyLmNwcAogICAg
IHJ1bnRpbWUvSlNBcnJheS5jcHAKLSAgICBydW50aW1lL0pTQnl0ZUFycmF5LmNwcAogICAgIHJ1
bnRpbWUvSlNDZWxsLmNwcAogICAgIHJ1bnRpbWUvSlNEYXRlTWF0aC5jcHAKICAgICBydW50aW1l
L0pTRnVuY3Rpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CmluZGV4IGQ4ZTU4OTg5OWIxNTIzMWVhZmNjMTkwN2Y0OTI5NjI4MDBjNjI0NTcuLjljNTg2NDFh
ZWU3MmE1MjU1NmU4NWEyNDQxOTNiOTg2Y2M5ODU5MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC00NTAsOCArNDUwLDYgQEAgamF2YXNjcmlwdGNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBUElWYWx1ZVdy
YXBwZXIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAgXAog
CVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaCBcCi0JU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0J5dGVBcnJheS5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NlbGwuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaCBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRlTWF0aC5jcHAgXApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQppbmRleCA4ZWFjMjA4ZmU1MjYyNzBl
NjUzNDhmMTU1ZjkwYTA0Yzg5YzY4NTgzLi5lNzU4YmIyMzE1ZTNjYmEzMDdmZDljYWM1NjUzNjk0
ZWJmMzBlNzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUuZ3lwaQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQpA
QCAtMjQyLDcgKzI0Miw2IEBACiAgICAgICAgICAgICAncnVudGltZS9KU0FQSVZhbHVlV3JhcHBl
ci5oJywKICAgICAgICAgICAgICdydW50aW1lL0pTQXJyYXkuaCcsCiAgICAgICAgICAgICAncnVu
dGltZS9KU0JvdW5kRnVuY3Rpb24uaCcsCi0gICAgICAgICAgICAncnVudGltZS9KU0J5dGVBcnJh
eS5oJywKICAgICAgICAgICAgICdydW50aW1lL0pTQ2VsbC5oJywKICAgICAgICAgICAgICdydW50
aW1lL0pTQ2h1bmsuaCcsCiAgICAgICAgICAgICAncnVudGltZS9KU0RhdGVNYXRoLmgnLApAQCAt
NDczLDcgKzQ3Miw2IEBACiAgICAgICAgICAgICAncnVudGltZS9KU0FQSVZhbHVlV3JhcHBlci5j
cHAnLAogICAgICAgICAgICAgJ3J1bnRpbWUvSlNBcnJheS5jcHAnLAogICAgICAgICAgICAgJ3J1
bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcCcsCi0gICAgICAgICAgICAncnVudGltZS9KU0J5dGVB
cnJheS5jcHAnLAogICAgICAgICAgICAgJ3J1bnRpbWUvSlNDZWxsLmNwcCcsCiAgICAgICAgICAg
ICAncnVudGltZS9KU0NodW5rLmNwcCcsCiAgICAgICAgICAgICAncnVudGltZS9KU0RhdGVNYXRo
LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
b3JkZXIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIKaW5kZXgg
M2I0NWE2MjFlMzhiMjAyZjYwZjIyZTQzMzM5MGUzM2I1YTRhOTFiMC4uM2E0NTAwNzVhMTM0M2U1
OWU3YjFlZGExMWE1ZjdjZDgwM2M4NjVhYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLm9yZGVyCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5vcmRlcgpAQCAtMTI3MiwxMiArMTI3Miw2IEBAIF9fWk4zSlNDM0pJVDIxZW1p
dFNsb3dfb3BfbnN0cmljdGVxRVBOU18xMUluc3RydWN0aW9uRVJQTlNfMTNTbG93Q2FzZUVudHJ5
RQogX2N0aV9vcF9uc3RyaWN0ZXEKIF9fWk4zSlNDMTRMb2dpY2FsTm90Tm9kZTMwZW1pdEJ5dGVj
b2RlSW5Db25kaXRpb25Db250ZXh0RVJOU18xN0J5dGVjb2RlR2VuZXJhdG9yRVBOU181TGFiZWxF
UzRfYgogX19aTjNKU0MzSklUMThlbWl0X29wX2ptcF9zY29wZXNFUE5TXzExSW5zdHJ1Y3Rpb25F
Ci1fX1pOM1dURjlCeXRlQXJyYXk2Y3JlYXRlRW0KLV9fWk4zSlNDMTFKU0J5dGVBcnJheTE1Y3Jl
YXRlU3RydWN0dXJlRVJOU18xMkpTR2xvYmFsRGF0YUVOU183SlNWYWx1ZUVQS05TXzlDbGFzc0lu
Zm9FCi1fX1pOM0pTQzExSlNCeXRlQXJyYXlDMUVQTlNfOUV4ZWNTdGF0ZUVQTlNfOVN0cnVjdHVy
ZUVQTjNXVEY5Qnl0ZUFycmF5RQotX19aTjNKU0MxMUpTQnl0ZUFycmF5QzJFUE5TXzlFeGVjU3Rh
dGVFUE5TXzlTdHJ1Y3R1cmVFUE4zV1RGOUJ5dGVBcnJheUUKLV9fWk4zSlNDMTFKU0J5dGVBcnJh
eUQxRXYKLV9jdGlfb3BfZ2V0X2J5X3ZhbF9ieXRlX2FycmF5CiBfY3RpX29wX25lZ2F0ZQogX19a
TjNKU0NMMTZtYXRoUHJvdG9GdW5jTWF4RVBOU185RXhlY1N0YXRlRQogX19aTjNXVEYxNVRocmVh
ZENvbmRpdGlvbkQxRXYKQEAgLTEzMzUsNyArMTMyOSw2IEBAIF9fWk4zSlNDNFlhcnIxM1lhcnJH
ZW5lcmF0b3IxN0JhY2t0cmFja2luZ1N0YXRlNmxpbmtUb0VOU18yMkFic3RyYWN0TWFjcm9Bc3Nl
bWJsCiBfX1pOM0pTQzRZYXJyMjJZYXJyUGF0dGVybkNvbnN0cnVjdG9yMjNzZXR1cERpc2p1bmN0
aW9uT2Zmc2V0c0VQTlMwXzE4UGF0dGVybkRpc2p1bmN0aW9uRWpqCiBfX1pOM0pTQzRZYXJyMTNZ
YXJyR2VuZXJhdG9yMTdCYWNrdHJhY2tpbmdTdGF0ZTI0dGFrZUJhY2t0cmFja3NUb0p1bXBMaXN0
RVJOU18yMkFic3RyYWN0TWFjcm9Bc3NlbWJsZXJJTlNfMTJYODZBc3NlbWJsZXJFRThKdW1wTGlz
dEVQTlNfMTRNYWNyb0Fzc2VtYmxlckUKIF9fWk5LM0pTQzExQm9vbGVhbk5vZGU2aXNQdXJlRVJO
U18xN0J5dGVjb2RlR2VuZXJhdG9yRQotX19aTjNKU0MxMUpTQnl0ZUFycmF5MThnZXRPd25Qcm9w
ZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlT
bG90RQogX2N0aV90aW1lb3V0X2NoZWNrCiBfX1pOM0pTQzE0VGltZW91dENoZWNrZXIxMGRpZFRp
bWVPdXRFUE5TXzlFeGVjU3RhdGVFCiBfX1pOM0pTQzIyY3JlYXRlTm90QW5PYmplY3RFcnJvckVQ
TlNfOUV4ZWNTdGF0ZUVOU183SlNWYWx1ZUUKQEAgLTEzNTQsOCArMTM0Nyw2IEBAIF9fWk4zSlND
NkpTQ2VsbDE2Z2V0Q29uc3RydWN0RGF0YUVSTlNfMTNDb25zdHJ1Y3REYXRhRQogX19aTjNKU0My
NmNyZWF0ZU5vdEFDb25zdHJ1Y3RvckVycm9yRVBOU185RXhlY1N0YXRlRU5TXzdKU1ZhbHVlRQog
X19aTjNKU0MyM29iamVjdFByb3RvRnVuY1RvU3RyaW5nRVBOU185RXhlY1N0YXRlRQogX19aTksz
SlNDOEpTT2JqZWN0OWNsYXNzTmFtZUV2Ci1fX1pOM0pTQzExSlNCeXRlQXJyYXkzcHV0RVBOU185
RXhlY1N0YXRlRWpOU183SlNWYWx1ZUUKLV9jdGlfb3BfcHV0X2J5X3ZhbF9ieXRlX2FycmF5CiBf
X1pOSzNKU0MxNEV4cHJlc3Npb25Ob2RlMTFpc0NvbW1hTm9kZUV2CiBfX1pOM0pTQzlDb21tYU5v
ZGUxMmVtaXRCeXRlY29kZUVSTlNfMTdCeXRlY29kZUdlbmVyYXRvckVQTlNfMTBSZWdpc3RlcklE
RQogX19aTjNKU0M5Q29tbWFOb2RlRDFFdgpAQCAtMjIwMSw4ICsyMTkyLDYgQEAgX19aTjNKU0NM
MjFhcnJheVByb3RvRnVuY0luZGV4T2ZFUE5TXzlFeGVjU3RhdGVFCiBfX1pOM0pTQzEyU3RyaW5n
T2JqZWN0MThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFalJOU18xMlByb3BlcnR5
U2xvdEUKIF9fWk4zSlNDOEpTT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVq
CiBfX1pOM0pTQ0wyNWFycmF5UHJvdG9GdW5jTGFzdEluZGV4T2ZFUE5TXzlFeGVjU3RhdGVFCi1f
X1pOM0pTQzExSlNCeXRlQXJyYXkzcHV0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVy
RU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUKLV9fWk4zSlNDMTFKU0J5dGVBcnJh
eTE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RF
CiBfX1pOM1dURjIwZXF1YWxJZ25vcmluZ051bGxpdHlFUE5TXzEwU3RyaW5nSW1wbEVTMV8KIF9j
dGlfb3BfZ2V0X2J5X2lkX2FycmF5X2ZhaWwKIF9fWk4zSlNDMTdQcmVmaXhCcmFja2V0Tm9kZTEy
ZW1pdEJ5dGVjb2RlRVJOU18xN0J5dGVjb2RlR2VuZXJhdG9yRVBOU18xMFJlZ2lzdGVySURFCkBA
IC0yMjQxLDcgKzIyMzAsNiBAQCBfX1pOM0pTQ0wyNGRhdGVQcm90b0Z1bmNUb0lTT1N0cmluZ0VQ
TlNfOUV4ZWNTdGF0ZUUKIF9jdGlfb3BfZ2V0X2J5X2lkX3N0cmluZ19mYWlsCiBfX1pOM0pTQzIy
U3RyaW5nUmVjdXJzaW9uQ2hlY2tlcjExZW1wdHlTdHJpbmdFdgogX19aTjNKU0MyMlN0cmluZ1Jl
Y3Vyc2lvbkNoZWNrZXIyM3Rocm93U3RhY2tPdmVyZmxvd0Vycm9yRXYKLV9fWk4zSlNDMTFKU0J5
dGVBcnJheTE5Z2V0T3duUHJvcGVydHlOYW1lc0VQTlNfOUV4ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0
eU5hbWVBcnJheUVOU18xNUVudW1lcmF0aW9uTW9kZUUKIF9fWk4zSlNDOUV4ZWNTdGF0ZTlqc29u
VGFibGVFUFMwXwogX19aTjNKU0MxMEpTRnVuY3Rpb24xMmNhbGxlckdldHRlckVQTlNfOUV4ZWNT
dGF0ZUVOU183SlNWYWx1ZUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk5LM0pTQzExSW50ZXJwcmV0
ZXIxNHJldHJpZXZlQ2FsbGVyRVBOU185RXhlY1N0YXRlRVBOU18xMEpTRnVuY3Rpb25FCkBAIC0y
MzQxLDcgKzIzMjksNiBAQCBfX1pOM0pTQzE3TnVtYmVyQ29uc3RydWN0b3IyNGdldE93blByb3Bl
cnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbgogX19aTjNKU0MxN1JlZ0V4
cENvbnN0cnVjdG9yMjRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktO
U18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQogX19aTjNKU0MxME1hdGhP
YmplY3QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRl
bnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCiBfX1pOM0pTQzE4UmVnRXhwTWF0Y2hl
c0FycmF5MjRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktOU18xMElk
ZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQotX19aTjNKU0MxMUpTQnl0ZUFycmF5
MjRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZp
ZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQogX19aTjNKU0NMOGNhbGxEYXRlRVBOU185RXhl
Y1N0YXRlRQogX19aTjNKU0NMMjZjYWxsTmF0aXZlRXJyb3JDb25zdHJ1Y3RvckVQTlNfOUV4ZWNT
dGF0ZUUKIF9fWk4zSlNDMTdCeXRlY29kZUdlbmVyYXRvcjM1ZW1pdFRocm93RXhwcmVzc2lvblRv
b0RlZXBFeGNlcHRpb25FdgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmRlZgppbmRleCBjYzVjMzkxMTc1MWRkMTlhMWIxMjg5MjE4ZGIzYzU4Yzkz
ODdlNjQ5Li5kMzQ1MTQwOTQ2YzQzNzgxZjUwYWIzNGE5ZTkyYTU4N2YyZDc5NzQ4IDEwMDc1NQot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAt
OSw3ICs5LDYgQEAgRVhQT1JUUwogICAgID8/MERyb3BBbGxMb2Nrc0BKU0xvY2tASlNDQEBRQUVA
VzRKU0xvY2tCZWhhdmlvckAyQEBaCiAgICAgPz8wRHluYW1pY0dsb2JhbE9iamVjdFNjb3BlQEpT
Q0BAUUFFQEFBVkpTR2xvYmFsRGF0YUAxQFBBVkpTR2xvYmFsT2JqZWN0QDFAQFogCiAgICAgPz8w
SW50ZXJuYWxGdW5jdGlvbkBKU0NAQElBRUBQQVZKU0dsb2JhbE9iamVjdEAxQFBBVlN0cnVjdHVy
ZUAxQEBaCi0gICAgPz8wSlNCeXRlQXJyYXlASlNDQEBBQUVAUEFWRXhlY1N0YXRlQDFAUEFWU3Ry
dWN0dXJlQDFAUEFWQnl0ZUFycmF5QFdURkBAQFoKICAgICA/PzBKU0xvY2tASlNDQEBRQUVAUEFW
RXhlY1N0YXRlQDFAQFoKICAgICA/PzBNRDVAV1RGQEBRQUVAWFoKICAgICA/PzBNdXRleEBXVEZA
QFFBRUBYWgpAQCAtMTAzLDcgKzEwMiw2IEBAIEVYUE9SVFMKICAgICA/Y29udmVydExhdGluMVRv
VVRGOEBVbmljb2RlQFdURkBAWUE/QVc0Q29udmVyc2lvblJlc3VsdEAxMkBQQVBCRVBCRVBBUEFE
UEFEQFoKICAgICA/Y29udmVydFVURjE2VG9VVEY4QFVuaWNvZGVAV1RGQEBZQT9BVzRDb252ZXJz
aW9uUmVzdWx0QDEyQFBBUEJfV1BCX1dQQVBBRFBBRF9OQFoKICAgICA/Y29udmVydFVURjhUb1VU
RjE2QFVuaWNvZGVAV1RGQEBZQT9BVzRDb252ZXJzaW9uUmVzdWx0QDEyQFBBUEJEUEJEUEFQQV9X
UEFfV19OQFoKLSAgICA/Y3JlYXRlQEJ5dGVBcnJheUBXVEZAQFNBP0FWPyRQYXNzUmVmUHRyQFZC
eXRlQXJyYXlAV1RGQEBAMkBJQFoKICAgICA/Y3JlYXRlQEpTRnVuY3Rpb25ASlNDQEBTQVBBVjEy
QFBBVkV4ZWNTdGF0ZUAyQFBBVkpTR2xvYmFsT2JqZWN0QDJASEFCVklkZW50aWZpZXJAMkBQNklf
SjBAWlc0SW50cmluc2ljQDJAM0BaCiAgICAgP2NyZWF0ZUBKU0dsb2JhbERhdGFASlNDQEBTQT9B
Vj8kUGFzc1JlZlB0ckBWSlNHbG9iYWxEYXRhQEpTQ0BAQFdURkBAVzRUaHJlYWRTdGFja1R5cGVA
MkBXNEhlYXBTaXplQDJAQFoKICAgICA/Y3JlYXRlQE9wYXF1ZUpTU3RyaW5nQEBTQT9BVj8kUGFz
c1JlZlB0ckBVT3BhcXVlSlNTdHJpbmdAQEBXVEZAQEFCVlVTdHJpbmdASlNDQEBAWgpAQCAtMTE2
LDcgKzExNCw2IEBAIEVYUE9SVFMKICAgICA/Y3JlYXRlUmVmZXJlbmNlRXJyb3JASlNDQEBZQVBB
VkpTT2JqZWN0QDFAUEFWRXhlY1N0YXRlQDFAQUJWVVN0cmluZ0AxQEBaCiAgICAgP2NyZWF0ZVNp
bmdsZUNoYXJhY3RlclN0cmluZ0BTbWFsbFN0cmluZ3NASlNDQEBBQUVYUEFWSlNHbG9iYWxEYXRh
QDJARUBaCiAgICAgP2NyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvckBKU0NAQFlBUEFWSlNPYmplY3RA
MUBQQVZFeGVjU3RhdGVAMUBAWgotICAgID9jcmVhdGVTdHJ1Y3R1cmVASlNCeXRlQXJyYXlASlND
QEBTQVBBVlN0cnVjdHVyZUAyQEFBVkpTR2xvYmFsRGF0YUAyQFBBVkpTR2xvYmFsT2JqZWN0QDJA
VkpTVmFsdWVAMkBQQlVDbGFzc0luZm9AMkBAWgogICAgID9jcmVhdGVTeW50YXhFcnJvckBKU0NA
QFlBUEFWSlNPYmplY3RAMUBQQVZFeGVjU3RhdGVAMUBBQlZVU3RyaW5nQDFAQFoKICAgICA/Y3Jl
YXRlVGFibGVASGFzaFRhYmxlQEpTQ0BAQUJFWFBBVkpTR2xvYmFsRGF0YUAyQEBaCiAgICAgP2Ny
ZWF0ZVRocmVhZEBXVEZAQFlBSVA2QVBBWFBBWEBaMEBaCkBAIC0xNDksNyArMTQ2LDYgQEAgRVhQ
T1JUUwogICAgID9kZXNwZWNpZnlEaWN0aW9uYXJ5RnVuY3Rpb25AU3RydWN0dXJlQEpTQ0BAUUFF
WEFBVkpTR2xvYmFsRGF0YUAyQEFCVklkZW50aWZpZXJAMkBAWgogICAgID9kZXNwZWNpZnlGdW5j
dGlvblRyYW5zaXRpb25AU3RydWN0dXJlQEpTQ0BAU0FQQVYxMkBBQVZKU0dsb2JhbERhdGFAMkBQ
QVYxMkBBQlZJZGVudGlmaWVyQDJAQFoKICAgICA/ZGVzdHJveUBIZWFwQEpTQ0BAUUFFWFhaCi0g
ICAgP2Rlc3Ryb3lASlNCeXRlQXJyYXlASlNDQEBTQVhQQVZKU0NlbGxAMkBAWgogICAgID9kZXN0
cm95QEpTQ2VsbEBKU0NAQEtBWFBBVjEyQEBaCiAgICAgP2Rlc3Ryb3lASlNHbG9iYWxPYmplY3RA
SlNDQEBTQVhQQVZKU0NlbGxAMkBAWgogICAgID9kZXN0cm95QE91dE9mTGluZUJpdHNAQml0VmVj
dG9yQFdURkBAU0FYUEFWMTIzQEBaCkBAIC0xOTcsMTYgKzE5MywxMiBAQCBFWFBPUlRTCiAgICAg
P2dldENvbnN0cnVjdERhdGFASlNDZWxsQEpTQ0BAU0E/QVc0Q29uc3RydWN0VHlwZUAyQFBBVjEy
QEFBVENvbnN0cnVjdERhdGFAMkBAWgogICAgID9nZXRDdXJyZW50TG9jYWxUaW1lQFdURkBAWUFY
UEFVdG1AQEBaCiAgICAgP2dldE9iamVjdEBKU0NlbGxASlNDQEBRQUVQQVZKU09iamVjdEAyQFha
Ci0gICAgP2dldE93blByb3BlcnR5RGVzY3JpcHRvckBKU0J5dGVBcnJheUBKU0NAQFNBX05QQVZK
U09iamVjdEAyQFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBBQVZQcm9wZXJ0eURlc2Ny
aXB0b3JAMkBAWgogICAgID9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JASlNHbG9iYWxPYmplY3RA
SlNDQEBTQV9OUEFWSlNPYmplY3RAMkBQQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAQUFW
UHJvcGVydHlEZXNjcmlwdG9yQDJAQFoKICAgICA/Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yQEpT
T2JqZWN0QEpTQ0BAU0FfTlBBVjEyQFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBBQVZQ
cm9wZXJ0eURlc2NyaXB0b3JAMkBAWgotICAgID9nZXRPd25Qcm9wZXJ0eU5hbWVzQEpTQnl0ZUFy
cmF5QEpTQ0BAU0FYUEFWSlNPYmplY3RAMkBQQVZFeGVjU3RhdGVAMkBBQVZQcm9wZXJ0eU5hbWVB
cnJheUAyQFc0RW51bWVyYXRpb25Nb2RlQDJAQFoKICAgICA/Z2V0T3duUHJvcGVydHlOYW1lc0BK
U09iamVjdEBKU0NAQFNBWFBBVjEyQFBBVkV4ZWNTdGF0ZUAyQEFBVlByb3BlcnR5TmFtZUFycmF5
QDJAVzRFbnVtZXJhdGlvbk1vZGVAMkBAWgogICAgID9nZXRPd25Qcm9wZXJ0eU5hbWVzQEpTVmFy
aWFibGVPYmplY3RASlNDQEBTQVhQQVZKU09iamVjdEAyQFBBVkV4ZWNTdGF0ZUAyQEFBVlByb3Bl
cnR5TmFtZUFycmF5QDJAVzRFbnVtZXJhdGlvbk1vZGVAMkBAWgotICAgID9nZXRPd25Qcm9wZXJ0
eVNsb3RASlNCeXRlQXJyYXlASlNDQEBTQV9OUEFWSlNDZWxsQDJAUEFWRXhlY1N0YXRlQDJAQUJW
SWRlbnRpZmllckAyQEFBVlByb3BlcnR5U2xvdEAyQEBaCiAgICAgP2dldE93blByb3BlcnR5U2xv
dEBKU0dsb2JhbE9iamVjdEBKU0NAQFNBX05QQVZKU0NlbGxAMkBQQVZFeGVjU3RhdGVAMkBBQlZJ
ZGVudGlmaWVyQDJAQUFWUHJvcGVydHlTbG90QDJAQFoKICAgICA/Z2V0T3duUHJvcGVydHlTbG90
QnlJbmRleEBKU0FycmF5QEpTQ0BAU0FfTlBBVkpTQ2VsbEAyQFBBVkV4ZWNTdGF0ZUAyQElBQVZQ
cm9wZXJ0eVNsb3RAMkBAWgotICAgID9nZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4QEpTQnl0ZUFy
cmF5QEpTQ0BAU0FfTlBBVkpTQ2VsbEAyQFBBVkV4ZWNTdGF0ZUAyQElBQVZQcm9wZXJ0eVNsb3RA
MkBAWgogICAgID9nZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4QEpTT2JqZWN0QEpTQ0BAU0FfTlBB
VkpTQ2VsbEAyQFBBVkV4ZWNTdGF0ZUAyQElBQVZQcm9wZXJ0eVNsb3RAMkBAWgogICAgID9nZXRQ
cm9wZXJ0eURlc2NyaXB0b3JASlNPYmplY3RASlNDQEBRQUVfTlBBVkV4ZWNTdGF0ZUAyQEFCVklk
ZW50aWZpZXJAMkBBQVZQcm9wZXJ0eURlc2NyaXB0b3JAMkBAWgogICAgID9nZXRQcm9wZXJ0eU5h
bWVzQEpTT2JqZWN0QEpTQ0BAU0FYUEFWMTJAUEFWRXhlY1N0YXRlQDJAQUFWUHJvcGVydHlOYW1l
QXJyYXlAMkBXNEVudW1lcmF0aW9uTW9kZUAyQEBaCkBAIC0yNzUsNyArMjY3LDYgQEAgRVhQT1JU
UwogICAgID9wcm90ZWN0ZWRHbG9iYWxPYmplY3RDb3VudEBIZWFwQEpTQ0BAUUFFSVhaCiAgICAg
P3Byb3RlY3RlZE9iamVjdENvdW50QEhlYXBASlNDQEBRQUVJWFoKICAgICA/cHJvdGVjdGVkT2Jq
ZWN0VHlwZUNvdW50c0BIZWFwQEpTQ0BAUUFFP0FWPyRQYXNzT3duUHRyQFY/JEhhc2hDb3VudGVk
U2V0QFBCRFU/JFB0ckhhc2hAUEJEQFdURkBAVT8kSGFzaFRyYWl0c0BQQkRAMkBAV1RGQEBAV1RG
QEBYWgotICAgID9wdXRASlNCeXRlQXJyYXlASlNDQEBTQVhQQVZKU0NlbGxAMkBQQVZFeGVjU3Rh
dGVAMkBBQlZJZGVudGlmaWVyQDJAVkpTVmFsdWVAMkBBQVZQdXRQcm9wZXJ0eVNsb3RAMkBAWgog
ICAgID9wdXRASlNHbG9iYWxPYmplY3RASlNDQEBTQVhQQVZKU0NlbGxAMkBQQVZFeGVjU3RhdGVA
MkBBQlZJZGVudGlmaWVyQDJAVkpTVmFsdWVAMkBBQVZQdXRQcm9wZXJ0eVNsb3RAMkBAWgogICAg
ID9wdXRASlNPYmplY3RASlNDQEBTQVhQQVZKU0NlbGxAMkBQQVZFeGVjU3RhdGVAMkBBQlZJZGVu
dGlmaWVyQDJAVkpTVmFsdWVAMkBBQVZQdXRQcm9wZXJ0eVNsb3RAMkBAWgogICAgID9wdXRCeUlu
ZGV4QEpTT2JqZWN0QEpTQ0BAU0FYUEFWSlNDZWxsQDJAUEFWRXhlY1N0YXRlQDJASVZKU1ZhbHVl
QDJAX05AWgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ogYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjcHJvagppbmRleCBlNzA1NDg3MDlmZDBiMDQwY2RmMDk3YjEwY2UyODk0ZmFhMTY0
ZTgzLi40OWU1YzdmYjhkMGYxNGQ3ZWFjZmI3ZDRlYzRkMzE1OTI2MWY4YzFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvagpA
QCAtNzc4LDE0ICs3NzgsNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVs
YXRpdmVQYXRoPSIuLlwuLlxydW50aW1lXEpTQnl0ZUFycmF5LmNwcCIKLQkJCQk+Ci0JCQk8L0Zp
bGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccnVudGltZVxKU0J5dGVBcnJh
eS5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlwu
LlxydW50aW1lXEpTQ2VsbC5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCAzMmRjZDZmM2MxMTM5ZTRiNjczZDJlY2FiYjI2NDM3YzQwYmYxNDU3
Li42NWI1ZWRlZmYyZTllYjZhZWM0ODVhZGRjYmNmNWZkMmNjYTAzYWI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNDkwLDggKzQ5MCw2IEBACiAJCUE3ODFFMzU5MTQxOTcwQzcw
MDA5NEQ5MCAvKiBTdG9yYWdlQmFycmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTc4MUUzNTgxNDE5NzBDNzAwMDk0RDkwIC8qIFN0b3JhZ2VCYXJy
aWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QTc4NEEyNjExMUQxNjYyMjAwNTc3NkFDIC8qIEFTVEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QTdFRTc0MTFCOThCOEQwMDY1QTE0RiAv
KiBBU1RCdWlsZGVyLmggKi87IH07CiAJCUE3ODRBMjY0MTFEMTY2MjIwMDU3NzZBQyAvKiBTeW50
YXhDaGVja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBN0E3RUU3NzExQjk4QjhEMDA2NUExNEYgLyogU3ludGF4Q2hlY2tlci5oICovOyB9OwotCQlB
NzkxRUYyODBGMTFFMDc5MDBBRTFGNjggLyogSlNCeXRlQXJyYXkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3OTFFRjI2MEYxMUUwNzkwMEFFMUY2OCAv
KiBKU0J5dGVBcnJheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07Ci0JCUE3OTFFRjI5MEYxMUUwNzkwMEFFMUY2OCAvKiBKU0J5dGVBcnJheS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzkxRUYyNzBGMTFF
MDc5MDBBRTFGNjggLyogSlNCeXRlQXJyYXkuY3BwICovOyB9OwogCQlBN0I0OEY0OTBFRTg5MzZG
MDBEQ0JEQjYgLyogRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0I0OERCNjBFRTc0Q0ZDMDBEQ0JEQjYgLyogRXhl
Y3V0YWJsZUFsbG9jYXRvci5jcHAgKi87IH07CiAJCUE3QjRBQ0FGMTQ4NEM5Q0UwMEIzOEEzNiAv
KiBKU0V4cG9ydE1hY3Jvcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTdCNEFDQUUxNDg0QzlDRTAwQjM4QTM2IC8qIEpTRXhwb3J0TWFjcm9zLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTdDMUU4RTQx
MTJFNzJFRjAwQTM3Rjk4IC8qIEpJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdDMUU4QzgxMTJFNzAxQzAwQTM3
Rjk4IC8qIEpJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwICovOyB9OwpAQCAtMTE3MCw4ICsxMTY4
LDYgQEAKIAkJQTc2QzUxNzQxMTgyNzQ4RDAwNzE1QjA1IC8qIEpTSW50ZXJmYWNlSklULmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSW50ZXJmYWNlSklULmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NkY1NEEyMTNCMjhBQUIwMEVGMkJDRSAvKiBKSVRXcml0
ZUJhcnJpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSklUV3JpdGVCYXJy
aWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3ODFFMzU4MTQxOTcwQzcwMDA5
NEQ5MCAvKiBTdG9yYWdlQmFycmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTdG9yYWdlQmFycmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNzkxRUYy
NjBGMTFFMDc5MDBBRTFGNjggLyogSlNCeXRlQXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNCeXRlQXJyYXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QTc5MUVGMjcwRjExRTA3OTAwQUUxRjY4IC8qIEpTQnl0ZUFycmF5LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQnl0ZUFycmF5LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTc5RURCMDgxMTUzMUNENjAwMTlFOTEyIC8qIEpTT2JqZWN0UmVmUHJp
dmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU09iamVjdFJlZlByaXZh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdBN0VFNzQxMUI5OEI4RDAwNjVB
MTRGIC8qIEFTVEJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVNU
QnVpbGRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0E3RUU3NzExQjk4QjhE
MDA2NUExNEYgLyogU3ludGF4Q2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTeW50YXhDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODUz
LDggKzE4NDksNiBAQAogCQkJCTkzODc3MkU1MDM4QkZFMTkwMDg2MzVDRSAvKiBKU0FycmF5Lmgg
Ki8sCiAJCQkJODZGQTlFOEYxNDJCQkIyRDAwMTc3M0I3IC8qIEpTQm91bmRGdW5jdGlvbi5jcHAg
Ki8sCiAJCQkJODZGQTlFOTAxNDJCQkIyRTAwMTc3M0I3IC8qIEpTQm91bmRGdW5jdGlvbi5oICov
LAotCQkJCUE3OTFFRjI3MEYxMUUwNzkwMEFFMUY2OCAvKiBKU0J5dGVBcnJheS5jcHAgKi8sCi0J
CQkJQTc5MUVGMjYwRjExRTA3OTAwQUUxRjY4IC8qIEpTQnl0ZUFycmF5LmggKi8sCiAJCQkJQkM3
RjhGQkEwRTE5RDFFRjAwODYzMkMwIC8qIEpTQ2VsbC5jcHAgKi8sCiAJCQkJQkMxMTY3RDgwRTE5
QkNDOTAwODA2NkREIC8qIEpTQ2VsbC5oICovLAogCQkJCTk3ODhGQzIyMTQ3MUFEMEMwMDY4Q0Uy
RCAvKiBKU0RhdGVNYXRoLmNwcCAqLywKQEAgLTIzNDUsNyArMjMzOSw2IEBACiAJCQkJQkMxOEM0
MTgwRTE2RjVDRDAwQjM0NDYwIC8qIEpTQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQwRDE3
RDcwRThBRDRBOTAwMENEMTdEIC8qIEpTQmFzZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg2RkE5RTkyMTQyQkJCMkUwMDE3NzNCNyAvKiBKU0JvdW5kRnVuY3Rpb24uaCBpbiBIZWFkZXJz
ICovLAotCQkJCUE3OTFFRjI4MEYxMUUwNzkwMEFFMUY2OCAvKiBKU0J5dGVBcnJheS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkMxOEM0MTkwRTE2RjVDRDAwQjM0NDYwIC8qIEpTQ2FsbGJhY2tDb25z
dHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MUEwRTE2RjVDRDAwQjM0NDYwIC8q
IEpTQ2FsbGJhY2tGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MUIwRTE2RjVD
RDAwQjM0NDYwIC8qIEpTQ2FsbGJhY2tPYmplY3QuaCBpbiBIZWFkZXJzICovLApAQCAtMzAwNCw3
ICsyOTk3LDYgQEAKIAkJCQkxNDdGMzlEMDEwN0VDMzc2MDA0MjdBNDggLyogSlNBcnJheS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxNDIxMzU5QjBBNjc3RjRGMDBBODE5NUUgLyogSlNCYXNlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTg2RkE5RTkxMTQyQkJCMkUwMDE3NzNCNyAvKiBKU0JvdW5k
RnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTc5MUVGMjkwRjExRTA3OTAwQUUxRjY4
IC8qIEpTQnl0ZUFycmF5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0NDBGOEFGMEE1MDhEMjAw
MDA1RjA2MSAvKiBKU0NhbGxiYWNrQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MTQ0MEY4OTIwQTUwOEIxMDAwMDVGMDYxIC8qIEpTQ2FsbGJhY2tGdW5jdGlvbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxNEFCREY2MDBBNDM3RkVGMDBFQ0NBMDEgLyogSlNDYWxsYmFja09iamVj
dC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9U
YXJnZXQucHJpIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1RhcmdldC5wcmkKaW5kZXggMDk3NTkw
NzkyZDg4MWIxYjA1ZDJhMDY5YmI4NmY3YTU1NGVjYjdkYi4uZmZjYmE4ODU2ZGRlY2JiMmQ0ODA5
NjUwNGNiMWQ0MWVhMzI3NDEyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1Rh
cmdldC5wcmkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1RhcmdldC5wcmkKQEAgLTE3NCw3
ICsxNzQsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAgXAog
ICAgIHJ1bnRpbWUvSlNBUElWYWx1ZVdyYXBwZXIuY3BwIFwKICAgICBydW50aW1lL0pTQXJyYXku
Y3BwIFwKLSAgICBydW50aW1lL0pTQnl0ZUFycmF5LmNwcCBcCiAgICAgcnVudGltZS9KU0NlbGwu
Y3BwIFwKICAgICBydW50aW1lL0pTRGF0ZU1hdGguY3BwIFwKICAgICBydW50aW1lL0pTRnVuY3Rp
b24uY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QcmVk
aWN0ZWRUeXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QcmVkaWN0ZWRU
eXBlLmNwcAppbmRleCA4MzU0ZDAyZDc4OWI1Y2VjOTcyYWMyNmU2MmM5ODZiZmI3MjM2YmIxLi5l
OGE3MTc3MmJhZmY4ZjJjNjMwMmM3MWVkMjk3ZDUzMGVkZmZhNjAyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJlZGljdGVkVHlwZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ByZWRpY3RlZFR5cGUuY3BwCkBAIC0zMCw3ICszMCw2
IEBACiAjaW5jbHVkZSAiUHJlZGljdGVkVHlwZS5oIgogCiAjaW5jbHVkZSAiSlNBcnJheS5oIgot
I2luY2x1ZGUgIkpTQnl0ZUFycmF5LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1
ZGUgIlZhbHVlUHJvZmlsZS5oIgogI2luY2x1ZGUgPHd0Zi9Cb3VuZHNDaGVja2VkUG9pbnRlci5o
PgpAQCAtNjgsMTEgKzY3LDYgQEAgY29uc3QgY2hhciogcHJlZGljdGlvblRvU3RyaW5nKFByZWRp
Y3RlZFR5cGUgdmFsdWUpCiAgICAgZWxzZQogICAgICAgICBpc1RvcCA9IGZhbHNlOwogICAgIAot
ICAgIGlmICh2YWx1ZSAmIFByZWRpY3RCeXRlQXJyYXkpCi0gICAgICAgIHB0ci5zdHJjYXQoIkJ5
dGVhcnJheSIpOwotICAgIGVsc2UKLSAgICAgICAgaXNUb3AgPSBmYWxzZTsKLSAgICAKICAgICBp
ZiAodmFsdWUgJiBQcmVkaWN0SW50OEFycmF5KQogICAgICAgICBwdHIuc3RyY2F0KCJJbnQ4YXJy
YXkiKTsKICAgICBlbHNlCkBAIC0xNzYsOCArMTcwLDYgQEAgY29uc3QgY2hhciogcHJlZGljdGlv
blRvQWJicmV2aWF0ZWRTdHJpbmcoUHJlZGljdGVkVHlwZSBwcmVkaWN0aW9uKQogICAgICAgICBy
ZXR1cm4gIjxTdHJpbmc+IjsKICAgICBpZiAoaXNGdW5jdGlvblByZWRpY3Rpb24ocHJlZGljdGlv
bikpCiAgICAgICAgIHJldHVybiAiPEZ1bmN0aW9uPiI7Ci0gICAgaWYgKGlzQnl0ZUFycmF5UHJl
ZGljdGlvbihwcmVkaWN0aW9uKSkKLSAgICAgICAgcmV0dXJuICI8Qnl0ZWFycmF5PiI7CiAgICAg
aWYgKGlzSW50OEFycmF5UHJlZGljdGlvbihwcmVkaWN0aW9uKSkKICAgICAgICAgcmV0dXJuICI8
SW50OGFycmF5PiI7CiAgICAgaWYgKGlzSW50MTZBcnJheVByZWRpY3Rpb24ocHJlZGljdGlvbikp
CkBAIC0yMjUsOCArMjE3LDYgQEAgUHJlZGljdGVkVHlwZSBwcmVkaWN0aW9uRnJvbUNsYXNzSW5m
byhjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbykKICAgICBpZiAoY2xhc3NJbmZvLT5pc1N1YkNs
YXNzT2YoJkpTRnVuY3Rpb246OnNfaW5mbykpCiAgICAgICAgIHJldHVybiBQcmVkaWN0RnVuY3Rp
b247CiAKLSAgICBpZiAoY2xhc3NJbmZvLT5pc1N1YkNsYXNzT2YoJkpTQnl0ZUFycmF5OjpzX2lu
Zm8pKQotICAgICAgICByZXR1cm4gUHJlZGljdEJ5dGVBcnJheTsKICAgICAKICAgICBpZiAoY2xh
c3NJbmZvLT50eXBlZEFycmF5U3RvcmFnZVR5cGUgIT0gVHlwZWRBcnJheU5vbmUpIHsKICAgICAg
ICAgc3dpdGNoIChjbGFzc0luZm8tPnR5cGVkQXJyYXlTdG9yYWdlVHlwZSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ByZWRpY3RlZFR5cGUuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QcmVkaWN0ZWRUeXBlLmgKaW5kZXggMWIxOGM3MDli
YjM3MGRkZTg0YjM4YWI3YWFiNjA3MjNjOGQwYWQxMS4uZTgwMjMyMzVjMGRhODk2YjA3MzI4Zjk5
ZTdiNDE3MzRlMDE2ZTJjMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1ByZWRpY3RlZFR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
UHJlZGljdGVkVHlwZS5oCkBAIC0zOSw3ICszOSw2IEBAIHR5cGVkZWYgdWludDMyX3QgUHJlZGlj
dGVkVHlwZTsKIHN0YXRpYyBjb25zdCBQcmVkaWN0ZWRUeXBlIFByZWRpY3ROb25lICAgICAgICAg
ICAgICA9IDB4MDAwMDAwMDA7IC8vIFdlIGRvbid0IGtub3cgYW55dGhpbmcgeWV0Lgogc3RhdGlj
IGNvbnN0IFByZWRpY3RlZFR5cGUgUHJlZGljdEZpbmFsT2JqZWN0ICAgICAgID0gMHgwMDAwMDAw
MTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNGaW5hbE9iamVjdC4KIHN0YXRpYyBjb25zdCBQcmVk
aWN0ZWRUeXBlIFByZWRpY3RBcnJheSAgICAgICAgICAgICA9IDB4MDAwMDAwMDI7IC8vIEl0J3Mg
ZGVmaW5pdGVseSBhIEpTQXJyYXkuCi1zdGF0aWMgY29uc3QgUHJlZGljdGVkVHlwZSBQcmVkaWN0
Qnl0ZUFycmF5ICAgICAgICAgPSAweDAwMDAwMDA0OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0J5
dGVBcnJheSBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCiBzdGF0aWMgY29uc3QgUHJlZGljdGVk
VHlwZSBQcmVkaWN0RnVuY3Rpb24gICAgICAgICAgPSAweDAwMDAwMDA4OyAvLyBJdCdzIGRlZmlu
aXRlbHkgYSBKU0Z1bmN0aW9uIG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KIHN0YXRpYyBjb25z
dCBQcmVkaWN0ZWRUeXBlIFByZWRpY3RJbnQ4QXJyYXkgICAgICAgICA9IDB4MDAwMDAwMTA7IC8v
IEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ4QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgog
c3RhdGljIGNvbnN0IFByZWRpY3RlZFR5cGUgUHJlZGljdEludDE2QXJyYXkgICAgICAgID0gMHgw
MDAwMDAyMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDE2QXJyYXkgb3Igb25lIG9mIGl0cyBz
dWJjbGFzc2VzLgpAQCAtNTAsNyArNDksNyBAQCBzdGF0aWMgY29uc3QgUHJlZGljdGVkVHlwZSBQ
cmVkaWN0VWludDE2QXJyYXkgICAgICAgPSAweDAwMDAwMjAwOyAvLyBJdCdzIGRlZmluaQogc3Rh
dGljIGNvbnN0IFByZWRpY3RlZFR5cGUgUHJlZGljdFVpbnQzMkFycmF5ICAgICAgID0gMHgwMDAw
MDQwMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIFVpbnQzMkFycmF5IG9yIG9uZSBvZiBpdHMgc3Vi
Y2xhc3Nlcy4KIHN0YXRpYyBjb25zdCBQcmVkaWN0ZWRUeXBlIFByZWRpY3RGbG9hdDMyQXJyYXkg
ICAgICA9IDB4MDAwMDA4MDA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBVaW50MTZBcnJheSBvciBv
bmUgb2YgaXRzIHN1YmNsYXNzZXMuCiBzdGF0aWMgY29uc3QgUHJlZGljdGVkVHlwZSBQcmVkaWN0
RmxvYXQ2NEFycmF5ICAgICAgPSAweDAwMDAxMDAwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gVWlu
dDE2QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0IFByZWRpY3Rl
ZFR5cGUgUHJlZGljdE9iamVjdE90aGVyICAgICAgID0gMHgwMDAwMjAwMDsgLy8gSXQncyBkZWZp
bml0ZWx5IGFuIG9iamVjdCBidXQgbm90IEpTRmluYWxPYmplY3QsIEpTQXJyYXksIEpTQnl0ZUFy
cmF5LCBvciBKU0Z1bmN0aW9uLgorc3RhdGljIGNvbnN0IFByZWRpY3RlZFR5cGUgUHJlZGljdE9i
amVjdE90aGVyICAgICAgID0gMHgwMDAwMjAwMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIG9iamVj
dCBidXQgbm90IEpTRmluYWxPYmplY3QsIEpTQXJyYXksIG9yIEpTRnVuY3Rpb24uCiBzdGF0aWMg
Y29uc3QgUHJlZGljdGVkVHlwZSBQcmVkaWN0T2JqZWN0TWFzayAgICAgICAgPSAweDAwMDAzZmZm
OyAvLyBCaXRtYXNrIHVzZWQgZm9yIHRlc3RpbmcgZm9yIGFueSBraW5kIG9mIG9iamVjdCBwcmVk
aWN0aW9uLgogc3RhdGljIGNvbnN0IFByZWRpY3RlZFR5cGUgUHJlZGljdFN0cmluZyAgICAgICAg
ICAgID0gMHgwMDAwNDAwMDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcuCiBzdGF0aWMg
Y29uc3QgUHJlZGljdGVkVHlwZSBQcmVkaWN0Q2VsbE90aGVyICAgICAgICAgPSAweDAwMDA4MDAw
OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0NlbGwgYnV0IG5vdCBhIHN1YmNsYXNzIG9mIEpTT2Jq
ZWN0IGFuZCBkZWZpbml0ZWx5IG5vdCBhIEpTU3RyaW5nLgpAQCAtNjUsNyArNjQsNyBAQCBzdGF0
aWMgY29uc3QgUHJlZGljdGVkVHlwZSBQcmVkaWN0T3RoZXIgICAgICAgICAgICAgPSAweDA4MDAw
MDAwOyAvLyBJdCdzIGRlZmluaQogc3RhdGljIGNvbnN0IFByZWRpY3RlZFR5cGUgUHJlZGljdFRv
cCAgICAgICAgICAgICAgID0gMHgwZmZmZmZmZjsgLy8gSXQgY2FuIGJlIGFueSBvZiB0aGUgYWJv
dmUuCiBzdGF0aWMgY29uc3QgUHJlZGljdGVkVHlwZSBQcmVkaWN0RW1wdHkgICAgICAgICAgICAg
PSAweDEwMDAwMDAwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gZW1wdHkgdmFsdWUgbWFya2VyLgog
c3RhdGljIGNvbnN0IFByZWRpY3RlZFR5cGUgUHJlZGljdEVtcHR5T3JUb3AgICAgICAgID0gMHgx
ZmZmZmZmZjsgLy8gSXQgY2FuIGJlIGFueSBvZiB0aGUgYWJvdmUuCi1zdGF0aWMgY29uc3QgUHJl
ZGljdGVkVHlwZSBGaXhlZEluZGV4ZWRTdG9yYWdlTWFzayA9IFByZWRpY3RCeXRlQXJyYXkgfCBQ
cmVkaWN0SW50OEFycmF5IHwgUHJlZGljdEludDE2QXJyYXkgfCBQcmVkaWN0SW50MzJBcnJheSB8
IFByZWRpY3RVaW50OEFycmF5IHwgUHJlZGljdFVpbnQ4Q2xhbXBlZEFycmF5IHwgUHJlZGljdFVp
bnQxNkFycmF5IHwgUHJlZGljdFVpbnQzMkFycmF5IHwgUHJlZGljdEZsb2F0MzJBcnJheSB8IFBy
ZWRpY3RGbG9hdDY0QXJyYXk7CitzdGF0aWMgY29uc3QgUHJlZGljdGVkVHlwZSBGaXhlZEluZGV4
ZWRTdG9yYWdlTWFzayA9IFByZWRpY3RJbnQ4QXJyYXkgfCBQcmVkaWN0SW50MTZBcnJheSB8IFBy
ZWRpY3RJbnQzMkFycmF5IHwgUHJlZGljdFVpbnQ4QXJyYXkgfCBQcmVkaWN0VWludDhDbGFtcGVk
QXJyYXkgfCBQcmVkaWN0VWludDE2QXJyYXkgfCBQcmVkaWN0VWludDMyQXJyYXkgfCBQcmVkaWN0
RmxvYXQzMkFycmF5IHwgUHJlZGljdEZsb2F0NjRBcnJheTsKIAogdHlwZWRlZiBib29sICgqUHJl
ZGljdGlvbkNoZWNrZXIpKFByZWRpY3RlZFR5cGUpOwogCkBAIC0xMDksMTEgKzEwOCw2IEBAIGlu
bGluZSBib29sIGlzRnVuY3Rpb25QcmVkaWN0aW9uKFByZWRpY3RlZFR5cGUgdmFsdWUpCiAgICAg
cmV0dXJuIHZhbHVlID09IFByZWRpY3RGdW5jdGlvbjsKIH0KIAotaW5saW5lIGJvb2wgaXNCeXRl
QXJyYXlQcmVkaWN0aW9uKFByZWRpY3RlZFR5cGUgdmFsdWUpCi17Ci0gICAgcmV0dXJuIHZhbHVl
ID09IFByZWRpY3RCeXRlQXJyYXk7Ci19Ci0KIGlubGluZSBib29sIGlzSW50OEFycmF5UHJlZGlj
dGlvbihQcmVkaWN0ZWRUeXBlIHZhbHVlKQogewogICAgIHJldHVybiB2YWx1ZSA9PSBQcmVkaWN0
SW50OEFycmF5OwpAQCAtMTYxLDggKzE1NSw3IEBAIGlubGluZSBib29sIGlzRmxvYXQ2NEFycmF5
UHJlZGljdGlvbihQcmVkaWN0ZWRUeXBlIHZhbHVlKQogCiBpbmxpbmUgYm9vbCBpc0FjdGlvbmFi
bGVJbnRNdXRhYmxlQXJyYXlQcmVkaWN0aW9uKFByZWRpY3RlZFR5cGUgdmFsdWUpCiB7Ci0gICAg
cmV0dXJuIGlzQnl0ZUFycmF5UHJlZGljdGlvbih2YWx1ZSkKLSAgICAgICAgfHwgaXNJbnQ4QXJy
YXlQcmVkaWN0aW9uKHZhbHVlKQorICAgIHJldHVybiBpc0ludDhBcnJheVByZWRpY3Rpb24odmFs
dWUpCiAgICAgICAgIHx8IGlzSW50MTZBcnJheVByZWRpY3Rpb24odmFsdWUpCiAgICAgICAgIHx8
IGlzSW50MzJBcnJheVByZWRpY3Rpb24odmFsdWUpCiAgICAgICAgIHx8IGlzVWludDhBcnJheVBy
ZWRpY3Rpb24odmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Fic3RyYWN0U3RhdGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dFN0YXRlLmNwcAppbmRleCAwYmVlYzlkYWVmZTEzYjU3M2JmZDQzNDY2MjUzYTc0ODEwMWQ1YTRj
Li42ZGY0MGNhNmY0NGMzMWVjOTc1NGRhMjM2ZjkxMWNhNDdiYjE5NjM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHAKQEAgLTExOCw4ICsxMTgs
NiBAQCB2b2lkIEFic3RyYWN0U3RhdGU6OmluaXRpYWxpemUoR3JhcGgmIGdyYXBoKQogICAgICAg
ICAgICAgcm9vdC0+dmFsdWVzQXRIZWFkLmFyZ3VtZW50KGkpLnNldChQcmVkaWN0SW50MzIpOwog
ICAgICAgICBlbHNlIGlmIChpc0FycmF5UHJlZGljdGlvbihwcmVkaWN0aW9uKSkKICAgICAgICAg
ICAgIHJvb3QtPnZhbHVlc0F0SGVhZC5hcmd1bWVudChpKS5zZXQoUHJlZGljdEFycmF5KTsKLSAg
ICAgICAgZWxzZSBpZiAoaXNCeXRlQXJyYXlQcmVkaWN0aW9uKHByZWRpY3Rpb24pKQotICAgICAg
ICAgICAgcm9vdC0+dmFsdWVzQXRIZWFkLmFyZ3VtZW50KGkpLnNldChQcmVkaWN0Qnl0ZUFycmF5
KTsKICAgICAgICAgZWxzZSBpZiAoaXNCb29sZWFuUHJlZGljdGlvbihwcmVkaWN0aW9uKSkKICAg
ICAgICAgICAgIHJvb3QtPnZhbHVlc0F0SGVhZC5hcmd1bWVudChpKS5zZXQoUHJlZGljdEJvb2xl
YW4pOwogICAgICAgICBlbHNlIGlmIChpc0ludDhBcnJheVByZWRpY3Rpb24ocHJlZGljdGlvbikp
CkBAIC0yNTgsOCArMjU2LDYgQEAgYm9vbCBBYnN0cmFjdFN0YXRlOjpleGVjdXRlKHVuc2lnbmVk
IGluZGV4SW5CbG9jaykKICAgICAgICAgICAgIGZvck5vZGUobm9kZS5jaGlsZDEoKSkuZmlsdGVy
KFByZWRpY3RJbnQzMik7CiAgICAgICAgIGVsc2UgaWYgKGlzQXJyYXlQcmVkaWN0aW9uKHByZWRp
Y3RlZFR5cGUpKQogICAgICAgICAgICAgZm9yTm9kZShub2RlLmNoaWxkMSgpKS5maWx0ZXIoUHJl
ZGljdEFycmF5KTsKLSAgICAgICAgZWxzZSBpZiAoaXNCeXRlQXJyYXlQcmVkaWN0aW9uKHByZWRp
Y3RlZFR5cGUpKQotICAgICAgICAgICAgZm9yTm9kZShub2RlLmNoaWxkMSgpKS5maWx0ZXIoUHJl
ZGljdEJ5dGVBcnJheSk7CiAgICAgICAgIGVsc2UgaWYgKGlzQm9vbGVhblByZWRpY3Rpb24ocHJl
ZGljdGVkVHlwZSkpCiAgICAgICAgICAgICBmb3JOb2RlKG5vZGUuY2hpbGQxKCkpLmZpbHRlcihQ
cmVkaWN0Qm9vbGVhbik7CiAgICAgICAgIApAQCAtNTExLDEyICs1MDcsNiBAQCBib29sIEFic3Ry
YWN0U3RhdGU6OmV4ZWN1dGUodW5zaWduZWQgaW5kZXhJbkJsb2NrKQogICAgICAgICAgICAgZm9y
Tm9kZShub2RlSW5kZXgpLnNldChQcmVkaWN0U3RyaW5nKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9Ci0gICAgICAgIGlmIChtX2dyYXBoW25vZGUuY2hpbGQxKCldLnNob3VsZFNwZWN1
bGF0ZUJ5dGVBcnJheSgpKSB7Ci0gICAgICAgICAgICBmb3JOb2RlKG5vZGUuY2hpbGQxKCkpLmZp
bHRlcihQcmVkaWN0Qnl0ZUFycmF5KTsKLSAgICAgICAgICAgIGZvck5vZGUobm9kZS5jaGlsZDIo
KSkuZmlsdGVyKFByZWRpY3RJbnQzMik7Ci0gICAgICAgICAgICBmb3JOb2RlKG5vZGVJbmRleCku
c2V0KFByZWRpY3RJbnQzMik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQogICAgICAg
ICAKICAgICAgICAgaWYgKG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0uc2hvdWxkU3BlY3VsYXRlSW50
OEFycmF5KCkpIHsKICAgICAgICAgICAgIGZvck5vZGUobm9kZS5jaGlsZDEoKSkuZmlsdGVyKFBy
ZWRpY3RJbnQ4QXJyYXkpOwpAQCAtNTk0LDE1ICs1ODQsNiBAQCBib29sIEFic3RyYWN0U3RhdGU6
OmV4ZWN1dGUodW5zaWduZWQgaW5kZXhJbkJsb2NrKQogICAgICAgICAgICAgZm9yTm9kZShub2Rl
SW5kZXgpLm1ha2VUb3AoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAg
IGlmIChtX2dyYXBoW25vZGUuY2hpbGQxKCldLnNob3VsZFNwZWN1bGF0ZUJ5dGVBcnJheSgpKSB7
Ci0gICAgICAgICAgICBmb3JOb2RlKG5vZGUuY2hpbGQxKCkpLmZpbHRlcihQcmVkaWN0Qnl0ZUFy
cmF5KTsKLSAgICAgICAgICAgIGZvck5vZGUobm9kZS5jaGlsZDIoKSkuZmlsdGVyKFByZWRpY3RJ
bnQzMik7Ci0gICAgICAgICAgICBpZiAobV9ncmFwaFtub2RlLmNoaWxkMygpXS5zaG91bGRTcGVj
dWxhdGVJbnRlZ2VyKCkpCi0gICAgICAgICAgICAgICAgZm9yTm9kZShub2RlLmNoaWxkMygpKS5m
aWx0ZXIoUHJlZGljdEludDMyKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBm
b3JOb2RlKG5vZGUuY2hpbGQzKCkpLmZpbHRlcihQcmVkaWN0TnVtYmVyKTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBpZiAobV9ncmFwaFtub2RlLmNo
aWxkMSgpXS5zaG91bGRTcGVjdWxhdGVJbnQ4QXJyYXkoKSkgewogICAgICAgICAgICAgZm9yTm9k
ZShub2RlLmNoaWxkMSgpKS5maWx0ZXIoUHJlZGljdEludDhBcnJheSk7CkBAIC04NjQsMTAgKzg0
NSw2IEBAIGJvb2wgQWJzdHJhY3RTdGF0ZTo6ZXhlY3V0ZSh1bnNpZ25lZCBpbmRleEluQmxvY2sp
CiAgICAgICAgIGZvck5vZGUobm9kZUluZGV4KS5zZXQoUHJlZGljdEludDMyKTsKICAgICAgICAg
YnJlYWs7CiAgICAgICAgIAotICAgIGNhc2UgR2V0Qnl0ZUFycmF5TGVuZ3RoOgotICAgICAgICBm
b3JOb2RlKG5vZGUuY2hpbGQxKCkpLmZpbHRlcihQcmVkaWN0Qnl0ZUFycmF5KTsKLSAgICAgICAg
Zm9yTm9kZShub2RlSW5kZXgpLnNldChQcmVkaWN0SW50MzIpOwotICAgICAgICBicmVhazsKICAg
ICBjYXNlIEdldEludDhBcnJheUxlbmd0aDoKICAgICAgICAgZm9yTm9kZShub2RlLmNoaWxkMSgp
KS5maWx0ZXIoUHJlZGljdEludDhBcnJheSk7CiAgICAgICAgIGZvck5vZGUobm9kZUluZGV4KS5z
ZXQoUHJlZGljdEludDMyKTsKQEAgLTkzMSwxMSArOTA4LDYgQEAgYm9vbCBBYnN0cmFjdFN0YXRl
OjpleGVjdXRlKHVuc2lnbmVkIGluZGV4SW5CbG9jaykKICAgICAgICAgICAgIGZvck5vZGUobm9k
ZUluZGV4KS5jbGVhcigpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAg
aWYgKG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0uc2hvdWxkU3BlY3VsYXRlQnl0ZUFycmF5KCkpIHsK
LSAgICAgICAgICAgIGZvck5vZGUobm9kZS5jaGlsZDEoKSkuZmlsdGVyKFByZWRpY3RCeXRlQXJy
YXkpOwotICAgICAgICAgICAgZm9yTm9kZShub2RlSW5kZXgpLmNsZWFyKCk7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgfQogICAgICAgICAKICAgICAgICAgaWYgKG1fZ3JhcGhbbm9kZS5j
aGlsZDEoKV0uc2hvdWxkU3BlY3VsYXRlSW50OEFycmF5KCkpIHsKICAgICAgICAgICAgIGZvck5v
ZGUobm9kZS5jaGlsZDEoKSkuZmlsdGVyKFByZWRpY3RJbnQ4QXJyYXkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NTRVBoYXNlLmNwcAppbmRleCAwMTVmMGZhZGJlMzRkZjc5NjY1ZjEx
YjA2MTk2MWFhYWEyZmJlODc3Li4wMjBiMWNmZDJiMzJmZmYyYWE3NzEyNWU1Mjc1ZmE0ZmE2ODU0
YmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NTRVBoYXNlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NTRVBoYXNlLmNwcApAQCAtNTcz
LDcgKzU3Myw2IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgQXJpdGhNaW46CiAgICAgICAgIGNh
c2UgQXJpdGhNYXg6CiAgICAgICAgIGNhc2UgQXJpdGhTcXJ0OgotICAgICAgICBjYXNlIEdldEJ5
dGVBcnJheUxlbmd0aDoKICAgICAgICAgY2FzZSBHZXRJbnQ4QXJyYXlMZW5ndGg6CiAgICAgICAg
IGNhc2UgR2V0SW50MTZBcnJheUxlbmd0aDoKICAgICAgICAgY2FzZSBHZXRJbnQzMkFycmF5TGVu
Z3RoOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXgg
ZjI4NDA2ZTRkNDdlMjIzYjlkOGZlMTFlYmVkZjE3YTIzYzg0MTkwOS4uMjQyZmRmODUyYzFmYzU3
MmQ1ZGY3NzQ5MzQxMDIzMWM0NTExNWYxNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC03Niw3ICs3Niw2IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICBib29sIGlzQXJyYXkgPSBpc0FycmF5UHJlZGljdGlv
bihtX2dyYXBoW25vZGUuY2hpbGQxKCldLnByZWRpY3Rpb24oKSk7CiAgICAgICAgICAgICBib29s
IGlzU3RyaW5nID0gaXNTdHJpbmdQcmVkaWN0aW9uKG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0ucHJl
ZGljdGlvbigpKTsKLSAgICAgICAgICAgIGJvb2wgaXNCeXRlQXJyYXkgPSBtX2dyYXBoW25vZGUu
Y2hpbGQxKCldLnNob3VsZFNwZWN1bGF0ZUJ5dGVBcnJheSgpOwogICAgICAgICAgICAgYm9vbCBp
c0ludDhBcnJheSA9IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0uc2hvdWxkU3BlY3VsYXRlSW50OEFy
cmF5KCk7CiAgICAgICAgICAgICBib29sIGlzSW50MTZBcnJheSA9IG1fZ3JhcGhbbm9kZS5jaGls
ZDEoKV0uc2hvdWxkU3BlY3VsYXRlSW50MTZBcnJheSgpOwogICAgICAgICAgICAgYm9vbCBpc0lu
dDMyQXJyYXkgPSBtX2dyYXBoW25vZGUuY2hpbGQxKCldLnNob3VsZFNwZWN1bGF0ZUludDMyQXJy
YXkoKTsKQEAgLTg2LDcgKzg1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJvb2wgaXNVaW50
MzJBcnJheSA9IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0uc2hvdWxkU3BlY3VsYXRlVWludDMyQXJy
YXkoKTsKICAgICAgICAgICAgIGJvb2wgaXNGbG9hdDMyQXJyYXkgPSBtX2dyYXBoW25vZGUuY2hp
bGQxKCldLnNob3VsZFNwZWN1bGF0ZUZsb2F0MzJBcnJheSgpOwogICAgICAgICAgICAgYm9vbCBp
c0Zsb2F0NjRBcnJheSA9IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0uc2hvdWxkU3BlY3VsYXRlRmxv
YXQ2NEFycmF5KCk7Ci0gICAgICAgICAgICBpZiAoIWlzQXJyYXkgJiYgIWlzU3RyaW5nICYmICFp
c0J5dGVBcnJheSAmJiAhaXNJbnQ4QXJyYXkgJiYgIWlzSW50MTZBcnJheSAmJiAhaXNJbnQzMkFy
cmF5ICYmICFpc1VpbnQ4QXJyYXkgJiYgIWlzVWludDhDbGFtcGVkQXJyYXkgJiYgIWlzVWludDE2
QXJyYXkgJiYgIWlzVWludDMyQXJyYXkgJiYgIWlzRmxvYXQzMkFycmF5ICYmICFpc0Zsb2F0NjRB
cnJheSkKKyAgICAgICAgICAgIGlmICghaXNBcnJheSAmJiAhaXNTdHJpbmcgJiYgIWlzSW50OEFy
cmF5ICYmICFpc0ludDE2QXJyYXkgJiYgIWlzSW50MzJBcnJheSAmJiAhaXNVaW50OEFycmF5ICYm
ICFpc1VpbnQ4Q2xhbXBlZEFycmF5ICYmICFpc1VpbnQxNkFycmF5ICYmICFpc1VpbnQzMkFycmF5
ICYmICFpc0Zsb2F0MzJBcnJheSAmJiAhaXNGbG9hdDY0QXJyYXkpCiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAKICNpZiBERkdfRU5BQkxFKERFQlVHX1BST1BBR0FUSU9OX1ZF
UkJPU0UpCkBAIC05Niw4ICs5NSw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgbm9kZS5z
ZXRPcChHZXRBcnJheUxlbmd0aCk7CiAgICAgICAgICAgICBlbHNlIGlmIChpc1N0cmluZykKICAg
ICAgICAgICAgICAgICBub2RlLnNldE9wKEdldFN0cmluZ0xlbmd0aCk7Ci0gICAgICAgICAgICBl
bHNlIGlmIChpc0J5dGVBcnJheSkKLSAgICAgICAgICAgICAgICBub2RlLnNldE9wKEdldEJ5dGVB
cnJheUxlbmd0aCk7CiAgICAgICAgICAgICBlbHNlIGlmIChpc0ludDhBcnJheSkKICAgICAgICAg
ICAgICAgICBub2RlLnNldE9wKEdldEludDhBcnJheUxlbmd0aCk7CiAgICAgICAgICAgICBlbHNl
IGlmIChpc0ludDE2QXJyYXkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCmluZGV4IDVl
ZjhjZjI4ZGY5MTIyMTYzYTllMTZiNTg4MzhhOWRjN2FjZjEyNWEuLjhmYTBiYjBlYzE3NTNhOTU5
MTc0ZTY2YzE5ZjNmMDhlZjliNWEwMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTm9kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5o
CkBAIC03MDAsMTEgKzcwMCw2IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgcmV0dXJuIGlzQXJy
YXlQcmVkaWN0aW9uKHByZWRpY3Rpb24oKSk7CiAgICAgfQogICAgIAotICAgIGJvb2wgc2hvdWxk
U3BlY3VsYXRlQnl0ZUFycmF5KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiAhIShwcmVkaWN0aW9u
KCkgJiBQcmVkaWN0Qnl0ZUFycmF5KTsKLSAgICB9Ci0gICAgCiAgICAgYm9vbCBzaG91bGRTcGVj
dWxhdGVJbnQ4QXJyYXkoKQogICAgIHsKICAgICAgICAgcmV0dXJuIGlzSW50OEFycmF5UHJlZGlj
dGlvbihwcmVkaWN0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5o
CmluZGV4IDE4MmJkYzRkNjIxNmE3MDA3N2MyNTFmOTczY2I3ODY0ZWM0YzRhN2QuLjhhMzgyOGMz
MTU3ZDBkNWEzYzNiNTkwYzc2YWZiYTUzNmQ2MTVkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR05vZGVUeXBlLmgKQEAgLTExOCw3ICsxMTgsNiBAQCBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oUHV0QnlPZmZzZXQsIE5vZGVNdXN0R2VuZXJhdGUgfCBO
b2RlQ2xvYmJlcnNXb3JsZCkgXAogICAgIG1hY3JvKEdldEFycmF5TGVuZ3RoLCBOb2RlUmVzdWx0
SW50MzIpIFwKICAgICBtYWNybyhHZXRTdHJpbmdMZW5ndGgsIE5vZGVSZXN1bHRJbnQzMikgXAot
ICAgIG1hY3JvKEdldEJ5dGVBcnJheUxlbmd0aCwgTm9kZVJlc3VsdEludDMyKSBcCiAgICAgbWFj
cm8oR2V0SW50OEFycmF5TGVuZ3RoLCBOb2RlUmVzdWx0SW50MzIpIFwKICAgICBtYWNybyhHZXRJ
bnQxNkFycmF5TGVuZ3RoLCBOb2RlUmVzdWx0SW50MzIpIFwKICAgICBtYWNybyhHZXRJbnQzMkFy
cmF5TGVuZ3RoLCBOb2RlUmVzdWx0SW50MzIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IGNjNGNjNDc5MmNlN2ExYzFhYWQxNWJmZTU1OWIxMGQw
ZGJhMzhhOGUuLjJmOTM5Mjk1YTAxMWIwZDE2YmIwZjA4ZWVlYzg3NzY4Y2EzZDFkZTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtMzQsNyArMzQs
NiBAQAogI2luY2x1ZGUgPHd0Zi9JbmxpbmVBU00uaD4KICNpbmNsdWRlICJJbnRlcnByZXRlci5o
IgogI2luY2x1ZGUgIkpTQWN0aXZhdGlvbi5oIgotI2luY2x1ZGUgIkpTQnl0ZUFycmF5LmgiCiAj
aW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCiAjaW5jbHVkZSAiSlNTdGF0aWNTY29wZU9iamVjdC5o
IgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKQEAgLTE2MiwyMCArMTYxLDYgQEAgc3RhdGljIGlu
bGluZSB2b2lkIHB1dEJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIHVp
bnQzMl90IGluZGV4LAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKGlzSlNCeXRl
QXJyYXkoYmFzZVZhbHVlKSAmJiBhc0J5dGVBcnJheShiYXNlVmFsdWUpLT5jYW5BY2Nlc3NJbmRl
eChpbmRleCkpIHsKLSAgICAgICAgSlNCeXRlQXJyYXkqIGJ5dGVBcnJheSA9IGFzQnl0ZUFycmF5
KGJhc2VWYWx1ZSk7Ci0gICAgICAgIC8vIEZJWE1FOiB0aGUgSklUc3R1YiB1c2VkIHRvIHJlbGlu
ayB0aGlzIHRvIGFuIG9wdGltaXplZCBmb3JtIQotICAgICAgICBpZiAodmFsdWUuaXNJbnQzMigp
KSB7Ci0gICAgICAgICAgICBieXRlQXJyYXktPnNldEluZGV4KGluZGV4LCB2YWx1ZS5hc0ludDMy
KCkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHZhbHVl
LmlzTnVtYmVyKCkpIHsKLSAgICAgICAgICAgIGJ5dGVBcnJheS0+c2V0SW5kZXgoaW5kZXgsIHZh
bHVlLmFzTnVtYmVyKCkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQot
CiAgICAgYmFzZVZhbHVlLnB1dEJ5SW5kZXgoZXhlYywgaW5kZXgsIHZhbHVlLCBzdHJpY3QpOwog
fQogCkBAIC0zMDEsMTAgKzI4Niw2IEBAIHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgZ2V0
QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIGJhc2UsIHVpbnQzMl90IGluCiAgICAgaWYg
KGlzSlNTdHJpbmcoYmFzZSkgJiYgYXNTdHJpbmcoYmFzZSktPmNhbkdldEluZGV4KGluZGV4KSkK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1N0cmluZyhiYXNlKS0+Z2V0SW5kZXgo
ZXhlYywgaW5kZXgpKTsKIAotICAgIC8vIEZJWE1FOiB0aGUgSklUc3R1YiB1c2VkIHRvIHJlbGlu
ayB0aGlzIHRvIGFuIG9wdGltaXplZCBmb3JtIQotICAgIGlmIChpc0pTQnl0ZUFycmF5KGJhc2Up
ICYmIGFzQnl0ZUFycmF5KGJhc2UpLT5jYW5BY2Nlc3NJbmRleChpbmRleCkpCi0gICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoYXNCeXRlQXJyYXkoYmFzZSktPmdldEluZGV4KGV4ZWMsIGlu
ZGV4KSk7Ci0KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoYmFzZSkuZ2V0KGV4
ZWMsIGluZGV4KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggY2RiZDZkM2FjMTJj
NGJmMDdhM2I4YzUwZTkwMzUwMGNhYzU4MjdjMi4uNTMxNzQ2MDRhYzFlNmNiM2VmNDM4OThmYjVj
NzE5NjM1NTVjNTk3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAgLTU2Miw3ICs1NjIsNiBA
QCBwcml2YXRlOgogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgUHV0QnlWYWxBbGlhczoKICAg
ICAgICAgY2FzZSBHZXRBcnJheUxlbmd0aDoKLSAgICAgICAgY2FzZSBHZXRCeXRlQXJyYXlMZW5n
dGg6CiAgICAgICAgIGNhc2UgR2V0SW50OEFycmF5TGVuZ3RoOgogICAgICAgICBjYXNlIEdldElu
dDE2QXJyYXlMZW5ndGg6CiAgICAgICAgIGNhc2UgR2V0SW50MzJBcnJheUxlbmd0aDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggOGU5
OGQ1N2YzZDliNWZkODI2NzhmOTEwNGVlYTZmNGQyYmU4MGNiNC4uMThkYjg1YzIyNjBhMDg3MTdl
MDE4YjM3MmFlMTRkNzhjOTMyZDYzNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTI4LDcgKzI4LDYgQEAKIAogI2lmIEVOQUJMRShE
RkdfSklUKQogCi0jaW5jbHVkZSAiSlNCeXRlQXJyYXkuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVy
LmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKQEAgLTExMTMsMTEgKzExMTIs
NiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjaGVja0FyZ3VtZW50VHlwZXMoKQogICAgICAgICAg
ICAgbV9qaXQubG9hZFB0cihKSVRDb21waWxlcjo6YWRkcmVzc0Zvcih2aXJ0dWFsUmVnaXN0ZXIp
LCB0ZW1wLmdwcigpKTsKICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwgdmFs
dWVTb3VyY2UsIG5vZGVJbmRleCwgbV9qaXQuYnJhbmNoVGVzdFB0cihNYWNyb0Fzc2VtYmxlcjo6
Tm9uWmVybywgdGVtcC5ncHIoKSwgR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyKSk7CiAgICAgICAg
ICAgICBzcGVjdWxhdGlvbkNoZWNrKEJhZFR5cGUsIHZhbHVlU291cmNlLCBub2RlSW5kZXgsIG1f
aml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKHRlbXAuZ3ByKCksIEpTQ2VsbDo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbVB0cigmSlNBcnJheTo6c19pbmZvKSkpOwotICAgICAgICB9IGVsc2Ug
aWYgKGlzQnl0ZUFycmF5UHJlZGljdGlvbihwcmVkaWN0ZWRUeXBlKSkgewotICAgICAgICAgICAg
R1BSVGVtcG9yYXJ5IHRlbXAodGhpcyk7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKEpJVENv
bXBpbGVyOjphZGRyZXNzRm9yKHZpcnR1YWxSZWdpc3RlciksIHRlbXAuZ3ByKCkpOwotICAgICAg
ICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCB2YWx1ZVNvdXJjZSwgbm9kZUluZGV4LCBt
X2ppdC5icmFuY2hUZXN0UHRyKE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLCB0ZW1wLmdwcigpLCBH
UFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpKTsKLSAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2so
QmFkVHlwZSwgdmFsdWVTb3VyY2UsIG5vZGVJbmRleCwgbV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNz
ZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3ModGVtcC5ncHIoKSwgSlND
ZWxsOjpjbGFzc0luZm9PZmZzZXQoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKCZK
U0J5dGVBcnJheTo6c19pbmZvKSkpOwogICAgICAgICB9IGVsc2UgaWYgKGlzQm9vbGVhblByZWRp
Y3Rpb24ocHJlZGljdGVkVHlwZSkpIHsKICAgICAgICAgICAgIEdQUlRlbXBvcmFyeSB0ZW1wKHRo
aXMpOwogICAgICAgICAgICAgbV9qaXQubG9hZFB0cihKSVRDb21waWxlcjo6YWRkcmVzc0Zvcih2
aXJ0dWFsUmVnaXN0ZXIpLCB0ZW1wLmdwcigpKTsKQEAgLTExNzgsMTIgKzExNzIsNiBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjaGVja0FyZ3VtZW50VHlwZXMoKQogICAgICAgICAgICAgc3BlY3Vs
YXRpb25DaGVjayhCYWRUeXBlLCB2YWx1ZVNvdXJjZSwgbm9kZUluZGV4LCBtX2ppdC5icmFuY2gz
MihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIHRlbXAuZ3ByKCksIFRydXN0ZWRJbW0zMihKU1Zh
bHVlOjpDZWxsVGFnKSkpOwogICAgICAgICAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjpw
YXlsb2FkRm9yKHZpcnR1YWxSZWdpc3RlciksIHRlbXAuZ3ByKCkpOwogICAgICAgICAgICAgc3Bl
Y3VsYXRpb25DaGVjayhCYWRUeXBlLCB2YWx1ZVNvdXJjZSwgbm9kZUluZGV4LCBtX2ppdC5icmFu
Y2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyh0
ZW1wLmdwcigpLCBKU0NlbGw6OmNsYXNzSW5mb09mZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRy
dXN0ZWRJbW1QdHIoJkpTQXJyYXk6OnNfaW5mbykpKTsKLSAgICAgICAgfSBlbHNlIGlmIChpc0J5
dGVBcnJheVByZWRpY3Rpb24ocHJlZGljdGVkVHlwZSkpIHsKLSAgICAgICAgICAgIEdQUlRlbXBv
cmFyeSB0ZW1wKHRoaXMpOwotICAgICAgICAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjp0
YWdGb3IodmlydHVhbFJlZ2lzdGVyKSwgdGVtcC5ncHIoKSk7Ci0gICAgICAgICAgICBzcGVjdWxh
dGlvbkNoZWNrKEJhZFR5cGUsIHZhbHVlU291cmNlLCBub2RlSW5kZXgsIG1faml0LmJyYW5jaDMy
KE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgdGVtcC5ncHIoKSwgVHJ1c3RlZEltbTMyKEpTVmFs
dWU6OkNlbGxUYWcpKSk7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnBh
eWxvYWRGb3IodmlydHVhbFJlZ2lzdGVyKSwgdGVtcC5ncHIoKSk7Ci0gICAgICAgICAgICBzcGVj
dWxhdGlvbkNoZWNrKEJhZFR5cGUsIHZhbHVlU291cmNlLCBub2RlSW5kZXgsIG1faml0LmJyYW5j
aFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHRl
bXAuZ3ByKCksIEpTQ2VsbDo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbVB0cigmSlNCeXRlQXJyYXk6OnNfaW5mbykpKTsKICAgICAgICAgfSBlbHNlIGlmIChp
c0Jvb2xlYW5QcmVkaWN0aW9uKHByZWRpY3RlZFR5cGUpKQogICAgICAgICAgICAgc3BlY3VsYXRp
b25DaGVjayhCYWRUeXBlLCB2YWx1ZVNvdXJjZSwgbm9kZUluZGV4LCBtX2ppdC5icmFuY2gzMihN
YWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIEpJVENvbXBpbGVyOjp0YWdGb3IodmlydHVhbFJlZ2lz
dGVyKSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkJvb2xlYW5UYWcpKSk7CiAgICAgICAgIGVsc2Ug
aWYgKGlzSW50OEFycmF5UHJlZGljdGlvbihwcmVkaWN0ZWRUeXBlKSkgewpAQCAtMTg4Miw4NSAr
MTg3MCw2IEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVDbGFtcERvdWJsZVRvQnl0ZShKSVRDb21waWxl
ciYgaml0LCBHUFJSZWcgcmVzdWx0LCBGUFJSZWcgc291CiAKIH0KIAotdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9yQnl0ZUFycmF5KEdQUlJlZyBiYXNlLCBHUFJSZWcgcHJv
cGVydHksIE5vZGUmIG5vZGUpCi17Ci0gICAgRWRnZSBiYXNlVXNlID0gbm9kZS5jaGlsZDEoKTsK
LSAgICBFZGdlIHZhbHVlVXNlID0gbm9kZS5jaGlsZDMoKTsKLSAgICAKLSAgICBpZiAoIWlzQnl0
ZUFycmF5UHJlZGljdGlvbihtX3N0YXRlLmZvck5vZGUoYmFzZVVzZSkubV90eXBlKSkKLSAgICAg
ICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCBKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbChi
YXNlKSwgYmFzZVVzZS5pbmRleCgpLCBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5v
dEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlLCBKU0NlbGw6OmNsYXNzSW5mb09m
ZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoJkpTQnl0ZUFycmF5OjpzX2lu
Zm8pKSk7Ci0gICAgR1BSVGVtcG9yYXJ5IHZhbHVlOwotICAgIEdQUlJlZyB2YWx1ZUdQUjsKLQot
ICAgIGlmIChhdCh2YWx1ZVVzZSkuaXNDb25zdGFudCgpKSB7Ci0gICAgICAgIEpTVmFsdWUganNW
YWx1ZSA9IHZhbHVlT2ZKU0NvbnN0YW50KHZhbHVlVXNlLmluZGV4KCkpOwotICAgICAgICBpZiAo
IWpzVmFsdWUuaXNOdW1iZXIoKSkgewotICAgICAgICAgICAgdGVybWluYXRlU3BlY3VsYXRpdmVF
eGVjdXRpb24oVW5jb3VudGFibGUsIEpTVmFsdWVSZWdzKCksIE5vTm9kZSk7Ci0gICAgICAgICAg
ICBub1Jlc3VsdChtX2NvbXBpbGVJbmRleCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IH0KLSAgICAgICAgaW50IGNsYW1wZWRWYWx1ZSA9IGNsYW1wRG91YmxlVG9CeXRlKGpzVmFsdWUu
YXNOdW1iZXIoKSk7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSBzY3JhdGNoKHRoaXMpOwotICAgICAg
ICBHUFJSZWcgc2NyYXRjaFJlZyA9IHNjcmF0Y2guZ3ByKCk7Ci0gICAgICAgIG1faml0Lm1vdmUo
SW1tMzIoY2xhbXBlZFZhbHVlKSwgc2NyYXRjaFJlZyk7Ci0gICAgICAgIHZhbHVlLmFkb3B0KHNj
cmF0Y2gpOwotICAgICAgICB2YWx1ZUdQUiA9IHNjcmF0Y2hSZWc7Ci0gICAgfSBlbHNlIGlmIChh
dCh2YWx1ZVVzZSkuc2hvdWxkU3BlY3VsYXRlSW50ZWdlcigpKSB7Ci0gICAgICAgIFNwZWN1bGF0
ZUludGVnZXJPcGVyYW5kIHZhbHVlT3AodGhpcywgdmFsdWVVc2UpOwotICAgICAgICBHUFJUZW1w
b3Jhcnkgc2NyYXRjaCh0aGlzKTsKLSAgICAgICAgR1BSUmVnIHNjcmF0Y2hSZWcgPSBzY3JhdGNo
LmdwcigpOwotICAgICAgICBtX2ppdC5tb3ZlKHZhbHVlT3AuZ3ByKCksIHNjcmF0Y2hSZWcpOwot
ICAgICAgICBjb21waWxlQ2xhbXBJbnRlZ2VyVG9CeXRlKG1faml0LCBzY3JhdGNoUmVnKTsKLSAg
ICAgICAgdmFsdWUuYWRvcHQoc2NyYXRjaCk7Ci0gICAgICAgIHZhbHVlR1BSID0gc2NyYXRjaFJl
ZzsKLSAgICB9IGVsc2UgewotICAgICAgICBTcGVjdWxhdGVEb3VibGVPcGVyYW5kIHZhbHVlT3Ao
dGhpcywgdmFsdWVVc2UpOwotICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwotICAg
ICAgICBGUFJUZW1wb3JhcnkgZmxvYXRTY3JhdGNoKHRoaXMpOwotICAgICAgICBGUFJSZWcgZnBy
ID0gdmFsdWVPcC5mcHIoKTsKLSAgICAgICAgR1BSUmVnIGdwciA9IHJlc3VsdC5ncHIoKTsKLSAg
ICAgICAgY29tcGlsZUNsYW1wRG91YmxlVG9CeXRlKG1faml0LCBncHIsIGZwciwgZmxvYXRTY3Jh
dGNoLmZwcigpKTsKLSAgICAgICAgdmFsdWUuYWRvcHQocmVzdWx0KTsKLSAgICAgICAgdmFsdWVH
UFIgPSBncHI7Ci0gICAgfQotICAgIEFTU0VSVF9VTlVTRUQodmFsdWVHUFIsIHZhbHVlR1BSICE9
IHByb3BlcnR5KTsKLSAgICBBU1NFUlQodmFsdWVHUFIgIT0gYmFzZSk7Ci0gICAgR1BSVGVtcG9y
YXJ5IHN0b3JhZ2UodGhpcyk7Ci0gICAgR1BSUmVnIHN0b3JhZ2VSZWcgPSBzdG9yYWdlLmdwcigp
OwotICAgIEFTU0VSVCh2YWx1ZUdQUiAhPSBzdG9yYWdlUmVnKTsKLSAgICBtX2ppdC5sb2FkUHRy
KE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2UsIEpTQnl0ZUFycmF5OjpvZmZzZXRPZlN0b3Jh
Z2UoKSksIHN0b3JhZ2VSZWcpOwotICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG91dE9mQm91bmRz
ID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHks
IE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ5dGVBcnJheTo6b2Zmc2V0T2ZT
aXplKCkpKTsKLSAgICBtX2ppdC5zdG9yZTgodmFsdWUuZ3ByKCksIE1hY3JvQXNzZW1ibGVyOjpC
YXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHksIE1hY3JvQXNzZW1ibGVyOjpUaW1lc09uZSwg
Qnl0ZUFycmF5OjpvZmZzZXRPZkRhdGEoKSkpOwotICAgIG91dE9mQm91bmRzLmxpbmsoJm1faml0
KTsKLSAgICBub1Jlc3VsdChtX2NvbXBpbGVJbmRleCk7Ci19Ci0KLXZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVHZXRCeVZhbE9uQnl0ZUFycmF5KE5vZGUmIG5vZGUpCi17Ci0gICAgU3BlY3Vs
YXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLmNoaWxkMSgpKTsKLSAgICBTcGVjdWxhdGVT
dHJpY3RJbnQzMk9wZXJhbmQgcHJvcGVydHkodGhpcywgbm9kZS5jaGlsZDIoKSk7Ci0KLSAgICBH
UFJSZWcgYmFzZVJlZyA9IGJhc2UuZ3ByKCk7Ci0gICAgR1BSUmVnIHByb3BlcnR5UmVnID0gcHJv
cGVydHkuZ3ByKCk7Ci0KLSAgICBpZiAoIWlzQnl0ZUFycmF5UHJlZGljdGlvbihtX3N0YXRlLmZv
ck5vZGUobm9kZS5jaGlsZDEoKSkubV90eXBlKSkgewotICAgICAgICB0ZXJtaW5hdGVTcGVjdWxh
dGl2ZUV4ZWN1dGlvbihVbmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlKTsKLSAgICAg
ICAgbm9SZXN1bHQobV9jb21waWxlSW5kZXgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgLy8gTG9hZCB0aGUgY2hhcmFjdGVyIGludG8gc2NyYXRjaFJlZwotICAgIEdQUlRlbXBvcmFy
eSBzdG9yYWdlKHRoaXMpOwotICAgIEdQUlJlZyBzdG9yYWdlUmVnID0gc3RvcmFnZS5ncHIoKTsK
LSAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIEpTQnl0
ZUFycmF5OjpvZmZzZXRPZlN0b3JhZ2UoKSksIHN0b3JhZ2VSZWcpOwotICAgIAotICAgIC8vIHVu
c2lnbmVkIGNvbXBhcmlzb24gc28gd2UgY2FuIGZpbHRlciBvdXQgbmVnYXRpdmUgaW5kaWNlcyBh
bmQgaW5kaWNlcyB0aGF0IGFyZSB0b28gbGFyZ2UKLSAgICBzcGVjdWxhdGlvbkNoZWNrKFVuY291
bnRhYmxlLCBKU1ZhbHVlUmVncygpLCBOb05vZGUsIG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1i
bGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhz
dG9yYWdlUmVnLCBCeXRlQXJyYXk6Om9mZnNldE9mU2l6ZSgpKSkpOwotCi0gICAgbV9qaXQubG9h
ZDgoTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFj
cm9Bc3NlbWJsZXI6OlRpbWVzT25lLCBCeXRlQXJyYXk6Om9mZnNldE9mRGF0YSgpKSwgc3RvcmFn
ZVJlZyk7Ci0gICAgaW50ZWdlclJlc3VsdChzdG9yYWdlUmVnLCBtX2NvbXBpbGVJbmRleCk7Ci19
Ci0KIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRUeXBlZEFycmF5TGVuZ3RoKGNvbnN0
IFR5cGVkQXJyYXlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBOb2RlJiBub2RlLCBib29sIG5lZWRz
U3BlY3VsYXRpb25DaGVjaykKIHsKICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMs
IG5vZGUuY2hpbGQxKCkpOwpAQCAtMzA0MSwxMCArMjk1MCw2IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVHZXRJbmRleGVkUHJvcGVydHlTdG9yYWdlKE5vZGUmIG5vZGUpCiAgICAgICAg
IHNwZWN1bGF0aW9uQ2hlY2soVW5jb3VudGFibGUsIEpTVmFsdWVSZWdzKCksIE5vTm9kZSwgbV9q
aXQuYnJhbmNoVGVzdDMyKE1hY3JvQXNzZW1ibGVyOjpaZXJvLCBzdG9yYWdlUmVnKSk7CiAKICAg
ICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBT
dHJpbmdJbXBsOjpkYXRhT2Zmc2V0KCkpLCBzdG9yYWdlUmVnKTsKLSAgICB9IGVsc2UgaWYgKGF0
KG5vZGUuY2hpbGQxKCkpLnNob3VsZFNwZWN1bGF0ZUJ5dGVBcnJheSgpKSB7Ci0gICAgICAgIGlm
ICghaXNCeXRlQXJyYXlQcmVkaWN0aW9uKG1fc3RhdGUuZm9yTm9kZShub2RlLmNoaWxkMSgpKS5t
X3R5cGUpKQotICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCBKU1ZhbHVlU291
cmNlOjp1bmJveGVkQ2VsbChiYXNlUmVnKSwgbm9kZS5jaGlsZDEoKSwgbV9qaXQuYnJhbmNoUHRy
KE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJl
ZywgSlNDZWxsOjpjbGFzc0luZm9PZmZzZXQoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
UHRyKCZKU0J5dGVBcnJheTo6c19pbmZvKSkpOwotICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIEpTQnl0ZUFycmF5OjpvZmZzZXRPZlN0b3JhZ2Uo
KSksIHN0b3JhZ2VSZWcpOwogICAgIH0gZWxzZSBpZiAoYXQobm9kZS5jaGlsZDEoKSkuc2hvdWxk
U3BlY3VsYXRlSW50OEFycmF5KCkpIHsKICAgICAgICAgY29uc3QgVHlwZWRBcnJheURlc2NyaXB0
b3ImIGRlc2NyaXB0b3IgPSBtX2ppdC5nbG9iYWxEYXRhKCktPmludDhBcnJheURlc2NyaXB0b3Io
KTsKICAgICAgICAgaWYgKCFpc0ludDhBcnJheVByZWRpY3Rpb24obV9zdGF0ZS5mb3JOb2RlKG5v
ZGUuY2hpbGQxKCkpLm1fdHlwZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmgKaW5kZXggNmE0NDFiZjI5MjgzNzVlODRjNDk2ZGMzNWQzZGFkYzM0YmJh
ZjZlZC4uMjJjOWMxMDE5Mjg5YzJkOGE5NDFjMGNiODM2NGI1MTBmOTFlMzExOSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtODIsNyArODIs
NyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBpZiAoaXNJbnQzMlByZWRpY3Rpb24ocHJlZGlj
dGlvbikpCiAgICAgICAgICAgICByZXR1cm4gVmFsdWVTb3VyY2UoSW50MzJJblJlZ2lzdGVyRmls
ZSk7Ci0gICAgICAgIGlmIChpc0FycmF5UHJlZGljdGlvbihwcmVkaWN0aW9uKSB8fCBpc0J5dGVB
cnJheVByZWRpY3Rpb24ocHJlZGljdGlvbikpCisgICAgICAgIGlmIChpc0FycmF5UHJlZGljdGlv
bihwcmVkaWN0aW9uKSkKICAgICAgICAgICAgIHJldHVybiBWYWx1ZVNvdXJjZShDZWxsSW5SZWdp
c3RlckZpbGUpOwogICAgICAgICBpZiAoaXNCb29sZWFuUHJlZGljdGlvbihwcmVkaWN0aW9uKSkK
ICAgICAgICAgICAgIHJldHVybiBWYWx1ZVNvdXJjZShCb29sZWFuSW5SZWdpc3RlckZpbGUpOwpA
QCAtMTc1Myw4ICsxNzUzLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbXBpbGVVSW50MzJUb051
bWJlcihOb2RlJik7CiAgICAgdm9pZCBjb21waWxlRG91YmxlQXNJbnQzMihOb2RlJik7CiAgICAg
dm9pZCBjb21waWxlSW50MzJUb0RvdWJsZShOb2RlJik7Ci0gICAgdm9pZCBjb21waWxlR2V0QnlW
YWxPbkJ5dGVBcnJheShOb2RlJik7Ci0gICAgdm9pZCBjb21waWxlUHV0QnlWYWxGb3JCeXRlQXJy
YXkoR1BSUmVnIGJhc2UsIEdQUlJlZyBwcm9wZXJ0eSwgTm9kZSYpOwogICAgIHZvaWQgY29tcGls
ZUFkZChOb2RlJik7CiAgICAgdm9pZCBjb21waWxlQXJpdGhTdWIoTm9kZSYpOwogICAgIHZvaWQg
Y29tcGlsZUFyaXRoTmVnYXRlKE5vZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IDBkYzFmZDNmM2VmNzI5ODg0
NjllYTk4NmIzMzE3ODQ2OTkzYjJmMGIuLmMxNTZlODFkMDBkOWIzODFhNjNhYjYxY2EzYjk2Yzlk
ODllMjBhYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAtMjksOCArMjksNiBAQAogCiAjaWYgRU5BQkxFKERGR19K
SVQpCiAKLSNpbmNsdWRlICJKU0J5dGVBcnJheS5oIgotCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIERGRyB7CiAKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQpAQCAtMTgyNCw3ICsxODIyLDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBpZiAoaXNBcnJheVByZWRpY3Rp
b24ocHJlZGljdGlvbikgfHwgaXNCeXRlQXJyYXlQcmVkaWN0aW9uKHByZWRpY3Rpb24pKSB7Cisg
ICAgICAgICAgICBpZiAoaXNBcnJheVByZWRpY3Rpb24ocHJlZGljdGlvbikpIHsKICAgICAgICAg
ICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwogICAgICAgICAgICAgICAgIG1faml0
LmxvYWQzMihKSVRDb21waWxlcjo6cGF5bG9hZEZvcihub2RlLmxvY2FsKCkpLCByZXN1bHQuZ3By
KCkpOwogCkBAIC0xOTQzLDE2ICsxOTQxLDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZShOb2RlJiBub2RlKQogICAgICAgICAgICAgICAgIHZhbHVlU291cmNlUmVmZXJlbmNlRm9yT3Bl
cmFuZChub2RlLmxvY2FsKCkpID0gVmFsdWVTb3VyY2UoQ2VsbEluUmVnaXN0ZXJGaWxlKTsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChpc0J5
dGVBcnJheVByZWRpY3Rpb24ocHJlZGljdGVkVHlwZSkpIHsKLSAgICAgICAgICAgICAgICBTcGVj
dWxhdGVDZWxsT3BlcmFuZCBjZWxsKHRoaXMsIG5vZGUuY2hpbGQxKCkpOwotICAgICAgICAgICAg
ICAgIEdQUlJlZyBjZWxsR1BSID0gY2VsbC5ncHIoKTsKLSAgICAgICAgICAgICAgICBpZiAoIWlz
Qnl0ZUFycmF5UHJlZGljdGlvbihtX3N0YXRlLmZvck5vZGUobm9kZS5jaGlsZDEoKSkubV90eXBl
KSkKLSAgICAgICAgICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCBKU1ZhbHVl
U291cmNlOjp1bmJveGVkQ2VsbChjZWxsR1BSKSwgbm9kZS5jaGlsZDEoKSwgbV9qaXQuYnJhbmNo
UHRyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoY2Vs
bEdQUiwgSlNDZWxsOjpjbGFzc0luZm9PZmZzZXQoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tUHRyKCZKU0J5dGVBcnJheTo6c19pbmZvKSkpOwotICAgICAgICAgICAgICAgIG1faml0LnN0
b3JlUHRyKGNlbGxHUFIsIEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKG5vZGUubG9jYWwoKSkpOwot
ICAgICAgICAgICAgICAgIG5vUmVzdWx0KG1fY29tcGlsZUluZGV4KTsKLSAgICAgICAgICAgICAg
ICB2YWx1ZVNvdXJjZVJlZmVyZW5jZUZvck9wZXJhbmQobm9kZS5sb2NhbCgpKSA9IFZhbHVlU291
cmNlKENlbGxJblJlZ2lzdGVyRmlsZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICB9CiAgICAgICAgICAgICBpZiAoaXNCb29sZWFuUHJlZGljdGlvbihwcmVkaWN0ZWRUeXBl
KSkgewogICAgICAgICAgICAgICAgIFNwZWN1bGF0ZUJvb2xlYW5PcGVyYW5kIHZhbHVlKHRoaXMs
IG5vZGUuY2hpbGQxKCkpOwogICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIodmFsdWUuZ3By
KCksIEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKG5vZGUubG9jYWwoKSkpOwpAQCAtMjI3OCwxMyAr
MjI2Niw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBpZiAoYXQobm9kZS5j
aGlsZDEoKSkuc2hvdWxkU3BlY3VsYXRlQnl0ZUFycmF5KCkpIHsKLSAgICAgICAgICAgIGNvbXBp
bGVHZXRCeVZhbE9uQnl0ZUFycmF5KG5vZGUpOwotICAgICAgICAgICAgaWYgKCFtX2NvbXBpbGVP
a2F5KQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGJyZWFrOyAgICAgICAg
ICAgIAotICAgICAgICB9Ci0gICAgICAgIAogICAgICAgICBpZiAoYXQobm9kZS5jaGlsZDEoKSku
c2hvdWxkU3BlY3VsYXRlSW50OEFycmF5KCkpIHsKICAgICAgICAgICAgIGNvbXBpbGVHZXRCeVZh
bE9uSW50VHlwZWRBcnJheShtX2ppdC5nbG9iYWxEYXRhKCktPmludDhBcnJheURlc2NyaXB0b3Io
KSwgbm9kZSwgc2l6ZW9mKGludDhfdCksIGlzSW50OEFycmF5UHJlZGljdGlvbihtX3N0YXRlLmZv
ck5vZGUobm9kZS5jaGlsZDEoKSkubV90eXBlKSA/IE5vVHlwZWRBcnJheVR5cGVTcGVjQ2hlY2sg
OiBBbGxUeXBlZEFycmF5U3BlY0NoZWNrcywgU2lnbmVkVHlwZWRBcnJheSk7CiAgICAgICAgICAg
ICBpZiAoIW1fY29tcGlsZU9rYXkpCkBAIC0yNDA3LDE1ICsyMzg4LDYgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogCiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVy
YW5kIGJhc2UodGhpcywgbm9kZS5jaGlsZDEoKSk7CiAgICAgICAgIFNwZWN1bGF0ZVN0cmljdElu
dDMyT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBub2RlLmNoaWxkMigpKTsKLSAgICAgICAgaWYgKGF0
KG5vZGUuY2hpbGQxKCkpLnNob3VsZFNwZWN1bGF0ZUJ5dGVBcnJheSgpKSB7Ci0gICAgICAgICAg
ICBjb21waWxlUHV0QnlWYWxGb3JCeXRlQXJyYXkoYmFzZS5ncHIoKSwgcHJvcGVydHkuZ3ByKCks
IG5vZGUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGF0KG5v
ZGUuY2hpbGQxKCkpLnNob3VsZFNwZWN1bGF0ZUJ5dGVBcnJheSgpKSB7Ci0gICAgICAgICAgICBj
b21waWxlUHV0QnlWYWxGb3JCeXRlQXJyYXkoYmFzZS5ncHIoKSwgcHJvcGVydHkuZ3ByKCksIG5v
ZGUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgCiAgICAgICAgIGlm
IChhdChub2RlLmNoaWxkMSgpKS5zaG91bGRTcGVjdWxhdGVJbnQ4QXJyYXkoKSkgewogICAgICAg
ICAgICAgY29tcGlsZVB1dEJ5VmFsRm9ySW50VHlwZWRBcnJheShtX2ppdC5nbG9iYWxEYXRhKCkt
PmludDhBcnJheURlc2NyaXB0b3IoKSwgYmFzZS5ncHIoKSwgcHJvcGVydHkuZ3ByKCksIG5vZGUs
IHNpemVvZihpbnQ4X3QpLCBpc0ludDhBcnJheVByZWRpY3Rpb24obV9zdGF0ZS5mb3JOb2RlKG5v
ZGUuY2hpbGQxKCkpLm1fdHlwZSkgPyBOb1R5cGVkQXJyYXlUeXBlU3BlY0NoZWNrIDogQWxsVHlw
ZWRBcnJheVNwZWNDaGVja3MsIFNpZ25lZFR5cGVkQXJyYXkpOwogICAgICAgICAgICAgaWYgKCFt
X2NvbXBpbGVPa2F5KQpAQCAtMjU1NCwxMSArMjUyNiw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0
aGlzLCBub2RlLmNoaWxkMSgpKTsKICAgICAgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5k
IHByb3BlcnR5KHRoaXMsIG5vZGUuY2hpbGQyKCkpOwogCi0gICAgICAgIGlmIChhdChub2RlLmNo
aWxkMSgpKS5zaG91bGRTcGVjdWxhdGVCeXRlQXJyYXkoKSkgewotICAgICAgICAgICAgY29tcGls
ZVB1dEJ5VmFsRm9yQnl0ZUFycmF5KGJhc2UuZ3ByKCksIHByb3BlcnR5LmdwcigpLCBub2RlKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIAogICAgICAgICBpZiAoYXQo
bm9kZS5jaGlsZDEoKSkuc2hvdWxkU3BlY3VsYXRlSW50OEFycmF5KCkpIHsKICAgICAgICAgICAg
IGNvbXBpbGVQdXRCeVZhbEZvckludFR5cGVkQXJyYXkobV9qaXQuZ2xvYmFsRGF0YSgpLT5pbnQ4
QXJyYXlEZXNjcmlwdG9yKCksIGJhc2UuZ3ByKCksIHByb3BlcnR5LmdwcigpLCBub2RlLCBzaXpl
b2YoaW50OF90KSwgTm9UeXBlZEFycmF5U3BlY0NoZWNrLCBTaWduZWRUeXBlZEFycmF5KTsKICAg
ICAgICAgICAgIGlmICghbV9jb21waWxlT2theSkKQEAgLTMzMjksMjIgKzMyOTYsNiBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAg
IH0KIAotICAgIGNhc2UgR2V0Qnl0ZUFycmF5TGVuZ3RoOiB7Ci0gICAgICAgIFNwZWN1bGF0ZUNl
bGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS5jaGlsZDEoKSk7Ci0gICAgICAgIEdQUlJlZyBiYXNl
R1BSID0gYmFzZS5ncHIoKTsKLSAgICAgICAgCi0gICAgICAgIGlmICghaXNCeXRlQXJyYXlQcmVk
aWN0aW9uKG1fc3RhdGUuZm9yTm9kZShub2RlLmNoaWxkMSgpKS5tX3R5cGUpKQotICAgICAgICAg
ICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCBKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbChi
YXNlR1BSKSwgbm9kZS5jaGlsZDEoKSwgbV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpO
b3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZUdQUiwgSlNDZWxsOjpjbGFzc0lu
Zm9PZmZzZXQoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKCZKU0J5dGVBcnJheTo6
c19pbmZvKSkpOwotICAgICAgICAKLSAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsK
LSAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKLSAgICAgICAgCi0gICAg
ICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZUdQUiwgSlNCeXRl
QXJyYXk6Om9mZnNldE9mU3RvcmFnZSgpKSwgcmVzdWx0R1BSKTsKLSAgICAgICAgbV9qaXQubG9h
ZDMyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgQnl0ZUFycmF5OjpvZmZzZXRP
ZlNpemUoKSksIHJlc3VsdEdQUik7Ci0gICAgICAgIAotICAgICAgICBpbnRlZ2VyUmVzdWx0KHJl
c3VsdEdQUiwgbV9jb21waWxlSW5kZXgpOwotICAgICAgICBicmVhazsKLSAgICB9CiAgICAgY2Fz
ZSBHZXRJbnQ4QXJyYXlMZW5ndGg6IHsKICAgICAgICAgY29tcGlsZUdldFR5cGVkQXJyYXlMZW5n
dGgobV9qaXQuZ2xvYmFsRGF0YSgpLT5pbnQ4QXJyYXlEZXNjcmlwdG9yKCksIG5vZGUsICFpc0lu
dDhBcnJheVByZWRpY3Rpb24obV9zdGF0ZS5mb3JOb2RlKG5vZGUuY2hpbGQxKCkpLm1fdHlwZSkp
OwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IDhjYzUzNWY2MzRmZDRlOTRkYjEwOWNkMjZlMGUyZGM3
ZWQ1Y2E2YmEuLmE0NmY4ZjI2Mjk2YzE0OWQxMjgxZDYwN2ZlZWEwM2ZjMTIwNWJiNjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApA
QCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRGR1NwZWN1
bGF0aXZlSklULmgiCiAKLSNpbmNsdWRlICJKU0J5dGVBcnJheS5oIgotCiAjaWYgRU5BQkxFKERG
R19KSVQpCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKQEAgLTIwMjEsMTYgKzIw
MTksNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAgICAg
ICAgICAgICAgdmFsdWVTb3VyY2VSZWZlcmVuY2VGb3JPcGVyYW5kKG5vZGUubG9jYWwoKSkgPSBW
YWx1ZVNvdXJjZShDZWxsSW5SZWdpc3RlckZpbGUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGlzQnl0ZUFycmF5UHJlZGljdGlvbihwcmVk
aWN0ZWRUeXBlKSkgewotICAgICAgICAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGNlbGwo
dGhpcywgbm9kZS5jaGlsZDEoKSk7Ci0gICAgICAgICAgICAgICAgR1BSUmVnIGNlbGxHUFIgPSBj
ZWxsLmdwcigpOwotICAgICAgICAgICAgICAgIGlmICghaXNCeXRlQXJyYXlQcmVkaWN0aW9uKG1f
c3RhdGUuZm9yTm9kZShub2RlLmNoaWxkMSgpKS5tX3R5cGUpKQotICAgICAgICAgICAgICAgICAg
ICBzcGVjdWxhdGlvbkNoZWNrKEJhZFR5cGUsIEpTVmFsdWVSZWdzKGNlbGxHUFIpLCBub2RlLmNo
aWxkMSgpLCBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBNYWNyb0Fz
c2VtYmxlcjo6QWRkcmVzcyhjZWxsR1BSLCBKU0NlbGw6OmNsYXNzSW5mb09mZnNldCgpKSwgTWFj
cm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoJkpTQnl0ZUFycmF5OjpzX2luZm8pKSk7Ci0gICAg
ICAgICAgICAgICAgbV9qaXQuc3RvcmVQdHIoY2VsbEdQUiwgSklUQ29tcGlsZXI6OmFkZHJlc3NG
b3Iobm9kZS5sb2NhbCgpKSk7Ci0gICAgICAgICAgICAgICAgbm9SZXN1bHQobV9jb21waWxlSW5k
ZXgpOwotICAgICAgICAgICAgICAgIHZhbHVlU291cmNlUmVmZXJlbmNlRm9yT3BlcmFuZChub2Rl
LmxvY2FsKCkpID0gVmFsdWVTb3VyY2UoQ2VsbEluUmVnaXN0ZXJGaWxlKTsKLSAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChpc0Jvb2xlYW5QcmVk
aWN0aW9uKHByZWRpY3RlZFR5cGUpKSB7CiAgICAgICAgICAgICAgICAgU3BlY3VsYXRlQm9vbGVh
bk9wZXJhbmQgYm9vbGVhbih0aGlzLCBub2RlLmNoaWxkMSgpKTsKICAgICAgICAgICAgICAgICBt
X2ppdC5zdG9yZVB0cihib29sZWFuLmdwcigpLCBKSVRDb21waWxlcjo6YWRkcmVzc0Zvcihub2Rl
LmxvY2FsKCkpKTsKQEAgLTIzNTEsMTMgKzIzMzksNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUmIG5vZGUpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAg
ICAgIGlmIChhdChub2RlLmNoaWxkMSgpKS5zaG91bGRTcGVjdWxhdGVCeXRlQXJyYXkoKSkgewot
ICAgICAgICAgICAgY29tcGlsZUdldEJ5VmFsT25CeXRlQXJyYXkobm9kZSk7Ci0gICAgICAgICAg
ICBpZiAoIW1fY29tcGlsZU9rYXkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAg
ICAgYnJlYWs7ICAgICAgICAgICAgCi0gICAgICAgIH0KLSAgICAgICAgCiAgICAgICAgIGlmIChh
dChub2RlLmNoaWxkMSgpKS5zaG91bGRTcGVjdWxhdGVJbnQ4QXJyYXkoKSkgewogICAgICAgICAg
ICAgY29tcGlsZUdldEJ5VmFsT25JbnRUeXBlZEFycmF5KG1faml0Lmdsb2JhbERhdGEoKS0+aW50
OEFycmF5RGVzY3JpcHRvcigpLCBub2RlLCBzaXplb2YoaW50OF90KSwgaXNJbnQ4QXJyYXlQcmVk
aWN0aW9uKG1fc3RhdGUuZm9yTm9kZShub2RlLmNoaWxkMSgpKS5tX3R5cGUpID8gTm9UeXBlZEFy
cmF5VHlwZVNwZWNDaGVjayA6IEFsbFR5cGVkQXJyYXlTcGVjQ2hlY2tzLCBTaWduZWRUeXBlZEFy
cmF5KTsKICAgICAgICAgICAgIGlmICghbV9jb21waWxlT2theSkKQEAgLTI0NzIsMTEgKzI0NTMs
NiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAKICAgICAgICAg
U3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLmNoaWxkMSgpKTsKICAgICAgICAg
U3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kIHByb3BlcnR5KHRoaXMsIG5vZGUuY2hpbGQyKCkp
OwotICAgICAgICBpZiAoYXQobm9kZS5jaGlsZDEoKSkuc2hvdWxkU3BlY3VsYXRlQnl0ZUFycmF5
KCkpIHsKLSAgICAgICAgICAgIGNvbXBpbGVQdXRCeVZhbEZvckJ5dGVBcnJheShiYXNlLmdwcigp
LCBwcm9wZXJ0eS5ncHIoKSwgbm9kZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQot
ICAgICAgICAKICAgICAgICAgaWYgKGF0KG5vZGUuY2hpbGQxKCkpLnNob3VsZFNwZWN1bGF0ZUlu
dDhBcnJheSgpKSB7CiAgICAgICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5
KG1faml0Lmdsb2JhbERhdGEoKS0+aW50OEFycmF5RGVzY3JpcHRvcigpLCBiYXNlLmdwcigpLCBw
cm9wZXJ0eS5ncHIoKSwgbm9kZSwgc2l6ZW9mKGludDhfdCksIGlzSW50OEFycmF5UHJlZGljdGlv
bihtX3N0YXRlLmZvck5vZGUobm9kZS5jaGlsZDEoKSkubV90eXBlKSA/IE5vVHlwZWRBcnJheVR5
cGVTcGVjQ2hlY2sgOiBBbGxUeXBlZEFycmF5U3BlY0NoZWNrcywgU2lnbmVkVHlwZWRBcnJheSk7
CiAgICAgICAgICAgICBpZiAoIW1fY29tcGlsZU9rYXkpCkBAIC0yNjEwLDExICsyNTg2LDYgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogCiAgICAgICAgIFNwZWN1
bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS5jaGlsZDEoKSk7CiAgICAgICAgIFNwZWN1
bGF0ZVN0cmljdEludDMyT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBub2RlLmNoaWxkMigpKTsKLSAg
ICAgICAgaWYgKGF0KG5vZGUuY2hpbGQxKCkpLnNob3VsZFNwZWN1bGF0ZUJ5dGVBcnJheSgpKSB7
Ci0gICAgICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JCeXRlQXJyYXkoYmFzZS5ncHIoKSwgcHJv
cGVydHkuZ3ByKCksIG5vZGUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQogICAg
ICAgICBpZiAoYXQobm9kZS5jaGlsZDEoKSkuc2hvdWxkU3BlY3VsYXRlSW50OEFycmF5KCkpIHsK
ICAgICAgICAgICAgIGNvbXBpbGVQdXRCeVZhbEZvckludFR5cGVkQXJyYXkobV9qaXQuZ2xvYmFs
RGF0YSgpLT5pbnQ4QXJyYXlEZXNjcmlwdG9yKCksIGJhc2UuZ3ByKCksIHByb3BlcnR5Lmdwcigp
LCBub2RlLCBzaXplb2YoaW50OF90KSwgTm9UeXBlZEFycmF5U3BlY0NoZWNrLCBTaWduZWRUeXBl
ZEFycmF5KTsKICAgICAgICAgICAgIGlmICghbV9jb21waWxlT2theSkKQEAgLTMzMzUsMjIgKzMz
MDYsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAgICAg
IGJyZWFrOwogICAgIH0KIAotICAgIGNhc2UgR2V0Qnl0ZUFycmF5TGVuZ3RoOiB7Ci0gICAgICAg
IFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS5jaGlsZDEoKSk7Ci0gICAgICAg
IEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7Ci0gICAgICAgIAotICAgICAgICBHUFJSZWcgYmFz
ZUdQUiA9IGJhc2UuZ3ByKCk7Ci0gICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3By
KCk7Ci0gICAgICAgIAotICAgICAgICBpZiAoIWlzQnl0ZUFycmF5UHJlZGljdGlvbihtX3N0YXRl
LmZvck5vZGUobm9kZS5jaGlsZDEoKSkubV90eXBlKSkKLSAgICAgICAgICAgIHNwZWN1bGF0aW9u
Q2hlY2soQmFkVHlwZSwgSlNWYWx1ZVJlZ3MoYmFzZUdQUiksIG5vZGUuY2hpbGQxKCksIG1faml0
LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKGJhc2VHUFIsIEpTQ2VsbDo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbVB0cigmSlNCeXRlQXJyYXk6OnNfaW5mbykpKTsKLSAgICAgICAgCi0gICAgICAg
IG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZUdQUiwgSlNCeXRlQXJy
YXk6Om9mZnNldE9mU3RvcmFnZSgpKSwgcmVzdWx0R1BSKTsKLSAgICAgICAgbV9qaXQubG9hZDMy
KE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgQnl0ZUFycmF5OjpvZmZzZXRPZlNp
emUoKSksIHJlc3VsdEdQUik7Ci0KLSAgICAgICAgaW50ZWdlclJlc3VsdChyZXN1bHRHUFIsIG1f
Y29tcGlsZUluZGV4KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQogICAgIGNhc2UgR2V0SW50OEFy
cmF5TGVuZ3RoOiB7CiAgICAgICAgIGNvbXBpbGVHZXRUeXBlZEFycmF5TGVuZ3RoKG1faml0Lmds
b2JhbERhdGEoKS0+aW50OEFycmF5RGVzY3JpcHRvcigpLCBub2RlLCAhaXNJbnQ4QXJyYXlQcmVk
aWN0aW9uKG1fc3RhdGUuZm9yTm9kZShub2RlLmNoaWxkMSgpKS5tX3R5cGUpKTsKICAgICAgICAg
YnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50
ZXJwcmV0ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJl
dGVyLmNwcAppbmRleCBjZGFjOWFlZjdhMDcyOGRmMGE1MDI4OTA3Y2U5MjJjMWQ0MTBkMDA1Li4w
OGYzNjQzZTljMmI5ZGI2ZGVkNmMxNTc1YTA5NTRhOGNhN2JjNzU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKQEAgLTQ1LDcgKzQ1
LDYgQEAKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKICNpbmNsdWRlICJKU0FycmF5LmgiCiAj
aW5jbHVkZSAiSlNCb3VuZEZ1bmN0aW9uLmgiCi0jaW5jbHVkZSAiSlNCeXRlQXJyYXkuaCIKICNp
bmNsdWRlICJKU05vdEFuT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNQcm9wZXJ0eU5hbWVJdGVyYXRv
ci5oIgogI2luY2x1ZGUgIkxpdGVyYWxQYXJzZXIuaCIKQEAgLTM3NjgsOCArMzc2Nyw2IEBAIHNr
aXBfaWRfY3VzdG9tX3NlbGY6CiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGpzQXJyYXkt
PkpTQXJyYXk6OmdldChjYWxsRnJhbWUsIGkpOwogICAgICAgICAgICAgfSBlbHNlIGlmIChpc0pT
U3RyaW5nKGJhc2VWYWx1ZSkgJiYgYXNTdHJpbmcoYmFzZVZhbHVlKS0+Y2FuR2V0SW5kZXgoaSkp
CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gYXNTdHJpbmcoYmFzZVZhbHVlKS0+Z2V0SW5kZXgo
Y2FsbEZyYW1lLCBpKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKGlzSlNCeXRlQXJyYXkoYmFzZVZh
bHVlKSAmJiBhc0J5dGVBcnJheShiYXNlVmFsdWUpLT5jYW5BY2Nlc3NJbmRleChpKSkKLSAgICAg
ICAgICAgICAgICByZXN1bHQgPSBhc0J5dGVBcnJheShiYXNlVmFsdWUpLT5nZXRJbmRleChjYWxs
RnJhbWUsIGkpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHJlc3VsdCA9IGJh
c2VWYWx1ZS5nZXQoY2FsbEZyYW1lLCBpKTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTM4MDgsMTUg
KzM4MDUsNiBAQCBza2lwX2lkX2N1c3RvbV9zZWxmOgogICAgICAgICAgICAgICAgICAgICBqc0Fy
cmF5LT5zZXRJbmRleCgqZ2xvYmFsRGF0YSwgaSwgY2FsbEZyYW1lLT5yKHZhbHVlKS5qc1ZhbHVl
KCkpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAganNBcnJheS0+
SlNBcnJheTo6cHV0QnlJbmRleChqc0FycmF5LCBjYWxsRnJhbWUsIGksIGNhbGxGcmFtZS0+cih2
YWx1ZSkuanNWYWx1ZSgpLCBjb2RlQmxvY2stPmlzU3RyaWN0TW9kZSgpKTsKLSAgICAgICAgICAg
IH0gZWxzZSBpZiAoaXNKU0J5dGVBcnJheShiYXNlVmFsdWUpICYmIGFzQnl0ZUFycmF5KGJhc2VW
YWx1ZSktPmNhbkFjY2Vzc0luZGV4KGkpKSB7Ci0gICAgICAgICAgICAgICAgSlNCeXRlQXJyYXkq
IGpzQnl0ZUFycmF5ID0gYXNCeXRlQXJyYXkoYmFzZVZhbHVlKTsKLSAgICAgICAgICAgICAgICBK
U1ZhbHVlIGpzVmFsdWUgPSBjYWxsRnJhbWUtPnIodmFsdWUpLmpzVmFsdWUoKTsKLSAgICAgICAg
ICAgICAgICBpZiAoanNWYWx1ZS5pc0ludDMyKCkpCi0gICAgICAgICAgICAgICAgICAgIGpzQnl0
ZUFycmF5LT5zZXRJbmRleChpLCBqc1ZhbHVlLmFzSW50MzIoKSk7Ci0gICAgICAgICAgICAgICAg
ZWxzZSBpZiAoanNWYWx1ZS5pc0RvdWJsZSgpKQotICAgICAgICAgICAgICAgICAgICBqc0J5dGVB
cnJheS0+c2V0SW5kZXgoaSwganNWYWx1ZS5hc0RvdWJsZSgpKTsKLSAgICAgICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgICAgIGJhc2VWYWx1ZS5wdXRCeUluZGV4KGNhbGxGcmFtZSwg
aSwganNWYWx1ZSwgY29kZUJsb2NrLT5pc1N0cmljdE1vZGUoKSk7CiAgICAgICAgICAgICB9IGVs
c2UKICAgICAgICAgICAgICAgICBiYXNlVmFsdWUucHV0QnlJbmRleChjYWxsRnJhbWUsIGksIGNh
bGxGcmFtZS0+cih2YWx1ZSkuanNWYWx1ZSgpLCBjb2RlQmxvY2stPmlzU3RyaWN0TW9kZSgpKTsK
ICAgICAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUU3R1YnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKaW5k
ZXggZGJjZDUwZTVjY2I3ZGM3MzM1Y2Y1ODdmMzcwYmZiMjk4MTFjYzEzZS4uMzc0YzI5ODlhNjk0
YzVkOWI3ZWNkZDFmMmE3MGNkZmY3N2ZhNDM1YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRTdHVicy5jcHAKQEAgLTQ4LDcgKzQ4LDYgQEAKICNpbmNsdWRlICJKSVRFeGNlcHRpb25zLmgi
CiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgotI2luY2x1
ZGUgIkpTQnl0ZUFycmF5LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpT
R2xvYmFsT2JqZWN0RnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiSlNOb3RBbk9iamVjdC5oIgpAQCAt
MjQ0OCwxMSArMjQ0Nyw2IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKEVuY29kZWRKU1ZhbHVlLCBv
cF9nZXRfYnlfdmFsKQogICAgICAgICAgICAgQ0hFQ0tfRk9SX0VYQ0VQVElPTigpOwogICAgICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogICAgICAgICB9Ci0gICAgICAg
IGlmIChpc0pTQnl0ZUFycmF5KGJhc2VWYWx1ZSkgJiYgYXNCeXRlQXJyYXkoYmFzZVZhbHVlKS0+
Y2FuQWNjZXNzSW5kZXgoaSkpIHsKLSAgICAgICAgICAgIC8vIEFsbCBmYXN0IGJ5dGUgYXJyYXkg
YWNjZXNzZXMgYXJlIHNhZmUgZnJvbSBleGNlcHRpb25zIHNvIHJldHVybiBpbW1lZGlhdGVseSB0
byBhdm9pZCBleGNlcHRpb24gY2hlY2tzLgotICAgICAgICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1
cm5BZGRyZXNzKGNhbGxGcmFtZS0+Y29kZUJsb2NrKCksIFNUVUJfUkVUVVJOX0FERFJFU1MsIEZ1
bmN0aW9uUHRyKGN0aV9vcF9nZXRfYnlfdmFsX2J5dGVfYXJyYXkpKTsKLSAgICAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoYXNCeXRlQXJyYXkoYmFzZVZhbHVlKS0+Z2V0SW5kZXgoY2Fs
bEZyYW1lLCBpKSk7Ci0gICAgICAgIH0KICAgICAgICAgSlNWYWx1ZSByZXN1bHQgPSBiYXNlVmFs
dWUuZ2V0KGNhbGxGcmFtZSwgaSk7CiAgICAgICAgIENIRUNLX0ZPUl9FWENFUFRJT04oKTsKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpAQCAtMjQ5MywzNiArMjQ4Nyw2
IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKEVuY29kZWRKU1ZhbHVlLCBvcF9nZXRfYnlfdmFsX3N0
cmluZykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAgICAgCi1ERUZJ
TkVfU1RVQl9GVU5DVElPTihFbmNvZGVkSlNWYWx1ZSwgb3BfZ2V0X2J5X3ZhbF9ieXRlX2FycmF5
KQotewotICAgIFNUVUJfSU5JVF9TVEFDS19GUkFNRShzdGFja0ZyYW1lKTsKLSAgICAKLSAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IHN0YWNrRnJhbWUuY2FsbEZyYW1lOwotICAgIAotICAgIEpT
VmFsdWUgYmFzZVZhbHVlID0gc3RhY2tGcmFtZS5hcmdzWzBdLmpzVmFsdWUoKTsKLSAgICBKU1Zh
bHVlIHN1YnNjcmlwdCA9IHN0YWNrRnJhbWUuYXJnc1sxXS5qc1ZhbHVlKCk7Ci0gICAgCi0gICAg
SlNWYWx1ZSByZXN1bHQ7Ci0KLSAgICBpZiAoTElLRUxZKHN1YnNjcmlwdC5pc1VJbnQzMigpKSkg
ewotICAgICAgICB1aW50MzJfdCBpID0gc3Vic2NyaXB0LmFzVUludDMyKCk7Ci0gICAgICAgIGlm
IChpc0pTQnl0ZUFycmF5KGJhc2VWYWx1ZSkgJiYgYXNCeXRlQXJyYXkoYmFzZVZhbHVlKS0+Y2Fu
QWNjZXNzSW5kZXgoaSkpIHsKLSAgICAgICAgICAgIC8vIEFsbCBmYXN0IGJ5dGUgYXJyYXkgYWNj
ZXNzZXMgYXJlIHNhZmUgZnJvbSBleGNlcHRpb25zIHNvIHJldHVybiBpbW1lZGlhdGVseSB0byBh
dm9pZCBleGNlcHRpb24gY2hlY2tzLgotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShhc0J5dGVBcnJheShiYXNlVmFsdWUpLT5nZXRJbmRleChjYWxsRnJhbWUsIGkpKTsKLSAgICAg
ICAgfQotCi0gICAgICAgIHJlc3VsdCA9IGJhc2VWYWx1ZS5nZXQoY2FsbEZyYW1lLCBpKTsKLSAg
ICAgICAgaWYgKCFpc0pTQnl0ZUFycmF5KGJhc2VWYWx1ZSkpCi0gICAgICAgICAgICBjdGlQYXRj
aENhbGxCeVJldHVybkFkZHJlc3MoY2FsbEZyYW1lLT5jb2RlQmxvY2soKSwgU1RVQl9SRVRVUk5f
QUREUkVTUywgRnVuY3Rpb25QdHIoY3RpX29wX2dldF9ieV92YWwpKTsKLSAgICB9IGVsc2Ugewot
ICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5KGNhbGxGcmFtZSwgc3Vic2NyaXB0LnRvU3RyaW5n
KGNhbGxGcmFtZSktPnZhbHVlKGNhbGxGcmFtZSkpOwotICAgICAgICByZXN1bHQgPSBiYXNlVmFs
dWUuZ2V0KGNhbGxGcmFtZSwgcHJvcGVydHkpOwotICAgIH0KLSAgICAKLSAgICBDSEVDS19GT1Jf
RVhDRVBUSU9OX0FUX0VORCgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsK
LX0KLQogREVGSU5FX1NUVUJfRlVOQ1RJT04oRW5jb2RlZEpTVmFsdWUsIG9wX3N1YikKIHsKICAg
ICBTVFVCX0lOSVRfU1RBQ0tfRlJBTUUoc3RhY2tGcmFtZSk7CkBAIC0yNTU4LDIxICsyNTIyLDYg
QEAgREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCwgb3BfcHV0X2J5X3ZhbCkKICAgICAgICAgICAg
ICAgICBqc0FycmF5LT5zZXRJbmRleCgqZ2xvYmFsRGF0YSwgaSwgdmFsdWUpOwogICAgICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgICAgIEpTQXJyYXk6OnB1dEJ5SW5kZXgoanNBcnJheSwgY2Fs
bEZyYW1lLCBpLCB2YWx1ZSwgY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+aXNTdHJpY3RNb2RlKCkp
OwotICAgICAgICB9IGVsc2UgaWYgKGlzSlNCeXRlQXJyYXkoYmFzZVZhbHVlKSAmJiBhc0J5dGVB
cnJheShiYXNlVmFsdWUpLT5jYW5BY2Nlc3NJbmRleChpKSkgewotICAgICAgICAgICAgSlNCeXRl
QXJyYXkqIGpzQnl0ZUFycmF5ID0gYXNCeXRlQXJyYXkoYmFzZVZhbHVlKTsKLSAgICAgICAgICAg
IGN0aVBhdGNoQ2FsbEJ5UmV0dXJuQWRkcmVzcyhjYWxsRnJhbWUtPmNvZGVCbG9jaygpLCBTVFVC
X1JFVFVSTl9BRERSRVNTLCBGdW5jdGlvblB0cihjdGlfb3BfcHV0X2J5X3ZhbF9ieXRlX2FycmF5
KSk7Ci0gICAgICAgICAgICAvLyBBbGwgZmFzdCBieXRlIGFycmF5IGFjY2Vzc2VzIGFyZSBzYWZl
IGZyb20gZXhjZXB0aW9ucyBzbyByZXR1cm4gaW1tZWRpYXRlbHkgdG8gYXZvaWQgZXhjZXB0aW9u
IGNoZWNrcy4KLSAgICAgICAgICAgIGlmICh2YWx1ZS5pc0ludDMyKCkpIHsKLSAgICAgICAgICAg
ICAgICBqc0J5dGVBcnJheS0+c2V0SW5kZXgoaSwgdmFsdWUuYXNJbnQzMigpKTsKLSAgICAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGlm
ICh2YWx1ZS5pc051bWJlcigpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGpzQnl0ZUFycmF5LT5z
ZXRJbmRleChpLCB2YWx1ZS5hc051bWJlcigpKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgYmFzZVZh
bHVlLnB1dEJ5SW5kZXgoY2FsbEZyYW1lLCBpLCB2YWx1ZSwgY2FsbEZyYW1lLT5jb2RlQmxvY2so
KS0+aXNTdHJpY3RNb2RlKCkpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGJhc2VWYWx1
ZS5wdXRCeUluZGV4KGNhbGxGcmFtZSwgaSwgdmFsdWUsIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCkt
PmlzU3RyaWN0TW9kZSgpKTsKICAgICB9IGVsc2UgewpAQCAtMjU4Niw0NyArMjUzNSw2IEBAIERF
RklORV9TVFVCX0ZVTkNUSU9OKHZvaWQsIG9wX3B1dF9ieV92YWwpCiAgICAgQ0hFQ0tfRk9SX0VY
Q0VQVElPTl9BVF9FTkQoKTsKIH0KIAotREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCwgb3BfcHV0
X2J5X3ZhbF9ieXRlX2FycmF5KQotewotICAgIFNUVUJfSU5JVF9TVEFDS19GUkFNRShzdGFja0Zy
YW1lKTsKLSAgICAKLSAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IHN0YWNrRnJhbWUuY2FsbEZy
YW1lOwotICAgIAotICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gc3RhY2tGcmFtZS5hcmdzWzBdLmpz
VmFsdWUoKTsKLSAgICBKU1ZhbHVlIHN1YnNjcmlwdCA9IHN0YWNrRnJhbWUuYXJnc1sxXS5qc1Zh
bHVlKCk7Ci0gICAgSlNWYWx1ZSB2YWx1ZSA9IHN0YWNrRnJhbWUuYXJnc1syXS5qc1ZhbHVlKCk7
Ci0gICAgCi0gICAgaWYgKExJS0VMWShzdWJzY3JpcHQuaXNVSW50MzIoKSkpIHsKLSAgICAgICAg
dWludDMyX3QgaSA9IHN1YnNjcmlwdC5hc1VJbnQzMigpOwotICAgICAgICBpZiAoaXNKU0J5dGVB
cnJheShiYXNlVmFsdWUpICYmIGFzQnl0ZUFycmF5KGJhc2VWYWx1ZSktPmNhbkFjY2Vzc0luZGV4
KGkpKSB7Ci0gICAgICAgICAgICBKU0J5dGVBcnJheSoganNCeXRlQXJyYXkgPSBhc0J5dGVBcnJh
eShiYXNlVmFsdWUpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICAvLyBBbGwgZmFzdCBieXRl
IGFycmF5IGFjY2Vzc2VzIGFyZSBzYWZlIGZyb20gZXhjZXB0aW9ucyBzbyByZXR1cm4gaW1tZWRp
YXRlbHkgdG8gYXZvaWQgZXhjZXB0aW9uIGNoZWNrcy4KLSAgICAgICAgICAgIGlmICh2YWx1ZS5p
c0ludDMyKCkpIHsKLSAgICAgICAgICAgICAgICBqc0J5dGVBcnJheS0+c2V0SW5kZXgoaSwgdmFs
dWUuYXNJbnQzMigpKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5pc051bWJlcigpKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGpzQnl0ZUFycmF5LT5zZXRJbmRleChpLCB2YWx1ZS5hc051bWJlcigpKTsKLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmICghaXNKU0J5dGVBcnJheShiYXNlVmFsdWUpKQot
ICAgICAgICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGNhbGxGcmFtZS0+Y29kZUJs
b2NrKCksIFNUVUJfUkVUVVJOX0FERFJFU1MsIEZ1bmN0aW9uUHRyKGN0aV9vcF9wdXRfYnlfdmFs
KSk7Ci0gICAgICAgIGJhc2VWYWx1ZS5wdXRCeUluZGV4KGNhbGxGcmFtZSwgaSwgdmFsdWUsIGNh
bGxGcmFtZS0+Y29kZUJsb2NrKCktPmlzU3RyaWN0TW9kZSgpKTsKLSAgICB9IGVsc2UgewotICAg
ICAgICBJZGVudGlmaWVyIHByb3BlcnR5KGNhbGxGcmFtZSwgc3Vic2NyaXB0LnRvU3RyaW5nKGNh
bGxGcmFtZSktPnZhbHVlKGNhbGxGcmFtZSkpOwotICAgICAgICBpZiAoIXN0YWNrRnJhbWUuZ2xv
YmFsRGF0YS0+ZXhjZXB0aW9uKSB7IC8vIERvbid0IHB1dCB0byBhbiBvYmplY3QgaWYgdG9TdHJp
bmcgdGhyZXcgYW4gZXhjZXB0aW9uLgotICAgICAgICAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Qo
Y2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+aXNTdHJpY3RNb2RlKCkpOwotICAgICAgICAgICAgYmFz
ZVZhbHVlLnB1dChjYWxsRnJhbWUsIHByb3BlcnR5LCB2YWx1ZSwgc2xvdCk7Ci0gICAgICAgIH0K
LSAgICB9Ci0gICAgCi0gICAgQ0hFQ0tfRk9SX0VYQ0VQVElPTl9BVF9FTkQoKTsKLX0KLQogREVG
SU5FX1NUVUJfRlVOQ1RJT04oRW5jb2RlZEpTVmFsdWUsIG9wX2xlc3MpCiB7CiAgICAgU1RVQl9J
TklUX1NUQUNLX0ZSQU1FKHN0YWNrRnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRTdHVicy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVi
cy5oCmluZGV4IDYwZGM4YTI3MGQ4ZWJlZTY0YTEzOWE4NzBmYmJkNDZjMjAyZDMxZjYuLjc4NjM1
M2RmNWRiNGZhNmQyOTRkZWIwZDFmMGM2MjYyZTczZWM1NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN0dWJzLmgKQEAgLTM2Nyw3ICszNjcsNiBAQCBleHRlcm4gIkMiIHsKICAgICBFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3NlbGZfZmFpbChTVFVCX0FSR1Nf
REVDTEFSQVRJT04pOwogICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlf
aWRfc3RyaW5nX2ZhaWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKTsKICAgICBFbmNvZGVkSlNWYWx1
ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X3ZhbChTVFVCX0FSR1NfREVDTEFSQVRJT04pOwotICAg
IEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfdmFsX2J5dGVfYXJyYXkoU1RV
Ql9BUkdTX0RFQ0xBUkFUSU9OKTsKICAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3Bf
Z2V0X2J5X3ZhbF9zdHJpbmcoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKTsKICAgICBFbmNvZGVkSlNW
YWx1ZSBKSVRfU1RVQiBjdGlfb3BfaW4oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKTsKICAgICBFbmNv
ZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfaW5zdGFuY2VvZihTVFVCX0FSR1NfREVDTEFSQVRJ
T04pOwpAQCAtNDQ1LDcgKzQ0NCw2IEBAIGV4dGVybiAiQyIgewogICAgIHZvaWQgSklUX1NUVUIg
Y3RpX29wX3B1dF9ieV9pZF9kaXJlY3RfZ2VuZXJpYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pOwog
ICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV9pbmRleChTVFVCX0FSR1NfREVDTEFSQVRJ
T04pOwogICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV92YWwoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKTsKLSAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfdmFsX2J5dGVfYXJyYXko
U1RVQl9BUkdTX0RFQ0xBUkFUSU9OKTsKICAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfZ2V0
dGVyX3NldHRlcihTVFVCX0FSR1NfREVDTEFSQVRJT04pOwogICAgIHZvaWQgSklUX1NUVUIgY3Rp
X29wX3RlYXJfb2ZmX2FjdGl2YXRpb24oU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKTsKICAgICB2b2lk
IEpJVF9TVFVCIGN0aV9vcF90ZWFyX29mZl9hcmd1bWVudHMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRo
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCmlu
ZGV4IGQxYTI1NWMyNjgzYjUzNjY4MTA5ZmM0M2QzMTI4MTNmODNmZTgxNzIuLjJiNTE2MWY3Yjg1
YzhjYzBjNmVlZTc1YzkzOGMyZGFjODdhZWRiNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcApAQCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUg
IkpJVC5oIgogI2luY2x1ZGUgIkpJVERyaXZlci5oIgogI2luY2x1ZGUgIkpTQWN0aXZhdGlvbi5o
IgotI2luY2x1ZGUgIkpTQnl0ZUFycmF5LmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3RGdW5j
dGlvbnMuaCIKICNpbmNsdWRlICJKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAi
SlNTdGF0aWNTY29wZU9iamVjdC5oIgpAQCAtOTU3LDkgKzk1Niw2IEBAIGlubGluZSBKU1ZhbHVl
IGdldEJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFsdWUgc3Vi
c2NyaXB0KQogICAgICAgICBpZiAoaXNKU1N0cmluZyhiYXNlVmFsdWUpICYmIGFzU3RyaW5nKGJh
c2VWYWx1ZSktPmNhbkdldEluZGV4KGkpKQogICAgICAgICAgICAgcmV0dXJuIGFzU3RyaW5nKGJh
c2VWYWx1ZSktPmdldEluZGV4KGV4ZWMsIGkpOwogICAgICAgICAKLSAgICAgICAgaWYgKGlzSlNC
eXRlQXJyYXkoYmFzZVZhbHVlKSAmJiBhc0J5dGVBcnJheShiYXNlVmFsdWUpLT5jYW5BY2Nlc3NJ
bmRleChpKSkKLSAgICAgICAgICAgIHJldHVybiBhc0J5dGVBcnJheShiYXNlVmFsdWUpLT5nZXRJ
bmRleChleGVjLCBpKTsKLSAgICAgICAgCiAgICAgICAgIHJldHVybiBiYXNlVmFsdWUuZ2V0KGV4
ZWMsIGkpOwogICAgIH0KICAgICAKQEAgLTEwMTEsMTggKzEwMDcsNiBAQCBMTElOVF9TTE9XX1BB
VEhfREVDTChzbG93X3BhdGhfcHV0X2J5X3ZhbCkKICAgICAgICAgICAgICAgICBKU0FycmF5Ojpw
dXRCeUluZGV4KGpzQXJyYXksIGV4ZWMsIGksIHZhbHVlLCBleGVjLT5jb2RlQmxvY2soKS0+aXNT
dHJpY3RNb2RlKCkpOwogICAgICAgICAgICAgTExJTlRfRU5EKCk7CiAgICAgICAgIH0KLSAgICAg
ICAgaWYgKGlzSlNCeXRlQXJyYXkoYmFzZVZhbHVlKQotICAgICAgICAgICAgJiYgYXNCeXRlQXJy
YXkoYmFzZVZhbHVlKS0+Y2FuQWNjZXNzSW5kZXgoaSkpIHsKLSAgICAgICAgICAgIEpTQnl0ZUFy
cmF5KiBqc0J5dGVBcnJheSA9IGFzQnl0ZUFycmF5KGJhc2VWYWx1ZSk7Ci0gICAgICAgICAgICBp
ZiAodmFsdWUuaXNJbnQzMigpKSB7Ci0gICAgICAgICAgICAgICAganNCeXRlQXJyYXktPnNldElu
ZGV4KGksIHZhbHVlLmFzSW50MzIoKSk7Ci0gICAgICAgICAgICAgICAgTExJTlRfRU5EKCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAodmFsdWUuaXNOdW1iZXIoKSkgewotICAgICAg
ICAgICAgICAgIGpzQnl0ZUFycmF5LT5zZXRJbmRleChpLCB2YWx1ZS5hc051bWJlcigpKTsKLSAg
ICAgICAgICAgICAgICBMTElOVF9FTkQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQogICAg
ICAgICBiYXNlVmFsdWUucHV0QnlJbmRleChleGVjLCBpLCB2YWx1ZSwgZXhlYy0+Y29kZUJsb2Nr
KCktPmlzU3RyaWN0TW9kZSgpKTsKICAgICAgICAgTExJTlRfRU5EKCk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAzOWVhNGQwYjkwMTYyOTFhZDYzNTdkNmQyZjg3ZDI0NDYwNWY5ZWJk
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcAorKysgL2Rldi9udWxsCkBAIC0x
LDEyMCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTQnl0ZUFycmF5LmgiCi0KLSNpbmNs
dWRlICJKU0dsb2JhbE9iamVjdC5oIgotI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5LmgiCi0K
LXVzaW5nIG5hbWVzcGFjZSBXVEY7Ci0KLW5hbWVzcGFjZSBKU0MgewotCi1jb25zdCBDbGFzc0lu
Zm8gSlNCeXRlQXJyYXk6OnNfaW5mbyA9IHsgIlVpbnQ4Q2xhbXBlZEFycmF5IiwgJkJhc2U6OnNf
aW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0J5dGVBcnJheSkgfTsKLQotSlNCeXRl
QXJyYXk6OkpTQnl0ZUFycmF5KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IEJ5dGVBcnJheSogc3RvcmFnZSkKLSAgICA6IEpTTm9uRmluYWxPYmplY3QoZXhlYy0+Z2xvYmFs
RGF0YSgpLCBzdHJ1Y3R1cmUpCi0gICAgLCBtX3N0b3JhZ2Uoc3RvcmFnZSkKLXsKLX0KLSAgICAg
ICAgCi1KU0J5dGVBcnJheTo6fkpTQnl0ZUFycmF5KCkKLXsKLSAgICBBU1NFUlQoanNDYXN0PEpT
Qnl0ZUFycmF5Kj4odGhpcykpOwotfQotCi12b2lkIEpTQnl0ZUFycmF5OjpkZXN0cm95KEpTQ2Vs
bCogY2VsbCkKLXsKLSAgICBqc0Nhc3Q8SlNCeXRlQXJyYXkqPihjZWxsKS0+SlNCeXRlQXJyYXk6
On5KU0J5dGVBcnJheSgpOwotfQotCi1TdHJ1Y3R1cmUqIEpTQnl0ZUFycmF5OjpjcmVhdGVTdHJ1
Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgSlNDOjpDbGFzc0luZm8qIGNsYXNzSW5mbykK
LXsKLSAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgY2xhc3NJ
bmZvKTsKLX0KLQotYm9vbCBKU0J5dGVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCog
Y2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBKU0J5dGVBcnJheSogdGhpc09iamVjdCA9IGpzQ2Fz
dDxKU0J5dGVBcnJheSo+KGNlbGwpOwotICAgIGJvb2wgb2s7Ci0gICAgdW5zaWduZWQgaW5kZXgg
PSBwcm9wZXJ0eU5hbWUudG9VSW50MzIob2spOwotICAgIGlmIChvayAmJiB0aGlzT2JqZWN0LT5j
YW5BY2Nlc3NJbmRleChpbmRleCkpIHsKLSAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0
LT5nZXRJbmRleChleGVjLCBpbmRleCkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0g
ICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KTsKLX0KLQotYm9vbCBKU0J5dGVBcnJheTo6Z2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCi17
Ci0gICAgSlNCeXRlQXJyYXkqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNCeXRlQXJyYXkqPihvYmpl
Y3QpOwotICAgIGJvb2wgb2s7Ci0gICAgdW5zaWduZWQgaW5kZXggPSBwcm9wZXJ0eU5hbWUudG9V
SW50MzIob2spOwotICAgIGlmIChvayAmJiB0aGlzT2JqZWN0LT5jYW5BY2Nlc3NJbmRleChpbmRl
eCkpIHsKLSAgICAgICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKHRoaXNPYmplY3QtPmdldElu
ZGV4KGV4ZWMsIGluZGV4KSwgRG9udERlbGV0ZSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAg
IH0KLSAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzT2Jq
ZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwotfQotCi1ib29sIEpTQnl0ZUFy
cmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBl
eGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBK
U0J5dGVBcnJheSogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0J5dGVBcnJheSo+KGNlbGwpOwotICAg
IGlmICh0aGlzT2JqZWN0LT5jYW5BY2Nlc3NJbmRleChwcm9wZXJ0eU5hbWUpKSB7Ci0gICAgICAg
IHNsb3Quc2V0VmFsdWUodGhpc09iamVjdC0+Z2V0SW5kZXgoZXhlYywgcHJvcGVydHlOYW1lKSk7
Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93
blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIHBy
b3BlcnR5TmFtZSksIHNsb3QpOwotfQotCi12b2lkIEpTQnl0ZUFycmF5OjpwdXQoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQotewotICAgIEpTQnl0ZUFycmF5KiB0
aGlzT2JqZWN0ID0ganNDYXN0PEpTQnl0ZUFycmF5Kj4oY2VsbCk7Ci0gICAgYm9vbCBvazsKLSAg
ICB1bnNpZ25lZCBpbmRleCA9IHByb3BlcnR5TmFtZS50b1VJbnQzMihvayk7Ci0gICAgaWYgKG9r
KSB7Ci0gICAgICAgIHRoaXNPYmplY3QtPnNldEluZGV4KGV4ZWMsIGluZGV4LCB2YWx1ZSk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgSlNPYmplY3Q6OnB1dCh0aGlzT2JqZWN0LCBleGVj
LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKLX0KLQotdm9pZCBKU0J5dGVBcnJheTo6cHV0
QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlIHZhbHVlLCBib29sKQotewotICAgIGpzQ2FzdDxKU0J5dGVBcnJheSo+KGNl
bGwpLT5zZXRJbmRleChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsKLX0KLQotdm9pZCBKU0J5
dGVBcnJheTo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUq
IGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUg
bW9kZSkKLXsKLSAgICBKU0J5dGVBcnJheSogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0J5dGVBcnJh
eSo+KG9iamVjdCk7Ci0gICAgdW5zaWduZWQgbGVuZ3RoID0gdGhpc09iamVjdC0+bV9zdG9yYWdl
LT5sZW5ndGgoKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCi0g
ICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb20oZXhlYywgaSkpOwotICAg
IEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5
TmFtZXMsIG1vZGUpOwotfQotCi19Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQnl0ZUFycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0J5dGVBcnJheS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlODczNjY3ODAzYjI1
NzVkYmIwYTRjZmM1MzU1MjE1OWU5OWRkMTM1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFy
cmF5LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgSlNCeXRlQXJyYXlfaAotI2RlZmlu
ZSBKU0J5dGVBcnJheV9oCi0KLSNpbmNsdWRlICJKU09iamVjdC5oIgotCi0jaW5jbHVkZSA8d3Rm
L0J5dGVBcnJheS5oPgotCi1uYW1lc3BhY2UgSlNDIHsKLQotICAgIGNsYXNzIEpTQnl0ZUFycmF5
IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewotICAgICAgICBmcmllbmQgY2xhc3MgSlNHbG9i
YWxEYXRhOwotICAgIHB1YmxpYzoKLSAgICAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJh
c2U7Ci0KLSAgICAgICAgYm9vbCBjYW5BY2Nlc3NJbmRleCh1bnNpZ25lZCBpKSB7IHJldHVybiBp
IDwgbV9zdG9yYWdlLT5sZW5ndGgoKTsgfQotICAgICAgICBKU1ZhbHVlIGdldEluZGV4KEV4ZWNT
dGF0ZSosIHVuc2lnbmVkIGkpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChjYW5BY2Nl
c3NJbmRleChpKSk7Ci0gICAgICAgICAgICByZXR1cm4ganNOdW1iZXIobV9zdG9yYWdlLT5kYXRh
KClbaV0pOwotICAgICAgICB9Ci0KLSAgICAgICAgdm9pZCBzZXRJbmRleCh1bnNpZ25lZCBpLCBp
bnQgdmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChjYW5BY2Nlc3NJbmRleChp
KSk7Ci0gICAgICAgICAgICBpZiAodmFsdWUgJiB+MHhGRikgewotICAgICAgICAgICAgICAgIGlm
ICh2YWx1ZSA8IDApCi0gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gMDsKLSAgICAgICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gMjU1OwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgbV9zdG9yYWdlLT5kYXRhKClbaV0gPSBzdGF0aWNfY2FzdDx1bnNpZ25l
ZCBjaGFyPih2YWx1ZSk7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHZvaWQgc2V0SW5k
ZXgodW5zaWduZWQgaSwgZG91YmxlIHZhbHVlKQotICAgICAgICB7Ci0gICAgICAgICAgICBBU1NF
UlQoY2FuQWNjZXNzSW5kZXgoaSkpOwotICAgICAgICAgICAgaWYgKCEodmFsdWUgPiAwKSkgLy8g
Q2xhbXAgTmFOIHRvIDAKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IDA7Ci0gICAgICAgICAgICBl
bHNlIGlmICh2YWx1ZSA+IDI1NSkKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IDI1NTsKLSAgICAg
ICAgICAgIG1fc3RvcmFnZS0+ZGF0YSgpW2ldID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4o
dmFsdWUgKyAwLjUpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICB2b2lkIHNldEluZGV4
KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgSlNWYWx1ZSB2YWx1ZSkKLSAgICAgICAgewot
ICAgICAgICAgICAgZG91YmxlIGJ5dGVWYWx1ZSA9IHZhbHVlLnRvTnVtYmVyKGV4ZWMpOwotICAg
ICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgICAgIGlmIChjYW5BY2Nlc3NJbmRleChpKSkKLSAgICAgICAgICAgICAgICBz
ZXRJbmRleChpLCBieXRlVmFsdWUpOwotICAgICAgICB9Ci0KLSAgICBwcml2YXRlOgotICAgICAg
ICBKU19FWFBPUlRfUFJJVkFURSBKU0J5dGVBcnJheShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqLCBC
eXRlQXJyYXkqIHN0b3JhZ2UpOwotICAgICAgICAKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRp
YyBKU0J5dGVBcnJheSogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIEJ5dGVBcnJheSogc3RvcmFnZSkKLSAgICAgICAgewotICAgICAgICAgICAgSlNCeXRlQXJy
YXkqIGFycmF5ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SlNCeXRlQXJyYXk+KCpleGVj
LT5oZWFwKCkpKSBKU0J5dGVBcnJheShleGVjLCBzdHJ1Y3R1cmUsIHN0b3JhZ2UpOwotICAgICAg
ICAgICAgYXJyYXktPmZpbmlzaENyZWF0aW9uKGV4ZWMpOwotICAgICAgICAgICAgcmV0dXJuIGFy
cmF5OwotICAgICAgICB9Ci0KLSAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNW
YWx1ZSBwcm90b3R5cGUsIGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiA9ICZzX2luZm8pOwotCi0gICAg
ICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6
OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7Ci0gICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0
YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDOjpKU0NlbGwqLCBKU0M6OkV4
ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKLSAg
ICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVz
Y3JpcHRvciYpOwotICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBwdXQoSlND
OjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7Ci0gICAgICAgIEpT
X0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIHB1dEJ5SW5kZXgoSlNDOjpKU0NlbGwqLCBKU0M6
OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBib29sIHNo
b3VsZFRocm93KTsKLQotICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBnZXRP
d25Qcm9wZXJ0eU5hbWVzKEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJv
cGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUpOwotCi0gICAgICAgIHN0YXRpYyBKU19F
WFBPUlREQVRBIGNvbnN0IENsYXNzSW5mbyBzX2luZm87Ci0gICAgICAgIAotICAgICAgICBzaXpl
X3QgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9zdG9yYWdlLT5sZW5ndGgoKTsgfQotCi0gICAg
ICAgIFdURjo6Qnl0ZUFycmF5KiBzdG9yYWdlKCkgY29uc3QgeyByZXR1cm4gbV9zdG9yYWdlLmdl
dCgpOyB9Ci0KLSAgICAgICAgfkpTQnl0ZUFycmF5KCk7Ci0gICAgICAgIEpTX0VYUE9SVF9QUklW
QVRFIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7Ci0KLSAgICAgICAgc3RhdGljIHNpemVf
dCBvZmZzZXRPZlN0b3JhZ2UoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNCeXRlQXJyYXks
IG1fc3RvcmFnZSk7IH0KLQotICAgIHByb3RlY3RlZDoKLSAgICAgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3Zl
cnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEpTT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKLQotICAg
ICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYykKLSAgICAgICAgewotICAg
ICAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpKTsKLSAgICAg
ICAgICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmdsb2JhbERhdGEoKS5w
cm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKG1fc3RvcmFnZS0+bGVuZ3RoKCkpLCBSZWFk
T25seSB8IERvbnREZWxldGUpOwotICAgICAgICB9Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBS
ZWZQdHI8V1RGOjpCeXRlQXJyYXk+IG1fc3RvcmFnZTsKLSAgICB9OwotICAgIAotICAgIEpTQnl0
ZUFycmF5KiBhc0J5dGVBcnJheShKU1ZhbHVlIHZhbHVlKTsKLSAgICBpbmxpbmUgSlNCeXRlQXJy
YXkqIGFzQnl0ZUFycmF5KEpTVmFsdWUgdmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4ganND
YXN0PEpTQnl0ZUFycmF5Kj4odmFsdWUuYXNDZWxsKCkpOwotICAgIH0KLQotICAgIGlubGluZSBi
b29sIGlzSlNCeXRlQXJyYXkoSlNWYWx1ZSB2KSB7IHJldHVybiB2LmlzQ2VsbCgpICYmIHYuYXND
ZWxsKCktPmNsYXNzSW5mbygpID09ICZKU0J5dGVBcnJheTo6c19pbmZvOyB9Ci0KLX0gLy8gbmFt
ZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gSlNCeXRlQXJyYXlfaApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAKaW5kZXggOTE3NTZkNjcwOWMzODUwNGIx
NDYyZTFjMGU5NGRiMzBlNGFhMmVmYi4uZGE2YmJiNTQxM2VlODU1NDc4YzA4OTQyZmU0MmE5OGU3
YTQ4YjUxYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxEYXRhLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERh
dGEuY3BwCkBAIC00MCw3ICs0MCw2IEBACiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgiCiAjaW5j
bHVkZSAiSlNBUElWYWx1ZVdyYXBwZXIuaCIKICNpbmNsdWRlICJKU0FycmF5LmgiCi0jaW5jbHVk
ZSAiSlNCeXRlQXJyYXkuaCIKICNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCiAjaW5jbHVkZSAiSlNG
dW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTTG9jay5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4
IDhkZGIzMDI5YzY1YTNjM2EzYjEyZTBiZTY4YTRhMDRhOWRmZDdiNTIuLmExNjg4NGExYzEwZTRi
ZDAyMWYwYWFlNmU4YzcyNjFmNjliZmI4ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvR05VbWFr
ZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTE5
LDggKzE5LDYgQEAgd3RmX3NvdXJjZXMgKz0gXAogICAgIFNvdXJjZS9XVEYvd3RmL0Jsb29tRmls
dGVyLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL0JvdW5kc0NoZWNrZWRQb2ludGVyLmggXAogICAg
IFNvdXJjZS9XVEYvd3RmL0J1bXBQb2ludGVyQWxsb2NhdG9yLmggXAotICAgIFNvdXJjZS9XVEYv
d3RmL0J5dGVBcnJheS5jcHAgXAotICAgIFNvdXJjZS9XVEYvd3RmL0J5dGVBcnJheS5oIFwKICAg
ICBTb3VyY2UvV1RGL3d0Zi9DaGVja2VkQXJpdGhtZXRpYy5oIFwKICAgICBTb3VyY2UvV1RGL3d0
Zi9DaGVja2VkQm9vbGVhbi5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9Db21waWxlci5oIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLmd5cGkgYi9Tb3VyY2UvV1RGL1dURi5neXBpCmluZGV4
IGE1OGNiYmU0MjViN2RhY2I1OTg3ZmM1MDQwM2U2NmMwNmZmNTQ1NTguLjk0Mjg1NmU0ZDc0NTFh
Nzg1YjVlMTk0MzRkNWFhMjlkZDNhNmNiYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLmd5
cGkKKysrIGIvU291cmNlL1dURi9XVEYuZ3lwaQpAQCAtMTMsNyArMTMsNiBAQAogICAgICAgICAg
ICAgJ3d0Zi9CbG9ja1N0YWNrLmgnLAogICAgICAgICAgICAgJ3d0Zi9CbG9vbUZpbHRlci5oJywK
ICAgICAgICAgICAgICd3dGYvQnVtcFBvaW50ZXJBbGxvY2F0b3IuaCcsCi0gICAgICAgICAgICAn
d3RmL0J5dGVBcnJheS5oJywKICAgICAgICAgICAgICd3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaCcs
CiAgICAgICAgICAgICAnd3RmL0NoZWNrZWRCb29sZWFuLmgnLAogICAgICAgICAgICAgJ3d0Zi9D
b21waWxlci5oJywKQEAgLTEzMiw3ICsxMzEsNiBAQAogICAgICAgICAgICAgJ3d0Zi9BcnJheUJ1
ZmZlclZpZXcuaCcsCiAgICAgICAgICAgICAnd3RmL0Fzc2VydGlvbnMuY3BwJywKICAgICAgICAg
ICAgICd3dGYvQml0VmVjdG9yLmNwcCcsCi0gICAgICAgICAgICAnd3RmL0J5dGVBcnJheS5jcHAn
LAogICAgICAgICAgICAgJ3d0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAnLAog
ICAgICAgICAgICAgJ3d0Zi9DdXJyZW50VGltZS5jcHAnLAogICAgICAgICAgICAgJ3d0Zi9EYXRh
TG9nLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5wcm8gYi9Tb3VyY2UvV1RGL1dU
Ri5wcm8KaW5kZXggOWNhNTMzYWFhZGRlMDEwN2M1OWUxM2JhODJmMTg0YmFlYTM2ZTdjNC4uMmJk
OTBiNjJhMDQ0Y2M4MjcxN2ZhNjlhMWY1NDgwNmI2MmZkYmI0OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9XVEYucHJvCisrKyBiL1NvdXJjZS9XVEYvV1RGLnBybwpAQCAtMjYsNyArMjYsNiBAQCBI
RUFERVJTICs9IFwKICAgICBCbG9vbUZpbHRlci5oIFwKICAgICBCb3VuZHNDaGVja2VkUG9pbnRl
ci5oIFwKICAgICBCdW1wUG9pbnRlckFsbG9jYXRvci5oIFwKLSAgICBCeXRlQXJyYXkuaCBcCiAg
ICAgQ2hlY2tlZEFyaXRobWV0aWMuaCBcCiAgICAgQ29tcGlsZXIuaCBcCiAgICAgQ3J5cHRvZ3Jh
cGhpY2FsbHlSYW5kb21OdW1iZXIuaCBcCkBAIC0xNjgsNyArMTY3LDYgQEAgU09VUkNFUyArPSBc
CiAgICAgQXJyYXlCdWZmZXJWaWV3LmNwcCBcCiAgICAgQXNzZXJ0aW9ucy5jcHAgXAogICAgIEJp
dFZlY3Rvci5jcHAgXAotICAgIEJ5dGVBcnJheS5jcHAgXAogICAgIENyeXB0b2dyYXBoaWNhbGx5
UmFuZG9tTnVtYmVyLmNwcCBcCiAgICAgQ3VycmVudFRpbWUuY3BwIFwKICAgICBEYXRlTWF0aC5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2ogYi9Tb3Vy
Y2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagppbmRleCBlZGFlNjZjZDZjMTRiNjgyOWIyNWQ1
ZTgwYjcyMzkyNTE1YmY0OTFlLi5iZjc4NDE0YmQ5NjljYTI5ZTQ3YzI3MmUwNzJiYzY3MTU0OTg1
ZjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagorKysgYi9T
b3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagpAQCAtNjI5LDE0ICs2MjksNiBAQAogCQkJ
PgogCQk8L0ZpbGU+CiAJCTxGaWxlCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxCeXRlQXJyYXku
Y3BwIgotCQkJPgotCQk8L0ZpbGU+Ci0JCTxGaWxlCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxC
eXRlQXJyYXkuaCIKLQkJCT4KLQkJPC9GaWxlPgotCQk8RmlsZQogCQkJUmVsYXRpdmVQYXRoPSIu
Llx3dGZcQ2hlY2tlZEFyaXRobWV0aWMuaCIKIAkJCT4KIAkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RG
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjk5ZDhhNDc5ZjgxOTUxNjhlZTkzYmYw
NjVlMGIxOTdhMjA1ZGE0MS4uYjU1ZGRkMjUzNzg2ZjRkNzJlMWE0NWFmMTc4NzYxYjMwOWVkMzhh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNiw4ICsy
Niw2IEBACiAJCUE4QTQ3MzhGMTUxQTgyNUIwMDQxMjNGRiAvKiBCbG9vbUZpbHRlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcyNjUxNTFBODI1
QTAwNDEyM0ZGIC8qIEJsb29tRmlsdGVyLmggKi87IH07CiAJCUE4QTQ3MzkwMTUxQTgyNUIwMDQx
MjNGRiAvKiBCb3VuZHNDaGVja2VkUG9pbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcyNjYxNTFBODI1QTAwNDEyM0ZGIC8qIEJvdW5kc0No
ZWNrZWRQb2ludGVyLmggKi87IH07CiAJCUE4QTQ3MzkxMTUxQTgyNUIwMDQxMjNGRiAvKiBCdW1w
UG9pbnRlckFsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQThBNDcyNjcxNTFBODI1QTAwNDEyM0ZGIC8qIEJ1bXBQb2ludGVyQWxsb2NhdG9y
LmggKi87IH07Ci0JCUE4QTQ3MzkyMTUxQTgyNUIwMDQxMjNGRiAvKiBCeXRlQXJyYXkuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcyNjgxNTFB
ODI1QTAwNDEyM0ZGIC8qIEJ5dGVBcnJheS5jcHAgKi87IH07Ci0JCUE4QTQ3MzkzMTUxQTgyNUIw
MDQxMjNGRiAvKiBCeXRlQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4QTQ3MjY5MTUxQTgyNUEwMDQxMjNGRiAvKiBCeXRlQXJyYXkuaCAqLzsg
fTsKIAkJQThBNDczOTQxNTFBODI1QjAwNDEyM0ZGIC8qIENoZWNrZWRBcml0aG1ldGljLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzI2QTE1MUE4
MjVBMDA0MTIzRkYgLyogQ2hlY2tlZEFyaXRobWV0aWMuaCAqLzsgfTsKIAkJQThBNDczOTUxNTFB
ODI1QjAwNDEyM0ZGIC8qIENoZWNrZWRCb29sZWFuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzI2QjE1MUE4MjVBMDA0MTIzRkYgLyogQ2hlY2tl
ZEJvb2xlYW4uaCAqLzsgfTsKIAkJQThBNDczOTgxNTFBODI1QjAwNDEyM0ZGIC8qIENvbXBpbGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzI3
MDE1MUE4MjVBMDA0MTIzRkYgLyogQ29tcGlsZXIuaCAqLzsgfTsKQEAgLTI2Nyw4ICsyNjUsNiBA
QAogCQlBOEE0NzI2NTE1MUE4MjVBMDA0MTIzRkYgLyogQmxvb21GaWx0ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvb21GaWx0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQThBNDcyNjYxNTFBODI1QTAwNDEyM0ZGIC8qIEJvdW5kc0NoZWNrZWRQb2lu
dGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJvdW5kc0NoZWNrZWRQb2lu
dGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MjY3MTUxQTgyNUEwMDQx
MjNGRiAvKiBCdW1wUG9pbnRlckFsbG9jYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBCdW1wUG9pbnRlckFsbG9jYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlBOEE0NzI2ODE1MUE4MjVBMDA0MTIzRkYgLyogQnl0ZUFycmF5LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJ5dGVBcnJheS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUE4QTQ3MjY5MTUxQTgyNUEwMDQxMjNGRiAvKiBCeXRlQXJyYXkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQnl0ZUFycmF5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MjZBMTUxQTgyNUEwMDQxMjNGRiAvKiBDaGVja2VkQXJp
dGhtZXRpYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDaGVja2VkQXJpdGht
ZXRpYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzI2QjE1MUE4MjVBMDA0
MTIzRkYgLyogQ2hlY2tlZEJvb2xlYW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ2hlY2tlZEJvb2xlYW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcy
NzAxNTFBODI1QTAwNDEyM0ZGIC8qIENvbXBpbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENvbXBpbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NTYs
OCArNTUyLDYgQEAKIAkJCQlBOEE0NzI2NTE1MUE4MjVBMDA0MTIzRkYgLyogQmxvb21GaWx0ZXIu
aCAqLywKIAkJCQlBOEE0NzI2NjE1MUE4MjVBMDA0MTIzRkYgLyogQm91bmRzQ2hlY2tlZFBvaW50
ZXIuaCAqLywKIAkJCQlBOEE0NzI2NzE1MUE4MjVBMDA0MTIzRkYgLyogQnVtcFBvaW50ZXJBbGxv
Y2F0b3IuaCAqLywKLQkJCQlBOEE0NzI2ODE1MUE4MjVBMDA0MTIzRkYgLyogQnl0ZUFycmF5LmNw
cCAqLywKLQkJCQlBOEE0NzI2OTE1MUE4MjVBMDA0MTIzRkYgLyogQnl0ZUFycmF5LmggKi8sCiAJ
CQkJQThBNDcyNkExNTFBODI1QTAwNDEyM0ZGIC8qIENoZWNrZWRBcml0aG1ldGljLmggKi8sCiAJ
CQkJQThBNDcyNkIxNTFBODI1QTAwNDEyM0ZGIC8qIENoZWNrZWRCb29sZWFuLmggKi8sCiAJCQkJ
QThBNDcyNzAxNTFBODI1QTAwNDEyM0ZGIC8qIENvbXBpbGVyLmggKi8sCkBAIC04NzEsNyArODY1
LDYgQEAKIAkJCQlBOEE0NzM4RjE1MUE4MjVCMDA0MTIzRkYgLyogQmxvb21GaWx0ZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4QTQ3MzkwMTUxQTgyNUIwMDQxMjNGRiAvKiBCb3VuZHNDaGVja2Vk
UG9pbnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczOTExNTFBODI1QjAwNDEyM0ZGIC8q
IEJ1bXBQb2ludGVyQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEE0NzM5MzE1MUE4
MjVCMDA0MTIzRkYgLyogQnl0ZUFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzM5NDE1
MUE4MjVCMDA0MTIzRkYgLyogQ2hlY2tlZEFyaXRobWV0aWMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4QTQ3Mzk1MTUxQTgyNUIwMDQxMjNGRiAvKiBDaGVja2VkQm9vbGVhbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQThBNDczOTgxNTFBODI1QjAwNDEyM0ZGIC8qIENvbXBpbGVyLmggaW4gSGVhZGVy
cyAqLywKQEAgLTExMjIsNyArMTExNSw2IEBACiAJCQkJQThBNDczODMxNTFBODI1QjAwNDEyM0ZG
IC8qIEFycmF5QnVmZmVyVmlldy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzM4NjE1MUE4
MjVCMDA0MTIzRkYgLyogQXNzZXJ0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzM4
QjE1MUE4MjVCMDA0MTIzRkYgLyogQml0VmVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4
QTQ3MzkyMTUxQTgyNUIwMDQxMjNGRiAvKiBCeXRlQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQThBNDczOUExNTFBODI1QjAwNDEyM0ZGIC8qIENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVt
YmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3MzlDMTUxQTgyNUIwMDQxMjNGRiAvKiBD
dXJyZW50VGltZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzM5RTE1MUE4MjVCMDA0MTIz
RkYgLyogRGF0YUxvZy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL0J5dGVBcnJheS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9CeXRlQXJyYXkuY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZDQwMGM3ZmMxNTZjMTc4ZGQ4YmJiYzA0MzViMjM3MTBj
YjVmMDM0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0J5dGVBcnJheS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIkJ5dGVBcnJheS5oIgotCi0jaW5jbHVkZSAiU3RkTGliRXh0
cmFzLmgiCi0KLW5hbWVzcGFjZSBXVEYgewotCi1QYXNzUmVmUHRyPEJ5dGVBcnJheT4gQnl0ZUFy
cmF5OjpjcmVhdGUoc2l6ZV90IHNpemUpCi17Ci0gICAgaWYgKHNpemUgPiAoc3RkOjpudW1lcmlj
X2xpbWl0czxzaXplX3Q+OjptYXgoKSAtIE9CSkVDVF9PRkZTRVRPRihCeXRlQXJyYXksIG1fZGF0
YSkpKQotICAgICAgICBDUkFTSCgpOwotCi0gICAgdW5zaWduZWQgY2hhciogYnVmZmVyID0gbmV3
IHVuc2lnbmVkIGNoYXJbc2l6ZSArIE9CSkVDVF9PRkZTRVRPRihCeXRlQXJyYXksIG1fZGF0YSld
OwotICAgIEFTU0VSVCgocmVpbnRlcnByZXRfY2FzdDxzaXplX3Q+KGJ1ZmZlcikgJiAzKSA9PSAw
KTsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IChOb3ROdWxsLCBidWZmZXIpIEJ5dGVBcnJheShz
aXplKSk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0J5dGVBcnJheS5oIGIv
U291cmNlL1dURi93dGYvQnl0ZUFycmF5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGY2OGQwMzJmZDAwYjhkYzdlYThhMWI1ZDdmZGQ4MzA4YzcyNWYxNmQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dURi93dGYvQnl0ZUFycmF5
LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgQnl0ZUFycmF5X2gKLSNkZWZpbmUgQnl0
ZUFycmF5X2gKLQotI2luY2x1ZGUgPGxpbWl0cy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KLSNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+Ci0KLW5hbWVzcGFjZSBXVEYgewotICAg
IGNsYXNzIEJ5dGVBcnJheSA6IHB1YmxpYyBSZWZDb3VudGVkQmFzZSB7Ci0gICAgcHVibGljOgot
ICAgICAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KLQotICAg
ICAgICB2b2lkIHNldCh1bnNpZ25lZCBpbmRleCwgZG91YmxlIHZhbHVlKQotICAgICAgICB7Ci0g
ICAgICAgICAgICBpZiAoaW5kZXggPj0gbV9zaXplKQotICAgICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgICAgIGlmICghKHZhbHVlID4gMCkpIC8vIENsYW1wIE5hTiB0byAwCi0gICAgICAg
ICAgICAgICAgdmFsdWUgPSAwOwotICAgICAgICAgICAgZWxzZSBpZiAodmFsdWUgPiAyNTUpCi0g
ICAgICAgICAgICAgICAgdmFsdWUgPSAyNTU7Ci0gICAgICAgICAgICBtX2RhdGFbaW5kZXhdID0g
c3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4odmFsdWUgKyAwLjUpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgdm9pZCBzZXQodW5zaWduZWQgaW5kZXgsIHVuc2lnbmVkIGNoYXIgdmFsdWUpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGlmIChpbmRleCA+PSBtX3NpemUpCi0gICAgICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICAgICAgbV9kYXRhW2luZGV4XSA9IHZhbHVlOwotICAgICAgICB9Ci0K
LSAgICAgICAgYm9vbCBnZXQodW5zaWduZWQgaW5kZXgsIHVuc2lnbmVkIGNoYXImIHJlc3VsdCkg
Y29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKGluZGV4ID49IG1fc2l6ZSkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICByZXN1bHQgPSBtX2RhdGFbaW5k
ZXhdOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICB1bnNp
Z25lZCBjaGFyIGdldCh1bnNpZ25lZCBpbmRleCkgY29uc3QKLSAgICAgICAgewotICAgICAgICAg
ICAgQVNTRVJUKGluZGV4IDwgbV9zaXplKTsKLSAgICAgICAgICAgIHJldHVybiBtX2RhdGFbaW5k
ZXhdOwotICAgICAgICB9Ci0KLSAgICAgICAgdW5zaWduZWQgY2hhciogZGF0YSgpIHsgcmV0dXJu
IG1fZGF0YTsgfQotCi0gICAgICAgIHZvaWQgY2xlYXIoKSB7IG1lbXNldChtX2RhdGEsIDAsIG1f
c2l6ZSk7IH0KLQotICAgICAgICB2b2lkIGRlcmVmKCkKLSAgICAgICAgewotICAgICAgICAgICAg
aWYgKGRlcmVmQmFzZSgpKSB7Ci0gICAgICAgICAgICAgICAgLy8gV2UgYWxsb2NhdGVkIHdpdGgg
bmV3IHVuc2lnbmVkIGNoYXJbXSBpbiBjcmVhdGUoKSwKLSAgICAgICAgICAgICAgICAvLyBhbmQg
dGhlbiB1c2VkIHBsYWNlbWVudCBuZXcgdG8gY29uc3RydWN0IHRoZSBvYmplY3QuCi0gICAgICAg
ICAgICAgICAgdGhpcy0+fkJ5dGVBcnJheSgpOwotICAgICAgICAgICAgICAgIGRlbGV0ZVtdIHJl
aW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQgY2hhcio+KHRoaXMpOwotICAgICAgICAgICAgfQotICAg
ICAgICB9Ci0KLSAgICAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBQYXNzUmVmUHRyPEJ5
dGVBcnJheT4gY3JlYXRlKHNpemVfdCBzaXplKTsKLQotICAgICAgICBzdGF0aWMgc2l6ZV90IG9m
ZnNldE9mU2l6ZSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihCeXRlQXJyYXksIG1fc2l6ZSk7
IH0KLSAgICAgICAgc3RhdGljIHNpemVfdCBvZmZzZXRPZkRhdGEoKSB7IHJldHVybiBPQkpFQ1Rf
T0ZGU0VUT0YoQnl0ZUFycmF5LCBtX2RhdGEpOyB9Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBC
eXRlQXJyYXkoc2l6ZV90IHNpemUpCi0gICAgICAgICAgICA6IG1fc2l6ZShzaXplKQotICAgICAg
ICB7Ci0gICAgICAgIH0KLSAgICAgICAgc2l6ZV90IG1fc2l6ZTsKLS8vIE1TVkMgY2FuJ3QgaGFu
ZGxlIGNvcnJlY3RseSB1bnNpemVkIGFycmF5LgotLy8gd2FybmluZyBDNDIwMDogbm9uc3RhbmRh
cmQgZXh0ZW5zaW9uIHVzZWQgOiB6ZXJvLXNpemVkIGFycmF5IGluIHN0cnVjdC91bmlvbgotLy8g
Q2Fubm90IGdlbmVyYXRlIGNvcHktY3RvciBvciBjb3B5LWFzc2lnbm1lbnQgb3BlcmF0b3Igd2hl
biBVRFQgY29udGFpbnMgYSB6ZXJvLXNpemVkIGFycmF5Ci0jaWYgKENPTVBJTEVSKE1TVkMpICB8
fCBDT01QSUxFUihTVU5DQykpICYmICFDT01QSUxFUihJTlRFTCkKLSAgICAgICAgdW5zaWduZWQg
Y2hhciBtX2RhdGFbSU5UX01BWF07Ci0jZWxzZQotICAgICAgICB1bnNpZ25lZCBjaGFyIG1fZGF0
YVtdOwotI2VuZGlmCi0gICAgfTsKLX0gLy8gbmFtZXNwYWNlIFdURgotCi11c2luZyBXVEY6OkJ5
dGVBcnJheTsKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CmluZGV4IDE1OWMzYTJmMmRmNGEw
OTczYzFjMDNjMzE1OWRlN2NiNGNjNmQzMjYuLmUxODA5NGZhNWRjMDY1NTdlYTlkNmZhODE3NTg0
MmY5NWQxZjk0MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CkBAIC05LDcgKzksNiBAQCBTRVQoV1RG
X0hFQURFUlMKICAgICBCaXRtYXAuaAogICAgIEJvdW5kc0NoZWNrZWRQb2ludGVyLmgKICAgICBC
dW1wUG9pbnRlckFsbG9jYXRvci5oCi0gICAgQnl0ZUFycmF5LmgKICAgICBDb21waWxlci5oCiAg
ICAgQ29tcGxleC5oCiAgICAgQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaApAQCAtMTM2
LDcgKzEzNSw2IEBAIFNFVChXVEZfU09VUkNFUwogICAgIEFycmF5QnVmZmVyVmlldy5jcHAKICAg
ICBBc3NlcnRpb25zLmNwcAogICAgIEJpdFZlY3Rvci5jcHAKLSAgICBCeXRlQXJyYXkuY3BwCiAg
ICAgQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuY3BwCiAgICAgQ3VycmVudFRpbWUuY3Bw
CiAgICAgRGF0ZU1hdGguY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGU2YzRlYWZjMzU2NDJk
ZjU2ZGI4MmI2ZTNiYTZmY2Q5N2Y2N2U5MWUuLmEzYjE2YjAyZDMzZDg5MzkyOTIzZTljNjZiMjQx
MmVkMGNkNTE2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC04NjMsNyArODYzLDYgQEAgU0VU
KFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwvY2FudmFzL0NhbnZhc0NvbnRleHRBdHRyaWJ1dGVz
LmNwcAogICAgIGh0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmNwcAogICAgIGh0bWwvY2FudmFz
L0NhbnZhc1BhdHRlcm4uY3BwCi0gICAgaHRtbC9jYW52YXMvQ2FudmFzUGl4ZWxBcnJheS5jcHAK
ICAgICBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcAogICAgIGh0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKICAgICBodG1sL2NhbnZhcy9DYW52YXNT
dHlsZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaSBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQppbmRleCA3NzczNzg2NTNhNjUxMDUy
YmFkODA4M2UxOTY3ZWIxMDk5YTVlMjZjLi4xNWM5MThjZjg5Y2M1NTM3MTc0ZmQ0M2VjM2Q5MzEy
MWM0YTRkNjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkK
KysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCkBAIC00NTUsNyArNDU1LDYg
QEAgSURMX0JJTkRJTkdTICs9IFwKIAogdjggewogICBJRExfQklORElOR1MgKz0gXAotICAgICQk
UFdEL2h0bWwvY2FudmFzL0NhbnZhc1BpeGVsQXJyYXkuaWRsIFwKICAgICAkJFBXRC9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlRXZlbnQuaWRsIFwKICAgICAkJFBXRC9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5pZGwKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNCeXRlQXJyYXkuaCBiL1Nv
dXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNCeXRlQXJyYXkuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2U1MTQwZjEyZDQ2ZWUwNDM0ZGMzZWE2MDkzYzE0
NGZkMDU3ZTY4OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTQnl0ZUFycmF5LmgK
KysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLSNpZm5kZWYgV2ViQ29yZV9GV0RfSlNCeXRl
QXJyYXlfaAotI2RlZmluZSBXZWJDb3JlX0ZXRF9KU0J5dGVBcnJheV9oCi0jaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNCeXRlQXJyYXkuaD4KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KaW5kZXggMGZlYTM2NzA4MjZhNWUwNjJjNDE0MGI1NDdiNzI1OWEwOTBjYzgzMy4uNDdh
ODQwOGYxMGM0NTA0MjllZTg4ZDk0OTdjYjFlMmZjNjY4ZmI1NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCkBAIC0yMTk0LDggKzIxOTQsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmggXAogCVNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1BhdHRlcm4uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNQYXR0ZXJuLmggXAotCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0NhbnZhc1BpeGVsQXJyYXkuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNQaXhlbEFycmF5LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bUJsYWNrQmVycnkuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUJsYWNrQmVycnkuY21h
a2UKaW5kZXggYzcwMmQyZjQ2MTEyZGEyZjY2ZWE1MzU2ZDFkODgxODExMzVmMzk0Ny4uODhmNjNl
NDdkOGExZDcwZDQwNWE5OGZjZDJiZGY2ZjQ0MjJjNmFmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRm
b3JtQmxhY2tCZXJyeS5jbWFrZQpAQCAtMzExLDcgKzMxMSw2IEBAIEVOREZPUkVBQ0ggKCkKIAog
U0VUKFdlYkNvcmVfQ1BQX0lETF9GSUxFUwogICAgIGRvbS9FdmVudExpc3RlbmVyLmlkbAotICAg
IGh0bWwvY2FudmFzL0NhbnZhc1BpeGVsQXJyYXkuaWRsCiAgICAgIiR7V2ViQ29yZV9DUFBfSURM
X0ZJTEVTfSIKICkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggMzcxYTk4ZmMxOTdjODViYjNkMTg0ZDA1MzQ5
YzYyYmJmYmE1YjkxMC4uN2ZjZjU5OTE4OGU5ZmFiMzQzNTBiOGYzOWQxMzQ4NGQwZWY1MGI0YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCkBAIC0xNjUsNyArMTY1LDYgQEAgdjggewogICAgICAgICBiaW5kaW5ncy92
OC9jdXN0b20vVjhDU1NTdHlsZVNoZWV0Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4
L2N1c3RvbS9WOENTU1ZhbHVlQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAgXAotICAgICAgICBiaW5kaW5n
cy92OC9jdXN0b20vVjhDYW52YXNQaXhlbEFycmF5Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOENsaXBib2FyZEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy92
OC9jdXN0b20vVjhDb29yZGluYXRlc0N1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9j
dXN0b20vVjhJbWFnZURhdGFDdXN0b20uY3BwIFwKQEAgLTg0Miw3ICs4NDEsNiBAQCBTT1VSQ0VT
ICs9IFwKICAgICBodG1sL1dlZWtJbnB1dFR5cGUuY3BwIFwKICAgICBodG1sL2NhbnZhcy9DYW52
YXNHcmFkaWVudC5jcHAgXAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1BhdHRlcm4uY3BwIFwKLSAg
ICBodG1sL2NhbnZhcy9DYW52YXNQaXhlbEFycmF5LmNwcCBcCiAgICAgaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dC5jcHAgXAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5jcHAgXAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmNwcCBcCkBAIC0x
ODU2LDcgKzE4NTQsNiBAQCBIRUFERVJTICs9IFwKICAgICBoaXN0b3J5L1BhZ2VDYWNoZS5oIFwK
ICAgICBodG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5oIFwKICAgICBodG1sL2NhbnZhcy9DYW52
YXNQYXR0ZXJuLmggXAotICAgIGh0bWwvY2FudmFzL0NhbnZhc1BpeGVsQXJyYXkuaCBcCiAgICAg
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oIFwKICAgICBodG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBcCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUu
aCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL1VzZVY4LmNtYWtlCmluZGV4IDIyZjk0ZmVhNDkzNTBlYmIyOGNmNmU3NjAzYTVlMWU4YjQw
NmMyYTQuLmVlNGU2Yjk1OTQwMmE0ZGY5MjBjNTRmMTVhOTkxYWE1ZjJmN2Q2M2UgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1VzZVY4
LmNtYWtlCkBAIC03NSw3ICs3NSw2IEBAIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAg
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwCiAgICAg
YmluZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTU3R5bGVTaGVldEN1c3RvbS5jcHAKICAgICBiaW5kaW5n
cy92OC9jdXN0b20vVjhDU1NWYWx1ZUN1c3RvbS5jcHAKLSAgICBiaW5kaW5ncy92OC9jdXN0b20v
VjhDYW52YXNQaXhlbEFycmF5Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20v
VjhDbGlwYm9hcmRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q29uc29sZUN1
c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBkOWI3OTEwZGEyZWFjOWZlY2UxZTIwODQyYzRk
ODAxZmU3ZTdlNTA2Li5jODQxNjE4MDIwODFiOWFhYWMzNzE1ZDVkNzFjODI1MjlmNWUzNjc1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCkBAIC0xMDgwLDcgKzEwODAsNiBAQAogICAgICAgICAgICAgJ2h0bWwv
Y2FudmFzL0FycmF5QnVmZmVyVmlldy5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0Nh
bnZhc0dyYWRpZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvQ2FudmFzUGF0dGVy
bi5pZGwnLAotICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0NhbnZhc1BpeGVsQXJyYXkuaWRsJywK
ICAgICAgICAgICAgICdodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmlkbCcsCiAg
ICAgICAgICAgICAnaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbCcsCiAg
ICAgICAgICAgICAnaHRtbC9jYW52YXMvRGF0YVZpZXcuaWRsJywKQEAgLTIyMjUsNyArMjIyNCw2
IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTU3R5bGVEZWNsYXJhdGlv
bkN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1N0eWxl
U2hlZXRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhDU1NW
YWx1ZUN1c3RvbS5jcHAnLAotICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENhbnZh
c1BpeGVsQXJyYXlDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20v
VjhDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5k
aW5ncy92OC9jdXN0b20vVjhDbGlwYm9hcmRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5k
aW5ncy92OC9jdXN0b20vVjhDb25zb2xlQ3VzdG9tLmNwcCcsCkBAIC01NjQ3LDggKzU2NDUsNiBA
QAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmgnLAogICAgICAgICAg
ICAgJ2h0bWwvY2FudmFzL0NhbnZhc1BhdHRlcm4uY3BwJywKICAgICAgICAgICAgICdodG1sL2Nh
bnZhcy9DYW52YXNQYXR0ZXJuLmgnLAotICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0NhbnZhc1Bp
eGVsQXJyYXkuY3BwJywKLSAgICAgICAgICAgICdodG1sL2NhbnZhcy9DYW52YXNQaXhlbEFycmF5
LmgnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3Bw
JywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmgnLAog
ICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAnLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlciBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUub3JkZXIKaW5kZXggZmIwNWM3MDc4ODc5YjZlOGQ5ZWRlMTZiZTdmNGNlOTZmNDQ2
M2I2Zi4uNDFjNmZlNDJmNDk0ODkyMWVjNGI0OTMyZmRkMDQ5YWM4MzhlZTk1MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLm9yZGVyCkBAIC05MDYyLDggKzkwNjIsNiBAQCBfX1pOSzdXZWJDb3JlMTFJbWFnZUJ1ZmZl
cjI0Z2V0VW5tdWx0aXBsaWVkSW1hZ2VEYXRhRVJLTlNfN0ludFJlY3RFCiBfX1pOSzdXZWJDb3Jl
MTVJbWFnZUJ1ZmZlckRhdGE3Z2V0RGF0YUVSS05TXzdJbnRSZWN0RVJLTlNfN0ludFNpemVFYmIK
IF9fWk43V2ViQ29yZUwyMnVucHJlbXVsdGl0cGx5U2NhbmxpbmVFUHZtCiBfX1pON1dlYkNvcmVM
MTVjb252ZXJ0U2NhbmxpbmVFUHZtYgotX19aTjdXZWJDb3JlOUltYWdlRGF0YTZjcmVhdGVFUktO
U183SW50U2l6ZUVOM1dURjEwUGFzc1JlZlB0cklOUzRfOUJ5dGVBcnJheUVFRQotX19aTjdXZWJD
b3JlMTZDYW52YXNQaXhlbEFycmF5NmNyZWF0ZUVOM1dURjEwUGFzc1JlZlB0cklOUzFfOUJ5dGVB
cnJheUVFRQogX19aTjdXZWJDb3JlNHRvSlNFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUds
b2JhbE9iamVjdEVQTlNfOUltYWdlRGF0YUUKIF9fWk43V2ViQ29yZTEzY3JlYXRlV3JhcHBlcklO
U18xMUpTSW1hZ2VEYXRhRU5TXzlJbWFnZURhdGFFRUVQTlNfMTJKU0RPTVdyYXBwZXJFUE4zSlND
OUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQVDBfCiBfX1pON1dlYkNvcmUxNWdl
dERPTVN0cnVjdHVyZUlOU18xMUpTSW1hZ2VEYXRhRUVFUE4zSlNDOVN0cnVjdHVyZUVQTlMyXzlF
eGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFCkBAIC05MzAyLDcgKzkzMDAsNiBAQCBf
X1pON1dlYkNvcmUyNkpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEMTVjcmVhdGVJbWFnZURhdGFF
UE4zSlNDOUV4ZWNTdGF0ZUUKIF9fWk5LN1dlYkNvcmUyNENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RDE1Y3JlYXRlSW1hZ2VEYXRhRWZmUmkKIF9fWk5LN1dlYkNvcmUxN0hUTUxDYW52YXNFbGVtZW50
MjJjb252ZXJ0TG9naWNhbFRvRGV2aWNlRVJLTlNfOUZsb2F0U2l6ZUUKIF9fWk43V2ViQ29yZTlJ
bWFnZURhdGE2Y3JlYXRlRVJLTlNfN0ludFNpemVFCi1fX1pON1dlYkNvcmUxNkNhbnZhc1BpeGVs
QXJyYXk2Y3JlYXRlRWoKIF9fWk43V2ViQ29yZTExdG9JbWFnZURhdGFFTjNKU0M3SlNWYWx1ZUUK
IF9fWk5LN1dlYkNvcmUyNENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDE1Y3JlYXRlSW1hZ2VEYXRh
RU4zV1RGMTBQYXNzUmVmUHRySU5TXzlJbWFnZURhdGFFRUVSaQogX19aTjdXZWJDb3JlMTZqc0lt
YWdlRGF0YVdpZHRoRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRp
ZmllckUKQEAgLTkzMjAsOCArOTMxNyw2IEBAIF9fWk43V2ViQ29yZTU1anNDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRQcm90b3R5cGVGdW5jdGlvblB1dEltYWdlRGF0YUVQTjNKU0M5RXhlCiBfX1pO
N1dlYkNvcmUyNkpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEMTJwdXRJbWFnZURhdGFFUE4zSlND
OUV4ZWNTdGF0ZUUKIF9fWk43V2ViQ29yZTI0Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEMTJwdXRJ
bWFnZURhdGFFUE5TXzlJbWFnZURhdGFFZmZSaQogX19aTjdXZWJDb3JlMjRDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQxMnB1dEltYWdlRGF0YUVQTlNfOUltYWdlRGF0YUVmZmZmZmZSaQotX19aTjdX
ZWJDb3JlMTFJbWFnZUJ1ZmZlcjI0cHV0VW5tdWx0aXBsaWVkSW1hZ2VEYXRhRVBOM1dURjlCeXRl
QXJyYXlFUktOU183SW50U2l6ZUVSS05TXzdJbnRSZWN0RVJLTlNfOEludFBvaW50RQotX19aTjdX
ZWJDb3JlMTVJbWFnZUJ1ZmZlckRhdGE3cHV0RGF0YUVSUE4zV1RGOUJ5dGVBcnJheUVSS05TXzdJ
bnRTaXplRVJLTlNfN0ludFJlY3RFUktOU184SW50UG9pbnRFUzdfYmIKIF9fWk43V2ViQ29yZUwy
MHByZW11bHRpdHBseVNjYW5saW5lRVB2bQogX19aTkszSlNDOEpTT2JqZWN0MTF0b1ByaW1pdGl2
ZUVQTlNfOUV4ZWNTdGF0ZUVOU18yMlByZWZlcnJlZFByaW1pdGl2ZVR5cGVFCiBfX1pON1dlYkNv
cmU0M2pzRE9NQ29yZUV4Y2VwdGlvblByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmdFUE4zSlNDOUV4
ZWNTdGF0ZUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
aW5kZXggY2QwZmUzODE4NzEwY2E3ZjdhYTlmZDZlMTIzYTI2NGZjM2ZhNGIwOC4uZDcxNTUxMGMz
MTMxNmRkMTkwYmMxYmQ5YTFkNTQ5OTQ5MWI5ZmYyYSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTU3NDY2LDE0ICs1NzQ2Niw2IEBACiAJCQkJ
PgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcY2FudmFz
XENhbnZhc1BpeGVsQXJyYXkuY3BwIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJ
UmVsYXRpdmVQYXRoPSIuLlxodG1sXGNhbnZhc1xDYW52YXNQaXhlbEFycmF5LmgiCi0JCQkJPgot
CQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcY2FudmFzXENh
bnZhc1JlbmRlcmluZ0NvbnRleHQuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4MzkzNWI2
MTRmNWM2Nzk1MzRiMWY0ZjVjZGQ3YjA5OWVhYzRkN2I0Li45ZTJlYzFiZTZjMmI0NDYzZmQ1YzA4
ZWJhNjllMjBkZWNhNTMwMWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjEwLDggKzEyMTAsNiBAQAogCQk0OTQ4NEZDMjEw
MkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NDg0RkI0MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52
YXNHcmFkaWVudC5oICovOyB9OwogCQk0OTQ4NEZDNDEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFz
UGF0dGVybi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0OTQ4NEZCNjEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzUGF0dGVybi5jcHAgKi87IH07CiAJ
CTQ5NDg0RkM1MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNQYXR0ZXJuLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTQ4NEZCNzEwMkNGMjNDMDAxODdE
RDMgLyogQ2FudmFzUGF0dGVybi5oICovOyB9OwotCQk0OTQ4NEZDNzEwMkNGMjNDMDAxODdERDMg
LyogQ2FudmFzUGl4ZWxBcnJheS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0OTQ4NEZCOTEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzUGl4ZWxBcnJh
eS5jcHAgKi87IH07Ci0JCTQ5NDg0RkM4MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNQaXhlbEFy
cmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTQ4
NEZCQTEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzUGl4ZWxBcnJheS5oICovOyB9OwogCQk0OTQ4
NEZDQTEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NDg0RkJDMTAyQ0Yy
M0MwMDE4N0REMyAvKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwICovOyB9OwogCQk0OTQ4
NEZDQjEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTQ4NEZCRDEwMkNGMjND
MDAxODdERDMgLyogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggKi87IH07CiAJCTQ5NDg0RkNE
MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNTdHlsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTQ4NEZCRjEwMkNGMjNDMDAxODdERDMgLyogQ2Fu
dmFzU3R5bGUuY3BwICovOyB9OwpAQCAtODE3Myw5ICs4MTcxLDYgQEAKIAkJNDk0ODRGQjYxMDJD
RjIzQzAwMTg3REQzIC8qIENhbnZhc1BhdHRlcm4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gQ2FudmFzUGF0dGVybi5jcHA7IHBhdGggPSBjYW52YXMvQ2FudmFzUGF0
dGVybi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5NDg0RkI3MTAyQ0YyM0Mw
MDE4N0REMyAvKiBDYW52YXNQYXR0ZXJuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IENhbnZhc1BhdHRlcm4uaDsgcGF0aCA9IGNhbnZhcy9DYW52YXNQYXR0ZXJuLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5NDg0RkI4MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52
YXNQYXR0ZXJuLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBDYW52YXNQYXR0ZXJuLmlkbDsg
cGF0aCA9IGNhbnZhcy9DYW52YXNQYXR0ZXJuLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNDk0ODRGQjkxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1BpeGVsQXJyYXkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ2FudmFzUGl4ZWxBcnJheS5jcHA7
IHBhdGggPSBjYW52YXMvQ2FudmFzUGl4ZWxBcnJheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTQ5NDg0RkJBMTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNQaXhlbEFycmF5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENhbnZhc1BpeGVsQXJyYXkuaDsgcGF0
aCA9IGNhbnZhcy9DYW52YXNQaXhlbEFycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTQ5NDg0RkJCMTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNQaXhlbEFycmF5LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IG5hbWUgPSBDYW52YXNQaXhlbEFycmF5LmlkbDsgcGF0aCA9IGNhbnZhcy9D
YW52YXNQaXhlbEFycmF5LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk0ODRG
QkMxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
Y3BwOyBwYXRoID0gY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5NDg0RkJEMTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmg7IHBhdGggPSBjYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5NDg0RkJFMTAyQ0YyM0Mw
MDE4N0REMyAvKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
bmFtZSA9IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGw7IHBhdGggPSBjYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0
NjkwLDkgKzE0Njg1LDYgQEAKIAkJCQk0OTQ4NEZCNjEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFz
UGF0dGVybi5jcHAgKi8sCiAJCQkJNDk0ODRGQjcxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1Bh
dHRlcm4uaCAqLywKIAkJCQk0OTQ4NEZCODEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzUGF0dGVy
bi5pZGwgKi8sCi0JCQkJNDk0ODRGQjkxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1BpeGVsQXJy
YXkuY3BwICovLAotCQkJCTQ5NDg0RkJBMTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNQaXhlbEFy
cmF5LmggKi8sCi0JCQkJNDk0ODRGQkIxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1BpeGVsQXJy
YXkuaWRsICovLAogCQkJCTQ5QzdCOUJDMTA0MkQzMkYwMDA5RDQ0NyAvKiBDYW52YXNSZW5kZXJp
bmdDb250ZXh0LmNwcCAqLywKIAkJCQk0OUM3QjlCRDEwNDJEMzJGMDAwOUQ0NDcgLyogQ2FudmFz
UmVuZGVyaW5nQ29udGV4dC5oICovLAogCQkJCTQ5QzdCOUJFMTA0MkQzMkYwMDA5RDQ0NyAvKiBD
YW52YXNSZW5kZXJpbmdDb250ZXh0LmlkbCAqLywKQEAgLTIxNzkxLDcgKzIxNzgzLDYgQEAKIAkJ
CQk2RTRFOTFBRDEwRjdGQjMxMDBBMjc3OUMgLyogQ2FudmFzQ29udGV4dEF0dHJpYnV0ZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCTQ5NDg0RkMyMTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNHcmFk
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk0ODRGQzUxMDJDRjIzQzAwMTg3REQzIC8qIENh
bnZhc1BhdHRlcm4uaCBpbiBIZWFkZXJzICovLAotCQkJCTQ5NDg0RkM4MTAyQ0YyM0MwMDE4N0RE
MyAvKiBDYW52YXNQaXhlbEFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUM3QjlERDEwNDJE
MzJGMDAwOUQ0NDcgLyogQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDk0ODRGQ0IxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDk0ODRGQ0UxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1N0
eWxlLmggaW4gSGVhZGVycyAqLywKQEAgLTI1MjkyLDcgKzI1MjgzLDYgQEAKIAkJCQk2RTRFOTFB
QzEwRjdGQjMxMDBBMjc3OUMgLyogQ2FudmFzQ29udGV4dEF0dHJpYnV0ZXMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDk0ODRGQzExMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc0dyYWRpZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTQ5NDg0RkM0MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNQ
YXR0ZXJuLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQ5NDg0RkM3MTAyQ0YyM0MwMDE4N0REMyAv
KiBDYW52YXNQaXhlbEFycmF5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5QzdCOURDMTA0MkQz
MkYwMDA5RDQ0NyAvKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTQ5NDg0RkNBMTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDk0ODRGQ0QxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZh
c1N0eWxlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKaW5kZXggMjUxZjM0OWUxYmY1MDM0YmY0
Yjk4MDhiMWYzNWJiODE0M2E1N2VhMC4uM2NmODEwNzUyZWExMWU1Zjk1MTJjNjBjYjFkYjc3Y2Jl
MzE1MWZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSA8d3RmL0FycmF5
QnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyVmlldy5oPgogI2luY2x1ZGUgIkJs
b2IuaCIKLSNpbmNsdWRlICJDYW52YXNQaXhlbEFycmF5LmgiCiAjaW5jbHVkZSAiRGF0YVZpZXcu
aCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRmlsZS5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAppbmRleCBkNDA5NjM0ZTlkN2VjMjE5NDM0ODEw
MDEwNTAzYjJkMWUxYzM4M2MwLi5lZDlkNjJhNWRhOTkwM2FmYzUyODQ4MTAzMTJkZmMzNzNiOGIx
YzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaApAQCAtMzY2LDkgKzM2
Niw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gSWYgdGhlIG9iamVjdCBoYXMg
YW55IGludGVybmFsIGZpZWxkcywgdGhlbiB3ZSB3b24ndCBiZSBhYmxlIHRvIHNlcmlhbGl6ZSBv
ciBkZXNlcmlhbGl6ZQogICAgICAgICAvLyB0aGVtOyBjb252ZW5pZW50bHksIHRoaXMgaXMgYWxz
byBhIHF1aWNrIHdheSB0byBkZXRlY3QgRE9NIHdyYXBwZXIgb2JqZWN0cywgYmVjYXVzZQogICAg
ICAgICAvLyB0aGUgbWVjaGFuaXNtIGZvciB0aGVzZSByZWxpZXMgb24gZGF0YSBzdG9yZWQgaW4g
dGhlc2UgZmllbGRzLiBXZSBzaG91bGQKLSAgICAgICAgLy8gY2F0Y2ggZXh0ZXJuYWwgYXJyYXkg
ZGF0YSBhbmQgZXh0ZXJuYWwgcGl4ZWwgZGF0YSBhcyBhIHNwZWNpYWwgY2FzZSAobm90aW5nIHRo
YXQgQ2FudmFzUGl4ZWxBcnJheXMKLSAgICAgICAgLy8gY2FuJ3QgYmUgc2VyaWFsaXplZCB3aXRo
b3V0IGJlaW5nIHdyYXBwZWQgYnkgSW1hZ2VEYXRhIGFjY29yZGluZyB0byB0aGUgc3RhbmRhcmQp
LgotICAgICAgICByZXR1cm4gb2JqZWN0LT5JbnRlcm5hbEZpZWxkQ291bnQoKSB8fCBvYmplY3Qt
Pkhhc0luZGV4ZWRQcm9wZXJ0aWVzSW5QaXhlbERhdGEoKSB8fCBvYmplY3QtPkhhc0luZGV4ZWRQ
cm9wZXJ0aWVzSW5FeHRlcm5hbEFycmF5RGF0YSgpOworICAgICAgICAvLyBjYXRjaCBleHRlcm5h
bCBhcnJheSBkYXRhIGFzIGEgc3BlY2lhbCBjYXNlLgorICAgICAgICByZXR1cm4gb2JqZWN0LT5J
bnRlcm5hbEZpZWxkQ291bnQoKSB8fCBvYmplY3QtPkhhc0luZGV4ZWRQcm9wZXJ0aWVzSW5FeHRl
cm5hbEFycmF5RGF0YSgpOwogICAgIH0KIAogICAgIGlubGluZSB2ODo6SGFuZGxlPHY4OjpCb29s
ZWFuPiB2OEJvb2xlYW4oYm9vbCB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOENhbnZhc1BpeGVsQXJyYXlDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q2FudmFzUGl4ZWxBcnJheUN1c3RvbS5jcHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE3OTc5YjIxYWQyNjBlODY1MThlYjNlMWE2ZDkz
MjMzYzdkZTM0MjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q2FudmFzUGl4ZWxBcnJheUN1
c3RvbS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4K
LSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
Ci0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIlY4Q2FudmFzUGl4ZWxBcnJheS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLXY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KENhbnZhc1BpeGVsQXJyYXkqIGltcGwsIHY4
OjpJc29sYXRlKiBpc29sYXRlKQotewotICAgIGlmICghaW1wbCkKLSAgICAgICAgcmV0dXJuIHY4
OjpOdWxsKCk7Ci0gICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gVjhDYW52YXNQ
aXhlbEFycmF5Ojp3cmFwKGltcGwpOwotICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpIHsKLSAg
ICAgICAgd3JhcHBlci0+U2V0SW5kZXhlZFByb3BlcnRpZXNUb1BpeGVsRGF0YShpbXBsLT5kYXRh
KCktPmRhdGEoKSwgaW1wbC0+bGVuZ3RoKCkpOwotICAgICAgICB3cmFwcGVyLT5TZXQodjg6OlN0
cmluZzo6TmV3U3ltYm9sKCJsZW5ndGgiKSwKLSAgICAgICAgICAgICAgICAgICAgIHY4OjpJbnRl
Z2VyOjpOZXcoaW1wbC0+bGVuZ3RoKCkpLAotICAgICAgICAgICAgICAgICAgICAgdjg6OlJlYWRP
bmx5KTsKLSAgICB9Ci0gICAgcmV0dXJuIHdyYXBwZXI7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElu
amVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwCmluZGV4IGQzYThkN2ZiYjBhYzg1
ZGIwYjZmYjc4MzI1YmM5YWZiNjhjMWE2MDQuLjg3ZDE5NWFjZWEzOWZjYWU2YmE3ODBiMDIxNmZh
ZjAxMzNlYTNiYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcApAQCAtNDAsNyAr
NDAsNiBAQAogI2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgi
CiAjaW5jbHVkZSAiVjhCaW5kaW5nU3RhdGUuaCIKLSNpbmNsdWRlICJWOENhbnZhc1BpeGVsQXJy
YXkuaCIKICNpbmNsdWRlICJWOERhdGFiYXNlLmgiCiAjaW5jbHVkZSAiVjhGbG9hdDMyQXJyYXku
aCIKICNpbmNsdWRlICJWOEZsb2F0NjRBcnJheS5oIgpAQCAtNTcsNiArNTYsNyBAQAogI2luY2x1
ZGUgIlY4VWludDE2QXJyYXkuaCIKICNpbmNsdWRlICJWOFVpbnQzMkFycmF5LmgiCiAjaW5jbHVk
ZSAiVjhVaW50OEFycmF5LmgiCisjaW5jbHVkZSAiVjhVaW50OENsYW1wZWRBcnJheS5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTE0OCw3ICsxNDgsNyBAQCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhJbmplY3RlZFNjcmlwdEhvc3Q6OnR5cGVDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcgogICAgICAgICByZXR1cm4gdjg6OlN0cmluZzo6TmV3KCJhcnJheSIpOwogICAgIGlm
IChWOEZsb2F0MzJBcnJheTo6SGFzSW5zdGFuY2UodmFsdWUpIHx8IFY4RmxvYXQ2NEFycmF5OjpI
YXNJbnN0YW5jZSh2YWx1ZSkpCiAgICAgICAgIHJldHVybiB2ODo6U3RyaW5nOjpOZXcoImFycmF5
Iik7Ci0gICAgaWYgKFY4Q2FudmFzUGl4ZWxBcnJheTo6SGFzSW5zdGFuY2UodmFsdWUpKQorICAg
IGlmIChWOFVpbnQ4Q2xhbXBlZEFycmF5OjpIYXNJbnN0YW5jZSh2YWx1ZSkpCiAgICAgICAgIHJl
dHVybiB2ODo6U3RyaW5nOjpOZXcoImFycmF5Iik7CiAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcAppbmRleCBkNDFhZDM1
OTE5YzBlZmYyNjg3ZjJiYmMxZWY4M2UwYTRlMTFmMGQ4Li5mYWJkNDc4OTg3ZjEzZWE4Mzg2M2I2
ZGQzMmRiZmUyMWUyN2MzYmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQv
cXRfcnVudGltZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUu
Y3BwCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSAiRnVuY3Rpb25Qcm90b3R5cGUuaCIKICNp
bmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpTQXJyYXkuaCIKLSNpbmNsdWRlICJK
U0J5dGVBcnJheS5oIgogI2luY2x1ZGUgIkpTRG9jdW1lbnQuaCIKICNpbmNsdWRlICJKU0RPTUJp
bmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgpAQCAtMzcsNiArMzYsNyBAQAogI2lu
Y2x1ZGUgIkpTTG9jay5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNSZXRh
aW5QdHIuaCIKKyNpbmNsdWRlICJKU1VpbnQ4Q2xhbXBlZEFycmF5LmgiCiAjaW5jbHVkZSAiT2Jq
ZWN0UHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlOYW1lQXJyYXkuaCIKICNpbmNsdWRl
ICJSZWdFeHBDb25zdHJ1Y3Rvci5oIgpAQCAtMTA2LDcgKzEwNiw3IEBAIHR5cGVkZWYgZW51bSB7
CiAgICAgT2JqZWN0LAogICAgIE51bGwsCiAgICAgUlRBcnJheSwKLSAgICBKU0J5dGVBcnJheQor
ICAgIEpTVWludDhDbGFtcGVkQXJyYXkKIH0gSlNSZWFsVHlwZTsKIAogI2lmIGRlZmluZWQoUVRX
S19SVU5USU1FX0NPTlZFUlNJT05fREVCVUcpIHx8IGRlZmluZWQoUVRXS19SVU5USU1FX01BVENI
X0RFQlVHKQpAQCAtMTM3LDYgKzEzNywxMSBAQCB2b2lkIHJlZ2lzdGVyQ3VzdG9tVHlwZShpbnQg
cXRNZXRhVHlwZUlkLCBDb252ZXJ0VG9WYXJpYW50RnVuY3Rpb24gdG9WYXJpYW50RnVuYwogICAg
IGN1c3RvbVJ1bnRpbWVDb252ZXJzaW9ucygpLT5pbnNlcnQocXRNZXRhVHlwZUlkLCBjb252ZXJz
aW9uKTsKIH0KIAorc3RhdGljIGJvb2wgaXNKU1VpbnQ4Q2xhbXBlZEFycmF5KEpTVmFsdWUgdmFs
KQoreworICAgIHJldHVybiB2YWwuaXNDZWxsKCkgJiYgdmFsLmluaGVyaXRzKCZKU1VpbnQ4Q2xh
bXBlZEFycmF5OjpzX2luZm8pOworfQorCiBzdGF0aWMgSlNSZWFsVHlwZSB2YWx1ZVJlYWxUeXBl
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWwpCiB7CiAgICAgaWYgKHZhbC5pc051bWJlcigp
KQpAQCAtMTQ3LDggKzE1Miw4IEBAIHN0YXRpYyBKU1JlYWxUeXBlIHZhbHVlUmVhbFR5cGUoRXhl
Y1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbCkKICAgICAgICAgcmV0dXJuIEJvb2xlYW47CiAgICAg
ZWxzZSBpZiAodmFsLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gTnVsbDsKLSAgICBlbHNlIGlm
IChpc0pTQnl0ZUFycmF5KHZhbCkpCi0gICAgICAgIHJldHVybiBKU0J5dGVBcnJheTsKKyAgICBl
bHNlIGlmIChpc0pTVWludDhDbGFtcGVkQXJyYXkodmFsKSkKKyAgICAgICAgcmV0dXJuIEpTVWlu
dDhDbGFtcGVkQXJyYXk7CiAgICAgZWxzZSBpZiAodmFsLmlzT2JqZWN0KCkpIHsKICAgICAgICAg
SlNPYmplY3QgKm9iamVjdCA9IHZhbC50b09iamVjdChleGVjKTsKICAgICAgICAgaWYgKG9iamVj
dC0+aW5oZXJpdHMoJlJ1bnRpbWVBcnJheTo6c19pbmZvKSkgIC8vIFJ1bnRpbWVBcnJheSAnaW5o
ZXJpdHMnIGZyb20gQXJyYXksIGJ1dCBub3QgaW4gQysrCkBAIC0yNTUsNyArMjYwLDcgQEAgUVZh
cmlhbnQgY29udmVydFZhbHVlVG9RVmFyaWFudChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFs
dWUsIFFNZXRhVHlwZTo6VHlwZQogICAgICAgICAgICAgY2FzZSBRT2JqOgogICAgICAgICAgICAg
ICAgIGhpbnQgPSBRTWV0YVR5cGU6OlFPYmplY3RTdGFyOwogICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgY2FzZSBKU0J5dGVBcnJheToKKyAgICAgICAgICAgIGNhc2UgSlNVaW50
OENsYW1wZWRBcnJheToKICAgICAgICAgICAgICAgICBoaW50ID0gUU1ldGFUeXBlOjpRQnl0ZUFy
cmF5OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBBcnJheToKQEAg
LTQ3NSw4ICs0ODAsOCBAQCBRVmFyaWFudCBjb252ZXJ0VmFsdWVUb1FWYXJpYW50KEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgUU1ldGFUeXBlOjpUeXBlCiAgICAgICAgIH0KIAogICAg
ICAgICBjYXNlIFFNZXRhVHlwZTo6UUJ5dGVBcnJheTogewotICAgICAgICAgICAgaWYgKHR5cGUg
PT0gSlNCeXRlQXJyYXkpIHsKLSAgICAgICAgICAgICAgICBXVEY6OkJ5dGVBcnJheSogYXJyID0g
YXNCeXRlQXJyYXkodmFsdWUpLT5zdG9yYWdlKCk7CisgICAgICAgICAgICBpZiAodHlwZSA9PSBK
U1VpbnQ4Q2xhbXBlZEFycmF5KSB7CisgICAgICAgICAgICAgICAgV1RGOjpVaW50OENsYW1wZWRB
cnJheSogYXJyID0gdG9VaW50OENsYW1wZWRBcnJheSh2YWx1ZSk7CiAgICAgICAgICAgICAgICAg
cmV0ID0gUVZhcmlhbnQoUUJ5dGVBcnJheShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihh
cnItPmRhdGEoKSksIGFyci0+bGVuZ3RoKCkpKTsKICAgICAgICAgICAgICAgICBkaXN0ID0gMDsK
ICAgICAgICAgICAgIH0gZWxzZSB7CkBAIC04ODIsOSArODg3LDkgQEAgSlNWYWx1ZSBjb252ZXJ0
UVZhcmlhbnRUb1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgUGFzc1JlZlB0cjxSb290T2JqZWN0PiBy
b290LCBjb24KIAogICAgIGlmICh0eXBlID09IFFNZXRhVHlwZTo6UUJ5dGVBcnJheSkgewogICAg
ICAgICBRQnl0ZUFycmF5IHF0Qnl0ZUFycmF5ID0gdmFyaWFudC52YWx1ZTxRQnl0ZUFycmF5Pigp
OwotICAgICAgICBXVEY6OlJlZlB0cjxXVEY6OkJ5dGVBcnJheT4gd3RmQnl0ZUFycmF5ID0gV1RG
OjpCeXRlQXJyYXk6OmNyZWF0ZShxdEJ5dGVBcnJheS5sZW5ndGgoKSk7CisgICAgICAgIFdURjo6
UmVmUHRyPFdURjo6VWludDhDbGFtcGVkQXJyYXk+IHd0ZkJ5dGVBcnJheSA9IFdURjo6VWludDhD
bGFtcGVkQXJyYXk6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQocXRCeXRlQXJyYXkubGVuZ3RoKCkpOwog
ICAgICAgICBtZW1jcHkod3RmQnl0ZUFycmF5LT5kYXRhKCksIHF0Qnl0ZUFycmF5LmNvbnN0RGF0
YSgpLCBxdEJ5dGVBcnJheS5sZW5ndGgoKSk7Ci0gICAgICAgIHJldHVybiBKU0M6OkpTQnl0ZUFy
cmF5OjpjcmVhdGUoZXhlYywgSlNDOjpKU0J5dGVBcnJheTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMt
Pmdsb2JhbERhdGEoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBqc051bGwoKSksIHd0
ZkJ5dGVBcnJheS5nZXQoKSk7CisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKSwgd3RmQnl0ZUFycmF5LmdldCgpKTsKICAgICB9CiAKICAgICBpZiAo
dHlwZSA9PSBRTWV0YVR5cGU6OlFPYmplY3RTdGFyIHx8IHR5cGUgPT0gUU1ldGFUeXBlOjpRV2lk
Z2V0U3RhcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
UGl4ZWxBcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQaXhlbEFy
cmF5LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjVhYzdlY2YwMWM3NmJmOGM5
Njc2MWM1OWJiYmJiNzk0ZGYxZGVjNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQaXhlbEFycmF5
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJB
cHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJDYW52YXNQaXhlbEFycmF5LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLSAgICAKLVBhc3NSZWZQdHI8Q2FudmFzUGl4ZWxBcnJheT4gQ2FudmFzUGl4ZWxBcnJheTo6
Y3JlYXRlKHVuc2lnbmVkIGxlbmd0aCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IENhbnZh
c1BpeGVsQXJyYXkobGVuZ3RoKSk7Ci19Ci0KLVBhc3NSZWZQdHI8Q2FudmFzUGl4ZWxBcnJheT4g
Q2FudmFzUGl4ZWxBcnJheTo6Y3JlYXRlKFBhc3NSZWZQdHI8Qnl0ZUFycmF5PiBieXRlQXJyYXkp
Ci17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDYW52YXNQaXhlbEFycmF5KGJ5dGVBcnJheSkp
OwotfQotCi1DYW52YXNQaXhlbEFycmF5OjpDYW52YXNQaXhlbEFycmF5KHVuc2lnbmVkIGxlbmd0
aCkKLSAgICA6IG1fZGF0YShCeXRlQXJyYXk6OmNyZWF0ZShsZW5ndGgpKQotewotfQotCi1DYW52
YXNQaXhlbEFycmF5OjpDYW52YXNQaXhlbEFycmF5KFBhc3NSZWZQdHI8Qnl0ZUFycmF5PiBieXRl
QXJyYXkpCi0gICAgOiBtX2RhdGEoYnl0ZUFycmF5KQotewotfQotCi19CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQaXhlbEFycmF5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNQaXhlbEFycmF5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDdhOTRiMWZlN2ViODc1NTdlNDMyMzZhZTBmOWZjYTg2YjAzMDViODguLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzUGl4ZWxBcnJheS5oCisrKyAvZGV2L251bGwKQEAgLTEsNzggKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBv
ZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAg
IGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2lmbmRlZiBDYW52YXNQaXhlbEFycmF5X2gKLSNkZWZpbmUgQ2FudmFzUGl4
ZWxBcnJheV9oCi0KLSNpbmNsdWRlIDx3dGYvQnl0ZUFycmF5Lmg+Ci0jaW5jbHVkZSA8d3RmL01h
dGhFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0gICAgCi1jbGFzcyBDYW52YXNQaXhlbEFycmF5IDogcHVibGljIFJlZkNvdW50ZWQ8Q2Fu
dmFzUGl4ZWxBcnJheT4gewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENhbnZhc1Bp
eGVsQXJyYXk+IGNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PENhbnZhc1BpeGVsQXJyYXk+IGNyZWF0ZShQYXNzUmVmUHRyPEJ5dGVBcnJheT4pOwotCi0gICAg
Qnl0ZUFycmF5KiBkYXRhKCkgeyByZXR1cm4gbV9kYXRhLmdldCgpOyB9Ci0gICAgY29uc3QgQnl0
ZUFycmF5KiBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmdldCgpOyB9Ci0gICAgdW5zaWdu
ZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLT5sZW5ndGgoKTsgfQotICAgIAotICAg
IHZvaWQgc2V0KHVuc2lnbmVkIGluZGV4LCBkb3VibGUgdmFsdWUpCi0gICAgewotICAgICAgICBt
X2RhdGEtPnNldChpbmRleCwgdmFsdWUpOwotICAgIH0KLQotICAgIHZvaWQgc2V0KHVuc2lnbmVk
IGluZGV4LCB1bnNpZ25lZCBjaGFyIHZhbHVlKQotICAgIHsKLSAgICAgICAgbV9kYXRhLT5zZXQo
aW5kZXgsIHZhbHVlKTsKLSAgICB9Ci0gICAgCi0gICAgYm9vbCBnZXQodW5zaWduZWQgaW5kZXgs
IHVuc2lnbmVkIGNoYXImIHJlc3VsdCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2Rh
dGEtPmdldChpbmRleCwgcmVzdWx0KTsKLSAgICB9Ci0KLSAgICB1bnNpZ25lZCBjaGFyIGdldCh1
bnNpZ25lZCBpbmRleCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2RhdGEtPmdldChp
bmRleCk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIENhbnZhc1BpeGVsQXJyYXkodW5zaWduZWQg
bGVuZ3RoKTsKLSAgICBDYW52YXNQaXhlbEFycmF5KFBhc3NSZWZQdHI8Qnl0ZUFycmF5Pik7Ci0K
LSAgICBSZWZQdHI8Qnl0ZUFycmF5PiBtX2RhdGE7Ci19OwotICAgIAotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotCi0jZW5kaWYgLy8gQ2FudmFzUGl4ZWxBcnJheV9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQaXhlbEFycmF5LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1BpeGVsQXJyYXkuaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA4YzA4MzZiMDljODljZDI5NmUyNDZhYWRkZDY5MDJkYzJjOTI1NGVkLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1BpeGVsQXJyYXkuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsNDIg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFt
ZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICog
ICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotbW9kdWxlIGh0bWwgewotI2lmICFkZWZpbmVkKExBTkdVQUdFX0pBVkFT
Q1JJUFQpIHx8ICFMQU5HVUFHRV9KQVZBU0NSSVBUIHx8IGRlZmluZWQoVjhfQklORElORykgJiYg
VjhfQklORElORwotICAgIGludGVyZmFjZSBbCi0gICAgICAgIE9taXRDb25zdHJ1Y3RvciwKLSAg
ICAgICAgTnVtZXJpY0luZGV4ZWRHZXR0ZXIsCi0gICAgICAgIEN1c3RvbUluZGV4ZWRTZXR0ZXIs
Ci0gICAgICAgIFY4Q3VzdG9tVG9KU09iamVjdAotICAgIF0gQ2FudmFzUGl4ZWxBcnJheSB7Ci0j
aWYgIWRlZmluZWQoVjhfQklORElORykgfHwgIVY4X0JJTkRJTkcKLSAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGxvbmcgbGVuZ3RoOwotI2VuZGlmCi0gICAgfTsKLSNlbmRpZgotfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAK
aW5kZXggMDQ0ZTljM2M3ZDRjOTYwNzNjZTBlYmE0NzEyMDdmN2Y5MjVmMmRiZS4uYTk3ZWY1Mjk4
MmQ5NzAwZTFlMTQxODkxMTJjZDM1NzliNmEzM2QxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0zMCw3ICszMCw2
IEBACiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCiAKICNpbmNsdWRlICJDYWNo
ZWRJbWFnZS5oIgotI2luY2x1ZGUgIkNhbnZhc1BpeGVsQXJyYXkuaCIKICNpbmNsdWRlICJDaGVj
a2VkSW50LmgiCiAjaW5jbHVkZSAiQ29uc29sZS5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgpA
QCAtNjksNyArNjgsNiBAQAogI2luY2x1ZGUgIldlYkdMVGV4dHVyZS5oIgogI2luY2x1ZGUgIldl
YkdMVW5pZm9ybUxvY2F0aW9uLmgiCiAKLSNpbmNsdWRlIDx3dGYvQnl0ZUFycmF5Lmg+CiAjaW5j
bHVkZSA8d3RmL093bkFycmF5UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25BcnJheVB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9VaW50MTZBcnJheS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaAppbmRl
eCAyNTA2MTNmYjQ2Mzg2ZWI1NTU1Y2FmMzhlMjlmOGIzZTg4NjNlZGRiLi44MWViYTFkODNlYmQ3
NDIxMDg3MmM3OGVjYjk4YTYyZTc2NGVkYTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaApAQCAt
NDAsOCArNDAsNiBAQCBlbnVtIEVkZ2VNb2RlVHlwZSB7CiAgICAgRURHRU1PREVfTk9ORSAgICAg
ID0gMwogfTsKIAotY2xhc3MgQ2FudmFzUGl4ZWxBcnJheTsKLQogY2xhc3MgRkVDb252b2x2ZU1h
dHJpeCA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEZFQ29udm9sdmVNYXRyaXg+IGNyZWF0ZShGaWx0ZXIqLCBjb25zdCBJbnRTaXplJiwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VN
YXNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJj
ZU1hc2tlci5jcHAKaW5kZXggYTUyNzQ1NTViZDFmNDZhNTRiZjFjMDdlYzc1NmRjMzJmNjllN2E1
Mi4uZTZlYjZhZmMyYzcyYmRhMDAzZDExMTMwNjA1OWZmZWYyMWUyOTA0NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tl
ci5jcHAKQEAgLTM3LDcgKzM3LDYgQEAKICNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50LmgiCiAj
aW5jbHVkZSAiU1ZHVW5pdFR5cGVzLmgiCiAKLSNpbmNsdWRlIDx3dGYvQnl0ZUFycmF5Lmg+CiAj
aW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138867</attachid>
            <date>2012-04-25 13:26:10 -0700</date>
            <delta_ts>2012-04-25 15:12:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83655-20120425132608.patch</filename>
            <type>text/plain</type>
            <size>125484</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1MjM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NzI1MWQzMzE0ZmJmM2ExZWEwNWFiYTRjOGI3MTc4Zjk3MDcyZDRmLi40N2RhY2RlNjYwZDcyOGQ4
YzMwZjFkNzAyNTg5ODQ2NjAzYTg1MjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MSBAQAorMjAxMi0wNC0yNSAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+
CisKKyAgICAgICAgRGVsZXRlIENhbnZhc1BpeGVsQXJyYXksIEJ5dGVBcnJheSwgSlNCeXRlQXJy
YXkgYW5kIEpTQyBjb2RlIG9uY2UgdW5yZWZlcmVuY2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzY1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5neXBpOgorICAgICAg
ICAqIEphdmFTY3JpcHRDb3JlLm9yZGVyOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJv
ai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWY6CisgICAgICAgICogSmF2YVNjcmlw
dENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvajoKKyAgICAg
ICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFRhcmdldC5wcmk6CisgICAgICAgICogYnl0ZWNvZGUvUHJlZGljdGVkVHlwZS5jcHA6CisgICAg
ICAgIChKU0M6OnByZWRpY3Rpb25Ub1N0cmluZyk6CisgICAgICAgIChKU0M6OnByZWRpY3Rpb25U
b0FiYnJldmlhdGVkU3RyaW5nKToKKyAgICAgICAgKEpTQzo6cHJlZGljdGlvbkZyb21DbGFzc0lu
Zm8pOgorICAgICAgICAqIGJ5dGVjb2RlL1ByZWRpY3RlZFR5cGUuaDoKKyAgICAgICAgKEpTQyk6
CisgICAgICAgIChKU0M6OmlzQWN0aW9uYWJsZUludE11dGFibGVBcnJheVByZWRpY3Rpb24pOgor
ICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpB
YnN0cmFjdFN0YXRlOjppbml0aWFsaXplKToKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdFN0
YXRlOjpleGVjdXRlKToKKyAgICAgICAgKiBkZmcvREZHQ1NFUGhhc2UuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OkNTRVBoYXNlOjpwZXJmb3JtTm9kZUNTRSk6CisgICAgICAgICogZGZnL0RGR0Zp
eHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6
CisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUuaDoK
KyAgICAgICAgKERGRyk6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OnB1dEJ5VmFsKToKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3Bh
Z2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlByZWRpY3Rpb25Qcm9wYWdhdGlv
blBoYXNlOjpwcm9wYWdhdGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNoZWNrQXJndW1lbnRUeXBlcyk6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRJbmRleGVkUHJv
cGVydHlTdG9yYWdlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAg
ICAgKEpTQzo6REZHOjpWYWx1ZVNvdXJjZTo6Zm9yUHJlZGljdGlvbik6CisgICAgICAgIChTcGVj
dWxhdGl2ZUpJVCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBk
ZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmNwcDoK
KyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OnByaXZhdGVFeGVjdXRlKToKKyAgICAgICAgKiBq
aXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpERUZJTkVfU1RVQl9GVU5DVElPTik6Cisg
ICAgICAgICogaml0L0pJVFN0dWJzLmg6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMu
Y3BwOgorICAgICAgICAoSlNDOjpMTEludDo6Z2V0QnlWYWwpOgorICAgICAgICAoSlNDOjpMTElu
dDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXku
Y3BwOiBSZW1vdmVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuaDogUmVtb3ZlZC4K
KyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsRGF0YS5jcHA6CisKIDIwMTItMDQtMjUgIEZpbGlw
IFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwOi8vYmVsbGFyZC5vcmcv
anNsaW51eC8gdHJpZ2dlcnMgYW4gYXNzZXJ0aW9uIGZhaWx1cmUgaW4gdGhlIERGRyBKSVQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5k
ZXggMzZiYjUxOTQzYWZkNTkxMmRlYThkMWU1ZGJhZTI5OTkyZGRiOWE3Ny4uZTQ1ZjE4MTcxNGUz
ODQ3N2RiNDJhNjUxMTJjOThiN2JiYTQ4YjI4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0w
NC0yNSAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CisKKyAgICAgICAgRGVsZXRl
IENhbnZhc1BpeGVsQXJyYXksIEJ5dGVBcnJheSwgSlNCeXRlQXJyYXkgYW5kIEpTQyBjb2RlIG9u
Y2UgdW5yZWZlcmVuY2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04MzY1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXVEYuZ3lwaToKKyAgICAg
ICAgKiBXVEYucHJvOgorICAgICAgICAqIFdURi52Y3Byb2ovV1RGLnZjcHJvajoKKyAgICAgICAg
KiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvQnl0ZUFycmF5
LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiB3dGYvQnl0ZUFycmF5Lmg6IFJlbW92ZWQuCisgICAg
ICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorCiAyMDEyLTA0LTI1ICBQaGlsaXBwZSBOb3JtYW5k
ICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBXZWJraXQgYnVpbGQgZmFpbHMgZHVl
IHRvIG1pc3NpbmcgZ3N0cmVhbWVyIGluY2x1ZGUgZmlsZSBvbiBLdWJ1bnR1IDguMDQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAyMzY0YzQ4ZGQ4YWUyNmMzYTY2OWNiMjY4MTEzOTE5YmUyMjc1ZmI4Li5iZTUwM2Iw
ZGFmMTA2NDYyYWY3MTI2YTZkMDFjZjNkNTg3YjRiYjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDkgQEAKKzIwMTItMDQtMjUgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUuY29tPgorCisg
ICAgICAgIERlbGV0ZSBDYW52YXNQaXhlbEFycmF5LCBCeXRlQXJyYXksIEpTQnl0ZUFycmF5IGFu
ZCBKU0MgY29kZSBvbmNlIHVucmVmZXJlbmNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODM2NTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIGxhc3QgZmV3IHJlZmVyZW5jZXMgdG8gQnl0ZUFy
cmF5LCByZXBsYWNpbmcgd2l0aAorICAgICAgICBVaW50OENsYW1wZWRBcnJheSBhcyBuZWNlc3Nh
cnksIGFuZCBkZWxldGVkIG5vdy1vYnNvbGV0ZQorICAgICAgICBDYW52YXNQaXhlbEFycmF5LCBC
eXRlQXJyYXkgYW5kIEpTQnl0ZUFycmF5LiBSZW1vdmVkIGNvZGUgZnJvbQorICAgICAgICBKYXZh
U2NyaXB0Q29yZSBzcGVjaWFsLWNhc2luZyBCeXRlQXJyYXkuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLiBEaWQgZnVsbCBsYXlvdXQgdGVzdCBydW4gb24gTWFjIE9TOyBubyByZWdyZXNzaW9ucwor
ICAgICAgICBzZWVuIGZyb20gdGhpcyBjaGFuZ2UuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5wcmk6CisgICAgICAgICogRm9yd2FyZGluZ0hl
YWRlcnMvcnVudGltZS9KU0J5dGVBcnJheS5oOiBSZW1vdmVkLgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlOgorICAgICAg
ICAqIFRhcmdldC5wcmk6CisgICAgICAgICogVXNlVjguY21ha2U6CisgICAgICAgICogV2ViQ29y
ZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUub3JkZXI6CisgICAgICAgICogV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6
CisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpp
c0hvc3RPYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOENhbnZhc1BpeGVs
QXJyYXlDdXN0b20uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEluamVj
dGVkU2NyaXB0SG9zdDo6dHlwZUNhbGxiYWNrKToKKyAgICAgICAgKiBicmlkZ2UvcXQvcXRfcnVu
dGltZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjppc0pTVWludDhDbGFtcGVkQXJyYXkp
OgorICAgICAgICAoQmluZGluZ3MpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6dmFsdWVSZWFs
VHlwZSk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpjb252ZXJ0VmFsdWVUb1FWYXJpYW50KToK
KyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmNvbnZlcnRRVmFyaWFudFRvVmFsdWUpOgorICAgICAg
ICAqIGh0bWwvY2FudmFzL0NhbnZhc1BpeGVsQXJyYXkuY3BwOiBSZW1vdmVkLgorICAgICAgICAq
IGh0bWwvY2FudmFzL0NhbnZhc1BpeGVsQXJyYXkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBodG1s
L2NhbnZhcy9DYW52YXNQaXhlbEFycmF5LmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHA6CisKIDIwMTIt
MDQtMjUgIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBDcmFz
aCBpbiBDYWNoZWRSYXdSZXNvdXJjZTo6ZGlkQWRkQ2xpZW50KCkgZHVlIHRvIG1pc3NpbmcgcHJv
dGVjdG9yLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDVjMzZlYzM5NWRk
ZGU5YTQ4YmM1ZmZlNDg5ZWU3ZWI3NjMzYWI2ZTkuLmFjYzY1OThiZmM1ZGRhYjNkMjIzNGFlMWMw
ZjIzNDA5OTNlYzI2MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE2
Niw3ICsxNjYsNiBAQCBTRVQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIHJ1bnRpbWUvSlNB
Y3RpdmF0aW9uLmNwcAogICAgIHJ1bnRpbWUvSlNBUElWYWx1ZVdyYXBwZXIuY3BwCiAgICAgcnVu
dGltZS9KU0FycmF5LmNwcAotICAgIHJ1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCiAgICAgcnVudGlt
ZS9KU0NlbGwuY3BwCiAgICAgcnVudGltZS9KU0RhdGVNYXRoLmNwcAogICAgIHJ1bnRpbWUvSlNG
dW5jdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5k
ZXggZDhlNTg5ODk5YjE1MjMxZWFmY2MxOTA3ZjQ5Mjk2MjgwMGM2MjQ1Ny4uOWM1ODY0MWFlZTcy
YTUyNTU2ZTg1YTI0NDE5M2I5ODZjYzk4NTkyMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQ1MCw4ICs0NTAsNiBAQCBqYXZhc2NyaXB0Y29yZV9zb3Vy
Y2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FQSVZhbHVlV3JhcHBl
ci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcCBcCiAJU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oIFwKLQlTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAgXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQnl0ZUFycmF5LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q2VsbC5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGVNYXRoLmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaSBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCmluZGV4IDhlYWMyMDhmZTUyNjI3MGU2NTM0
OGYxNTVmOTBhMDRjODljNjg1ODMuLmU3NThiYjIzMTVlM2NiYTMwN2ZkOWNhYzU2NTM2OTRlYmYz
MGU3MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5n
eXBpCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCkBAIC0y
NDIsNyArMjQyLDYgQEAKICAgICAgICAgICAgICdydW50aW1lL0pTQVBJVmFsdWVXcmFwcGVyLmgn
LAogICAgICAgICAgICAgJ3J1bnRpbWUvSlNBcnJheS5oJywKICAgICAgICAgICAgICdydW50aW1l
L0pTQm91bmRGdW5jdGlvbi5oJywKLSAgICAgICAgICAgICdydW50aW1lL0pTQnl0ZUFycmF5Lmgn
LAogICAgICAgICAgICAgJ3J1bnRpbWUvSlNDZWxsLmgnLAogICAgICAgICAgICAgJ3J1bnRpbWUv
SlNDaHVuay5oJywKICAgICAgICAgICAgICdydW50aW1lL0pTRGF0ZU1hdGguaCcsCkBAIC00NzMs
NyArNDcyLDYgQEAKICAgICAgICAgICAgICdydW50aW1lL0pTQVBJVmFsdWVXcmFwcGVyLmNwcCcs
CiAgICAgICAgICAgICAncnVudGltZS9KU0FycmF5LmNwcCcsCiAgICAgICAgICAgICAncnVudGlt
ZS9KU0JvdW5kRnVuY3Rpb24uY3BwJywKLSAgICAgICAgICAgICdydW50aW1lL0pTQnl0ZUFycmF5
LmNwcCcsCiAgICAgICAgICAgICAncnVudGltZS9KU0NlbGwuY3BwJywKICAgICAgICAgICAgICdy
dW50aW1lL0pTQ2h1bmsuY3BwJywKICAgICAgICAgICAgICdydW50aW1lL0pTRGF0ZU1hdGguY3Bw
JywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRl
ciBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgppbmRleCAzYjQ1
YTYyMWUzOGIyMDJmNjBmMjJlNDMzMzkwZTMzYjVhNGE5MWIwLi4zYTQ1MDA3NWExMzQzZTU5ZTdi
MWVkYTExYTVmN2NkODAzYzg2NWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUub3JkZXIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLm9yZGVyCkBAIC0xMjcyLDEyICsxMjcyLDYgQEAgX19aTjNKU0MzSklUMjFlbWl0U2xv
d19vcF9uc3RyaWN0ZXFFUE5TXzExSW5zdHJ1Y3Rpb25FUlBOU18xM1Nsb3dDYXNlRW50cnlFCiBf
Y3RpX29wX25zdHJpY3RlcQogX19aTjNKU0MxNExvZ2ljYWxOb3ROb2RlMzBlbWl0Qnl0ZWNvZGVJ
bkNvbmRpdGlvbkNvbnRleHRFUk5TXzE3Qnl0ZWNvZGVHZW5lcmF0b3JFUE5TXzVMYWJlbEVTNF9i
CiBfX1pOM0pTQzNKSVQxOGVtaXRfb3Bfam1wX3Njb3Blc0VQTlNfMTFJbnN0cnVjdGlvbkUKLV9f
Wk4zV1RGOUJ5dGVBcnJheTZjcmVhdGVFbQotX19aTjNKU0MxMUpTQnl0ZUFycmF5MTVjcmVhdGVT
dHJ1Y3R1cmVFUk5TXzEySlNHbG9iYWxEYXRhRU5TXzdKU1ZhbHVlRVBLTlNfOUNsYXNzSW5mb0UK
LV9fWk4zSlNDMTFKU0J5dGVBcnJheUMxRVBOU185RXhlY1N0YXRlRVBOU185U3RydWN0dXJlRVBO
M1dURjlCeXRlQXJyYXlFCi1fX1pOM0pTQzExSlNCeXRlQXJyYXlDMkVQTlNfOUV4ZWNTdGF0ZUVQ
TlNfOVN0cnVjdHVyZUVQTjNXVEY5Qnl0ZUFycmF5RQotX19aTjNKU0MxMUpTQnl0ZUFycmF5RDFF
dgotX2N0aV9vcF9nZXRfYnlfdmFsX2J5dGVfYXJyYXkKIF9jdGlfb3BfbmVnYXRlCiBfX1pOM0pT
Q0wxNm1hdGhQcm90b0Z1bmNNYXhFUE5TXzlFeGVjU3RhdGVFCiBfX1pOM1dURjE1VGhyZWFkQ29u
ZGl0aW9uRDFFdgpAQCAtMTMzNSw3ICsxMzI5LDYgQEAgX19aTjNKU0M0WWFycjEzWWFyckdlbmVy
YXRvcjE3QmFja3RyYWNraW5nU3RhdGU2bGlua1RvRU5TXzIyQWJzdHJhY3RNYWNyb0Fzc2VtYmwK
IF9fWk4zSlNDNFlhcnIyMllhcnJQYXR0ZXJuQ29uc3RydWN0b3IyM3NldHVwRGlzanVuY3Rpb25P
ZmZzZXRzRVBOUzBfMThQYXR0ZXJuRGlzanVuY3Rpb25FamoKIF9fWk4zSlNDNFlhcnIxM1lhcnJH
ZW5lcmF0b3IxN0JhY2t0cmFja2luZ1N0YXRlMjR0YWtlQmFja3RyYWNrc1RvSnVtcExpc3RFUk5T
XzIyQWJzdHJhY3RNYWNyb0Fzc2VtYmxlcklOU18xMlg4NkFzc2VtYmxlckVFOEp1bXBMaXN0RVBO
U18xNE1hY3JvQXNzZW1ibGVyRQogX19aTkszSlNDMTFCb29sZWFuTm9kZTZpc1B1cmVFUk5TXzE3
Qnl0ZWNvZGVHZW5lcmF0b3JFCi1fX1pOM0pTQzExSlNCeXRlQXJyYXkxOGdldE93blByb3BlcnR5
U2xvdEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RF
CiBfY3RpX3RpbWVvdXRfY2hlY2sKIF9fWk4zSlNDMTRUaW1lb3V0Q2hlY2tlcjEwZGlkVGltZU91
dEVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlNDMjJjcmVhdGVOb3RBbk9iamVjdEVycm9yRVBOU185
RXhlY1N0YXRlRU5TXzdKU1ZhbHVlRQpAQCAtMTM1NCw4ICsxMzQ3LDYgQEAgX19aTjNKU0M2SlND
ZWxsMTZnZXRDb25zdHJ1Y3REYXRhRVJOU18xM0NvbnN0cnVjdERhdGFFCiBfX1pOM0pTQzI2Y3Jl
YXRlTm90QUNvbnN0cnVjdG9yRXJyb3JFUE5TXzlFeGVjU3RhdGVFTlNfN0pTVmFsdWVFCiBfX1pO
M0pTQzIzb2JqZWN0UHJvdG9GdW5jVG9TdHJpbmdFUE5TXzlFeGVjU3RhdGVFCiBfX1pOSzNKU0M4
SlNPYmplY3Q5Y2xhc3NOYW1lRXYKLV9fWk4zSlNDMTFKU0J5dGVBcnJheTNwdXRFUE5TXzlFeGVj
U3RhdGVFak5TXzdKU1ZhbHVlRQotX2N0aV9vcF9wdXRfYnlfdmFsX2J5dGVfYXJyYXkKIF9fWk5L
M0pTQzE0RXhwcmVzc2lvbk5vZGUxMWlzQ29tbWFOb2RlRXYKIF9fWk4zSlNDOUNvbW1hTm9kZTEy
ZW1pdEJ5dGVjb2RlRVJOU18xN0J5dGVjb2RlR2VuZXJhdG9yRVBOU18xMFJlZ2lzdGVySURFCiBf
X1pOM0pTQzlDb21tYU5vZGVEMUV2CkBAIC0yMjAxLDggKzIxOTIsNiBAQCBfX1pOM0pTQ0wyMWFy
cmF5UHJvdG9GdW5jSW5kZXhPZkVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlNDMTJTdHJpbmdPYmpl
Y3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90
RQogX19aTjNKU0M4SlNPYmplY3QxNGRlbGV0ZVByb3BlcnR5RVBOU185RXhlY1N0YXRlRWoKIF9f
Wk4zSlNDTDI1YXJyYXlQcm90b0Z1bmNMYXN0SW5kZXhPZkVQTlNfOUV4ZWNTdGF0ZUUKLV9fWk4z
SlNDMTFKU0J5dGVBcnJheTNwdXRFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNf
N0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlTbG90RQotX19aTjNKU0MxMUpTQnl0ZUFycmF5MThn
ZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFalJOU18xMlByb3BlcnR5U2xvdEUKIF9f
Wk4zV1RGMjBlcXVhbElnbm9yaW5nTnVsbGl0eUVQTlNfMTBTdHJpbmdJbXBsRVMxXwogX2N0aV9v
cF9nZXRfYnlfaWRfYXJyYXlfZmFpbAogX19aTjNKU0MxN1ByZWZpeEJyYWNrZXROb2RlMTJlbWl0
Qnl0ZWNvZGVFUk5TXzE3Qnl0ZWNvZGVHZW5lcmF0b3JFUE5TXzEwUmVnaXN0ZXJJREUKQEAgLTIy
NDEsNyArMjIzMCw2IEBAIF9fWk4zSlNDTDI0ZGF0ZVByb3RvRnVuY1RvSVNPU3RyaW5nRVBOU185
RXhlY1N0YXRlRQogX2N0aV9vcF9nZXRfYnlfaWRfc3RyaW5nX2ZhaWwKIF9fWk4zSlNDMjJTdHJp
bmdSZWN1cnNpb25DaGVja2VyMTFlbXB0eVN0cmluZ0V2CiBfX1pOM0pTQzIyU3RyaW5nUmVjdXJz
aW9uQ2hlY2tlcjIzdGhyb3dTdGFja092ZXJmbG93RXJyb3JFdgotX19aTjNKU0MxMUpTQnl0ZUFy
cmF5MTlnZXRPd25Qcm9wZXJ0eU5hbWVzRVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFt
ZUFycmF5RU5TXzE1RW51bWVyYXRpb25Nb2RlRQogX19aTjNKU0M5RXhlY1N0YXRlOWpzb25UYWJs
ZUVQUzBfCiBfX1pOM0pTQzEwSlNGdW5jdGlvbjEyY2FsbGVyR2V0dGVyRVBOU185RXhlY1N0YXRl
RU5TXzdKU1ZhbHVlRVJLTlNfMTBJZGVudGlmaWVyRQogX19aTkszSlNDMTFJbnRlcnByZXRlcjE0
cmV0cmlldmVDYWxsZXJFUE5TXzlFeGVjU3RhdGVFUE5TXzEwSlNGdW5jdGlvbkUKQEAgLTIzNDEs
NyArMjMyOSw2IEBAIF9fWk4zSlNDMTdOdW1iZXJDb25zdHJ1Y3RvcjI0Z2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVuCiBfX1pOM0pTQzE3UmVnRXhwQ29u
c3RydWN0b3IyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEw
SWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCiBfX1pOM0pTQzEwTWF0aE9iamVj
dDI0Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlm
aWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKIF9fWk4zSlNDMThSZWdFeHBNYXRjaGVzQXJy
YXkyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRp
ZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCi1fX1pOM0pTQzExSlNCeXRlQXJyYXkyNGdl
dE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVS
TlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCiBfX1pOM0pTQ0w4Y2FsbERhdGVFUE5TXzlFeGVjU3Rh
dGVFCiBfX1pOM0pTQ0wyNmNhbGxOYXRpdmVFcnJvckNvbnN0cnVjdG9yRVBOU185RXhlY1N0YXRl
RQogX19aTjNKU0MxN0J5dGVjb2RlR2VuZXJhdG9yMzVlbWl0VGhyb3dFeHByZXNzaW9uVG9vRGVl
cEV4Y2VwdGlvbkV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZiBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZGVmCmluZGV4IGNjNWMzOTExNzUxZGQxOWExYjEyODkyMThkYjNjNThjOTM4N2U2
NDkuLmQzNDUxNDA5NDZjNDM3ODFmNTBhYjM0YTllOTJhNTg3ZjJkNzk3NDggMTAwNzU1Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZGVmCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCkBAIC05LDcg
KzksNiBAQCBFWFBPUlRTCiAgICAgPz8wRHJvcEFsbExvY2tzQEpTTG9ja0BKU0NAQFFBRUBXNEpT
TG9ja0JlaGF2aW9yQDJAQFoKICAgICA/PzBEeW5hbWljR2xvYmFsT2JqZWN0U2NvcGVASlNDQEBR
QUVAQUFWSlNHbG9iYWxEYXRhQDFAUEFWSlNHbG9iYWxPYmplY3RAMUBAWiAKICAgICA/PzBJbnRl
cm5hbEZ1bmN0aW9uQEpTQ0BASUFFQFBBVkpTR2xvYmFsT2JqZWN0QDFAUEFWU3RydWN0dXJlQDFA
QFoKLSAgICA/PzBKU0J5dGVBcnJheUBKU0NAQEFBRUBQQVZFeGVjU3RhdGVAMUBQQVZTdHJ1Y3R1
cmVAMUBQQVZCeXRlQXJyYXlAV1RGQEBAWgogICAgID8/MEpTTG9ja0BKU0NAQFFBRUBQQVZFeGVj
U3RhdGVAMUBAWgogICAgID8/ME1ENUBXVEZAQFFBRUBYWgogICAgID8/ME11dGV4QFdURkBAUUFF
QFhaCkBAIC0xMDMsNyArMTAyLDYgQEAgRVhQT1JUUwogICAgID9jb252ZXJ0TGF0aW4xVG9VVEY4
QFVuaWNvZGVAV1RGQEBZQT9BVzRDb252ZXJzaW9uUmVzdWx0QDEyQFBBUEJFUEJFUEFQQURQQURA
WgogICAgID9jb252ZXJ0VVRGMTZUb1VURjhAVW5pY29kZUBXVEZAQFlBP0FXNENvbnZlcnNpb25S
ZXN1bHRAMTJAUEFQQl9XUEJfV1BBUEFEUEFEX05AWgogICAgID9jb252ZXJ0VVRGOFRvVVRGMTZA
VW5pY29kZUBXVEZAQFlBP0FXNENvbnZlcnNpb25SZXN1bHRAMTJAUEFQQkRQQkRQQVBBX1dQQV9X
X05AWgotICAgID9jcmVhdGVAQnl0ZUFycmF5QFdURkBAU0E/QVY/JFBhc3NSZWZQdHJAVkJ5dGVB
cnJheUBXVEZAQEAyQElAWgogICAgID9jcmVhdGVASlNGdW5jdGlvbkBKU0NAQFNBUEFWMTJAUEFW
RXhlY1N0YXRlQDJAUEFWSlNHbG9iYWxPYmplY3RAMkBIQUJWSWRlbnRpZmllckAyQFA2SV9KMEBa
VzRJbnRyaW5zaWNAMkAzQFoKICAgICA/Y3JlYXRlQEpTR2xvYmFsRGF0YUBKU0NAQFNBP0FWPyRQ
YXNzUmVmUHRyQFZKU0dsb2JhbERhdGFASlNDQEBAV1RGQEBXNFRocmVhZFN0YWNrVHlwZUAyQFc0
SGVhcFNpemVAMkBAWgogICAgID9jcmVhdGVAT3BhcXVlSlNTdHJpbmdAQFNBP0FWPyRQYXNzUmVm
UHRyQFVPcGFxdWVKU1N0cmluZ0BAQFdURkBAQUJWVVN0cmluZ0BKU0NAQEBaCkBAIC0xMTYsNyAr
MTE0LDYgQEAgRVhQT1JUUwogICAgID9jcmVhdGVSZWZlcmVuY2VFcnJvckBKU0NAQFlBUEFWSlNP
YmplY3RAMUBQQVZFeGVjU3RhdGVAMUBBQlZVU3RyaW5nQDFAQFoKICAgICA/Y3JlYXRlU2luZ2xl
Q2hhcmFjdGVyU3RyaW5nQFNtYWxsU3RyaW5nc0BKU0NAQEFBRVhQQVZKU0dsb2JhbERhdGFAMkBF
QFoKICAgICA/Y3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yQEpTQ0BAWUFQQVZKU09iamVjdEAxQFBB
VkV4ZWNTdGF0ZUAxQEBaCi0gICAgP2NyZWF0ZVN0cnVjdHVyZUBKU0J5dGVBcnJheUBKU0NAQFNB
UEFWU3RydWN0dXJlQDJAQUFWSlNHbG9iYWxEYXRhQDJAUEFWSlNHbG9iYWxPYmplY3RAMkBWSlNW
YWx1ZUAyQFBCVUNsYXNzSW5mb0AyQEBaCiAgICAgP2NyZWF0ZVN5bnRheEVycm9yQEpTQ0BAWUFQ
QVZKU09iamVjdEAxQFBBVkV4ZWNTdGF0ZUAxQEFCVlVTdHJpbmdAMUBAWgogICAgID9jcmVhdGVU
YWJsZUBIYXNoVGFibGVASlNDQEBBQkVYUEFWSlNHbG9iYWxEYXRhQDJAQFoKICAgICA/Y3JlYXRl
VGhyZWFkQFdURkBAWUFJUDZBUEFYUEFYQFowQFoKQEAgLTE0OSw3ICsxNDYsNiBAQCBFWFBPUlRT
CiAgICAgP2Rlc3BlY2lmeURpY3Rpb25hcnlGdW5jdGlvbkBTdHJ1Y3R1cmVASlNDQEBRQUVYQUFW
SlNHbG9iYWxEYXRhQDJAQUJWSWRlbnRpZmllckAyQEBaCiAgICAgP2Rlc3BlY2lmeUZ1bmN0aW9u
VHJhbnNpdGlvbkBTdHJ1Y3R1cmVASlNDQEBTQVBBVjEyQEFBVkpTR2xvYmFsRGF0YUAyQFBBVjEy
QEFCVklkZW50aWZpZXJAMkBAWgogICAgID9kZXN0cm95QEhlYXBASlNDQEBRQUVYWFoKLSAgICA/
ZGVzdHJveUBKU0J5dGVBcnJheUBKU0NAQFNBWFBBVkpTQ2VsbEAyQEBaCiAgICAgP2Rlc3Ryb3lA
SlNDZWxsQEpTQ0BAS0FYUEFWMTJAQFoKICAgICA/ZGVzdHJveUBKU0dsb2JhbE9iamVjdEBKU0NA
QFNBWFBBVkpTQ2VsbEAyQEBaCiAgICAgP2Rlc3Ryb3lAT3V0T2ZMaW5lQml0c0BCaXRWZWN0b3JA
V1RGQEBTQVhQQVYxMjNAQFoKQEAgLTE5NywxNiArMTkzLDEyIEBAIEVYUE9SVFMKICAgICA/Z2V0
Q29uc3RydWN0RGF0YUBKU0NlbGxASlNDQEBTQT9BVzRDb25zdHJ1Y3RUeXBlQDJAUEFWMTJAQUFU
Q29uc3RydWN0RGF0YUAyQEBaCiAgICAgP2dldEN1cnJlbnRMb2NhbFRpbWVAV1RGQEBZQVhQQVV0
bUBAQFoKICAgICA/Z2V0T2JqZWN0QEpTQ2VsbEBKU0NAQFFBRVBBVkpTT2JqZWN0QDJAWFoKLSAg
ICA/Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yQEpTQnl0ZUFycmF5QEpTQ0BAU0FfTlBBVkpTT2Jq
ZWN0QDJAUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQEFBVlByb3BlcnR5RGVzY3JpcHRv
ckAyQEBaCiAgICAgP2dldE93blByb3BlcnR5RGVzY3JpcHRvckBKU0dsb2JhbE9iamVjdEBKU0NA
QFNBX05QQVZKU09iamVjdEAyQFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBBQVZQcm9w
ZXJ0eURlc2NyaXB0b3JAMkBAWgogICAgID9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JASlNPYmpl
Y3RASlNDQEBTQV9OUEFWMTJAUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQEFBVlByb3Bl
cnR5RGVzY3JpcHRvckAyQEBaCi0gICAgP2dldE93blByb3BlcnR5TmFtZXNASlNCeXRlQXJyYXlA
SlNDQEBTQVhQQVZKU09iamVjdEAyQFBBVkV4ZWNTdGF0ZUAyQEFBVlByb3BlcnR5TmFtZUFycmF5
QDJAVzRFbnVtZXJhdGlvbk1vZGVAMkBAWgogICAgID9nZXRPd25Qcm9wZXJ0eU5hbWVzQEpTT2Jq
ZWN0QEpTQ0BAU0FYUEFWMTJAUEFWRXhlY1N0YXRlQDJAQUFWUHJvcGVydHlOYW1lQXJyYXlAMkBX
NEVudW1lcmF0aW9uTW9kZUAyQEBaCiAgICAgP2dldE93blByb3BlcnR5TmFtZXNASlNWYXJpYWJs
ZU9iamVjdEBKU0NAQFNBWFBBVkpTT2JqZWN0QDJAUEFWRXhlY1N0YXRlQDJAQUFWUHJvcGVydHlO
YW1lQXJyYXlAMkBXNEVudW1lcmF0aW9uTW9kZUAyQEBaCi0gICAgP2dldE93blByb3BlcnR5U2xv
dEBKU0J5dGVBcnJheUBKU0NAQFNBX05QQVZKU0NlbGxAMkBQQVZFeGVjU3RhdGVAMkBBQlZJZGVu
dGlmaWVyQDJAQUFWUHJvcGVydHlTbG90QDJAQFoKICAgICA/Z2V0T3duUHJvcGVydHlTbG90QEpT
R2xvYmFsT2JqZWN0QEpTQ0BAU0FfTlBBVkpTQ2VsbEAyQFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50
aWZpZXJAMkBBQVZQcm9wZXJ0eVNsb3RAMkBAWgogICAgID9nZXRPd25Qcm9wZXJ0eVNsb3RCeUlu
ZGV4QEpTQXJyYXlASlNDQEBTQV9OUEFWSlNDZWxsQDJAUEFWRXhlY1N0YXRlQDJASUFBVlByb3Bl
cnR5U2xvdEAyQEBaCi0gICAgP2dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhASlNCeXRlQXJyYXlA
SlNDQEBTQV9OUEFWSlNDZWxsQDJAUEFWRXhlY1N0YXRlQDJASUFBVlByb3BlcnR5U2xvdEAyQEBa
CiAgICAgP2dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhASlNPYmplY3RASlNDQEBTQV9OUEFWSlND
ZWxsQDJAUEFWRXhlY1N0YXRlQDJASUFBVlByb3BlcnR5U2xvdEAyQEBaCiAgICAgP2dldFByb3Bl
cnR5RGVzY3JpcHRvckBKU09iamVjdEBKU0NAQFFBRV9OUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRp
ZmllckAyQEFBVlByb3BlcnR5RGVzY3JpcHRvckAyQEBaCiAgICAgP2dldFByb3BlcnR5TmFtZXNA
SlNPYmplY3RASlNDQEBTQVhQQVYxMkBQQVZFeGVjU3RhdGVAMkBBQVZQcm9wZXJ0eU5hbWVBcnJh
eUAyQFc0RW51bWVyYXRpb25Nb2RlQDJAQFoKQEAgLTI3NSw3ICsyNjcsNiBAQCBFWFBPUlRTCiAg
ICAgP3Byb3RlY3RlZEdsb2JhbE9iamVjdENvdW50QEhlYXBASlNDQEBRQUVJWFoKICAgICA/cHJv
dGVjdGVkT2JqZWN0Q291bnRASGVhcEBKU0NAQFFBRUlYWgogICAgID9wcm90ZWN0ZWRPYmplY3RU
eXBlQ291bnRzQEhlYXBASlNDQEBRQUU/QVY/JFBhc3NPd25QdHJAVj8kSGFzaENvdW50ZWRTZXRA
UEJEVT8kUHRySGFzaEBQQkRAV1RGQEBVPyRIYXNoVHJhaXRzQFBCREAyQEBXVEZAQEBXVEZAQFha
Ci0gICAgP3B1dEBKU0J5dGVBcnJheUBKU0NAQFNBWFBBVkpTQ2VsbEAyQFBBVkV4ZWNTdGF0ZUAy
QEFCVklkZW50aWZpZXJAMkBWSlNWYWx1ZUAyQEFBVlB1dFByb3BlcnR5U2xvdEAyQEBaCiAgICAg
P3B1dEBKU0dsb2JhbE9iamVjdEBKU0NAQFNBWFBBVkpTQ2VsbEAyQFBBVkV4ZWNTdGF0ZUAyQEFC
VklkZW50aWZpZXJAMkBWSlNWYWx1ZUAyQEFBVlB1dFByb3BlcnR5U2xvdEAyQEBaCiAgICAgP3B1
dEBKU09iamVjdEBKU0NAQFNBWFBBVkpTQ2VsbEAyQFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZp
ZXJAMkBWSlNWYWx1ZUAyQEFBVlB1dFByb3BlcnR5U2xvdEAyQEBaCiAgICAgP3B1dEJ5SW5kZXhA
SlNPYmplY3RASlNDQEBTQVhQQVZKU0NlbGxAMkBQQVZFeGVjU3RhdGVAMkBJVkpTVmFsdWVAMkBf
TkBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNw
cm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvaiBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmNwcm9qCmluZGV4IGU3MDU0ODcwOWZkMGIwNDBjZGYwOTdiMTBjZTI4OTRmYWExNjRlODMu
LjQ5ZTVjN2ZiOGQwZjE0ZDdlYWNmYjdkNGVjNGQzMTU5MjYxZjhjMWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCkBAIC03
NzgsMTQgKzc3OCw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXC4uXHJ1bnRpbWVcSlNCeXRlQXJyYXkuY3BwIgotCQkJCT4KLQkJCTwvRmlsZT4K
LQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxydW50aW1lXEpTQnl0ZUFycmF5Lmgi
Ci0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHJ1
bnRpbWVcSlNDZWxsLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDMyZGNkNmYzYzExMzllNGI2NzNkMmVjYWJiMjY0MzdjNDBiZjE0NTcuLjY1
YjVlZGVmZjJlOWViNmFlYzQ4NWFkZGNiY2Y1ZmQyY2NhMDNhYjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC00OTAsOCArNDkwLDYgQEAKIAkJQTc4MUUzNTkxNDE5NzBDNzAwMDk0
RDkwIC8qIFN0b3JhZ2VCYXJyaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBNzgxRTM1ODE0MTk3MEM3MDAwOTREOTAgLyogU3RvcmFnZUJhcnJpZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzg0
QTI2MTExRDE2NjIyMDA1Nzc2QUMgLyogQVNUQnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdBN0VFNzQxMUI5OEI4RDAwNjVBMTRGIC8qIEFT
VEJ1aWxkZXIuaCAqLzsgfTsKIAkJQTc4NEEyNjQxMUQxNjYyMjAwNTc3NkFDIC8qIFN5bnRheENo
ZWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
QTdFRTc3MTFCOThCOEQwMDY1QTE0RiAvKiBTeW50YXhDaGVja2VyLmggKi87IH07Ci0JCUE3OTFF
RjI4MEYxMUUwNzkwMEFFMUY2OCAvKiBKU0J5dGVBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc5MUVGMjYwRjExRTA3OTAwQUUxRjY4IC8qIEpT
Qnl0ZUFycmF5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKLQkJQTc5MUVGMjkwRjExRTA3OTAwQUUxRjY4IC8qIEpTQnl0ZUFycmF5LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3OTFFRjI3MEYxMUUwNzkw
MEFFMUY2OCAvKiBKU0J5dGVBcnJheS5jcHAgKi87IH07CiAJCUE3QjQ4RjQ5MEVFODkzNkYwMERD
QkRCNiAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjQ4REI2MEVFNzRDRkMwMERDQkRCNiAvKiBFeGVjdXRh
YmxlQWxsb2NhdG9yLmNwcCAqLzsgfTsKIAkJQTdCNEFDQUYxNDg0QzlDRTAwQjM4QTM2IC8qIEpT
RXhwb3J0TWFjcm9zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBN0I0QUNBRTE0ODRDOUNFMDBCMzhBMzYgLyogSlNFeHBvcnRNYWNyb3MuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBN0MxRThFNDExMkU3
MkVGMDBBMzdGOTggLyogSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0MxRThDODExMkU3MDFDMDBBMzdGOTgg
LyogSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAgKi87IH07CkBAIC0xMTcwLDggKzExNjgsNiBA
QAogCQlBNzZDNTE3NDExODI3NDhEMDA3MTVCMDUgLyogSlNJbnRlcmZhY2VKSVQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJbnRlcmZhY2VKSVQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTc2RjU0QTIxM0IyOEFBQjAwRUYyQkNFIC8qIEpJVFdyaXRlQmFy
cmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKSVRXcml0ZUJhcnJpZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc4MUUzNTgxNDE5NzBDNzAwMDk0RDkw
IC8qIFN0b3JhZ2VCYXJyaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0
b3JhZ2VCYXJyaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE3OTFFRjI2MEYx
MUUwNzkwMEFFMUY2OCAvKiBKU0J5dGVBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU0J5dGVBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNzkx
RUYyNzBGMTFFMDc5MDBBRTFGNjggLyogSlNCeXRlQXJyYXkuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNCeXRlQXJyYXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBNzlFREIwODExNTMxQ0Q2MDAxOUU5MTIgLyogSlNPYmplY3RSZWZQcml2YXRl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTT2JqZWN0UmVmUHJpdmF0ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0E3RUU3NDExQjk4QjhEMDA2NUExNEYg
LyogQVNUQnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBU1RCdWls
ZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QTdFRTc3MTFCOThCOEQwMDY1
QTE0RiAvKiBTeW50YXhDaGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFN5bnRheENoZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NTMsOCAr
MTg0OSw2IEBACiAJCQkJOTM4NzcyRTUwMzhCRkUxOTAwODYzNUNFIC8qIEpTQXJyYXkuaCAqLywK
IAkJCQk4NkZBOUU4RjE0MkJCQjJEMDAxNzczQjcgLyogSlNCb3VuZEZ1bmN0aW9uLmNwcCAqLywK
IAkJCQk4NkZBOUU5MDE0MkJCQjJFMDAxNzczQjcgLyogSlNCb3VuZEZ1bmN0aW9uLmggKi8sCi0J
CQkJQTc5MUVGMjcwRjExRTA3OTAwQUUxRjY4IC8qIEpTQnl0ZUFycmF5LmNwcCAqLywKLQkJCQlB
NzkxRUYyNjBGMTFFMDc5MDBBRTFGNjggLyogSlNCeXRlQXJyYXkuaCAqLywKIAkJCQlCQzdGOEZC
QTBFMTlEMUVGMDA4NjMyQzAgLyogSlNDZWxsLmNwcCAqLywKIAkJCQlCQzExNjdEODBFMTlCQ0M5
MDA4MDY2REQgLyogSlNDZWxsLmggKi8sCiAJCQkJOTc4OEZDMjIxNDcxQUQwQzAwNjhDRTJEIC8q
IEpTRGF0ZU1hdGguY3BwICovLApAQCAtMjM0NSw3ICsyMzM5LDYgQEAKIAkJCQlCQzE4QzQxODBF
MTZGNUNEMDBCMzQ0NjAgLyogSlNCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDBEMTdENzBF
OEFENEE5MDAwQ0QxN0QgLyogSlNCYXNlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZG
QTlFOTIxNDJCQkIyRTAwMTc3M0I3IC8qIEpTQm91bmRGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJQTc5MUVGMjgwRjExRTA3OTAwQUUxRjY4IC8qIEpTQnl0ZUFycmF5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzE4QzQxOTBFMTZGNUNEMDBCMzQ0NjAgLyogSlNDYWxsYmFja0NvbnN0cnVj
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQxQTBFMTZGNUNEMDBCMzQ0NjAgLyogSlND
YWxsYmFja0Z1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQxQjBFMTZGNUNEMDBC
MzQ0NjAgLyogSlNDYWxsYmFja09iamVjdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDA0LDcgKzI5
OTcsNiBAQAogCQkJCTE0N0YzOUQwMTA3RUMzNzYwMDQyN0E0OCAvKiBKU0FycmF5LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTE0MjEzNTlCMEE2NzdGNEYwMEE4MTk1RSAvKiBKU0Jhc2UuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJODZGQTlFOTExNDJCQkIyRTAwMTc3M0I3IC8qIEpTQm91bmRGdW5j
dGlvbi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBNzkxRUYyOTBGMTFFMDc5MDBBRTFGNjggLyog
SlNCeXRlQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0MEY4QUYwQTUwOEQyMDAwMDVG
MDYxIC8qIEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDQw
Rjg5MjBBNTA4QjEwMDAwNUYwNjEgLyogSlNDYWxsYmFja0Z1bmN0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTE0QUJERjYwMEE0MzdGRUYwMEVDQ0EwMSAvKiBKU0NhbGxiYWNrT2JqZWN0LmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1Rhcmdl
dC5wcmkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnByaQppbmRleCAwOTc1OTA3OTJk
ODgxYjFiMDVkMmEwNjliYjg2ZjdhNTU0ZWNiN2RiLi5mZmNiYTg4NTZkZGVjYmIyZDQ4MDk2NTA0
Y2IxZDQxZWEzMjc0MTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0
LnByaQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnByaQpAQCAtMTc0LDcgKzE3
NCw2IEBAIFNPVVJDRVMgKz0gXAogICAgIHJ1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcCBcCiAgICAg
cnVudGltZS9KU0FQSVZhbHVlV3JhcHBlci5jcHAgXAogICAgIHJ1bnRpbWUvSlNBcnJheS5jcHAg
XAotICAgIHJ1bnRpbWUvSlNCeXRlQXJyYXkuY3BwIFwKICAgICBydW50aW1lL0pTQ2VsbC5jcHAg
XAogICAgIHJ1bnRpbWUvSlNEYXRlTWF0aC5jcHAgXAogICAgIHJ1bnRpbWUvSlNGdW5jdGlvbi5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ByZWRpY3Rl
ZFR5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ByZWRpY3RlZFR5cGUu
Y3BwCmluZGV4IDgzNTRkMDJkNzg5YjVjZWM5NzJhYzI2ZTYyYzk4NmJmYjcyMzZiYjEuLmU4YTcx
NzcyYmFmZjhmMmM2MzAyYzcxZWQyOTdkNTMwZWRmZmE2MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QcmVkaWN0ZWRUeXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJlZGljdGVkVHlwZS5jcHAKQEAgLTMwLDcgKzMwLDYgQEAK
ICNpbmNsdWRlICJQcmVkaWN0ZWRUeXBlLmgiCiAKICNpbmNsdWRlICJKU0FycmF5LmgiCi0jaW5j
bHVkZSAiSlNCeXRlQXJyYXkuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAi
VmFsdWVQcm9maWxlLmgiCiAjaW5jbHVkZSA8d3RmL0JvdW5kc0NoZWNrZWRQb2ludGVyLmg+CkBA
IC02OCwxMSArNjcsNiBAQCBjb25zdCBjaGFyKiBwcmVkaWN0aW9uVG9TdHJpbmcoUHJlZGljdGVk
VHlwZSB2YWx1ZSkKICAgICBlbHNlCiAgICAgICAgIGlzVG9wID0gZmFsc2U7CiAgICAgCi0gICAg
aWYgKHZhbHVlICYgUHJlZGljdEJ5dGVBcnJheSkKLSAgICAgICAgcHRyLnN0cmNhdCgiQnl0ZWFy
cmF5Iik7Ci0gICAgZWxzZQotICAgICAgICBpc1RvcCA9IGZhbHNlOwotICAgIAogICAgIGlmICh2
YWx1ZSAmIFByZWRpY3RJbnQ4QXJyYXkpCiAgICAgICAgIHB0ci5zdHJjYXQoIkludDhhcnJheSIp
OwogICAgIGVsc2UKQEAgLTE3Niw4ICsxNzAsNiBAQCBjb25zdCBjaGFyKiBwcmVkaWN0aW9uVG9B
YmJyZXZpYXRlZFN0cmluZyhQcmVkaWN0ZWRUeXBlIHByZWRpY3Rpb24pCiAgICAgICAgIHJldHVy
biAiPFN0cmluZz4iOwogICAgIGlmIChpc0Z1bmN0aW9uUHJlZGljdGlvbihwcmVkaWN0aW9uKSkK
ICAgICAgICAgcmV0dXJuICI8RnVuY3Rpb24+IjsKLSAgICBpZiAoaXNCeXRlQXJyYXlQcmVkaWN0
aW9uKHByZWRpY3Rpb24pKQotICAgICAgICByZXR1cm4gIjxCeXRlYXJyYXk+IjsKICAgICBpZiAo
aXNJbnQ4QXJyYXlQcmVkaWN0aW9uKHByZWRpY3Rpb24pKQogICAgICAgICByZXR1cm4gIjxJbnQ4
YXJyYXk+IjsKICAgICBpZiAoaXNJbnQxNkFycmF5UHJlZGljdGlvbihwcmVkaWN0aW9uKSkKQEAg
LTIyNSw4ICsyMTcsNiBAQCBQcmVkaWN0ZWRUeXBlIHByZWRpY3Rpb25Gcm9tQ2xhc3NJbmZvKGNv
bnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKQogICAgIGlmIChjbGFzc0luZm8tPmlzU3ViQ2xhc3NP
ZigmSlNGdW5jdGlvbjo6c19pbmZvKSkKICAgICAgICAgcmV0dXJuIFByZWRpY3RGdW5jdGlvbjsK
IAotICAgIGlmIChjbGFzc0luZm8tPmlzU3ViQ2xhc3NPZigmSlNCeXRlQXJyYXk6OnNfaW5mbykp
Ci0gICAgICAgIHJldHVybiBQcmVkaWN0Qnl0ZUFycmF5OwogICAgIAogICAgIGlmIChjbGFzc0lu
Zm8tPnR5cGVkQXJyYXlTdG9yYWdlVHlwZSAhPSBUeXBlZEFycmF5Tm9uZSkgewogICAgICAgICBz
d2l0Y2ggKGNsYXNzSW5mby0+dHlwZWRBcnJheVN0b3JhZ2VUeXBlKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJlZGljdGVkVHlwZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ByZWRpY3RlZFR5cGUuaAppbmRleCAxYjE4YzcwOWJiMzcw
ZGRlODRiMzhhYjdhYWI2MDcyM2M4ZDBhZDExLi5lODAyMzIzNWMwZGE4OTZiMDczMjhmOTllN2I0
MTczNGUwMTZlMmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
UHJlZGljdGVkVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QcmVk
aWN0ZWRUeXBlLmgKQEAgLTM5LDcgKzM5LDYgQEAgdHlwZWRlZiB1aW50MzJfdCBQcmVkaWN0ZWRU
eXBlOwogc3RhdGljIGNvbnN0IFByZWRpY3RlZFR5cGUgUHJlZGljdE5vbmUgICAgICAgICAgICAg
ID0gMHgwMDAwMDAwMDsgLy8gV2UgZG9uJ3Qga25vdyBhbnl0aGluZyB5ZXQuCiBzdGF0aWMgY29u
c3QgUHJlZGljdGVkVHlwZSBQcmVkaWN0RmluYWxPYmplY3QgICAgICAgPSAweDAwMDAwMDAxOyAv
LyBJdCdzIGRlZmluaXRlbHkgYSBKU0ZpbmFsT2JqZWN0Lgogc3RhdGljIGNvbnN0IFByZWRpY3Rl
ZFR5cGUgUHJlZGljdEFycmF5ICAgICAgICAgICAgID0gMHgwMDAwMDAwMjsgLy8gSXQncyBkZWZp
bml0ZWx5IGEgSlNBcnJheS4KLXN0YXRpYyBjb25zdCBQcmVkaWN0ZWRUeXBlIFByZWRpY3RCeXRl
QXJyYXkgICAgICAgICA9IDB4MDAwMDAwMDQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTQnl0ZUFy
cmF5IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KIHN0YXRpYyBjb25zdCBQcmVkaWN0ZWRUeXBl
IFByZWRpY3RGdW5jdGlvbiAgICAgICAgICA9IDB4MDAwMDAwMDg7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhIEpTRnVuY3Rpb24gb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgogc3RhdGljIGNvbnN0IFBy
ZWRpY3RlZFR5cGUgUHJlZGljdEludDhBcnJheSAgICAgICAgID0gMHgwMDAwMDAxMDsgLy8gSXQn
cyBkZWZpbml0ZWx5IGFuIEludDhBcnJheSBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCiBzdGF0
aWMgY29uc3QgUHJlZGljdGVkVHlwZSBQcmVkaWN0SW50MTZBcnJheSAgICAgICAgPSAweDAwMDAw
MDIwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MTZBcnJheSBvciBvbmUgb2YgaXRzIHN1YmNs
YXNzZXMuCkBAIC01MCw3ICs0OSw3IEBAIHN0YXRpYyBjb25zdCBQcmVkaWN0ZWRUeXBlIFByZWRp
Y3RVaW50MTZBcnJheSAgICAgICA9IDB4MDAwMDAyMDA7IC8vIEl0J3MgZGVmaW5pCiBzdGF0aWMg
Y29uc3QgUHJlZGljdGVkVHlwZSBQcmVkaWN0VWludDMyQXJyYXkgICAgICAgPSAweDAwMDAwNDAw
OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gVWludDMyQXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFz
c2VzLgogc3RhdGljIGNvbnN0IFByZWRpY3RlZFR5cGUgUHJlZGljdEZsb2F0MzJBcnJheSAgICAg
ID0gMHgwMDAwMDgwMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIFVpbnQxNkFycmF5IG9yIG9uZSBv
ZiBpdHMgc3ViY2xhc3Nlcy4KIHN0YXRpYyBjb25zdCBQcmVkaWN0ZWRUeXBlIFByZWRpY3RGbG9h
dDY0QXJyYXkgICAgICA9IDB4MDAwMDEwMDA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBVaW50MTZB
cnJheSBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3QgUHJlZGljdGVkVHlw
ZSBQcmVkaWN0T2JqZWN0T3RoZXIgICAgICAgPSAweDAwMDAyMDAwOyAvLyBJdCdzIGRlZmluaXRl
bHkgYW4gb2JqZWN0IGJ1dCBub3QgSlNGaW5hbE9iamVjdCwgSlNBcnJheSwgSlNCeXRlQXJyYXks
IG9yIEpTRnVuY3Rpb24uCitzdGF0aWMgY29uc3QgUHJlZGljdGVkVHlwZSBQcmVkaWN0T2JqZWN0
T3RoZXIgICAgICAgPSAweDAwMDAyMDAwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gb2JqZWN0IGJ1
dCBub3QgSlNGaW5hbE9iamVjdCwgSlNBcnJheSwgb3IgSlNGdW5jdGlvbi4KIHN0YXRpYyBjb25z
dCBQcmVkaWN0ZWRUeXBlIFByZWRpY3RPYmplY3RNYXNrICAgICAgICA9IDB4MDAwMDNmZmY7IC8v
IEJpdG1hc2sgdXNlZCBmb3IgdGVzdGluZyBmb3IgYW55IGtpbmQgb2Ygb2JqZWN0IHByZWRpY3Rp
b24uCiBzdGF0aWMgY29uc3QgUHJlZGljdGVkVHlwZSBQcmVkaWN0U3RyaW5nICAgICAgICAgICAg
PSAweDAwMDA0MDAwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZy4KIHN0YXRpYyBjb25z
dCBQcmVkaWN0ZWRUeXBlIFByZWRpY3RDZWxsT3RoZXIgICAgICAgICA9IDB4MDAwMDgwMDA7IC8v
IEl0J3MgZGVmaW5pdGVseSBhIEpTQ2VsbCBidXQgbm90IGEgc3ViY2xhc3Mgb2YgSlNPYmplY3Qg
YW5kIGRlZmluaXRlbHkgbm90IGEgSlNTdHJpbmcuCkBAIC02NSw3ICs2NCw3IEBAIHN0YXRpYyBj
b25zdCBQcmVkaWN0ZWRUeXBlIFByZWRpY3RPdGhlciAgICAgICAgICAgICA9IDB4MDgwMDAwMDA7
IC8vIEl0J3MgZGVmaW5pCiBzdGF0aWMgY29uc3QgUHJlZGljdGVkVHlwZSBQcmVkaWN0VG9wICAg
ICAgICAgICAgICAgPSAweDBmZmZmZmZmOyAvLyBJdCBjYW4gYmUgYW55IG9mIHRoZSBhYm92ZS4K
IHN0YXRpYyBjb25zdCBQcmVkaWN0ZWRUeXBlIFByZWRpY3RFbXB0eSAgICAgICAgICAgICA9IDB4
MTAwMDAwMDA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBlbXB0eSB2YWx1ZSBtYXJrZXIuCiBzdGF0
aWMgY29uc3QgUHJlZGljdGVkVHlwZSBQcmVkaWN0RW1wdHlPclRvcCAgICAgICAgPSAweDFmZmZm
ZmZmOyAvLyBJdCBjYW4gYmUgYW55IG9mIHRoZSBhYm92ZS4KLXN0YXRpYyBjb25zdCBQcmVkaWN0
ZWRUeXBlIEZpeGVkSW5kZXhlZFN0b3JhZ2VNYXNrID0gUHJlZGljdEJ5dGVBcnJheSB8IFByZWRp
Y3RJbnQ4QXJyYXkgfCBQcmVkaWN0SW50MTZBcnJheSB8IFByZWRpY3RJbnQzMkFycmF5IHwgUHJl
ZGljdFVpbnQ4QXJyYXkgfCBQcmVkaWN0VWludDhDbGFtcGVkQXJyYXkgfCBQcmVkaWN0VWludDE2
QXJyYXkgfCBQcmVkaWN0VWludDMyQXJyYXkgfCBQcmVkaWN0RmxvYXQzMkFycmF5IHwgUHJlZGlj
dEZsb2F0NjRBcnJheTsKK3N0YXRpYyBjb25zdCBQcmVkaWN0ZWRUeXBlIEZpeGVkSW5kZXhlZFN0
b3JhZ2VNYXNrID0gUHJlZGljdEludDhBcnJheSB8IFByZWRpY3RJbnQxNkFycmF5IHwgUHJlZGlj
dEludDMyQXJyYXkgfCBQcmVkaWN0VWludDhBcnJheSB8IFByZWRpY3RVaW50OENsYW1wZWRBcnJh
eSB8IFByZWRpY3RVaW50MTZBcnJheSB8IFByZWRpY3RVaW50MzJBcnJheSB8IFByZWRpY3RGbG9h
dDMyQXJyYXkgfCBQcmVkaWN0RmxvYXQ2NEFycmF5OwogCiB0eXBlZGVmIGJvb2wgKCpQcmVkaWN0
aW9uQ2hlY2tlcikoUHJlZGljdGVkVHlwZSk7CiAKQEAgLTEwOSwxMSArMTA4LDYgQEAgaW5saW5l
IGJvb2wgaXNGdW5jdGlvblByZWRpY3Rpb24oUHJlZGljdGVkVHlwZSB2YWx1ZSkKICAgICByZXR1
cm4gdmFsdWUgPT0gUHJlZGljdEZ1bmN0aW9uOwogfQogCi1pbmxpbmUgYm9vbCBpc0J5dGVBcnJh
eVByZWRpY3Rpb24oUHJlZGljdGVkVHlwZSB2YWx1ZSkKLXsKLSAgICByZXR1cm4gdmFsdWUgPT0g
UHJlZGljdEJ5dGVBcnJheTsKLX0KLQogaW5saW5lIGJvb2wgaXNJbnQ4QXJyYXlQcmVkaWN0aW9u
KFByZWRpY3RlZFR5cGUgdmFsdWUpCiB7CiAgICAgcmV0dXJuIHZhbHVlID09IFByZWRpY3RJbnQ4
QXJyYXk7CkBAIC0xNjEsOCArMTU1LDcgQEAgaW5saW5lIGJvb2wgaXNGbG9hdDY0QXJyYXlQcmVk
aWN0aW9uKFByZWRpY3RlZFR5cGUgdmFsdWUpCiAKIGlubGluZSBib29sIGlzQWN0aW9uYWJsZUlu
dE11dGFibGVBcnJheVByZWRpY3Rpb24oUHJlZGljdGVkVHlwZSB2YWx1ZSkKIHsKLSAgICByZXR1
cm4gaXNCeXRlQXJyYXlQcmVkaWN0aW9uKHZhbHVlKQotICAgICAgICB8fCBpc0ludDhBcnJheVBy
ZWRpY3Rpb24odmFsdWUpCisgICAgcmV0dXJuIGlzSW50OEFycmF5UHJlZGljdGlvbih2YWx1ZSkK
ICAgICAgICAgfHwgaXNJbnQxNkFycmF5UHJlZGljdGlvbih2YWx1ZSkKICAgICAgICAgfHwgaXNJ
bnQzMkFycmF5UHJlZGljdGlvbih2YWx1ZSkKICAgICAgICAgfHwgaXNVaW50OEFycmF5UHJlZGlj
dGlvbih2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJz
dHJhY3RTdGF0ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0U3Rh
dGUuY3BwCmluZGV4IDBiZWVjOWRhZWZlMTNiNTczYmZkNDM0NjYyNTNhNzQ4MTAxZDVhNGMuLjZk
ZjQwY2E2ZjQ0YzMxZWM5NzU0ZGEyMzZmOTExY2E0N2JiMTk2MzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcApAQCAtMTE4LDggKzExOCw2IEBA
IHZvaWQgQWJzdHJhY3RTdGF0ZTo6aW5pdGlhbGl6ZShHcmFwaCYgZ3JhcGgpCiAgICAgICAgICAg
ICByb290LT52YWx1ZXNBdEhlYWQuYXJndW1lbnQoaSkuc2V0KFByZWRpY3RJbnQzMik7CiAgICAg
ICAgIGVsc2UgaWYgKGlzQXJyYXlQcmVkaWN0aW9uKHByZWRpY3Rpb24pKQogICAgICAgICAgICAg
cm9vdC0+dmFsdWVzQXRIZWFkLmFyZ3VtZW50KGkpLnNldChQcmVkaWN0QXJyYXkpOwotICAgICAg
ICBlbHNlIGlmIChpc0J5dGVBcnJheVByZWRpY3Rpb24ocHJlZGljdGlvbikpCi0gICAgICAgICAg
ICByb290LT52YWx1ZXNBdEhlYWQuYXJndW1lbnQoaSkuc2V0KFByZWRpY3RCeXRlQXJyYXkpOwog
ICAgICAgICBlbHNlIGlmIChpc0Jvb2xlYW5QcmVkaWN0aW9uKHByZWRpY3Rpb24pKQogICAgICAg
ICAgICAgcm9vdC0+dmFsdWVzQXRIZWFkLmFyZ3VtZW50KGkpLnNldChQcmVkaWN0Qm9vbGVhbik7
CiAgICAgICAgIGVsc2UgaWYgKGlzSW50OEFycmF5UHJlZGljdGlvbihwcmVkaWN0aW9uKSkKQEAg
LTI1OCw4ICsyNTYsNiBAQCBib29sIEFic3RyYWN0U3RhdGU6OmV4ZWN1dGUodW5zaWduZWQgaW5k
ZXhJbkJsb2NrKQogICAgICAgICAgICAgZm9yTm9kZShub2RlLmNoaWxkMSgpKS5maWx0ZXIoUHJl
ZGljdEludDMyKTsKICAgICAgICAgZWxzZSBpZiAoaXNBcnJheVByZWRpY3Rpb24ocHJlZGljdGVk
VHlwZSkpCiAgICAgICAgICAgICBmb3JOb2RlKG5vZGUuY2hpbGQxKCkpLmZpbHRlcihQcmVkaWN0
QXJyYXkpOwotICAgICAgICBlbHNlIGlmIChpc0J5dGVBcnJheVByZWRpY3Rpb24ocHJlZGljdGVk
VHlwZSkpCi0gICAgICAgICAgICBmb3JOb2RlKG5vZGUuY2hpbGQxKCkpLmZpbHRlcihQcmVkaWN0
Qnl0ZUFycmF5KTsKICAgICAgICAgZWxzZSBpZiAoaXNCb29sZWFuUHJlZGljdGlvbihwcmVkaWN0
ZWRUeXBlKSkKICAgICAgICAgICAgIGZvck5vZGUobm9kZS5jaGlsZDEoKSkuZmlsdGVyKFByZWRp
Y3RCb29sZWFuKTsKICAgICAgICAgCkBAIC01MTEsMTIgKzUwNyw2IEBAIGJvb2wgQWJzdHJhY3RT
dGF0ZTo6ZXhlY3V0ZSh1bnNpZ25lZCBpbmRleEluQmxvY2spCiAgICAgICAgICAgICBmb3JOb2Rl
KG5vZGVJbmRleCkuc2V0KFByZWRpY3RTdHJpbmcpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KLSAgICAgICAgaWYgKG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0uc2hvdWxkU3BlY3VsYXRl
Qnl0ZUFycmF5KCkpIHsKLSAgICAgICAgICAgIGZvck5vZGUobm9kZS5jaGlsZDEoKSkuZmlsdGVy
KFByZWRpY3RCeXRlQXJyYXkpOwotICAgICAgICAgICAgZm9yTm9kZShub2RlLmNoaWxkMigpKS5m
aWx0ZXIoUHJlZGljdEludDMyKTsKLSAgICAgICAgICAgIGZvck5vZGUobm9kZUluZGV4KS5zZXQo
UHJlZGljdEludDMyKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9CiAgICAgICAgIAog
ICAgICAgICBpZiAobV9ncmFwaFtub2RlLmNoaWxkMSgpXS5zaG91bGRTcGVjdWxhdGVJbnQ4QXJy
YXkoKSkgewogICAgICAgICAgICAgZm9yTm9kZShub2RlLmNoaWxkMSgpKS5maWx0ZXIoUHJlZGlj
dEludDhBcnJheSk7CkBAIC01OTQsMTUgKzU4NCw2IEBAIGJvb2wgQWJzdHJhY3RTdGF0ZTo6ZXhl
Y3V0ZSh1bnNpZ25lZCBpbmRleEluQmxvY2spCiAgICAgICAgICAgICBmb3JOb2RlKG5vZGVJbmRl
eCkubWFrZVRvcCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgaWYg
KG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0uc2hvdWxkU3BlY3VsYXRlQnl0ZUFycmF5KCkpIHsKLSAg
ICAgICAgICAgIGZvck5vZGUobm9kZS5jaGlsZDEoKSkuZmlsdGVyKFByZWRpY3RCeXRlQXJyYXkp
OwotICAgICAgICAgICAgZm9yTm9kZShub2RlLmNoaWxkMigpKS5maWx0ZXIoUHJlZGljdEludDMy
KTsKLSAgICAgICAgICAgIGlmIChtX2dyYXBoW25vZGUuY2hpbGQzKCldLnNob3VsZFNwZWN1bGF0
ZUludGVnZXIoKSkKLSAgICAgICAgICAgICAgICBmb3JOb2RlKG5vZGUuY2hpbGQzKCkpLmZpbHRl
cihQcmVkaWN0SW50MzIpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGZvck5v
ZGUobm9kZS5jaGlsZDMoKSkuZmlsdGVyKFByZWRpY3ROdW1iZXIpOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGlmIChtX2dyYXBoW25vZGUuY2hpbGQx
KCldLnNob3VsZFNwZWN1bGF0ZUludDhBcnJheSgpKSB7CiAgICAgICAgICAgICBmb3JOb2RlKG5v
ZGUuY2hpbGQxKCkpLmZpbHRlcihQcmVkaWN0SW50OEFycmF5KTsKQEAgLTg2NCwxMCArODQ1LDYg
QEAgYm9vbCBBYnN0cmFjdFN0YXRlOjpleGVjdXRlKHVuc2lnbmVkIGluZGV4SW5CbG9jaykKICAg
ICAgICAgZm9yTm9kZShub2RlSW5kZXgpLnNldChQcmVkaWN0SW50MzIpOwogICAgICAgICBicmVh
azsKICAgICAgICAgCi0gICAgY2FzZSBHZXRCeXRlQXJyYXlMZW5ndGg6Ci0gICAgICAgIGZvck5v
ZGUobm9kZS5jaGlsZDEoKSkuZmlsdGVyKFByZWRpY3RCeXRlQXJyYXkpOwotICAgICAgICBmb3JO
b2RlKG5vZGVJbmRleCkuc2V0KFByZWRpY3RJbnQzMik7Ci0gICAgICAgIGJyZWFrOwogICAgIGNh
c2UgR2V0SW50OEFycmF5TGVuZ3RoOgogICAgICAgICBmb3JOb2RlKG5vZGUuY2hpbGQxKCkpLmZp
bHRlcihQcmVkaWN0SW50OEFycmF5KTsKICAgICAgICAgZm9yTm9kZShub2RlSW5kZXgpLnNldChQ
cmVkaWN0SW50MzIpOwpAQCAtOTMxLDExICs5MDgsNiBAQCBib29sIEFic3RyYWN0U3RhdGU6OmV4
ZWN1dGUodW5zaWduZWQgaW5kZXhJbkJsb2NrKQogICAgICAgICAgICAgZm9yTm9kZShub2RlSW5k
ZXgpLmNsZWFyKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBpZiAo
bV9ncmFwaFtub2RlLmNoaWxkMSgpXS5zaG91bGRTcGVjdWxhdGVCeXRlQXJyYXkoKSkgewotICAg
ICAgICAgICAgZm9yTm9kZShub2RlLmNoaWxkMSgpKS5maWx0ZXIoUHJlZGljdEJ5dGVBcnJheSk7
Ci0gICAgICAgICAgICBmb3JOb2RlKG5vZGVJbmRleCkuY2xlYXIoKTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBpZiAobV9ncmFwaFtub2RlLmNoaWxk
MSgpXS5zaG91bGRTcGVjdWxhdGVJbnQ4QXJyYXkoKSkgewogICAgICAgICAgICAgZm9yTm9kZShu
b2RlLmNoaWxkMSgpKS5maWx0ZXIoUHJlZGljdEludDhBcnJheSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NTRVBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ1NFUGhhc2UuY3BwCmluZGV4IDAxNWYwZmFkYmUzNGRmNzk2NjVmMTFiMDYx
OTYxYWFhYTJmYmU4NzcuLjAyMGIxY2ZkMmIzMmZmZjJhYTc3MTI1ZTUyNzVmYTRmYTY4NTRiZDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1NFUGhhc2UuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1NFUGhhc2UuY3BwCkBAIC01NzMsNyAr
NTczLDYgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBBcml0aE1pbjoKICAgICAgICAgY2FzZSBB
cml0aE1heDoKICAgICAgICAgY2FzZSBBcml0aFNxcnQ6Ci0gICAgICAgIGNhc2UgR2V0Qnl0ZUFy
cmF5TGVuZ3RoOgogICAgICAgICBjYXNlIEdldEludDhBcnJheUxlbmd0aDoKICAgICAgICAgY2Fz
ZSBHZXRJbnQxNkFycmF5TGVuZ3RoOgogICAgICAgICBjYXNlIEdldEludDMyQXJyYXlMZW5ndGg6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCBmMjg0
MDZlNGQ0N2UyMjNiOWQ4ZmUxMWViZWRmMTdhMjNjODQxOTA5Li4yNDJmZGY4NTJjMWZjNTcyZDVk
Zjc3NDkzNDEwMjMxYzQ1MTE1ZjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Rml4dXBQaGFzZS5jcHAKQEAgLTc2LDcgKzc2LDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIGJvb2wgaXNBcnJheSA9IGlzQXJyYXlQcmVkaWN0aW9uKG1f
Z3JhcGhbbm9kZS5jaGlsZDEoKV0ucHJlZGljdGlvbigpKTsKICAgICAgICAgICAgIGJvb2wgaXNT
dHJpbmcgPSBpc1N0cmluZ1ByZWRpY3Rpb24obV9ncmFwaFtub2RlLmNoaWxkMSgpXS5wcmVkaWN0
aW9uKCkpOwotICAgICAgICAgICAgYm9vbCBpc0J5dGVBcnJheSA9IG1fZ3JhcGhbbm9kZS5jaGls
ZDEoKV0uc2hvdWxkU3BlY3VsYXRlQnl0ZUFycmF5KCk7CiAgICAgICAgICAgICBib29sIGlzSW50
OEFycmF5ID0gbV9ncmFwaFtub2RlLmNoaWxkMSgpXS5zaG91bGRTcGVjdWxhdGVJbnQ4QXJyYXko
KTsKICAgICAgICAgICAgIGJvb2wgaXNJbnQxNkFycmF5ID0gbV9ncmFwaFtub2RlLmNoaWxkMSgp
XS5zaG91bGRTcGVjdWxhdGVJbnQxNkFycmF5KCk7CiAgICAgICAgICAgICBib29sIGlzSW50MzJB
cnJheSA9IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0uc2hvdWxkU3BlY3VsYXRlSW50MzJBcnJheSgp
OwpAQCAtODYsNyArODUsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgYm9vbCBpc1VpbnQzMkFy
cmF5ID0gbV9ncmFwaFtub2RlLmNoaWxkMSgpXS5zaG91bGRTcGVjdWxhdGVVaW50MzJBcnJheSgp
OwogICAgICAgICAgICAgYm9vbCBpc0Zsb2F0MzJBcnJheSA9IG1fZ3JhcGhbbm9kZS5jaGlsZDEo
KV0uc2hvdWxkU3BlY3VsYXRlRmxvYXQzMkFycmF5KCk7CiAgICAgICAgICAgICBib29sIGlzRmxv
YXQ2NEFycmF5ID0gbV9ncmFwaFtub2RlLmNoaWxkMSgpXS5zaG91bGRTcGVjdWxhdGVGbG9hdDY0
QXJyYXkoKTsKLSAgICAgICAgICAgIGlmICghaXNBcnJheSAmJiAhaXNTdHJpbmcgJiYgIWlzQnl0
ZUFycmF5ICYmICFpc0ludDhBcnJheSAmJiAhaXNJbnQxNkFycmF5ICYmICFpc0ludDMyQXJyYXkg
JiYgIWlzVWludDhBcnJheSAmJiAhaXNVaW50OENsYW1wZWRBcnJheSAmJiAhaXNVaW50MTZBcnJh
eSAmJiAhaXNVaW50MzJBcnJheSAmJiAhaXNGbG9hdDMyQXJyYXkgJiYgIWlzRmxvYXQ2NEFycmF5
KQorICAgICAgICAgICAgaWYgKCFpc0FycmF5ICYmICFpc1N0cmluZyAmJiAhaXNJbnQ4QXJyYXkg
JiYgIWlzSW50MTZBcnJheSAmJiAhaXNJbnQzMkFycmF5ICYmICFpc1VpbnQ4QXJyYXkgJiYgIWlz
VWludDhDbGFtcGVkQXJyYXkgJiYgIWlzVWludDE2QXJyYXkgJiYgIWlzVWludDMyQXJyYXkgJiYg
IWlzRmxvYXQzMkFycmF5ICYmICFpc0Zsb2F0NjRBcnJheSkKICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIAogI2lmIERGR19FTkFCTEUoREVCVUdfUFJPUEFHQVRJT05fVkVSQk9T
RSkKQEAgLTk2LDggKzk1LDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBub2RlLnNldE9w
KEdldEFycmF5TGVuZ3RoKTsKICAgICAgICAgICAgIGVsc2UgaWYgKGlzU3RyaW5nKQogICAgICAg
ICAgICAgICAgIG5vZGUuc2V0T3AoR2V0U3RyaW5nTGVuZ3RoKTsKLSAgICAgICAgICAgIGVsc2Ug
aWYgKGlzQnl0ZUFycmF5KQotICAgICAgICAgICAgICAgIG5vZGUuc2V0T3AoR2V0Qnl0ZUFycmF5
TGVuZ3RoKTsKICAgICAgICAgICAgIGVsc2UgaWYgKGlzSW50OEFycmF5KQogICAgICAgICAgICAg
ICAgIG5vZGUuc2V0T3AoR2V0SW50OEFycmF5TGVuZ3RoKTsKICAgICAgICAgICAgIGVsc2UgaWYg
KGlzSW50MTZBcnJheSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Tm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggNWVmOGNm
MjhkZjkxMjIxNjNhOWUxNmI1ODgzOGE5ZGM3YWNmMTI1YS4uOGZhMGJiMGVjMTc1M2E5NTkxNzRl
NjZjMTlmM2YwOGVmOWI1YTAwOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAg
LTcwMCwxMSArNzAwLDYgQEAgc3RydWN0IE5vZGUgewogICAgICAgICByZXR1cm4gaXNBcnJheVBy
ZWRpY3Rpb24ocHJlZGljdGlvbigpKTsKICAgICB9CiAgICAgCi0gICAgYm9vbCBzaG91bGRTcGVj
dWxhdGVCeXRlQXJyYXkoKQotICAgIHsKLSAgICAgICAgcmV0dXJuICEhKHByZWRpY3Rpb24oKSAm
IFByZWRpY3RCeXRlQXJyYXkpOwotICAgIH0KLSAgICAKICAgICBib29sIHNob3VsZFNwZWN1bGF0
ZUludDhBcnJheSgpCiAgICAgewogICAgICAgICByZXR1cm4gaXNJbnQ4QXJyYXlQcmVkaWN0aW9u
KHByZWRpY3Rpb24oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R05vZGVUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKaW5k
ZXggMTgyYmRjNGQ2MjE2YTcwMDc3YzI1MWY5NzNjYjc4NjRlYzRjNGE3ZC4uOGEzODI4YzMxNTdk
MGQ1YTNjM2I1OTBjNzZhZmJhNTM2ZDYxNWQzMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHTm9kZVR5cGUuaApAQCAtMTE4LDcgKzExOCw2IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgREZHIHsKICAgICBtYWNybyhQdXRCeU9mZnNldCwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVD
bG9iYmVyc1dvcmxkKSBcCiAgICAgbWFjcm8oR2V0QXJyYXlMZW5ndGgsIE5vZGVSZXN1bHRJbnQz
MikgXAogICAgIG1hY3JvKEdldFN0cmluZ0xlbmd0aCwgTm9kZVJlc3VsdEludDMyKSBcCi0gICAg
bWFjcm8oR2V0Qnl0ZUFycmF5TGVuZ3RoLCBOb2RlUmVzdWx0SW50MzIpIFwKICAgICBtYWNybyhH
ZXRJbnQ4QXJyYXlMZW5ndGgsIE5vZGVSZXN1bHRJbnQzMikgXAogICAgIG1hY3JvKEdldEludDE2
QXJyYXlMZW5ndGgsIE5vZGVSZXN1bHRJbnQzMikgXAogICAgIG1hY3JvKEdldEludDMyQXJyYXlM
ZW5ndGgsIE5vZGVSZXN1bHRJbnQzMikgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BlcmF0aW9ucy5jcHAKaW5kZXggY2M0Y2M0NzkyY2U3YTFjMWFhZDE1YmZlNTU5YjEwZDBkYmEz
OGE4ZS4uMmY5MzkyOTVhMDExYjBkMTZiYjBmMDhlZWVjODc3NjhjYTNkMWRlMyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC0zNCw3ICszNCw2IEBA
CiAjaW5jbHVkZSA8d3RmL0lubGluZUFTTS5oPgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAj
aW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgiCi0jaW5jbHVkZSAiSlNCeXRlQXJyYXkuaCIKICNpbmNs
dWRlICJKU0dsb2JhbERhdGEuaCIKICNpbmNsdWRlICJKU1N0YXRpY1Njb3BlT2JqZWN0LmgiCiAj
aW5jbHVkZSAiT3BlcmF0aW9ucy5oIgpAQCAtMTYyLDIwICsxNjEsNiBAQCBzdGF0aWMgaW5saW5l
IHZvaWQgcHV0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgdWludDMy
X3QgaW5kZXgsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoaXNKU0J5dGVBcnJh
eShiYXNlVmFsdWUpICYmIGFzQnl0ZUFycmF5KGJhc2VWYWx1ZSktPmNhbkFjY2Vzc0luZGV4KGlu
ZGV4KSkgewotICAgICAgICBKU0J5dGVBcnJheSogYnl0ZUFycmF5ID0gYXNCeXRlQXJyYXkoYmFz
ZVZhbHVlKTsKLSAgICAgICAgLy8gRklYTUU6IHRoZSBKSVRzdHViIHVzZWQgdG8gcmVsaW5rIHRo
aXMgdG8gYW4gb3B0aW1pemVkIGZvcm0hCi0gICAgICAgIGlmICh2YWx1ZS5pc0ludDMyKCkpIHsK
LSAgICAgICAgICAgIGJ5dGVBcnJheS0+c2V0SW5kZXgoaW5kZXgsIHZhbHVlLmFzSW50MzIoKSk7
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAodmFsdWUuaXNO
dW1iZXIoKSkgewotICAgICAgICAgICAgYnl0ZUFycmF5LT5zZXRJbmRleChpbmRleCwgdmFsdWUu
YXNOdW1iZXIoKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9Ci0KICAg
ICBiYXNlVmFsdWUucHV0QnlJbmRleChleGVjLCBpbmRleCwgdmFsdWUsIHN0cmljdCk7CiB9CiAK
QEAgLTMwMSwxMCArMjg2LDYgQEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBnZXRCeVZh
bChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogYmFzZSwgdWludDMyX3QgaW4KICAgICBpZiAoaXNK
U1N0cmluZyhiYXNlKSAmJiBhc1N0cmluZyhiYXNlKS0+Y2FuR2V0SW5kZXgoaW5kZXgpKQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzU3RyaW5nKGJhc2UpLT5nZXRJbmRleChleGVj
LCBpbmRleCkpOwogCi0gICAgLy8gRklYTUU6IHRoZSBKSVRzdHViIHVzZWQgdG8gcmVsaW5rIHRo
aXMgdG8gYW4gb3B0aW1pemVkIGZvcm0hCi0gICAgaWYgKGlzSlNCeXRlQXJyYXkoYmFzZSkgJiYg
YXNCeXRlQXJyYXkoYmFzZSktPmNhbkFjY2Vzc0luZGV4KGluZGV4KSkKLSAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShhc0J5dGVBcnJheShiYXNlKS0+Z2V0SW5kZXgoZXhlYywgaW5kZXgp
KTsKLQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZShiYXNlKS5nZXQoZXhlYywg
aW5kZXgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCBjZGJkNmQzYWMxMmM0YmYw
N2EzYjhjNTBlOTAzNTAwY2FjNTgyN2MyLi41MzE3NDYwNGFjMWU2Y2IzZWY0Mzg5OGZiNWM3MTk2
MzU1NWM1OTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRp
Y3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAtNTYyLDcgKzU2Miw2IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBQdXRCeVZhbEFsaWFzOgogICAgICAg
ICBjYXNlIEdldEFycmF5TGVuZ3RoOgotICAgICAgICBjYXNlIEdldEJ5dGVBcnJheUxlbmd0aDoK
ICAgICAgICAgY2FzZSBHZXRJbnQ4QXJyYXlMZW5ndGg6CiAgICAgICAgIGNhc2UgR2V0SW50MTZB
cnJheUxlbmd0aDoKICAgICAgICAgY2FzZSBHZXRJbnQzMkFycmF5TGVuZ3RoOgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCA4ZTk4ZDU3
ZjNkOWI1ZmQ4MjY3OGY5MTA0ZWVhNmY0ZDJiZTgwY2I0Li4xOGRiODVjMjI2MGEwODcxN2UwMThi
MzcyYWUxNGQ3OGM5MzJkNjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcApAQCAtMjgsNyArMjgsNiBAQAogCiAjaWYgRU5BQkxFKERGR19K
SVQpCiAKLSNpbmNsdWRlICJKU0J5dGVBcnJheS5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIK
IAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewpAQCAtMTExMywxMSArMTExMiw2IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNoZWNrQXJndW1lbnRUeXBlcygpCiAgICAgICAgICAgICBt
X2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKHZpcnR1YWxSZWdpc3RlciksIHRl
bXAuZ3ByKCkpOwogICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCB2YWx1ZVNv
dXJjZSwgbm9kZUluZGV4LCBtX2ppdC5icmFuY2hUZXN0UHRyKE1hY3JvQXNzZW1ibGVyOjpOb25a
ZXJvLCB0ZW1wLmdwcigpLCBHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpKTsKICAgICAgICAgICAg
IHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwgdmFsdWVTb3VyY2UsIG5vZGVJbmRleCwgbV9qaXQu
YnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3ModGVtcC5ncHIoKSwgSlNDZWxsOjpjbGFzc0luZm9PZmZzZXQoKSksIE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tUHRyKCZKU0FycmF5OjpzX2luZm8pKSk7Ci0gICAgICAgIH0gZWxzZSBpZiAo
aXNCeXRlQXJyYXlQcmVkaWN0aW9uKHByZWRpY3RlZFR5cGUpKSB7Ci0gICAgICAgICAgICBHUFJU
ZW1wb3JhcnkgdGVtcCh0aGlzKTsKLSAgICAgICAgICAgIG1faml0LmxvYWRQdHIoSklUQ29tcGls
ZXI6OmFkZHJlc3NGb3IodmlydHVhbFJlZ2lzdGVyKSwgdGVtcC5ncHIoKSk7Ci0gICAgICAgICAg
ICBzcGVjdWxhdGlvbkNoZWNrKEJhZFR5cGUsIHZhbHVlU291cmNlLCBub2RlSW5kZXgsIG1faml0
LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIHRlbXAuZ3ByKCksIEdQUklu
Zm86OnRhZ01hc2tSZWdpc3RlcikpOwotICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRU
eXBlLCB2YWx1ZVNvdXJjZSwgbm9kZUluZGV4LCBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJs
ZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyh0ZW1wLmdwcigpLCBKU0NlbGw6
OmNsYXNzSW5mb09mZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoJkpTQnl0
ZUFycmF5OjpzX2luZm8pKSk7CiAgICAgICAgIH0gZWxzZSBpZiAoaXNCb29sZWFuUHJlZGljdGlv
bihwcmVkaWN0ZWRUeXBlKSkgewogICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHRlbXAodGhpcyk7
CiAgICAgICAgICAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKHZpcnR1
YWxSZWdpc3RlciksIHRlbXAuZ3ByKCkpOwpAQCAtMTE3OCwxMiArMTE3Miw2IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNoZWNrQXJndW1lbnRUeXBlcygpCiAgICAgICAgICAgICBzcGVjdWxhdGlv
bkNoZWNrKEJhZFR5cGUsIHZhbHVlU291cmNlLCBub2RlSW5kZXgsIG1faml0LmJyYW5jaDMyKE1h
Y3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgdGVtcC5ncHIoKSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6
OkNlbGxUYWcpKSk7CiAgICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnBheWxv
YWRGb3IodmlydHVhbFJlZ2lzdGVyKSwgdGVtcC5ncHIoKSk7CiAgICAgICAgICAgICBzcGVjdWxh
dGlvbkNoZWNrKEJhZFR5cGUsIHZhbHVlU291cmNlLCBub2RlSW5kZXgsIG1faml0LmJyYW5jaFB0
cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHRlbXAu
Z3ByKCksIEpTQ2VsbDo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbVB0cigmSlNBcnJheTo6c19pbmZvKSkpOwotICAgICAgICB9IGVsc2UgaWYgKGlzQnl0ZUFy
cmF5UHJlZGljdGlvbihwcmVkaWN0ZWRUeXBlKSkgewotICAgICAgICAgICAgR1BSVGVtcG9yYXJ5
IHRlbXAodGhpcyk7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnRhZ0Zv
cih2aXJ0dWFsUmVnaXN0ZXIpLCB0ZW1wLmdwcigpKTsKLSAgICAgICAgICAgIHNwZWN1bGF0aW9u
Q2hlY2soQmFkVHlwZSwgdmFsdWVTb3VyY2UsIG5vZGVJbmRleCwgbV9qaXQuYnJhbmNoMzIoTWFj
cm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCB0ZW1wLmdwcigpLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6
Q2VsbFRhZykpKTsKLSAgICAgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6cGF5bG9h
ZEZvcih2aXJ0dWFsUmVnaXN0ZXIpLCB0ZW1wLmdwcigpKTsKLSAgICAgICAgICAgIHNwZWN1bGF0
aW9uQ2hlY2soQmFkVHlwZSwgdmFsdWVTb3VyY2UsIG5vZGVJbmRleCwgbV9qaXQuYnJhbmNoUHRy
KE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3ModGVtcC5n
cHIoKSwgSlNDZWxsOjpjbGFzc0luZm9PZmZzZXQoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tUHRyKCZKU0J5dGVBcnJheTo6c19pbmZvKSkpOwogICAgICAgICB9IGVsc2UgaWYgKGlzQm9v
bGVhblByZWRpY3Rpb24ocHJlZGljdGVkVHlwZSkpCiAgICAgICAgICAgICBzcGVjdWxhdGlvbkNo
ZWNrKEJhZFR5cGUsIHZhbHVlU291cmNlLCBub2RlSW5kZXgsIG1faml0LmJyYW5jaDMyKE1hY3Jv
QXNzZW1ibGVyOjpOb3RFcXVhbCwgSklUQ29tcGlsZXI6OnRhZ0Zvcih2aXJ0dWFsUmVnaXN0ZXIp
LCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Qm9vbGVhblRhZykpKTsKICAgICAgICAgZWxzZSBpZiAo
aXNJbnQ4QXJyYXlQcmVkaWN0aW9uKHByZWRpY3RlZFR5cGUpKSB7CkBAIC0xODgyLDg1ICsxODcw
LDYgQEAgc3RhdGljIHZvaWQgY29tcGlsZUNsYW1wRG91YmxlVG9CeXRlKEpJVENvbXBpbGVyJiBq
aXQsIEdQUlJlZyByZXN1bHQsIEZQUlJlZyBzb3UKIAogfQogCi12b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlUHV0QnlWYWxGb3JCeXRlQXJyYXkoR1BSUmVnIGJhc2UsIEdQUlJlZyBwcm9wZXJ0
eSwgTm9kZSYgbm9kZSkKLXsKLSAgICBFZGdlIGJhc2VVc2UgPSBub2RlLmNoaWxkMSgpOwotICAg
IEVkZ2UgdmFsdWVVc2UgPSBub2RlLmNoaWxkMygpOwotICAgIAotICAgIGlmICghaXNCeXRlQXJy
YXlQcmVkaWN0aW9uKG1fc3RhdGUuZm9yTm9kZShiYXNlVXNlKS5tX3R5cGUpKQotICAgICAgICBz
cGVjdWxhdGlvbkNoZWNrKEJhZFR5cGUsIEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKGJhc2Up
LCBiYXNlVXNlLmluZGV4KCksIG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1
YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2UsIEpTQ2VsbDo6Y2xhc3NJbmZvT2Zmc2V0
KCkpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cigmSlNCeXRlQXJyYXk6OnNfaW5mbykp
KTsKLSAgICBHUFJUZW1wb3JhcnkgdmFsdWU7Ci0gICAgR1BSUmVnIHZhbHVlR1BSOwotCi0gICAg
aWYgKGF0KHZhbHVlVXNlKS5pc0NvbnN0YW50KCkpIHsKLSAgICAgICAgSlNWYWx1ZSBqc1ZhbHVl
ID0gdmFsdWVPZkpTQ29uc3RhbnQodmFsdWVVc2UuaW5kZXgoKSk7Ci0gICAgICAgIGlmICghanNW
YWx1ZS5pc051bWJlcigpKSB7Ci0gICAgICAgICAgICB0ZXJtaW5hdGVTcGVjdWxhdGl2ZUV4ZWN1
dGlvbihVbmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlKTsKLSAgICAgICAgICAgIG5v
UmVzdWx0KG1fY29tcGlsZUluZGV4KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
ICAgICAgICBpbnQgY2xhbXBlZFZhbHVlID0gY2xhbXBEb3VibGVUb0J5dGUoanNWYWx1ZS5hc051
bWJlcigpKTsKLSAgICAgICAgR1BSVGVtcG9yYXJ5IHNjcmF0Y2godGhpcyk7Ci0gICAgICAgIEdQ
UlJlZyBzY3JhdGNoUmVnID0gc2NyYXRjaC5ncHIoKTsKLSAgICAgICAgbV9qaXQubW92ZShJbW0z
MihjbGFtcGVkVmFsdWUpLCBzY3JhdGNoUmVnKTsKLSAgICAgICAgdmFsdWUuYWRvcHQoc2NyYXRj
aCk7Ci0gICAgICAgIHZhbHVlR1BSID0gc2NyYXRjaFJlZzsKLSAgICB9IGVsc2UgaWYgKGF0KHZh
bHVlVXNlKS5zaG91bGRTcGVjdWxhdGVJbnRlZ2VyKCkpIHsKLSAgICAgICAgU3BlY3VsYXRlSW50
ZWdlck9wZXJhbmQgdmFsdWVPcCh0aGlzLCB2YWx1ZVVzZSk7Ci0gICAgICAgIEdQUlRlbXBvcmFy
eSBzY3JhdGNoKHRoaXMpOwotICAgICAgICBHUFJSZWcgc2NyYXRjaFJlZyA9IHNjcmF0Y2guZ3By
KCk7Ci0gICAgICAgIG1faml0Lm1vdmUodmFsdWVPcC5ncHIoKSwgc2NyYXRjaFJlZyk7Ci0gICAg
ICAgIGNvbXBpbGVDbGFtcEludGVnZXJUb0J5dGUobV9qaXQsIHNjcmF0Y2hSZWcpOwotICAgICAg
ICB2YWx1ZS5hZG9wdChzY3JhdGNoKTsKLSAgICAgICAgdmFsdWVHUFIgPSBzY3JhdGNoUmVnOwot
ICAgIH0gZWxzZSB7Ci0gICAgICAgIFNwZWN1bGF0ZURvdWJsZU9wZXJhbmQgdmFsdWVPcCh0aGlz
LCB2YWx1ZVVzZSk7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7Ci0gICAgICAg
IEZQUlRlbXBvcmFyeSBmbG9hdFNjcmF0Y2godGhpcyk7Ci0gICAgICAgIEZQUlJlZyBmcHIgPSB2
YWx1ZU9wLmZwcigpOwotICAgICAgICBHUFJSZWcgZ3ByID0gcmVzdWx0LmdwcigpOwotICAgICAg
ICBjb21waWxlQ2xhbXBEb3VibGVUb0J5dGUobV9qaXQsIGdwciwgZnByLCBmbG9hdFNjcmF0Y2gu
ZnByKCkpOwotICAgICAgICB2YWx1ZS5hZG9wdChyZXN1bHQpOwotICAgICAgICB2YWx1ZUdQUiA9
IGdwcjsKLSAgICB9Ci0gICAgQVNTRVJUX1VOVVNFRCh2YWx1ZUdQUiwgdmFsdWVHUFIgIT0gcHJv
cGVydHkpOwotICAgIEFTU0VSVCh2YWx1ZUdQUiAhPSBiYXNlKTsKLSAgICBHUFJUZW1wb3Jhcnkg
c3RvcmFnZSh0aGlzKTsKLSAgICBHUFJSZWcgc3RvcmFnZVJlZyA9IHN0b3JhZ2UuZ3ByKCk7Ci0g
ICAgQVNTRVJUKHZhbHVlR1BSICE9IHN0b3JhZ2VSZWcpOwotICAgIG1faml0LmxvYWRQdHIoTWFj
cm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZSwgSlNCeXRlQXJyYXk6Om9mZnNldE9mU3RvcmFnZSgp
KSwgc3RvcmFnZVJlZyk7Ci0gICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgb3V0T2ZCb3VuZHMgPSBt
X2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eSwgTWFj
cm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnl0ZUFycmF5OjpvZmZzZXRPZlNpemUo
KSkpOwotICAgIG1faml0LnN0b3JlOCh2YWx1ZS5ncHIoKSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJ
bmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eSwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzT25lLCBCeXRl
QXJyYXk6Om9mZnNldE9mRGF0YSgpKSk7Ci0gICAgb3V0T2ZCb3VuZHMubGluaygmbV9qaXQpOwot
ICAgIG5vUmVzdWx0KG1fY29tcGlsZUluZGV4KTsKLX0KLQotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUdldEJ5VmFsT25CeXRlQXJyYXkoTm9kZSYgbm9kZSkKLXsKLSAgICBTcGVjdWxhdGVD
ZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUuY2hpbGQxKCkpOwotICAgIFNwZWN1bGF0ZVN0cmlj
dEludDMyT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBub2RlLmNoaWxkMigpKTsKLQotICAgIEdQUlJl
ZyBiYXNlUmVnID0gYmFzZS5ncHIoKTsKLSAgICBHUFJSZWcgcHJvcGVydHlSZWcgPSBwcm9wZXJ0
eS5ncHIoKTsKLQotICAgIGlmICghaXNCeXRlQXJyYXlQcmVkaWN0aW9uKG1fc3RhdGUuZm9yTm9k
ZShub2RlLmNoaWxkMSgpKS5tX3R5cGUpKSB7Ci0gICAgICAgIHRlcm1pbmF0ZVNwZWN1bGF0aXZl
RXhlY3V0aW9uKFVuY291bnRhYmxlLCBKU1ZhbHVlUmVncygpLCBOb05vZGUpOwotICAgICAgICBu
b1Jlc3VsdChtX2NvbXBpbGVJbmRleCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAv
LyBMb2FkIHRoZSBjaGFyYWN0ZXIgaW50byBzY3JhdGNoUmVnCi0gICAgR1BSVGVtcG9yYXJ5IHN0
b3JhZ2UodGhpcyk7Ci0gICAgR1BSUmVnIHN0b3JhZ2VSZWcgPSBzdG9yYWdlLmdwcigpOwotICAg
IG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywgSlNCeXRlQXJy
YXk6Om9mZnNldE9mU3RvcmFnZSgpKSwgc3RvcmFnZVJlZyk7Ci0gICAgCi0gICAgLy8gdW5zaWdu
ZWQgY29tcGFyaXNvbiBzbyB3ZSBjYW4gZmlsdGVyIG91dCBuZWdhdGl2ZSBpbmRpY2VzIGFuZCBp
bmRpY2VzIHRoYXQgYXJlIHRvbyBsYXJnZQotICAgIHNwZWN1bGF0aW9uQ2hlY2soVW5jb3VudGFi
bGUsIEpTVmFsdWVSZWdzKCksIE5vTm9kZSwgbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6
OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3Jh
Z2VSZWcsIEJ5dGVBcnJheTo6b2Zmc2V0T2ZTaXplKCkpKSk7Ci0KLSAgICBtX2ppdC5sb2FkOChN
YWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fz
c2VtYmxlcjo6VGltZXNPbmUsIEJ5dGVBcnJheTo6b2Zmc2V0T2ZEYXRhKCkpLCBzdG9yYWdlUmVn
KTsKLSAgICBpbnRlZ2VyUmVzdWx0KHN0b3JhZ2VSZWcsIG1fY29tcGlsZUluZGV4KTsKLX0KLQog
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldFR5cGVkQXJyYXlMZW5ndGgoY29uc3QgVHlw
ZWRBcnJheURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIE5vZGUmIG5vZGUsIGJvb2wgbmVlZHNTcGVj
dWxhdGlvbkNoZWNrKQogewogICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9k
ZS5jaGlsZDEoKSk7CkBAIC0zMDQxLDEwICsyOTUwLDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUdldEluZGV4ZWRQcm9wZXJ0eVN0b3JhZ2UoTm9kZSYgbm9kZSkKICAgICAgICAgc3Bl
Y3VsYXRpb25DaGVjayhVbmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlLCBtX2ppdC5i
cmFuY2hUZXN0MzIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIHN0b3JhZ2VSZWcpKTsKIAogICAgICAg
ICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIFN0cmlu
Z0ltcGw6OmRhdGFPZmZzZXQoKSksIHN0b3JhZ2VSZWcpOwotICAgIH0gZWxzZSBpZiAoYXQobm9k
ZS5jaGlsZDEoKSkuc2hvdWxkU3BlY3VsYXRlQnl0ZUFycmF5KCkpIHsKLSAgICAgICAgaWYgKCFp
c0J5dGVBcnJheVByZWRpY3Rpb24obV9zdGF0ZS5mb3JOb2RlKG5vZGUuY2hpbGQxKCkpLm1fdHlw
ZSkpCi0gICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEJhZFR5cGUsIEpTVmFsdWVTb3VyY2U6
OnVuYm94ZWRDZWxsKGJhc2VSZWcpLCBub2RlLmNoaWxkMSgpLCBtX2ppdC5icmFuY2hQdHIoTWFj
cm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVnLCBK
U0NlbGw6OmNsYXNzSW5mb09mZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIo
JkpTQnl0ZUFycmF5OjpzX2luZm8pKSk7Ci0gICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3MoYmFzZVJlZywgSlNCeXRlQXJyYXk6Om9mZnNldE9mU3RvcmFnZSgpKSwg
c3RvcmFnZVJlZyk7CiAgICAgfSBlbHNlIGlmIChhdChub2RlLmNoaWxkMSgpKS5zaG91bGRTcGVj
dWxhdGVJbnQ4QXJyYXkoKSkgewogICAgICAgICBjb25zdCBUeXBlZEFycmF5RGVzY3JpcHRvciYg
ZGVzY3JpcHRvciA9IG1faml0Lmdsb2JhbERhdGEoKS0+aW50OEFycmF5RGVzY3JpcHRvcigpOwog
ICAgICAgICBpZiAoIWlzSW50OEFycmF5UHJlZGljdGlvbihtX3N0YXRlLmZvck5vZGUobm9kZS5j
aGlsZDEoKSkubV90eXBlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaAppbmRleCA1Mjk4ZTVlMGZjYThjNzg5MmMzMmY4OTdhODMwOTQ5Y2UwNmFiNzc4
Li5jM2Q3YmMxNzJjZGRlMzVhZGUxNWJhYTMwOTFiODEyZmIzNDVlYzA3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC04Miw3ICs4Miw3IEBA
IHB1YmxpYzoKICAgICB7CiAgICAgICAgIGlmIChpc0ludDMyUHJlZGljdGlvbihwcmVkaWN0aW9u
KSkKICAgICAgICAgICAgIHJldHVybiBWYWx1ZVNvdXJjZShJbnQzMkluUmVnaXN0ZXJGaWxlKTsK
LSAgICAgICAgaWYgKGlzQXJyYXlQcmVkaWN0aW9uKHByZWRpY3Rpb24pIHx8IGlzQnl0ZUFycmF5
UHJlZGljdGlvbihwcmVkaWN0aW9uKSkKKyAgICAgICAgaWYgKGlzQXJyYXlQcmVkaWN0aW9uKHBy
ZWRpY3Rpb24pKQogICAgICAgICAgICAgcmV0dXJuIFZhbHVlU291cmNlKENlbGxJblJlZ2lzdGVy
RmlsZSk7CiAgICAgICAgIGlmIChpc0Jvb2xlYW5QcmVkaWN0aW9uKHByZWRpY3Rpb24pKQogICAg
ICAgICAgICAgcmV0dXJuIFZhbHVlU291cmNlKEJvb2xlYW5JblJlZ2lzdGVyRmlsZSk7CkBAIC0x
NzUzLDggKzE3NTMsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgY29tcGlsZVVJbnQzMlRvTnVtYmVy
KE5vZGUmKTsKICAgICB2b2lkIGNvbXBpbGVEb3VibGVBc0ludDMyKE5vZGUmKTsKICAgICB2b2lk
IGNvbXBpbGVJbnQzMlRvRG91YmxlKE5vZGUmKTsKLSAgICB2b2lkIGNvbXBpbGVHZXRCeVZhbE9u
Qnl0ZUFycmF5KE5vZGUmKTsKLSAgICB2b2lkIGNvbXBpbGVQdXRCeVZhbEZvckJ5dGVBcnJheShH
UFJSZWcgYmFzZSwgR1BSUmVnIHByb3BlcnR5LCBOb2RlJik7CiAgICAgdm9pZCBjb21waWxlQWRk
KE5vZGUmKTsKICAgICB2b2lkIGNvbXBpbGVBcml0aFN1YihOb2RlJik7CiAgICAgdm9pZCBjb21w
aWxlQXJpdGhOZWdhdGUoTm9kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggMGRjMWZkM2YzZWY3Mjk4ODQ2OWVh
OTg2YjMzMTc4NDY5OTNiMmYwYi4uYzE1NmU4MWQwMGQ5YjM4MWE2M2FiNjFjYTNiOTZjOWQ4OWUy
MGFiOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUMzJfNjQuY3BwCkBAIC0yOSw4ICsyOSw2IEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkK
IAotI2luY2x1ZGUgIkpTQnl0ZUFycmF5LmgiCi0KIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
REZHIHsKIAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCkBAIC0xODI0LDcgKzE4MjIsNyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmIChpc0FycmF5UHJlZGljdGlvbihw
cmVkaWN0aW9uKSB8fCBpc0J5dGVBcnJheVByZWRpY3Rpb24ocHJlZGljdGlvbikpIHsKKyAgICAg
ICAgICAgIGlmIChpc0FycmF5UHJlZGljdGlvbihwcmVkaWN0aW9uKSkgewogICAgICAgICAgICAg
ICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CiAgICAgICAgICAgICAgICAgbV9qaXQubG9h
ZDMyKEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKG5vZGUubG9jYWwoKSksIHJlc3VsdC5ncHIoKSk7
CiAKQEAgLTE5NDMsMTYgKzE5NDEsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5v
ZGUmIG5vZGUpCiAgICAgICAgICAgICAgICAgdmFsdWVTb3VyY2VSZWZlcmVuY2VGb3JPcGVyYW5k
KG5vZGUubG9jYWwoKSkgPSBWYWx1ZVNvdXJjZShDZWxsSW5SZWdpc3RlckZpbGUpOwogICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGlzQnl0ZUFy
cmF5UHJlZGljdGlvbihwcmVkaWN0ZWRUeXBlKSkgewotICAgICAgICAgICAgICAgIFNwZWN1bGF0
ZUNlbGxPcGVyYW5kIGNlbGwodGhpcywgbm9kZS5jaGlsZDEoKSk7Ci0gICAgICAgICAgICAgICAg
R1BSUmVnIGNlbGxHUFIgPSBjZWxsLmdwcigpOwotICAgICAgICAgICAgICAgIGlmICghaXNCeXRl
QXJyYXlQcmVkaWN0aW9uKG1fc3RhdGUuZm9yTm9kZShub2RlLmNoaWxkMSgpKS5tX3R5cGUpKQot
ICAgICAgICAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEJhZFR5cGUsIEpTVmFsdWVTb3Vy
Y2U6OnVuYm94ZWRDZWxsKGNlbGxHUFIpLCBub2RlLmNoaWxkMSgpLCBtX2ppdC5icmFuY2hQdHIo
TWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhjZWxsR1BS
LCBKU0NlbGw6OmNsYXNzSW5mb09mZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1Q
dHIoJkpTQnl0ZUFycmF5OjpzX2luZm8pKSk7Ci0gICAgICAgICAgICAgICAgbV9qaXQuc3RvcmVQ
dHIoY2VsbEdQUiwgSklUQ29tcGlsZXI6OnBheWxvYWRGb3Iobm9kZS5sb2NhbCgpKSk7Ci0gICAg
ICAgICAgICAgICAgbm9SZXN1bHQobV9jb21waWxlSW5kZXgpOwotICAgICAgICAgICAgICAgIHZh
bHVlU291cmNlUmVmZXJlbmNlRm9yT3BlcmFuZChub2RlLmxvY2FsKCkpID0gVmFsdWVTb3VyY2Uo
Q2VsbEluUmVnaXN0ZXJGaWxlKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGlmIChpc0Jvb2xlYW5QcmVkaWN0aW9uKHByZWRpY3RlZFR5cGUpKSB7
CiAgICAgICAgICAgICAgICAgU3BlY3VsYXRlQm9vbGVhbk9wZXJhbmQgdmFsdWUodGhpcywgbm9k
ZS5jaGlsZDEoKSk7CiAgICAgICAgICAgICAgICAgbV9qaXQuc3RvcmUzMih2YWx1ZS5ncHIoKSwg
SklUQ29tcGlsZXI6OnBheWxvYWRGb3Iobm9kZS5sb2NhbCgpKSk7CkBAIC0yMjc4LDEzICsyMjY2
LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIGlmIChhdChub2RlLmNoaWxk
MSgpKS5zaG91bGRTcGVjdWxhdGVCeXRlQXJyYXkoKSkgewotICAgICAgICAgICAgY29tcGlsZUdl
dEJ5VmFsT25CeXRlQXJyYXkobm9kZSk7Ci0gICAgICAgICAgICBpZiAoIW1fY29tcGlsZU9rYXkp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAg
Ci0gICAgICAgIH0KLSAgICAgICAgCiAgICAgICAgIGlmIChhdChub2RlLmNoaWxkMSgpKS5zaG91
bGRTcGVjdWxhdGVJbnQ4QXJyYXkoKSkgewogICAgICAgICAgICAgY29tcGlsZUdldEJ5VmFsT25J
bnRUeXBlZEFycmF5KG1faml0Lmdsb2JhbERhdGEoKS0+aW50OEFycmF5RGVzY3JpcHRvcigpLCBu
b2RlLCBzaXplb2YoaW50OF90KSwgaXNJbnQ4QXJyYXlQcmVkaWN0aW9uKG1fc3RhdGUuZm9yTm9k
ZShub2RlLmNoaWxkMSgpKS5tX3R5cGUpID8gTm9UeXBlZEFycmF5VHlwZVNwZWNDaGVjayA6IEFs
bFR5cGVkQXJyYXlTcGVjQ2hlY2tzLCBTaWduZWRUeXBlZEFycmF5KTsKICAgICAgICAgICAgIGlm
ICghbV9jb21waWxlT2theSkKQEAgLTI0MDcsMTUgKzIzODgsNiBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAKICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQg
YmFzZSh0aGlzLCBub2RlLmNoaWxkMSgpKTsKICAgICAgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJP
cGVyYW5kIHByb3BlcnR5KHRoaXMsIG5vZGUuY2hpbGQyKCkpOwotICAgICAgICBpZiAoYXQobm9k
ZS5jaGlsZDEoKSkuc2hvdWxkU3BlY3VsYXRlQnl0ZUFycmF5KCkpIHsKLSAgICAgICAgICAgIGNv
bXBpbGVQdXRCeVZhbEZvckJ5dGVBcnJheShiYXNlLmdwcigpLCBwcm9wZXJ0eS5ncHIoKSwgbm9k
ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBpZiAoYXQobm9kZS5j
aGlsZDEoKSkuc2hvdWxkU3BlY3VsYXRlQnl0ZUFycmF5KCkpIHsKLSAgICAgICAgICAgIGNvbXBp
bGVQdXRCeVZhbEZvckJ5dGVBcnJheShiYXNlLmdwcigpLCBwcm9wZXJ0eS5ncHIoKSwgbm9kZSk7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICAKICAgICAgICAgaWYgKGF0
KG5vZGUuY2hpbGQxKCkpLnNob3VsZFNwZWN1bGF0ZUludDhBcnJheSgpKSB7CiAgICAgICAgICAg
ICBjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KG1faml0Lmdsb2JhbERhdGEoKS0+aW50
OEFycmF5RGVzY3JpcHRvcigpLCBiYXNlLmdwcigpLCBwcm9wZXJ0eS5ncHIoKSwgbm9kZSwgc2l6
ZW9mKGludDhfdCksIGlzSW50OEFycmF5UHJlZGljdGlvbihtX3N0YXRlLmZvck5vZGUobm9kZS5j
aGlsZDEoKSkubV90eXBlKSA/IE5vVHlwZWRBcnJheVR5cGVTcGVjQ2hlY2sgOiBBbGxUeXBlZEFy
cmF5U3BlY0NoZWNrcywgU2lnbmVkVHlwZWRBcnJheSk7CiAgICAgICAgICAgICBpZiAoIW1fY29t
cGlsZU9rYXkpCkBAIC0yNTU0LDExICsyNTI2LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZShOb2RlJiBub2RlKQogICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMs
IG5vZGUuY2hpbGQxKCkpOwogICAgICAgICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQgcHJv
cGVydHkodGhpcywgbm9kZS5jaGlsZDIoKSk7CiAKLSAgICAgICAgaWYgKGF0KG5vZGUuY2hpbGQx
KCkpLnNob3VsZFNwZWN1bGF0ZUJ5dGVBcnJheSgpKSB7Ci0gICAgICAgICAgICBjb21waWxlUHV0
QnlWYWxGb3JCeXRlQXJyYXkoYmFzZS5ncHIoKSwgcHJvcGVydHkuZ3ByKCksIG5vZGUpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgCiAgICAgICAgIGlmIChhdChub2Rl
LmNoaWxkMSgpKS5zaG91bGRTcGVjdWxhdGVJbnQ4QXJyYXkoKSkgewogICAgICAgICAgICAgY29t
cGlsZVB1dEJ5VmFsRm9ySW50VHlwZWRBcnJheShtX2ppdC5nbG9iYWxEYXRhKCktPmludDhBcnJh
eURlc2NyaXB0b3IoKSwgYmFzZS5ncHIoKSwgcHJvcGVydHkuZ3ByKCksIG5vZGUsIHNpemVvZihp
bnQ4X3QpLCBOb1R5cGVkQXJyYXlTcGVjQ2hlY2ssIFNpZ25lZFR5cGVkQXJyYXkpOwogICAgICAg
ICAgICAgaWYgKCFtX2NvbXBpbGVPa2F5KQpAQCAtMzMyOSwyMiArMzI5Niw2IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQog
Ci0gICAgY2FzZSBHZXRCeXRlQXJyYXlMZW5ndGg6IHsKLSAgICAgICAgU3BlY3VsYXRlQ2VsbE9w
ZXJhbmQgYmFzZSh0aGlzLCBub2RlLmNoaWxkMSgpKTsKLSAgICAgICAgR1BSUmVnIGJhc2VHUFIg
PSBiYXNlLmdwcigpOwotICAgICAgICAKLSAgICAgICAgaWYgKCFpc0J5dGVBcnJheVByZWRpY3Rp
b24obV9zdGF0ZS5mb3JOb2RlKG5vZGUuY2hpbGQxKCkpLm1fdHlwZSkpCi0gICAgICAgICAgICBz
cGVjdWxhdGlvbkNoZWNrKEJhZFR5cGUsIEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKGJhc2VH
UFIpLCBub2RlLmNoaWxkMSgpLCBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVx
dWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlR1BSLCBKU0NlbGw6OmNsYXNzSW5mb09m
ZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoJkpTQnl0ZUFycmF5OjpzX2lu
Zm8pKSk7Ci0gICAgICAgIAotICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwotICAg
ICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwotICAgICAgICAKLSAgICAgICAg
bV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlR1BSLCBKU0J5dGVBcnJh
eTo6b2Zmc2V0T2ZTdG9yYWdlKCkpLCByZXN1bHRHUFIpOwotICAgICAgICBtX2ppdC5sb2FkMzIo
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MocmVzdWx0R1BSLCBCeXRlQXJyYXk6Om9mZnNldE9mU2l6
ZSgpKSwgcmVzdWx0R1BSKTsKLSAgICAgICAgCi0gICAgICAgIGludGVnZXJSZXN1bHQocmVzdWx0
R1BSLCBtX2NvbXBpbGVJbmRleCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KICAgICBjYXNlIEdl
dEludDhBcnJheUxlbmd0aDogewogICAgICAgICBjb21waWxlR2V0VHlwZWRBcnJheUxlbmd0aCht
X2ppdC5nbG9iYWxEYXRhKCktPmludDhBcnJheURlc2NyaXB0b3IoKSwgbm9kZSwgIWlzSW50OEFy
cmF5UHJlZGljdGlvbihtX3N0YXRlLmZvck5vZGUobm9kZS5jaGlsZDEoKSkubV90eXBlKSk7CiAg
ICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQ2NC5jcHAKaW5kZXggOGNjNTM1ZjYzNGZkNGU5NGRiMTA5Y2QyNmUwZTJkYzdlZDVj
YTZiYS4uYTQ2ZjhmMjYyOTZjMTQ5ZDEyODFkNjA3ZmVlYTAzZmMxMjA1YmI2NiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0y
Niw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiREZHU3BlY3VsYXRp
dmVKSVQuaCIKIAotI2luY2x1ZGUgIkpTQnl0ZUFycmF5LmgiCi0KICNpZiBFTkFCTEUoREZHX0pJ
VCkKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewpAQCAtMjAyMSwxNiArMjAxOSw2
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgICAg
ICAgICB2YWx1ZVNvdXJjZVJlZmVyZW5jZUZvck9wZXJhbmQobm9kZS5sb2NhbCgpKSA9IFZhbHVl
U291cmNlKENlbGxJblJlZ2lzdGVyRmlsZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoaXNCeXRlQXJyYXlQcmVkaWN0aW9uKHByZWRpY3Rl
ZFR5cGUpKSB7Ci0gICAgICAgICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgY2VsbCh0aGlz
LCBub2RlLmNoaWxkMSgpKTsKLSAgICAgICAgICAgICAgICBHUFJSZWcgY2VsbEdQUiA9IGNlbGwu
Z3ByKCk7Ci0gICAgICAgICAgICAgICAgaWYgKCFpc0J5dGVBcnJheVByZWRpY3Rpb24obV9zdGF0
ZS5mb3JOb2RlKG5vZGUuY2hpbGQxKCkpLm1fdHlwZSkpCi0gICAgICAgICAgICAgICAgICAgIHNw
ZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwgSlNWYWx1ZVJlZ3MoY2VsbEdQUiksIG5vZGUuY2hpbGQx
KCksIG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKGNlbGxHUFIsIEpTQ2VsbDo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbVB0cigmSlNCeXRlQXJyYXk6OnNfaW5mbykpKTsKLSAgICAgICAg
ICAgICAgICBtX2ppdC5zdG9yZVB0cihjZWxsR1BSLCBKSVRDb21waWxlcjo6YWRkcmVzc0Zvcihu
b2RlLmxvY2FsKCkpKTsKLSAgICAgICAgICAgICAgICBub1Jlc3VsdChtX2NvbXBpbGVJbmRleCk7
Ci0gICAgICAgICAgICAgICAgdmFsdWVTb3VyY2VSZWZlcmVuY2VGb3JPcGVyYW5kKG5vZGUubG9j
YWwoKSkgPSBWYWx1ZVNvdXJjZShDZWxsSW5SZWdpc3RlckZpbGUpOwotICAgICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKGlzQm9vbGVhblByZWRpY3Rp
b24ocHJlZGljdGVkVHlwZSkpIHsKICAgICAgICAgICAgICAgICBTcGVjdWxhdGVCb29sZWFuT3Bl
cmFuZCBib29sZWFuKHRoaXMsIG5vZGUuY2hpbGQxKCkpOwogICAgICAgICAgICAgICAgIG1faml0
LnN0b3JlUHRyKGJvb2xlYW4uZ3ByKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKG5vZGUubG9j
YWwoKSkpOwpAQCAtMjM1MSwxMyArMjMzOSw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGUoTm9kZSYgbm9kZSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKLSAgICAgICAg
aWYgKGF0KG5vZGUuY2hpbGQxKCkpLnNob3VsZFNwZWN1bGF0ZUJ5dGVBcnJheSgpKSB7Ci0gICAg
ICAgICAgICBjb21waWxlR2V0QnlWYWxPbkJ5dGVBcnJheShub2RlKTsKLSAgICAgICAgICAgIGlm
ICghbV9jb21waWxlT2theSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBi
cmVhazsgICAgICAgICAgICAKLSAgICAgICAgfQotICAgICAgICAKICAgICAgICAgaWYgKGF0KG5v
ZGUuY2hpbGQxKCkpLnNob3VsZFNwZWN1bGF0ZUludDhBcnJheSgpKSB7CiAgICAgICAgICAgICBj
b21waWxlR2V0QnlWYWxPbkludFR5cGVkQXJyYXkobV9qaXQuZ2xvYmFsRGF0YSgpLT5pbnQ4QXJy
YXlEZXNjcmlwdG9yKCksIG5vZGUsIHNpemVvZihpbnQ4X3QpLCBpc0ludDhBcnJheVByZWRpY3Rp
b24obV9zdGF0ZS5mb3JOb2RlKG5vZGUuY2hpbGQxKCkpLm1fdHlwZSkgPyBOb1R5cGVkQXJyYXlU
eXBlU3BlY0NoZWNrIDogQWxsVHlwZWRBcnJheVNwZWNDaGVja3MsIFNpZ25lZFR5cGVkQXJyYXkp
OwogICAgICAgICAgICAgaWYgKCFtX2NvbXBpbGVPa2F5KQpAQCAtMjQ3MiwxMSArMjQ1Myw2IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKIAogICAgICAgICBTcGVj
dWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUuY2hpbGQxKCkpOwogICAgICAgICBTcGVj
dWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQgcHJvcGVydHkodGhpcywgbm9kZS5jaGlsZDIoKSk7Ci0g
ICAgICAgIGlmIChhdChub2RlLmNoaWxkMSgpKS5zaG91bGRTcGVjdWxhdGVCeXRlQXJyYXkoKSkg
ewotICAgICAgICAgICAgY29tcGlsZVB1dEJ5VmFsRm9yQnl0ZUFycmF5KGJhc2UuZ3ByKCksIHBy
b3BlcnR5LmdwcigpLCBub2RlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAg
ICAgIAogICAgICAgICBpZiAoYXQobm9kZS5jaGlsZDEoKSkuc2hvdWxkU3BlY3VsYXRlSW50OEFy
cmF5KCkpIHsKICAgICAgICAgICAgIGNvbXBpbGVQdXRCeVZhbEZvckludFR5cGVkQXJyYXkobV9q
aXQuZ2xvYmFsRGF0YSgpLT5pbnQ4QXJyYXlEZXNjcmlwdG9yKCksIGJhc2UuZ3ByKCksIHByb3Bl
cnR5LmdwcigpLCBub2RlLCBzaXplb2YoaW50OF90KSwgaXNJbnQ4QXJyYXlQcmVkaWN0aW9uKG1f
c3RhdGUuZm9yTm9kZShub2RlLmNoaWxkMSgpKS5tX3R5cGUpID8gTm9UeXBlZEFycmF5VHlwZVNw
ZWNDaGVjayA6IEFsbFR5cGVkQXJyYXlTcGVjQ2hlY2tzLCBTaWduZWRUeXBlZEFycmF5KTsKICAg
ICAgICAgICAgIGlmICghbV9jb21waWxlT2theSkKQEAgLTI2MTAsMTEgKzI1ODYsNiBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAKICAgICAgICAgU3BlY3VsYXRl
Q2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLmNoaWxkMSgpKTsKICAgICAgICAgU3BlY3VsYXRl
U3RyaWN0SW50MzJPcGVyYW5kIHByb3BlcnR5KHRoaXMsIG5vZGUuY2hpbGQyKCkpOwotICAgICAg
ICBpZiAoYXQobm9kZS5jaGlsZDEoKSkuc2hvdWxkU3BlY3VsYXRlQnl0ZUFycmF5KCkpIHsKLSAg
ICAgICAgICAgIGNvbXBpbGVQdXRCeVZhbEZvckJ5dGVBcnJheShiYXNlLmdwcigpLCBwcm9wZXJ0
eS5ncHIoKSwgbm9kZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCiAgICAgICAg
IGlmIChhdChub2RlLmNoaWxkMSgpKS5zaG91bGRTcGVjdWxhdGVJbnQ4QXJyYXkoKSkgewogICAg
ICAgICAgICAgY29tcGlsZVB1dEJ5VmFsRm9ySW50VHlwZWRBcnJheShtX2ppdC5nbG9iYWxEYXRh
KCktPmludDhBcnJheURlc2NyaXB0b3IoKSwgYmFzZS5ncHIoKSwgcHJvcGVydHkuZ3ByKCksIG5v
ZGUsIHNpemVvZihpbnQ4X3QpLCBOb1R5cGVkQXJyYXlTcGVjQ2hlY2ssIFNpZ25lZFR5cGVkQXJy
YXkpOwogICAgICAgICAgICAgaWYgKCFtX2NvbXBpbGVPa2F5KQpAQCAtMzMzNSwyMiArMzMwNiw2
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgYnJl
YWs7CiAgICAgfQogCi0gICAgY2FzZSBHZXRCeXRlQXJyYXlMZW5ndGg6IHsKLSAgICAgICAgU3Bl
Y3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLmNoaWxkMSgpKTsKLSAgICAgICAgR1BS
VGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKLSAgICAgICAgCi0gICAgICAgIEdQUlJlZyBiYXNlR1BS
ID0gYmFzZS5ncHIoKTsKLSAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsK
LSAgICAgICAgCi0gICAgICAgIGlmICghaXNCeXRlQXJyYXlQcmVkaWN0aW9uKG1fc3RhdGUuZm9y
Tm9kZShub2RlLmNoaWxkMSgpKS5tX3R5cGUpKQotICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVj
ayhCYWRUeXBlLCBKU1ZhbHVlUmVncyhiYXNlR1BSKSwgbm9kZS5jaGlsZDEoKSwgbV9qaXQuYnJh
bmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
YmFzZUdQUiwgSlNDZWxsOjpjbGFzc0luZm9PZmZzZXQoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tUHRyKCZKU0J5dGVBcnJheTo6c19pbmZvKSkpOwotICAgICAgICAKLSAgICAgICAgbV9q
aXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlR1BSLCBKU0J5dGVBcnJheTo6
b2Zmc2V0T2ZTdG9yYWdlKCkpLCByZXN1bHRHUFIpOwotICAgICAgICBtX2ppdC5sb2FkMzIoTWFj
cm9Bc3NlbWJsZXI6OkFkZHJlc3MocmVzdWx0R1BSLCBCeXRlQXJyYXk6Om9mZnNldE9mU2l6ZSgp
KSwgcmVzdWx0R1BSKTsKLQotICAgICAgICBpbnRlZ2VyUmVzdWx0KHJlc3VsdEdQUiwgbV9jb21w
aWxlSW5kZXgpOwotICAgICAgICBicmVhazsKLSAgICB9CiAgICAgY2FzZSBHZXRJbnQ4QXJyYXlM
ZW5ndGg6IHsKICAgICAgICAgY29tcGlsZUdldFR5cGVkQXJyYXlMZW5ndGgobV9qaXQuZ2xvYmFs
RGF0YSgpLT5pbnQ4QXJyYXlEZXNjcmlwdG9yKCksIG5vZGUsICFpc0ludDhBcnJheVByZWRpY3Rp
b24obV9zdGF0ZS5mb3JOb2RlKG5vZGUuY2hpbGQxKCkpLm1fdHlwZSkpOwogICAgICAgICBicmVh
azsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnBy
ZXRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIu
Y3BwCmluZGV4IGNkYWM5YWVmN2EwNzI4ZGYwYTUwMjg5MDdjZTkyMmMxZDQxMGQwMDUuLjA4ZjM2
NDNlOWMyYjlkYjZkZWQ2YzE1NzVhMDk1NGE4Y2E3YmM3NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcApAQCAtNDUsNyArNDUsNiBA
QAogI2luY2x1ZGUgIkpTQWN0aXZhdGlvbi5oIgogI2luY2x1ZGUgIkpTQXJyYXkuaCIKICNpbmNs
dWRlICJKU0JvdW5kRnVuY3Rpb24uaCIKLSNpbmNsdWRlICJKU0J5dGVBcnJheS5oIgogI2luY2x1
ZGUgIkpTTm90QW5PYmplY3QuaCIKICNpbmNsdWRlICJKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgi
CiAjaW5jbHVkZSAiTGl0ZXJhbFBhcnNlci5oIgpAQCAtMzc2OCw4ICszNzY3LDYgQEAgc2tpcF9p
ZF9jdXN0b21fc2VsZjoKICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0ganNBcnJheS0+SlNB
cnJheTo6Z2V0KGNhbGxGcmFtZSwgaSk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzSlNTdHJp
bmcoYmFzZVZhbHVlKSAmJiBhc1N0cmluZyhiYXNlVmFsdWUpLT5jYW5HZXRJbmRleChpKSkKICAg
ICAgICAgICAgICAgICByZXN1bHQgPSBhc1N0cmluZyhiYXNlVmFsdWUpLT5nZXRJbmRleChjYWxs
RnJhbWUsIGkpOwotICAgICAgICAgICAgZWxzZSBpZiAoaXNKU0J5dGVBcnJheShiYXNlVmFsdWUp
ICYmIGFzQnl0ZUFycmF5KGJhc2VWYWx1ZSktPmNhbkFjY2Vzc0luZGV4KGkpKQotICAgICAgICAg
ICAgICAgIHJlc3VsdCA9IGFzQnl0ZUFycmF5KGJhc2VWYWx1ZSktPmdldEluZGV4KGNhbGxGcmFt
ZSwgaSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gYmFzZVZh
bHVlLmdldChjYWxsRnJhbWUsIGkpOwogICAgICAgICB9IGVsc2UgewpAQCAtMzgwOCwxNSArMzgw
NSw2IEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAgICAgICAgICAgICAgICAgICAgIGpzQXJyYXkt
PnNldEluZGV4KCpnbG9iYWxEYXRhLCBpLCBjYWxsRnJhbWUtPnIodmFsdWUpLmpzVmFsdWUoKSk7
CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBqc0FycmF5LT5KU0Fy
cmF5OjpwdXRCeUluZGV4KGpzQXJyYXksIGNhbGxGcmFtZSwgaSwgY2FsbEZyYW1lLT5yKHZhbHVl
KS5qc1ZhbHVlKCksIGNvZGVCbG9jay0+aXNTdHJpY3RNb2RlKCkpOwotICAgICAgICAgICAgfSBl
bHNlIGlmIChpc0pTQnl0ZUFycmF5KGJhc2VWYWx1ZSkgJiYgYXNCeXRlQXJyYXkoYmFzZVZhbHVl
KS0+Y2FuQWNjZXNzSW5kZXgoaSkpIHsKLSAgICAgICAgICAgICAgICBKU0J5dGVBcnJheSoganNC
eXRlQXJyYXkgPSBhc0J5dGVBcnJheShiYXNlVmFsdWUpOwotICAgICAgICAgICAgICAgIEpTVmFs
dWUganNWYWx1ZSA9IGNhbGxGcmFtZS0+cih2YWx1ZSkuanNWYWx1ZSgpOwotICAgICAgICAgICAg
ICAgIGlmIChqc1ZhbHVlLmlzSW50MzIoKSkKLSAgICAgICAgICAgICAgICAgICAganNCeXRlQXJy
YXktPnNldEluZGV4KGksIGpzVmFsdWUuYXNJbnQzMigpKTsKLSAgICAgICAgICAgICAgICBlbHNl
IGlmIChqc1ZhbHVlLmlzRG91YmxlKCkpCi0gICAgICAgICAgICAgICAgICAgIGpzQnl0ZUFycmF5
LT5zZXRJbmRleChpLCBqc1ZhbHVlLmFzRG91YmxlKCkpOwotICAgICAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICAgICAgYmFzZVZhbHVlLnB1dEJ5SW5kZXgoY2FsbEZyYW1lLCBpLCBq
c1ZhbHVlLCBjb2RlQmxvY2stPmlzU3RyaWN0TW9kZSgpKTsKICAgICAgICAgICAgIH0gZWxzZQog
ICAgICAgICAgICAgICAgIGJhc2VWYWx1ZS5wdXRCeUluZGV4KGNhbGxGcmFtZSwgaSwgY2FsbEZy
YW1lLT5yKHZhbHVlKS5qc1ZhbHVlKCksIGNvZGVCbG9jay0+aXNTdHJpY3RNb2RlKCkpOwogICAg
ICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRT
dHVicy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAppbmRleCBk
YmNkNTBlNWNjYjdkYzczMzVjZjU4N2YzNzBiZmIyOTgxMWNjMTNlLi4zNzRjMjk4OWE2OTRjNWQ5
YjdlY2RkMWYyYTcwY2RmZjc3ZmE0MzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFN0dWJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0
dWJzLmNwcApAQCAtNDgsNyArNDgsNiBAQAogI2luY2x1ZGUgIkpJVEV4Y2VwdGlvbnMuaCIKICNp
bmNsdWRlICJKU0FjdGl2YXRpb24uaCIKICNpbmNsdWRlICJKU0FycmF5LmgiCi0jaW5jbHVkZSAi
SlNCeXRlQXJyYXkuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNHbG9i
YWxPYmplY3RGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJKU05vdEFuT2JqZWN0LmgiCkBAIC0yNDQ4
LDExICsyNDQ3LDYgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04oRW5jb2RlZEpTVmFsdWUsIG9wX2dl
dF9ieV92YWwpCiAgICAgICAgICAgICBDSEVDS19GT1JfRVhDRVBUSU9OKCk7CiAgICAgICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiAgICAgICAgIH0KLSAgICAgICAgaWYg
KGlzSlNCeXRlQXJyYXkoYmFzZVZhbHVlKSAmJiBhc0J5dGVBcnJheShiYXNlVmFsdWUpLT5jYW5B
Y2Nlc3NJbmRleChpKSkgewotICAgICAgICAgICAgLy8gQWxsIGZhc3QgYnl0ZSBhcnJheSBhY2Nl
c3NlcyBhcmUgc2FmZSBmcm9tIGV4Y2VwdGlvbnMgc28gcmV0dXJuIGltbWVkaWF0ZWx5IHRvIGF2
b2lkIGV4Y2VwdGlvbiBjaGVja3MuCi0gICAgICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVybkFk
ZHJlc3MoY2FsbEZyYW1lLT5jb2RlQmxvY2soKSwgU1RVQl9SRVRVUk5fQUREUkVTUywgRnVuY3Rp
b25QdHIoY3RpX29wX2dldF9ieV92YWxfYnl0ZV9hcnJheSkpOwotICAgICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShhc0J5dGVBcnJheShiYXNlVmFsdWUpLT5nZXRJbmRleChjYWxsRnJh
bWUsIGkpKTsKLSAgICAgICAgfQogICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IGJhc2VWYWx1ZS5n
ZXQoY2FsbEZyYW1lLCBpKTsKICAgICAgICAgQ0hFQ0tfRk9SX0VYQ0VQVElPTigpOwogICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CkBAIC0yNDkzLDM2ICsyNDg3LDYgQEAg
REVGSU5FX1NUVUJfRlVOQ1RJT04oRW5jb2RlZEpTVmFsdWUsIG9wX2dldF9ieV92YWxfc3RyaW5n
KQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KICAgICAKLURFRklORV9T
VFVCX0ZVTkNUSU9OKEVuY29kZWRKU1ZhbHVlLCBvcF9nZXRfYnlfdmFsX2J5dGVfYXJyYXkpCi17
Ci0gICAgU1RVQl9JTklUX1NUQUNLX0ZSQU1FKHN0YWNrRnJhbWUpOwotICAgIAotICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gc3RhY2tGcmFtZS5jYWxsRnJhbWU7Ci0gICAgCi0gICAgSlNWYWx1
ZSBiYXNlVmFsdWUgPSBzdGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1ZSgpOwotICAgIEpTVmFsdWUg
c3Vic2NyaXB0ID0gc3RhY2tGcmFtZS5hcmdzWzFdLmpzVmFsdWUoKTsKLSAgICAKLSAgICBKU1Zh
bHVlIHJlc3VsdDsKLQotICAgIGlmIChMSUtFTFkoc3Vic2NyaXB0LmlzVUludDMyKCkpKSB7Ci0g
ICAgICAgIHVpbnQzMl90IGkgPSBzdWJzY3JpcHQuYXNVSW50MzIoKTsKLSAgICAgICAgaWYgKGlz
SlNCeXRlQXJyYXkoYmFzZVZhbHVlKSAmJiBhc0J5dGVBcnJheShiYXNlVmFsdWUpLT5jYW5BY2Nl
c3NJbmRleChpKSkgewotICAgICAgICAgICAgLy8gQWxsIGZhc3QgYnl0ZSBhcnJheSBhY2Nlc3Nl
cyBhcmUgc2FmZSBmcm9tIGV4Y2VwdGlvbnMgc28gcmV0dXJuIGltbWVkaWF0ZWx5IHRvIGF2b2lk
IGV4Y2VwdGlvbiBjaGVja3MuCi0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFz
Qnl0ZUFycmF5KGJhc2VWYWx1ZSktPmdldEluZGV4KGNhbGxGcmFtZSwgaSkpOwotICAgICAgICB9
Ci0KLSAgICAgICAgcmVzdWx0ID0gYmFzZVZhbHVlLmdldChjYWxsRnJhbWUsIGkpOwotICAgICAg
ICBpZiAoIWlzSlNCeXRlQXJyYXkoYmFzZVZhbHVlKSkKLSAgICAgICAgICAgIGN0aVBhdGNoQ2Fs
bEJ5UmV0dXJuQWRkcmVzcyhjYWxsRnJhbWUtPmNvZGVCbG9jaygpLCBTVFVCX1JFVFVSTl9BRERS
RVNTLCBGdW5jdGlvblB0cihjdGlfb3BfZ2V0X2J5X3ZhbCkpOwotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIElkZW50aWZpZXIgcHJvcGVydHkoY2FsbEZyYW1lLCBzdWJzY3JpcHQudG9TdHJpbmcoY2Fs
bEZyYW1lKS0+dmFsdWUoY2FsbEZyYW1lKSk7Ci0gICAgICAgIHJlc3VsdCA9IGJhc2VWYWx1ZS5n
ZXQoY2FsbEZyYW1lLCBwcm9wZXJ0eSk7Ci0gICAgfQotICAgIAotICAgIENIRUNLX0ZPUl9FWENF
UFRJT05fQVRfRU5EKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwotfQot
CiBERUZJTkVfU1RVQl9GVU5DVElPTihFbmNvZGVkSlNWYWx1ZSwgb3Bfc3ViKQogewogICAgIFNU
VUJfSU5JVF9TVEFDS19GUkFNRShzdGFja0ZyYW1lKTsKQEAgLTI1NTgsMjEgKzI1MjIsNiBAQCBE
RUZJTkVfU1RVQl9GVU5DVElPTih2b2lkLCBvcF9wdXRfYnlfdmFsKQogICAgICAgICAgICAgICAg
IGpzQXJyYXktPnNldEluZGV4KCpnbG9iYWxEYXRhLCBpLCB2YWx1ZSk7CiAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgSlNBcnJheTo6cHV0QnlJbmRleChqc0FycmF5LCBjYWxsRnJh
bWUsIGksIHZhbHVlLCBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5pc1N0cmljdE1vZGUoKSk7Ci0g
ICAgICAgIH0gZWxzZSBpZiAoaXNKU0J5dGVBcnJheShiYXNlVmFsdWUpICYmIGFzQnl0ZUFycmF5
KGJhc2VWYWx1ZSktPmNhbkFjY2Vzc0luZGV4KGkpKSB7Ci0gICAgICAgICAgICBKU0J5dGVBcnJh
eSoganNCeXRlQXJyYXkgPSBhc0J5dGVBcnJheShiYXNlVmFsdWUpOwotICAgICAgICAgICAgY3Rp
UGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGNhbGxGcmFtZS0+Y29kZUJsb2NrKCksIFNUVUJfUkVU
VVJOX0FERFJFU1MsIEZ1bmN0aW9uUHRyKGN0aV9vcF9wdXRfYnlfdmFsX2J5dGVfYXJyYXkpKTsK
LSAgICAgICAgICAgIC8vIEFsbCBmYXN0IGJ5dGUgYXJyYXkgYWNjZXNzZXMgYXJlIHNhZmUgZnJv
bSBleGNlcHRpb25zIHNvIHJldHVybiBpbW1lZGlhdGVseSB0byBhdm9pZCBleGNlcHRpb24gY2hl
Y2tzLgotICAgICAgICAgICAgaWYgKHZhbHVlLmlzSW50MzIoKSkgewotICAgICAgICAgICAgICAg
IGpzQnl0ZUFycmF5LT5zZXRJbmRleChpLCB2YWx1ZS5hc0ludDMyKCkpOwotICAgICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKHZh
bHVlLmlzTnVtYmVyKCkpIHsKLSAgICAgICAgICAgICAgICAgICAganNCeXRlQXJyYXktPnNldElu
ZGV4KGksIHZhbHVlLmFzTnVtYmVyKCkpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBiYXNlVmFsdWUu
cHV0QnlJbmRleChjYWxsRnJhbWUsIGksIHZhbHVlLCBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5p
c1N0cmljdE1vZGUoKSk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgYmFzZVZhbHVlLnB1
dEJ5SW5kZXgoY2FsbEZyYW1lLCBpLCB2YWx1ZSwgY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+aXNT
dHJpY3RNb2RlKCkpOwogICAgIH0gZWxzZSB7CkBAIC0yNTg2LDQ3ICsyNTM1LDYgQEAgREVGSU5F
X1NUVUJfRlVOQ1RJT04odm9pZCwgb3BfcHV0X2J5X3ZhbCkKICAgICBDSEVDS19GT1JfRVhDRVBU
SU9OX0FUX0VORCgpOwogfQogCi1ERUZJTkVfU1RVQl9GVU5DVElPTih2b2lkLCBvcF9wdXRfYnlf
dmFsX2J5dGVfYXJyYXkpCi17Ci0gICAgU1RVQl9JTklUX1NUQUNLX0ZSQU1FKHN0YWNrRnJhbWUp
OwotICAgIAotICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gc3RhY2tGcmFtZS5jYWxsRnJhbWU7
Ci0gICAgCi0gICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBzdGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1
ZSgpOwotICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0gc3RhY2tGcmFtZS5hcmdzWzFdLmpzVmFsdWUo
KTsKLSAgICBKU1ZhbHVlIHZhbHVlID0gc3RhY2tGcmFtZS5hcmdzWzJdLmpzVmFsdWUoKTsKLSAg
ICAKLSAgICBpZiAoTElLRUxZKHN1YnNjcmlwdC5pc1VJbnQzMigpKSkgewotICAgICAgICB1aW50
MzJfdCBpID0gc3Vic2NyaXB0LmFzVUludDMyKCk7Ci0gICAgICAgIGlmIChpc0pTQnl0ZUFycmF5
KGJhc2VWYWx1ZSkgJiYgYXNCeXRlQXJyYXkoYmFzZVZhbHVlKS0+Y2FuQWNjZXNzSW5kZXgoaSkp
IHsKLSAgICAgICAgICAgIEpTQnl0ZUFycmF5KiBqc0J5dGVBcnJheSA9IGFzQnl0ZUFycmF5KGJh
c2VWYWx1ZSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIC8vIEFsbCBmYXN0IGJ5dGUgYXJy
YXkgYWNjZXNzZXMgYXJlIHNhZmUgZnJvbSBleGNlcHRpb25zIHNvIHJldHVybiBpbW1lZGlhdGVs
eSB0byBhdm9pZCBleGNlcHRpb24gY2hlY2tzLgotICAgICAgICAgICAgaWYgKHZhbHVlLmlzSW50
MzIoKSkgewotICAgICAgICAgICAgICAgIGpzQnl0ZUFycmF5LT5zZXRJbmRleChpLCB2YWx1ZS5h
c0ludDMyKCkpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgaWYgKHZhbHVlLmlzTnVtYmVyKCkpIHsKLSAgICAgICAgICAgICAg
ICAgICAganNCeXRlQXJyYXktPnNldEluZGV4KGksIHZhbHVlLmFzTnVtYmVyKCkpOwotICAgICAg
ICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQot
ICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCFpc0pTQnl0ZUFycmF5KGJhc2VWYWx1ZSkpCi0gICAg
ICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVybkFkZHJlc3MoY2FsbEZyYW1lLT5jb2RlQmxvY2so
KSwgU1RVQl9SRVRVUk5fQUREUkVTUywgRnVuY3Rpb25QdHIoY3RpX29wX3B1dF9ieV92YWwpKTsK
LSAgICAgICAgYmFzZVZhbHVlLnB1dEJ5SW5kZXgoY2FsbEZyYW1lLCBpLCB2YWx1ZSwgY2FsbEZy
YW1lLT5jb2RlQmxvY2soKS0+aXNTdHJpY3RNb2RlKCkpOwotICAgIH0gZWxzZSB7Ci0gICAgICAg
IElkZW50aWZpZXIgcHJvcGVydHkoY2FsbEZyYW1lLCBzdWJzY3JpcHQudG9TdHJpbmcoY2FsbEZy
YW1lKS0+dmFsdWUoY2FsbEZyYW1lKSk7Ci0gICAgICAgIGlmICghc3RhY2tGcmFtZS5nbG9iYWxE
YXRhLT5leGNlcHRpb24pIHsgLy8gRG9uJ3QgcHV0IHRvIGFuIG9iamVjdCBpZiB0b1N0cmluZyB0
aHJldyBhbiBleGNlcHRpb24uCi0gICAgICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdChjYWxs
RnJhbWUtPmNvZGVCbG9jaygpLT5pc1N0cmljdE1vZGUoKSk7Ci0gICAgICAgICAgICBiYXNlVmFs
dWUucHV0KGNhbGxGcmFtZSwgcHJvcGVydHksIHZhbHVlLCBzbG90KTsKLSAgICAgICAgfQotICAg
IH0KLSAgICAKLSAgICBDSEVDS19GT1JfRVhDRVBUSU9OX0FUX0VORCgpOwotfQotCiBERUZJTkVf
U1RVQl9GVU5DVElPTihFbmNvZGVkSlNWYWx1ZSwgb3BfbGVzcykKIHsKICAgICBTVFVCX0lOSVRf
U1RBQ0tfRlJBTUUoc3RhY2tGcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFN0dWJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgK
aW5kZXggNjBkYzhhMjcwZDhlYmVlNjRhMTM5YTg3MGZiYmQ0NmMyMDJkMzFmNi4uNzg2MzUzZGY1
ZGI0ZmE2ZDI5NGRlYjBkMWYwYzYyNjJlNzNlYzU2MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUU3R1YnMuaApAQCAtMzY3LDcgKzM2Nyw2IEBAIGV4dGVybiAiQyIgewogICAgIEVuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfc2VsZl9mYWlsKFNUVUJfQVJHU19ERUNM
QVJBVElPTik7CiAgICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9z
dHJpbmdfZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04pOwogICAgIEVuY29kZWRKU1ZhbHVlIEpJ
VF9TVFVCIGN0aV9vcF9nZXRfYnlfdmFsKFNUVUJfQVJHU19ERUNMQVJBVElPTik7Ci0gICAgRW5j
b2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV92YWxfYnl0ZV9hcnJheShTVFVCX0FS
R1NfREVDTEFSQVRJT04pOwogICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRf
YnlfdmFsX3N0cmluZyhTVFVCX0FSR1NfREVDTEFSQVRJT04pOwogICAgIEVuY29kZWRKU1ZhbHVl
IEpJVF9TVFVCIGN0aV9vcF9pbihTVFVCX0FSR1NfREVDTEFSQVRJT04pOwogICAgIEVuY29kZWRK
U1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9pbnN0YW5jZW9mKFNUVUJfQVJHU19ERUNMQVJBVElPTik7
CkBAIC00NDUsNyArNDQ0LDYgQEAgZXh0ZXJuICJDIiB7CiAgICAgdm9pZCBKSVRfU1RVQiBjdGlf
b3BfcHV0X2J5X2lkX2RpcmVjdF9nZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTik7CiAgICAg
dm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2luZGV4KFNUVUJfQVJHU19ERUNMQVJBVElPTik7
CiAgICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X3ZhbChTVFVCX0FSR1NfREVDTEFSQVRJ
T04pOwotICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9ieV92YWxfYnl0ZV9hcnJheShTVFVC
X0FSR1NfREVDTEFSQVRJT04pOwogICAgIHZvaWQgSklUX1NUVUIgY3RpX29wX3B1dF9nZXR0ZXJf
c2V0dGVyKFNUVUJfQVJHU19ERUNMQVJBVElPTik7CiAgICAgdm9pZCBKSVRfU1RVQiBjdGlfb3Bf
dGVhcl9vZmZfYWN0aXZhdGlvbihTVFVCX0FSR1NfREVDTEFSQVRJT04pOwogICAgIHZvaWQgSklU
X1NUVUIgY3RpX29wX3RlYXJfb2ZmX2FyZ3VtZW50cyhTVFVCX0FSR1NfREVDTEFSQVRJT04pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXgg
ZDFhMjU1YzI2ODNiNTM2NjgxMDlmYzQzZDMxMjgxM2Y4M2ZlODE3Mi4uMmI1MTYxZjdiODVjOGNj
MGM2ZWVlNzVjOTM4YzJkYWM4N2FlZGI0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSAiSklU
LmgiCiAjaW5jbHVkZSAiSklURHJpdmVyLmgiCiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgiCi0j
aW5jbHVkZSAiSlNCeXRlQXJyYXkuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdEZ1bmN0aW9u
cy5oIgogI2luY2x1ZGUgIkpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU1N0
YXRpY1Njb3BlT2JqZWN0LmgiCkBAIC05NTcsOSArOTU2LDYgQEAgaW5saW5lIEpTVmFsdWUgZ2V0
QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgSlNWYWx1ZSBzdWJzY3Jp
cHQpCiAgICAgICAgIGlmIChpc0pTU3RyaW5nKGJhc2VWYWx1ZSkgJiYgYXNTdHJpbmcoYmFzZVZh
bHVlKS0+Y2FuR2V0SW5kZXgoaSkpCiAgICAgICAgICAgICByZXR1cm4gYXNTdHJpbmcoYmFzZVZh
bHVlKS0+Z2V0SW5kZXgoZXhlYywgaSk7CiAgICAgICAgIAotICAgICAgICBpZiAoaXNKU0J5dGVB
cnJheShiYXNlVmFsdWUpICYmIGFzQnl0ZUFycmF5KGJhc2VWYWx1ZSktPmNhbkFjY2Vzc0luZGV4
KGkpKQotICAgICAgICAgICAgcmV0dXJuIGFzQnl0ZUFycmF5KGJhc2VWYWx1ZSktPmdldEluZGV4
KGV4ZWMsIGkpOwotICAgICAgICAKICAgICAgICAgcmV0dXJuIGJhc2VWYWx1ZS5nZXQoZXhlYywg
aSk7CiAgICAgfQogICAgIApAQCAtMTAxMSwxOCArMTAwNyw2IEBAIExMSU5UX1NMT1dfUEFUSF9E
RUNMKHNsb3dfcGF0aF9wdXRfYnlfdmFsKQogICAgICAgICAgICAgICAgIEpTQXJyYXk6OnB1dEJ5
SW5kZXgoanNBcnJheSwgZXhlYywgaSwgdmFsdWUsIGV4ZWMtPmNvZGVCbG9jaygpLT5pc1N0cmlj
dE1vZGUoKSk7CiAgICAgICAgICAgICBMTElOVF9FTkQoKTsKICAgICAgICAgfQotICAgICAgICBp
ZiAoaXNKU0J5dGVBcnJheShiYXNlVmFsdWUpCi0gICAgICAgICAgICAmJiBhc0J5dGVBcnJheShi
YXNlVmFsdWUpLT5jYW5BY2Nlc3NJbmRleChpKSkgewotICAgICAgICAgICAgSlNCeXRlQXJyYXkq
IGpzQnl0ZUFycmF5ID0gYXNCeXRlQXJyYXkoYmFzZVZhbHVlKTsKLSAgICAgICAgICAgIGlmICh2
YWx1ZS5pc0ludDMyKCkpIHsKLSAgICAgICAgICAgICAgICBqc0J5dGVBcnJheS0+c2V0SW5kZXgo
aSwgdmFsdWUuYXNJbnQzMigpKTsKLSAgICAgICAgICAgICAgICBMTElOVF9FTkQoKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIGlmICh2YWx1ZS5pc051bWJlcigpKSB7Ci0gICAgICAgICAg
ICAgICAganNCeXRlQXJyYXktPnNldEluZGV4KGksIHZhbHVlLmFzTnVtYmVyKCkpOwotICAgICAg
ICAgICAgICAgIExMSU5UX0VORCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9CiAgICAgICAg
IGJhc2VWYWx1ZS5wdXRCeUluZGV4KGV4ZWMsIGksIHZhbHVlLCBleGVjLT5jb2RlQmxvY2soKS0+
aXNTdHJpY3RNb2RlKCkpOwogICAgICAgICBMTElOVF9FTkQoKTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDM5ZWE0ZDBiOTAxNjI5MWFkNjM1N2Q2ZDJmODdkMjQ0NjA1ZjllYmQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTIw
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmlnaHRz
IFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNCeXRlQXJyYXkuaCIKLQotI2luY2x1ZGUg
IkpTR2xvYmFsT2JqZWN0LmgiCi0jaW5jbHVkZSAiUHJvcGVydHlOYW1lQXJyYXkuaCIKLQotdXNp
bmcgbmFtZXNwYWNlIFdURjsKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLWNvbnN0IENsYXNzSW5mbyBK
U0J5dGVBcnJheTo6c19pbmZvID0geyAiVWludDhDbGFtcGVkQXJyYXkiLCAmQmFzZTo6c19pbmZv
LCAwLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTQnl0ZUFycmF5KSB9OwotCi1KU0J5dGVBcnJh
eTo6SlNCeXRlQXJyYXkoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQnl0
ZUFycmF5KiBzdG9yYWdlKQotICAgIDogSlNOb25GaW5hbE9iamVjdChleGVjLT5nbG9iYWxEYXRh
KCksIHN0cnVjdHVyZSkKLSAgICAsIG1fc3RvcmFnZShzdG9yYWdlKQotewotfQotICAgICAgICAK
LUpTQnl0ZUFycmF5Ojp+SlNCeXRlQXJyYXkoKQotewotICAgIEFTU0VSVChqc0Nhc3Q8SlNCeXRl
QXJyYXkqPih0aGlzKSk7Ci19Ci0KLXZvaWQgSlNCeXRlQXJyYXk6OmRlc3Ryb3koSlNDZWxsKiBj
ZWxsKQotewotICAgIGpzQ2FzdDxKU0J5dGVBcnJheSo+KGNlbGwpLT5KU0J5dGVBcnJheTo6fkpT
Qnl0ZUFycmF5KCk7Ci19Ci0KLVN0cnVjdHVyZSogSlNCeXRlQXJyYXk6OmNyZWF0ZVN0cnVjdHVy
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBKU0M6OkNsYXNzSW5mbyogY2xhc3NJbmZvKQotewot
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBjbGFzc0luZm8p
OwotfQotCi1ib29sIEpTQnl0ZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxs
LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQotewotICAgIEpTQnl0ZUFycmF5KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpT
Qnl0ZUFycmF5Kj4oY2VsbCk7Ci0gICAgYm9vbCBvazsKLSAgICB1bnNpZ25lZCBpbmRleCA9IHBy
b3BlcnR5TmFtZS50b1VJbnQzMihvayk7Ci0gICAgaWYgKG9rICYmIHRoaXNPYmplY3QtPmNhbkFj
Y2Vzc0luZGV4KGluZGV4KSkgewotICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QtPmdl
dEluZGV4KGV4ZWMsIGluZGV4KSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICBy
ZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOwotfQotCi1ib29sIEpTQnl0ZUFycmF5OjpnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKLXsKLSAg
ICBKU0J5dGVBcnJheSogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0J5dGVBcnJheSo+KG9iamVjdCk7
Ci0gICAgYm9vbCBvazsKLSAgICB1bnNpZ25lZCBpbmRleCA9IHByb3BlcnR5TmFtZS50b1VJbnQz
Mihvayk7Ci0gICAgaWYgKG9rICYmIHRoaXNPYmplY3QtPmNhbkFjY2Vzc0luZGV4KGluZGV4KSkg
ewotICAgICAgICBkZXNjcmlwdG9yLnNldERlc2NyaXB0b3IodGhpc09iamVjdC0+Z2V0SW5kZXgo
ZXhlYywgaW5kZXgpLCBEb250RGVsZXRlKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQot
ICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXNPYmplY3Qs
IGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7Ci19Ci0KLWJvb2wgSlNCeXRlQXJyYXk6
OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMs
IHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQotewotICAgIEpTQnl0
ZUFycmF5KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTQnl0ZUFycmF5Kj4oY2VsbCk7Ci0gICAgaWYg
KHRoaXNPYmplY3QtPmNhbkFjY2Vzc0luZGV4KHByb3BlcnR5TmFtZSkpIHsKLSAgICAgICAgc2xv
dC5zZXRWYWx1ZSh0aGlzT2JqZWN0LT5nZXRJbmRleChleGVjLCBwcm9wZXJ0eU5hbWUpKTsKLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJv
cGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgcHJvcGVy
dHlOYW1lKSwgc2xvdCk7Ci19Ci0KLXZvaWQgSlNCeXRlQXJyYXk6OnB1dChKU0NlbGwqIGNlbGws
IEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgSlNCeXRlQXJyYXkqIHRoaXNP
YmplY3QgPSBqc0Nhc3Q8SlNCeXRlQXJyYXkqPihjZWxsKTsKLSAgICBib29sIG9rOwotICAgIHVu
c2lnbmVkIGluZGV4ID0gcHJvcGVydHlOYW1lLnRvVUludDMyKG9rKTsKLSAgICBpZiAob2spIHsK
LSAgICAgICAgdGhpc09iamVjdC0+c2V0SW5kZXgoZXhlYywgaW5kZXgsIHZhbHVlKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLSAgICBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotCi12b2lkIEpTQnl0ZUFycmF5OjpwdXRCeUlu
ZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdmFsdWUsIGJvb2wpCi17Ci0gICAganNDYXN0PEpTQnl0ZUFycmF5Kj4oY2VsbCkt
PnNldEluZGV4KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUpOwotfQotCi12b2lkIEpTQnl0ZUFy
cmF5OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhl
YywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2Rl
KQotewotICAgIEpTQnl0ZUFycmF5KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTQnl0ZUFycmF5Kj4o
b2JqZWN0KTsKLSAgICB1bnNpZ25lZCBsZW5ndGggPSB0aGlzT2JqZWN0LT5tX3N0b3JhZ2UtPmxl
bmd0aCgpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKLSAgICAg
ICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpKSk7Ci0gICAgSlNP
YmplY3Q6OmdldE93blByb3BlcnR5TmFtZXModGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1l
cywgbW9kZSk7Ci19Ci0KLX0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNCeXRlQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0
ZUFycmF5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4NzM2Njc4MDNiMjU3NWRi
YjBhNGNmYzUzNTUyMTU5ZTk5ZGQxMzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXku
aAorKysgL2Rldi9udWxsCkBAIC0xLDEzMyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBKU0J5dGVBcnJheV9oCi0jZGVmaW5lIEpT
Qnl0ZUFycmF5X2gKLQotI2luY2x1ZGUgIkpTT2JqZWN0LmgiCi0KLSNpbmNsdWRlIDx3dGYvQnl0
ZUFycmF5Lmg+Ci0KLW5hbWVzcGFjZSBKU0MgewotCi0gICAgY2xhc3MgSlNCeXRlQXJyYXkgOiBw
dWJsaWMgSlNOb25GaW5hbE9iamVjdCB7Ci0gICAgICAgIGZyaWVuZCBjbGFzcyBKU0dsb2JhbERh
dGE7Ci0gICAgcHVibGljOgotICAgICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsK
LQotICAgICAgICBib29sIGNhbkFjY2Vzc0luZGV4KHVuc2lnbmVkIGkpIHsgcmV0dXJuIGkgPCBt
X3N0b3JhZ2UtPmxlbmd0aCgpOyB9Ci0gICAgICAgIEpTVmFsdWUgZ2V0SW5kZXgoRXhlY1N0YXRl
KiwgdW5zaWduZWQgaSkKLSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKGNhbkFjY2Vzc0lu
ZGV4KGkpKTsKLSAgICAgICAgICAgIHJldHVybiBqc051bWJlcihtX3N0b3JhZ2UtPmRhdGEoKVtp
XSk7Ci0gICAgICAgIH0KLQotICAgICAgICB2b2lkIHNldEluZGV4KHVuc2lnbmVkIGksIGludCB2
YWx1ZSkKLSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKGNhbkFjY2Vzc0luZGV4KGkpKTsK
LSAgICAgICAgICAgIGlmICh2YWx1ZSAmIH4weEZGKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHZh
bHVlIDwgMCkKLSAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAwOwotICAgICAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAyNTU7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBtX3N0b3JhZ2UtPmRhdGEoKVtpXSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGNo
YXI+KHZhbHVlKTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgdm9pZCBzZXRJbmRleCh1
bnNpZ25lZCBpLCBkb3VibGUgdmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChj
YW5BY2Nlc3NJbmRleChpKSk7Ci0gICAgICAgICAgICBpZiAoISh2YWx1ZSA+IDApKSAvLyBDbGFt
cCBOYU4gdG8gMAotICAgICAgICAgICAgICAgIHZhbHVlID0gMDsKLSAgICAgICAgICAgIGVsc2Ug
aWYgKHZhbHVlID4gMjU1KQotICAgICAgICAgICAgICAgIHZhbHVlID0gMjU1OwotICAgICAgICAg
ICAgbV9zdG9yYWdlLT5kYXRhKClbaV0gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPih2YWx1
ZSArIDAuNSk7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHZvaWQgc2V0SW5kZXgoRXhl
Y1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBKU1ZhbHVlIHZhbHVlKQotICAgICAgICB7Ci0gICAg
ICAgICAgICBkb3VibGUgYnl0ZVZhbHVlID0gdmFsdWUudG9OdW1iZXIoZXhlYyk7Ci0gICAgICAg
ICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgaWYgKGNhbkFjY2Vzc0luZGV4KGkpKQotICAgICAgICAgICAgICAgIHNldElu
ZGV4KGksIGJ5dGVWYWx1ZSk7Ci0gICAgICAgIH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIEpT
X0VYUE9SVF9QUklWQVRFIEpTQnl0ZUFycmF5KEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSosIEJ5dGVB
cnJheSogc3RvcmFnZSk7Ci0gICAgICAgIAotICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIEpT
Qnl0ZUFycmF5KiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
Qnl0ZUFycmF5KiBzdG9yYWdlKQotICAgICAgICB7Ci0gICAgICAgICAgICBKU0J5dGVBcnJheSog
YXJyYXkgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxKU0J5dGVBcnJheT4oKmV4ZWMtPmhl
YXAoKSkpIEpTQnl0ZUFycmF5KGV4ZWMsIHN0cnVjdHVyZSwgc3RvcmFnZSk7Ci0gICAgICAgICAg
ICBhcnJheS0+ZmluaXNoQ3JlYXRpb24oZXhlYyk7Ci0gICAgICAgICAgICByZXR1cm4gYXJyYXk7
Ci0gICAgICAgIH0KLQotICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgU3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVl
IHByb3RvdHlwZSwgY29uc3QgSlNDOjpDbGFzc0luZm8qID0gJnNfaW5mbyk7Ci0KLSAgICAgICAg
SlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlND
ZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0
YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwotICAgICAg
ICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
SlNPYmplY3QqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlw
dG9yJik7Ci0gICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIHB1dChKU0M6OkpT
Q2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgc3RhdGljIHZvaWQgcHV0QnlJbmRleChKU0M6OkpTQ2VsbCosIEpTQzo6RXhl
Y1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIGJvb2wgc2hvdWxk
VGhyb3cpOwotCi0gICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIGdldE93blBy
b3BlcnR5TmFtZXMoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0
eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSk7Ci0KLSAgICAgICAgc3RhdGljIEpTX0VYUE9S
VERBVEEgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKLSAgICAgICAgCi0gICAgICAgIHNpemVfdCBs
ZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX3N0b3JhZ2UtPmxlbmd0aCgpOyB9Ci0KLSAgICAgICAg
V1RGOjpCeXRlQXJyYXkqIHN0b3JhZ2UoKSBjb25zdCB7IHJldHVybiBtX3N0b3JhZ2UuZ2V0KCk7
IH0KLQotICAgICAgICB+SlNCeXRlQXJyYXkoKTsKLSAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUg
c3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKLQotICAgICAgICBzdGF0aWMgc2l6ZV90IG9m
ZnNldE9mU3RvcmFnZSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU0J5dGVBcnJheSwgbV9z
dG9yYWdlKTsgfQotCi0gICAgcHJvdGVjdGVkOgotICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlk
ZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwotCi0gICAgICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjKQotICAgICAgICB7Ci0gICAgICAg
ICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpOwotICAgICAgICAg
ICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+Z2xvYmFsRGF0YSgpLnByb3Bl
cnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIobV9zdG9yYWdlLT5sZW5ndGgoKSksIFJlYWRPbmx5
IHwgRG9udERlbGV0ZSk7Ci0gICAgICAgIH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZlB0
cjxXVEY6OkJ5dGVBcnJheT4gbV9zdG9yYWdlOwotICAgIH07Ci0gICAgCi0gICAgSlNCeXRlQXJy
YXkqIGFzQnl0ZUFycmF5KEpTVmFsdWUgdmFsdWUpOwotICAgIGlubGluZSBKU0J5dGVBcnJheSog
YXNCeXRlQXJyYXkoSlNWYWx1ZSB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBqc0Nhc3Q8
SlNCeXRlQXJyYXkqPih2YWx1ZS5hc0NlbGwoKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wg
aXNKU0J5dGVBcnJheShKU1ZhbHVlIHYpIHsgcmV0dXJuIHYuaXNDZWxsKCkgJiYgdi5hc0NlbGwo
KS0+Y2xhc3NJbmZvKCkgPT0gJkpTQnl0ZUFycmF5OjpzX2luZm87IH0KLQotfSAvLyBuYW1lc3Bh
Y2UgSlNDCi0KLSNlbmRpZiAvLyBKU0J5dGVBcnJheV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcAppbmRleCA5MTc1NmQ2NzA5YzM4NTA0YjE0NjJl
MWMwZTk0ZGIzMGU0YWEyZWZiLi5kYTZiYmI1NDEzZWU4NTU0NzhjMDg5NDJmZTQyYTk4ZTdhNDhi
NTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERh
dGEuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5j
cHAKQEAgLTQwLDcgKzQwLDYgQEAKICNpbmNsdWRlICJKU0FjdGl2YXRpb24uaCIKICNpbmNsdWRl
ICJKU0FQSVZhbHVlV3JhcHBlci5oIgogI2luY2x1ZGUgIkpTQXJyYXkuaCIKLSNpbmNsdWRlICJK
U0J5dGVBcnJheS5oIgogI2luY2x1ZGUgIkpTQ2xhc3NSZWYuaCIKICNpbmNsdWRlICJKU0Z1bmN0
aW9uLmgiCiAjaW5jbHVkZSAiSlNMb2NrLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0dOVW1h
a2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggOGRk
YjMwMjljNjVhM2MzYTNiMTJlMGJlNjhhNGEwNGE5ZGZkN2I1Mi4uYTE2ODg0YTFjMTBlNGJkMDIx
ZjBhYWU2ZThjNzI2MWY2OWJmYjhkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9HTlVtYWtlZmls
ZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTksOCAr
MTksNiBAQCB3dGZfc291cmNlcyArPSBcCiAgICAgU291cmNlL1dURi93dGYvQmxvb21GaWx0ZXIu
aCBcCiAgICAgU291cmNlL1dURi93dGYvQm91bmRzQ2hlY2tlZFBvaW50ZXIuaCBcCiAgICAgU291
cmNlL1dURi93dGYvQnVtcFBvaW50ZXJBbGxvY2F0b3IuaCBcCi0gICAgU291cmNlL1dURi93dGYv
Qnl0ZUFycmF5LmNwcCBcCi0gICAgU291cmNlL1dURi93dGYvQnl0ZUFycmF5LmggXAogICAgIFNv
dXJjZS9XVEYvd3RmL0NoZWNrZWRBcml0aG1ldGljLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL0No
ZWNrZWRCb29sZWFuLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL0NvbXBpbGVyLmggXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi9XVEYuZ3lwaSBiL1NvdXJjZS9XVEYvV1RGLmd5cGkKaW5kZXggYTU4
Y2JiZTQyNWI3ZGFjYjU5ODdmYzUwNDAzZTY2YzA2ZmY1NDU1OC4uOTQyODU2ZTRkNzQ1MWE3ODVi
NWUxOTQzNGQ1YWEyOWRkM2E2Y2JhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYuZ3lwaQor
KysgYi9Tb3VyY2UvV1RGL1dURi5neXBpCkBAIC0xMyw3ICsxMyw2IEBACiAgICAgICAgICAgICAn
d3RmL0Jsb2NrU3RhY2suaCcsCiAgICAgICAgICAgICAnd3RmL0Jsb29tRmlsdGVyLmgnLAogICAg
ICAgICAgICAgJ3d0Zi9CdW1wUG9pbnRlckFsbG9jYXRvci5oJywKLSAgICAgICAgICAgICd3dGYv
Qnl0ZUFycmF5LmgnLAogICAgICAgICAgICAgJ3d0Zi9DaGVja2VkQXJpdGhtZXRpYy5oJywKICAg
ICAgICAgICAgICd3dGYvQ2hlY2tlZEJvb2xlYW4uaCcsCiAgICAgICAgICAgICAnd3RmL0NvbXBp
bGVyLmgnLApAQCAtMTMyLDcgKzEzMSw2IEBACiAgICAgICAgICAgICAnd3RmL0FycmF5QnVmZmVy
Vmlldy5oJywKICAgICAgICAgICAgICd3dGYvQXNzZXJ0aW9ucy5jcHAnLAogICAgICAgICAgICAg
J3d0Zi9CaXRWZWN0b3IuY3BwJywKLSAgICAgICAgICAgICd3dGYvQnl0ZUFycmF5LmNwcCcsCiAg
ICAgICAgICAgICAnd3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCcsCiAgICAg
ICAgICAgICAnd3RmL0N1cnJlbnRUaW1lLmNwcCcsCiAgICAgICAgICAgICAnd3RmL0RhdGFMb2cu
Y3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnBybyBiL1NvdXJjZS9XVEYvV1RGLnBy
bwppbmRleCA5Y2E1MzNhYWFkZGUwMTA3YzU5ZTEzYmE4MmYxODRiYWVhMzZlN2M0Li4yYmQ5MGI2
MmEwNDRjYzgyNzE3ZmE2OWExZjU0ODA2YjYyZmRiYjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L1dURi5wcm8KKysrIGIvU291cmNlL1dURi9XVEYucHJvCkBAIC0yNiw3ICsyNiw2IEBAIEhFQURF
UlMgKz0gXAogICAgIEJsb29tRmlsdGVyLmggXAogICAgIEJvdW5kc0NoZWNrZWRQb2ludGVyLmgg
XAogICAgIEJ1bXBQb2ludGVyQWxsb2NhdG9yLmggXAotICAgIEJ5dGVBcnJheS5oIFwKICAgICBD
aGVja2VkQXJpdGhtZXRpYy5oIFwKICAgICBDb21waWxlci5oIFwKICAgICBDcnlwdG9ncmFwaGlj
YWxseVJhbmRvbU51bWJlci5oIFwKQEAgLTE2OCw3ICsxNjcsNiBAQCBTT1VSQ0VTICs9IFwKICAg
ICBBcnJheUJ1ZmZlclZpZXcuY3BwIFwKICAgICBBc3NlcnRpb25zLmNwcCBcCiAgICAgQml0VmVj
dG9yLmNwcCBcCi0gICAgQnl0ZUFycmF5LmNwcCBcCiAgICAgQ3J5cHRvZ3JhcGhpY2FsbHlSYW5k
b21OdW1iZXIuY3BwIFwKICAgICBDdXJyZW50VGltZS5jcHAgXAogICAgIERhdGVNYXRoLmNwcCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvaiBiL1NvdXJjZS9X
VEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCmluZGV4IGVkYWU2NmNkNmMxNGI2ODI5YjI1ZDVlODBi
NzIzOTI1MTViZjQ5MWUuLmJmNzg0MTRiZDk2OWNhMjllNDdjMjcyZTA3MmJjNjcxNTQ5ODVmM2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCisrKyBiL1NvdXJj
ZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCkBAIC02MjksMTQgKzYyOSw2IEBACiAJCQk+CiAJ
CTwvRmlsZT4KIAkJPEZpbGUKLQkJCVJlbGF0aXZlUGF0aD0iLi5cd3RmXEJ5dGVBcnJheS5jcHAi
Ci0JCQk+Ci0JCTwvRmlsZT4KLQkJPEZpbGUKLQkJCVJlbGF0aXZlUGF0aD0iLi5cd3RmXEJ5dGVB
cnJheS5oIgotCQkJPgotCQk8L0ZpbGU+Ci0JCTxGaWxlCiAJCQlSZWxhdGl2ZVBhdGg9Ii4uXHd0
ZlxDaGVja2VkQXJpdGhtZXRpYy5oIgogCQkJPgogCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2OTlkOGE0NzlmODE5NTE2OGVlOTNiZjA2NWUw
YjE5N2EyMDVkYTQxLi5iNTVkZGQyNTM3ODZmNGQ3MmUxYTQ1YWYxNzg3NjFiMzA5ZWQzOGEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2LDggKzI2LDYg
QEAKIAkJQThBNDczOEYxNTFBODI1QjAwNDEyM0ZGIC8qIEJsb29tRmlsdGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzI2NTE1MUE4MjVBMDA0
MTIzRkYgLyogQmxvb21GaWx0ZXIuaCAqLzsgfTsKIAkJQThBNDczOTAxNTFBODI1QjAwNDEyM0ZG
IC8qIEJvdW5kc0NoZWNrZWRQb2ludGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzI2NjE1MUE4MjVBMDA0MTIzRkYgLyogQm91bmRzQ2hlY2tl
ZFBvaW50ZXIuaCAqLzsgfTsKIAkJQThBNDczOTExNTFBODI1QjAwNDEyM0ZGIC8qIEJ1bXBQb2lu
dGVyQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBOEE0NzI2NzE1MUE4MjVBMDA0MTIzRkYgLyogQnVtcFBvaW50ZXJBbGxvY2F0b3IuaCAq
LzsgfTsKLQkJQThBNDczOTIxNTFBODI1QjAwNDEyM0ZGIC8qIEJ5dGVBcnJheS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzI2ODE1MUE4MjVB
MDA0MTIzRkYgLyogQnl0ZUFycmF5LmNwcCAqLzsgfTsKLQkJQThBNDczOTMxNTFBODI1QjAwNDEy
M0ZGIC8qIEJ5dGVBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQThBNDcyNjkxNTFBODI1QTAwNDEyM0ZGIC8qIEJ5dGVBcnJheS5oICovOyB9Owog
CQlBOEE0NzM5NDE1MUE4MjVCMDA0MTIzRkYgLyogQ2hlY2tlZEFyaXRobWV0aWMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjZBMTUxQTgyNUEw
MDQxMjNGRiAvKiBDaGVja2VkQXJpdGhtZXRpYy5oICovOyB9OwogCQlBOEE0NzM5NTE1MUE4MjVC
MDA0MTIzRkYgLyogQ2hlY2tlZEJvb2xlYW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjZCMTUxQTgyNUEwMDQxMjNGRiAvKiBDaGVja2VkQm9v
bGVhbi5oICovOyB9OwogCQlBOEE0NzM5ODE1MUE4MjVCMDA0MTIzRkYgLyogQ29tcGlsZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjcwMTUx
QTgyNUEwMDQxMjNGRiAvKiBDb21waWxlci5oICovOyB9OwpAQCAtMjY3LDggKzI2NSw2IEBACiAJ
CUE4QTQ3MjY1MTUxQTgyNUEwMDQxMjNGRiAvKiBCbG9vbUZpbHRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBCbG9vbUZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBOEE0NzI2NjE1MUE4MjVBMDA0MTIzRkYgLyogQm91bmRzQ2hlY2tlZFBvaW50ZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQm91bmRzQ2hlY2tlZFBvaW50ZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcyNjcxNTFBODI1QTAwNDEyM0ZG
IC8qIEJ1bXBQb2ludGVyQWxsb2NhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEJ1bXBQb2ludGVyQWxsb2NhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUE4QTQ3MjY4MTUxQTgyNUEwMDQxMjNGRiAvKiBCeXRlQXJyYXkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQnl0ZUFycmF5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQThBNDcyNjkxNTFBODI1QTAwNDEyM0ZGIC8qIEJ5dGVBcnJheS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCeXRlQXJyYXkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQThBNDcyNkExNTFBODI1QTAwNDEyM0ZGIC8qIENoZWNrZWRBcml0aG1l
dGljLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoZWNrZWRBcml0aG1ldGlj
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MjZCMTUxQTgyNUEwMDQxMjNG
RiAvKiBDaGVja2VkQm9vbGVhbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
aGVja2VkQm9vbGVhbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzI3MDE1
MUE4MjVBMDA0MTIzRkYgLyogQ29tcGlsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ29tcGlsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU1Niw4ICs1
NTIsNiBAQAogCQkJCUE4QTQ3MjY1MTUxQTgyNUEwMDQxMjNGRiAvKiBCbG9vbUZpbHRlci5oICov
LAogCQkJCUE4QTQ3MjY2MTUxQTgyNUEwMDQxMjNGRiAvKiBCb3VuZHNDaGVja2VkUG9pbnRlci5o
ICovLAogCQkJCUE4QTQ3MjY3MTUxQTgyNUEwMDQxMjNGRiAvKiBCdW1wUG9pbnRlckFsbG9jYXRv
ci5oICovLAotCQkJCUE4QTQ3MjY4MTUxQTgyNUEwMDQxMjNGRiAvKiBCeXRlQXJyYXkuY3BwICov
LAotCQkJCUE4QTQ3MjY5MTUxQTgyNUEwMDQxMjNGRiAvKiBCeXRlQXJyYXkuaCAqLywKIAkJCQlB
OEE0NzI2QTE1MUE4MjVBMDA0MTIzRkYgLyogQ2hlY2tlZEFyaXRobWV0aWMuaCAqLywKIAkJCQlB
OEE0NzI2QjE1MUE4MjVBMDA0MTIzRkYgLyogQ2hlY2tlZEJvb2xlYW4uaCAqLywKIAkJCQlBOEE0
NzI3MDE1MUE4MjVBMDA0MTIzRkYgLyogQ29tcGlsZXIuaCAqLywKQEAgLTg3MSw3ICs4NjUsNiBA
QAogCQkJCUE4QTQ3MzhGMTUxQTgyNUIwMDQxMjNGRiAvKiBCbG9vbUZpbHRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQThBNDczOTAxNTFBODI1QjAwNDEyM0ZGIC8qIEJvdW5kc0NoZWNrZWRQb2lu
dGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzM5MTE1MUE4MjVCMDA0MTIzRkYgLyogQnVt
cFBvaW50ZXJBbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QTQ3MzkzMTUxQTgyNUIw
MDQxMjNGRiAvKiBCeXRlQXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3Mzk0MTUxQTgy
NUIwMDQxMjNGRiAvKiBDaGVja2VkQXJpdGhtZXRpYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThB
NDczOTUxNTFBODI1QjAwNDEyM0ZGIC8qIENoZWNrZWRCb29sZWFuLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBOEE0NzM5ODE1MUE4MjVCMDA0MTIzRkYgLyogQ29tcGlsZXIuaCBpbiBIZWFkZXJzICov
LApAQCAtMTEyMiw3ICsxMTE1LDYgQEAKIAkJCQlBOEE0NzM4MzE1MUE4MjVCMDA0MTIzRkYgLyog
QXJyYXlCdWZmZXJWaWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3Mzg2MTUxQTgyNUIw
MDQxMjNGRiAvKiBBc3NlcnRpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3MzhCMTUx
QTgyNUIwMDQxMjNGRiAvKiBCaXRWZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThBNDcz
OTIxNTFBODI1QjAwNDEyM0ZGIC8qIEJ5dGVBcnJheS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
OEE0NzM5QTE1MUE4MjVCMDA0MTIzRkYgLyogQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczOUMxNTFBODI1QjAwNDEyM0ZGIC8qIEN1cnJl
bnRUaW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3MzlFMTUxQTgyNUIwMDQxMjNGRiAv
KiBEYXRhTG9nLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
Qnl0ZUFycmF5LmNwcCBiL1NvdXJjZS9XVEYvd3RmL0J5dGVBcnJheS5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGRkNDAwYzdmYzE1NmMxNzhkZDhiYmJjMDQzNWIyMzcxMGNiNWYw
MzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dURi93dGYvQnl0ZUFycmF5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiQnl0ZUFycmF5LmgiCi0KLSNpbmNsdWRlICJTdGRMaWJFeHRyYXMu
aCIKLQotbmFtZXNwYWNlIFdURiB7Ci0KLVBhc3NSZWZQdHI8Qnl0ZUFycmF5PiBCeXRlQXJyYXk6
OmNyZWF0ZShzaXplX3Qgc2l6ZSkKLXsKLSAgICBpZiAoc2l6ZSA+IChzdGQ6Om51bWVyaWNfbGlt
aXRzPHNpemVfdD46Om1heCgpIC0gT0JKRUNUX09GRlNFVE9GKEJ5dGVBcnJheSwgbV9kYXRhKSkp
Ci0gICAgICAgIENSQVNIKCk7Ci0KLSAgICB1bnNpZ25lZCBjaGFyKiBidWZmZXIgPSBuZXcgdW5z
aWduZWQgY2hhcltzaXplICsgT0JKRUNUX09GRlNFVE9GKEJ5dGVBcnJheSwgbV9kYXRhKV07Ci0g
ICAgQVNTRVJUKChyZWludGVycHJldF9jYXN0PHNpemVfdD4oYnVmZmVyKSAmIDMpID09IDApOwot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgKE5vdE51bGwsIGJ1ZmZlcikgQnl0ZUFycmF5KHNpemUp
KTsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQnl0ZUFycmF5LmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9CeXRlQXJyYXkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjY4
ZDAzMmZkMDBiOGRjN2VhOGExYjVkN2ZkZDgzMDhjNzI1ZjE2ZC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9CeXRlQXJyYXkuaAor
KysgL2Rldi9udWxsCkBAIC0xLDExMCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5
IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBCeXRlQXJyYXlfaAotI2RlZmluZSBCeXRlQXJy
YXlfaAotCi0jaW5jbHVkZSA8bGltaXRzLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
LSNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgot
I2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KLQotbmFtZXNwYWNlIFdURiB7Ci0gICAgY2xh
c3MgQnl0ZUFycmF5IDogcHVibGljIFJlZkNvdW50ZWRCYXNlIHsKLSAgICBwdWJsaWM6Ci0gICAg
ICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQotCi0gICAgICAg
IHZvaWQgc2V0KHVuc2lnbmVkIGluZGV4LCBkb3VibGUgdmFsdWUpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIGlmIChpbmRleCA+PSBtX3NpemUpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAgICAgaWYgKCEodmFsdWUgPiAwKSkgLy8gQ2xhbXAgTmFOIHRvIDAKLSAgICAgICAgICAg
ICAgICB2YWx1ZSA9IDA7Ci0gICAgICAgICAgICBlbHNlIGlmICh2YWx1ZSA+IDI1NSkKLSAgICAg
ICAgICAgICAgICB2YWx1ZSA9IDI1NTsKLSAgICAgICAgICAgIG1fZGF0YVtpbmRleF0gPSBzdGF0
aWNfY2FzdDx1bnNpZ25lZCBjaGFyPih2YWx1ZSArIDAuNSk7Ci0gICAgICAgIH0KLQotICAgICAg
ICB2b2lkIHNldCh1bnNpZ25lZCBpbmRleCwgdW5zaWduZWQgY2hhciB2YWx1ZSkKLSAgICAgICAg
ewotICAgICAgICAgICAgaWYgKGluZGV4ID49IG1fc2l6ZSkKLSAgICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICAgICBtX2RhdGFbaW5kZXhdID0gdmFsdWU7Ci0gICAgICAgIH0KLQotICAg
ICAgICBib29sIGdldCh1bnNpZ25lZCBpbmRleCwgdW5zaWduZWQgY2hhciYgcmVzdWx0KSBjb25z
dAotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoaW5kZXggPj0gbV9zaXplKQotICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIHJlc3VsdCA9IG1fZGF0YVtpbmRleF07
Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHVuc2lnbmVk
IGNoYXIgZ2V0KHVuc2lnbmVkIGluZGV4KSBjb25zdAotICAgICAgICB7Ci0gICAgICAgICAgICBB
U1NFUlQoaW5kZXggPCBtX3NpemUpOwotICAgICAgICAgICAgcmV0dXJuIG1fZGF0YVtpbmRleF07
Ci0gICAgICAgIH0KLQotICAgICAgICB1bnNpZ25lZCBjaGFyKiBkYXRhKCkgeyByZXR1cm4gbV9k
YXRhOyB9Ci0KLSAgICAgICAgdm9pZCBjbGVhcigpIHsgbWVtc2V0KG1fZGF0YSwgMCwgbV9zaXpl
KTsgfQotCi0gICAgICAgIHZvaWQgZGVyZWYoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAo
ZGVyZWZCYXNlKCkpIHsKLSAgICAgICAgICAgICAgICAvLyBXZSBhbGxvY2F0ZWQgd2l0aCBuZXcg
dW5zaWduZWQgY2hhcltdIGluIGNyZWF0ZSgpLAotICAgICAgICAgICAgICAgIC8vIGFuZCB0aGVu
IHVzZWQgcGxhY2VtZW50IG5ldyB0byBjb25zdHJ1Y3QgdGhlIG9iamVjdC4KLSAgICAgICAgICAg
ICAgICB0aGlzLT5+Qnl0ZUFycmF5KCk7Ci0gICAgICAgICAgICAgICAgZGVsZXRlW10gcmVpbnRl
cnByZXRfY2FzdDx1bnNpZ25lZCBjaGFyKj4odGhpcyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0KLQotICAgICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFBhc3NSZWZQdHI8Qnl0ZUFy
cmF5PiBjcmVhdGUoc2l6ZV90IHNpemUpOwotCi0gICAgICAgIHN0YXRpYyBzaXplX3Qgb2Zmc2V0
T2ZTaXplKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEJ5dGVBcnJheSwgbV9zaXplKTsgfQot
ICAgICAgICBzdGF0aWMgc2l6ZV90IG9mZnNldE9mRGF0YSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZT
RVRPRihCeXRlQXJyYXksIG1fZGF0YSk7IH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIEJ5dGVB
cnJheShzaXplX3Qgc2l6ZSkKLSAgICAgICAgICAgIDogbV9zaXplKHNpemUpCi0gICAgICAgIHsK
LSAgICAgICAgfQotICAgICAgICBzaXplX3QgbV9zaXplOwotLy8gTVNWQyBjYW4ndCBoYW5kbGUg
Y29ycmVjdGx5IHVuc2l6ZWQgYXJyYXkuCi0vLyB3YXJuaW5nIEM0MjAwOiBub25zdGFuZGFyZCBl
eHRlbnNpb24gdXNlZCA6IHplcm8tc2l6ZWQgYXJyYXkgaW4gc3RydWN0L3VuaW9uCi0vLyBDYW5u
b3QgZ2VuZXJhdGUgY29weS1jdG9yIG9yIGNvcHktYXNzaWdubWVudCBvcGVyYXRvciB3aGVuIFVE
VCBjb250YWlucyBhIHplcm8tc2l6ZWQgYXJyYXkKLSNpZiAoQ09NUElMRVIoTVNWQykgIHx8IENP
TVBJTEVSKFNVTkNDKSkgJiYgIUNPTVBJTEVSKElOVEVMKQotICAgICAgICB1bnNpZ25lZCBjaGFy
IG1fZGF0YVtJTlRfTUFYXTsKLSNlbHNlCi0gICAgICAgIHVuc2lnbmVkIGNoYXIgbV9kYXRhW107
Ci0jZW5kaWYKLSAgICB9OwotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLXVzaW5nIFdURjo6Qnl0ZUFy
cmF5OwotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggMTU5YzNhMmYyZGY0YTA5NzNj
MWMwM2MzMTU5ZGU3Y2I0Y2M2ZDMyNi4uZTE4MDk0ZmE1ZGMwNjU1N2VhOWQ2ZmE4MTc1ODQyZjk1
ZDFmOTQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTksNyArOSw2IEBAIFNFVChXVEZfSEVB
REVSUwogICAgIEJpdG1hcC5oCiAgICAgQm91bmRzQ2hlY2tlZFBvaW50ZXIuaAogICAgIEJ1bXBQ
b2ludGVyQWxsb2NhdG9yLmgKLSAgICBCeXRlQXJyYXkuaAogICAgIENvbXBpbGVyLmgKICAgICBD
b21wbGV4LmgKICAgICBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oCkBAIC0xMzYsNyAr
MTM1LDYgQEAgU0VUKFdURl9TT1VSQ0VTCiAgICAgQXJyYXlCdWZmZXJWaWV3LmNwcAogICAgIEFz
c2VydGlvbnMuY3BwCiAgICAgQml0VmVjdG9yLmNwcAotICAgIEJ5dGVBcnJheS5jcHAKICAgICBD
cnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAKICAgICBDdXJyZW50VGltZS5jcHAKICAg
ICBEYXRlTWF0aC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZTZjNGVhZmMzNTY0MmRmNTZk
YjgyYjZlM2JhNmZjZDk3ZjY3ZTkxZS4uYTNiMTZiMDJkMzNkODkzOTI5MjNlOWM2NmIyNDEyZWQw
Y2Q1MTZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTg2Myw3ICs4NjMsNiBAQCBTRVQoV2Vi
Q29yZV9TT1VSQ0VTCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzQ29udGV4dEF0dHJpYnV0ZXMuY3Bw
CiAgICAgaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuY3BwCiAgICAgaHRtbC9jYW52YXMvQ2Fu
dmFzUGF0dGVybi5jcHAKLSAgICBodG1sL2NhbnZhcy9DYW52YXNQaXhlbEFycmF5LmNwcAogICAg
IGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3BwCiAgICAgaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1N0eWxl
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCmluZGV4IDc3NzM3ODY1M2E2NTEwNTJiYWQ4
MDgzZTE5NjdlYjEwOTlhNWUyNmMuLjE1YzkxOGNmODljYzU1MzcxNzRmZDQzZWMzZDkzMTIxYzRh
NGQ2MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTQ1NSw3ICs0NTUsNiBAQCBJ
RExfQklORElOR1MgKz0gXAogCiB2OCB7CiAgIElETF9CSU5ESU5HUyArPSBcCi0gICAgJCRQV0Qv
aHRtbC9jYW52YXMvQ2FudmFzUGl4ZWxBcnJheS5pZGwgXAogICAgICQkUFdEL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVudC5pZGwgXAogICAgICQkUFdEL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0LmlkbAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU0J5dGVBcnJheS5oIGIvU291cmNl
L1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU0J5dGVBcnJheS5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZTUxNDBmMTJkNDZlZTA0MzRkYzNlYTYwOTNjMTQ0ZmQw
NTdlNjg4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNCeXRlQXJyYXkuaAorKysg
L2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotI2lmbmRlZiBXZWJDb3JlX0ZXRF9KU0J5dGVBcnJh
eV9oCi0jZGVmaW5lIFdlYkNvcmVfRldEX0pTQnl0ZUFycmF5X2gKLSNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9KU0J5dGVBcnJheS5oPgotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQppbmRleCAwZmVhMzY3MDgyNmE1ZTA2MmM0MTQwYjU0N2I3MjU5YTA5MGNjODMzLi40N2E4NDA4
ZjEwYzQ1MDQyOWVlODhkOTQ5N2NiMWUyZmM2NjhmYjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KQEAgLTIxOTQsOCArMjE5NCw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuaCBcCiAJU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzUGF0dGVybi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1BhdHRlcm4uaCBcCi0JU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzUGl4ZWxBcnJheS5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Bp
eGVsQXJyYXkuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQmxh
Y2tCZXJyeS5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQpp
bmRleCBjNzAyZDJmNDYxMTJkYTJmNjZlYTUzNTZkMWQ4ODE4MTEzNWYzOTQ3Li44OGY2M2U0N2Q4
YTFkNzBkNDA1YTk4ZmNkMmJkZjZmNDQyMmM2YWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1C
bGFja0JlcnJ5LmNtYWtlCkBAIC0zMTEsNyArMzExLDYgQEAgRU5ERk9SRUFDSCAoKQogCiBTRVQo
V2ViQ29yZV9DUFBfSURMX0ZJTEVTCiAgICAgZG9tL0V2ZW50TGlzdGVuZXIuaWRsCi0gICAgaHRt
bC9jYW52YXMvQ2FudmFzUGl4ZWxBcnJheS5pZGwKICAgICAiJHtXZWJDb3JlX0NQUF9JRExfRklM
RVN9IgogKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCAzNzFhOThmYzE5N2M4NWJiM2QxODRkMDUzNDljNjJi
YmZiYTViOTEwLi43ZmNmNTk5MTg4ZTlmYWIzNDM1MGI4ZjM5ZDEzNDg0ZDBlZjUwYjRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKQEAgLTE2NSw3ICsxNjUsNiBAQCB2OCB7CiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOENTU1N0eWxlU2hlZXRDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4Q1NTVmFsdWVDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcCBcCi0gICAgICAgIGJpbmRpbmdzL3Y4
L2N1c3RvbS9WOENhbnZhc1BpeGVsQXJyYXlDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3Mv
djgvY3VzdG9tL1Y4Q2xpcGJvYXJkQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOENvb3JkaW5hdGVzQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEltYWdlRGF0YUN1c3RvbS5jcHAgXApAQCAtODQyLDcgKzg0MSw2IEBAIFNPVVJDRVMgKz0g
XAogICAgIGh0bWwvV2Vla0lucHV0VHlwZS5jcHAgXAogICAgIGh0bWwvY2FudmFzL0NhbnZhc0dy
YWRpZW50LmNwcCBcCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUGF0dGVybi5jcHAgXAotICAgIGh0
bWwvY2FudmFzL0NhbnZhc1BpeGVsQXJyYXkuY3BwIFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0LmNwcCBcCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmNwcCBcCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwIFwKQEAgLTE4NTYs
NyArMTg1NCw2IEBAIEhFQURFUlMgKz0gXAogICAgIGhpc3RvcnkvUGFnZUNhY2hlLmggXAogICAg
IGh0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmggXAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1Bh
dHRlcm4uaCBcCi0gICAgaHRtbC9jYW52YXMvQ2FudmFzUGl4ZWxBcnJheS5oIFwKICAgICBodG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmggXAogICAgIGh0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5oIFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5oIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlIGIvU291cmNlL1dlYkNvcmUv
VXNlVjguY21ha2UKaW5kZXggMjJmOTRmZWE0OTM1MGViYjI4Y2Y2ZTc2MDNhNWUxZThiNDA2YzJh
NC4uZWU0ZTZiOTU5NDAyYTRkZjkyMGM1NGYxNWE5OTFhYTVmMmY3ZDYzZSAxMDA3NTUKLS0tIGEv
U291cmNlL1dlYkNvcmUvVXNlVjguY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvVXNlVjguY21h
a2UKQEAgLTc1LDcgKzc1LDYgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAKICAgICBiaW5k
aW5ncy92OC9jdXN0b20vVjhDU1NTdHlsZVNoZWV0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4
L2N1c3RvbS9WOENTU1ZhbHVlQ3VzdG9tLmNwcAotICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOENh
bnZhc1BpeGVsQXJyYXlDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOENs
aXBib2FyZEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhDb25zb2xlQ3VzdG9t
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGQ5Yjc5MTBkYTJlYWM5ZmVjZTFlMjA4NDJjNGQ4MDFm
ZTdlN2U1MDYuLmM4NDE2MTgwMjA4MWI5YWFhYzM3MTVkNWQ3MWM4MjUyOWY1ZTM2NzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKQEAgLTEwODAsNyArMTA4MCw2IEBACiAgICAgICAgICAgICAnaHRtbC9jYW52
YXMvQXJyYXlCdWZmZXJWaWV3LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvQ2FudmFz
R3JhZGllbnQuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9DYW52YXNQYXR0ZXJuLmlk
bCcsCi0gICAgICAgICAgICAnaHRtbC9jYW52YXMvQ2FudmFzUGl4ZWxBcnJheS5pZGwnLAogICAg
ICAgICAgICAgJ2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuaWRsJywKICAgICAg
ICAgICAgICdodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsJywKICAgICAg
ICAgICAgICdodG1sL2NhbnZhcy9EYXRhVmlldy5pZGwnLApAQCAtMjIyNSw3ICsyMjI0LDYgQEAK
ICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhDU1NTdHlsZURlY2xhcmF0aW9uQ3Vz
dG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTU3R5bGVTaGVl
dEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1ZhbHVl
Q3VzdG9tLmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q2FudmFzUGl4
ZWxBcnJheUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOENsaXBib2FyZEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOENvbnNvbGVDdXN0b20uY3BwJywKQEAgLTU2NDcsOCArNTY0NSw2IEBACiAg
ICAgICAgICAgICAnaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuaCcsCiAgICAgICAgICAgICAn
aHRtbC9jYW52YXMvQ2FudmFzUGF0dGVybi5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFz
L0NhbnZhc1BhdHRlcm4uaCcsCi0gICAgICAgICAgICAnaHRtbC9jYW52YXMvQ2FudmFzUGl4ZWxB
cnJheS5jcHAnLAotICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0NhbnZhc1BpeGVsQXJyYXkuaCcs
CiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHAnLAog
ICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCcsCiAgICAg
ICAgICAgICAnaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCcsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5vcmRlcgppbmRleCBmYjA1YzcwNzg4NzliNmU4ZDllZGUxNmJlN2Y0Y2U5NmY0NDYzYjZm
Li40MWM2ZmU0MmY0OTQ4OTIxZWM0YjQ5MzJmZGQwNDlhYzgzOGVlOTUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
b3JkZXIKQEAgLTkwNjIsOCArOTA2Miw2IEBAIF9fWk5LN1dlYkNvcmUxMUltYWdlQnVmZmVyMjRn
ZXRVbm11bHRpcGxpZWRJbWFnZURhdGFFUktOU183SW50UmVjdEUKIF9fWk5LN1dlYkNvcmUxNUlt
YWdlQnVmZmVyRGF0YTdnZXREYXRhRVJLTlNfN0ludFJlY3RFUktOU183SW50U2l6ZUViYgogX19a
TjdXZWJDb3JlTDIydW5wcmVtdWx0aXRwbHlTY2FubGluZUVQdm0KIF9fWk43V2ViQ29yZUwxNWNv
bnZlcnRTY2FubGluZUVQdm1iCi1fX1pON1dlYkNvcmU5SW1hZ2VEYXRhNmNyZWF0ZUVSS05TXzdJ
bnRTaXplRU4zV1RGMTBQYXNzUmVmUHRySU5TNF85Qnl0ZUFycmF5RUVFCi1fX1pON1dlYkNvcmUx
NkNhbnZhc1BpeGVsQXJyYXk2Y3JlYXRlRU4zV1RGMTBQYXNzUmVmUHRySU5TMV85Qnl0ZUFycmF5
RUVFCiBfX1pON1dlYkNvcmU0dG9KU0VQTjNKU0M5RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xvYmFs
T2JqZWN0RVBOU185SW1hZ2VEYXRhRQogX19aTjdXZWJDb3JlMTNjcmVhdGVXcmFwcGVySU5TXzEx
SlNJbWFnZURhdGFFTlNfOUltYWdlRGF0YUVFRVBOU18xMkpTRE9NV3JhcHBlckVQTjNKU0M5RXhl
Y1N0YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RVBUMF8KIF9fWk43V2ViQ29yZTE1Z2V0RE9N
U3RydWN0dXJlSU5TXzExSlNJbWFnZURhdGFFRUVQTjNKU0M5U3RydWN0dXJlRVBOUzJfOUV4ZWNT
dGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEUKQEAgLTkzMDIsNyArOTMwMCw2IEBAIF9fWk43
V2ViQ29yZTI2SlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQxNWNyZWF0ZUltYWdlRGF0YUVQTjNK
U0M5RXhlY1N0YXRlRQogX19aTks3V2ViQ29yZTI0Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEMTVj
cmVhdGVJbWFnZURhdGFFZmZSaQogX19aTks3V2ViQ29yZTE3SFRNTENhbnZhc0VsZW1lbnQyMmNv
bnZlcnRMb2dpY2FsVG9EZXZpY2VFUktOU185RmxvYXRTaXplRQogX19aTjdXZWJDb3JlOUltYWdl
RGF0YTZjcmVhdGVFUktOU183SW50U2l6ZUUKLV9fWk43V2ViQ29yZTE2Q2FudmFzUGl4ZWxBcnJh
eTZjcmVhdGVFagogX19aTjdXZWJDb3JlMTF0b0ltYWdlRGF0YUVOM0pTQzdKU1ZhbHVlRQogX19a
Tks3V2ViQ29yZTI0Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEMTVjcmVhdGVJbWFnZURhdGFFTjNX
VEYxMFBhc3NSZWZQdHJJTlNfOUltYWdlRGF0YUVFRVJpCiBfX1pON1dlYkNvcmUxNmpzSW1hZ2VE
YXRhV2lkdGhFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFUktOUzBfMTBJZGVudGlmaWVy
RQpAQCAtOTMyMCw4ICs5MzE3LDYgQEAgX19aTjdXZWJDb3JlNTVqc0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRFByb3RvdHlwZUZ1bmN0aW9uUHV0SW1hZ2VEYXRhRVBOM0pTQzlFeGUKIF9fWk43V2Vi
Q29yZTI2SlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQxMnB1dEltYWdlRGF0YUVQTjNKU0M5RXhl
Y1N0YXRlRQogX19aTjdXZWJDb3JlMjRDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQxMnB1dEltYWdl
RGF0YUVQTlNfOUltYWdlRGF0YUVmZlJpCiBfX1pON1dlYkNvcmUyNENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDEycHV0SW1hZ2VEYXRhRVBOU185SW1hZ2VEYXRhRWZmZmZmZlJpCi1fX1pON1dlYkNv
cmUxMUltYWdlQnVmZmVyMjRwdXRVbm11bHRpcGxpZWRJbWFnZURhdGFFUE4zV1RGOUJ5dGVBcnJh
eUVSS05TXzdJbnRTaXplRVJLTlNfN0ludFJlY3RFUktOU184SW50UG9pbnRFCi1fX1pON1dlYkNv
cmUxNUltYWdlQnVmZmVyRGF0YTdwdXREYXRhRVJQTjNXVEY5Qnl0ZUFycmF5RVJLTlNfN0ludFNp
emVFUktOU183SW50UmVjdEVSS05TXzhJbnRQb2ludEVTN19iYgogX19aTjdXZWJDb3JlTDIwcHJl
bXVsdGl0cGx5U2NhbmxpbmVFUHZtCiBfX1pOSzNKU0M4SlNPYmplY3QxMXRvUHJpbWl0aXZlRVBO
U185RXhlY1N0YXRlRU5TXzIyUHJlZmVycmVkUHJpbWl0aXZlVHlwZUUKIF9fWk43V2ViQ29yZTQz
anNET01Db3JlRXhjZXB0aW9uUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZ0VQTjNKU0M5RXhlY1N0
YXRlRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRl
eCBjZDBmZTM4MTg3MTBjYTdmN2FhOWZkNmUxMjNhMjY0ZmMzZmE0YjA4Li5kNzE1NTEwYzMxMzE2
ZGQxOTBiYzFiZDlhMWQ1NDk5NDkxYjlmZjJhIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNTc0NjYsMTQgKzU3NDY2LDYgQEAKIAkJCQk+CiAJ
CQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxjYW52YXNcQ2Fu
dmFzUGl4ZWxBcnJheS5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGh0bWxcY2FudmFzXENhbnZhc1BpeGVsQXJyYXkuaCIKLQkJCQk+Ci0JCQk8
L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxjYW52YXNcQ2FudmFz
UmVuZGVyaW5nQ29udGV4dC5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDgzOTM1YjYxNGY1
YzY3OTUzNGIxZjRmNWNkZDdiMDk5ZWFjNGQ3YjQuLjllMmVjMWJlNmMyYjQ0NjNmZDVjMDhlYmE2
OWUyMGRlY2E1MzAxZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTEyMTAsOCArMTIxMCw2IEBACiAJCTQ5NDg0RkMyMTAyQ0Yy
M0MwMDE4N0REMyAvKiBDYW52YXNHcmFkaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDk0ODRGQjQxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc0dy
YWRpZW50LmggKi87IH07CiAJCTQ5NDg0RkM0MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNQYXR0
ZXJuLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5
NDg0RkI2MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNQYXR0ZXJuLmNwcCAqLzsgfTsKIAkJNDk0
ODRGQzUxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1BhdHRlcm4uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NDg0RkI3MTAyQ0YyM0MwMDE4N0REMyAv
KiBDYW52YXNQYXR0ZXJuLmggKi87IH07Ci0JCTQ5NDg0RkM3MTAyQ0YyM0MwMDE4N0REMyAvKiBD
YW52YXNQaXhlbEFycmF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ5NDg0RkI5MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNQaXhlbEFycmF5LmNw
cCAqLzsgfTsKLQkJNDk0ODRGQzgxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1BpeGVsQXJyYXku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NDg0RkJB
MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNQaXhlbEFycmF5LmggKi87IH07CiAJCTQ5NDg0RkNB
MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk0ODRGQkMxMDJDRjIzQzAw
MTg3REQzIC8qIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgKi87IH07CiAJCTQ5NDg0RkNC
MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NDg0RkJEMTAyQ0YyM0MwMDE4
N0REMyAvKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCAqLzsgfTsKIAkJNDk0ODRGQ0QxMDJD
RjIzQzAwMTg3REQzIC8qIENhbnZhc1N0eWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NDg0RkJGMTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNT
dHlsZS5jcHAgKi87IH07CkBAIC04MTczLDkgKzgxNzEsNiBAQAogCQk0OTQ4NEZCNjEwMkNGMjND
MDAxODdERDMgLyogQ2FudmFzUGF0dGVybi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBDYW52YXNQYXR0ZXJuLmNwcDsgcGF0aCA9IGNhbnZhcy9DYW52YXNQYXR0ZXJu
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk0ODRGQjcxMDJDRjIzQzAwMTg3
REQzIC8qIENhbnZhc1BhdHRlcm4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
Q2FudmFzUGF0dGVybi5oOyBwYXRoID0gY2FudmFzL0NhbnZhc1BhdHRlcm4uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk0ODRGQjgxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1Bh
dHRlcm4uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IENhbnZhc1BhdHRlcm4uaWRsOyBwYXRo
ID0gY2FudmFzL0NhbnZhc1BhdHRlcm4uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk0OTQ4NEZCOTEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzUGl4ZWxBcnJheS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDYW52YXNQaXhlbEFycmF5LmNwcDsgcGF0
aCA9IGNhbnZhcy9DYW52YXNQaXhlbEFycmF5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNDk0ODRGQkExMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1BpeGVsQXJyYXkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ2FudmFzUGl4ZWxBcnJheS5oOyBwYXRoID0g
Y2FudmFzL0NhbnZhc1BpeGVsQXJyYXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NDk0ODRGQkIxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1BpeGVsQXJyYXkuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgbmFtZSA9IENhbnZhc1BpeGVsQXJyYXkuaWRsOyBwYXRoID0gY2FudmFzL0NhbnZh
c1BpeGVsQXJyYXkuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTQ4NEZCQzEw
MkNGMjNDMDAxODdERDMgLyogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHA7
IHBhdGggPSBjYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDk0ODRGQkQxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuaDsgcGF0aCA9IGNhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk0ODRGQkUxMDJDRjIzQzAwMTg3
REQzIC8qIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1l
ID0gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbDsgcGF0aCA9IGNhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ2OTAs
OSArMTQ2ODUsNiBAQAogCQkJCTQ5NDg0RkI2MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNQYXR0
ZXJuLmNwcCAqLywKIAkJCQk0OTQ4NEZCNzEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzUGF0dGVy
bi5oICovLAogCQkJCTQ5NDg0RkI4MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNQYXR0ZXJuLmlk
bCAqLywKLQkJCQk0OTQ4NEZCOTEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzUGl4ZWxBcnJheS5j
cHAgKi8sCi0JCQkJNDk0ODRGQkExMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1BpeGVsQXJyYXku
aCAqLywKLQkJCQk0OTQ4NEZCQjEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzUGl4ZWxBcnJheS5p
ZGwgKi8sCiAJCQkJNDlDN0I5QkMxMDQyRDMyRjAwMDlENDQ3IC8qIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQuY3BwICovLAogCQkJCTQ5QzdCOUJEMTA0MkQzMkYwMDA5RDQ0NyAvKiBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0LmggKi8sCiAJCQkJNDlDN0I5QkUxMDQyRDMyRjAwMDlENDQ3IC8qIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQuaWRsICovLApAQCAtMjE3OTEsNyArMjE3ODMsNiBAQAogCQkJCTZF
NEU5MUFEMTBGN0ZCMzEwMEEyNzc5QyAvKiBDYW52YXNDb250ZXh0QXR0cmlidXRlcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDk0ODRGQzIxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc0dyYWRpZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTQ4NEZDNTEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFz
UGF0dGVybi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDk0ODRGQzgxMDJDRjIzQzAwMTg3REQzIC8q
IENhbnZhc1BpeGVsQXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5QzdCOUREMTA0MkQzMkYw
MDA5RDQ0NyAvKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0
OTQ4NEZDQjEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggaW4g
SGVhZGVycyAqLywKIAkJCQk0OTQ4NEZDRTEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzU3R5bGUu
aCBpbiBIZWFkZXJzICovLApAQCAtMjUyOTIsNyArMjUyODMsNiBAQAogCQkJCTZFNEU5MUFDMTBG
N0ZCMzEwMEEyNzc5QyAvKiBDYW52YXNDb250ZXh0QXR0cmlidXRlcy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk0OTQ4NEZDMTEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDk0ODRGQzQxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1BhdHRl
cm4uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDk0ODRGQzcxMDJDRjIzQzAwMTg3REQzIC8qIENh
bnZhc1BpeGVsQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlDN0I5REMxMDQyRDMyRjAw
MDlENDQ3IC8qIENhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDk0ODRGQ0ExMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk0OTQ4NEZDRDEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzU3R5
bGUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCA2Y2Y5MDIwODM2OTJlZmMwY2MzNDk1
MmJhYTk4NjVkZjc5ZTRiMTYwLi5hNTRlM2M0YzM5NzExMDAzNzgxMDlmYmUwZGZlYzU2NTViNGZl
MzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2Ny
aXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRlIDx3dGYvQXJyYXlCdWZm
ZXIuaD4KICNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXJWaWV3Lmg+CiAjaW5jbHVkZSAiQmxvYi5o
IgotI2luY2x1ZGUgIkNhbnZhc1BpeGVsQXJyYXkuaCIKICNpbmNsdWRlICJEYXRhVmlldy5oIgog
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGaWxlLmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCmluZGV4IGQ0MDk2MzRlOWQ3ZWMyMTk0MzQ4MTAwMTA1
MDNiMmQxZTFjMzgzYzAuLmVkOWQ2MmE1ZGE5OTAzYWZjNTI4NDgxMDMxMmRmYzM3M2I4YjFjMDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCkBAIC0zNjYsOSArMzY2LDgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBJZiB0aGUgb2JqZWN0IGhhcyBhbnkg
aW50ZXJuYWwgZmllbGRzLCB0aGVuIHdlIHdvbid0IGJlIGFibGUgdG8gc2VyaWFsaXplIG9yIGRl
c2VyaWFsaXplCiAgICAgICAgIC8vIHRoZW07IGNvbnZlbmllbnRseSwgdGhpcyBpcyBhbHNvIGEg
cXVpY2sgd2F5IHRvIGRldGVjdCBET00gd3JhcHBlciBvYmplY3RzLCBiZWNhdXNlCiAgICAgICAg
IC8vIHRoZSBtZWNoYW5pc20gZm9yIHRoZXNlIHJlbGllcyBvbiBkYXRhIHN0b3JlZCBpbiB0aGVz
ZSBmaWVsZHMuIFdlIHNob3VsZAotICAgICAgICAvLyBjYXRjaCBleHRlcm5hbCBhcnJheSBkYXRh
IGFuZCBleHRlcm5hbCBwaXhlbCBkYXRhIGFzIGEgc3BlY2lhbCBjYXNlIChub3RpbmcgdGhhdCBD
YW52YXNQaXhlbEFycmF5cwotICAgICAgICAvLyBjYW4ndCBiZSBzZXJpYWxpemVkIHdpdGhvdXQg
YmVpbmcgd3JhcHBlZCBieSBJbWFnZURhdGEgYWNjb3JkaW5nIHRvIHRoZSBzdGFuZGFyZCkuCi0g
ICAgICAgIHJldHVybiBvYmplY3QtPkludGVybmFsRmllbGRDb3VudCgpIHx8IG9iamVjdC0+SGFz
SW5kZXhlZFByb3BlcnRpZXNJblBpeGVsRGF0YSgpIHx8IG9iamVjdC0+SGFzSW5kZXhlZFByb3Bl
cnRpZXNJbkV4dGVybmFsQXJyYXlEYXRhKCk7CisgICAgICAgIC8vIGNhdGNoIGV4dGVybmFsIGFy
cmF5IGRhdGEgYXMgYSBzcGVjaWFsIGNhc2UuCisgICAgICAgIHJldHVybiBvYmplY3QtPkludGVy
bmFsRmllbGRDb3VudCgpIHx8IG9iamVjdC0+SGFzSW5kZXhlZFByb3BlcnRpZXNJbkV4dGVybmFs
QXJyYXlEYXRhKCk7CiAgICAgfQogCiAgICAgaW5saW5lIHY4OjpIYW5kbGU8djg6OkJvb2xlYW4+
IHY4Qm9vbGVhbihib29sIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4Q2FudmFzUGl4ZWxBcnJheUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDYW52YXNQaXhlbEFycmF5Q3VzdG9tLmNwcApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTc5NzliMjFhZDI2MGU4NjUxOGViM2UxYTZkOTMyMzNj
N2RlMzQyMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDYW52YXNQaXhlbEFycmF5Q3VzdG9t
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiVjhDYW52YXNQaXhlbEFycmF5LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
djg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoQ2FudmFzUGl4ZWxBcnJheSogaW1wbCwgdjg6Oklz
b2xhdGUqIGlzb2xhdGUpCi17Ci0gICAgaWYgKCFpbXBsKQotICAgICAgICByZXR1cm4gdjg6Ok51
bGwoKTsKLSAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBWOENhbnZhc1BpeGVs
QXJyYXk6OndyYXAoaW1wbCk7Ci0gICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkgewotICAgICAg
ICB3cmFwcGVyLT5TZXRJbmRleGVkUHJvcGVydGllc1RvUGl4ZWxEYXRhKGltcGwtPmRhdGEoKS0+
ZGF0YSgpLCBpbXBsLT5sZW5ndGgoKSk7Ci0gICAgICAgIHdyYXBwZXItPlNldCh2ODo6U3RyaW5n
OjpOZXdTeW1ib2woImxlbmd0aCIpLAotICAgICAgICAgICAgICAgICAgICAgdjg6OkludGVnZXI6
Ok5ldyhpbXBsLT5sZW5ndGgoKSksCi0gICAgICAgICAgICAgICAgICAgICB2ODo6UmVhZE9ubHkp
OwotICAgIH0KLSAgICByZXR1cm4gd3JhcHBlcjsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0
ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAKaW5kZXggZDNhOGQ3ZmJiMGFjODVkYjBi
NmZiNzgzMjViYzlhZmI2OGMxYTYwNC4uODdkMTk1YWNlYTM5ZmNhZTZiYTc4MGIwMjE2ZmFmMDEz
M2VhM2JhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
SW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwCkBAIC00MCw3ICs0MCw2
IEBACiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNp
bmNsdWRlICJWOEJpbmRpbmdTdGF0ZS5oIgotI2luY2x1ZGUgIlY4Q2FudmFzUGl4ZWxBcnJheS5o
IgogI2luY2x1ZGUgIlY4RGF0YWJhc2UuaCIKICNpbmNsdWRlICJWOEZsb2F0MzJBcnJheS5oIgog
I2luY2x1ZGUgIlY4RmxvYXQ2NEFycmF5LmgiCkBAIC01Nyw2ICs1Niw3IEBACiAjaW5jbHVkZSAi
VjhVaW50MTZBcnJheS5oIgogI2luY2x1ZGUgIlY4VWludDMyQXJyYXkuaCIKICNpbmNsdWRlICJW
OFVpbnQ4QXJyYXkuaCIKKyNpbmNsdWRlICJWOFVpbnQ4Q2xhbXBlZEFycmF5LmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtMTQ4LDcgKzE0OCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBWOEluamVjdGVkU2NyaXB0SG9zdDo6dHlwZUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMm
IGFyCiAgICAgICAgIHJldHVybiB2ODo6U3RyaW5nOjpOZXcoImFycmF5Iik7CiAgICAgaWYgKFY4
RmxvYXQzMkFycmF5OjpIYXNJbnN0YW5jZSh2YWx1ZSkgfHwgVjhGbG9hdDY0QXJyYXk6Okhhc0lu
c3RhbmNlKHZhbHVlKSkKICAgICAgICAgcmV0dXJuIHY4OjpTdHJpbmc6Ok5ldygiYXJyYXkiKTsK
LSAgICBpZiAoVjhDYW52YXNQaXhlbEFycmF5OjpIYXNJbnN0YW5jZSh2YWx1ZSkpCisgICAgaWYg
KFY4VWludDhDbGFtcGVkQXJyYXk6Okhhc0luc3RhbmNlKHZhbHVlKSkKICAgICAgICAgcmV0dXJu
IHY4OjpTdHJpbmc6Ok5ldygiYXJyYXkiKTsKICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCmluZGV4IGQ0MWFkMzU5MTlj
MGVmZjI2ODdmMmJiYzFlZjgzZTBhNGUxMWYwZDguLjY2NjVhMWJjYmM4MWE3M2E1ZjAwMTYyZTUz
ZjViN2RjYzMxMzE0MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9y
dW50aW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAK
QEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJGdW5jdGlvblByb3RvdHlwZS5oIgogI2luY2x1
ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgotI2luY2x1ZGUgIkpTQnl0
ZUFycmF5LmgiCiAjaW5jbHVkZSAiSlNEb2N1bWVudC5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGlu
Zy5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93LmgiCkBAIC0zNyw2ICszNiw3IEBACiAjaW5jbHVk
ZSAiSlNMb2NrLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJKU1JldGFpblB0
ci5oIgorI2luY2x1ZGUgIkpTVWludDhDbGFtcGVkQXJyYXkuaCIKICNpbmNsdWRlICJPYmplY3RQ
cm90b3R5cGUuaCIKICNpbmNsdWRlICJQcm9wZXJ0eU5hbWVBcnJheS5oIgogI2luY2x1ZGUgIlJl
Z0V4cENvbnN0cnVjdG9yLmgiCkBAIC0xMDYsNyArMTA2LDcgQEAgdHlwZWRlZiBlbnVtIHsKICAg
ICBPYmplY3QsCiAgICAgTnVsbCwKICAgICBSVEFycmF5LAotICAgIEpTQnl0ZUFycmF5CisgICAg
SlNVaW50OENsYW1wZWRBcnJheQogfSBKU1JlYWxUeXBlOwogCiAjaWYgZGVmaW5lZChRVFdLX1JV
TlRJTUVfQ09OVkVSU0lPTl9ERUJVRykgfHwgZGVmaW5lZChRVFdLX1JVTlRJTUVfTUFUQ0hfREVC
VUcpCkBAIC0xMzcsNiArMTM3LDExIEBAIHZvaWQgcmVnaXN0ZXJDdXN0b21UeXBlKGludCBxdE1l
dGFUeXBlSWQsIENvbnZlcnRUb1ZhcmlhbnRGdW5jdGlvbiB0b1ZhcmlhbnRGdW5jCiAgICAgY3Vz
dG9tUnVudGltZUNvbnZlcnNpb25zKCktPmluc2VydChxdE1ldGFUeXBlSWQsIGNvbnZlcnNpb24p
OwogfQogCitzdGF0aWMgYm9vbCBpc0pTVWludDhDbGFtcGVkQXJyYXkoSlNWYWx1ZSB2YWwpCit7
CisgICAgcmV0dXJuIHZhbC5pc0NlbGwoKSAmJiB2YWwuaW5oZXJpdHMoJkpTVWludDhDbGFtcGVk
QXJyYXk6OnNfaW5mbyk7Cit9CisKIHN0YXRpYyBKU1JlYWxUeXBlIHZhbHVlUmVhbFR5cGUoRXhl
Y1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbCkKIHsKICAgICBpZiAodmFsLmlzTnVtYmVyKCkpCkBA
IC0xNDcsOCArMTUyLDggQEAgc3RhdGljIEpTUmVhbFR5cGUgdmFsdWVSZWFsVHlwZShFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgdmFsKQogICAgICAgICByZXR1cm4gQm9vbGVhbjsKICAgICBlbHNl
IGlmICh2YWwuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBOdWxsOwotICAgIGVsc2UgaWYgKGlz
SlNCeXRlQXJyYXkodmFsKSkKLSAgICAgICAgcmV0dXJuIEpTQnl0ZUFycmF5OworICAgIGVsc2Ug
aWYgKGlzSlNVaW50OENsYW1wZWRBcnJheSh2YWwpKQorICAgICAgICByZXR1cm4gSlNVaW50OENs
YW1wZWRBcnJheTsKICAgICBlbHNlIGlmICh2YWwuaXNPYmplY3QoKSkgewogICAgICAgICBKU09i
amVjdCAqb2JqZWN0ID0gdmFsLnRvT2JqZWN0KGV4ZWMpOwogICAgICAgICBpZiAob2JqZWN0LT5p
bmhlcml0cygmUnVudGltZUFycmF5OjpzX2luZm8pKSAgLy8gUnVudGltZUFycmF5ICdpbmhlcml0
cycgZnJvbSBBcnJheSwgYnV0IG5vdCBpbiBDKysKQEAgLTI1NSw3ICsyNjAsNyBAQCBRVmFyaWFu
dCBjb252ZXJ0VmFsdWVUb1FWYXJpYW50KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwg
UU1ldGFUeXBlOjpUeXBlCiAgICAgICAgICAgICBjYXNlIFFPYmo6CiAgICAgICAgICAgICAgICAg
aGludCA9IFFNZXRhVHlwZTo6UU9iamVjdFN0YXI7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICBjYXNlIEpTQnl0ZUFycmF5OgorICAgICAgICAgICAgY2FzZSBKU1VpbnQ4Q2xh
bXBlZEFycmF5OgogICAgICAgICAgICAgICAgIGhpbnQgPSBRTWV0YVR5cGU6OlFCeXRlQXJyYXk7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIEFycmF5OgpAQCAtNDc1
LDggKzQ4MCw4IEBAIFFWYXJpYW50IGNvbnZlcnRWYWx1ZVRvUVZhcmlhbnQoRXhlY1N0YXRlKiBl
eGVjLCBKU1ZhbHVlIHZhbHVlLCBRTWV0YVR5cGU6OlR5cGUKICAgICAgICAgfQogCiAgICAgICAg
IGNhc2UgUU1ldGFUeXBlOjpRQnl0ZUFycmF5OiB7Ci0gICAgICAgICAgICBpZiAodHlwZSA9PSBK
U0J5dGVBcnJheSkgewotICAgICAgICAgICAgICAgIFdURjo6Qnl0ZUFycmF5KiBhcnIgPSBhc0J5
dGVBcnJheSh2YWx1ZSktPnN0b3JhZ2UoKTsKKyAgICAgICAgICAgIGlmICh0eXBlID09IEpTVWlu
dDhDbGFtcGVkQXJyYXkpIHsKKyAgICAgICAgICAgICAgICBXVEY6OlVpbnQ4Q2xhbXBlZEFycmF5
KiBhcnIgPSB0b1VpbnQ4Q2xhbXBlZEFycmF5KHZhbHVlKTsKICAgICAgICAgICAgICAgICByZXQg
PSBRVmFyaWFudChRQnl0ZUFycmF5KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGFyci0+
ZGF0YSgpKSwgYXJyLT5sZW5ndGgoKSkpOwogICAgICAgICAgICAgICAgIGRpc3QgPSAwOwogICAg
ICAgICAgICAgfSBlbHNlIHsKQEAgLTg4Miw5ICs4ODcsOSBAQCBKU1ZhbHVlIGNvbnZlcnRRVmFy
aWFudFRvVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPFJvb3RPYmplY3Q+IHJvb3Qs
IGNvbgogCiAgICAgaWYgKHR5cGUgPT0gUU1ldGFUeXBlOjpRQnl0ZUFycmF5KSB7CiAgICAgICAg
IFFCeXRlQXJyYXkgcXRCeXRlQXJyYXkgPSB2YXJpYW50LnZhbHVlPFFCeXRlQXJyYXk+KCk7Ci0g
ICAgICAgIFdURjo6UmVmUHRyPFdURjo6Qnl0ZUFycmF5PiB3dGZCeXRlQXJyYXkgPSBXVEY6OkJ5
dGVBcnJheTo6Y3JlYXRlKHF0Qnl0ZUFycmF5Lmxlbmd0aCgpKTsKKyAgICAgICAgV1RGOjpSZWZQ
dHI8V1RGOjpVaW50OENsYW1wZWRBcnJheT4gd3RmQnl0ZUFycmF5ID0gV1RGOjpVaW50OENsYW1w
ZWRBcnJheTo6Y3JlYXRlVW5pbml0aWFsaXplZChxdEJ5dGVBcnJheS5sZW5ndGgoKSk7CiAgICAg
ICAgIG1lbWNweSh3dGZCeXRlQXJyYXktPmRhdGEoKSwgcXRCeXRlQXJyYXkuY29uc3REYXRhKCks
IHF0Qnl0ZUFycmF5Lmxlbmd0aCgpKTsKLSAgICAgICAgcmV0dXJuIEpTQzo6SlNCeXRlQXJyYXk6
OmNyZWF0ZShleGVjLCBKU0M6OkpTQnl0ZUFycmF5OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGpzTnVsbCgpKSwgd3RmQnl0
ZUFycmF5LmdldCgpKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgc3RhdGljX2Nhc3Q8SlNE
T01HbG9iYWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLCB3dGZCeXRlQXJy
YXkuZ2V0KCkpOwogICAgIH0KIAogICAgIGlmICh0eXBlID09IFFNZXRhVHlwZTo6UU9iamVjdFN0
YXIgfHwgdHlwZSA9PSBRTWV0YVR5cGU6OlFXaWRnZXRTdGFyKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQaXhlbEFycmF5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1BpeGVsQXJyYXkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA2NWFjN2VjZjAxYzc2YmY4Yzk2NzYxYzU5YmJiYmI3OTRkZjFkZWM3Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1BpeGVsQXJyYXkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTQg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFt
ZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICog
ICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNhbnZhc1BpeGVs
QXJyYXkuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIAotUGFzc1JlZlB0cjxDYW52YXNQ
aXhlbEFycmF5PiBDYW52YXNQaXhlbEFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQotewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ2FudmFzUGl4ZWxBcnJheShsZW5ndGgpKTsKLX0KLQot
UGFzc1JlZlB0cjxDYW52YXNQaXhlbEFycmF5PiBDYW52YXNQaXhlbEFycmF5OjpjcmVhdGUoUGFz
c1JlZlB0cjxCeXRlQXJyYXk+IGJ5dGVBcnJheSkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IENhbnZhc1BpeGVsQXJyYXkoYnl0ZUFycmF5KSk7Ci19Ci0KLUNhbnZhc1BpeGVsQXJyYXk6OkNh
bnZhc1BpeGVsQXJyYXkodW5zaWduZWQgbGVuZ3RoKQotICAgIDogbV9kYXRhKEJ5dGVBcnJheTo6
Y3JlYXRlKGxlbmd0aCkpCi17Ci19Ci0KLUNhbnZhc1BpeGVsQXJyYXk6OkNhbnZhc1BpeGVsQXJy
YXkoUGFzc1JlZlB0cjxCeXRlQXJyYXk+IGJ5dGVBcnJheSkKLSAgICA6IG1fZGF0YShieXRlQXJy
YXkpCi17Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1BpeGVsQXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1BpeGVs
QXJyYXkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2E5NGIxZmU3ZWI4NzU1N2U0
MzIzNmFlMGY5ZmNhODZiMDMwNWI4OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQaXhlbEFycmF5
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw3OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBw
bGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIENhbnZhc1Bp
eGVsQXJyYXlfaAotI2RlZmluZSBDYW52YXNQaXhlbEFycmF5X2gKLQotI2luY2x1ZGUgPHd0Zi9C
eXRlQXJyYXkuaD4KLSNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICAKLWNsYXNzIENhbnZhc1BpeGVs
QXJyYXkgOiBwdWJsaWMgUmVmQ291bnRlZDxDYW52YXNQaXhlbEFycmF5PiB7Ci1wdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8Q2FudmFzUGl4ZWxBcnJheT4gY3JlYXRlKHVuc2lnbmVkIGxl
bmd0aCk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q2FudmFzUGl4ZWxBcnJheT4gY3JlYXRlKFBh
c3NSZWZQdHI8Qnl0ZUFycmF5Pik7Ci0KLSAgICBCeXRlQXJyYXkqIGRhdGEoKSB7IHJldHVybiBt
X2RhdGEuZ2V0KCk7IH0KLSAgICBjb25zdCBCeXRlQXJyYXkqIGRhdGEoKSBjb25zdCB7IHJldHVy
biBtX2RhdGEuZ2V0KCk7IH0KLSAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBt
X2RhdGEtPmxlbmd0aCgpOyB9Ci0gICAgCi0gICAgdm9pZCBzZXQodW5zaWduZWQgaW5kZXgsIGRv
dWJsZSB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIG1fZGF0YS0+c2V0KGluZGV4LCB2YWx1ZSk7Ci0g
ICAgfQotCi0gICAgdm9pZCBzZXQodW5zaWduZWQgaW5kZXgsIHVuc2lnbmVkIGNoYXIgdmFsdWUp
Ci0gICAgewotICAgICAgICBtX2RhdGEtPnNldChpbmRleCwgdmFsdWUpOwotICAgIH0KLSAgICAK
LSAgICBib29sIGdldCh1bnNpZ25lZCBpbmRleCwgdW5zaWduZWQgY2hhciYgcmVzdWx0KSBjb25z
dAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fZGF0YS0+Z2V0KGluZGV4LCByZXN1bHQpOwotICAg
IH0KLQotICAgIHVuc2lnbmVkIGNoYXIgZ2V0KHVuc2lnbmVkIGluZGV4KSBjb25zdAotICAgIHsK
LSAgICAgICAgcmV0dXJuIG1fZGF0YS0+Z2V0KGluZGV4KTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0g
ICAgQ2FudmFzUGl4ZWxBcnJheSh1bnNpZ25lZCBsZW5ndGgpOwotICAgIENhbnZhc1BpeGVsQXJy
YXkoUGFzc1JlZlB0cjxCeXRlQXJyYXk+KTsKLQotICAgIFJlZlB0cjxCeXRlQXJyYXk+IG1fZGF0
YTsKLX07Ci0gICAgCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBDYW52YXNQ
aXhlbEFycmF5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1BpeGVsQXJyYXkuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUGl4ZWxB
cnJheS5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhjMDgzNmIwOWM4OWNkMjk2
ZTI0NmFhZGRkNjkwMmRjMmM5MjU0ZWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUGl4ZWxBcnJh
eS5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgi
QXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20g
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1tb2R1bGUgaHRtbCB7
Ci0jaWYgIWRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgIUxBTkdVQUdFX0pBVkFTQ1JJ
UFQgfHwgZGVmaW5lZChWOF9CSU5ESU5HKSAmJiBWOF9CSU5ESU5HCi0gICAgaW50ZXJmYWNlIFsK
LSAgICAgICAgT21pdENvbnN0cnVjdG9yLAotICAgICAgICBOdW1lcmljSW5kZXhlZEdldHRlciwK
LSAgICAgICAgQ3VzdG9tSW5kZXhlZFNldHRlciwKLSAgICAgICAgVjhDdXN0b21Ub0pTT2JqZWN0
Ci0gICAgXSBDYW52YXNQaXhlbEFycmF5IHsKLSNpZiAhZGVmaW5lZChWOF9CSU5ESU5HKSB8fCAh
VjhfQklORElORwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBsZW5ndGg7Ci0jZW5k
aWYKLSAgICB9OwotI2VuZGlmCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCAwNDRlOWMzYzdkNGM5NjA3M2NlMGVi
YTQ3MTIwN2Y3ZjkyNWYyZGJlLi5hOTdlZjUyOTgyZDk3MDBlMWUxNDE4OTExMmNkMzU3OWI2YTMz
ZDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dC5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJXZWJHTFJlbmRlcmlu
Z0NvbnRleHQuaCIKIAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCi0jaW5jbHVkZSAiQ2FudmFz
UGl4ZWxBcnJheS5oIgogI2luY2x1ZGUgIkNoZWNrZWRJbnQuaCIKICNpbmNsdWRlICJDb25zb2xl
LmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCkBAIC02OSw3ICs2OCw2IEBACiAjaW5jbHVkZSAi
V2ViR0xUZXh0dXJlLmgiCiAjaW5jbHVkZSAiV2ViR0xVbmlmb3JtTG9jYXRpb24uaCIKIAotI2lu
Y2x1ZGUgPHd0Zi9CeXRlQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvT3duQXJyYXlQdHIuaD4KICNp
bmNsdWRlIDx3dGYvUGFzc093bkFycmF5UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1VpbnQxNkFycmF5
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQ29udm9sdmVNYXRyaXguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVDb252b2x2ZU1hdHJpeC5oCmluZGV4IDI1MDYxM2ZiNDYzODZlYjU1NTVjYWYzOGUy
OWY4YjNlODg2M2VkZGIuLjgxZWJhMWQ4M2ViZDc0MjEwODcyYzc4ZWNiOThhNjJlNzY0ZWRhN2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVD
b252b2x2ZU1hdHJpeC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVDb252b2x2ZU1hdHJpeC5oCkBAIC00MCw4ICs0MCw2IEBAIGVudW0gRWRnZU1vZGVU
eXBlIHsKICAgICBFREdFTU9ERV9OT05FICAgICAgPSAzCiB9OwogCi1jbGFzcyBDYW52YXNQaXhl
bEFycmF5OwotCiBjbGFzcyBGRUNvbnZvbHZlTWF0cml4IDogcHVibGljIEZpbHRlckVmZmVjdCB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RkVDb252b2x2ZU1hdHJpeD4gY3JlYXRl
KEZpbHRlciosIGNvbnN0IEludFNpemUmLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcAppbmRleCBhNTI3NDU1NWJk
MWY0NmE1NGJmMWMwN2VjNzU2ZGMzMmY2OWU3YTUyLi5lNmViNmFmYzJjNzJiZGEwMDNkMTExMzA2
MDU5ZmZlZjIxZTI5MDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcApAQCAtMzcsNyArMzcsNiBAQAogI2lu
Y2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdVbml0VHlwZXMuaCIKIAot
I2luY2x1ZGUgPHd0Zi9CeXRlQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4K
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>