<?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>56438</bug_id>
          
          <creation_ts>2011-03-15 18:21:57 -0700</creation_ts>
          <short_desc>Make Structure creation require a JSGlobalData</short_desc>
          <delta_ts>2011-03-16 14:19:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>abarth</cc>
    
    <cc>buildbot</cc>
    
    <cc>eric</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>368116</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-03-15 18:21:57 -0700</bug_when>
    <thetext>Make Structure creation require a JSGlobalData</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368119</commentid>
    <comment_count>1</comment_count>
      <attachid>85892</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-03-15 18:26:06 -0700</bug_when>
    <thetext>Created attachment 85892
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368126</commentid>
    <comment_count>2</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-03-15 18:44:00 -0700</bug_when>
    <thetext>Attachment 85892 did not build on qt:
Build output: http://queues.webkit.org/results/8177787</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368177</commentid>
    <comment_count>3</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-03-15 21:52:45 -0700</bug_when>
    <thetext>Attachment 85892 did not build on win:
Build output: http://queues.webkit.org/results/8177848</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368263</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-16 01:55:47 -0700</bug_when>
    <thetext>Attachment 85892 did not build on mac:
Build output: http://queues.webkit.org/results/8187066</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368366</commentid>
    <comment_count>5</comment_count>
      <attachid>85937</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-03-16 10:05:45 -0700</bug_when>
    <thetext>Created attachment 85937
Patch

Include missing change that broke qt,mac,etc and remove exports from windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368370</commentid>
    <comment_count>6</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-03-16 10:19:56 -0700</bug_when>
    <thetext>Attachment 85937 did not build on qt:
Build output: http://queues.webkit.org/results/8187233</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368372</commentid>
    <comment_count>7</comment_count>
      <attachid>85939</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-03-16 10:27:37 -0700</bug_when>
    <thetext>Created attachment 85939
Patch

Include change properly this time</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368375</commentid>
    <comment_count>8</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-03-16 10:35:17 -0700</bug_when>
    <thetext>Attachment 85937 did not build on win:
Build output: http://queues.webkit.org/results/8193079</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368376</commentid>
    <comment_count>9</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-03-16 10:43:47 -0700</bug_when>
    <thetext>Attachment 85939 did not build on qt:
Build output: http://queues.webkit.org/results/8193082</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368388</commentid>
    <comment_count>10</comment_count>
      <attachid>85942</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-03-16 11:00:58 -0700</bug_when>
    <thetext>Created attachment 85942
Patch

Fix QT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368417</commentid>
    <comment_count>11</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-03-16 11:25:28 -0700</bug_when>
    <thetext>Attachment 85942 did not build on qt:
Build output: http://queues.webkit.org/results/8191143</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368418</commentid>
    <comment_count>12</comment_count>
      <attachid>85945</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-03-16 11:27:41 -0700</bug_when>
    <thetext>Created attachment 85945
Patch

Fix QT again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368426</commentid>
    <comment_count>13</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-03-16 11:36:47 -0700</bug_when>
    <thetext>Attachment 85942 did not build on win:
Build output: http://queues.webkit.org/results/8188278</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368431</commentid>
    <comment_count>14</comment_count>
      <attachid>85950</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-03-16 11:41:32 -0700</bug_when>
    <thetext>Created attachment 85950
Patch

Fix windows build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368442</commentid>
    <comment_count>15</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-03-16 12:04:41 -0700</bug_when>
    <thetext>Attachment 85939 did not build on win:
Build output: http://queues.webkit.org/results/8189194</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368445</commentid>
    <comment_count>16</comment_count>
      <attachid>85950</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-03-16 12:13:17 -0700</bug_when>
    <thetext>Comment on attachment 85950
Patch

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

r=me if this builds and you make the change below.

&gt; Source/JavaScriptCore/runtime/JSGlobalData.cpp:144
&gt; +    , dummyMarkableCellStructure(JSCell::createDummyStructure(*this))

Please ensure these are initialized after heap. You need to verify that moving the heap data member is not a performance regression. Previously, SunSpider has shown itself to be sensitive to the location of some of those data members.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368480</commentid>
    <comment_count>17</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-03-16 13:14:27 -0700</bug_when>
    <thetext>Committed r81272: &lt;http://trac.webkit.org/changeset/81272&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368539</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-16 14:19:52 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/81272 might have broken SnowLeopard Intel Release (Tests)
The following tests are not passing:
java/lc3/JSObject/ToObject-001.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85892</attachid>
            <date>2011-03-15 18:26:06 -0700</date>
            <delta_ts>2011-03-16 10:05:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56438-20110315182605.patch</filename>
            <type>text/plain</type>
            <size>124408</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODExODgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCmluZGV4IGNkMzA3YTY3NjVlNjk0ZGNiM2U3ODg2
ZjVjOTRiNWRmYzIyNzQ4YTAuLjAwMWM0MTYxNmRmMDg3NjA0ZTc4NjhkMDMwZTUxMzFkM2RiYjM2
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0
cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3Ry
dWN0b3IuaApAQCAtMzksOSArMzksOSBAQCBwdWJsaWM6CiAgICAgSlNPYmplY3RDYWxsQXNDb25z
dHJ1Y3RvckNhbGxiYWNrIGNhbGxiYWNrKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsYmFjazsgfQog
ICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90bykgCisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU1ZhbHVlIHByb3RvKSAKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUoZ2xvYmFsRGF0YSwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKIHByb3RlY3RlZDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oCmluZGV4IGQ4
YWU2MDgzNjgxY2ZlMjQ0NWVkYjIzZDc0N2Y0OTExOTY1ZDVhMmYuLjExZmI5NWM1YzEwZjIzOGM2
ODcxMjA3ZGY3OGYyMTM5MjhjYzFiZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0NhbGxiYWNrRnVuY3Rpb24uaApAQCAtMzksOSArMzksOSBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgLy8gSW50ZXJuYWxGdW5jdGlvbiBtaXNoLW1hc2hlcyBjb25zdHJ1Y3RvciBhbmQgZnVuY3Rp
b24gYmVoYXZpb3IgLS0gd2Ugc2hvdWxkIAogICAgIC8vIHJlZmFjdG9yIHRoZSBjb2RlIHNvIHRo
aXMgb3ZlcnJpZGUgaXNuJ3QgbmVjZXNzYXJ5Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90bykgCisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U1ZhbHVlIHByb3RvKSAKICAgICB7IAotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
cHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsgCisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOyAKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCmluZGV4IDczMmNjMWRiMTQwNTAz
NjU5MGEwZDhhYzFjMDA3MDIzMDE4ZDMwOGYuLmEwYWRiNDQ4Mjc5Zjk4NjA4MTg0ZGY4MTA0YjBi
YTg1OTRiZDNhMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09i
amVjdC5oCkBAIC0xMjgsOSArMTI4LDkgQEAgcHVibGljOgogICAgIEpTQ2xhc3NSZWYgY2xhc3NS
ZWYoKSBjb25zdCB7IHJldHVybiBtX2NhbGxiYWNrT2JqZWN0RGF0YS0+anNDbGFzczsgfQogICAg
IGJvb2wgaW5oZXJpdHMoSlNDbGFzc1JlZikgY29uc3Q7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvKSAKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTVmFsdWUgcHJvdG8pIAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBCYXNl
OjpBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyAKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEJhc2U6OkFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAogICAgIH0KICAg
ICAKICAgICBKU1ZhbHVlIGdldFByaXZhdGVQcm9wZXJ0eShjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q29udGV4dFJlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5j
cHAKaW5kZXggY2NhYjk1MzI2MDA0Y2NhODlmNzgxNWU4NWE1ZWVjODVkMWNkOGI2ZC4uZTVjNzc4
ZjliYzUwYWQ5ODdlMTA3ZDU1MmI5NzkwZTQ4YjBmOTFlZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcApAQCAtOTMsMTEgKzkzLDExIEBAIEpTR2xvYmFsQ29u
dGV4dFJlZiBKU0dsb2JhbENvbnRleHRDcmVhdGVJbkdyb3VwKEpTQ29udGV4dEdyb3VwUmVmIGdy
b3VwLCBKU0NsYXNzCiAjZW5kaWYKIAogICAgIGlmICghZ2xvYmFsT2JqZWN0Q2xhc3MpIHsKLSAg
ICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG5ldyAoZ2xvYmFsRGF0YS5nZXQo
KSkgSlNHbG9iYWxPYmplY3Q7CisgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qg
PSBuZXcgKGdsb2JhbERhdGEuZ2V0KCkpIEpTR2xvYmFsT2JqZWN0KCpnbG9iYWxEYXRhKTsKICAg
ICAgICAgcmV0dXJuIEpTR2xvYmFsQ29udGV4dFJldGFpbih0b0dsb2JhbFJlZihnbG9iYWxPYmpl
Y3QtPmdsb2JhbEV4ZWMoKSkpOwogICAgIH0KIAotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSBuZXcgKGdsb2JhbERhdGEuZ2V0KCkpIEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxP
YmplY3Q+KGdsb2JhbE9iamVjdENsYXNzLCBKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0
Pjo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSk7CisgICAgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCA9IG5ldyAoZ2xvYmFsRGF0YS5nZXQoKSkgSlNDYWxsYmFja09iamVjdDxKU0dsb2Jh
bE9iamVjdD4oZ2xvYmFsT2JqZWN0Q2xhc3MsIEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmpl
Y3Q+OjpjcmVhdGVTdHJ1Y3R1cmUoKmdsb2JhbERhdGEsIGpzTnVsbCgpKSk7CiAgICAgRXhlY1N0
YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CiAgICAgSlNWYWx1ZSBwcm90
b3R5cGUgPSBnbG9iYWxPYmplY3RDbGFzcy0+cHJvdG90eXBlKGV4ZWMpOwogICAgIGlmICghcHJv
dG90eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNjYzYTQxNWVhYWU4NTE4YWU3ODBl
MWRkNTdmNWViMmY0NzU4Nzk2Zi4uYjkyMjNmZWEzZTBhOTZkOTBlODNlODA5YzE4MmQyZmI5ZDIy
NjkzNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTMzIEBACiAyMDExLTAz
LTE1ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBTdHJ1Y3R1cmUgY3JlYXRpb24gcmVx
dWlyZSBhIEpTR2xvYmFsRGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTY0MzgKKworICAgICAgICBNZWNoYW5pY2FsIGNoYW5nZSB0byBtYWtlIFN0
cnVjdHVyZTo6Y3JlYXRlIHJlcXVpcmUgSlNHbG9iYWxEYXRhJiwgYW5kCisgICAgICAgIHJlcXVp
cmUgYWxsIHVzZXJzIHRvIHByb3ZpZGUgdGhlIGdsb2JhbERhdGEuCisKKyAgICAgICAgKiBBUEkv
SlNDYWxsYmFja0NvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tDb25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja0Z1bmN0aW9u
Lmg6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKToK
KyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0NhbGxi
YWNrT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIEFQSS9KU0NvbnRleHRSZWYu
Y3BwOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAgICAgKiBkZWJ1Z2dlci9E
ZWJ1Z2dlckFjdGl2YXRpb24uY3BwOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckFjdGl2YXRpb246
OkRlYnVnZ2VyQWN0aXZhdGlvbik6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0
aW9uLmg6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyQWN0aXZhdGlvbjo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpERUZJTkVfU1RV
Ql9GVU5DVElPTik6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKEdsb2JhbE9iamVjdDo6
R2xvYmFsT2JqZWN0KToKKyAgICAgICAgKGZ1bmN0aW9uUnVuKToKKyAgICAgICAgKGpzY21haW4p
OgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmg6CisgICAgICAgIChKU0M6OkFyZ3VtZW50
czo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmg6
CisgICAgICAgIChKU0M6OkFycmF5UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAg
ICAqIHJ1bnRpbWUvQm9vbGVhbk9iamVjdC5oOgorICAgICAgICAoSlNDOjpCb29sZWFuT2JqZWN0
OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUluc3RhbmNlLmg6Cisg
ICAgICAgIChKU0M6OkRhdGVJbnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBy
dW50aW1lL0RhdGVQcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RGF0ZVByb3RvdHlwZTo6Y3Jl
YXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9ySW5zdGFuY2UuaDoKKyAgICAg
ICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50
aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUJhc2U6OmNyZWF0ZVN0
cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkV2YWxFeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAoSlNDOjpQcm9ncmFtRXhlY3V0YWJsZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAg
ICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Q
cm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9HZXR0ZXJTZXR0
ZXIuaDoKKyAgICAgICAgKEpTQzo6R2V0dGVyU2V0dGVyOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAg
ICAgICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpJbnRlcm5h
bEZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBUElWYWx1
ZVdyYXBwZXIuaDoKKyAgICAgICAgKEpTQzo6SlNBUElWYWx1ZVdyYXBwZXI6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgICogcnVudGltZS9KU0FjdGl2YXRpb24uaDoKKyAgICAgICAgKEpTQzo6
SlNBY3RpdmF0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJh
eS5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OkpTQXJyYXkpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNBcnJheS5oOgorICAgICAgICAoSlNDOjpKU0FycmF5OjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpKU0J5dGVB
cnJheTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTQnl0ZUFycmF5Lmg6
CisgICAgICAgIChKU0M6OkpTQnl0ZUFycmF5OjpKU0J5dGVBcnJheSk6CisgICAgICAgICogcnVu
dGltZS9KU0NlbGwuaDoKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpKU0NlbGw6OmNyZWF0ZUR1bW15
U3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uaDoKKyAgICAgICAgKEpT
Qzo6SlNGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xv
YmFsRGF0YS5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsRGF0YTo6c3RvcmVWUHRycyk6Cisg
ICAgICAgIChKU0M6OkpTR2xvYmFsRGF0YTo6SlNHbG9iYWxEYXRhKToKKyAgICAgICAgKiBydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OnJl
c2V0KToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6
OkpTR2xvYmFsT2JqZWN0OjpKU0dsb2JhbE9iamVjdCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFs
T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVj
dC5oOgorICAgICAgICAoSlNDOjpKU05vdEFuT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU09OT2JqZWN0Ojpj
cmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAg
ICAoSlNDOjpKU09iamVjdDo6Y3JlYXRlSW5oZXJpdG9ySUQpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgIChKU0M6OkpTTm9uRmluYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
IChKU0M6OkpTRmluYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OmNy
ZWF0ZUVtcHR5T2JqZWN0U3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmluaGVy
aXRvcklEKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oOgor
ICAgICAgICAoSlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6
CisgICAgICAgICogcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmg6CisgICAgICAgIChK
U0M6OkpTUHJvcGVydHlOYW1lSXRlcmF0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICog
cnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTU3RhdGljU2Nv
cGVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5o
OgorICAgICAgICAoSlNDOjpSb3BlQnVpbGRlcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAg
KiBydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNWYXJpYWJsZU9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTV3JhcHBlck9iamVj
dC5oOgorICAgICAgICAoSlNDOjpKU1dyYXBwZXJPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9KU1pvbWJpZS5oOgorICAgICAgICAoSlNDOjpKU1pvbWJpZTo6Y3Jl
YXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL01hdGhPYmplY3QuaDoKKyAgICAgICAg
KEpTQzo6TWF0aE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL05h
dGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0
cnVjdG9yOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBydW50aW1lL05hdGl2
ZUVycm9yQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6TmF0aXZlRXJyb3JDb25zdHJ1Y3Rv
cjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL051bWJlckNvbnN0cnVjdG9y
Lmg6CisgICAgICAgIChKU0M6Ok51bWJlckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyT2JqZWN0Lmg6CisgICAgICAgIChKU0M6Ok51bWJlck9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVj
dG9yLmg6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6
UmVnRXhwQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9S
ZWdFeHBPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1
cmUpOgorICAgICAgICAqIHJ1bnRpbWUvU2NvcGVDaGFpbi5oOgorICAgICAgICAoSlNDOjpTY29w
ZUNoYWluTm9kZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09i
amVjdC5oOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZC5o
OgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZDo6
Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oOgor
ICAgICAgICAoSlNDOjpTdHJpbmdQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
ICogcnVudGltZS9TdHJ1Y3R1cmUuaDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpjcmVhdGUp
OgorCisyMDExLTAzLTE1ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKICAgICAg
ICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCiAKICAgICAgICAgSW50cm9kdWNlIExvY2Fs
PFQ+IHRvIGFsbG93IHVzIHRvIHN0YXJ0IG1vdmluZyB0byBwcmVjaXNlIG1hcmtpbmcgb2YgbG9j
YWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAppbmRleCBmYjZiYmUz
YjkzMGE4NDczNGU5Yzg0YmE5OTdlYjM1MTQ1MmRjZjEzLi5hNzViYjBjNmM0OWM2ZDIxMjRiNWFm
ZDBjZDQxYzViMDQwZjk1YWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5leHAKQEAgLTExMyw3ICsxMTMsNyBAQCBfX1pOM0pTQzEwSlNGdW5jdGlvbjZzX2luZm9FCiBf
X1pOM0pTQzEwdGhyb3dFcnJvckVQTlNfOUV4ZWNTdGF0ZUVOU183SlNWYWx1ZUUKIF9fWk4zSlND
MTB0aHJvd0Vycm9yRVBOU185RXhlY1N0YXRlRVBOU184SlNPYmplY3RFCiBfX1pOM0pTQzExSlNC
eXRlQXJyYXkxM3NfZGVmYXVsdEluZm9FCi1fX1pOM0pTQzExSlNCeXRlQXJyYXkxNWNyZWF0ZVN0
cnVjdHVyZUVOU183SlNWYWx1ZUVQS05TXzlDbGFzc0luZm9FCitfX1pOM0pTQzExSlNCeXRlQXJy
YXkxNWNyZWF0ZVN0cnVjdHVyZUVSTlNfMTJKU0dsb2JhbERhdGFFTlNfN0pTVmFsdWVFUEtOU185
Q2xhc3NJbmZvRQogX19aTjNKU0MxMUpTQnl0ZUFycmF5QzFFUE5TXzlFeGVjU3RhdGVFTjNXVEYx
N05vbk51bGxQYXNzUmVmUHRySU5TXzlTdHJ1Y3R1cmVFRUVQTlMzXzlCeXRlQXJyYXlFCiBfX1pO
M0pTQzExTWFya2VkU3BhY2UyMWFsbG9jYXRlRnJvbVNpemVDbGFzc0VSTlMwXzlTaXplQ2xhc3NF
CiBfX1pOM0pTQzExUGFyc2VyQXJlbmE1cmVzZXRFdgpAQCAtMjg3LDcgKzI4Nyw2IEBAIF9fWk4z
SlNDOEpTT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRp
ZmllckUKIF9fWk4zSlNDOEpTT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVq
CiBfX1pOM0pTQzhKU09iamVjdDE1dW53cmFwcGVkT2JqZWN0RXYKIF9fWk4zSlNDOEpTT2JqZWN0
MTZnZXRQcm9wZXJ0eU5hbWVzRVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5
RU5TXzE1RW51bWVyYXRpb25Nb2RlRQotX19aTjNKU0M4SlNPYmplY3QxN2NyZWF0ZUluaGVyaXRv
cklERXYKIF9fWk4zSlNDOEpTT2JqZWN0MTdkZWZpbmVPd25Qcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0
ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFYgogX19aTjNKU0M4
SlNPYmplY3QxN3B1dERpcmVjdEZ1bmN0aW9uRVBOU185RXhlY1N0YXRlRVBOU18xMEpTRnVuY3Rp
b25FagogX19aTjNKU0M4SlNPYmplY3QxN3B1dERpcmVjdEZ1bmN0aW9uRVBOU185RXhlY1N0YXRl
RVBOU18xNkludGVybmFsRnVuY3Rpb25FagpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAppbmRleCA2MmEyZTU0ZTFiYWI5MmMy
ZWZjMmVmMTFmNGNiODdhM2I2YjdjODBhLi41MGJhNzQ2ZWVkMTZkYjMwYWJkMjhlY2M0MDRkZjdj
MGI3YTgwNzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVi
dWdnZXJBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIv
RGVidWdnZXJBY3RpdmF0aW9uLmNwcApAQCAtMzEsNyArMzEsNyBAQAogbmFtZXNwYWNlIEpTQyB7
CiAKIERlYnVnZ2VyQWN0aXZhdGlvbjo6RGVidWdnZXJBY3RpdmF0aW9uKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNPYmplY3QqIGFjdGl2YXRpb24pCi0gICAgOiBKU05vbkZpbmFsT2JqZWN0
KERlYnVnZ2VyQWN0aXZhdGlvbjo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKKyAgICA6IEpT
Tm9uRmluYWxPYmplY3QoRGVidWdnZXJBY3RpdmF0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFs
RGF0YSwganNOdWxsKCkpKQogewogICAgIEFTU0VSVChhY3RpdmF0aW9uKTsKICAgICBBU1NFUlQo
YWN0aXZhdGlvbi0+aXNBY3RpdmF0aW9uT2JqZWN0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCmluZGV4IDAxYTQ5MDczMzYx
YjBkNjQxMzliZDQ2N2NiZWFhMDg1ZjE0ZTkyMjkuLmYyMmQyZmZiZDkxOTQzYWU0OGZjOTNmM2M3
ZTgwYTIxYWJhNGM5NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dl
ci9EZWJ1Z2dlckFjdGl2YXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdn
ZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKQEAgLTQ5LDkgKzQ5LDkgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIHZpcnR1YWwgSlNWYWx1ZSBsb29rdXBHZXR0ZXIoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICAgICAgdmlydHVhbCBKU1ZhbHVlIGxvb2t1
cFNldHRlcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogCi0g
ICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFs
dWUgcHJvdG90eXBlKSAKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVh
dGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkg
CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5
cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENv
dW50LCAmc19pbmZvKTsgCisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAogICAgICAgICB9CiAKICAgICBwcm90ZWN0
ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCmluZGV4IDVmZmU3NDFjNDgy
NmY4MTkwYzZiZWY3ZTk1Y2FjMjFmM2E5NmMxOWQuLmZiOWFkMTFlMDA3ZDQ5NmQ4MWU1M2JkYmE2
MjM1ZjUwYjA0NmFhNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
U3R1YnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCkBA
IC0xMTc0LDcgKzExNzQsNyBAQCBERUZJTkVfU1RVQl9GVU5DVElPTihFbmNvZGVkSlNWYWx1ZSwg
b3BfY3JlYXRlX3RoaXMpCiAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmU7CiAgICAgSlNWYWx1ZSBw
cm90byA9IHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCk7CiAgICAgaWYgKHByb3RvLmlzT2Jq
ZWN0KCkpCi0gICAgICAgIHN0cnVjdHVyZSA9IGFzT2JqZWN0KHByb3RvKS0+aW5oZXJpdG9ySUQo
KTsKKyAgICAgICAgc3RydWN0dXJlID0gYXNPYmplY3QocHJvdG8pLT5pbmhlcml0b3JJRCgqc3Rh
Y2tGcmFtZS5nbG9iYWxEYXRhKTsKICAgICBlbHNlCiAgICAgICAgIHN0cnVjdHVyZSA9IGNvbnN0
cnVjdG9yLT5zY29wZSgpLT5nbG9iYWxPYmplY3QtPmVtcHR5T2JqZWN0U3RydWN0dXJlKCk7CiAg
ICAgSlNWYWx1ZSByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChjYWxsRnJhbWUsIHN0cnVj
dHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDE4NzM2NTkxMjhiOWNhNzg0MjMwZTAzZmZj
ZWZiNWVhM2VkZjBkNWMuLjhjY2IwMzk4NTA2YmQ5YTMxYmRhNmE3OWM5MDZkN2IxNGQ0MTRmODIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC0xNDEsMTQgKzE0MSwxNCBAQCBsb25nIFN0b3BXYXRj
aDo6Z2V0RWxhcHNlZE1TKCkKIAogY2xhc3MgR2xvYmFsT2JqZWN0IDogcHVibGljIEpTR2xvYmFs
T2JqZWN0IHsKIHB1YmxpYzoKLSAgICBHbG9iYWxPYmplY3QoY29uc3QgVmVjdG9yPFVTdHJpbmc+
JiBhcmd1bWVudHMpOworICAgIEdsb2JhbE9iamVjdChKU0dsb2JhbERhdGEmLCBjb25zdCBWZWN0
b3I8VVN0cmluZz4mIGFyZ3VtZW50cyk7CiAgICAgdmlydHVhbCBVU3RyaW5nIGNsYXNzTmFtZSgp
IGNvbnN0IHsgcmV0dXJuICJnbG9iYWwiOyB9CiB9OwogQ09NUElMRV9BU1NFUlQoIUlzSW50ZWdl
cjxHbG9iYWxPYmplY3Q+Ojp2YWx1ZSwgV1RGX0lzSW50ZWdlcl9HbG9iYWxPYmplY3RfZmFsc2Up
OwogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChHbG9iYWxPYmplY3QpOwogCi1HbG9iYWxPYmpl
Y3Q6Okdsb2JhbE9iamVjdChjb25zdCBWZWN0b3I8VVN0cmluZz4mIGFyZ3VtZW50cykKLSAgICA6
IEpTR2xvYmFsT2JqZWN0KCkKK0dsb2JhbE9iamVjdDo6R2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgY29uc3QgVmVjdG9yPFVTdHJpbmc+JiBhcmd1bWVudHMpCisgICAgOiBK
U0dsb2JhbE9iamVjdChnbG9iYWxEYXRhKQogewogICAgIHB1dERpcmVjdEZ1bmN0aW9uKGdsb2Jh
bEV4ZWMoKSwgbmV3IChnbG9iYWxFeGVjKCkpIEpTRnVuY3Rpb24oZ2xvYmFsRXhlYygpLCB0aGlz
LCBmdW5jdGlvblN0cnVjdHVyZSgpLCAxLCBJZGVudGlmaWVyKGdsb2JhbEV4ZWMoKSwgImRlYnVn
IiksIGZ1bmN0aW9uRGVidWcpKTsKICAgICBwdXREaXJlY3RGdW5jdGlvbihnbG9iYWxFeGVjKCks
IG5ldyAoZ2xvYmFsRXhlYygpKSBKU0Z1bmN0aW9uKGdsb2JhbEV4ZWMoKSwgdGhpcywgZnVuY3Rp
b25TdHJ1Y3R1cmUoKSwgMSwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJwcmludCIpLCBmdW5j
dGlvblByaW50KSk7CkBAIC0yMTIsNyArMjEyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvblJ1bihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKCFmaWxsQnVmZmVyV2l0
aENvbnRlbnRzT2ZGaWxlKGZpbGVOYW1lLCBzY3JpcHQpKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHRocm93RXJyb3IoZXhlYywgY3JlYXRlRXJyb3IoZXhlYywgIkNvdWxkIG5vdCBv
cGVuIGZpbGUuIikpKTsKIAotICAgIEdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbmV3ICgm
ZXhlYy0+Z2xvYmFsRGF0YSgpKSBHbG9iYWxPYmplY3QoVmVjdG9yPFVTdHJpbmc+KCkpOworICAg
IEdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbmV3ICgmZXhlYy0+Z2xvYmFsRGF0YSgpKSBH
bG9iYWxPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBWZWN0b3I8VVN0cmluZz4oKSk7CiAKICAg
ICBTdG9wV2F0Y2ggc3RvcFdhdGNoOwogICAgIHN0b3BXYXRjaC5zdGFydCgpOwpAQCAtNTM2LDcg
KzUzNiw3IEBAIGludCBqc2NtYWluKGludCBhcmdjLCBjaGFyKiogYXJndiwgSlNHbG9iYWxEYXRh
KiBnbG9iYWxEYXRhKQogICAgIE9wdGlvbnMgb3B0aW9uczsKICAgICBwYXJzZUFyZ3VtZW50cyhh
cmdjLCBhcmd2LCBvcHRpb25zLCBnbG9iYWxEYXRhKTsKIAotICAgIEdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0ID0gbmV3IChnbG9iYWxEYXRhKSBHbG9iYWxPYmplY3Qob3B0aW9ucy5hcmd1bWVu
dHMpOworICAgIEdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbmV3IChnbG9iYWxEYXRhKSBH
bG9iYWxPYmplY3QoKmdsb2JhbERhdGEsIG9wdGlvbnMuYXJndW1lbnRzKTsKICAgICBib29sIHN1
Y2Nlc3MgPSBydW5XaXRoU2NyaXB0cyhnbG9iYWxPYmplY3QsIG9wdGlvbnMuc2NyaXB0cywgb3B0
aW9ucy5kdW1wKTsKICAgICBpZiAob3B0aW9ucy5pbnRlcmFjdGl2ZSAmJiBzdWNjZXNzKQogICAg
ICAgICBydW5JbnRlcmFjdGl2ZShnbG9iYWxPYmplY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Bcmd1bWVudHMuaAppbmRleCA5MGMzZjljYjg3ODUxOTRiNTRmNzRkZjI1NTJlZGE2
NjVhOTI2MDE4Li5iYjZiZjMyYWU3Mzk0ODY3Y2YwOTlhZDFlMWI3NGFkMjQ1YjRkNjYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaApAQCAtOTIsOSArOTIsOSBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIGQtPnJlZ2lzdGVycyA9ICZhY3RpdmF0aW9u
LT5yZWdpc3RlckF0KDApOwogICAgICAgICB9CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpIAorICAgICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKSAKICAgICAgICAgeyAKLSAgICAgICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCisgICAgICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7IAogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaAppbmRleCBlNDFkOGNhODNmYTkyZTJkNmI3
Y2QxZjM3MjE5OTliOWMxZTE0NDM3Li45NjY0MWJkMmJiYmM0NDFmMTBmYzc0NTQ2MDJjYzcxOWI4
ZTVlZWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVBy
b3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90
eXBlLmgKQEAgLTM1LDkgKzM1LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGlj
IGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsK
ICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQm9vbGVhbk9iamVjdC5oCmluZGV4IGUyYWYwYzI2YmNiNzM2ZmYzZDYyYzRiMWY3ZGJj
YjZkNzc2ZGQ0ODAuLmVmMmQ0MDM0ZDU1MzRmNDgwY2VjNjExODVjZGM0Y2FkMDczZjcwMWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmgKQEAgLTMx
LDkgKzMxLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNz
SW5mbyBzX2luZm87CiAgICAgICAgIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1
cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAg
ICAgICB9CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRGF0ZUluc3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5z
dGFuY2UuaAppbmRleCBlM2YzYmU5ODBiY2VlOGNkMzljOGQzMjU5NWU3ZmJhYTc0MGEzNThiLi42
Yzk3Nzg5N2Q5ZGFjYmU3ZmQxYWQwN2Q5YjM1YzJmZWVhY2E3MjI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaApAQCAtNTMsOSArNTMsOSBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBjYWxjdWxhdGVHcmVnb3JpYW5EYXRlVGlt
ZVVUQyhleGVjKTsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVj
dHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAg
ICAgICAgIH0KIAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlUHJvdG90eXBlLmgKaW5kZXggODYxNWJlZmU4OTYwOTdkOWZkZjdhZDQ1NzYyYWExNzNi
ZWYxMzRlZC4uMGViYmVkYzdlMzAyZDBhZDc3NzI3NTIxN2Y3YTMxYTFiZGY1YjQyOCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuaApAQCAtMzYsOSAr
MzYsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZv
IHNfaW5mbzsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0
cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVl
IHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAKICAg
ICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
cnJvckluc3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3Rh
bmNlLmgKaW5kZXggYzFiZWVmNzc1MmNlMTAwMmIxMmE1ZWZkMDM2M2JkNmM5YWY2ZWY1ZC4uODJk
YmYwZjU2MzgyZWJjMDg1NDJkNTcxNGIxNjNiZWM5YjZiNzQyMSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaApAQCAtMjksOSArMjksOSBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8g
c19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3Ry
dWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1
Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUg
cHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255
bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAg
ICAgICBzdGF0aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRlKEpTR2xvYmFsRGF0YSosIE5vbk51bGxQ
YXNzUmVmUHRyPFN0cnVjdHVyZT4sIGNvbnN0IFVTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAppbmRleCAyZmYyYjg1ZmU4ZjM3ZDIwYmM4NzA4Yzdl
NmE0MWM0ZmRiMTBjMmJjLi43YTQ4ZDZjNmM1YzI1ZmI2NDY0MGRlMjEwYmRiOTdkODkwNmIxN2Zl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCkBAIC02NSw3
ICs2NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIG1fbnVtUGFyYW1l
dGVyc0ZvckNhbGwgPT0gTlVNX1BBUkFNRVRFUlNfSVNfSE9TVDsKICAgICAgICAgfQogCi0gICAg
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUg
cHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhDb21wb3Vu
ZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAwKTsgfQorICAgICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAwKTsgfQogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSAwOwpAQCAtMjM3LDcgKzIzNyw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIGdlbmVyYXRlZEpJVENvZGVG
b3JDYWxsKCk7CiAgICAgICAgIH0KICNlbmRpZgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZShwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgMCk7IH0KKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVl
IHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlw
ZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwg
MCk7IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IE92ZXJyaWRlc01hcmtDaGlsZHJlbiB8IFNjcmlwdEV4ZWN1dGFibGU6OlN0
cnVjdHVyZUZsYWdzOwpAQCAtMjgyLDcgKzI4Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICB9CiAjZW5kaWYKICAgICAgICAgCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVy
ZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnlt
b3VzU2xvdENvdW50LCAwKTsgfQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+
IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG8p
IHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhD
b21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAwKTsgfQog
CiAgICAgcHJpdmF0ZToKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gT3ZlcnJpZGVzTWFya0NoaWxkcmVuIHwgU2NyaXB0RXhlY3V0YWJsZTo6U3RydWN0dXJl
RmxhZ3M7CkBAIC0zNzIsNyArMzcyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQg
ZGlzY2FyZENvZGUoKTsKICAgICAgICAgdm9pZCBtYXJrQ2hpbGRyZW4oTWFya1N0YWNrJik7CiAg
ICAgICAgIHN0YXRpYyBGdW5jdGlvbkV4ZWN1dGFibGUqIGZyb21HbG9iYWxDb2RlKGNvbnN0IElk
ZW50aWZpZXImLCBFeGVjU3RhdGUqLCBEZWJ1Z2dlciosIGNvbnN0IFNvdXJjZUNvZGUmLCBKU09i
amVjdCoqIGV4Y2VwdGlvbik7Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4g
Y3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3Vz
U2xvdENvdW50LCAwKTsgfQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG8pIHsg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhDb21w
b3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAwKTsgfQogCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKEpTR2xvYmFsRGF0YSosIGNv
bnN0IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUmLCBib29sIGZvcmNlVXNlc0Fy
Z3VtZW50cywgRnVuY3Rpb25QYXJhbWV0ZXJzKiwgYm9vbCwgaW50IGZpcnN0TGluZSwgaW50IGxh
c3RMaW5lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0
aW9uUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblBy
b3RvdHlwZS5oCmluZGV4IGZiMGJiNDg5MjRhMDUyMmFjOWM2MzJlNzMyNmNmMmI1ZjFmYWM3NzEu
LjQ0N2YwMGJkODEwZjVlNTllZjc5NmE1ODgyZWExY2Y2ZDRmMjVjODEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaApAQCAtMzAsOSAr
MzAsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRnVuY3Rpb25Qcm90b3R5cGUoRXhlY1N0
YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+KTsKICAg
ICAgICAgdm9pZCBhZGRGdW5jdGlvblByb3BlcnRpZXMoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmUqIGZ1bmN0aW9uU3RydWN0dXJlLCBKU0Z1bmN0aW9uKiogY2FsbEZ1bmN0
aW9uLCBKU0Z1bmN0aW9uKiogYXBwbHlGdW5jdGlvbik7CiAKLSAgICAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90bykKKyAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAg
ICB9CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvR2V0dGVyU2V0dGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0
ZXJTZXR0ZXIuaAppbmRleCA2OGE4YzcwNzBiYWYzZGJkNWI3ZmM3YjQ1YjIyMDdjZDJmYzI0OGNl
Li44MjQxMjc1ZjRkMjBkODUzMjEwZmI5ZjRhZDBmZDE2NmE4MzQxODA1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaApAQCAtNDcsOSArNDcsOSBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBzZXRHZXR0ZXIoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU09iamVjdCogZ2V0dGVyKSB7IG1fZ2V0dGVyLnNldChnbG9iYWxEYXRhLCB0aGlz
LCBnZXR0ZXIpOyB9CiAgICAgICAgIEpTT2JqZWN0KiBzZXR0ZXIoKSBjb25zdCB7IHJldHVybiBt
X3NldHRlci5nZXQoKTsgfQogICAgICAgICB2b2lkIHNldFNldHRlcihKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTT2JqZWN0KiBzZXR0ZXIpIHsgbV9zZXR0ZXIuc2V0KGdsb2JhbERhdGEsIHRo
aXMsIHNldHRlcik7IH0KLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVh
dGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNW
YWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKEdldHRlclNldHRlclR5cGUsIE92ZXJyaWRlc01h
cmtDaGlsZHJlbiksIEFub255bW91c1Nsb3RDb3VudCwgMCk7CisgICAgICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhHZXR0ZXJT
ZXR0ZXJUeXBlLCBPdmVycmlkZXNNYXJrQ2hpbGRyZW4pLCBBbm9ueW1vdXNTbG90Q291bnQsIDAp
OwogICAgICAgICB9CiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBib29sIGlzR2V0dGVy
U2V0dGVyKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRlcm5hbEZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRl
cm5hbEZ1bmN0aW9uLmgKaW5kZXggODQyN2I4Y2EyNGU0YTZhODc1Zjc1NTYxOWVlOGJjOGEyNmM2
Mzc0Zi4uMDhjOThhNTM4MGYxNzI5NTM2ZWQ5OTE5ZmZiYmI4NjU0OTBhYTE5NCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaApAQCAtMzks
OSArMzksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgY29uc3QgVVN0cmluZyBkaXNwbGF5
TmFtZShFeGVjU3RhdGUqKTsKICAgICAgICAgY29uc3QgVVN0cmluZyBjYWxjdWxhdGVkRGlzcGxh
eU5hbWUoRXhlY1N0YXRlKik7CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJl
PiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90bykgCisgICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
SlNWYWx1ZSBwcm90bykgCiAgICAgICAgIHsgCi0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUocHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5v
bnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCiAgICAgICAgIH0KIAogICAg
IHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QVBJVmFsdWVXcmFwcGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FQSVZh
bHVlV3JhcHBlci5oCmluZGV4IDQzZGQwZDM5YTc4ODI2YzYyMjdjYmM4Y2NjYmQ5ZjA3NDdlZDYw
MDMuLjU0ZmU5MDlhYmNhMGE0NDBhNTk2YjcxMGNhNTVmMWIwMDBlNzFlOTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQVBJVmFsdWVXcmFwcGVyLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBUElWYWx1ZVdyYXBwZXIuaApAQCAtMzUs
OSArMzUsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNBUElW
YWx1ZVdyYXBwZXIoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisg
ICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKENvbXBv
dW5kVHlwZSwgT3ZlcnJpZGVzTWFya0NoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1l
cyksIEFub255bW91c1Nsb3RDb3VudCwgMCk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIE92
ZXJyaWRlc01hcmtDaGlsZHJlbiB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMpLCBBbm9ueW1v
dXNTbG90Q291bnQsIDApOwogICAgICAgICB9CiAKICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCmluZGV4IGViYzk5ZjFlYzBlNTUyYTM5ODhk
ZGUwMTFjMzA4MjFlYjY5Y2ZkMTguLjJhOTAzOTA4Njc1N2E2YWE1MmE5ZjQzMTkzZmY2YmZiNzBh
NDg5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZh
dGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5o
CkBAIC02Niw3ICs2Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAKICAgICAgICAgc3Rh
dGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90bykgeyByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUocHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgfQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpT
VmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3Rv
LCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3Vu
dCwgJnNfaW5mbyk7IH0KIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgTmVl
ZHNUaGlzQ29udmVyc2lvbiB8IE92ZXJyaWRlc01hcmtDaGlsZHJlbiB8IE92ZXJyaWRlc0dldFBy
b3BlcnR5TmFtZXMgfCBKU1ZhcmlhYmxlT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKaW5kZXggODIyYjg0Y2RkZDZmMjY1NDY2
MmZlY2E2NmJlY2JiOGFmYTkyMjQxNi4uMWQ2MjFmZTlmOTBkMDRjMzRmZGNhMjIyYTllZmJlNDEy
NTBiNWUyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJh
eS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKQEAg
LTEyNyw3ICsxMjcsNyBAQCBpbmxpbmUgdm9pZCBKU0FycmF5OjpjaGVja0NvbnNpc3RlbmN5KENv
bnNpc3RlbmN5Q2hlY2tUeXBlKQogI2VuZGlmCiAKIEpTQXJyYXk6OkpTQXJyYXkoVlB0clN0ZWFs
aW5nSGFja1R5cGUpCi0gICAgOiBKU05vbkZpbmFsT2JqZWN0KGNyZWF0ZVN0cnVjdHVyZShqc051
bGwoKSkpCisgICAgOiBKU05vbkZpbmFsT2JqZWN0KFN0cnVjdHVyZTo6Y3JlYXRlKFN0cnVjdHVy
ZTo6VlB0clN0ZWFsaW5nSGFjaywgJnNfaW5mbykpCiB7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZz
X2luZm8pKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
cnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCmluZGV4IDI0
ZGVmN2IwNDNjOGNhYmUzNmU0OTUxZTI4OGUxYmE3MzY1NmU0ZDMuLjlhNTRhYWI0Y2ZkZjQ3MmEy
MTViZTVhMDM3OGE1NDc3Y2RmMDRlNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0FycmF5LmgKQEAgLTEyNCw5ICsxMjQsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9p
ZCBmaWxsQXJnTGlzdChFeGVjU3RhdGUqLCBNYXJrZWRBcmd1bWVudEJ1ZmZlciYpOwogICAgICAg
ICB2b2lkIGNvcHlUb1JlZ2lzdGVycyhFeGVjU3RhdGUqLCBSZWdpc3RlciosIHVpbnQzMl90KTsK
IAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShK
U1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBj
cmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlw
ZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3Rv
dHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90
Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAgICAgICAgIAogICAg
ICAgICBpbmxpbmUgdm9pZCBtYXJrQ2hpbGRyZW5EaXJlY3QoTWFya1N0YWNrJiBtYXJrU3RhY2sp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXku
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCmluZGV4
IGFlNzM1ZGMzZDRkZmFiNjEyZWM3YmJmNTg1NjUyYTc5MTZjNmM3OGQuLmZiYWVhMWRmNmFhMmNl
ZjgwZDY3ZDQxMWRlMjQ5OWU1Y2Y1ZTFjNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0J5dGVBcnJheS5jcHAKQEAgLTUwLDkgKzUwLDkgQEAgSlNCeXRlQXJyYXk6On5K
U0J5dGVBcnJheSgpCiAjZW5kaWYKIAogCi1QYXNzUmVmUHRyPFN0cnVjdHVyZT4gSlNCeXRlQXJy
YXk6OmNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgSlNDOjpDbGFzc0lu
Zm8qIGNsYXNzSW5mbykKK1Bhc3NSZWZQdHI8U3RydWN0dXJlPiBKU0J5dGVBcnJheTo6Y3JlYXRl
U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUsIGNv
bnN0IEpTQzo6Q2xhc3NJbmZvKiBjbGFzc0luZm8pCiB7Ci0gICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBB
bm9ueW1vdXNTbG90Q291bnQsIGNsYXNzSW5mbyk7CisgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsIGNsYXNzSW5mbyk7CiB9CiAKIGJvb2wgSlNCeXRl
QXJyYXk6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKaW5kZXggNmU5MTU5NGJlZTE3ZDQ2MDg5ZjU0MjQ0
ZGMyYmFhMmYzZjYwOGE1NC4uZTY3NDk1ODBiMTI0MzMyY2I4YmE0ZDEwZjRjNGY1YmY1NGVkNGRk
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXku
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCkBAIC03
Niw3ICs3Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAKICAgICAgICAgSlNCeXRl
QXJyYXkoRXhlY1N0YXRlKiwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiwgV1RGOjpCeXRl
QXJyYXkqIHN0b3JhZ2UpOwotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgSlNDOjpDbGFzc0luZm8qID0g
JnNfZGVmYXVsdEluZm8pOworICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmLCBKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgSlND
OjpDbGFzc0luZm8qID0gJnNfZGVmYXVsdEluZm8pOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFt
ZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKQEAgLTEwMiw3ICsxMDIsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICBwcml2YXRlOgogICAgICAgICBlbnVtIFZQdHJTdGVhbGluZ0hhY2tUeXBlIHsgVlB0
clN0ZWFsaW5nSGFjayB9OwogICAgICAgICBKU0J5dGVBcnJheShWUHRyU3RlYWxpbmdIYWNrVHlw
ZSkKLSAgICAgICAgICAgIDogSlNOb25GaW5hbE9iamVjdChjcmVhdGVTdHJ1Y3R1cmUoanNOdWxs
KCkpKQorICAgICAgICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KFN0cnVjdHVyZTo6Y3JlYXRlKFN0
cnVjdHVyZTo6VlB0clN0ZWFsaW5nSGFjaywgJnNfaW5mbykpCiAgICAgICAgIHsKICAgICAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCmluZGV4IGQ1NTBmMjJjMjdh
ZGY0ZGJlYjE4ZjAwNDM0ZThmYTlkYzM1ZDNhMzYuLjQ3OTFiNGUxOGRhY2ZlMjgzODdkOTk5ZDgy
YTQ0N2EyNTE3OWFlZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCkBA
IC03Miw5ICs3Miw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIH5KU0NlbGwo
KTsKIAogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBj
cmVhdGVEdW1teVN0cnVjdHVyZSgpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVy
ZT4gY3JlYXRlRHVtbXlTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQogICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoanNOdWxsKCksIFR5cGVJ
bmZvKFVuc3BlY2lmaWVkVHlwZSksIEFub255bW91c1Nsb3RDb3VudCwgMCk7CisgICAgICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwganNOdWxsKCksIFR5cGVJbmZv
KFVuc3BlY2lmaWVkVHlwZSksIEFub255bW91c1Nsb3RDb3VudCwgMCk7CiAgICAgICAgIH0KIAog
ICAgICAgICAvLyBRdWVyeWluZyB0aGUgdHlwZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTRnVuY3Rpb24uaAppbmRleCA2YmMzZTgzZDEwMzA2YjhiYjRmY2YwYTQ1ZTBmZGE3ZGRi
ZTFjNDBiLi41MDViOWRlMjcyYjVkNGQ1Y2FkYjAwYWIxMGM0YmVmOWZiM2I2MjNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCkBAIC03Myw5ICs3Myw5IEBA
IG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBKU19FWFBPUlREQVRBIGNvbnN0IENs
YXNzSW5mbyBzX2luZm87CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBj
cmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpIAorICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IEpTVmFsdWUgcHJvdG90eXBlKSAKICAgICAgICAgeyAKLSAgICAgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCisgICAgICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAogICAg
ICAgICB9CiAKICAgICAgICAgTmF0aXZlRnVuY3Rpb24gbmF0aXZlRnVuY3Rpb24oKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwCmluZGV4IDhkOGY3
ZTNmYWM5NTgwYTI0MTkyZWVkZjQzMDg1OWM0MzE2MjNlYWEuLjJhNTlmOTE3NDkxNzJmOGJhYTli
Yjc0MGNkZTMwYzg5YTk5YTNlM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsRGF0YS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxEYXRhLmNwcApAQCAtMTA4LDggKzEwOCw4IEBAIHZvaWQgSlNHbG9iYWxEYXRh
OjpzdG9yZVZQdHJzKCkKIAogICAgIENPTVBJTEVfQVNTRVJUKHNpemVvZihKU0Z1bmN0aW9uKSA8
PSBzaXplb2Yoc3RvcmFnZSksIHNpemVvZl9KU0Z1bmN0aW9uX211c3RfYmVfbGVzc190aGFuX3N0
b3JhZ2UpOwogICAgIGNoYXIgZXhlY3V0YWJsZVN0b3JhZ2Vbc2l6ZW9mKFZQdHJIYWNrRXhlY3V0
YWJsZSldOwotICAgIFZQdHJIYWNrRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IG5ldyAoZXhlY3V0
YWJsZVN0b3JhZ2UpIFZQdHJIYWNrRXhlY3V0YWJsZShWUHRySGFja0V4ZWN1dGFibGU6OmNyZWF0
ZVN0cnVjdHVyZShqc051bGwoKSkpOwotICAgIEpTQ2VsbCoganNGdW5jdGlvbiA9IG5ldyAoc3Rv
cmFnZSkgSlNGdW5jdGlvbihKU0Z1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpLCBl
eGVjdXRhYmxlKTsKKyAgICBWUHRySGFja0V4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBuZXcgKGV4
ZWN1dGFibGVTdG9yYWdlKSBWUHRySGFja0V4ZWN1dGFibGUoU3RydWN0dXJlOjpjcmVhdGUoU3Ry
dWN0dXJlOjpWUHRyU3RlYWxpbmdIYWNrLCAwKSk7CisgICAgSlNDZWxsKiBqc0Z1bmN0aW9uID0g
bmV3IChzdG9yYWdlKSBKU0Z1bmN0aW9uKFN0cnVjdHVyZTo6Y3JlYXRlKFN0cnVjdHVyZTo6VlB0
clN0ZWFsaW5nSGFjaywgJkpTRnVuY3Rpb246OnNfaW5mbyksIGV4ZWN1dGFibGUpOwogICAgIEpT
R2xvYmFsRGF0YTo6anNGdW5jdGlvblZQdHIgPSBqc0Z1bmN0aW9uLT52cHRyKCk7CiAgICAganNG
dW5jdGlvbi0+fkpTQ2VsbCgpOwogfQpAQCAtMTI2LDIyICsxMjYsMjIgQEAgSlNHbG9iYWxEYXRh
OjpKU0dsb2JhbERhdGEoR2xvYmFsRGF0YVR5cGUgZ2xvYmFsRGF0YVR5cGUsIFRocmVhZFN0YWNr
VHlwZSB0aHJlYWQKICAgICAsIHJlZ0V4cFRhYmxlKGZhc3ROZXc8SGFzaFRhYmxlPihKU0M6OnJl
Z0V4cFRhYmxlKSkKICAgICAsIHJlZ0V4cENvbnN0cnVjdG9yVGFibGUoZmFzdE5ldzxIYXNoVGFi
bGU+KEpTQzo6cmVnRXhwQ29uc3RydWN0b3JUYWJsZSkpCiAgICAgLCBzdHJpbmdUYWJsZShmYXN0
TmV3PEhhc2hUYWJsZT4oSlNDOjpzdHJpbmdUYWJsZSkpCi0gICAgLCBhY3RpdmF0aW9uU3RydWN0
dXJlKEpTQWN0aXZhdGlvbjo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKLSAgICAsIGludGVy
cnVwdGVkRXhlY3V0aW9uRXJyb3JTdHJ1Y3R1cmUoSlNOb25GaW5hbE9iamVjdDo6Y3JlYXRlU3Ry
dWN0dXJlKGpzTnVsbCgpKSkKLSAgICAsIHRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvclN0cnVjdHVy
ZShKU05vbkZpbmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKQotICAgICwgc3Rh
dGljU2NvcGVTdHJ1Y3R1cmUoSlNTdGF0aWNTY29wZU9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKGpz
TnVsbCgpKSkKLSAgICAsIHN0cmljdEV2YWxBY3RpdmF0aW9uU3RydWN0dXJlKFN0cmljdEV2YWxB
Y3RpdmF0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKQotICAgICwgc3RyaW5nU3RydWN0
dXJlKEpTU3RyaW5nOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKQotICAgICwgbm90QW5PYmpl
Y3RTdHJ1Y3R1cmUoSlNOb3RBbk9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKLSAg
ICAsIHByb3BlcnR5TmFtZUl0ZXJhdG9yU3RydWN0dXJlKEpTUHJvcGVydHlOYW1lSXRlcmF0b3I6
OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSkpCi0gICAgLCBnZXR0ZXJTZXR0ZXJTdHJ1Y3R1cmUo
R2V0dGVyU2V0dGVyOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKQotICAgICwgYXBpV3JhcHBl
clN0cnVjdHVyZShKU0FQSVZhbHVlV3JhcHBlcjo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkK
LSAgICAsIHNjb3BlQ2hhaW5Ob2RlU3RydWN0dXJlKFNjb3BlQ2hhaW5Ob2RlOjpjcmVhdGVTdHJ1
Y3R1cmUoanNOdWxsKCkpKQotICAgICwgZXhlY3V0YWJsZVN0cnVjdHVyZShFeGVjdXRhYmxlQmFz
ZTo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKLSAgICAsIGV2YWxFeGVjdXRhYmxlU3RydWN0
dXJlKEV2YWxFeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKQotICAgICwgcHJv
Z3JhbUV4ZWN1dGFibGVTdHJ1Y3R1cmUoUHJvZ3JhbUV4ZWN1dGFibGU6OmNyZWF0ZVN0cnVjdHVy
ZShqc051bGwoKSkpCi0gICAgLCBmdW5jdGlvbkV4ZWN1dGFibGVTdHJ1Y3R1cmUoRnVuY3Rpb25F
eGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKQotICAgICwgZHVtbXlNYXJrYWJs
ZUNlbGxTdHJ1Y3R1cmUoSlNDZWxsOjpjcmVhdGVEdW1teVN0cnVjdHVyZSgpKQorICAgICwgYWN0
aXZhdGlvblN0cnVjdHVyZShKU0FjdGl2YXRpb246OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywganNO
dWxsKCkpKQorICAgICwgaW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvclN0cnVjdHVyZShKU05vbkZp
bmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIGpzTnVsbCgpKSkKKyAgICAsIHRlcm1p
bmF0ZWRFeGVjdXRpb25FcnJvclN0cnVjdHVyZShKU05vbkZpbmFsT2JqZWN0OjpjcmVhdGVTdHJ1
Y3R1cmUoKnRoaXMsIGpzTnVsbCgpKSkKKyAgICAsIHN0YXRpY1Njb3BlU3RydWN0dXJlKEpTU3Rh
dGljU2NvcGVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywganNOdWxsKCkpKQorICAgICwg
c3RyaWN0RXZhbEFjdGl2YXRpb25TdHJ1Y3R1cmUoU3RyaWN0RXZhbEFjdGl2YXRpb246OmNyZWF0
ZVN0cnVjdHVyZSgqdGhpcywganNOdWxsKCkpKQorICAgICwgc3RyaW5nU3RydWN0dXJlKEpTU3Ry
aW5nOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIGpzTnVsbCgpKSkKKyAgICAsIG5vdEFuT2JqZWN0
U3RydWN0dXJlKEpTTm90QW5PYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywganNOdWxsKCkp
KQorICAgICwgcHJvcGVydHlOYW1lSXRlcmF0b3JTdHJ1Y3R1cmUoSlNQcm9wZXJ0eU5hbWVJdGVy
YXRvcjo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCBqc051bGwoKSkpCisgICAgLCBnZXR0ZXJTZXR0
ZXJTdHJ1Y3R1cmUoR2V0dGVyU2V0dGVyOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIGpzTnVsbCgp
KSkKKyAgICAsIGFwaVdyYXBwZXJTdHJ1Y3R1cmUoSlNBUElWYWx1ZVdyYXBwZXI6OmNyZWF0ZVN0
cnVjdHVyZSgqdGhpcywganNOdWxsKCkpKQorICAgICwgc2NvcGVDaGFpbk5vZGVTdHJ1Y3R1cmUo
U2NvcGVDaGFpbk5vZGU6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywganNOdWxsKCkpKQorICAgICwg
ZXhlY3V0YWJsZVN0cnVjdHVyZShFeGVjdXRhYmxlQmFzZTo6Y3JlYXRlU3RydWN0dXJlKCp0aGlz
LCBqc051bGwoKSkpCisgICAgLCBldmFsRXhlY3V0YWJsZVN0cnVjdHVyZShFdmFsRXhlY3V0YWJs
ZTo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCBqc051bGwoKSkpCisgICAgLCBwcm9ncmFtRXhlY3V0
YWJsZVN0cnVjdHVyZShQcm9ncmFtRXhlY3V0YWJsZTo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCBq
c051bGwoKSkpCisgICAgLCBmdW5jdGlvbkV4ZWN1dGFibGVTdHJ1Y3R1cmUoRnVuY3Rpb25FeGVj
dXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIGpzTnVsbCgpKSkKKyAgICAsIGR1bW15TWFy
a2FibGVDZWxsU3RydWN0dXJlKEpTQ2VsbDo6Y3JlYXRlRHVtbXlTdHJ1Y3R1cmUoKnRoaXMpKQog
ICAgICwgaWRlbnRpZmllclRhYmxlKGdsb2JhbERhdGFUeXBlID09IERlZmF1bHQgPyB3dGZUaHJl
YWREYXRhKCkuY3VycmVudElkZW50aWZpZXJUYWJsZSgpIDogY3JlYXRlSWRlbnRpZmllclRhYmxl
KCkpCiAgICAgLCBwcm9wZXJ0eU5hbWVzKG5ldyBDb21tb25JZGVudGlmaWVycyh0aGlzKSkKICAg
ICAsIGVtcHR5TGlzdChuZXcgTWFya2VkQXJndW1lbnRCdWZmZXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggOTBiNDE2MDMwNGJh
NTU4ZGM4YjVmMzIwYTIwMjZkYzJhNjk5NjAzYy4uYTk2ZGVjMTExNWM3NTIzNTkyNDg0YWQ3NTNj
NjFiYzUyNDhkZTc0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmNwcApAQCAtMTc1LDY0ICsxNzUsNjQgQEAgdm9pZCBKU0dsb2JhbE9iamVj
dDo6cmVzZXQoSlNWYWx1ZSBwcm90b3R5cGUpCiAKICAgICAvLyBQcm90b3R5cGVzCiAKLSAgICBt
X2Z1bmN0aW9uUHJvdG90eXBlLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5ldyAoZXhl
YykgRnVuY3Rpb25Qcm90b3R5cGUoZXhlYywgdGhpcywgRnVuY3Rpb25Qcm90b3R5cGU6OmNyZWF0
ZVN0cnVjdHVyZShqc051bGwoKSkpKTsgLy8gVGhlIHJlYWwgcHJvdG90eXBlIHdpbGwgYmUgc2V0
IG9uY2UgT2JqZWN0UHJvdG90eXBlIGlzIGNyZWF0ZWQuCi0gICAgbV9mdW5jdGlvblN0cnVjdHVy
ZSA9IEpTRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZShtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgp
KTsKLSAgICBtX2ludGVybmFsRnVuY3Rpb25TdHJ1Y3R1cmUgPSBJbnRlcm5hbEZ1bmN0aW9uOjpj
cmVhdGVTdHJ1Y3R1cmUobV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSk7CisgICAgbV9mdW5jdGlv
blByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIEZ1bmN0
aW9uUHJvdG90eXBlKGV4ZWMsIHRoaXMsIEZ1bmN0aW9uUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1
cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBqc051bGwoKSkpKTsgLy8gVGhlIHJlYWwgcHJvdG90eXBl
IHdpbGwgYmUgc2V0IG9uY2UgT2JqZWN0UHJvdG90eXBlIGlzIGNyZWF0ZWQuCisgICAgbV9mdW5j
dGlvblN0cnVjdHVyZSA9IEpTRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxE
YXRhKCksIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpOworICAgIG1faW50ZXJuYWxGdW5jdGlv
blN0cnVjdHVyZSA9IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9i
YWxEYXRhKCksIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpOwogICAgIEpTRnVuY3Rpb24qIGNh
bGxGdW5jdGlvbiA9IDA7CiAgICAgSlNGdW5jdGlvbiogYXBwbHlGdW5jdGlvbiA9IDA7CiAgICAg
bV9mdW5jdGlvblByb3RvdHlwZS0+YWRkRnVuY3Rpb25Qcm9wZXJ0aWVzKGV4ZWMsIHRoaXMsIG1f
ZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksICZjYWxsRnVuY3Rpb24sICZhcHBseUZ1bmN0aW9uKTsK
ICAgICBtX2NhbGxGdW5jdGlvbi5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBjYWxsRnVu
Y3Rpb24pOwogICAgIG1fYXBwbHlGdW5jdGlvbi5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlz
LCBhcHBseUZ1bmN0aW9uKTsKLSAgICBtX29iamVjdFByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFs
RGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIE9iamVjdFByb3RvdHlwZShleGVjLCB0aGlzLCBPYmpl
Y3RQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSksIG1fZnVuY3Rpb25TdHJ1Y3R1
cmUuZ2V0KCkpKTsKKyAgICBtX29iamVjdFByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgp
LCB0aGlzLCBuZXcgKGV4ZWMpIE9iamVjdFByb3RvdHlwZShleGVjLCB0aGlzLCBPYmplY3RQcm90
b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIGpzTnVsbCgpKSwgbV9m
dW5jdGlvblN0cnVjdHVyZS5nZXQoKSkpOwogICAgIG1fZnVuY3Rpb25Qcm90b3R5cGUtPnN0cnVj
dHVyZSgpLT5zZXRQcm90b3R5cGVXaXRob3V0VHJhbnNpdGlvbihtX29iamVjdFByb3RvdHlwZS5n
ZXQoKSk7CiAKLSAgICBtX2VtcHR5T2JqZWN0U3RydWN0dXJlID0gbV9vYmplY3RQcm90b3R5cGUt
PmluaGVyaXRvcklEKCk7CisgICAgbV9lbXB0eU9iamVjdFN0cnVjdHVyZSA9IG1fb2JqZWN0UHJv
dG90eXBlLT5pbmhlcml0b3JJRChleGVjLT5nbG9iYWxEYXRhKCkpOwogCi0gICAgbV9jYWxsYmFj
a0Z1bmN0aW9uU3RydWN0dXJlID0gSlNDYWxsYmFja0Z1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUo
bV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSk7Ci0gICAgbV9hcmd1bWVudHNTdHJ1Y3R1cmUgPSBB
cmd1bWVudHM6OmNyZWF0ZVN0cnVjdHVyZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSk7Ci0gICAg
bV9jYWxsYmFja0NvbnN0cnVjdG9yU3RydWN0dXJlID0gSlNDYWxsYmFja0NvbnN0cnVjdG9yOjpj
cmVhdGVTdHJ1Y3R1cmUobV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpOwotICAgIG1fY2FsbGJhY2tP
YmplY3RTdHJ1Y3R1cmUgPSBKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0V2l0aEdsb2JhbE9iamVj
dD46OmNyZWF0ZVN0cnVjdHVyZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSk7CisgICAgbV9jYWxs
YmFja0Z1bmN0aW9uU3RydWN0dXJlID0gSlNDYWxsYmFja0Z1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1
cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKTsKKyAgICBt
X2FyZ3VtZW50c1N0cnVjdHVyZSA9IEFyZ3VtZW50czo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmds
b2JhbERhdGEoKSwgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpOworICAgIG1fY2FsbGJhY2tDb25z
dHJ1Y3RvclN0cnVjdHVyZSA9IEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJl
KGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpOworICAgIG1fY2Fs
bGJhY2tPYmplY3RTdHJ1Y3R1cmUgPSBKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0V2l0aEdsb2Jh
bE9iamVjdD46OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fb2JqZWN0UHJv
dG90eXBlLmdldCgpKTsKIAotICAgIG1fYXJyYXlQcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERh
dGEoKSwgdGhpcywgbmV3IChleGVjKSBBcnJheVByb3RvdHlwZSh0aGlzLCBBcnJheVByb3RvdHlw
ZTo6Y3JlYXRlU3RydWN0dXJlKG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkpOwotICAgIG1fYXJy
YXlTdHJ1Y3R1cmUgPSBKU0FycmF5OjpjcmVhdGVTdHJ1Y3R1cmUobV9hcnJheVByb3RvdHlwZS5n
ZXQoKSk7Ci0gICAgbV9yZWdFeHBNYXRjaGVzQXJyYXlTdHJ1Y3R1cmUgPSBSZWdFeHBNYXRjaGVz
QXJyYXk6OmNyZWF0ZVN0cnVjdHVyZShtX2FycmF5UHJvdG90eXBlLmdldCgpKTsKKyAgICBtX2Fy
cmF5UHJvdG90eXBlLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5ldyAoZXhlYykgQXJy
YXlQcm90b3R5cGUodGhpcywgQXJyYXlQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5n
bG9iYWxEYXRhKCksIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkpOworICAgIG1fYXJyYXlTdHJ1
Y3R1cmUgPSBKU0FycmF5OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX2Fy
cmF5UHJvdG90eXBlLmdldCgpKTsKKyAgICBtX3JlZ0V4cE1hdGNoZXNBcnJheVN0cnVjdHVyZSA9
IFJlZ0V4cE1hdGNoZXNBcnJheTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwg
bV9hcnJheVByb3RvdHlwZS5nZXQoKSk7CiAKLSAgICBtX3N0cmluZ1Byb3RvdHlwZS5zZXQoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIFN0cmluZ1Byb3RvdHlwZShleGVjLCB0
aGlzLCBTdHJpbmdQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShtX29iamVjdFByb3RvdHlwZS5n
ZXQoKSkpKTsKLSAgICBtX3N0cmluZ09iamVjdFN0cnVjdHVyZSA9IFN0cmluZ09iamVjdDo6Y3Jl
YXRlU3RydWN0dXJlKG1fc3RyaW5nUHJvdG90eXBlLmdldCgpKTsKKyAgICBtX3N0cmluZ1Byb3Rv
dHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIFN0cmluZ1Byb3Rv
dHlwZShleGVjLCB0aGlzLCBTdHJpbmdQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5n
bG9iYWxEYXRhKCksIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkpOworICAgIG1fc3RyaW5nT2Jq
ZWN0U3RydWN0dXJlID0gU3RyaW5nT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFs
RGF0YSgpLCBtX3N0cmluZ1Byb3RvdHlwZS5nZXQoKSk7CiAKLSAgICBtX2Jvb2xlYW5Qcm90b3R5
cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBCb29sZWFuUHJvdG90
eXBlKGV4ZWMsIHRoaXMsIEJvb2xlYW5Qcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShtX29iamVj
dFByb3RvdHlwZS5nZXQoKSksIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCkpKTsKLSAgICBtX2Jv
b2xlYW5PYmplY3RTdHJ1Y3R1cmUgPSBCb29sZWFuT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUobV9i
b29sZWFuUHJvdG90eXBlLmdldCgpKTsKKyAgICBtX2Jvb2xlYW5Qcm90b3R5cGUuc2V0KGV4ZWMt
Pmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBCb29sZWFuUHJvdG90eXBlKGV4ZWMsIHRo
aXMsIEJvb2xlYW5Qcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCks
IG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSwgbV9mdW5jdGlvblN0cnVjdHVyZS5nZXQoKSkpOwor
ICAgIG1fYm9vbGVhbk9iamVjdFN0cnVjdHVyZSA9IEJvb2xlYW5PYmplY3Q6OmNyZWF0ZVN0cnVj
dHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fYm9vbGVhblByb3RvdHlwZS5nZXQoKSk7CiAKLSAg
ICBtX251bWJlclByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4
ZWMpIE51bWJlclByb3RvdHlwZShleGVjLCB0aGlzLCBOdW1iZXJQcm90b3R5cGU6OmNyZWF0ZVN0
cnVjdHVyZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSksIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0
KCkpKTsKLSAgICBtX251bWJlck9iamVjdFN0cnVjdHVyZSA9IE51bWJlck9iamVjdDo6Y3JlYXRl
U3RydWN0dXJlKG1fbnVtYmVyUHJvdG90eXBlLmdldCgpKTsKKyAgICBtX251bWJlclByb3RvdHlw
ZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIE51bWJlclByb3RvdHlw
ZShleGVjLCB0aGlzLCBOdW1iZXJQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9i
YWxEYXRhKCksIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSwgbV9mdW5jdGlvblN0cnVjdHVyZS5n
ZXQoKSkpOworICAgIG1fbnVtYmVyT2JqZWN0U3RydWN0dXJlID0gTnVtYmVyT2JqZWN0OjpjcmVh
dGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX251bWJlclByb3RvdHlwZS5nZXQoKSk7
CiAKLSAgICBtX2RhdGVQcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbmV3
IChleGVjKSBEYXRlUHJvdG90eXBlKGV4ZWMsIHRoaXMsIERhdGVQcm90b3R5cGU6OmNyZWF0ZVN0
cnVjdHVyZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpKTsKLSAgICBtX2RhdGVTdHJ1Y3R1cmUg
PSBEYXRlSW5zdGFuY2U6OmNyZWF0ZVN0cnVjdHVyZShtX2RhdGVQcm90b3R5cGUuZ2V0KCkpOwor
ICAgIG1fZGF0ZVByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4
ZWMpIERhdGVQcm90b3R5cGUoZXhlYywgdGhpcywgRGF0ZVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0
dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKSk7CisgICAg
bV9kYXRlU3RydWN0dXJlID0gRGF0ZUluc3RhbmNlOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBtX2RhdGVQcm90b3R5cGUuZ2V0KCkpOwogCi0gICAgbV9yZWdFeHBQcm90b3R5
cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBSZWdFeHBQcm90b3R5
cGUoZXhlYywgdGhpcywgUmVnRXhwUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUobV9vYmplY3RQ
cm90b3R5cGUuZ2V0KCkpLCBtX2Z1bmN0aW9uU3RydWN0dXJlLmdldCgpKSk7Ci0gICAgbV9yZWdF
eHBTdHJ1Y3R1cmUgPSBSZWdFeHBPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZShtX3JlZ0V4cFByb3Rv
dHlwZS5nZXQoKSk7CisgICAgbV9yZWdFeHBQcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEo
KSwgdGhpcywgbmV3IChleGVjKSBSZWdFeHBQcm90b3R5cGUoZXhlYywgdGhpcywgUmVnRXhwUHJv
dG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX29iamVjdFByb3Rv
dHlwZS5nZXQoKSksIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCkpKTsKKyAgICBtX3JlZ0V4cFN0
cnVjdHVyZSA9IFJlZ0V4cE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEo
KSwgbV9yZWdFeHBQcm90b3R5cGUuZ2V0KCkpOwogCiAgICAgbV9tZXRob2RDYWxsRHVtbXkuc2V0
KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgY29uc3RydWN0RW1wdHlPYmplY3QoZXhlYykpOwog
Ci0gICAgRXJyb3JQcm90b3R5cGUqIGVycm9yUHJvdG90eXBlID0gbmV3IChleGVjKSBFcnJvclBy
b3RvdHlwZShleGVjLCB0aGlzLCBFcnJvclByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKG1fb2Jq
ZWN0UHJvdG90eXBlLmdldCgpKSwgbV9mdW5jdGlvblN0cnVjdHVyZS5nZXQoKSk7Ci0gICAgbV9l
cnJvclN0cnVjdHVyZSA9IEVycm9ySW5zdGFuY2U6OmNyZWF0ZVN0cnVjdHVyZShlcnJvclByb3Rv
dHlwZSk7CisgICAgRXJyb3JQcm90b3R5cGUqIGVycm9yUHJvdG90eXBlID0gbmV3IChleGVjKSBF
cnJvclByb3RvdHlwZShleGVjLCB0aGlzLCBFcnJvclByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJl
KGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpLCBtX2Z1bmN0aW9u
U3RydWN0dXJlLmdldCgpKTsKKyAgICBtX2Vycm9yU3RydWN0dXJlID0gRXJyb3JJbnN0YW5jZTo6
Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXJyb3JQcm90b3R5cGUpOwogCiAg
ICAgLy8gQ29uc3RydWN0b3JzCiAKLSAgICBKU0NlbGwqIG9iamVjdENvbnN0cnVjdG9yID0gbmV3
IChleGVjKSBPYmplY3RDb25zdHJ1Y3RvcihleGVjLCB0aGlzLCBPYmplY3RDb25zdHJ1Y3Rvcjo6
Y3JlYXRlU3RydWN0dXJlKG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBtX29iamVjdFByb3Rv
dHlwZS5nZXQoKSk7Ci0gICAgSlNDZWxsKiBmdW5jdGlvbkNvbnN0cnVjdG9yID0gbmV3IChleGVj
KSBGdW5jdGlvbkNvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIEZ1bmN0aW9uQ29uc3RydWN0b3I6OmNy
ZWF0ZVN0cnVjdHVyZShtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9mdW5jdGlvblByb3Rv
dHlwZS5nZXQoKSk7Ci0gICAgSlNDZWxsKiBhcnJheUNvbnN0cnVjdG9yID0gbmV3IChleGVjKSBB
cnJheUNvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIEFycmF5Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZShtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9hcnJheVByb3RvdHlwZS5nZXQoKSwg
bV9mdW5jdGlvblN0cnVjdHVyZS5nZXQoKSk7Ci0gICAgSlNDZWxsKiBzdHJpbmdDb25zdHJ1Y3Rv
ciA9IG5ldyAoZXhlYykgU3RyaW5nQ29uc3RydWN0b3IoZXhlYywgdGhpcywgU3RyaW5nQ29uc3Ry
dWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9mdW5j
dGlvblN0cnVjdHVyZS5nZXQoKSwgbV9zdHJpbmdQcm90b3R5cGUuZ2V0KCkpOwotICAgIEpTQ2Vs
bCogYm9vbGVhbkNvbnN0cnVjdG9yID0gbmV3IChleGVjKSBCb29sZWFuQ29uc3RydWN0b3IoZXhl
YywgdGhpcywgQm9vbGVhbkNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUobV9mdW5jdGlvblBy
b3RvdHlwZS5nZXQoKSksIG1fYm9vbGVhblByb3RvdHlwZS5nZXQoKSk7Ci0gICAgSlNDZWxsKiBu
dW1iZXJDb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgTnVtYmVyQ29uc3RydWN0b3IoZXhlYywgdGhp
cywgTnVtYmVyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShtX2Z1bmN0aW9uUHJvdG90eXBl
LmdldCgpKSwgbV9udW1iZXJQcm90b3R5cGUuZ2V0KCkpOwotICAgIEpTQ2VsbCogZGF0ZUNvbnN0
cnVjdG9yID0gbmV3IChleGVjKSBEYXRlQ29uc3RydWN0b3IoZXhlYywgdGhpcywgRGF0ZUNvbnN0
cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUobV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIG1fZnVu
Y3Rpb25TdHJ1Y3R1cmUuZ2V0KCksIG1fZGF0ZVByb3RvdHlwZS5nZXQoKSk7CisgICAgSlNDZWxs
KiBvYmplY3RDb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgT2JqZWN0Q29uc3RydWN0b3IoZXhlYywg
dGhpcywgT2JqZWN0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRh
KCksIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSk7
CisgICAgSlNDZWxsKiBmdW5jdGlvbkNvbnN0cnVjdG9yID0gbmV3IChleGVjKSBGdW5jdGlvbkNv
bnN0cnVjdG9yKGV4ZWMsIHRoaXMsIEZ1bmN0aW9uQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVy
ZShleGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBtX2Z1bmN0
aW9uUHJvdG90eXBlLmdldCgpKTsKKyAgICBKU0NlbGwqIGFycmF5Q29uc3RydWN0b3IgPSBuZXcg
KGV4ZWMpIEFycmF5Q29uc3RydWN0b3IoZXhlYywgdGhpcywgQXJyYXlDb25zdHJ1Y3Rvcjo6Y3Jl
YXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQo
KSksIG1fYXJyYXlQcm90b3R5cGUuZ2V0KCksIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCkpOwor
ICAgIEpTQ2VsbCogc3RyaW5nQ29uc3RydWN0b3IgPSBuZXcgKGV4ZWMpIFN0cmluZ0NvbnN0cnVj
dG9yKGV4ZWMsIHRoaXMsIFN0cmluZ0NvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+
Z2xvYmFsRGF0YSgpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9mdW5jdGlvblN0cnVj
dHVyZS5nZXQoKSwgbV9zdHJpbmdQcm90b3R5cGUuZ2V0KCkpOworICAgIEpTQ2VsbCogYm9vbGVh
bkNvbnN0cnVjdG9yID0gbmV3IChleGVjKSBCb29sZWFuQ29uc3RydWN0b3IoZXhlYywgdGhpcywg
Qm9vbGVhbkNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBt
X2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9ib29sZWFuUHJvdG90eXBlLmdldCgpKTsKKyAg
ICBKU0NlbGwqIG51bWJlckNvbnN0cnVjdG9yID0gbmV3IChleGVjKSBOdW1iZXJDb25zdHJ1Y3Rv
cihleGVjLCB0aGlzLCBOdW1iZXJDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmds
b2JhbERhdGEoKSwgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIG1fbnVtYmVyUHJvdG90eXBl
LmdldCgpKTsKKyAgICBKU0NlbGwqIGRhdGVDb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgRGF0ZUNv
bnN0cnVjdG9yKGV4ZWMsIHRoaXMsIERhdGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4
ZWMtPmdsb2JhbERhdGEoKSwgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIG1fZnVuY3Rpb25T
dHJ1Y3R1cmUuZ2V0KCksIG1fZGF0ZVByb3RvdHlwZS5nZXQoKSk7CiAKLSAgICBtX3JlZ0V4cENv
bnN0cnVjdG9yLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5ldyAoZXhlYykgUmVnRXhw
Q29uc3RydWN0b3IoZXhlYywgdGhpcywgUmVnRXhwQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVy
ZShtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9yZWdFeHBQcm90b3R5cGUuZ2V0KCkpKTsK
KyAgICBtX3JlZ0V4cENvbnN0cnVjdG9yLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5l
dyAoZXhlYykgUmVnRXhwQ29uc3RydWN0b3IoZXhlYywgdGhpcywgUmVnRXhwQ29uc3RydWN0b3I6
OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25Qcm90b3R5cGUu
Z2V0KCkpLCBtX3JlZ0V4cFByb3RvdHlwZS5nZXQoKSkpOwogCi0gICAgbV9lcnJvckNvbnN0cnVj
dG9yLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5ldyAoZXhlYykgRXJyb3JDb25zdHJ1
Y3RvcihleGVjLCB0aGlzLCBFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUobV9mdW5j
dGlvblByb3RvdHlwZS5nZXQoKSksIGVycm9yUHJvdG90eXBlKSk7CisgICAgbV9lcnJvckNvbnN0
cnVjdG9yLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5ldyAoZXhlYykgRXJyb3JDb25z
dHJ1Y3RvcihleGVjLCB0aGlzLCBFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgZXJyb3JQcm90b3R5
cGUpKTsKIAotICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IG5hdGl2ZUVycm9yUHJvdG90eXBlU3RydWN0
dXJlID0gTmF0aXZlRXJyb3JQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShlcnJvclByb3RvdHlw
ZSk7Ci0gICAgUmVmUHRyPFN0cnVjdHVyZT4gbmF0aXZlRXJyb3JTdHJ1Y3R1cmUgPSBOYXRpdmVF
cnJvckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUobV9mdW5jdGlvblByb3RvdHlwZS5nZXQo
KSk7CisgICAgUmVmUHRyPFN0cnVjdHVyZT4gbmF0aXZlRXJyb3JQcm90b3R5cGVTdHJ1Y3R1cmUg
PSBOYXRpdmVFcnJvclByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEo
KSwgZXJyb3JQcm90b3R5cGUpOworICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IG5hdGl2ZUVycm9yU3Ry
dWN0dXJlID0gTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmds
b2JhbERhdGEoKSwgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSk7CiAgICAgbV9ldmFsRXJyb3JD
b25zdHJ1Y3Rvci5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIE5hdGl2
ZUVycm9yQ29uc3RydWN0b3IoZXhlYywgdGhpcywgbmF0aXZlRXJyb3JTdHJ1Y3R1cmUsIG5hdGl2
ZUVycm9yUHJvdG90eXBlU3RydWN0dXJlLCAiRXZhbEVycm9yIikpOwogICAgIG1fcmFuZ2VFcnJv
ckNvbnN0cnVjdG9yLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5ldyAoZXhlYykgTmF0
aXZlRXJyb3JDb25zdHJ1Y3RvcihleGVjLCB0aGlzLCBuYXRpdmVFcnJvclN0cnVjdHVyZSwgbmF0
aXZlRXJyb3JQcm90b3R5cGVTdHJ1Y3R1cmUsICJSYW5nZUVycm9yIikpOwogICAgIG1fcmVmZXJl
bmNlRXJyb3JDb25zdHJ1Y3Rvci5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4
ZWMpIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoZXhlYywgdGhpcywgbmF0aXZlRXJyb3JTdHJ1Y3R1
cmUsIG5hdGl2ZUVycm9yUHJvdG90eXBlU3RydWN0dXJlLCAiUmVmZXJlbmNlRXJyb3IiKSk7CkBA
IC0yNzIsMTEgKzI3MiwxMSBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0OjpyZXNldChKU1ZhbHVlIHBy
b3RvdHlwZSkKIAogICAgIC8vIFNldCBnbG9iYWwgdmFsdWVzLgogICAgIEdsb2JhbFByb3BlcnR5
SW5mbyBzdGF0aWNHbG9iYWxzW10gPSB7Ci0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyhJZGVu
dGlmaWVyKGV4ZWMsICJNYXRoIiksIG5ldyAoZXhlYykgTWF0aE9iamVjdChleGVjLCB0aGlzLCBN
YXRoT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUobV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKSwgRG9u
dEVudW0gfCBEb250RGVsZXRlKSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKElkZW50aWZp
ZXIoZXhlYywgIk1hdGgiKSwgbmV3IChleGVjKSBNYXRoT2JqZWN0KGV4ZWMsIHRoaXMsIE1hdGhP
YmplY3Q6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fb2JqZWN0UHJvdG90
eXBlLmdldCgpKSksIERvbnRFbnVtIHwgRG9udERlbGV0ZSksCiAgICAgICAgIEdsb2JhbFByb3Bl
cnR5SW5mbyhJZGVudGlmaWVyKGV4ZWMsICJOYU4iKSwganNOYU4oKSwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8oSWRlbnRpZmll
cihleGVjLCAiSW5maW5pdHkiKSwganNOdW1iZXIoSW5mKSwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8oSWRlbnRpZmllcihleGVj
LCAidW5kZWZpbmVkIiksIGpzVW5kZWZpbmVkKCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKElkZW50aWZpZXIoZXhlYywgIkpT
T04iKSwgbmV3IChleGVjKSBKU09OT2JqZWN0KHRoaXMsIEpTT05PYmplY3Q6OmNyZWF0ZVN0cnVj
dHVyZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpLCBEb250RW51bSB8IERvbnREZWxldGUpCisg
ICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyhJZGVudGlmaWVyKGV4ZWMsICJKU09OIiksIG5ldyAo
ZXhlYykgSlNPTk9iamVjdCh0aGlzLCBKU09OT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+
Z2xvYmFsRGF0YSgpLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpLCBEb250RW51bSB8IERvbnRE
ZWxldGUpCiAgICAgfTsKIAogICAgIGFkZFN0YXRpY0dsb2JhbHMoc3RhdGljR2xvYmFscywgV1RG
X0FSUkFZX0xFTkdUSChzdGF0aWNHbG9iYWxzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCBjZGU5OTYwYTg3YjEzNTQ1ZGQ3MjkzZjFm
Y2Y2YjEyMjg3NjRkOWE0Li41NmVlYTYzMjI2N2Y0N2VhMmU3NDYxODdmOGIzYmNmMmY5NDhmNjg5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgK
QEAgLTExMyw4ICsxMTMsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAg
IHZvaWQqIG9wZXJhdG9yIG5ldyhzaXplX3QsIEpTR2xvYmFsRGF0YSopOwogICAgICAgICAKLSAg
ICAgICAgZXhwbGljaXQgSlNHbG9iYWxPYmplY3QoKQotICAgICAgICAgICAgOiBKU1ZhcmlhYmxl
T2JqZWN0KEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpLCAmbV9zeW1i
b2xUYWJsZSwgMCkKKyAgICAgICAgZXhwbGljaXQgSlNHbG9iYWxPYmplY3QoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhKQorICAgICAgICAgICAgOiBKU1ZhcmlhYmxlT2JqZWN0KEpTR2xvYmFsT2Jq
ZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwganNOdWxsKCkpLCAmbV9zeW1ib2xUYWJs
ZSwgMCkKICAgICAgICAgICAgICwgbV9yZWdpc3RlckFycmF5U2l6ZSgwKQogICAgICAgICAgICAg
LCBtX2dsb2JhbFNjb3BlQ2hhaW4oKQogICAgICAgICAgICAgLCBtX3dlYWtSYW5kb20oc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KHJhbmRvbU51bWJlcigpICogKHN0ZDo6bnVtZXJpY19saW1pdHM8dW5z
aWduZWQ+OjptYXgoKSArIDEuMCkpKQpAQCAtMjM4LDkgKzIzOCw5IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiAgICAgICAgIEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSgpIGNvbnN0IHsgcmV0dXJuICpt
X2dsb2JhbERhdGEuZ2V0KCk7IH0KIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1
cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAg
ICAgICB9CiAKICAgICAgICAgdm9pZCByZWdpc3RlcldlYWtNYXAoT3BhcXVlSlNXZWFrT2JqZWN0
TWFwKiBtYXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05v
dEFuT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0
LmgKaW5kZXggN2U3MGE5ODY0NmIzOGUwZWNjZmRlYmIwNzRmZTBiMmJkNjY4MjQwZS4uYjg4MjAz
OTFlZjYxNjVhYjFmZGUwNmMyMDA2ODk1YjU2OWEyYjc5NSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaApAQCAtNDMsOSArNDMsOSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJ
bmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsKICAgICAgICAgfQogCiAgICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09OT2JqZWN0LmgKaW5kZXggNTI2NGZkNzk4ZjAxNDIzYjk0MDg2MmViZmJmOGRh
M2IwZmVkMmNjMC4uYTUyYzU0MzhkMDVjOWU2ODM4Yjk5ODBlYmZhYTMzODQzODhjZTFlNCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaApAQCAtMzYsOSArMzYs
OSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIEpTT05PYmplY3QoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBz
dHJ1Y3R1cmUpOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRl
U3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFs
dWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAog
ICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNw
cAppbmRleCAyMDljOWVmN2U2OTgwOWI4ZWZhMDJkOTRiYjhmNzVkNWQxZmE5MDg4Li41ZjVjMDVj
NWRlZWVkMzg1NGZkYjExYTkwOTg5NDNlNDNhNGMzMzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC01NzIsOSArNTcyLDkgQEAgTkVWRVJfSU5MSU5F
IHZvaWQgSlNPYmplY3Q6OmZpbGxHZXR0ZXJQcm9wZXJ0eVNsb3QoUHJvcGVydHlTbG90JiBzbG90
LCBXcml0ZUJhcnIKICAgICAgICAgc2xvdC5zZXRVbmRlZmluZWQoKTsKIH0KIAotU3RydWN0dXJl
KiBKU09iamVjdDo6Y3JlYXRlSW5oZXJpdG9ySUQoKQorU3RydWN0dXJlKiBKU09iamVjdDo6Y3Jl
YXRlSW5oZXJpdG9ySUQoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQogewotICAgIG1faW5oZXJp
dG9ySUQgPSBjcmVhdGVFbXB0eU9iamVjdFN0cnVjdHVyZSh0aGlzKTsKKyAgICBtX2luaGVyaXRv
cklEID0gY3JlYXRlRW1wdHlPYmplY3RTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgdGhpcyk7CiAgICAg
cmV0dXJuIG1faW5oZXJpdG9ySUQuZ2V0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5oCmluZGV4IGVlZjM3YjIyYTZlMzM2NWRiY2IxZjNjZThmZGViMzMxZjlm
YTg0NmMuLjY2YWMyZDZiYTE2MjE3MzYzN2Y3YjM5MjEwZTYzNTA1Njg5MDBmODYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtOTIsNyArOTIsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBzZXRQcm90b3R5cGVXaXRoQ3ljbGVDaGVjayhKU1Zh
bHVlIHByb3RvdHlwZSk7CiAgICAgICAgIAogICAgICAgICB2b2lkIHNldFN0cnVjdHVyZShOb25O
dWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+KTsKLSAgICAgICAgU3RydWN0dXJlKiBpbmhlcml0b3JJ
RCgpOworICAgICAgICBTdHJ1Y3R1cmUqIGluaGVyaXRvcklEKEpTR2xvYmFsRGF0YSYpOwogCiAg
ICAgICAgIHZpcnR1YWwgVVN0cmluZyBjbGFzc05hbWUoKSBjb25zdDsKIApAQCAtMjUwLDkgKzI1
MCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgSlNfRVhQT1JUREFUQSBjb25z
dCBDbGFzc0luZm8gc19pbmZvOwogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAg
ICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQs
ICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gMDsKQEAgLTI5Niw3ICsyOTYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgYm9vbCBpbmxpbmVHZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAgICBjb25zdCBI
YXNoRW50cnkqIGZpbmRQcm9wZXJ0eUhhc2hFbnRyeShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUpIGNvbnN0OwotICAgICAgICBTdHJ1Y3R1cmUqIGNyZWF0ZUluaGVy
aXRvcklEKCk7CisgICAgICAgIFN0cnVjdHVyZSogY3JlYXRlSW5oZXJpdG9ySUQoSlNHbG9iYWxE
YXRhJik7CiAKICAgICAgICAgUHJvcGVydHlTdG9yYWdlIG1fcHJvcGVydHlTdG9yYWdlOwogICAg
ICAgICBSZWZQdHI8U3RydWN0dXJlPiBtX2luaGVyaXRvcklEOwpAQCAtMzIwLDkgKzMyMCw5IEBA
IENPTVBJTEVfQVNTRVJUKChKU0ZpbmFsT2JqZWN0X2lubGluZVN0b3JhZ2VDYXBhY2l0eSA+PSBK
U05vbkZpbmFsT2JqZWN0X2lubGluZVN0CiAgICAgICAgIGZyaWVuZCBjbGFzcyBKU09iamVjdDsK
IAogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVh
dGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNW
YWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQog
CiAgICAgcHJvdGVjdGVkOgpAQCAtMzQ4LDkgKzM0OCw5IEBAIENPTVBJTEVfQVNTRVJUKChKU0Zp
bmFsT2JqZWN0X2lubGluZVN0b3JhZ2VDYXBhY2l0eSA+PSBKU05vbkZpbmFsT2JqZWN0X2lubGlu
ZVN0CiAgICAgICAgICAgICByZXR1cm4gbmV3IChleGVjKSBKU0ZpbmFsT2JqZWN0KHN0cnVjdHVy
ZSk7CiAgICAgICAgIH0KIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9
CiAKICAgICBwcml2YXRlOgpAQCAtMzc3LDkgKzM3Nyw5IEBAIGlubGluZSBKU09iamVjdCogY29u
c3RydWN0RW1wdHlPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1
Y3R1CiAgICAgcmV0dXJuIEpTRmluYWxPYmplY3Q6OmNyZWF0ZShleGVjLCBzdHJ1Y3R1cmUpOwog
fQogCi1pbmxpbmUgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZUVtcHR5T2JqZWN0U3RydWN0
dXJlKEpTVmFsdWUgcHJvdG90eXBlKQoraW5saW5lIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVh
dGVFbXB0eU9iamVjdFN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUg
cHJvdG90eXBlKQogewotICAgIHJldHVybiBKU0ZpbmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUo
cHJvdG90eXBlKTsKKyAgICByZXR1cm4gSlNGaW5hbE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKGds
b2JhbERhdGEsIHByb3RvdHlwZSk7CiB9CiAKIGlubGluZSBKU09iamVjdCogYXNPYmplY3QoSlND
ZWxsKiBjZWxsKQpAQCAtNDQyLDExICs0NDIsMTEgQEAgaW5saW5lIHZvaWQgSlNPYmplY3Q6OnNl
dFN0cnVjdHVyZShOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSkKICAgICBt
X3N0cnVjdHVyZSA9IHN0cnVjdHVyZS5sZWFrUmVmKCk7IC8vIH5KU09iamVjdCBiYWxhbmNlcyB0
aGlzIHJlZigpCiB9CiAKLWlubGluZSBTdHJ1Y3R1cmUqIEpTT2JqZWN0Ojppbmhlcml0b3JJRCgp
CitpbmxpbmUgU3RydWN0dXJlKiBKU09iamVjdDo6aW5oZXJpdG9ySUQoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhKQogewogICAgIGlmIChtX2luaGVyaXRvcklEKQogICAgICAgICByZXR1cm4gbV9p
bmhlcml0b3JJRC5nZXQoKTsKLSAgICByZXR1cm4gY3JlYXRlSW5oZXJpdG9ySUQoKTsKKyAgICBy
ZXR1cm4gY3JlYXRlSW5oZXJpdG9ySUQoZ2xvYmFsRGF0YSk7CiB9CiAKIGlubGluZSBib29sIFN0
cnVjdHVyZTo6aXNVc2luZ0lubGluZVN0b3JhZ2UoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaAppbmRl
eCBjNWUzMDQ3NWEwYmQ4OGMxZWQzMjU5OTE2ZmIwMmE0ZmVjYWQ2MmIwLi44MzgwNTE0ZDU3YWNi
ZjVlOGI1YjBlZjU0MDUzZTgyYzgxYzE3NTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaApAQCAtMzQsOSAr
MzQsOSBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdDsKIAogY2xhc3MgSlNPYmplY3RXaXRoR2xvYmFs
T2JqZWN0IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8pCisgICAg
c3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgIH0KIAogICAgIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaAppbmRleCA5MGY0NDll
ZTIxZTk3ZTI3ODBkNDEyNDlkMzczNTU3YzkzMmE4MTk4Li44YjAwN2RkNzY3ZjY0NjRiMTQzODE5
OWU0ZmE2MTg1ZTRkMzJhZDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oCkBAIC00NSw5ICs0NSw5IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIEpTUHJvcGVydHlOYW1lSXRl
cmF0b3IqIGNyZWF0ZShFeGVjU3RhdGUqLCBKU09iamVjdCopOwogICAgICAgICAKLSAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90
b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0
dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJ
bmZvKENvbXBvdW5kVHlwZSwgT3ZlcnJpZGVzTWFya0NoaWxkcmVuKSwgQW5vbnltb3VzU2xvdENv
dW50LCAwKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBwcm90b3R5cGUsIFR5cGVJbmZvKENvbXBvdW5kVHlwZSwgT3ZlcnJpZGVzTWFya0NoaWxkcmVu
KSwgQW5vbnltb3VzU2xvdENvdW50LCAwKTsKICAgICAgICAgfQogCiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBpc1Byb3BlcnR5TmFtZUl0ZXJhdG9yKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVj
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5o
CmluZGV4IGIxNDEzYWY2N2JhNGE4MTllYTZiNTdkNjI1ZjRkNDgyZDc5ZGUxZWQuLjNlMTliYmMy
MzY2YTljMWQ4ZjRhOTRjYmY2MGI3YjQzNzkzZWNhNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKQEAgLTQ3LDcgKzQ3LDcg
QEAgbmFtZXNwYWNlIEpTQ3sKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZv
aWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFs
dWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0
cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IH0KKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1Zh
bHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90bywg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQs
ICZzX2luZm8pOyB9CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE5lZWRz
VGhpc0NvbnZlcnNpb24gfCBPdmVycmlkZXNNYXJrQ2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9w
ZXJ0eU5hbWVzIHwgSlNWYXJpYWJsZU9iamVjdDo6U3RydWN0dXJlRmxhZ3M7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAppbmRleCAyNjc3ZDlhZTljZWFhMzg4ZjdiYWMx
NjAyNDVmYWM0NDA2OGE5YjUyLi4xMTAwMmRiMjZmMTJmZDlmMzgyZmQ4N2NkODc4Zjk3ZTNiOWQ1
NTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKQEAgLTM0OSw3
ICszNDksNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBKU1ZhbHVlIHJlcGxhY2VDaGFy
YWN0ZXIoRXhlY1N0YXRlKiwgVUNoYXIsIGNvbnN0IFVTdHJpbmcmIHJlcGxhY2VtZW50KTsKIAot
ICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1Zh
bHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90bywgVHlwZUluZm8oU3Ry
aW5nVHlwZSwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgTmVlZHNUaGlzQ29udmVyc2lv
biksIEFub255bW91c1Nsb3RDb3VudCwgMCk7IH0KKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1Zh
bHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90bywg
VHlwZUluZm8oU3RyaW5nVHlwZSwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgTmVlZHNU
aGlzQ29udmVyc2lvbiksIEFub255bW91c1Nsb3RDb3VudCwgMCk7IH0KIAogICAgIHByaXZhdGU6
CiAgICAgICAgIGVudW0gVlB0clN0ZWFsaW5nSGFja1R5cGUgeyBWUHRyU3RlYWxpbmdIYWNrIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2Jq
ZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmgK
aW5kZXggNTc3OWYzN2JhY2NmYTI1YWExOTY4MjM1OWM4OTIwMGIwY2JiY2EwNS4uODkxYWRhOGM0
M2EzN2FhN2JjMTI2ZTMzMDQ3NTA3MDIwYzNlMzFjOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaApAQCAtNTgsOSArNTgsOSBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogICAgICAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4qIGNvbnN0ICogYWRk
cmVzc09mUmVnaXN0ZXJzKCkgY29uc3QgeyByZXR1cm4gJm1fcmVnaXN0ZXJzOyB9CiAKLSAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBw
cm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3Ry
dWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5
cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAm
c19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnlt
b3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQogICAgICAgICAKICAgICBwcm90ZWN0
ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJP
YmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5o
CmluZGV4IDNmYzBiMTg2ZmU1ODExN2VjYTBlYzBiMmE1NmJhZjY1ZDEyZDlmM2MuLjYzODMzZTlm
Mzc0ZWM3Yzc5YWE3YWQ4MjBlOGEwNDEyZmJkYWQzODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oCkBAIC0zNiw5ICszNiw5IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICBKU1ZhbHVlIGludGVybmFsVmFsdWUoKSBjb25zdDsKICAgICAg
ICAgdm9pZCBzZXRJbnRlcm5hbFZhbHVlKEpTR2xvYmFsRGF0YSYsIEpTVmFsdWUpOwogCi0gICAg
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUg
cHJvdG90eXBlKSAKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVT
dHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkgCiAg
ICAgICAgIHsgCi0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBl
LCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3Vu
dCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTWm9tYmllLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1pvbWJpZS5oCmluZGV4IGU1NzVhYzU1MjE2
Y2NlMTQ5N2RlMzY0YTk3MjhiY2ZmYjI3YjRmZDYuLjE3OWZmNTMxMDBmZDNmZDIwYWIzYzE3NDcz
MjVkOWRkMTgwY2I3MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTWm9tYmllLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNab21iaWUu
aApAQCAtNjYsOSArNjYsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90JikgeyBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCwgUHJvcGVydHlTbG90JikgeyBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGZhbHNlOyB9CiAgICAgCi0gICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIDApLCBB
bm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCAwKSwgQW5v
bnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKICAgICBzdGF0aWMgY29uc3QgQ2xh
c3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L01hdGhPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3Qu
aAppbmRleCA4NmU3OTUxYTFiZGNhOGQ2NmUzZTU5ZWNkNTUyODQxY2VkZWE0NWViLi4yNmVhYWUw
NDQ5OTI4ZGU1MWE1YzRkZTVlZGZmY2JhMmViZGM1NzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCkBAIC0zNCw5ICszNCw5IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90
eXBlKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVy
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7
Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5m
byk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Ns
b3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3Iu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rv
ci5jcHAKaW5kZXggNzk0OWRkOTZhNWI3N2MzYzFjNjdmZmU5YjlhOGU1M2E0YzY5NWYyNC4uZDhm
ZGE2OWE4NDA3YmQ1MGJlZGYzZTRlZTdhMGFlMzdjMjY4NTk2NiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAK
QEAgLTQxLDcgKzQxLDcgQEAgTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6TmF0aXZlRXJyb3JDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KgogCiAgICAgcHV0RGlyZWN0
KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1i
ZXIoMSksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsgLy8gRUNNQSAxNS4xMS43
LjUKICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVz
KCkucHJvdG90eXBlLCBwcm90b3R5cGUsIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVt
KTsKLSAgICBtX2Vycm9yU3RydWN0dXJlID0gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJl
KHByb3RvdHlwZSk7CisgICAgbV9lcnJvclN0cnVjdHVyZSA9IEVycm9ySW5zdGFuY2U6OmNyZWF0
ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIHByb3RvdHlwZSk7CiB9CiAKIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhOYXRpdmVFcnJvckNvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaAppbmRleCBlNDk3OGNjYTFjYmJiOWQy
N2ViMzhkYmMwNDM1NzA3ZGM2YzZhYjkyLi4yM2Y3OThlNDcyOWJlYmU3YTk4YzYyZDg0ZDNiZDI2
YzdjMWI3ODA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRp
dmVFcnJvckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oCkBAIC0zNSw5ICszNSw5IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90
eXBlKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVy
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7
Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5m
byk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Ns
b3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgICAgICBTdHJ1Y3R1cmUqIGVycm9y
U3RydWN0dXJlKCkgeyByZXR1cm4gbV9lcnJvclN0cnVjdHVyZS5nZXQoKTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgKaW5kZXggYWFm
N2MzMjEwMjYzZDM4YTcxNjM0NzgxODRjYjlmYWM0NWI0NzU5My4uYWI0NTA3ZTU4M2ViMjViMjdh
ZmYyMzQxOWM0Mjc4ZTFhNzk2MTU4MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCkBAIC0zNyw5ICszNyw5IEBAIG5hbWVzcGFjZSBK
U0MgewogCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJv
dG8pIAorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVy
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG8pIAogICAgICAgICB7IAot
ICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAor
ICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwg
JnNfaW5mbyk7IAogICAgICAgICB9CiAKICAgICAgICAgZW51bSB7IE5hTlZhbHVlLCBOZWdJbmZp
bml0eSwgUG9zSW5maW5pdHksIE1heFZhbHVlLCBNaW5WYWx1ZSB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuaAppbmRleCBiZGY1NmY3ZjQ3NTNiNGUxNjQy
NTNiMjUzZmIxMmE0YjYyMTVjNDQ5Li4xNTcxZmQ0MmNlNmIwYzMyZTgyZTgxYWQ2YjAzMTYwYTkx
ZTdlZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJP
YmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3Qu
aApAQCAtMzEsOSArMzEsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgY29u
c3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1
cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAg
ICAgICB9CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09iamVjdENvbnN0cnVjdG9yLmgKaW5kZXggODk1Zjk4OGY2YzEzOTQ2NTMxZjI4MjQ4NmJm
ZDE1ODlkODE0OGIwOC4uYjdiZmMxZDcxN2M3MTc4ZTMzYzI5NmFkN2I0Yjk3NDAxZWFlNDNkMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0
b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rv
ci5oCkBAIC0zNiw5ICszNiw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBj
b25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVj
dHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAg
ICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCmluZGV4IDhhOGE1NGFhYTg2NWI5OWZhM2ExY2Rj
ZmE1NTk4YmE0YzAzYmEyNWYuLjAzYzZiZWEyYmEzODY0NjUzMmRkN2U1MWZhYWEzZjYxZTJmOTg1
MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0
cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3Ry
dWN0b3IuaApAQCAtNTksOSArNTksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAg
ICAgICAgIFJlZ0V4cENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgTm9u
TnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiwgUmVnRXhwUHJvdG90eXBlKik7CiAKLSAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90
b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0
dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJ
bmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3Vz
U2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBw
dXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
T2JqZWN0LmgKaW5kZXggOWYyY2E1YWEyNGNlN2RhZTY1NTkwM2MxMmJhZGFlMTU2ZTJmYWQ4MS4u
ZmEyMDI0ZGNkNzVlN2FjNWMyNjhjMTg3N2UwNjk0MTAwNDIxNWI5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKQEAgLTU4LDkgKzU4LDkgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIEpTX0VYUE9SVERBVEEgY29uc3QgQ2xhc3NJ
bmZvIHNfaW5mbzsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0
ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1Zh
bHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBB
bm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAK
ICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TY29wZUNoYWluLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZUNoYWlu
LmgKaW5kZXggNTVkMTFhZGQyYjFhN2IwMzY4NzEyZDFjMWZhNzk1NGIzNTYyMjg1Yy4uY2I3MGEz
NDZiOTY3YjUwZjMyNGY5MGU3ZDM0MzE3N2JiMzkyMDE3YiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Njb3BlQ2hhaW4uaApAQCAtNjQsNyArNjQsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgdm9pZCBwcmludCgpOwogI2VuZGlmCiAgICAgICAgIAotICAgICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvKSB7
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgMCk7IH0KKyAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxE
YXRhLCBwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255
bW91c1Nsb3RDb3VudCwgMCk7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIG1hcmtDaGlsZHJlbihN
YXJrU3RhY2smKTsKICAgICBwcml2YXRlOgogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNNYXJrQ2hpbGRyZW47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCmluZGV4IGFjZGVjYjNjNWVlOGE0MDE3Njk5
MGUzODQyMzVhZjEyMWM1MTgzYjAuLjBlMmEyYjI0MTNjOThlMmNhNzEwYzJjZGQ5YThiMDQwZDg3
NGI2MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09i
amVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5o
CkBAIC00NSw5ICs0NSw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEpTU3RyaW5nKiBp
bnRlcm5hbFZhbHVlKCkgY29uc3QgeyByZXR1cm4gYXNTdHJpbmcoSlNXcmFwcGVyT2JqZWN0Ojpp
bnRlcm5hbFZhbHVlKCkpO30KIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+
IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAg
ICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRl
ZmluZWQuaAppbmRleCAwYTQ0ZWQzMjNhZDBmY2Q0Njg2YjVmNTdkMDJjM2RhZGVhMzU5OWZkLi5j
N2FjOWYxOWY0MjNlYmRjNWE3NmZlOTYxZmE1NWQwZDZhMjA2N2MwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1Vu
ZGVmaW5lZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVj
dFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLmgKQEAgLTQyLDkgKzQyLDkgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8pIAorICAgICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTVmFsdWUgcHJvdG8pIAogICAgICAgICB7IAotICAgICAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAorICAgICAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAogICAgICAg
ICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3Zl
cnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCB8IE92ZXJy
aWRlc0dldFByb3BlcnR5TmFtZXMgfCBTdHJpbmdPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaAppbmRleCA1
N2E1MDlhYmFkMjY5OTc0N2NhZmZlMmFjOWExMjAxMGM4ZTY2MTliLi41N2RlZjIyODFiMWQ1YzQ4
ZjEzNGFkNWQ0MjFlMDc3ZWU1YTA4N2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdQcm90b3R5cGUuaApAQCAtMzQsOSArMzQsOSBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIAotICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2lu
Zm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCmluZGV4IDY0YjFk
Mjg3Mjk1ODE1ZDUwMmVhNzU0NzNkM2E3ODU5ODAyNjY4NmIuLjZmNzA2MGJmMWFhZGMyNDAzZjk3
MGM1MWRlOGViMjY4NTBhNDQ1MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cnVjdHVyZS5oCkBAIC01NywxMSArNTcsMTcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3Mg
U3RydWN0dXJlIDogcHVibGljIFJlZkNvdW50ZWQ8U3RydWN0dXJlPiB7CiAgICAgcHVibGljOgog
ICAgICAgICBmcmllbmQgY2xhc3MgU3RydWN0dXJlVHJhbnNpdGlvblRhYmxlOwotICAgICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZShKU1ZhbHVlIHByb3RvdHlwZSwgY29u
c3QgVHlwZUluZm8mIHR5cGVJbmZvLCB1bnNpZ25lZCBhbm9ueW1vdXNTbG90Q291bnQsIGNvbnN0
IENsYXNzSW5mbyogY2xhc3NJbmZvKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1
cmU+IGNyZWF0ZShKU0dsb2JhbERhdGEmLCBKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgVHlwZUlu
Zm8mIHR5cGVJbmZvLCB1bnNpZ25lZCBhbm9ueW1vdXNTbG90Q291bnQsIGNvbnN0IENsYXNzSW5m
byogY2xhc3NJbmZvKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFN0cnVjdHVyZShwcm90b3R5cGUsIHR5cGVJbmZvLCBhbm9ueW1vdXNTbG90Q291bnQsIGNsYXNz
SW5mbykpOwogICAgICAgICB9CiAKKyAgICAgICAgZW51bSBWUHRyU3RlYWxpbmdIYWNrVHlwZSB7
IFZQdHJTdGVhbGluZ0hhY2sgfTsKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJl
PiBjcmVhdGUoVlB0clN0ZWFsaW5nSGFja1R5cGUsIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZv
KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFN0cnVjdHVyZShq
c051bGwoKSwgVHlwZUluZm8oVW5zcGVjaWZpZWRUeXBlKSwgMCwgY2xhc3NJbmZvKSk7CisgICAg
ICAgIH0KKwogICAgICAgICBzdGF0aWMgdm9pZCBzdGFydElnbm9yaW5nTGVha3MoKTsKICAgICAg
ICAgc3RhdGljIHZvaWQgc3RvcElnbm9yaW5nTGVha3MoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VM
b2cKaW5kZXggZDBlM2Y2YzI1MzA1M2QyNWM5Yjg3MDU5ZTU1MjM4YWQzNTNhM2UyMy4uZDdiODdh
ZmVjZjZkNTAwOTllZjk1ZmI5MTNjNmJlMDdmODZmZGZhNiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRHbHVlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDMtMTUgIE9saXZlciBIdW50ICA8b2xpdmVyQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNYWtlIFN0cnVjdHVyZSBjcmVhdGlvbiByZXF1aXJlIGEgSlNHbG9iYWxEYXRhCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjQzOAorCisgICAgICAg
IE1lY2hhbmljYWwgY2hhbmdlIHRvIG1ha2UgYWxsIHN0cnVjdHVyZSBjcmVhdGlvbiBwYXNzIGEg
SlNHbG9iYWxEYXRhJi4KKworICAgICAgICAqIEpTUnVuLmNwcDoKKyAgICAgICAgKEpTR2x1ZUds
b2JhbE9iamVjdDo6SlNHbHVlR2xvYmFsT2JqZWN0KToKKyAgICAgICAgKEpTUnVuOjpKU1J1bik6
CisgICAgICAgICogSlNSdW4uaDoKKyAgICAgICAgKiBKU1V0aWxzLmNwcDoKKyAgICAgICAgKGdl
dFRocmVhZEdsb2JhbE9iamVjdCk6CisgICAgICAgICogVXNlck9iamVjdEltcC5oOgorICAgICAg
ICAoVXNlck9iamVjdEltcDo6Y3JlYXRlU3RydWN0dXJlKToKKwogMjAxMS0wMy0xNSAgS2V2aW4g
T2xsaXZpZXIgIDxrZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1J1bi5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNSdW4uY3BwCmluZGV4IDg2MzA1OTRiMGExYWZi
NTRiNDVhZWMzMjQwNWZlZTFiZjQ4N2NhMDguLmE4MDk2YWE0YmFjNzM1ZTViNzY0NmQ5NTM5MmJh
MWRlYjA5OGEyMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1J1bi5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0pTUnVuLmNwcApAQCAtMzMsMTcgKzMzLDE3IEBA
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29tcGxldGlvbi5oPgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL1NvdXJjZUNvZGUuaD4KIAotSlNHbHVlR2xvYmFsT2JqZWN0OjpKU0dsdWVHbG9i
YWxPYmplY3QoUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSwgSlNGbGFncyBmbGFncykK
K0pTR2x1ZUdsb2JhbE9iamVjdDo6SlNHbHVlR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSwgSlNGbGFncyBmbGFncykK
ICAgICA6IEpTR2xvYmFsT2JqZWN0KHN0cnVjdHVyZSkKICAgICAsIG1fZmxhZ3MoZmxhZ3MpCi0g
ICAgLCBtX3VzZXJPYmplY3RTdHJ1Y3R1cmUoVXNlck9iamVjdEltcDo6Y3JlYXRlU3RydWN0dXJl
KGpzTnVsbCgpKSkKKyAgICAsIG1fdXNlck9iamVjdFN0cnVjdHVyZShVc2VyT2JqZWN0SW1wOjpj
cmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwganNOdWxsKCkpKQogewogfQogCiBKU1J1bjo6SlNS
dW4oQ0ZTdHJpbmdSZWYgc291cmNlLCBKU0ZsYWdzIGluRmxhZ3MpCiAgICAgOiAgIEpTQmFzZShr
SlNSdW5UeXBlSUQpLAogICAgICAgICBmU291cmNlKENGU3RyaW5nVG9VU3RyaW5nKHNvdXJjZSkp
LAotICAgICAgICBmR2xvYmFsT2JqZWN0KGdldFRocmVhZEdsb2JhbEV4ZWNTdGF0ZSgpLT5nbG9i
YWxEYXRhKCksIG5ldyAoJmdldFRocmVhZEdsb2JhbEV4ZWNTdGF0ZSgpLT5nbG9iYWxEYXRhKCkp
IEpTR2x1ZUdsb2JhbE9iamVjdChKU0dsdWVHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZShq
c051bGwoKSksIGluRmxhZ3MpKSwKKyAgICAgICAgZkdsb2JhbE9iamVjdChnZXRUaHJlYWRHbG9i
YWxFeGVjU3RhdGUoKS0+Z2xvYmFsRGF0YSgpLCBuZXcgKCZnZXRUaHJlYWRHbG9iYWxFeGVjU3Rh
dGUoKS0+Z2xvYmFsRGF0YSgpKSBKU0dsdWVHbG9iYWxPYmplY3QoZ2V0VGhyZWFkR2xvYmFsRXhl
Y1N0YXRlKCktPmdsb2JhbERhdGEoKSwgSlNHbHVlR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1
cmUoZ2V0VGhyZWFkR2xvYmFsRXhlY1N0YXRlKCktPmdsb2JhbERhdGEoKSwganNOdWxsKCkpLCBp
bkZsYWdzKSksCiAgICAgICAgIGZGbGFncyhpbkZsYWdzKQogewogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRHbHVlL0pTUnVuLmggYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNSdW4u
aAppbmRleCBlOWExNDg0MmVjMWE5YzU0MzZiZmE1MzYxNjgwMzU2NGY2OTQ0NTkwLi5kN2FhNjgy
NDEwYzhiMzMyNzM3ZThlMGY1NmM3N2E1Mjk3ZTRmOWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdEdsdWUvSlNSdW4uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNSdW4uaApA
QCAtMzQsNyArMzQsNyBAQAogCiBjbGFzcyBKU0dsdWVHbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNH
bG9iYWxPYmplY3QgewogICAgIHB1YmxpYzoKLSAgICAgICAgSlNHbHVlR2xvYmFsT2JqZWN0KFBh
c3NSZWZQdHI8U3RydWN0dXJlPiwgSlNGbGFncyA9IGtKU0ZsYWdOb25lKTsKKyAgICAgICAgSlNH
bHVlR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYsIFBhc3NSZWZQdHI8U3RydWN0dXJlPiwgSlNG
bGFncyA9IGtKU0ZsYWdOb25lKTsKIAogICAgICAgICBKU0ZsYWdzIEZsYWdzKCkgY29uc3QgeyBy
ZXR1cm4gbV9mbGFnczsgfQogICAgICAgICBTdHJ1Y3R1cmUqIHVzZXJPYmplY3RTdHJ1Y3R1cmUo
KSBjb25zdCB7IHJldHVybiBtX3VzZXJPYmplY3RTdHJ1Y3R1cmUuZ2V0KCk7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1V0aWxzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
R2x1ZS9KU1V0aWxzLmNwcAppbmRleCA5NGM4ZGNjZDYzYjZjNjMwOWZjYThiOGYyMmMwOGExMGNh
ZTA1MGY1Li5iNjJlN2JmYjZlODk4YzhmMmRhNjIyNzllYzhhMWM5OWE0ZWJjMWE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNVdGlscy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRHbHVlL0pTVXRpbHMuY3BwCkBAIC00MTQsNyArNDE0LDcgQEAgc3RhdGljIEpTR2x1ZUds
b2JhbE9iamVjdCogZ2V0VGhyZWFkR2xvYmFsT2JqZWN0KCkKICAgICBwdGhyZWFkX29uY2UoJmds
b2JhbE9iamVjdEtleU9uY2UsIGluaXRpYWxpemVHbG9iYWxPYmplY3RLZXkpOwogICAgIEpTR2x1
ZUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNHbHVlR2xvYmFsT2Jq
ZWN0Kj4ocHRocmVhZF9nZXRzcGVjaWZpYyhnbG9iYWxPYmplY3RLZXkpKTsKICAgICBpZiAoIWds
b2JhbE9iamVjdCkgewotICAgICAgICBnbG9iYWxPYmplY3QgPSBuZXcgKGdldFRocmVhZEdsb2Jh
bERhdGEoKSkgSlNHbHVlR2xvYmFsT2JqZWN0KEpTR2x1ZUdsb2JhbE9iamVjdDo6Y3JlYXRlU3Ry
dWN0dXJlKGpzTnVsbCgpKSk7CisgICAgICAgIGdsb2JhbE9iamVjdCA9IG5ldyAoZ2V0VGhyZWFk
R2xvYmFsRGF0YSgpKSBKU0dsdWVHbG9iYWxPYmplY3QoKmdldFRocmVhZEdsb2JhbERhdGEoKSwg
SlNHbHVlR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoKmdldFRocmVhZEdsb2JhbERhdGEo
KSwganNOdWxsKCkpKTsKICAgICAgICAgZ2NQcm90ZWN0KGdsb2JhbE9iamVjdCk7CiAgICAgICAg
IHB0aHJlYWRfc2V0c3BlY2lmaWMoZ2xvYmFsT2JqZWN0S2V5LCBnbG9iYWxPYmplY3QpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmggYi9T
b3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCmluZGV4IDNmNjQxNTMwZjY0NGVi
NTc5NzdmNDY0Yjc3NDhlYTAxMmVmNDBkZTcuLmM2YjhkODZmNWQ5YWI2OWMxZTFlNTY5ZWM4MmM2
YmUyNTEyZDg1NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0
SW1wLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaApAQCAtNTgs
OSArNTgsOSBAQCBwdWJsaWM6CiAKICAgICBKU1VzZXJPYmplY3QgKkdldEpTVXNlck9iamVjdCgp
IGNvbnN0OwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1
cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBj
cmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlw
ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5
cGVJbmZvKE9iamVjdFR5cGUsIE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRl
c01hcmtDaGlsZHJlbiB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMpLCBBbm9ueW1vdXNTbG90
Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBPdmVycmlkZXNHZXRPd25Qcm9w
ZXJ0eVNsb3QgfCBPdmVycmlkZXNNYXJrQ2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5h
bWVzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKIHByaXZhdGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggMWE3ODkwYzhjZWU4YjdlOWMzNDllZmViZTFhYjdmNjlkMmI5NWE5NS4uNjRh
MmFiMTdiNTZhNzQwMDdjNjA2ODc4YTgwMWZlMmMzNTMxMDVmNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDY1IEBACisyMDExLTAzLTE1ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBTdHJ1
Y3R1cmUgY3JlYXRpb24gcmVxdWlyZSBhIEpTR2xvYmFsRGF0YQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY0MzgKKworICAgICAgICBNZWNoYW5pY2Fs
IGNoYW5nZSB0byBtYWtlIGFsbCBzdHJ1Y3R1cmUgY3JlYXRpb24gdXNlIEdsb2JhbERhdGEKKwor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU0F1ZGlvQ29uc3RydWN0b3I6OkpTQXVkaW9Db25zdHJ1Y3Rvcik6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpK
U0F1ZGlvQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpET01PYmplY3RXaXRoR2xvYmFs
UG9pbnRlcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNvbnN0cnVj
dG9yT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0RE9NU3Ry
dWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oOgorICAg
ICAgICAoV2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpK
U0RPTVdpbmRvd0Jhc2U6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxs
OjpKU0RPTVdpbmRvd1NoZWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6
OnNldFdpbmRvdyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oOgor
ICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNJbWFnZUNvbnN0cnVjdG9yOjpKU0ltYWdlQ29uc3RydWN0b3IpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoV2ViQ29yZTo6SlNJ
bWFnZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNPcHRpb25Db25zdHJ1Y3Rvcjo6SlNPcHRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5oOgorICAgICAgICAoV2ViQ29yZTo6SlNP
cHRpb25Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU1dvcmtlckNvbnRleHRCYXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpKU1dvcmtlckNvbnRl
eHRCYXNlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNj
cmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0Q29udHJv
bGxlcjo6aW5pdFNjcmlwdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG06CisgICAgICAgICogYnJpZGdlL2MvQ1J1bnRpbWVPYmplY3QuaDoKKyAgICAgICAg
KEpTQzo6QmluZGluZ3M6OkNSdW50aW1lT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAg
ICAqIGJyaWRnZS9jL2NfaW5zdGFuY2UuY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6Q1J1
bnRpbWVNZXRob2Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYnJpZGdlL2puaS9qc2Mv
SmF2YUluc3RhbmNlSlNDLmNwcDoKKyAgICAgICAgKEphdmFSdW50aW1lTWV0aG9kOjpjcmVhdGVT
dHJ1Y3R1cmUpOgorICAgICAgICAqIGJyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0Lmg6
CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpKYXZhUnVudGltZU9iamVjdDo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9PYmpDUnVudGltZU9iamVjdC5oOgorICAgICAg
ICAoSlNDOjpCaW5kaW5nczo6T2JqQ1J1bnRpbWVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbToKKyAgICAgICAgKE9iakNSdW50
aW1lTWV0aG9kOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNf
cnVudGltZS5oOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0ZhbGxiYWNrT2JqZWN0SW1w
OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5Lmg6Cisg
ICAgICAgIChKU0M6OlJ1bnRpbWVBcnJheTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBi
cmlkZ2UvcnVudGltZV9tZXRob2QuaDoKKyAgICAgICAgKEpTQzo6UnVudGltZU1ldGhvZDo6Y3Jl
YXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuaDoKKyAgICAg
ICAgKEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisKIDIw
MTEtMDMtMTUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgVG9ueSBDaGFuZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0F1ZGlvQ29uc3RydWN0b3IuY3BwCmluZGV4IGYwMDQwZmE5YTcyZWM0Njc4YjQyOGY1M2IwNDVj
ZjM2MzMwNjYwNDguLjlhYzc5N2IxZGU4OTgwODU5MTFjZTllMjk4NTRlZDFmZjI1MDdkOGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmNw
cApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjb25zdCBDbGFzc0luZm8g
SlNBdWRpb0NvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJBdWRpb0NvbnN0cnVjdG9yIiwgJkRPTUNv
bnN0cnVjdG9yV2l0aERvY3VtZW50OjpzX2luZm8sIDAsIDAgfTsKIAogSlNBdWRpb0NvbnN0cnVj
dG9yOjpKU0F1ZGlvQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQotICAgIDogRE9NQ29uc3RydWN0b3JXaXRoRG9jdW1lbnQoSlNBdWRp
b0NvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5
cGUoKSksIGdsb2JhbE9iamVjdCkKKyAgICA6IERPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50KEpT
QXVkaW9Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0
YSgpLCBnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQogewog
ICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAgICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2Jh
bERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNIVE1MQXVkaW9FbGVt
ZW50UHJvdG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCksIE5vbmUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuaAppbmRleCBjOTBhYmJm
N2Q5ZWViYTk0NjM2YWM2NmQxMjQ2M2FlMWY0Y2QwZGQxLi5iZTBiODAwMDA1YmYyMjFhYmVkN2E5
ODQ2ZDhhMTNhZWMzNWI0NDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0F1ZGlvQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0F1ZGlvQ29uc3RydWN0b3IuaApAQCAtMzgsOSArMzgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgcHVibGljOgogICAgICAgICBKU0F1ZGlvQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUq
LCBKU0RPTUdsb2JhbE9iamVjdCopOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6
U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6
OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBl
LCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1v
dXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAg
ICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKaW5kZXggNGZlM2QxNmMxZmNj
MjhjN2M2NzQ4OWE4MWJjMWFiNTc4YTBmYTFkMi4uOTM0ZDliMzFhNDYxYjIxNzlkYmQ0MTlmZGVl
MDAyYTgwZTMyODNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01CaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5n
LmgKQEAgLTY0LDkgKzY0LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgcmV0
dXJuIGdsb2JhbE9iamVjdCgpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgICAgIH0K
IAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0
dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpT
Qzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsK
KyAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHBy
b3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVk
OgpAQCAtODMsOSArODMsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgLy8gQmFzZSBjbGFz
cyBmb3IgYWxsIGNvbnN0cnVjdG9yIG9iamVjdHMgaW4gdGhlIEpTQyBiaW5kaW5ncy4KICAgICBj
bGFzcyBET01Db25zdHJ1Y3Rvck9iamVjdCA6IHB1YmxpYyBET01PYmplY3RXaXRoR2xvYmFsUG9p
bnRlciB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVj
dHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlND
OjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3Jl
YXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAg
fQogCiAgICAgcHJvdGVjdGVkOgpAQCAtMTQzLDcgKzE0Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICB7CiAgICAgICAgIGlmIChKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlID0gZ2V0Q2Fj
aGVkRE9NU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgJldyYXBwZXJDbGFzczo6c19pbmZvKSkKICAg
ICAgICAgICAgIHJldHVybiBzdHJ1Y3R1cmU7Ci0gICAgICAgIHJldHVybiBjYWNoZURPTVN0cnVj
dHVyZShnbG9iYWxPYmplY3QsIFdyYXBwZXJDbGFzczo6Y3JlYXRlU3RydWN0dXJlKFdyYXBwZXJD
bGFzczo6Y3JlYXRlUHJvdG90eXBlKGV4ZWMsIGdsb2JhbE9iamVjdCkpLCAmV3JhcHBlckNsYXNz
OjpzX2luZm8pOworICAgICAgICByZXR1cm4gY2FjaGVET01TdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0
LCBXcmFwcGVyQ2xhc3M6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIFdyYXBw
ZXJDbGFzczo6Y3JlYXRlUHJvdG90eXBlKGV4ZWMsIGdsb2JhbE9iamVjdCkpLCAmV3JhcHBlckNs
YXNzOjpzX2luZm8pOwogICAgIH0KICAgICB0ZW1wbGF0ZTxjbGFzcyBXcmFwcGVyQ2xhc3M+IGlu
bGluZSBKU0M6OlN0cnVjdHVyZSogZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZShKU0M6OkV4ZWNT
dGF0ZSogZXhlYykKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUdsb2JhbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01H
bG9iYWxPYmplY3QuaAppbmRleCBkYWU0MDVhOGZkZTc5ZDIwMGRjZDRhZTY0YzZkNDJmOTcwYjQ2
ZjYxLi4xZTk5MmM1YjcxZmRjNjI4ZTY1MWRjYjJmNzJjMTUxNjRlZmIyNDA0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKQEAgLTY5LDkgKzY5
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyBjb25zdCBKU0M6OkNs
YXNzSW5mbyBzX2luZm87CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1
cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6
VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0K
IAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dCYXNlLmgKaW5kZXggN2JkYTNlNDIwNzI1NGE5NWUyYTNjNzAzNTdhMmVmZGUzYWFmNjM2ZS4u
YmZlYzMxYzU2NzgyNTJjOTU3NzIyZjQ2YTEyOWViOTA2NmUyODBmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKQEAgLTU3LDkgKzU3LDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBz
X2luZm87CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0
ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8o
SlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxE
YXRhLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgICAg
ICB2aXJ0dWFsIEpTQzo6RXhlY1N0YXRlKiBnbG9iYWxFeGVjKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCmluZGV4IGE0Y2M3NzdkOTRhZDIz
MzhiOGE2OGViMDc3NDJjZDlkYWY5OTQxM2YuLjgxN2U5YzBkYTIwMjg0NDE1Y2M1MjkwNGVlMzdm
MWM3YjkyN2RiZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93U2hlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93U2hlbGwuY3BwCkBAIC00NCw3ICs0NCw3IEBAIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwo
SlNET01XaW5kb3dTaGVsbCk7CiBjb25zdCBDbGFzc0luZm8gSlNET01XaW5kb3dTaGVsbDo6c19p
bmZvID0geyAiSlNET01XaW5kb3dTaGVsbCIsICZCYXNlOjpzX2luZm8sIDAsIDAgfTsKIAogSlNE
T01XaW5kb3dTaGVsbDo6SlNET01XaW5kb3dTaGVsbChQYXNzUmVmUHRyPERPTVdpbmRvdz4gd2lu
ZG93LCBET01XcmFwcGVyV29ybGQqIHdvcmxkKQotICAgIDogQmFzZShKU0RPTVdpbmRvd1NoZWxs
OjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKQorICAgIDogQmFzZShKU0RPTVdpbmRvd1NoZWxs
OjpjcmVhdGVTdHJ1Y3R1cmUoKndvcmxkLT5nbG9iYWxEYXRhKCksIGpzTnVsbCgpKSkKICAgICAs
IG1fd29ybGQod29ybGQpCiB7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKQEAgLTYw
LDEwICs2MCwxMCBAQCB2b2lkIEpTRE9NV2luZG93U2hlbGw6OnNldFdpbmRvdyhQYXNzUmVmUHRy
PERPTVdpbmRvdz4gZG9tV2luZG93KQogICAgIC8vIEV4cGxpY2l0bHkgcHJvdGVjdCB0aGUgZ2xv
YmFsIG9iamVjdCdzIHByb3RvdHlwZSBzbyBpdCBpc24ndCBjb2xsZWN0ZWQKICAgICAvLyB3aGVu
IHdlIGFsbG9jYXRlIHRoZSBnbG9iYWwgb2JqZWN0LiAoT25jZSB0aGUgZ2xvYmFsIG9iamVjdCBp
cyBmdWxseQogICAgIC8vIGNvbnN0cnVjdGVkLCBpdCBjYW4gbWFyayBpdHMgb3duIHByb3RvdHlw
ZS4pCi0gICAgUmVmUHRyPFN0cnVjdHVyZT4gcHJvdG90eXBlU3RydWN0dXJlID0gSlNET01XaW5k
b3dQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSk7CisgICAgUmVmUHRyPFN0cnVj
dHVyZT4gcHJvdG90eXBlU3RydWN0dXJlID0gSlNET01XaW5kb3dQcm90b3R5cGU6OmNyZWF0ZVN0
cnVjdHVyZSgqSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLCBqc051bGwoKSk7CiAg
ICAgR2xvYmFsPEpTRE9NV2luZG93UHJvdG90eXBlPiBwcm90b3R5cGUoKkpTRE9NV2luZG93Ojpj
b21tb25KU0dsb2JhbERhdGEoKSwgbmV3IEpTRE9NV2luZG93UHJvdG90eXBlKDAsIHByb3RvdHlw
ZVN0cnVjdHVyZS5yZWxlYXNlKCkpKTsKIAotICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVy
ZSA9IEpTRE9NV2luZG93OjpjcmVhdGVTdHJ1Y3R1cmUocHJvdG90eXBlLmdldCgpKTsKKyAgICBS
ZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUgPSBKU0RPTVdpbmRvdzo6Y3JlYXRlU3RydWN0dXJl
KCpKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCksIHByb3RvdHlwZS5nZXQoKSk7CiAg
ICAgSlNET01XaW5kb3cqIGpzRE9NV2luZG93ID0gbmV3IChKU0RPTVdpbmRvdzo6Y29tbW9uSlNH
bG9iYWxEYXRhKCkpIEpTRE9NV2luZG93KHN0cnVjdHVyZS5yZWxlYXNlKCksIGRvbVdpbmRvdywg
dGhpcyk7CiAgICAgcHJvdG90eXBlLT5wdXRBbm9ueW1vdXNWYWx1ZSgqSlNET01XaW5kb3c6OmNv
bW1vbkpTR2xvYmFsRGF0YSgpLCAwLCBqc0RPTVdpbmRvdyk7CiAgICAgc2V0V2luZG93KCpKU0RP
TVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCksIGpzRE9NV2luZG93KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaAppbmRleCAwNmRkMWZmNWY0MGM2
ZDQ5MDQyZTc4YTBiNWQ5Y2EyOGUzYjhhMDVlLi40MzA3YzFjNDYxYjBmZjQ2YmY4YTNhNzdiYWI4
ZWMyZTUwNGY5YmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd1NoZWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dTaGVsbC5oCkBAIC01OCw5ICs1OCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAg
ICB2b2lkKiBvcGVyYXRvciBuZXcoc2l6ZV90KTsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUp
IAorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0
dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBl
KSAKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUo
cHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyAKKyAgICAgICAgICAgIHJldHVybiBKU0M6
OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhK
U0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsgCiAgICAgICAgIH0KIAogICAgICAgICBET01XcmFwcGVyV29ybGQqIHdvcmxkKCkgeyBy
ZXR1cm4gbV93b3JsZC5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSW1hZ2VDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMWRkZjEzNjA0M2Q4MTAzZTlmOWQzMTJiMmNi
Mjg0MjYwNGEwZDAxZi4uYmU3NWFmMGJlN2NhZTkxNDY2MWMyZGVlZDRmNGIyNWRkMGQ3Y2ZkZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3Iu
Y3BwCkBAIC0zNSw3ICszNSw3IEBAIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSlNJbWFnZUNv
bnN0cnVjdG9yKTsKIGNvbnN0IENsYXNzSW5mbyBKU0ltYWdlQ29uc3RydWN0b3I6OnNfaW5mbyA9
IHsgIkltYWdlQ29uc3RydWN0b3IiLCAmRE9NQ29uc3RydWN0b3JXaXRoRG9jdW1lbnQ6OnNfaW5m
bywgMCwgMCB9OwogCiBKU0ltYWdlQ29uc3RydWN0b3I6OkpTSW1hZ2VDb25zdHJ1Y3RvcihFeGVj
U3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi0gICAgOiBET01D
b25zdHJ1Y3RvcldpdGhEb2N1bWVudChKU0ltYWdlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVy
ZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQorICAgIDog
RE9NQ29uc3RydWN0b3JXaXRoRG9jdW1lbnQoSlNJbWFnZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1
Y3R1cmUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJv
dG90eXBlKCkpLCBnbG9iYWxPYmplY3QpCiB7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8p
KTsKICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVz
KCkucHJvdG90eXBlLCBKU0hUTUxJbWFnZUVsZW1lbnRQcm90b3R5cGU6OnNlbGYoZXhlYywgZ2xv
YmFsT2JqZWN0KSwgTm9uZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0ltYWdlQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1h
Z2VDb25zdHJ1Y3Rvci5oCmluZGV4IDczMjkzYzdiZjk0N2QyNjE0ZDQxN2VmZGZmNzk0ZmMxYjBk
YzU5NDMuLjY1NGUyMjNmYThkYjViZmFhYWFjZWRmZWQzNWNmNzAyYTc5OTNhMTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5oCkBAIC0yOSw5
ICsyOSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIEpTSW1h
Z2VDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7CiAKLSAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShK
U0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0
cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gSlND
OjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAg
ICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5
cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255
bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgY29u
c3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNJbWFnZURhdGFDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNJbWFnZURhdGFDdXN0b20uY3BwCmluZGV4IGI1NTkyZDhjN2QwZWEzYTE4ZjNmMzY5NzRi
ZjAxNjg3ZjVmMmI4ZGUuLmE5MmVkNDcwYzQ5MjlhNzAzZDExOGNmYTJhN2NhMGI5YzFmOTQxN2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3VzdG9t
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlRGF0YUN1c3RvbS5j
cHAKQEAgLTQ4LDcgKzQ4LDcgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSW1hZ2VEYXRhKiBpbWFnZUQKICAgICB3cmFwcGVy
ID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIEltYWdlRGF0
YSwgaW1hZ2VEYXRhKTsKICAgICBJZGVudGlmaWVyIGRhdGFOYW1lKGV4ZWMsICJkYXRhIik7CiAg
ICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBjcGFDbGFzc0luZm8gPSB7ICJDYW52YXNQaXhlbEFy
cmF5IiwgJkpTQnl0ZUFycmF5OjpCYXNlOjpzX2luZm8sIDAsIDAgfTsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFJlZlB0cjxTdHJ1Y3R1cmU+LCBjcGFTdHJ1Y3R1cmUsIChKU0J5dGVBcnJheTo6
Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpLCAmY3BhQ2xhc3NJbmZvKSkpOworICAgIERFRklORV9T
VEFUSUNfTE9DQUwoUmVmUHRyPFN0cnVjdHVyZT4sIGNwYVN0cnVjdHVyZSwgKEpTQnl0ZUFycmF5
OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBqc051bGwoKSwgJmNwYUNsYXNz
SW5mbykpKTsKICAgICB3cmFwcGVyLT5wdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBkYXRh
TmFtZSwgbmV3IChleGVjKSBKU0J5dGVBcnJheShleGVjLCBjcGFTdHJ1Y3R1cmUsIGltYWdlRGF0
YS0+ZGF0YSgpLT5kYXRhKCkpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogICAgIGV4ZWMtPmhl
YXAoKS0+cmVwb3J0RXh0cmFNZW1vcnlDb3N0KGltYWdlRGF0YS0+ZGF0YSgpLT5sZW5ndGgoKSk7
CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3Ry
dWN0b3IuY3BwCmluZGV4IGEzYzlhYWI0ZDIzZTdhMmUyYjdiMWRjNWNkMTgwNjZmMGUxZmU0Yzcu
LjU5ZTBiNmEzZThiYTk0NmE4NDYwNDliMzEzOTYxMzgzMTg3MGNmMmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuY3BwCkBAIC0zNiw3
ICszNiw3IEBAIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSlNPcHRpb25Db25zdHJ1Y3Rvcik7
CiBjb25zdCBDbGFzc0luZm8gSlNPcHRpb25Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiT3B0aW9u
Q29uc3RydWN0b3IiLCAmRE9NQ29uc3RydWN0b3JXaXRoRG9jdW1lbnQ6OnNfaW5mbywgMCwgMCB9
OwogCiBKU09wdGlvbkNvbnN0cnVjdG9yOjpKU09wdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
ZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLSAgICA6IERPTUNvbnN0cnVj
dG9yV2l0aERvY3VtZW50KEpTT3B0aW9uQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShnbG9i
YWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQorICAgIDogRE9NQ29u
c3RydWN0b3JXaXRoRG9jdW1lbnQoSlNPcHRpb25Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJl
KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlw
ZSgpKSwgZ2xvYmFsT2JqZWN0KQogewogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAg
ICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLnBy
b3RvdHlwZSwgSlNIVE1MT3B0aW9uRWxlbWVudFByb3RvdHlwZTo6c2VsZihleGVjLCBnbG9iYWxP
YmplY3QpLCBOb25lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
T3B0aW9uQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTT3B0aW9u
Q29uc3RydWN0b3IuaAppbmRleCAwMzYzM2M3OTJlM2UyMWJhMWMxOTViZjczM2JjYWI3OWY5YTI3
NTg4Li44YTE4MDA3MWNhZjA1NmNjYjJhMmZjOTBiY2UxZTgxMGJkZDQ1Yjk0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5oCkBAIC0zMCw5
ICszMCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIEpTT3B0
aW9uQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCopOwogCi0g
ICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
SlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIEpT
Qzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAg
ICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90
eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNv
bnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV29ya2VyQ29udGV4dEJhc2UuaAppbmRleCA5OTk0OGI3M2EwMzYyNTMyMGMwMjQxNzRj
MjVlNTc2NTZhZjdiN2RlLi5iOWMyMzRhMmJmYmJkODJhMDVmNTgyMTQxZGFjMTEyMGFhMDI3MjQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRC
YXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFz
ZS5oCkBAIC00OSw5ICs0OSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgV29ya2Vy
Q29udGV4dCogaW1wbCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbC5nZXQoKTsgfQogICAgICAgICB2
aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBj
b25zdDsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRl
U3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhK
U0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsKKyAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlw
dENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0
Q29udHJvbGxlci5jcHAKaW5kZXggZDM5MjI4MTY5YmY4ZGJmMjBmNWFiNDIzYmMwNTI1YzkzZTFk
Nzk5Yy4uNjdiMDQ0MWFhMjJhNGY1MDRiYWZiNTBhZjJjMzIyZjFhYTM3NTYxMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5j
cHAKQEAgLTczLDEzICs3MywxMyBAQCB2b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmluaXRT
Y3JpcHQoKQogICAgIC8vIEV4cGxpY2l0bHkgcHJvdGVjdCB0aGUgZ2xvYmFsIG9iamVjdCdzIHBy
b3RvdHlwZSBzbyBpdCBpc24ndCBjb2xsZWN0ZWQKICAgICAvLyB3aGVuIHdlIGFsbG9jYXRlIHRo
ZSBnbG9iYWwgb2JqZWN0LiAoT25jZSB0aGUgZ2xvYmFsIG9iamVjdCBpcyBmdWxseQogICAgIC8v
IGNvbnN0cnVjdGVkLCBpdCBjYW4gbWFyayBpdHMgb3duIHByb3RvdHlwZS4pCi0gICAgUmVmUHRy
PFN0cnVjdHVyZT4gd29ya2VyQ29udGV4dFByb3RvdHlwZVN0cnVjdHVyZSA9IEpTV29ya2VyQ29u
dGV4dFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKTsKKyAgICBSZWZQdHI8U3Ry
dWN0dXJlPiB3b3JrZXJDb250ZXh0UHJvdG90eXBlU3RydWN0dXJlID0gSlNXb3JrZXJDb250ZXh0
UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoKm1fZ2xvYmFsRGF0YSwganNOdWxsKCkpOwogICAg
IEdsb2JhbDxKU1dvcmtlckNvbnRleHRQcm90b3R5cGU+IHdvcmtlckNvbnRleHRQcm90b3R5cGUo
Km1fZ2xvYmFsRGF0YSwgbmV3IChtX2dsb2JhbERhdGEuZ2V0KCkpIEpTV29ya2VyQ29udGV4dFBy
b3RvdHlwZSgwLCB3b3JrZXJDb250ZXh0UHJvdG90eXBlU3RydWN0dXJlLnJlbGVhc2UoKSkpOwog
CiAgICAgaWYgKG1fd29ya2VyQ29udGV4dC0+aXNEZWRpY2F0ZWRXb3JrZXJDb250ZXh0KCkpIHsK
LSAgICAgICAgUmVmUHRyPFN0cnVjdHVyZT4gZGVkaWNhdGVkQ29udGV4dFByb3RvdHlwZVN0cnVj
dHVyZSA9IEpTRGVkaWNhdGVkV29ya2VyQ29udGV4dFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJl
KHdvcmtlckNvbnRleHRQcm90b3R5cGUuZ2V0KCkpOworICAgICAgICBSZWZQdHI8U3RydWN0dXJl
PiBkZWRpY2F0ZWRDb250ZXh0UHJvdG90eXBlU3RydWN0dXJlID0gSlNEZWRpY2F0ZWRXb3JrZXJD
b250ZXh0UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoKm1fZ2xvYmFsRGF0YSwgd29ya2VyQ29u
dGV4dFByb3RvdHlwZS5nZXQoKSk7CiAgICAgICAgIEdsb2JhbDxKU0RlZGljYXRlZFdvcmtlckNv
bnRleHRQcm90b3R5cGU+IGRlZGljYXRlZENvbnRleHRQcm90b3R5cGUoKm1fZ2xvYmFsRGF0YSwg
bmV3IChtX2dsb2JhbERhdGEuZ2V0KCkpIEpTRGVkaWNhdGVkV29ya2VyQ29udGV4dFByb3RvdHlw
ZSgwLCBkZWRpY2F0ZWRDb250ZXh0UHJvdG90eXBlU3RydWN0dXJlLnJlbGVhc2UoKSkpOwotICAg
ICAgICBSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUgPSBKU0RlZGljYXRlZFdvcmtlckNvbnRl
eHQ6OmNyZWF0ZVN0cnVjdHVyZShkZWRpY2F0ZWRDb250ZXh0UHJvdG90eXBlLmdldCgpKTsKKyAg
ICAgICAgUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlID0gSlNEZWRpY2F0ZWRXb3JrZXJDb250
ZXh0OjpjcmVhdGVTdHJ1Y3R1cmUoKm1fZ2xvYmFsRGF0YSwgZGVkaWNhdGVkQ29udGV4dFByb3Rv
dHlwZS5nZXQoKSk7CiAKICAgICAgICAgbV93b3JrZXJDb250ZXh0V3JhcHBlci5zZXQoKm1fZ2xv
YmFsRGF0YSwgbmV3IChtX2dsb2JhbERhdGEuZ2V0KCkpIEpTRGVkaWNhdGVkV29ya2VyQ29udGV4
dChzdHJ1Y3R1cmUucmVsZWFzZSgpLCBtX3dvcmtlckNvbnRleHQtPnRvRGVkaWNhdGVkV29ya2Vy
Q29udGV4dCgpKSk7CiAgICAgICAgIHdvcmtlckNvbnRleHRQcm90b3R5cGUtPnB1dEFub255bW91
c1ZhbHVlKCptX2dsb2JhbERhdGEsIDAsIG1fd29ya2VyQ29udGV4dFdyYXBwZXIuZ2V0KCkpOwpA
QCAtODcsOSArODcsOSBAQCB2b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmluaXRTY3JpcHQo
KQogI2lmIEVOQUJMRShTSEFSRURfV09SS0VSUykKICAgICB9IGVsc2UgewogICAgICAgICBBU1NF
UlQobV93b3JrZXJDb250ZXh0LT5pc1NoYXJlZFdvcmtlckNvbnRleHQoKSk7Ci0gICAgICAgIFJl
ZlB0cjxTdHJ1Y3R1cmU+IHNoYXJlZENvbnRleHRQcm90b3R5cGVTdHJ1Y3R1cmUgPSBKU1NoYXJl
ZFdvcmtlckNvbnRleHRQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh3b3JrZXJDb250ZXh0UHJv
dG90eXBlLmdldCgpKTsKKyAgICAgICAgUmVmUHRyPFN0cnVjdHVyZT4gc2hhcmVkQ29udGV4dFBy
b3RvdHlwZVN0cnVjdHVyZSA9IEpTU2hhcmVkV29ya2VyQ29udGV4dFByb3RvdHlwZTo6Y3JlYXRl
U3RydWN0dXJlKCptX2dsb2JhbERhdGEsIHdvcmtlckNvbnRleHRQcm90b3R5cGUuZ2V0KCkpOwog
ICAgICAgICBHbG9iYWw8SlNTaGFyZWRXb3JrZXJDb250ZXh0UHJvdG90eXBlPiBzaGFyZWRDb250
ZXh0UHJvdG90eXBlKCptX2dsb2JhbERhdGEsIG5ldyAobV9nbG9iYWxEYXRhLmdldCgpKSBKU1No
YXJlZFdvcmtlckNvbnRleHRQcm90b3R5cGUoMCwgc2hhcmVkQ29udGV4dFByb3RvdHlwZVN0cnVj
dHVyZS5yZWxlYXNlKCkpKTsKLSAgICAgICAgUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlID0g
SlNTaGFyZWRXb3JrZXJDb250ZXh0OjpjcmVhdGVTdHJ1Y3R1cmUoc2hhcmVkQ29udGV4dFByb3Rv
dHlwZS5nZXQoKSk7CisgICAgICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSA9IEpTU2hh
cmVkV29ya2VyQ29udGV4dDo6Y3JlYXRlU3RydWN0dXJlKCptX2dsb2JhbERhdGEsIHNoYXJlZENv
bnRleHRQcm90b3R5cGUuZ2V0KCkpOwogCiAgICAgICAgIG1fd29ya2VyQ29udGV4dFdyYXBwZXIu
c2V0KCptX2dsb2JhbERhdGEsIG5ldyAobV9nbG9iYWxEYXRhLmdldCgpKSBKU1NoYXJlZFdvcmtl
ckNvbnRleHQoc3RydWN0dXJlLnJlbGVhc2UoKSwgbV93b3JrZXJDb250ZXh0LT50b1NoYXJlZFdv
cmtlckNvbnRleHQoKSkpOwogICAgICAgICB3b3JrZXJDb250ZXh0UHJvdG90eXBlLT5wdXRBbm9u
eW1vdXNWYWx1ZSgqbV9nbG9iYWxEYXRhLCAwLCBtX3dvcmtlckNvbnRleHRXcmFwcGVyLmdldCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0KaW5kZXggY2I1MWM4YTI3ZDgxMmVlMzczNGQwZGIwZGMwNDEzNjM2NWIxYTVmMS4uMTJi
NDc3YjU4OTQ1Yzc1NzIwM2Y1N2NhMjU1ZDAyZTg3NTZhYmM3ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTc0Niw5ICs3
NDYsOSBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6
Ok5lZWRzVGhpc0NvbnZlcnNpb24ifSA9IDE7CiAgICAgfQogICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsCi0gICAgICAgICIgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0
ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKVxuIiAuCisgICAgICAgICIgICAgc3Rh
dGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSlcbiIgLgogICAgICAg
ICAiICAgIHtcbiIgLgotICAgICAgICAiICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNy
ZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7XG4iIC4KKyAgICAgICAgIiAgICAg
ICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBK
U0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNT
bG90Q291bnQsICZzX2luZm8pO1xuIiAuCiAgICAgICAgICIgICAgfVxuXG4iKTsKIAogICAgICMg
bWFya0NoaWxkcmVuIGZ1bmN0aW9uCkBAIC05NTgsOSArOTU4LDkgQEAgc3ViIEdlbmVyYXRlSGVh
ZGVyCiAgICAgICAgICRzdHJ1Y3R1cmVGbGFnc3siSlNDOjpPdmVycmlkZXNNYXJrQ2hpbGRyZW4i
fSA9IDE7CiAgICAgfQogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsCi0gICAgICAgICIgICAgc3Rh
dGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFs
dWUgcHJvdG90eXBlKVxuIiAuCisgICAgICAgICIgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
SlNDOjpKU1ZhbHVlIHByb3RvdHlwZSlcbiIgLgogICAgICAgICAiICAgIHtcbiIgLgotICAgICAg
ICAiICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6
VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7XG4iIC4KKyAgICAgICAgIiAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pO1xu
IiAuCiAgICAgICAgICIgICAgfVxuIik7CiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkRlbGVnYXRpbmdQcm90b3R5cGVQdXRGdW5jdGlvbiJ9KSB7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIHB1dChKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6
UHV0UHJvcGVydHlTbG90Jik7XG4iKTsKQEAgLTE0NDIsOSArMTQ0Miw5IEBAIHN1YiBHZW5lcmF0
ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNPYmplY3QqICR7
Y2xhc3NOYW1lfTo6Y3JlYXRlUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdClcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIp
OwogICAgICAgICBpZiAoJGhhc1BhcmVudCAmJiAkcGFyZW50Q2xhc3NOYW1lIG5lICJKU0M6OkRP
TU5vZGVGaWx0ZXIiKSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1
cm4gbmV3IChleGVjKSAke2NsYXNzTmFtZX1Qcm90b3R5cGUoZ2xvYmFsT2JqZWN0LCAke2NsYXNz
TmFtZX1Qcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSgke3BhcmVudENsYXNzTmFtZX1Qcm90b3R5
cGU6OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0KSkpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICByZXR1cm4gbmV3IChleGVjKSAke2NsYXNzTmFtZX1Qcm90b3R5cGUo
Z2xvYmFsT2JqZWN0LCAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShleGVj
LT5nbG9iYWxEYXRhKCksICR7cGFyZW50Q2xhc3NOYW1lfVByb3RvdHlwZTo6c2VsZihleGVjLCBn
bG9iYWxPYmplY3QpKSk7XG4iKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIHJldHVybiBuZXcgKGV4ZWMpICR7Y2xhc3NOYW1lfVByb3RvdHlw
ZShnbG9iYWxPYmplY3QsICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGds
b2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpKTtcbiIpOworICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgcmV0dXJuIG5ldyAoZXhlYykgJHtjbGFzc05hbWV9UHJvdG90eXBl
KGdsb2JhbE9iamVjdCwgJHtjbGFzc05hbWV9UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xv
YmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkp
KTtcbiIpOwogICAgICAgICB9CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsK
ICAgICB9CkBAIC0yODczLDkgKzI4NzMsOSBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3RvckRlY2xh
cmF0aW9uCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXIm
LCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpO1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87XG4iKTsKIAotICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4g
Y3JlYXRlU3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpXG4iKTsKKyAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0
ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHBy
b3RvdHlwZSlcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB7XG4iKTsKLSAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRl
KHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTtcbiIpOworICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIiAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwg
cHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pO1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgIH1cbiIpOwogCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAicHJvdGVjdGVkOlxu
Iik7CkBAIC0yOTA3LDcgKzI5MDcsNyBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRp
b24KICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJjb25zdCBDbGFzc0luZm8gJHtjb25zdHJ1Y3Rv
ckNsYXNzTmFtZX06OnNfaW5mbyA9IHsgXCIke3Zpc2libGVDbGFzc05hbWV9Q29uc3RydWN0b3Jc
IiwgJkRPTUNvbnN0cnVjdG9yT2JqZWN0OjpzX2luZm8sICYke2NvbnN0cnVjdG9yQ2xhc3NOYW1l
fVRhYmxlLCAwIH07XG5cbiIpOwogCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiJHtjb25zdHJ1
Y3RvckNsYXNzTmFtZX06OiR7Y29uc3RydWN0b3JDbGFzc05hbWV9KEV4ZWNTdGF0ZSogZXhlYywg
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdClcbiIpOwotICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIiAgICA6IERPTUNvbnN0cnVjdG9yT2JqZWN0KCR7Y29uc3RydWN0b3JDbGFzc05hbWV9
OjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2Jh
bE9iamVjdClcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICA6IERPTUNvbnN0cnVj
dG9yT2JqZWN0KCR7Y29uc3RydWN0b3JDbGFzc05hbWV9OjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFs
T2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpLCBn
bG9iYWxPYmplY3QpXG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4iKTsKICAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICIgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTtcbiIpOwog
ICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL2MvQ1J1bnRpbWVPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9jL0NSdW50aW1lT2JqZWN0LmgKaW5kZXggMjY3ZDcxZTQ3MjgyNTg4NTNmMzE4NTA5ZDIz
MzU2NWFiZDQyYjcyZC4uODU4MTVmYmQ0Njk4NDVhZmU2NTA0ZGY2ZjZiOTliZTc0YjcyZjY3MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvQ1J1bnRpbWVPYmplY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5oCkBAIC00NCw5ICs0NCw5
IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAg
c3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90
b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2Nf
aW5zdGFuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19pbnN0YW5jZS5jcHAKaW5k
ZXggMjdhZmZlYjE3Yzk2ZDViMmU3NjE0MTg0MjMxZTk2M2U3OWUzYTc5Yi4uMjFmYWU0ZjFmY2I3
ZTRmOTgzMTk2ZDg4YjQzYjkxODVlMDVjMWUxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL2MvY19pbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19p
bnN0YW5jZS5jcHAKQEAgLTEyMCw5ICsxMjAsOSBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChp
bmhlcml0cygmc19pbmZvKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5v
bnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgIH0KIAogICAgIHN0YXRp
YyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9q
bmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHAKaW5kZXggOTVkNTE4MDE5NDk3ZGU0MjliZmI4Y2U3
Njg2M2Q1ODU2ZjllMWNjMy4uYjMxMTQxZTRiOTFiYjgwNDdjZDQ0MzZlYWI5YjI0ZjgzNWFiNDE3
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUluc3RhbmNl
SlNDLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VK
U0MuY3BwCkBAIC0xMjUsOSArMTI1LDkgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoaW5oZXJp
dHMoJnNfaW5mbykpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4g
Y3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNW
YWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
cHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91
c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShn
bG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKICAgICBzdGF0aWMgY29u
c3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9q
bmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pz
Yy9KYXZhUnVudGltZU9iamVjdC5oCmluZGV4IDEyYTg1YWU0ZGVhNTE4N2QzMDkxMWY0MWQ0ZTA0
OTE0M2JkMmU0ODAuLjAzZjExNmZhZGY1ZGE0MGU4ZDg4Zjc2OGQzMjBkMTY2M2I0MmQyMGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3Qu
aApAQCAtNDIsOSArNDIsOSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZv
IHNfaW5mbzsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0
dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4g
Y3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5
cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwg
JnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3Vz
U2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2Uvb2JqYy9PYmpDUnVudGltZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3QuaAppbmRleCBlOWZhMTBkYzA1OGQwN2Q4MmNiZjJl
ZDhmNDE0OWEzZjU4Y2Y1NWNmLi5iMjlhMzMzOTk5NWJiOTU5Y2JlYWVhMzQ5ZTNmYzJkOWI3MWY5
YTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9PYmpDUnVudGltZU9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0
LmgKQEAgLTQyLDkgKzQyLDkgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5m
byBzX2luZm87CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVj
dHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+
IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90
eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQs
ICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwg
cHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91
c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbSBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9vYmpjL29iamNfaW5zdGFuY2UubW0KaW5kZXggZTBiMThmMTQyNTUxZTdlODFlZWEyOTAxMDZk
ZDY3ODJhOWZiYmM1Ny4uNGY5M2NmYTZhZjk3MTZkZGRiNGZkMWRlZTNjMWM4NDlmNTUzZjllNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tCkBAIC0xODQs
OSArMTg0LDkgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwog
ICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJl
KEpTVmFsdWUgcHJvdG90eXBlKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3Jl
YXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUp
CiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNf
aW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGlt
ZS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKaW5kZXggMWNl
ZTg1YmMyMmMxZmMwMDVhOGRmNzIxOTdiYzdmMDA2MjhkMWM0MS4uNGVmMGFmZDU3Mzk3ZWE1Zjc1
ZmQ1ODM2YTM2NzQ2MDQ1YmEzNzI4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L29iamMvb2JqY19ydW50aW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2Jq
Y19ydW50aW1lLmgKQEAgLTEwMyw5ICsxMDMsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBn
bG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9
CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9h
cnJheS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAppbmRleCBiZDFk
YTMyMTcxNjdhMDE5N2RiNjY2ZTc4NTJkYmEwOTU2NTg5ODA2Li45NTU1NTQ1MmRlZjk2YWYwNmNh
Njk1ZGY1ZGIwOGQwN2E4YTZjMDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9hcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5
LmgKQEAgLTU4LDkgKzU4LDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gZ2xvYmFsT2JqZWN0
LT5hcnJheVByb3RvdHlwZSgpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVj
dHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKIHByb3RlY3Rl
ZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmgKaW5kZXggYzBjOWYxNjM0MDRj
NWE5ODJkYzA5ZWZkM2UwZDAzZDViOGVmNzM0Ny4uOWRmNzk2ZWIwNzE1YmYzMmIzNGQyMjNmYjUy
YjNjODI2MmJjNmJlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
bWV0aG9kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmgKQEAg
LTQ1LDkgKzQ1LDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5mdW5j
dGlvblByb3RvdHlwZSgpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVy
ZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255
bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKIHByb3RlY3RlZDoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKaW5kZXggMGRlY2QxNzg2NDg0Mzkw
OGM2OGQ1NmQ2M2Y0OTAxMzEzMjhhYTQwMS4uYmI2ZDA1MTBmMjhkNDNkYjU3NTE4NTA5ZTEwYmQx
MmE0M2QzNGFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKQEAgLTYx
LDkgKzYxLDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5vYmplY3RQ
cm90b3R5cGUoKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFs
dWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNT
bG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKaW5kZXggZDc3NTc3MmI1ZWY5Zjk2YjQ2YWM0Y2FkM2E1YTc4M2Y2MjRmZDZjYy4u
ZjE3MzViODZiNDM0NmY2NjNiNWVlZmM3MTUwZmQ0Njc2NzA2YWRiYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTAzLTE1ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TWFrZSBTdHJ1Y3R1cmUgY3JlYXRpb24gcmVxdWlyZSBhIEpTR2xvYmFsRGF0YQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY0MzgKKworICAgICAgICBN
ZWNoYW5pY2FsIGNoYW5nZSB0byBtYWtlIGFsbCBTdHJ1Y3R1cmUgY3JlYXRpb24gdXNlIGEgSlNH
bG9iYWxEYXRhJgorCisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbToK
KyAgICAgICAgKFdlYktpdDo6UHJveHlSdW50aW1lTWV0aG9kOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVjdC5oOgorICAgICAgICAo
V2ViS2l0OjpQcm94eVJ1bnRpbWVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisKIDIwMTEtMDMt
MTUgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgRm9yZ290
IHRvIHNhdmUgYSBtb2RpZmljYXRpb24gdG8gdGhpcyBmaWxlIHdoZW4gY29tbWl0dGluZy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2Uu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tCmlu
ZGV4IDhhNDEzZDQyOGMyNzY1OTg4Yzg3NjhlM2M3YmZlOTMwNDE3MmE4MDcuLmYyNmI4NWRjZWEy
YTM5ZmE1MzlmMDg4NjM0NWY1YTUxODIwMjQzMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW0KKysrIGIvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbQpAQCAtMTg3LDkgKzE4Nyw5IEBAIHB1
YmxpYzoKICAgICAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKICAgICB9CiAKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3Rv
dHlwZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5m
byk7CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3Qu
aCBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVjdC5o
CmluZGV4IGZjNzc4OTAyYWZlNGNhMDQ1MjI3OTI5NDcwYWZlYjg2ZGE4MWY3MGQuLmEwN2M4NmM4
ODhlNzdiYTNiYzE2NGM0ZGFjMDc3ZTgyZjIwN2YzYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVjdC5oCkBAIC00MSw5ICs0
MSw5IEBAIHB1YmxpYzoKIAogICAgIFByb3h5SW5zdGFuY2UqIGdldEludGVybmFsUHJveHlJbnN0
YW5jZSgpIGNvbnN0OwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4g
SlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7Cisg
ICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlw
ZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnlt
b3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKICAgICBzdGF0aWMgY29uc3QgSlNDOjpD
bGFzc0luZm8gc19pbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDk1MWEyNTc0MGU0ZDVlOWQ1MTFjY2JmYWEz
ODU5NjhlM2NhNjBkMjUuLmE0Yzg1Zjg3ZDhjNGEyMTExNDdhM2JhY2M0NDI1NGUzZmZmNjY3NWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMS0wMy0xNSAgT2xpdmVyIEh1bnQgIDxv
bGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1ha2UgU3RydWN0dXJlIGNyZWF0aW9uIHJlcXVpcmUgYSBKU0dsb2JhbERhdGEK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NDM4CisK
KyAgICAgICAgTWVjaGFuaWNhbCBjaGFuZ2UgdG8gbWFrZSBhbGwgU3RydWN0dXJlIGNyZWF0aW9u
IHVzZSBhIEpTR2xvYmFsRGF0YSYuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvSlNOUE1ldGhvZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkpTTlBNZXRob2Q6OkpTTlBN
ZXRob2QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9k
Lmg6CisgICAgICAgIChXZWJLaXQ6OkpTTlBNZXRob2Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpKU05QT2JqZWN0OjpKU05QT2JqZWN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oOgorICAgICAgICAoV2ViS2l0OjpKU05QT2Jq
ZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorCiAyMDExLTAzLTE1ICBTaWRkaGFydGggTWF0aHVyICA8
c2lkZGhhcnRoLm1hdGh1ckBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTGFzemxv
IEdvbWJvcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9KU05QTWV0aG9kLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QTWV0aG9kLmNwcAppbmRleCBmYzczNTE5MDg2MTA1MWI4OWFiODgyYmQx
MWU3YjFkYzg1YjM0ZGJiLi44YjM2ZDFkYWVmODA1ZmYzNzdjMzFlYmIwMDhjNTgzZTQzOTBkZTY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
SlNOUE1ldGhvZC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL0pTTlBNZXRob2QuY3BwCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogY29uc3QgQ2xhc3NJbmZvIEpTTlBNZXRob2Q6OnNfaW5mbyA9IHsgIk5QTWV0aG9kIiwgJklu
dGVybmFsRnVuY3Rpb246OnNfaW5mbywgMCwgMCB9OwogCiBKU05QTWV0aG9kOjpKU05QTWV0aG9k
KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRl
bnRpZmllciYgbmFtZSwgTlBJZGVudGlmaWVyIG5wSWRlbnRpZmllcikKLSAgICA6IEludGVybmFs
RnVuY3Rpb24oJmV4ZWMtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LCBjcmVhdGVTdHJ1Y3R1
cmUoZ2xvYmFsT2JqZWN0LT5mdW5jdGlvblByb3RvdHlwZSgpKSwgbmFtZSkKKyAgICA6IEludGVy
bmFsRnVuY3Rpb24oJmV4ZWMtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LCBjcmVhdGVTdHJ1
Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QtPmZ1bmN0aW9uUHJvdG90eXBl
KCkpLCBuYW1lKQogICAgICwgbV9ucElkZW50aWZpZXIobnBJZGVudGlmaWVyKQogewogICAgIEFT
U0VSVChpbmhlcml0cygmc19pbmZvKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaAppbmRleCBhOTEzYTk5ZDA1YWE0
OGJkMjllYWE3NzQ2YzM3MDkzMzNlNGNiNzA4Li5mMGMyNDI0YWRiZmIxYWJhMzc3NGIyOWJmY2Fh
NDYxOTNhYjgzNGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmgKQEAgLTQyLDkgKzQyLDkgQEAgcHVibGljOgog
ICAgIE5QSWRlbnRpZmllciBucElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX25wSWRlbnRp
ZmllcjsgfQogCiBwcml2YXRlOiAgICAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVj
dHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAg
IHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhK
U0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwg
cHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgIH0KIAogICAgIHZpcnR1YWwgSlND
OjpDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0M6OkNhbGxEYXRhJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAK
aW5kZXggMjcyNGYwZDY1OWM4MDRjYzVmYTc3N2U3ODViOTJkY2FiOGE3NDFmZi4uOTNmOWZjNWJi
ODcwOTQ1NWU2MDQwMWU2YjlmY2YzNGZiNmMwNGFkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcApAQCAt
NTAsNyArNTAsNyBAQCBzdGF0aWMgTlBJZGVudGlmaWVyIG5wSWRlbnRpZmllckZyb21JZGVudGlm
aWVyKGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIpCiBjb25zdCBDbGFzc0luZm8gSlNOUE9i
amVjdDo6c19pbmZvID0geyAiTlBPYmplY3QiLCAmSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0Ojpz
X2luZm8sIDAsIDAgfTsKIAogSlNOUE9iamVjdDo6SlNOUE9iamVjdChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBOUFJ1bnRpbWVPYmplY3RNYXAqIG9iamVjdE1hcCwgTlBPYmplY3QqIG5w
T2JqZWN0KQotICAgIDogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgY3Jl
YXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpKQorICAgIDogSlNP
YmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgY3JlYXRlU3RydWN0dXJlKGdsb2Jh
bE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSkK
ICAgICAsIG1fb2JqZWN0TWFwKG9iamVjdE1hcCkKICAgICAsIG1fbnBPYmplY3QobnBPYmplY3Qp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvSlNOUE9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL0pTTlBPYmplY3QuaAppbmRleCBhZGFmZmE3ZjI5MWY5M2YyOWFkMmQ1YmQ5OWI4Yzg5Yjli
NmNiODg0Li5lOGEwOGRhZDQ4N2UwMDdjOGY0Njg2Y2FlYjU0YTc0MTkwMmNjMzBjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVj
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
T2JqZWN0LmgKQEAgLTU1LDkgKzU1LDkgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEpTT2JqZWN0OjpTdHJ1
Y3R1cmVGbGFnczsKICAgICAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4g
Y3JlYXRlU3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsK
KyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90
eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgIH0KIAogICAgIHZpcnR1YWwgSlNDOjpDYWxs
VHlwZSBnZXRDYWxsRGF0YShKU0M6OkNhbGxEYXRhJik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85937</attachid>
            <date>2011-03-16 10:05:45 -0700</date>
            <delta_ts>2011-03-16 10:27:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56438-20110316100544.patch</filename>
            <type>text/plain</type>
            <size>125954</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODExODgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCmluZGV4IGNkMzA3YTY3NjVlNjk0ZGNiM2U3ODg2
ZjVjOTRiNWRmYzIyNzQ4YTAuLjAwMWM0MTYxNmRmMDg3NjA0ZTc4NjhkMDMwZTUxMzFkM2RiYjM2
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0
cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3Ry
dWN0b3IuaApAQCAtMzksOSArMzksOSBAQCBwdWJsaWM6CiAgICAgSlNPYmplY3RDYWxsQXNDb25z
dHJ1Y3RvckNhbGxiYWNrIGNhbGxiYWNrKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsYmFjazsgfQog
ICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90bykgCisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU1ZhbHVlIHByb3RvKSAKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUoZ2xvYmFsRGF0YSwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKIHByb3RlY3RlZDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oCmluZGV4IGQ4
YWU2MDgzNjgxY2ZlMjQ0NWVkYjIzZDc0N2Y0OTExOTY1ZDVhMmYuLjExZmI5NWM1YzEwZjIzOGM2
ODcxMjA3ZGY3OGYyMTM5MjhjYzFiZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0NhbGxiYWNrRnVuY3Rpb24uaApAQCAtMzksOSArMzksOSBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgLy8gSW50ZXJuYWxGdW5jdGlvbiBtaXNoLW1hc2hlcyBjb25zdHJ1Y3RvciBhbmQgZnVuY3Rp
b24gYmVoYXZpb3IgLS0gd2Ugc2hvdWxkIAogICAgIC8vIHJlZmFjdG9yIHRoZSBjb2RlIHNvIHRo
aXMgb3ZlcnJpZGUgaXNuJ3QgbmVjZXNzYXJ5Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90bykgCisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U1ZhbHVlIHByb3RvKSAKICAgICB7IAotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
cHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsgCisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOyAKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCmluZGV4IDczMmNjMWRiMTQwNTAz
NjU5MGEwZDhhYzFjMDA3MDIzMDE4ZDMwOGYuLmEwYWRiNDQ4Mjc5Zjk4NjA4MTg0ZGY4MTA0YjBi
YTg1OTRiZDNhMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09i
amVjdC5oCkBAIC0xMjgsOSArMTI4LDkgQEAgcHVibGljOgogICAgIEpTQ2xhc3NSZWYgY2xhc3NS
ZWYoKSBjb25zdCB7IHJldHVybiBtX2NhbGxiYWNrT2JqZWN0RGF0YS0+anNDbGFzczsgfQogICAg
IGJvb2wgaW5oZXJpdHMoSlNDbGFzc1JlZikgY29uc3Q7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvKSAKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTVmFsdWUgcHJvdG8pIAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBCYXNl
OjpBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyAKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEJhc2U6OkFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAogICAgIH0KICAg
ICAKICAgICBKU1ZhbHVlIGdldFByaXZhdGVQcm9wZXJ0eShjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q29udGV4dFJlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5j
cHAKaW5kZXggY2NhYjk1MzI2MDA0Y2NhODlmNzgxNWU4NWE1ZWVjODVkMWNkOGI2ZC4uZTVjNzc4
ZjliYzUwYWQ5ODdlMTA3ZDU1MmI5NzkwZTQ4YjBmOTFlZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcApAQCAtOTMsMTEgKzkzLDExIEBAIEpTR2xvYmFsQ29u
dGV4dFJlZiBKU0dsb2JhbENvbnRleHRDcmVhdGVJbkdyb3VwKEpTQ29udGV4dEdyb3VwUmVmIGdy
b3VwLCBKU0NsYXNzCiAjZW5kaWYKIAogICAgIGlmICghZ2xvYmFsT2JqZWN0Q2xhc3MpIHsKLSAg
ICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG5ldyAoZ2xvYmFsRGF0YS5nZXQo
KSkgSlNHbG9iYWxPYmplY3Q7CisgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qg
PSBuZXcgKGdsb2JhbERhdGEuZ2V0KCkpIEpTR2xvYmFsT2JqZWN0KCpnbG9iYWxEYXRhKTsKICAg
ICAgICAgcmV0dXJuIEpTR2xvYmFsQ29udGV4dFJldGFpbih0b0dsb2JhbFJlZihnbG9iYWxPYmpl
Y3QtPmdsb2JhbEV4ZWMoKSkpOwogICAgIH0KIAotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSBuZXcgKGdsb2JhbERhdGEuZ2V0KCkpIEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxP
YmplY3Q+KGdsb2JhbE9iamVjdENsYXNzLCBKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0
Pjo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSk7CisgICAgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCA9IG5ldyAoZ2xvYmFsRGF0YS5nZXQoKSkgSlNDYWxsYmFja09iamVjdDxKU0dsb2Jh
bE9iamVjdD4oZ2xvYmFsT2JqZWN0Q2xhc3MsIEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmpl
Y3Q+OjpjcmVhdGVTdHJ1Y3R1cmUoKmdsb2JhbERhdGEsIGpzTnVsbCgpKSk7CiAgICAgRXhlY1N0
YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CiAgICAgSlNWYWx1ZSBwcm90
b3R5cGUgPSBnbG9iYWxPYmplY3RDbGFzcy0+cHJvdG90eXBlKGV4ZWMpOwogICAgIGlmICghcHJv
dG90eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNjYzYTQxNWVhYWU4NTE4YWU3ODBl
MWRkNTdmNWViMmY0NzU4Nzk2Zi4uYjkyMjNmZWEzZTBhOTZkOTBlODNlODA5YzE4MmQyZmI5ZDIy
NjkzNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTMzIEBACiAyMDExLTAz
LTE1ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBTdHJ1Y3R1cmUgY3JlYXRpb24gcmVx
dWlyZSBhIEpTR2xvYmFsRGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTY0MzgKKworICAgICAgICBNZWNoYW5pY2FsIGNoYW5nZSB0byBtYWtlIFN0
cnVjdHVyZTo6Y3JlYXRlIHJlcXVpcmUgSlNHbG9iYWxEYXRhJiwgYW5kCisgICAgICAgIHJlcXVp
cmUgYWxsIHVzZXJzIHRvIHByb3ZpZGUgdGhlIGdsb2JhbERhdGEuCisKKyAgICAgICAgKiBBUEkv
SlNDYWxsYmFja0NvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tDb25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja0Z1bmN0aW9u
Lmg6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKToK
KyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0NhbGxi
YWNrT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIEFQSS9KU0NvbnRleHRSZWYu
Y3BwOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAgICAgKiBkZWJ1Z2dlci9E
ZWJ1Z2dlckFjdGl2YXRpb24uY3BwOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckFjdGl2YXRpb246
OkRlYnVnZ2VyQWN0aXZhdGlvbik6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0
aW9uLmg6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyQWN0aXZhdGlvbjo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpERUZJTkVfU1RV
Ql9GVU5DVElPTik6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKEdsb2JhbE9iamVjdDo6
R2xvYmFsT2JqZWN0KToKKyAgICAgICAgKGZ1bmN0aW9uUnVuKToKKyAgICAgICAgKGpzY21haW4p
OgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmg6CisgICAgICAgIChKU0M6OkFyZ3VtZW50
czo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmg6
CisgICAgICAgIChKU0M6OkFycmF5UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAg
ICAqIHJ1bnRpbWUvQm9vbGVhbk9iamVjdC5oOgorICAgICAgICAoSlNDOjpCb29sZWFuT2JqZWN0
OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUluc3RhbmNlLmg6Cisg
ICAgICAgIChKU0M6OkRhdGVJbnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBy
dW50aW1lL0RhdGVQcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RGF0ZVByb3RvdHlwZTo6Y3Jl
YXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9ySW5zdGFuY2UuaDoKKyAgICAg
ICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50
aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUJhc2U6OmNyZWF0ZVN0
cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkV2YWxFeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAoSlNDOjpQcm9ncmFtRXhlY3V0YWJsZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAg
ICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Q
cm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9HZXR0ZXJTZXR0
ZXIuaDoKKyAgICAgICAgKEpTQzo6R2V0dGVyU2V0dGVyOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAg
ICAgICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpJbnRlcm5h
bEZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBUElWYWx1
ZVdyYXBwZXIuaDoKKyAgICAgICAgKEpTQzo6SlNBUElWYWx1ZVdyYXBwZXI6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgICogcnVudGltZS9KU0FjdGl2YXRpb24uaDoKKyAgICAgICAgKEpTQzo6
SlNBY3RpdmF0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJh
eS5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OkpTQXJyYXkpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNBcnJheS5oOgorICAgICAgICAoSlNDOjpKU0FycmF5OjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpKU0J5dGVB
cnJheTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTQnl0ZUFycmF5Lmg6
CisgICAgICAgIChKU0M6OkpTQnl0ZUFycmF5OjpKU0J5dGVBcnJheSk6CisgICAgICAgICogcnVu
dGltZS9KU0NlbGwuaDoKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpKU0NlbGw6OmNyZWF0ZUR1bW15
U3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uaDoKKyAgICAgICAgKEpT
Qzo6SlNGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xv
YmFsRGF0YS5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsRGF0YTo6c3RvcmVWUHRycyk6Cisg
ICAgICAgIChKU0M6OkpTR2xvYmFsRGF0YTo6SlNHbG9iYWxEYXRhKToKKyAgICAgICAgKiBydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OnJl
c2V0KToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6
OkpTR2xvYmFsT2JqZWN0OjpKU0dsb2JhbE9iamVjdCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFs
T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVj
dC5oOgorICAgICAgICAoSlNDOjpKU05vdEFuT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU09OT2JqZWN0Ojpj
cmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAg
ICAoSlNDOjpKU09iamVjdDo6Y3JlYXRlSW5oZXJpdG9ySUQpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgIChKU0M6OkpTTm9uRmluYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
IChKU0M6OkpTRmluYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OmNy
ZWF0ZUVtcHR5T2JqZWN0U3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmluaGVy
aXRvcklEKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oOgor
ICAgICAgICAoSlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6
CisgICAgICAgICogcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmg6CisgICAgICAgIChK
U0M6OkpTUHJvcGVydHlOYW1lSXRlcmF0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICog
cnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTU3RhdGljU2Nv
cGVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5o
OgorICAgICAgICAoSlNDOjpSb3BlQnVpbGRlcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAg
KiBydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNWYXJpYWJsZU9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTV3JhcHBlck9iamVj
dC5oOgorICAgICAgICAoSlNDOjpKU1dyYXBwZXJPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9KU1pvbWJpZS5oOgorICAgICAgICAoSlNDOjpKU1pvbWJpZTo6Y3Jl
YXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL01hdGhPYmplY3QuaDoKKyAgICAgICAg
KEpTQzo6TWF0aE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL05h
dGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0
cnVjdG9yOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBydW50aW1lL05hdGl2
ZUVycm9yQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6TmF0aXZlRXJyb3JDb25zdHJ1Y3Rv
cjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL051bWJlckNvbnN0cnVjdG9y
Lmg6CisgICAgICAgIChKU0M6Ok51bWJlckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyT2JqZWN0Lmg6CisgICAgICAgIChKU0M6Ok51bWJlck9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVj
dG9yLmg6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6
UmVnRXhwQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9S
ZWdFeHBPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1
cmUpOgorICAgICAgICAqIHJ1bnRpbWUvU2NvcGVDaGFpbi5oOgorICAgICAgICAoSlNDOjpTY29w
ZUNoYWluTm9kZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09i
amVjdC5oOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZC5o
OgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZDo6
Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oOgor
ICAgICAgICAoSlNDOjpTdHJpbmdQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
ICogcnVudGltZS9TdHJ1Y3R1cmUuaDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpjcmVhdGUp
OgorCisyMDExLTAzLTE1ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKICAgICAg
ICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCiAKICAgICAgICAgSW50cm9kdWNlIExvY2Fs
PFQ+IHRvIGFsbG93IHVzIHRvIHN0YXJ0IG1vdmluZyB0byBwcmVjaXNlIG1hcmtpbmcgb2YgbG9j
YWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAppbmRleCBmYjZiYmUz
YjkzMGE4NDczNGU5Yzg0YmE5OTdlYjM1MTQ1MmRjZjEzLi5hNzViYjBjNmM0OWM2ZDIxMjRiNWFm
ZDBjZDQxYzViMDQwZjk1YWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5leHAKQEAgLTExMyw3ICsxMTMsNyBAQCBfX1pOM0pTQzEwSlNGdW5jdGlvbjZzX2luZm9FCiBf
X1pOM0pTQzEwdGhyb3dFcnJvckVQTlNfOUV4ZWNTdGF0ZUVOU183SlNWYWx1ZUUKIF9fWk4zSlND
MTB0aHJvd0Vycm9yRVBOU185RXhlY1N0YXRlRVBOU184SlNPYmplY3RFCiBfX1pOM0pTQzExSlNC
eXRlQXJyYXkxM3NfZGVmYXVsdEluZm9FCi1fX1pOM0pTQzExSlNCeXRlQXJyYXkxNWNyZWF0ZVN0
cnVjdHVyZUVOU183SlNWYWx1ZUVQS05TXzlDbGFzc0luZm9FCitfX1pOM0pTQzExSlNCeXRlQXJy
YXkxNWNyZWF0ZVN0cnVjdHVyZUVSTlNfMTJKU0dsb2JhbERhdGFFTlNfN0pTVmFsdWVFUEtOU185
Q2xhc3NJbmZvRQogX19aTjNKU0MxMUpTQnl0ZUFycmF5QzFFUE5TXzlFeGVjU3RhdGVFTjNXVEYx
N05vbk51bGxQYXNzUmVmUHRySU5TXzlTdHJ1Y3R1cmVFRUVQTlMzXzlCeXRlQXJyYXlFCiBfX1pO
M0pTQzExTWFya2VkU3BhY2UyMWFsbG9jYXRlRnJvbVNpemVDbGFzc0VSTlMwXzlTaXplQ2xhc3NF
CiBfX1pOM0pTQzExUGFyc2VyQXJlbmE1cmVzZXRFdgpAQCAtMjg3LDcgKzI4Nyw2IEBAIF9fWk4z
SlNDOEpTT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRp
ZmllckUKIF9fWk4zSlNDOEpTT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVq
CiBfX1pOM0pTQzhKU09iamVjdDE1dW53cmFwcGVkT2JqZWN0RXYKIF9fWk4zSlNDOEpTT2JqZWN0
MTZnZXRQcm9wZXJ0eU5hbWVzRVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5
RU5TXzE1RW51bWVyYXRpb25Nb2RlRQotX19aTjNKU0M4SlNPYmplY3QxN2NyZWF0ZUluaGVyaXRv
cklERXYKIF9fWk4zSlNDOEpTT2JqZWN0MTdkZWZpbmVPd25Qcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0
ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFYgogX19aTjNKU0M4
SlNPYmplY3QxN3B1dERpcmVjdEZ1bmN0aW9uRVBOU185RXhlY1N0YXRlRVBOU18xMEpTRnVuY3Rp
b25FagogX19aTjNKU0M4SlNPYmplY3QxN3B1dERpcmVjdEZ1bmN0aW9uRVBOU185RXhlY1N0YXRl
RVBOU18xNkludGVybmFsRnVuY3Rpb25FagpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5k
ZWYgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgppbmRleCBkYzgxMjZkMTc4OWI0NGFhY2Q1NzEwNzAy
Y2FhMGJlYWNkM2ZmZjlkLi43NWM2ZDNlZmE4NDk5OGFlNWE2YjBjNTlkMWU3MjMwNjA1ZjEyOTM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9q
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LmRlZgpAQCAtMTAyLDE0ICsxMDIsMTIgQEAgRVhQT1JUUwogICAgID9jcmVhdGVAUmVnRXhwQEpT
Q0BAU0E/QVY/JFBhc3NSZWZQdHJAVlJlZ0V4cEBKU0NAQEBXVEZAQFBBVkpTR2xvYmFsRGF0YUAy
QEFCVlVTdHJpbmdAMkBXNFJlZ0V4cEZsYWdzQDJAQFoKICAgICA/Y3JlYXRlRW1wdHlTdHJpbmdA
U21hbGxTdHJpbmdzQEpTQ0BAQUFFWFBBVkpTR2xvYmFsRGF0YUAyQEBaCiAgICAgP2NyZWF0ZUVy
cm9yQEpTQ0BAWUFQQVZKU09iamVjdEAxQFBBVkV4ZWNTdGF0ZUAxQEFCVlVTdHJpbmdAMUBAWgot
ICAgID9jcmVhdGVJbmhlcml0b3JJREBKU09iamVjdEBKU0NAQEFBRVBBVlN0cnVjdHVyZUAyQFha
CiAgICAgP2NyZWF0ZUludGVycnVwdGVkRXhlY3V0aW9uRXhjZXB0aW9uQEpTQ0BAWUFQQVZKU09i
amVjdEAxQFBBVkpTR2xvYmFsRGF0YUAxQEBaCiAgICAgP2NyZWF0ZUxlYWtlZEBKU0dsb2JhbERh
dGFASlNDQEBTQT9BVj8kUGFzc1JlZlB0ckBWSlNHbG9iYWxEYXRhQEpTQ0BAQFdURkBAVzRUaHJl
YWRTdGFja1R5cGVAMkBAWgogICAgID9jcmVhdGVSYW5nZUVycm9yQEpTQ0BAWUFQQVZKU09iamVj
dEAxQFBBVkV4ZWNTdGF0ZUAxQEFCVlVTdHJpbmdAMUBAWgogICAgID9jcmVhdGVSZWZlcmVuY2VF
cnJvckBKU0NAQFlBUEFWSlNPYmplY3RAMUBQQVZFeGVjU3RhdGVAMUBBQlZVU3RyaW5nQDFAQFoK
ICAgICA/Y3JlYXRlU2luZ2xlQ2hhcmFjdGVyU3RyaW5nQFNtYWxsU3RyaW5nc0BKU0NAQEFBRVhQ
QVZKU0dsb2JhbERhdGFAMkBFQFoKICAgICA/Y3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yQEpTQ0BA
WUFQQVZKU09iamVjdEAxQFBBVkV4ZWNTdGF0ZUAxQEBaCi0gICAgP2NyZWF0ZVN0cnVjdHVyZUBK
U0J5dGVBcnJheUBKU0NAQFNBP0FWPyRQYXNzUmVmUHRyQFZTdHJ1Y3R1cmVASlNDQEBAV1RGQEBW
SlNWYWx1ZUAyQFBCVUNsYXNzSW5mb0AyQEBaCiAgICAgP2NyZWF0ZVN5bnRheEVycm9yQEpTQ0BA
WUFQQVZKU09iamVjdEAxQFBBVkV4ZWNTdGF0ZUAxQEFCVlVTdHJpbmdAMUBAWgogICAgID9jcmVh
dGVUYWJsZUBIYXNoVGFibGVASlNDQEBBQkVYUEFWSlNHbG9iYWxEYXRhQDJAQFoKICAgICA/Y3Jl
YXRlVGhyZWFkQFdURkBAWUFJUDZBUEFYUEFYQFowQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKaW5kZXggNjJhMmU1NGUx
YmFiOTJjMmVmYzJlZjExZjRjYjg3YTNiNmI3YzgwYS4uNTBiYTc0NmVlZDE2ZGIzMGFiZDI4ZWNj
NDA0ZGY3YzBiN2E4MDczOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVn
Z2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIG5hbWVzcGFj
ZSBKU0MgewogCiBEZWJ1Z2dlckFjdGl2YXRpb246OkRlYnVnZ2VyQWN0aXZhdGlvbihKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTT2JqZWN0KiBhY3RpdmF0aW9uKQotICAgIDogSlNOb25GaW5h
bE9iamVjdChEZWJ1Z2dlckFjdGl2YXRpb246OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSkpCisg
ICAgOiBKU05vbkZpbmFsT2JqZWN0KERlYnVnZ2VyQWN0aXZhdGlvbjo6Y3JlYXRlU3RydWN0dXJl
KGdsb2JhbERhdGEsIGpzTnVsbCgpKSkKIHsKICAgICBBU1NFUlQoYWN0aXZhdGlvbik7CiAgICAg
QVNTRVJUKGFjdGl2YXRpb24tPmlzQWN0aXZhdGlvbk9iamVjdCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAppbmRleCAwMWE0
OTA3MzM2MWIwZDY0MTM5YmQ0NjdjYmVhYTA4NWYxNGU5MjI5Li5mMjJkMmZmYmQ5MTk0M2FlNDhm
YzkzZjNjN2U4MGEyMWFiYTRjOTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCkBAIC00OSw5ICs0OSw5IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICB2aXJ0dWFsIEpTVmFsdWUgbG9va3VwR2V0dGVyKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHZpcnR1YWwgSlNWYWx1
ZSBsb29rdXBTZXR0ZXIoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
KTsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVy
ZShKU1ZhbHVlIHByb3RvdHlwZSkgCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVy
ZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90
b3R5cGUpIAogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
cHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91
c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAorICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyAKICAgICAgICAgfQogCiAgICAg
cHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVi
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAppbmRleCA1ZmZl
NzQxYzQ4MjZmODE5MGM2YmVmN2U5NWNhYzIxZjNhOTZjMTlkLi5mYjlhZDExZTAwN2Q0OTZkODFl
NTNiZGJhNjIzNWY1MGIwNDZhYTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN0dWJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJz
LmNwcApAQCAtMTE3NCw3ICsxMTc0LDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04oRW5jb2RlZEpT
VmFsdWUsIG9wX2NyZWF0ZV90aGlzKQogICAgIFN0cnVjdHVyZSogc3RydWN0dXJlOwogICAgIEpT
VmFsdWUgcHJvdG8gPSBzdGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1ZSgpOwogICAgIGlmIChwcm90
by5pc09iamVjdCgpKQotICAgICAgICBzdHJ1Y3R1cmUgPSBhc09iamVjdChwcm90byktPmluaGVy
aXRvcklEKCk7CisgICAgICAgIHN0cnVjdHVyZSA9IGFzT2JqZWN0KHByb3RvKS0+aW5oZXJpdG9y
SUQoKnN0YWNrRnJhbWUuZ2xvYmFsRGF0YSk7CiAgICAgZWxzZQogICAgICAgICBzdHJ1Y3R1cmUg
PSBjb25zdHJ1Y3Rvci0+c2NvcGUoKS0+Z2xvYmFsT2JqZWN0LT5lbXB0eU9iamVjdFN0cnVjdHVy
ZSgpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoY2FsbEZyYW1l
LCBzdHJ1Y3R1cmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCAxODczNjU5MTI4YjljYTc4NDIz
MGUwM2ZmY2VmYjVlYTNlZGYwZDVjLi44Y2NiMDM5ODUwNmJkOWEzMWJkYTZhNzljOTA2ZDdiMTRk
NDE0ZjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtMTQxLDE0ICsxNDEsMTQgQEAgbG9uZyBT
dG9wV2F0Y2g6OmdldEVsYXBzZWRNUygpCiAKIGNsYXNzIEdsb2JhbE9iamVjdCA6IHB1YmxpYyBK
U0dsb2JhbE9iamVjdCB7CiBwdWJsaWM6Ci0gICAgR2xvYmFsT2JqZWN0KGNvbnN0IFZlY3RvcjxV
U3RyaW5nPiYgYXJndW1lbnRzKTsKKyAgICBHbG9iYWxPYmplY3QoSlNHbG9iYWxEYXRhJiwgY29u
c3QgVmVjdG9yPFVTdHJpbmc+JiBhcmd1bWVudHMpOwogICAgIHZpcnR1YWwgVVN0cmluZyBjbGFz
c05hbWUoKSBjb25zdCB7IHJldHVybiAiZ2xvYmFsIjsgfQogfTsKIENPTVBJTEVfQVNTRVJUKCFJ
c0ludGVnZXI8R2xvYmFsT2JqZWN0Pjo6dmFsdWUsIFdURl9Jc0ludGVnZXJfR2xvYmFsT2JqZWN0
X2ZhbHNlKTsKIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoR2xvYmFsT2JqZWN0KTsKIAotR2xv
YmFsT2JqZWN0OjpHbG9iYWxPYmplY3QoY29uc3QgVmVjdG9yPFVTdHJpbmc+JiBhcmd1bWVudHMp
Ci0gICAgOiBKU0dsb2JhbE9iamVjdCgpCitHbG9iYWxPYmplY3Q6Okdsb2JhbE9iamVjdChKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IFZlY3RvcjxVU3RyaW5nPiYgYXJndW1lbnRzKQor
ICAgIDogSlNHbG9iYWxPYmplY3QoZ2xvYmFsRGF0YSkKIHsKICAgICBwdXREaXJlY3RGdW5jdGlv
bihnbG9iYWxFeGVjKCksIG5ldyAoZ2xvYmFsRXhlYygpKSBKU0Z1bmN0aW9uKGdsb2JhbEV4ZWMo
KSwgdGhpcywgZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMSwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCks
ICJkZWJ1ZyIpLCBmdW5jdGlvbkRlYnVnKSk7CiAgICAgcHV0RGlyZWN0RnVuY3Rpb24oZ2xvYmFs
RXhlYygpLCBuZXcgKGdsb2JhbEV4ZWMoKSkgSlNGdW5jdGlvbihnbG9iYWxFeGVjKCksIHRoaXMs
IGZ1bmN0aW9uU3RydWN0dXJlKCksIDEsIElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAicHJpbnQi
KSwgZnVuY3Rpb25QcmludCkpOwpAQCAtMjEyLDcgKzIxMiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25SdW4oRXhlY1N0YXRlKiBleGVjKQogICAgIGlmICghZmlsbEJ1
ZmZlcldpdGhDb250ZW50c09mRmlsZShmaWxlTmFtZSwgc2NyaXB0KSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZSh0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZUVycm9yKGV4ZWMsICJDb3Vs
ZCBub3Qgb3BlbiBmaWxlLiIpKSk7CiAKLSAgICBHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9
IG5ldyAoJmV4ZWMtPmdsb2JhbERhdGEoKSkgR2xvYmFsT2JqZWN0KFZlY3RvcjxVU3RyaW5nPigp
KTsKKyAgICBHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG5ldyAoJmV4ZWMtPmdsb2JhbERh
dGEoKSkgR2xvYmFsT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgVmVjdG9yPFVTdHJpbmc+KCkp
OwogCiAgICAgU3RvcFdhdGNoIHN0b3BXYXRjaDsKICAgICBzdG9wV2F0Y2guc3RhcnQoKTsKQEAg
LTUzNiw3ICs1MzYsNyBAQCBpbnQganNjbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YsIEpTR2xv
YmFsRGF0YSogZ2xvYmFsRGF0YSkKICAgICBPcHRpb25zIG9wdGlvbnM7CiAgICAgcGFyc2VBcmd1
bWVudHMoYXJnYywgYXJndiwgb3B0aW9ucywgZ2xvYmFsRGF0YSk7CiAKLSAgICBHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCA9IG5ldyAoZ2xvYmFsRGF0YSkgR2xvYmFsT2JqZWN0KG9wdGlvbnMu
YXJndW1lbnRzKTsKKyAgICBHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG5ldyAoZ2xvYmFs
RGF0YSkgR2xvYmFsT2JqZWN0KCpnbG9iYWxEYXRhLCBvcHRpb25zLmFyZ3VtZW50cyk7CiAgICAg
Ym9vbCBzdWNjZXNzID0gcnVuV2l0aFNjcmlwdHMoZ2xvYmFsT2JqZWN0LCBvcHRpb25zLnNjcmlw
dHMsIG9wdGlvbnMuZHVtcCk7CiAgICAgaWYgKG9wdGlvbnMuaW50ZXJhY3RpdmUgJiYgc3VjY2Vz
cykKICAgICAgICAgcnVuSW50ZXJhY3RpdmUoZ2xvYmFsT2JqZWN0KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKaW5kZXggOTBjM2Y5Y2I4Nzg1MTk0YjU0Zjc0ZGYy
NTUyZWRhNjY1YTkyNjAxOC4uYmI2YmYzMmFlNzM5NDg2N2NmMDk5YWQxZTFiNzRhZDI0NWI0ZDY2
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKQEAgLTkyLDkg
KzkyLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBkLT5yZWdpc3RlcnMgPSAmYWN0
aXZhdGlvbi0+cmVnaXN0ZXJBdCgwKTsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKSAKKyAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkgCiAgICAgICAgIHsgCi0gICAg
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAor
ICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlw
ZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291
bnQsICZzX2luZm8pOyAKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmgKaW5kZXggZTQxZDhjYTgzZmE5
MmUyZDZiN2NkMWYzNzIxOTk5YjljMWUxNDQzNy4uOTY2NDFiZDJiYmJjNDQxZjEwZmM3NDU0NjAy
Y2M3MTliOGU1ZWVmMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJh
eVByb3RvdHlwZS5oCkBAIC0zNSw5ICszNSw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAg
IHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuaAppbmRleCBlMmFmMGMyNmJjYjczNmZmM2Q2MmM0
YjFmN2RiY2I2ZDc3NmRkNDgwLi5lZjJkNDAzNGQ1NTM0ZjQ4MGNlYzYxMTg1Y2RjNGNhZDA3M2Y3
MDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2Jq
ZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5o
CkBAIC0zMSw5ICszMSw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBjb25z
dCBDbGFzc0luZm8gc19pbmZvOwogICAgICAgICAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZv
KTsKICAgICAgICAgfQogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RGF0ZUluc3RhbmNlLmgKaW5kZXggZTNmM2JlOTgwYmNlZThjZDM5YzhkMzI1OTVlN2ZiYWE3NDBh
MzU4Yi4uNmM5Nzc4OTdkOWRhY2JlN2ZkMWFkMDdkOWIzNWMyZmVlYWNhNzIyNSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKQEAgLTUzLDkgKzUzLDkg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gY2FsY3VsYXRlR3JlZ29yaWFu
RGF0ZVRpbWVVVEMoZXhlYyk7CiAgICAgICAgIH0KIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5oCmluZGV4IDg2MTViZWZlODk2MDk3ZDlmZGY3YWQ0NTc2
MmFhMTczYmVmMTM0ZWQuLjBlYmJlZGM3ZTMwMmQwYWQ3NzcyNzUyMTdmN2EzMWExYmRmNWI0Mjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmgKQEAg
LTM2LDkgKzM2LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIGNvbnN0IENs
YXNzSW5mbyBzX2luZm87CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBj
cmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAg
fQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXJyb3JJbnN0YW5jZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JJbnN0YW5jZS5oCmluZGV4IGMxYmVlZjc3NTJjZTEwMDJiMTJhNWVmZDAzNjNiZDZjOWFmNmVm
NWQuLjgyZGJmMGY1NjM4MmViYzA4NTQyZDU3MTRiMTYzYmVjOWI2Yjc0MjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmgKQEAgLTI5LDkgKzI5LDkg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgY29uc3QgQ2xh
c3NJbmZvIHNfaW5mbzsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9
CiAKICAgICAgICAgc3RhdGljIEVycm9ySW5zdGFuY2UqIGNyZWF0ZShKU0dsb2JhbERhdGEqLCBO
b25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+LCBjb25zdCBVU3RyaW5nJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKaW5kZXggMmZmMmI4NWZlOGYzN2QyMGJj
ODcwOGM3ZTZhNDFjNGZkYjEwYzJiYy4uN2E0OGQ2YzZjNWMyNWZiNjQ2NDBkZTIxMGJkYjk3ZDg5
MDZiMTdmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0
YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaApA
QCAtNjUsNyArNjUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBtX251
bVBhcmFtZXRlcnNGb3JDYWxsID09IE5VTV9QQVJBTUVURVJTX0lTX0hPU1Q7CiAgICAgICAgIH0K
IAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShK
U1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90bywgVHlwZUluZm8o
Q29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgMCk7IH0K
KyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgMCk7IH0KIAogICAgIHByb3RlY3RlZDoKICAg
ICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gMDsKQEAgLTIzNyw3
ICsyMzcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBnZW5lcmF0ZWRK
SVRDb2RlRm9yQ2FsbCgpOwogICAgICAgICB9CiAjZW5kaWYKLSAgICAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90bykgeyByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUocHJvdG8sIFR5cGVJbmZvKENvbXBvdW5kVHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsIDApOyB9CisgICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
SlNWYWx1ZSBwcm90bykgeyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJv
dG8sIFR5cGVJbmZvKENvbXBvdW5kVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90
Q291bnQsIDApOyB9CiAKICAgICBwcml2YXRlOgogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNNYXJrQ2hpbGRyZW4gfCBTY3JpcHRFeGVjdXRh
YmxlOjpTdHJ1Y3R1cmVGbGFnczsKQEAgLTI4Miw3ICsyODIsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZShwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgMCk7IH0KKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVl
IHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlw
ZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwg
MCk7IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IE92ZXJyaWRlc01hcmtDaGlsZHJlbiB8IFNjcmlwdEV4ZWN1dGFibGU6OlN0
cnVjdHVyZUZsYWdzOwpAQCAtMzcyLDcgKzM3Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICB2b2lkIGRpc2NhcmRDb2RlKCk7CiAgICAgICAgIHZvaWQgbWFya0NoaWxkcmVuKE1hcmtTdGFj
ayYpOwogICAgICAgICBzdGF0aWMgRnVuY3Rpb25FeGVjdXRhYmxlKiBmcm9tR2xvYmFsQ29kZShj
b25zdCBJZGVudGlmaWVyJiwgRXhlY1N0YXRlKiwgRGVidWdnZXIqLCBjb25zdCBTb3VyY2VDb2Rl
JiwgSlNPYmplY3QqKiBleGNlcHRpb24pOwotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1
Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgMCk7IH0KKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHBy
b3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUlu
Zm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgMCk7
IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZShKU0dsb2JhbERh
dGEqLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBjb25zdCBTb3VyY2VDb2RlJiwgYm9vbCBmb3Jj
ZVVzZXNBcmd1bWVudHMsIEZ1bmN0aW9uUGFyYW1ldGVycyosIGJvb2wsIGludCBmaXJzdExpbmUs
IGludCBsYXN0TGluZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9GdW5jdGlvblByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVu
Y3Rpb25Qcm90b3R5cGUuaAppbmRleCBmYjBiYjQ4OTI0YTA1MjJhYzljNjMyZTczMjZjZjJiNWYx
ZmFjNzcxLi40NDdmMDBiZDgxMGY1ZTU5ZWY3OTZhNTg4MmVhMWNmNmQ0ZjI1YzgxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmgKQEAg
LTMwLDkgKzMwLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEZ1bmN0aW9uUHJvdG90eXBl
KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJl
Pik7CiAgICAgICAgIHZvaWQgYWRkRnVuY3Rpb25Qcm9wZXJ0aWVzKEV4ZWNTdGF0ZSosIEpTR2xv
YmFsT2JqZWN0KiwgU3RydWN0dXJlKiBmdW5jdGlvblN0cnVjdHVyZSwgSlNGdW5jdGlvbioqIGNh
bGxGdW5jdGlvbiwgSlNGdW5jdGlvbioqIGFwcGx5RnVuY3Rpb24pOwogCi0gICAgICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8pCisg
ICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90bykKICAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG8sIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsK
ICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0dldHRlclNldHRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvR2V0dGVyU2V0dGVyLmgKaW5kZXggNjhhOGM3MDcwYmFmM2RiZDViN2ZjN2I0NWIyMjA3Y2Qy
ZmMyNDhjZS4uODI0MTI3NWY0ZDIwZDg1MzIxMGZiOWY0YWQwZmQxNjZhODM0MTgwNSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVyLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVyLmgKQEAgLTQ3LDkgKzQ3
LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgc2V0R2V0dGVyKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNPYmplY3QqIGdldHRlcikgeyBtX2dldHRlci5zZXQoZ2xvYmFsRGF0
YSwgdGhpcywgZ2V0dGVyKTsgfQogICAgICAgICBKU09iamVjdCogc2V0dGVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9zZXR0ZXIuZ2V0KCk7IH0KICAgICAgICAgdm9pZCBzZXRTZXR0ZXIoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU09iamVjdCogc2V0dGVyKSB7IG1fc2V0dGVyLnNldChnbG9iYWxE
YXRhLCB0aGlzLCBzZXR0ZXIpOyB9Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVy
ZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhHZXR0ZXJTZXR0ZXJUeXBlLCBPdmVy
cmlkZXNNYXJrQ2hpbGRyZW4pLCBBbm9ueW1vdXNTbG90Q291bnQsIDApOworICAgICAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8o
R2V0dGVyU2V0dGVyVHlwZSwgT3ZlcnJpZGVzTWFya0NoaWxkcmVuKSwgQW5vbnltb3VzU2xvdENv
dW50LCAwKTsKICAgICAgICAgfQogICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgYm9vbCBp
c0dldHRlclNldHRlcigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50ZXJuYWxGdW5jdGlvbi5oCmluZGV4IDg0MjdiOGNhMjRlNGE2YTg3NWY3NTU2MTllZThi
YzhhMjZjNjM3NGYuLjA4Yzk4YTUzODBmMTcyOTUzNmVkOTkxOWZmYmJiODY1NDkwYWExOTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24u
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgK
QEAgLTM5LDkgKzM5LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGNvbnN0IFVTdHJpbmcg
ZGlzcGxheU5hbWUoRXhlY1N0YXRlKik7CiAgICAgICAgIGNvbnN0IFVTdHJpbmcgY2FsY3VsYXRl
ZERpc3BsYXlOYW1lKEV4ZWNTdGF0ZSopOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0
cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8pIAorICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTVmFsdWUgcHJvdG8pIAogICAgICAgICB7IAotICAgICAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAorICAgICAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAogICAgICAgICB9
CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FQSVZhbHVlV3JhcHBlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNBUElWYWx1ZVdyYXBwZXIuaAppbmRleCA0M2RkMGQzOWE3ODgyNmM2MjI3Y2JjOGNjY2JkOWYw
NzQ3ZWQ2MDAzLi41NGZlOTA5YWJjYTBhNDQwYTU5NmI3MTBjYTU1ZjFiMDAwZTcxZTk5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FQSVZhbHVlV3JhcHBlci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQVBJVmFsdWVXcmFwcGVyLmgK
QEAgLTM1LDkgKzM1LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgdmlydHVhbCBib29s
IGlzQVBJVmFsdWVXcmFwcGVyKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90
eXBlKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVy
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7
Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5m
byhDb21wb3VuZFR5cGUsIE92ZXJyaWRlc01hcmtDaGlsZHJlbiB8IE92ZXJyaWRlc0dldFByb3Bl
cnR5TmFtZXMpLCBBbm9ueW1vdXNTbG90Q291bnQsIDApOworICAgICAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oQ29tcG91bmRU
eXBlLCBPdmVycmlkZXNNYXJrQ2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzKSwg
QW5vbnltb3VzU2xvdENvdW50LCAwKTsKICAgICAgICAgfQogCiAgICAgICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaAppbmRleCBlYmM5OWYxZWMwZTU1
MmEzOTg4ZGRlMDExYzMwODIxZWI2OWNmZDE4Li4yYTkwMzkwODY3NTdhNmFhNTJhOWY0MzE5M2Zm
NmJmYjcwYTQ4OWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0FjdGl2YXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2
YXRpb24uaApAQCAtNjYsNyArNjYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgCiAgICAg
ICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IH0KKyAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNT
bG90Q291bnQsICZzX2luZm8pOyB9CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xv
dCB8IE5lZWRzVGhpc0NvbnZlcnNpb24gfCBPdmVycmlkZXNNYXJrQ2hpbGRyZW4gfCBPdmVycmlk
ZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNWYXJpYWJsZU9iamVjdDo6U3RydWN0dXJlRmxhZ3M7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCmluZGV4IDgyMmI4NGNkZGQ2
ZjI2NTQ2NjJmZWNhNjZiZWNiYjhhZmE5MjI0MTYuLjFkNjIxZmU5ZjkwZDA0YzM0ZmRjYTIyMmE5
ZWZiZTQxMjUwYjVlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQXJyYXkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXku
Y3BwCkBAIC0xMjcsNyArMTI3LDcgQEAgaW5saW5lIHZvaWQgSlNBcnJheTo6Y2hlY2tDb25zaXN0
ZW5jeShDb25zaXN0ZW5jeUNoZWNrVHlwZSkKICNlbmRpZgogCiBKU0FycmF5OjpKU0FycmF5KFZQ
dHJTdGVhbGluZ0hhY2tUeXBlKQotICAgIDogSlNOb25GaW5hbE9iamVjdChjcmVhdGVTdHJ1Y3R1
cmUoanNOdWxsKCkpKQorICAgIDogSlNOb25GaW5hbE9iamVjdChTdHJ1Y3R1cmU6OmNyZWF0ZShT
dHJ1Y3R1cmU6OlZQdHJTdGVhbGluZ0hhY2ssICZzX2luZm8pKQogewogICAgIEFTU0VSVChpbmhl
cml0cygmc19pbmZvKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaApp
bmRleCAyNGRlZjdiMDQzYzhjYWJlMzZlNDk1MWUyODhlMWJhNzM2NTZlNGQzLi45YTU0YWFiNGNm
ZGY0NzJhMjE1YmU1YTAzNzhhNTQ3N2NkZjA0ZTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheS5oCkBAIC0xMjQsOSArMTI0LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIHZvaWQgZmlsbEFyZ0xpc3QoRXhlY1N0YXRlKiwgTWFya2VkQXJndW1lbnRCdWZmZXImKTsK
ICAgICAgICAgdm9pZCBjb3B5VG9SZWdpc3RlcnMoRXhlY1N0YXRlKiwgUmVnaXN0ZXIqLCB1aW50
MzJfdCk7CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1
Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVj
dHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBw
cm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnlt
b3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQogICAgICAg
ICAKICAgICAgICAgaW5saW5lIHZvaWQgbWFya0NoaWxkcmVuRGlyZWN0KE1hcmtTdGFjayYgbWFy
a1N0YWNrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0
ZUFycmF5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNw
cAppbmRleCBhZTczNWRjM2Q0ZGZhYjYxMmVjN2JiZjU4NTY1MmE3OTE2YzZjNzhkLi5mYmFlYTFk
ZjZhYTJjZWY4MGQ2N2Q0MTFkZTI0OTllNWNmNWUxYzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCkBAIC01MCw5ICs1MCw5IEBAIEpTQnl0ZUFy
cmF5Ojp+SlNCeXRlQXJyYXkoKQogI2VuZGlmCiAKIAotUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IEpT
Qnl0ZUFycmF5OjpjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUsIGNvbnN0IEpTQzo6
Q2xhc3NJbmZvKiBjbGFzc0luZm8pCitQYXNzUmVmUHRyPFN0cnVjdHVyZT4gSlNCeXRlQXJyYXk6
OmNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90
eXBlLCBjb25zdCBKU0M6OkNsYXNzSW5mbyogY2xhc3NJbmZvKQogewotICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCBjbGFzc0luZm8pOworICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCBjbGFzc0luZm8pOwogfQogCiBib29s
IEpTQnl0ZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCmluZGV4IDZlOTE1OTRiZWUxN2Q0NjA4
OWY1NDI0NGRjMmJhYTJmM2Y2MDhhNTQuLmU2NzQ5NTgwYjEyNDMzMmNiOGJhNGQxMGY0YzRmNWJm
NTRlZDRkZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0
ZUFycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXku
aApAQCAtNzYsNyArNzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgfQogCiAgICAgICAg
IEpTQnl0ZUFycmF5KEV4ZWNTdGF0ZSosIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4sIFdU
Rjo6Qnl0ZUFycmF5KiBzdG9yYWdlKTsKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUsIGNvbnN0IEpTQzo6Q2xhc3NJ
bmZvKiA9ICZzX2RlZmF1bHRJbmZvKTsKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiwgSlNWYWx1ZSBwcm90b3R5cGUsIGNv
bnN0IEpTQzo6Q2xhc3NJbmZvKiA9ICZzX2RlZmF1bHRJbmZvKTsKIAogICAgICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9w
ZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CkBAIC0xMDIsNyArMTAyLDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgZW51bSBWUHRyU3RlYWxpbmdIYWNrVHlw
ZSB7IFZQdHJTdGVhbGluZ0hhY2sgfTsKICAgICAgICAgSlNCeXRlQXJyYXkoVlB0clN0ZWFsaW5n
SGFja1R5cGUpCi0gICAgICAgICAgICA6IEpTTm9uRmluYWxPYmplY3QoY3JlYXRlU3RydWN0dXJl
KGpzTnVsbCgpKSkKKyAgICAgICAgICAgIDogSlNOb25GaW5hbE9iamVjdChTdHJ1Y3R1cmU6OmNy
ZWF0ZShTdHJ1Y3R1cmU6OlZQdHJTdGVhbGluZ0hhY2ssICZzX2luZm8pKQogICAgICAgICB7CiAg
ICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
ZWxsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAppbmRleCBkNTUw
ZjIyYzI3YWRmNGRiZWIxOGYwMDQzNGU4ZmE5ZGMzNWQzYTM2Li40NzkxYjRlMThkYWNmZTI4Mzg3
ZDk5OWQ4MmE0NDdhMjUxNzlhZWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0NlbGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nl
bGwuaApAQCAtNzIsOSArNzIsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCB+
SlNDZWxsKCk7CiAKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVj
dHVyZT4gY3JlYXRlRHVtbXlTdHJ1Y3R1cmUoKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZUR1bW15U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkK
ICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGpzTnVsbCgp
LCBUeXBlSW5mbyhVbnNwZWNpZmllZFR5cGUpLCBBbm9ueW1vdXNTbG90Q291bnQsIDApOworICAg
ICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGpzTnVsbCgpLCBU
eXBlSW5mbyhVbnNwZWNpZmllZFR5cGUpLCBBbm9ueW1vdXNTbG90Q291bnQsIDApOwogICAgICAg
ICB9CiAKICAgICAgICAgLy8gUXVlcnlpbmcgdGhlIHR5cGUuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKaW5kZXggNmJjM2U4M2QxMDMwNmI4YmI0ZmNmMGE0NWUw
ZmRhN2RkYmUxYzQwYi4uNTA1YjlkZTI3MmI1ZDRkNWNhZGIwMGFiMTBjNGJlZjlmYjNiNjIzZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaApAQCAtNzMsOSAr
NzMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgSlNfRVhQT1JUREFUQSBj
b25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVj
dHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKSAKKyAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkgCiAgICAgICAgIHsgCi0gICAgICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAorICAgICAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8o
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8p
OyAKICAgICAgICAgfQogCiAgICAgICAgIE5hdGl2ZUZ1bmN0aW9uIG5hdGl2ZUZ1bmN0aW9uKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcAppbmRl
eCA4ZDhmN2UzZmFjOTU4MGEyNDE5MmVlZGY0MzA4NTljNDMxNjIzZWFhLi4yYTU5ZjkxNzQ5MTcy
ZjhiYWE5YmI3NDBjZGUzMGM4OWE5OWEzZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAKQEAgLTEwOCw4ICsxMDgsOCBAQCB2b2lkIEpTR2xv
YmFsRGF0YTo6c3RvcmVWUHRycygpCiAKICAgICBDT01QSUxFX0FTU0VSVChzaXplb2YoSlNGdW5j
dGlvbikgPD0gc2l6ZW9mKHN0b3JhZ2UpLCBzaXplb2ZfSlNGdW5jdGlvbl9tdXN0X2JlX2xlc3Nf
dGhhbl9zdG9yYWdlKTsKICAgICBjaGFyIGV4ZWN1dGFibGVTdG9yYWdlW3NpemVvZihWUHRySGFj
a0V4ZWN1dGFibGUpXTsKLSAgICBWUHRySGFja0V4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBuZXcg
KGV4ZWN1dGFibGVTdG9yYWdlKSBWUHRySGFja0V4ZWN1dGFibGUoVlB0ckhhY2tFeGVjdXRhYmxl
OjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKTsKLSAgICBKU0NlbGwqIGpzRnVuY3Rpb24gPSBu
ZXcgKHN0b3JhZ2UpIEpTRnVuY3Rpb24oSlNGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKGpzTnVs
bCgpKSwgZXhlY3V0YWJsZSk7CisgICAgVlB0ckhhY2tFeGVjdXRhYmxlKiBleGVjdXRhYmxlID0g
bmV3IChleGVjdXRhYmxlU3RvcmFnZSkgVlB0ckhhY2tFeGVjdXRhYmxlKFN0cnVjdHVyZTo6Y3Jl
YXRlKFN0cnVjdHVyZTo6VlB0clN0ZWFsaW5nSGFjaywgMCkpOworICAgIEpTQ2VsbCoganNGdW5j
dGlvbiA9IG5ldyAoc3RvcmFnZSkgSlNGdW5jdGlvbihTdHJ1Y3R1cmU6OmNyZWF0ZShTdHJ1Y3R1
cmU6OlZQdHJTdGVhbGluZ0hhY2ssICZKU0Z1bmN0aW9uOjpzX2luZm8pLCBleGVjdXRhYmxlKTsK
ICAgICBKU0dsb2JhbERhdGE6OmpzRnVuY3Rpb25WUHRyID0ganNGdW5jdGlvbi0+dnB0cigpOwog
ICAgIGpzRnVuY3Rpb24tPn5KU0NlbGwoKTsKIH0KQEAgLTEyNiwyMiArMTI2LDIyIEBAIEpTR2xv
YmFsRGF0YTo6SlNHbG9iYWxEYXRhKEdsb2JhbERhdGFUeXBlIGdsb2JhbERhdGFUeXBlLCBUaHJl
YWRTdGFja1R5cGUgdGhyZWFkCiAgICAgLCByZWdFeHBUYWJsZShmYXN0TmV3PEhhc2hUYWJsZT4o
SlNDOjpyZWdFeHBUYWJsZSkpCiAgICAgLCByZWdFeHBDb25zdHJ1Y3RvclRhYmxlKGZhc3ROZXc8
SGFzaFRhYmxlPihKU0M6OnJlZ0V4cENvbnN0cnVjdG9yVGFibGUpKQogICAgICwgc3RyaW5nVGFi
bGUoZmFzdE5ldzxIYXNoVGFibGU+KEpTQzo6c3RyaW5nVGFibGUpKQotICAgICwgYWN0aXZhdGlv
blN0cnVjdHVyZShKU0FjdGl2YXRpb246OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSkpCi0gICAg
LCBpbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yU3RydWN0dXJlKEpTTm9uRmluYWxPYmplY3Q6OmNy
ZWF0ZVN0cnVjdHVyZShqc051bGwoKSkpCi0gICAgLCB0ZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3JT
dHJ1Y3R1cmUoSlNOb25GaW5hbE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKLSAg
ICAsIHN0YXRpY1Njb3BlU3RydWN0dXJlKEpTU3RhdGljU2NvcGVPYmplY3Q6OmNyZWF0ZVN0cnVj
dHVyZShqc051bGwoKSkpCi0gICAgLCBzdHJpY3RFdmFsQWN0aXZhdGlvblN0cnVjdHVyZShTdHJp
Y3RFdmFsQWN0aXZhdGlvbjo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKLSAgICAsIHN0cmlu
Z1N0cnVjdHVyZShKU1N0cmluZzo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKLSAgICAsIG5v
dEFuT2JqZWN0U3RydWN0dXJlKEpTTm90QW5PYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwo
KSkpCi0gICAgLCBwcm9wZXJ0eU5hbWVJdGVyYXRvclN0cnVjdHVyZShKU1Byb3BlcnR5TmFtZUl0
ZXJhdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKQotICAgICwgZ2V0dGVyU2V0dGVyU3Ry
dWN0dXJlKEdldHRlclNldHRlcjo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKLSAgICAsIGFw
aVdyYXBwZXJTdHJ1Y3R1cmUoSlNBUElWYWx1ZVdyYXBwZXI6OmNyZWF0ZVN0cnVjdHVyZShqc051
bGwoKSkpCi0gICAgLCBzY29wZUNoYWluTm9kZVN0cnVjdHVyZShTY29wZUNoYWluTm9kZTo6Y3Jl
YXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKLSAgICAsIGV4ZWN1dGFibGVTdHJ1Y3R1cmUoRXhlY3V0
YWJsZUJhc2U6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSkpCi0gICAgLCBldmFsRXhlY3V0YWJs
ZVN0cnVjdHVyZShFdmFsRXhlY3V0YWJsZTo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKLSAg
ICAsIHByb2dyYW1FeGVjdXRhYmxlU3RydWN0dXJlKFByb2dyYW1FeGVjdXRhYmxlOjpjcmVhdGVT
dHJ1Y3R1cmUoanNOdWxsKCkpKQotICAgICwgZnVuY3Rpb25FeGVjdXRhYmxlU3RydWN0dXJlKEZ1
bmN0aW9uRXhlY3V0YWJsZTo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKLSAgICAsIGR1bW15
TWFya2FibGVDZWxsU3RydWN0dXJlKEpTQ2VsbDo6Y3JlYXRlRHVtbXlTdHJ1Y3R1cmUoKSkKKyAg
ICAsIGFjdGl2YXRpb25TdHJ1Y3R1cmUoSlNBY3RpdmF0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUoKnRo
aXMsIGpzTnVsbCgpKSkKKyAgICAsIGludGVycnVwdGVkRXhlY3V0aW9uRXJyb3JTdHJ1Y3R1cmUo
SlNOb25GaW5hbE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCBqc051bGwoKSkpCisgICAg
LCB0ZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3JTdHJ1Y3R1cmUoSlNOb25GaW5hbE9iamVjdDo6Y3Jl
YXRlU3RydWN0dXJlKCp0aGlzLCBqc051bGwoKSkpCisgICAgLCBzdGF0aWNTY29wZVN0cnVjdHVy
ZShKU1N0YXRpY1Njb3BlT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIGpzTnVsbCgpKSkK
KyAgICAsIHN0cmljdEV2YWxBY3RpdmF0aW9uU3RydWN0dXJlKFN0cmljdEV2YWxBY3RpdmF0aW9u
OjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIGpzTnVsbCgpKSkKKyAgICAsIHN0cmluZ1N0cnVjdHVy
ZShKU1N0cmluZzo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCBqc051bGwoKSkpCisgICAgLCBub3RB
bk9iamVjdFN0cnVjdHVyZShKU05vdEFuT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIGpz
TnVsbCgpKSkKKyAgICAsIHByb3BlcnR5TmFtZUl0ZXJhdG9yU3RydWN0dXJlKEpTUHJvcGVydHlO
YW1lSXRlcmF0b3I6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywganNOdWxsKCkpKQorICAgICwgZ2V0
dGVyU2V0dGVyU3RydWN0dXJlKEdldHRlclNldHRlcjo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCBq
c051bGwoKSkpCisgICAgLCBhcGlXcmFwcGVyU3RydWN0dXJlKEpTQVBJVmFsdWVXcmFwcGVyOjpj
cmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIGpzTnVsbCgpKSkKKyAgICAsIHNjb3BlQ2hhaW5Ob2RlU3Ry
dWN0dXJlKFNjb3BlQ2hhaW5Ob2RlOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIGpzTnVsbCgpKSkK
KyAgICAsIGV4ZWN1dGFibGVTdHJ1Y3R1cmUoRXhlY3V0YWJsZUJhc2U6OmNyZWF0ZVN0cnVjdHVy
ZSgqdGhpcywganNOdWxsKCkpKQorICAgICwgZXZhbEV4ZWN1dGFibGVTdHJ1Y3R1cmUoRXZhbEV4
ZWN1dGFibGU6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywganNOdWxsKCkpKQorICAgICwgcHJvZ3Jh
bUV4ZWN1dGFibGVTdHJ1Y3R1cmUoUHJvZ3JhbUV4ZWN1dGFibGU6OmNyZWF0ZVN0cnVjdHVyZSgq
dGhpcywganNOdWxsKCkpKQorICAgICwgZnVuY3Rpb25FeGVjdXRhYmxlU3RydWN0dXJlKEZ1bmN0
aW9uRXhlY3V0YWJsZTo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCBqc051bGwoKSkpCisgICAgLCBk
dW1teU1hcmthYmxlQ2VsbFN0cnVjdHVyZShKU0NlbGw6OmNyZWF0ZUR1bW15U3RydWN0dXJlKCp0
aGlzKSkKICAgICAsIGlkZW50aWZpZXJUYWJsZShnbG9iYWxEYXRhVHlwZSA9PSBEZWZhdWx0ID8g
d3RmVGhyZWFkRGF0YSgpLmN1cnJlbnRJZGVudGlmaWVyVGFibGUoKSA6IGNyZWF0ZUlkZW50aWZp
ZXJUYWJsZSgpKQogICAgICwgcHJvcGVydHlOYW1lcyhuZXcgQ29tbW9uSWRlbnRpZmllcnModGhp
cykpCiAgICAgLCBlbXB0eUxpc3QobmV3IE1hcmtlZEFyZ3VtZW50QnVmZmVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDkwYjQx
NjAzMDRiYTU1OGRjOGI1ZjMyMGEyMDI2ZGMyYTY5OTYwM2MuLmE5NmRlYzExMTVjNzUyMzU5MjQ4
NGFkNzUzYzYxYmM1MjQ4ZGU3NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTE3NSw2NCArMTc1LDY0IEBAIHZvaWQgSlNHbG9i
YWxPYmplY3Q6OnJlc2V0KEpTVmFsdWUgcHJvdG90eXBlKQogCiAgICAgLy8gUHJvdG90eXBlcwog
Ci0gICAgbV9mdW5jdGlvblByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBu
ZXcgKGV4ZWMpIEZ1bmN0aW9uUHJvdG90eXBlKGV4ZWMsIHRoaXMsIEZ1bmN0aW9uUHJvdG90eXBl
OjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKSk7IC8vIFRoZSByZWFsIHByb3RvdHlwZSB3aWxs
IGJlIHNldCBvbmNlIE9iamVjdFByb3RvdHlwZSBpcyBjcmVhdGVkLgotICAgIG1fZnVuY3Rpb25T
dHJ1Y3R1cmUgPSBKU0Z1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUobV9mdW5jdGlvblByb3RvdHlw
ZS5nZXQoKSk7Ci0gICAgbV9pbnRlcm5hbEZ1bmN0aW9uU3RydWN0dXJlID0gSW50ZXJuYWxGdW5j
dGlvbjo6Y3JlYXRlU3RydWN0dXJlKG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpOworICAgIG1f
ZnVuY3Rpb25Qcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVj
KSBGdW5jdGlvblByb3RvdHlwZShleGVjLCB0aGlzLCBGdW5jdGlvblByb3RvdHlwZTo6Y3JlYXRl
U3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNOdWxsKCkpKSk7IC8vIFRoZSByZWFsIHBy
b3RvdHlwZSB3aWxsIGJlIHNldCBvbmNlIE9iamVjdFByb3RvdHlwZSBpcyBjcmVhdGVkLgorICAg
IG1fZnVuY3Rpb25TdHJ1Y3R1cmUgPSBKU0Z1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+
Z2xvYmFsRGF0YSgpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKTsKKyAgICBtX2ludGVybmFs
RnVuY3Rpb25TdHJ1Y3R1cmUgPSBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKTsKICAgICBKU0Z1bmN0
aW9uKiBjYWxsRnVuY3Rpb24gPSAwOwogICAgIEpTRnVuY3Rpb24qIGFwcGx5RnVuY3Rpb24gPSAw
OwogICAgIG1fZnVuY3Rpb25Qcm90b3R5cGUtPmFkZEZ1bmN0aW9uUHJvcGVydGllcyhleGVjLCB0
aGlzLCBtX2Z1bmN0aW9uU3RydWN0dXJlLmdldCgpLCAmY2FsbEZ1bmN0aW9uLCAmYXBwbHlGdW5j
dGlvbik7CiAgICAgbV9jYWxsRnVuY3Rpb24uc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywg
Y2FsbEZ1bmN0aW9uKTsKICAgICBtX2FwcGx5RnVuY3Rpb24uc2V0KGV4ZWMtPmdsb2JhbERhdGEo
KSwgdGhpcywgYXBwbHlGdW5jdGlvbik7Ci0gICAgbV9vYmplY3RQcm90b3R5cGUuc2V0KGV4ZWMt
Pmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBPYmplY3RQcm90b3R5cGUoZXhlYywgdGhp
cywgT2JqZWN0UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpLCBtX2Z1bmN0aW9u
U3RydWN0dXJlLmdldCgpKSk7CisgICAgbV9vYmplY3RQcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2Jh
bERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBPYmplY3RQcm90b3R5cGUoZXhlYywgdGhpcywgT2Jq
ZWN0UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBqc051bGwo
KSksIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCkpKTsKICAgICBtX2Z1bmN0aW9uUHJvdG90eXBl
LT5zdHJ1Y3R1cmUoKS0+c2V0UHJvdG90eXBlV2l0aG91dFRyYW5zaXRpb24obV9vYmplY3RQcm90
b3R5cGUuZ2V0KCkpOwogCi0gICAgbV9lbXB0eU9iamVjdFN0cnVjdHVyZSA9IG1fb2JqZWN0UHJv
dG90eXBlLT5pbmhlcml0b3JJRCgpOworICAgIG1fZW1wdHlPYmplY3RTdHJ1Y3R1cmUgPSBtX29i
amVjdFByb3RvdHlwZS0+aW5oZXJpdG9ySUQoZXhlYy0+Z2xvYmFsRGF0YSgpKTsKIAotICAgIG1f
Y2FsbGJhY2tGdW5jdGlvblN0cnVjdHVyZSA9IEpTQ2FsbGJhY2tGdW5jdGlvbjo6Y3JlYXRlU3Ry
dWN0dXJlKG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpOwotICAgIG1fYXJndW1lbnRzU3RydWN0
dXJlID0gQXJndW1lbnRzOjpjcmVhdGVTdHJ1Y3R1cmUobV9vYmplY3RQcm90b3R5cGUuZ2V0KCkp
OwotICAgIG1fY2FsbGJhY2tDb25zdHJ1Y3RvclN0cnVjdHVyZSA9IEpTQ2FsbGJhY2tDb25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKTsKLSAgICBtX2Nh
bGxiYWNrT2JqZWN0U3RydWN0dXJlID0gSlNDYWxsYmFja09iamVjdDxKU09iamVjdFdpdGhHbG9i
YWxPYmplY3Q+OjpjcmVhdGVTdHJ1Y3R1cmUobV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpOworICAg
IG1fY2FsbGJhY2tGdW5jdGlvblN0cnVjdHVyZSA9IEpTQ2FsbGJhY2tGdW5jdGlvbjo6Y3JlYXRl
U3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSk7
CisgICAgbV9hcmd1bWVudHNTdHJ1Y3R1cmUgPSBBcmd1bWVudHM6OmNyZWF0ZVN0cnVjdHVyZShl
eGVjLT5nbG9iYWxEYXRhKCksIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKTsKKyAgICBtX2NhbGxi
YWNrQ29uc3RydWN0b3JTdHJ1Y3R1cmUgPSBKU0NhbGxiYWNrQ29uc3RydWN0b3I6OmNyZWF0ZVN0
cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKTsKKyAg
ICBtX2NhbGxiYWNrT2JqZWN0U3RydWN0dXJlID0gSlNDYWxsYmFja09iamVjdDxKU09iamVjdFdp
dGhHbG9iYWxPYmplY3Q+OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX29i
amVjdFByb3RvdHlwZS5nZXQoKSk7CiAKLSAgICBtX2FycmF5UHJvdG90eXBlLnNldChleGVjLT5n
bG9iYWxEYXRhKCksIHRoaXMsIG5ldyAoZXhlYykgQXJyYXlQcm90b3R5cGUodGhpcywgQXJyYXlQ
cm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpKTsKLSAg
ICBtX2FycmF5U3RydWN0dXJlID0gSlNBcnJheTo6Y3JlYXRlU3RydWN0dXJlKG1fYXJyYXlQcm90
b3R5cGUuZ2V0KCkpOwotICAgIG1fcmVnRXhwTWF0Y2hlc0FycmF5U3RydWN0dXJlID0gUmVnRXhw
TWF0Y2hlc0FycmF5OjpjcmVhdGVTdHJ1Y3R1cmUobV9hcnJheVByb3RvdHlwZS5nZXQoKSk7Cisg
ICAgbV9hcnJheVByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4
ZWMpIEFycmF5UHJvdG90eXBlKHRoaXMsIEFycmF5UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpKTsKKyAgICBtX2Fy
cmF5U3RydWN0dXJlID0gSlNBcnJheTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEo
KSwgbV9hcnJheVByb3RvdHlwZS5nZXQoKSk7CisgICAgbV9yZWdFeHBNYXRjaGVzQXJyYXlTdHJ1
Y3R1cmUgPSBSZWdFeHBNYXRjaGVzQXJyYXk6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxE
YXRhKCksIG1fYXJyYXlQcm90b3R5cGUuZ2V0KCkpOwogCi0gICAgbV9zdHJpbmdQcm90b3R5cGUu
c2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBTdHJpbmdQcm90b3R5cGUo
ZXhlYywgdGhpcywgU3RyaW5nUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUobV9vYmplY3RQcm90
b3R5cGUuZ2V0KCkpKSk7Ci0gICAgbV9zdHJpbmdPYmplY3RTdHJ1Y3R1cmUgPSBTdHJpbmdPYmpl
Y3Q6OmNyZWF0ZVN0cnVjdHVyZShtX3N0cmluZ1Byb3RvdHlwZS5nZXQoKSk7CisgICAgbV9zdHJp
bmdQcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBTdHJp
bmdQcm90b3R5cGUoZXhlYywgdGhpcywgU3RyaW5nUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpKTsKKyAgICBtX3N0
cmluZ09iamVjdFN0cnVjdHVyZSA9IFN0cmluZ09iamVjdDo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMt
Pmdsb2JhbERhdGEoKSwgbV9zdHJpbmdQcm90b3R5cGUuZ2V0KCkpOwogCi0gICAgbV9ib29sZWFu
UHJvdG90eXBlLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5ldyAoZXhlYykgQm9vbGVh
blByb3RvdHlwZShleGVjLCB0aGlzLCBCb29sZWFuUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUo
bV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpLCBtX2Z1bmN0aW9uU3RydWN0dXJlLmdldCgpKSk7Ci0g
ICAgbV9ib29sZWFuT2JqZWN0U3RydWN0dXJlID0gQm9vbGVhbk9iamVjdDo6Y3JlYXRlU3RydWN0
dXJlKG1fYm9vbGVhblByb3RvdHlwZS5nZXQoKSk7CisgICAgbV9ib29sZWFuUHJvdG90eXBlLnNl
dChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5ldyAoZXhlYykgQm9vbGVhblByb3RvdHlwZShl
eGVjLCB0aGlzLCBCb29sZWFuUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFs
RGF0YSgpLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSksIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0
KCkpKTsKKyAgICBtX2Jvb2xlYW5PYmplY3RTdHJ1Y3R1cmUgPSBCb29sZWFuT2JqZWN0OjpjcmVh
dGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX2Jvb2xlYW5Qcm90b3R5cGUuZ2V0KCkp
OwogCi0gICAgbV9udW1iZXJQcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywg
bmV3IChleGVjKSBOdW1iZXJQcm90b3R5cGUoZXhlYywgdGhpcywgTnVtYmVyUHJvdG90eXBlOjpj
cmVhdGVTdHJ1Y3R1cmUobV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpLCBtX2Z1bmN0aW9uU3RydWN0
dXJlLmdldCgpKSk7Ci0gICAgbV9udW1iZXJPYmplY3RTdHJ1Y3R1cmUgPSBOdW1iZXJPYmplY3Q6
OmNyZWF0ZVN0cnVjdHVyZShtX251bWJlclByb3RvdHlwZS5nZXQoKSk7CisgICAgbV9udW1iZXJQ
cm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBOdW1iZXJQ
cm90b3R5cGUoZXhlYywgdGhpcywgTnVtYmVyUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSksIG1fZnVuY3Rpb25TdHJ1
Y3R1cmUuZ2V0KCkpKTsKKyAgICBtX251bWJlck9iamVjdFN0cnVjdHVyZSA9IE51bWJlck9iamVj
dDo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9udW1iZXJQcm90b3R5cGUu
Z2V0KCkpOwogCi0gICAgbV9kYXRlUHJvdG90eXBlLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRo
aXMsIG5ldyAoZXhlYykgRGF0ZVByb3RvdHlwZShleGVjLCB0aGlzLCBEYXRlUHJvdG90eXBlOjpj
cmVhdGVTdHJ1Y3R1cmUobV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKSk7Ci0gICAgbV9kYXRlU3Ry
dWN0dXJlID0gRGF0ZUluc3RhbmNlOjpjcmVhdGVTdHJ1Y3R1cmUobV9kYXRlUHJvdG90eXBlLmdl
dCgpKTsKKyAgICBtX2RhdGVQcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywg
bmV3IChleGVjKSBEYXRlUHJvdG90eXBlKGV4ZWMsIHRoaXMsIERhdGVQcm90b3R5cGU6OmNyZWF0
ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkp
OworICAgIG1fZGF0ZVN0cnVjdHVyZSA9IERhdGVJbnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJlKGV4
ZWMtPmdsb2JhbERhdGEoKSwgbV9kYXRlUHJvdG90eXBlLmdldCgpKTsKIAotICAgIG1fcmVnRXhw
UHJvdG90eXBlLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5ldyAoZXhlYykgUmVnRXhw
UHJvdG90eXBlKGV4ZWMsIHRoaXMsIFJlZ0V4cFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKG1f
b2JqZWN0UHJvdG90eXBlLmdldCgpKSwgbV9mdW5jdGlvblN0cnVjdHVyZS5nZXQoKSkpOwotICAg
IG1fcmVnRXhwU3RydWN0dXJlID0gUmVnRXhwT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUobV9yZWdF
eHBQcm90b3R5cGUuZ2V0KCkpOworICAgIG1fcmVnRXhwUHJvdG90eXBlLnNldChleGVjLT5nbG9i
YWxEYXRhKCksIHRoaXMsIG5ldyAoZXhlYykgUmVnRXhwUHJvdG90eXBlKGV4ZWMsIHRoaXMsIFJl
Z0V4cFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9vYmpl
Y3RQcm90b3R5cGUuZ2V0KCkpLCBtX2Z1bmN0aW9uU3RydWN0dXJlLmdldCgpKSk7CisgICAgbV9y
ZWdFeHBTdHJ1Y3R1cmUgPSBSZWdFeHBPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9i
YWxEYXRhKCksIG1fcmVnRXhwUHJvdG90eXBlLmdldCgpKTsKIAogICAgIG1fbWV0aG9kQ2FsbER1
bW15LnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIGNvbnN0cnVjdEVtcHR5T2JqZWN0KGV4
ZWMpKTsKIAotICAgIEVycm9yUHJvdG90eXBlKiBlcnJvclByb3RvdHlwZSA9IG5ldyAoZXhlYykg
RXJyb3JQcm90b3R5cGUoZXhlYywgdGhpcywgRXJyb3JQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVy
ZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSksIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCkpOwot
ICAgIG1fZXJyb3JTdHJ1Y3R1cmUgPSBFcnJvckluc3RhbmNlOjpjcmVhdGVTdHJ1Y3R1cmUoZXJy
b3JQcm90b3R5cGUpOworICAgIEVycm9yUHJvdG90eXBlKiBlcnJvclByb3RvdHlwZSA9IG5ldyAo
ZXhlYykgRXJyb3JQcm90b3R5cGUoZXhlYywgdGhpcywgRXJyb3JQcm90b3R5cGU6OmNyZWF0ZVN0
cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSwgbV9m
dW5jdGlvblN0cnVjdHVyZS5nZXQoKSk7CisgICAgbV9lcnJvclN0cnVjdHVyZSA9IEVycm9ySW5z
dGFuY2U6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIGVycm9yUHJvdG90eXBl
KTsKIAogICAgIC8vIENvbnN0cnVjdG9ycwogCi0gICAgSlNDZWxsKiBvYmplY3RDb25zdHJ1Y3Rv
ciA9IG5ldyAoZXhlYykgT2JqZWN0Q29uc3RydWN0b3IoZXhlYywgdGhpcywgT2JqZWN0Q29uc3Ry
dWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9vYmpl
Y3RQcm90b3R5cGUuZ2V0KCkpOwotICAgIEpTQ2VsbCogZnVuY3Rpb25Db25zdHJ1Y3RvciA9IG5l
dyAoZXhlYykgRnVuY3Rpb25Db25zdHJ1Y3RvcihleGVjLCB0aGlzLCBGdW5jdGlvbkNvbnN0cnVj
dG9yOjpjcmVhdGVTdHJ1Y3R1cmUobV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIG1fZnVuY3Rp
b25Qcm90b3R5cGUuZ2V0KCkpOwotICAgIEpTQ2VsbCogYXJyYXlDb25zdHJ1Y3RvciA9IG5ldyAo
ZXhlYykgQXJyYXlDb25zdHJ1Y3RvcihleGVjLCB0aGlzLCBBcnJheUNvbnN0cnVjdG9yOjpjcmVh
dGVTdHJ1Y3R1cmUobV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIG1fYXJyYXlQcm90b3R5cGUu
Z2V0KCksIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCkpOwotICAgIEpTQ2VsbCogc3RyaW5nQ29u
c3RydWN0b3IgPSBuZXcgKGV4ZWMpIFN0cmluZ0NvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIFN0cmlu
Z0NvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUobV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSks
IG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksIG1fc3RyaW5nUHJvdG90eXBlLmdldCgpKTsKLSAg
ICBKU0NlbGwqIGJvb2xlYW5Db25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgQm9vbGVhbkNvbnN0cnVj
dG9yKGV4ZWMsIHRoaXMsIEJvb2xlYW5Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKG1fZnVu
Y3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBtX2Jvb2xlYW5Qcm90b3R5cGUuZ2V0KCkpOwotICAgIEpT
Q2VsbCogbnVtYmVyQ29uc3RydWN0b3IgPSBuZXcgKGV4ZWMpIE51bWJlckNvbnN0cnVjdG9yKGV4
ZWMsIHRoaXMsIE51bWJlckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUobV9mdW5jdGlvblBy
b3RvdHlwZS5nZXQoKSksIG1fbnVtYmVyUHJvdG90eXBlLmdldCgpKTsKLSAgICBKU0NlbGwqIGRh
dGVDb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgRGF0ZUNvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIERh
dGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkp
LCBtX2Z1bmN0aW9uU3RydWN0dXJlLmdldCgpLCBtX2RhdGVQcm90b3R5cGUuZ2V0KCkpOworICAg
IEpTQ2VsbCogb2JqZWN0Q29uc3RydWN0b3IgPSBuZXcgKGV4ZWMpIE9iamVjdENvbnN0cnVjdG9y
KGV4ZWMsIHRoaXMsIE9iamVjdENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9vYmplY3RQcm90b3R5cGUu
Z2V0KCkpOworICAgIEpTQ2VsbCogZnVuY3Rpb25Db25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgRnVu
Y3Rpb25Db25zdHJ1Y3RvcihleGVjLCB0aGlzLCBGdW5jdGlvbkNvbnN0cnVjdG9yOjpjcmVhdGVT
dHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwg
bV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSk7CisgICAgSlNDZWxsKiBhcnJheUNvbnN0cnVjdG9y
ID0gbmV3IChleGVjKSBBcnJheUNvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIEFycmF5Q29uc3RydWN0
b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25Qcm90b3R5
cGUuZ2V0KCkpLCBtX2FycmF5UHJvdG90eXBlLmdldCgpLCBtX2Z1bmN0aW9uU3RydWN0dXJlLmdl
dCgpKTsKKyAgICBKU0NlbGwqIHN0cmluZ0NvbnN0cnVjdG9yID0gbmV3IChleGVjKSBTdHJpbmdD
b25zdHJ1Y3RvcihleGVjLCB0aGlzLCBTdHJpbmdDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJl
KGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIG1fZnVuY3Rp
b25TdHJ1Y3R1cmUuZ2V0KCksIG1fc3RyaW5nUHJvdG90eXBlLmdldCgpKTsKKyAgICBKU0NlbGwq
IGJvb2xlYW5Db25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgQm9vbGVhbkNvbnN0cnVjdG9yKGV4ZWMs
IHRoaXMsIEJvb2xlYW5Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERh
dGEoKSwgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIG1fYm9vbGVhblByb3RvdHlwZS5nZXQo
KSk7CisgICAgSlNDZWxsKiBudW1iZXJDb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgTnVtYmVyQ29u
c3RydWN0b3IoZXhlYywgdGhpcywgTnVtYmVyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShl
eGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBtX251bWJlclBy
b3RvdHlwZS5nZXQoKSk7CisgICAgSlNDZWxsKiBkYXRlQ29uc3RydWN0b3IgPSBuZXcgKGV4ZWMp
IERhdGVDb25zdHJ1Y3RvcihleGVjLCB0aGlzLCBEYXRlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBtX2Z1
bmN0aW9uU3RydWN0dXJlLmdldCgpLCBtX2RhdGVQcm90b3R5cGUuZ2V0KCkpOwogCi0gICAgbV9y
ZWdFeHBDb25zdHJ1Y3Rvci5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMp
IFJlZ0V4cENvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIFJlZ0V4cENvbnN0cnVjdG9yOjpjcmVhdGVT
dHJ1Y3R1cmUobV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIG1fcmVnRXhwUHJvdG90eXBlLmdl
dCgpKSk7CisgICAgbV9yZWdFeHBDb25zdHJ1Y3Rvci5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0
aGlzLCBuZXcgKGV4ZWMpIFJlZ0V4cENvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIFJlZ0V4cENvbnN0
cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX2Z1bmN0aW9uUHJv
dG90eXBlLmdldCgpKSwgbV9yZWdFeHBQcm90b3R5cGUuZ2V0KCkpKTsKIAotICAgIG1fZXJyb3JD
b25zdHJ1Y3Rvci5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIEVycm9y
Q29uc3RydWN0b3IoZXhlYywgdGhpcywgRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJl
KG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBlcnJvclByb3RvdHlwZSkpOworICAgIG1fZXJy
b3JDb25zdHJ1Y3Rvci5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIEVy
cm9yQ29uc3RydWN0b3IoZXhlYywgdGhpcywgRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIGVycm9y
UHJvdG90eXBlKSk7CiAKLSAgICBSZWZQdHI8U3RydWN0dXJlPiBuYXRpdmVFcnJvclByb3RvdHlw
ZVN0cnVjdHVyZSA9IE5hdGl2ZUVycm9yUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZXJyb3JQ
cm90b3R5cGUpOwotICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IG5hdGl2ZUVycm9yU3RydWN0dXJlID0g
TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKG1fZnVuY3Rpb25Qcm90b3R5
cGUuZ2V0KCkpOworICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IG5hdGl2ZUVycm9yUHJvdG90eXBlU3Ry
dWN0dXJlID0gTmF0aXZlRXJyb3JQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9i
YWxEYXRhKCksIGVycm9yUHJvdG90eXBlKTsKKyAgICBSZWZQdHI8U3RydWN0dXJlPiBuYXRpdmVF
cnJvclN0cnVjdHVyZSA9IE5hdGl2ZUVycm9yQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShl
eGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpOwogICAgIG1fZXZh
bEVycm9yQ29uc3RydWN0b3Iuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVj
KSBOYXRpdmVFcnJvckNvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIG5hdGl2ZUVycm9yU3RydWN0dXJl
LCBuYXRpdmVFcnJvclByb3RvdHlwZVN0cnVjdHVyZSwgIkV2YWxFcnJvciIpKTsKICAgICBtX3Jh
bmdlRXJyb3JDb25zdHJ1Y3Rvci5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4
ZWMpIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoZXhlYywgdGhpcywgbmF0aXZlRXJyb3JTdHJ1Y3R1
cmUsIG5hdGl2ZUVycm9yUHJvdG90eXBlU3RydWN0dXJlLCAiUmFuZ2VFcnJvciIpKTsKICAgICBt
X3JlZmVyZW5jZUVycm9yQ29uc3RydWN0b3Iuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywg
bmV3IChleGVjKSBOYXRpdmVFcnJvckNvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIG5hdGl2ZUVycm9y
U3RydWN0dXJlLCBuYXRpdmVFcnJvclByb3RvdHlwZVN0cnVjdHVyZSwgIlJlZmVyZW5jZUVycm9y
IikpOwpAQCAtMjcyLDExICsyNzIsMTEgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6cmVzZXQoSlNW
YWx1ZSBwcm90b3R5cGUpCiAKICAgICAvLyBTZXQgZ2xvYmFsIHZhbHVlcy4KICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8gc3RhdGljR2xvYmFsc1tdID0gewotICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8oSWRlbnRpZmllcihleGVjLCAiTWF0aCIpLCBuZXcgKGV4ZWMpIE1hdGhPYmplY3QoZXhlYywg
dGhpcywgTWF0aE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKG1fb2JqZWN0UHJvdG90eXBlLmdldCgp
KSksIERvbnRFbnVtIHwgRG9udERlbGV0ZSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyhJ
ZGVudGlmaWVyKGV4ZWMsICJNYXRoIiksIG5ldyAoZXhlYykgTWF0aE9iamVjdChleGVjLCB0aGlz
LCBNYXRoT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX29iamVj
dFByb3RvdHlwZS5nZXQoKSkpLCBEb250RW51bSB8IERvbnREZWxldGUpLAogICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8oSWRlbnRpZmllcihleGVjLCAiTmFOIiksIGpzTmFOKCksIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKElk
ZW50aWZpZXIoZXhlYywgIkluZmluaXR5IiksIGpzTnVtYmVyKEluZiksIERvbnRFbnVtIHwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKElkZW50aWZp
ZXIoZXhlYywgInVuZGVmaW5lZCIpLCBqc1VuZGVmaW5lZCgpLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyhJZGVudGlmaWVyKGV4
ZWMsICJKU09OIiksIG5ldyAoZXhlYykgSlNPTk9iamVjdCh0aGlzLCBKU09OT2JqZWN0OjpjcmVh
dGVTdHJ1Y3R1cmUobV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKSwgRG9udEVudW0gfCBEb250RGVs
ZXRlKQorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8oSWRlbnRpZmllcihleGVjLCAiSlNPTiIp
LCBuZXcgKGV4ZWMpIEpTT05PYmplY3QodGhpcywgSlNPTk9iamVjdDo6Y3JlYXRlU3RydWN0dXJl
KGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKSwgRG9udEVudW0g
fCBEb250RGVsZXRlKQogICAgIH07CiAKICAgICBhZGRTdGF0aWNHbG9iYWxzKHN0YXRpY0dsb2Jh
bHMsIFdURl9BUlJBWV9MRU5HVEgoc3RhdGljR2xvYmFscykpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggY2RlOTk2MGE4N2IxMzU0NWRk
NzI5M2YxZmNmNmIxMjI4NzY0ZDlhNC4uNTZlZWE2MzIyNjdmNDdlYTJlNzQ2MTg3ZjhiM2JjZjJm
OTQ4ZjY4OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdC5oCkBAIC0xMTMsOCArMTEzLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHVibGljOgog
ICAgICAgICB2b2lkKiBvcGVyYXRvciBuZXcoc2l6ZV90LCBKU0dsb2JhbERhdGEqKTsKICAgICAg
ICAgCi0gICAgICAgIGV4cGxpY2l0IEpTR2xvYmFsT2JqZWN0KCkKLSAgICAgICAgICAgIDogSlNW
YXJpYWJsZU9iamVjdChKU0dsb2JhbE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSwg
Jm1fc3ltYm9sVGFibGUsIDApCisgICAgICAgIGV4cGxpY2l0IEpTR2xvYmFsT2JqZWN0KEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSkKKyAgICAgICAgICAgIDogSlNWYXJpYWJsZU9iamVjdChKU0ds
b2JhbE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbERhdGEsIGpzTnVsbCgpKSwgJm1fc3lt
Ym9sVGFibGUsIDApCiAgICAgICAgICAgICAsIG1fcmVnaXN0ZXJBcnJheVNpemUoMCkKICAgICAg
ICAgICAgICwgbV9nbG9iYWxTY29wZUNoYWluKCkKICAgICAgICAgICAgICwgbV93ZWFrUmFuZG9t
KHN0YXRpY19jYXN0PHVuc2lnbmVkPihyYW5kb21OdW1iZXIoKSAqIChzdGQ6Om51bWVyaWNfbGlt
aXRzPHVuc2lnbmVkPjo6bWF4KCkgKyAxLjApKSkKQEAgLTIzOCw5ICsyMzgsOSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgICAgICBKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEoKSBjb25zdCB7IHJl
dHVybiAqbV9nbG9iYWxEYXRhLmdldCgpOyB9CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZv
KTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgcmVnaXN0ZXJXZWFrTWFwKE9wYXF1ZUpTV2Vh
a09iamVjdE1hcCogbWFwKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNOb3RBbk9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RB
bk9iamVjdC5oCmluZGV4IDdlNzBhOTg2NDZiMzhlMGVjY2ZkZWJiMDc0ZmUwYjJiZDY2ODI0MGUu
LmI4ODIwMzkxZWY2MTY1YWIxZmRlMDZjMjAwNjg5NWI1NjlhMmI3OTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKQEAgLTQzLDkgKzQzLDkgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQor
ICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7Cisg
ICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBl
LCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3Vu
dCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oCmluZGV4IDUyNjRmZDc5OGYwMTQyM2I5NDA4NjJl
YmZiZjhkYTNiMGZlZDJjYzAuLmE1MmM1NDM4ZDA1YzllNjgzOGI5OTgwZWJmYWEzMzg0Mzg4Y2Ux
ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3Qu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmgKQEAgLTM2
LDkgKzM2LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHVibGljOgogICAgICAgICBKU09OT2Jq
ZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVj
dHVyZT4gc3RydWN0dXJlKTsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+
IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAg
ICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5jcHAKaW5kZXggMjA5YzllZjdlNjk4MDliOGVmYTAyZDk0YmI4Zjc1ZDVkMWZhOTA4OC4u
NWY1YzA1YzVkZWVlZDM4NTRmZGIxMWE5MDk4OTQzZTQzYTRjMzMxMyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcApAQCAtNTcyLDkgKzU3Miw5IEBAIE5FVkVS
X0lOTElORSB2b2lkIEpTT2JqZWN0OjpmaWxsR2V0dGVyUHJvcGVydHlTbG90KFByb3BlcnR5U2xv
dCYgc2xvdCwgV3JpdGVCYXJyCiAgICAgICAgIHNsb3Quc2V0VW5kZWZpbmVkKCk7CiB9CiAKLVN0
cnVjdHVyZSogSlNPYmplY3Q6OmNyZWF0ZUluaGVyaXRvcklEKCkKK1N0cnVjdHVyZSogSlNPYmpl
Y3Q6OmNyZWF0ZUluaGVyaXRvcklEKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKIHsKLSAgICBt
X2luaGVyaXRvcklEID0gY3JlYXRlRW1wdHlPYmplY3RTdHJ1Y3R1cmUodGhpcyk7CisgICAgbV9p
bmhlcml0b3JJRCA9IGNyZWF0ZUVtcHR5T2JqZWN0U3RydWN0dXJlKGdsb2JhbERhdGEsIHRoaXMp
OwogICAgIHJldHVybiBtX2luaGVyaXRvcklELmdldCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3QuaAppbmRleCBlZWYzN2IyMmE2ZTMzNjVkYmNiMWYzY2U4ZmRl
YjMzMWY5ZmE4NDZjLi42NmFjMmQ2YmExNjIxNzM2MzdmN2IzOTIxMGU2MzUwNTY4OTAwZjg2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTkyLDcgKzkyLDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGJvb2wgc2V0UHJvdG90eXBlV2l0aEN5Y2xlQ2hl
Y2soSlNWYWx1ZSBwcm90b3R5cGUpOwogICAgICAgICAKICAgICAgICAgdm9pZCBzZXRTdHJ1Y3R1
cmUoTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPik7Ci0gICAgICAgIFN0cnVjdHVyZSogaW5o
ZXJpdG9ySUQoKTsKKyAgICAgICAgU3RydWN0dXJlKiBpbmhlcml0b3JJRChKU0dsb2JhbERhdGEm
KTsKIAogICAgICAgICB2aXJ0dWFsIFVTdHJpbmcgY2xhc3NOYW1lKCkgY29uc3Q7CiAKQEAgLTI1
MCw5ICsyNTAsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIEpTX0VYUE9SVERB
VEEgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5
cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJl
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZv
KTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IDA7CkBAIC0yOTYsNyArMjk2LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIGJvb2wgaW5saW5lR2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAKICAgICAgICAg
Y29uc3QgSGFzaEVudHJ5KiBmaW5kUHJvcGVydHlIYXNoRW50cnkoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lKSBjb25zdDsKLSAgICAgICAgU3RydWN0dXJlKiBjcmVh
dGVJbmhlcml0b3JJRCgpOworICAgICAgICBTdHJ1Y3R1cmUqIGNyZWF0ZUluaGVyaXRvcklEKEpT
R2xvYmFsRGF0YSYpOwogCiAgICAgICAgIFByb3BlcnR5U3RvcmFnZSBtX3Byb3BlcnR5U3RvcmFn
ZTsKICAgICAgICAgUmVmUHRyPFN0cnVjdHVyZT4gbV9pbmhlcml0b3JJRDsKQEAgLTMyMCw5ICsz
MjAsOSBAQCBDT01QSUxFX0FTU0VSVCgoSlNGaW5hbE9iamVjdF9pbmxpbmVTdG9yYWdlQ2FwYWNp
dHkgPj0gSlNOb25GaW5hbE9iamVjdF9pbmxpbmVTdAogICAgICAgICBmcmllbmQgY2xhc3MgSlNP
YmplY3Q7CiAKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVy
ZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAg
ICAgIH0KIAogICAgIHByb3RlY3RlZDoKQEAgLTM0OCw5ICszNDgsOSBAQCBDT01QSUxFX0FTU0VS
VCgoSlNGaW5hbE9iamVjdF9pbmxpbmVTdG9yYWdlQ2FwYWNpdHkgPj0gSlNOb25GaW5hbE9iamVj
dF9pbmxpbmVTdAogICAgICAgICAgICAgcmV0dXJuIG5ldyAoZXhlYykgSlNGaW5hbE9iamVjdChz
dHJ1Y3R1cmUpOwogICAgICAgICB9CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAg
ICAgICAgfQogCiAgICAgcHJpdmF0ZToKQEAgLTM3Nyw5ICszNzcsOSBAQCBpbmxpbmUgSlNPYmpl
Y3QqIGNvbnN0cnVjdEVtcHR5T2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgTm9uTnVsbFBhc3NSZWZQ
dHI8U3RydWN0dQogICAgIHJldHVybiBKU0ZpbmFsT2JqZWN0OjpjcmVhdGUoZXhlYywgc3RydWN0
dXJlKTsKIH0KIAotaW5saW5lIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVFbXB0eU9iamVj
dFN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKK2lubGluZSBQYXNzUmVmUHRyPFN0cnVjdHVy
ZT4gY3JlYXRlRW1wdHlPYmplY3RTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U1ZhbHVlIHByb3RvdHlwZSkKIHsKLSAgICByZXR1cm4gSlNGaW5hbE9iamVjdDo6Y3JlYXRlU3Ry
dWN0dXJlKHByb3RvdHlwZSk7CisgICAgcmV0dXJuIEpTRmluYWxPYmplY3Q6OmNyZWF0ZVN0cnVj
dHVyZShnbG9iYWxEYXRhLCBwcm90b3R5cGUpOwogfQogCiBpbmxpbmUgSlNPYmplY3QqIGFzT2Jq
ZWN0KEpTQ2VsbCogY2VsbCkKQEAgLTQ0MiwxMSArNDQyLDExIEBAIGlubGluZSB2b2lkIEpTT2Jq
ZWN0OjpzZXRTdHJ1Y3R1cmUoTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUp
CiAgICAgbV9zdHJ1Y3R1cmUgPSBzdHJ1Y3R1cmUubGVha1JlZigpOyAvLyB+SlNPYmplY3QgYmFs
YW5jZXMgdGhpcyByZWYoKQogfQogCi1pbmxpbmUgU3RydWN0dXJlKiBKU09iamVjdDo6aW5oZXJp
dG9ySUQoKQoraW5saW5lIFN0cnVjdHVyZSogSlNPYmplY3Q6OmluaGVyaXRvcklEKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSkKIHsKICAgICBpZiAobV9pbmhlcml0b3JJRCkKICAgICAgICAgcmV0
dXJuIG1faW5oZXJpdG9ySUQuZ2V0KCk7Ci0gICAgcmV0dXJuIGNyZWF0ZUluaGVyaXRvcklEKCk7
CisgICAgcmV0dXJuIGNyZWF0ZUluaGVyaXRvcklEKGdsb2JhbERhdGEpOwogfQogCiBpbmxpbmUg
Ym9vbCBTdHJ1Y3R1cmU6OmlzVXNpbmdJbmxpbmVTdG9yYWdlKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0
LmgKaW5kZXggYzVlMzA0NzVhMGJkODhjMWVkMzI1OTkxNmZiMDJhNGZlY2FkNjJiMC4uODM4MDUx
NGQ1N2FjYmY1ZThiNWIwZWY1NDA1M2U4MmM4MWMxNzUzNyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgKQEAg
LTM0LDkgKzM0LDkgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3Q7CiAKIGNsYXNzIEpTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3Rv
KQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90bykKICAgICB7Ci0gICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKICAg
ICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgKaW5kZXgg
OTBmNDQ5ZWUyMWU5N2UyNzgwZDQxMjQ5ZDM3MzU1N2M5MzJhODE5OC4uOGIwMDdkZDc2N2Y2NDY0
YjE0MzgxOTllNGZhNjE4NWU0ZDMyYWQwMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaApAQCAtNDUsOSArNDUsOSBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBKU1Byb3BlcnR5
TmFtZUl0ZXJhdG9yKiBjcmVhdGUoRXhlY1N0YXRlKiwgSlNPYmplY3QqKTsKICAgICAgICAgCi0g
ICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFs
dWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0
ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQog
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBl
LCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIE92ZXJyaWRlc01hcmtDaGlsZHJlbiksIEFub255bW91
c1Nsb3RDb3VudCwgMCk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIE92ZXJyaWRlc01hcmtD
aGlsZHJlbiksIEFub255bW91c1Nsb3RDb3VudCwgMCk7CiAgICAgICAgIH0KIAogICAgICAgICB2
aXJ0dWFsIGJvb2wgaXNQcm9wZXJ0eU5hbWVJdGVyYXRvcigpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2Nv
cGVPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVP
YmplY3QuaAppbmRleCBiMTQxM2FmNjdiYTRhODE5ZWE2YjU3ZDYyNWY0ZDQ4MmQ3OWRlMWVkLi4z
ZTE5YmJjMjM2NmE5YzFkOGY0YTk0Y2JmNjBiN2I0Mzc5M2VjYTYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oCkBAIC00Nyw3
ICs0Nyw3IEBAIG5hbWVzcGFjZSBKU0N7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAg
ICAgICB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBKU1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKIAotICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyB9CisgICAgICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNWYWx1ZSBwcm90bykgeyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwg
cHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsgfQogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Qg
fCBOZWVkc1RoaXNDb252ZXJzaW9uIHwgT3ZlcnJpZGVzTWFya0NoaWxkcmVuIHwgT3ZlcnJpZGVz
R2V0UHJvcGVydHlOYW1lcyB8IEpTVmFyaWFibGVPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKaW5kZXggMjY3N2Q5YWU5Y2VhYTM4
OGY3YmFjMTYwMjQ1ZmFjNDQwNjhhOWI1Mi4uMTEwMDJkYjI2ZjEyZmQ5ZjM4MmZkODdjZDg3OGY5
N2UzYjlkNTUxNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNT
dHJpbmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCkBA
IC0zNDksNyArMzQ5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgSlNWYWx1ZSByZXBs
YWNlQ2hhcmFjdGVyKEV4ZWNTdGF0ZSosIFVDaGFyLCBjb25zdCBVU3RyaW5nJiByZXBsYWNlbWVu
dCk7CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1
cmUoSlNWYWx1ZSBwcm90bykgeyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG8sIFR5cGVJ
bmZvKFN0cmluZ1R5cGUsIE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE5lZWRzVGhpc0Nv
bnZlcnNpb24pLCBBbm9ueW1vdXNTbG90Q291bnQsIDApOyB9CisgICAgICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNWYWx1ZSBwcm90bykgeyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwg
cHJvdG8sIFR5cGVJbmZvKFN0cmluZ1R5cGUsIE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8
IE5lZWRzVGhpc0NvbnZlcnNpb24pLCBBbm9ueW1vdXNTbG90Q291bnQsIDApOyB9CiAKICAgICBw
cml2YXRlOgogICAgICAgICBlbnVtIFZQdHJTdGVhbGluZ0hhY2tUeXBlIHsgVlB0clN0ZWFsaW5n
SGFjayB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJp
YWJsZU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9i
amVjdC5oCmluZGV4IDU3NzlmMzdiYWNjZmEyNWFhMTk2ODIzNTljODkyMDBiMGNiYmNhMDUuLjg5
MWFkYThjNDNhMzdhYTdiYzEyNmUzMzA0NzUwNzAyMGMzZTMxYzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmgKQEAgLTU4LDkgKzU4LDkg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgV3JpdGVCYXJyaWVyPFVua25vd24+KiBjb25z
dCAqIGFkZHJlc3NPZlJlZ2lzdGVycygpIGNvbnN0IHsgcmV0dXJuICZtX3JlZ2lzdGVyczsgfQog
Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpT
VmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBl
KQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAg
cHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNX
cmFwcGVyT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJP
YmplY3QuaAppbmRleCAzZmMwYjE4NmZlNTgxMTdlY2EwZWMwYjJhNTZiYWY2NWQxMmQ5ZjNjLi42
MzgzM2U5ZjM3NGVjN2M3OWFhN2FkODIwZThhMDQxMmZiZGFkMzgwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuaApAQCAtMzYsOSArMzYsOSBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSlNWYWx1ZSBpbnRlcm5hbFZhbHVlKCkgY29uc3Q7
CiAgICAgICAgIHZvaWQgc2V0SW50ZXJuYWxWYWx1ZShKU0dsb2JhbERhdGEmLCBKU1ZhbHVlKTsK
IAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShK
U1ZhbHVlIHByb3RvdHlwZSkgCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4g
Y3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5
cGUpIAogICAgICAgICB7IAotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNT
bG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICBwcm90
ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1pvbWJp
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNab21iaWUuaAppbmRleCBlNTc1
YWM1NTIxNmNjZTE0OTdkZTM2NGE5NzI4YmNmZmIyN2I0ZmQ2Li4xNzlmZjUzMTAwZmQzZmQyMGFi
M2MxNzQ3MzI1ZDlkZDE4MGNiNzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1pvbWJpZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Wm9tYmllLmgKQEAgLTY2LDkgKzY2LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xv
dCYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQsIFByb3BlcnR5U2xv
dCYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiBmYWxzZTsgfQogICAgIAotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90
eXBlKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCAwKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
MCksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgc3RhdGljIGNv
bnN0IENsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9NYXRoT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRo
T2JqZWN0LmgKaW5kZXggODZlNzk1MWExYmRjYThkNjZlM2U1OWVjZDU1Mjg0MWNlZGVhNDVlYi4u
MjZlYWFlMDQ0OTkyOGRlNTFhNWM0ZGU1ZWRmZmNiYTJlYmRjNTcxMyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaApAQCAtMzQsOSArMzQsOSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAotICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVl
IHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVT
dHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQs
ICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0
cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29u
c3RydWN0b3IuY3BwCmluZGV4IDc5NDlkZDk2YTViNzdjM2MxYzY3ZmZlOWI5YThlNTNhNGM2OTVm
MjQuLmQ4ZmRhNjlhODQwN2JkNTBiZWRmM2U0ZWU3YTBhZTM3YzI2ODU5NjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0
b3IuY3BwCkBAIC00MSw3ICs0MSw3IEBAIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I6Ok5hdGl2ZUVy
cm9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCoKIAogICAgIHB1
dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgs
IGpzTnVtYmVyKDEpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7IC8vIEVDTUEg
MTUuMTEuNy41CiAgICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVy
dHlOYW1lcygpLnByb3RvdHlwZSwgcHJvdG90eXBlLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBE
b250RW51bSk7Ci0gICAgbV9lcnJvclN0cnVjdHVyZSA9IEVycm9ySW5zdGFuY2U6OmNyZWF0ZVN0
cnVjdHVyZShwcm90b3R5cGUpOworICAgIG1fZXJyb3JTdHJ1Y3R1cmUgPSBFcnJvckluc3RhbmNl
OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBwcm90b3R5cGUpOwogfQogCiBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoTmF0aXZlRXJy
b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgKaW5kZXggZTQ5NzhjY2Ex
Y2JiYjlkMjdlYjM4ZGJjMDQzNTcwN2RjNmM2YWI5Mi4uMjNmNzk4ZTQ3MjliZWJlN2E5OGM2MmQ4
NGQzYmQyNmM3YzFiNzgwNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaApAQCAtMzUsOSArMzUsOSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAotICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVl
IHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVT
dHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQs
ICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgU3RydWN0dXJl
KiBlcnJvclN0cnVjdHVyZSgpIHsgcmV0dXJuIG1fZXJyb3JTdHJ1Y3R1cmUuZ2V0KCk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCmlu
ZGV4IGFhZjdjMzIxMDI2M2QzOGE3MTYzNDc4MTg0Y2I5ZmFjNDViNDc1OTMuLmFiNDUwN2U1ODNl
YjI1YjI3YWZmMjM0MTljNDI3OGUxYTc5NjE1ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaApAQCAtMzcsOSArMzcsOSBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAot
ICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1Zh
bHVlIHByb3RvKSAKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVT
dHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvKSAKICAgICAg
ICAgeyAKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90bywgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOyAKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBw
cm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90
Q291bnQsICZzX2luZm8pOyAKICAgICAgICAgfQogCiAgICAgICAgIGVudW0geyBOYU5WYWx1ZSwg
TmVnSW5maW5pdHksIFBvc0luZmluaXR5LCBNYXhWYWx1ZSwgTWluVmFsdWUgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmgKaW5kZXggYmRmNTZmN2Y0NzUz
YjRlMTY0MjUzYjI1M2ZiMTJhNGI2MjE1YzQ0OS4uMTU3MWZkNDJjZTZiMGMzMmU4MmU4MWFkNmIw
MzE2MGE5MWU3ZWY3YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TnVtYmVyT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
T2JqZWN0LmgKQEAgLTMxLDkgKzMxLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3Rh
dGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZv
KTsKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oCmluZGV4IDg5NWY5ODhmNmMxMzk0NjUzMWYy
ODI0ODZiZmQxNTg5ZDgxNDhiMDguLmI3YmZjMWQ3MTdjNzE3OGUzM2MyOTZhZDdiNGI5NzQwMWVh
ZTQzZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENv
bnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29u
c3RydWN0b3IuaApAQCAtMzYsOSArMzYsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBz
dGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAppbmRleCA4YThhNTRhYWE4NjViOTlm
YTNhMWNkY2ZhNTU5OGJhNGMwM2JhMjVmLi4wM2M2YmVhMmJhMzg2NDY1MzJkZDdlNTFmYWFhM2Y2
MWUyZjk4NTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cENvbnN0cnVjdG9yLmgKQEAgLTU5LDkgKzU5LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHVi
bGljOgogICAgICAgICBSZWdFeHBDb25zdHJ1Y3RvcihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVj
dCosIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4sIFJlZ0V4cFByb3RvdHlwZSopOwogCi0g
ICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFs
dWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0
ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQog
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBl
LCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3Vu
dCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgICAgICB2aXJ0dWFs
IHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cE9iamVjdC5oCmluZGV4IDlmMmNhNWFhMjRjZTdkYWU2NTU5MDNjMTJiYWRhZTE1NmUy
ZmFkODEuLmZhMjAyNGRjZDc1ZTdhYzVjMjY4YzE4NzdlMDY5NDEwMDQyMTViOWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCkBAIC01OCw5ICs1OCw5
IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBKU19FWFBPUlREQVRBIGNvbnN0
IENsYXNzSW5mbyBzX2luZm87CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJl
PiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAg
ICAgfQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU2NvcGVDaGFpbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2Nv
cGVDaGFpbi5oCmluZGV4IDU1ZDExYWRkMmIxYTdiMDM2ODcxMmQxYzFmYTc5NTRiMzU2MjI4NWMu
LmNiNzBhMzQ2Yjk2N2I1MGYzMjRmOTBlN2QzNDMxNzdiYjM5MjAxN2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlQ2hhaW4uaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TY29wZUNoYWluLmgKQEAgLTY0LDcgKzY0LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIHZvaWQgcHJpbnQoKTsKICNlbmRpZgogICAgICAgICAKLSAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBw
cm90bykgeyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG8sIFR5cGVJbmZvKENvbXBvdW5k
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsIDApOyB9CisgICAgICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90bykgeyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
Z2xvYmFsRGF0YSwgcHJvdG8sIFR5cGVJbmZvKENvbXBvdW5kVHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBBbm9ueW1vdXNTbG90Q291bnQsIDApOyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBtYXJrQ2hp
bGRyZW4oTWFya1N0YWNrJik7CiAgICAgcHJpdmF0ZToKICAgICAgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzTWFya0NoaWxkcmVuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAppbmRleCBhY2RlY2IzYzVlZThh
NDAxNzY5OTBlMzg0MjM1YWYxMjFjNTE4M2IwLi4wZTJhMmIyNDEzYzk4ZTJjYTcxMGMyY2RkOWE4
YjA0MGQ4NzRiNjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdP
YmplY3QuaApAQCAtNDUsOSArNDUsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBKU1N0
cmluZyogaW50ZXJuYWxWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIGFzU3RyaW5nKEpTV3JhcHBlck9i
amVjdDo6aW50ZXJuYWxWYWx1ZSgpKTt9CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsK
ICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdFRoYXRNYXNxdWVyYWRl
c0FzVW5kZWZpbmVkLmgKaW5kZXggMGE0NGVkMzIzYWQwZmNkNDY4NmI1ZjU3ZDAyYzNkYWRlYTM1
OTlmZC4uYzdhYzlmMTlmNDIzZWJkYzVhNzZmZTk2MWZhNTVkMGQ2YTIwNjdjMCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJh
ZGVzQXNVbmRlZmluZWQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZC5oCkBAIC00Miw5ICs0Miw5IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvKSAKKyAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvKSAKICAgICAgICAgeyAKLSAgICAgICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyAKKyAgICAgICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyAK
ICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQg
fCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgU3RyaW5nT2JqZWN0OjpTdHJ1Y3R1cmVGbGFn
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3Rv
dHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgK
aW5kZXggNTdhNTA5YWJhZDI2OTk3NDdjYWZmZTJhYzlhMTIwMTBjOGU2NjE5Yi4uNTdkZWYyMjgx
YjFkNWM0OGYxMzRhZDVkNDIxZTA3N2VlNWEwODdhOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKQEAgLTM0LDkgKzM0LDkgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAg
ICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKLSAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUp
CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsK
KyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5
cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENv
dW50LCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0lu
Zm8gc19pbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
dWN0dXJlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAppbmRl
eCA2NGIxZDI4NzI5NTgxNWQ1MDJlYTc1NDczZDNhNzg1OTgwMjY2ODZiLi42ZjcwNjBiZjFhYWRj
MjQwM2Y5NzBjNTFkZThlYjI2ODUwYTQ0NTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJ1Y3R1cmUuaApAQCAtNTcsMTEgKzU3LDE3IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
IGNsYXNzIFN0cnVjdHVyZSA6IHB1YmxpYyBSZWZDb3VudGVkPFN0cnVjdHVyZT4gewogICAgIHB1
YmxpYzoKICAgICAgICAgZnJpZW5kIGNsYXNzIFN0cnVjdHVyZVRyYW5zaXRpb25UYWJsZTsKLSAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGUoSlNWYWx1ZSBwcm90b3R5
cGUsIGNvbnN0IFR5cGVJbmZvJiB0eXBlSW5mbywgdW5zaWduZWQgYW5vbnltb3VzU2xvdENvdW50
LCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbykKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBjcmVhdGUoSlNHbG9iYWxEYXRhJiwgSlNWYWx1ZSBwcm90b3R5cGUsIGNvbnN0
IFR5cGVJbmZvJiB0eXBlSW5mbywgdW5zaWduZWQgYW5vbnltb3VzU2xvdENvdW50LCBjb25zdCBD
bGFzc0luZm8qIGNsYXNzSW5mbykKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBTdHJ1Y3R1cmUocHJvdG90eXBlLCB0eXBlSW5mbywgYW5vbnltb3VzU2xvdENvdW50
LCBjbGFzc0luZm8pKTsKICAgICAgICAgfQogCisgICAgICAgIGVudW0gVlB0clN0ZWFsaW5nSGFj
a1R5cGUgeyBWUHRyU3RlYWxpbmdIYWNrIH07CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0
cnVjdHVyZT4gY3JlYXRlKFZQdHJTdGVhbGluZ0hhY2tUeXBlLCBjb25zdCBDbGFzc0luZm8qIGNs
YXNzSW5mbykKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdHJ1
Y3R1cmUoanNOdWxsKCksIFR5cGVJbmZvKFVuc3BlY2lmaWVkVHlwZSksIDAsIGNsYXNzSW5mbykp
OworICAgICAgICB9CisKICAgICAgICAgc3RhdGljIHZvaWQgc3RhcnRJZ25vcmluZ0xlYWtzKCk7
CiAgICAgICAgIHN0YXRpYyB2b2lkIHN0b3BJZ25vcmluZ0xlYWtzKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUv
Q2hhbmdlTG9nCmluZGV4IGQwZTNmNmMyNTMwNTNkMjVjOWI4NzA1OWU1NTIzOGFkMzUzYTNlMjMu
LmQ3Yjg3YWZlY2Y2ZDUwMDk5ZWY5NWZiOTEzYzZiZTA3Zjg2ZmRmYTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTAzLTE1ICBPbGl2ZXIgSHVudCAgPG9s
aXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTWFrZSBTdHJ1Y3R1cmUgY3JlYXRpb24gcmVxdWlyZSBhIEpTR2xvYmFsRGF0YQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY0MzgKKwor
ICAgICAgICBNZWNoYW5pY2FsIGNoYW5nZSB0byBtYWtlIGFsbCBzdHJ1Y3R1cmUgY3JlYXRpb24g
cGFzcyBhIEpTR2xvYmFsRGF0YSYuCisKKyAgICAgICAgKiBKU1J1bi5jcHA6CisgICAgICAgIChK
U0dsdWVHbG9iYWxPYmplY3Q6OkpTR2x1ZUdsb2JhbE9iamVjdCk6CisgICAgICAgIChKU1J1bjo6
SlNSdW4pOgorICAgICAgICAqIEpTUnVuLmg6CisgICAgICAgICogSlNVdGlscy5jcHA6CisgICAg
ICAgIChnZXRUaHJlYWRHbG9iYWxPYmplY3QpOgorICAgICAgICAqIFVzZXJPYmplY3RJbXAuaDoK
KyAgICAgICAgKFVzZXJPYmplY3RJbXA6OmNyZWF0ZVN0cnVjdHVyZSk6CisKIDIwMTEtMDMtMTUg
IEtldmluIE9sbGl2aWVyICA8a2V2aW5vQHRoZW9sbGl2aWVycy5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUv
SlNSdW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0pTUnVuLmNwcAppbmRleCA4NjMwNTk0
YjBhMWFmYjU0YjQ1YWVjMzI0MDVmZWUxYmY0ODdjYTA4Li5hODA5NmFhNGJhYzczNWU1Yjc2NDZk
OTUzOTJiYTFkZWIwOThhMjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNS
dW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1J1bi5jcHAKQEAgLTMzLDE3ICsz
MywxNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbXBsZXRpb24uaD4KICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9Tb3VyY2VDb2RlLmg+CiAKLUpTR2x1ZUdsb2JhbE9iamVjdDo6SlNH
bHVlR2xvYmFsT2JqZWN0KFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIEpTRmxhZ3Mg
ZmxhZ3MpCitKU0dsdWVHbG9iYWxPYmplY3Q6OkpTR2x1ZUdsb2JhbE9iamVjdChKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIEpTRmxhZ3Mg
ZmxhZ3MpCiAgICAgOiBKU0dsb2JhbE9iamVjdChzdHJ1Y3R1cmUpCiAgICAgLCBtX2ZsYWdzKGZs
YWdzKQotICAgICwgbV91c2VyT2JqZWN0U3RydWN0dXJlKFVzZXJPYmplY3RJbXA6OmNyZWF0ZVN0
cnVjdHVyZShqc051bGwoKSkpCisgICAgLCBtX3VzZXJPYmplY3RTdHJ1Y3R1cmUoVXNlck9iamVj
dEltcDo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbERhdGEsIGpzTnVsbCgpKSkKIHsKIH0KIAogSlNS
dW46OkpTUnVuKENGU3RyaW5nUmVmIHNvdXJjZSwgSlNGbGFncyBpbkZsYWdzKQogICAgIDogICBK
U0Jhc2Uoa0pTUnVuVHlwZUlEKSwKICAgICAgICAgZlNvdXJjZShDRlN0cmluZ1RvVVN0cmluZyhz
b3VyY2UpKSwKLSAgICAgICAgZkdsb2JhbE9iamVjdChnZXRUaHJlYWRHbG9iYWxFeGVjU3RhdGUo
KS0+Z2xvYmFsRGF0YSgpLCBuZXcgKCZnZXRUaHJlYWRHbG9iYWxFeGVjU3RhdGUoKS0+Z2xvYmFs
RGF0YSgpKSBKU0dsdWVHbG9iYWxPYmplY3QoSlNHbHVlR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1
Y3R1cmUoanNOdWxsKCkpLCBpbkZsYWdzKSksCisgICAgICAgIGZHbG9iYWxPYmplY3QoZ2V0VGhy
ZWFkR2xvYmFsRXhlY1N0YXRlKCktPmdsb2JhbERhdGEoKSwgbmV3ICgmZ2V0VGhyZWFkR2xvYmFs
RXhlY1N0YXRlKCktPmdsb2JhbERhdGEoKSkgSlNHbHVlR2xvYmFsT2JqZWN0KGdldFRocmVhZEds
b2JhbEV4ZWNTdGF0ZSgpLT5nbG9iYWxEYXRhKCksIEpTR2x1ZUdsb2JhbE9iamVjdDo6Y3JlYXRl
U3RydWN0dXJlKGdldFRocmVhZEdsb2JhbEV4ZWNTdGF0ZSgpLT5nbG9iYWxEYXRhKCksIGpzTnVs
bCgpKSwgaW5GbGFncykpLAogICAgICAgICBmRmxhZ3MoaW5GbGFncykKIHsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1J1bi5oIGIvU291cmNlL0phdmFTY3JpcHRHbHVl
L0pTUnVuLmgKaW5kZXggZTlhMTQ4NDJlYzFhOWM1NDM2YmZhNTM2MTY4MDM1NjRmNjk0NDU5MC4u
ZDdhYTY4MjQxMGM4YjMzMjczN2U4ZTBmNTZjNzdhNTI5N2U0ZjllOSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRHbHVlL0pTUnVuLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0pT
UnVuLmgKQEAgLTM0LDcgKzM0LDcgQEAKIAogY2xhc3MgSlNHbHVlR2xvYmFsT2JqZWN0IDogcHVi
bGljIEpTR2xvYmFsT2JqZWN0IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIEpTR2x1ZUdsb2JhbE9i
amVjdChQYXNzUmVmUHRyPFN0cnVjdHVyZT4sIEpTRmxhZ3MgPSBrSlNGbGFnTm9uZSk7CisgICAg
ICAgIEpTR2x1ZUdsb2JhbE9iamVjdChKU0dsb2JhbERhdGEmLCBQYXNzUmVmUHRyPFN0cnVjdHVy
ZT4sIEpTRmxhZ3MgPSBrSlNGbGFnTm9uZSk7CiAKICAgICAgICAgSlNGbGFncyBGbGFncygpIGNv
bnN0IHsgcmV0dXJuIG1fZmxhZ3M7IH0KICAgICAgICAgU3RydWN0dXJlKiB1c2VyT2JqZWN0U3Ry
dWN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV91c2VyT2JqZWN0U3RydWN0dXJlLmdldCgpOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNVdGlscy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdEdsdWUvSlNVdGlscy5jcHAKaW5kZXggOTRjOGRjY2Q2M2I2YzYzMDlmY2E4YjhmMjJj
MDhhMTBjYWUwNTBmNS4uYjYyZTdiZmI2ZTg5OGM4ZjJkYTYyMjc5ZWM4YTFjOTlhNGViYzFhNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0pTVXRpbHMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0R2x1ZS9KU1V0aWxzLmNwcApAQCAtNDE0LDcgKzQxNCw3IEBAIHN0YXRpYyBK
U0dsdWVHbG9iYWxPYmplY3QqIGdldFRocmVhZEdsb2JhbE9iamVjdCgpCiAgICAgcHRocmVhZF9v
bmNlKCZnbG9iYWxPYmplY3RLZXlPbmNlLCBpbml0aWFsaXplR2xvYmFsT2JqZWN0S2V5KTsKICAg
ICBKU0dsdWVHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHN0YXRpY19jYXN0PEpTR2x1ZUds
b2JhbE9iamVjdCo+KHB0aHJlYWRfZ2V0c3BlY2lmaWMoZ2xvYmFsT2JqZWN0S2V5KSk7CiAgICAg
aWYgKCFnbG9iYWxPYmplY3QpIHsKLSAgICAgICAgZ2xvYmFsT2JqZWN0ID0gbmV3IChnZXRUaHJl
YWRHbG9iYWxEYXRhKCkpIEpTR2x1ZUdsb2JhbE9iamVjdChKU0dsdWVHbG9iYWxPYmplY3Q6OmNy
ZWF0ZVN0cnVjdHVyZShqc051bGwoKSkpOworICAgICAgICBnbG9iYWxPYmplY3QgPSBuZXcgKGdl
dFRocmVhZEdsb2JhbERhdGEoKSkgSlNHbHVlR2xvYmFsT2JqZWN0KCpnZXRUaHJlYWRHbG9iYWxE
YXRhKCksIEpTR2x1ZUdsb2JhbE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKCpnZXRUaHJlYWRHbG9i
YWxEYXRhKCksIGpzTnVsbCgpKSk7CiAgICAgICAgIGdjUHJvdGVjdChnbG9iYWxPYmplY3QpOwog
ICAgICAgICBwdGhyZWFkX3NldHNwZWNpZmljKGdsb2JhbE9iamVjdEtleSwgZ2xvYmFsT2JqZWN0
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdElt
cC5oIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaAppbmRleCAzZjY0MTUz
MGY2NDRlYjU3OTc3ZjQ2NGI3NzQ4ZWEwMTJlZjQwZGU3Li5jNmI4ZDg2ZjVkOWFiNjljMWUxZTU2
OWVjODJjNmJlMjUxMmQ4NTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNl
ck9iamVjdEltcC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgK
QEAgLTU4LDkgKzU4LDkgQEAgcHVibGljOgogCiAgICAgSlNVc2VyT2JqZWN0ICpHZXRKU1VzZXJP
YmplY3QoKSBjb25zdDsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRl
U3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVj
dHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBw
cm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBP
dmVycmlkZXNNYXJrQ2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzKSwgQW5vbnlt
b3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgT3ZlcnJpZGVzR2V0
T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzTWFya0NoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0UHJv
cGVydHlOYW1lcyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDFhNzg5MGM4Y2VlOGI3ZTljMzQ5ZWZlYmUxYWI3ZjY5ZDJiOTVh
OTUuLjY0YTJhYjE3YjU2YTc0MDA3YzYwNjg3OGE4MDFmZTJjMzUzMTA1ZjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw2NSBAQAorMjAxMS0wMy0xNSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1h
a2UgU3RydWN0dXJlIGNyZWF0aW9uIHJlcXVpcmUgYSBKU0dsb2JhbERhdGEKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NDM4CisKKyAgICAgICAgTWVj
aGFuaWNhbCBjaGFuZ2UgdG8gbWFrZSBhbGwgc3RydWN0dXJlIGNyZWF0aW9uIHVzZSBHbG9iYWxE
YXRhCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNBdWRpb0NvbnN0cnVjdG9yOjpKU0F1ZGlvQ29uc3RydWN0b3IpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5oOgorICAgICAgICAoV2Vi
Q29yZTo6SlNBdWRpb0NvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NT2JqZWN0V2l0
aEdsb2JhbFBvaW50ZXI6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpET01D
b25zdHJ1Y3Rvck9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6Omdl
dERPTVN0cnVjdHVyZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3Qu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XaW5kb3dCYXNlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5k
b3dTaGVsbDo6SlNET01XaW5kb3dTaGVsbCk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRv
d1NoZWxsOjpzZXRXaW5kb3cpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hl
bGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OmNyZWF0ZVN0cnVjdHVy
ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTSW1hZ2VDb25zdHJ1Y3Rvcjo6SlNJbWFnZUNvbnN0cnVjdG9yKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTSW1hZ2VDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0ltYWdlRGF0YUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTT3B0aW9uQ29uc3RydWN0b3I6OkpTT3B0aW9uQ29uc3RydWN0b3IpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTT3B0aW9uQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6SlNXb3Jr
ZXJDb250ZXh0QmFzZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9X
b3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlw
dENvbnRyb2xsZXI6OmluaXRTY3JpcHQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIGJyaWRnZS9jL0NSdW50aW1lT2JqZWN0Lmg6Cisg
ICAgICAgIChKU0M6OkJpbmRpbmdzOjpDUnVudGltZU9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToK
KyAgICAgICAgKiBicmlkZ2UvYy9jX2luc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGlu
Z3M6OkNSdW50aW1lTWV0aG9kOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJyaWRnZS9q
bmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHA6CisgICAgICAgIChKYXZhUnVudGltZU1ldGhvZDo6
Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2Uvam5pL2pzYy9KYXZhUnVudGltZU9i
amVjdC5oOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6SmF2YVJ1bnRpbWVPYmplY3Q6OmNyZWF0
ZVN0cnVjdHVyZSk6CisgICAgICAgICogYnJpZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3QuaDoK
KyAgICAgICAgKEpTQzo6QmluZGluZ3M6Ok9iakNSdW50aW1lT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1
cmUpOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW06CisgICAgICAgIChP
YmpDUnVudGltZU1ldGhvZDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2Uvb2Jq
Yy9vYmpjX3J1bnRpbWUuaDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6Ok9iamNGYWxsYmFja09i
amVjdEltcDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJh
eS5oOgorICAgICAgICAoSlNDOjpSdW50aW1lQXJyYXk6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAg
ICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmg6CisgICAgICAgIChKU0M6OlJ1bnRpbWVNZXRo
b2Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0Lmg6
CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpSdW50aW1lT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUp
OgorCiAyMDExLTAzLTE1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmNwcAppbmRleCBmMDA0MGZhOWE3MmVjNDY3OGI0Mjhm
NTNiMDQ1Y2YzNjMzMDY2MDQ4Li45YWM3OTdiMWRlODk4MDg1OTExY2U5ZTI5ODU0ZWQxZmYyNTA3
ZDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3Ry
dWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1
Y3Rvci5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY29uc3QgQ2xh
c3NJbmZvIEpTQXVkaW9Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiQXVkaW9Db25zdHJ1Y3RvciIs
ICZET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudDo6c19pbmZvLCAwLCAwIH07CiAKIEpTQXVkaW9D
b25zdHJ1Y3Rvcjo6SlNBdWRpb0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLSAgICA6IERPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50
KEpTQXVkaW9Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+b2JqZWN0
UHJvdG90eXBlKCkpLCBnbG9iYWxPYmplY3QpCisgICAgOiBET01Db25zdHJ1Y3RvcldpdGhEb2N1
bWVudChKU0F1ZGlvQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPmds
b2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVj
dCkKIHsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHB1dERpcmVjdChleGVj
LT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTSFRNTEF1
ZGlvRWxlbWVudFByb3RvdHlwZTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3QpLCBOb25lKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmgKaW5kZXgg
YzkwYWJiZjdkOWVlYmE5NDYzNmFjNjZkMTI0NjNhZTFmNGNkMGRkMS4uYmUwYjgwMDAwNWJmMjIx
YWJlZDdhOTg0NmQ4YTEzYWVjMzViNDQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmgKQEAgLTM4LDkgKzM4LDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIHB1YmxpYzoKICAgICAgICAgSlNBdWRpb0NvbnN0cnVjdG9yKEpTQzo6RXhl
Y1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUp
CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1
cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHBy
b3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBKU0M6OlN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6
Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZv
KTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2lu
Zm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCmluZGV4IDRmZTNk
MTZjMWZjYzI4YzdjNjc0ODlhODFiYzFhYjU3OGEwZmExZDIuLjkzNGQ5YjMxYTQ2MWIyMTc5ZGJk
NDE5ZmRlZTAwMmE4MGUzMjgzYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
QmluZGluZy5oCkBAIC02NCw5ICs2NCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
ICAgIHJldHVybiBnbG9iYWxPYmplY3QoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAg
ICAgICB9CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0
ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8o
SlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxE
YXRhLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHBy
b3RlY3RlZDoKQEAgLTgzLDkgKzgzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIC8vIEJh
c2UgY2xhc3MgZm9yIGFsbCBjb25zdHJ1Y3RvciBvYmplY3RzIGluIHRoZSBKU0MgYmluZGluZ3Mu
CiAgICAgY2xhc3MgRE9NQ29uc3RydWN0b3JPYmplY3QgOiBwdWJsaWMgRE9NT2JqZWN0V2l0aEds
b2JhbFBvaW50ZXIgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlND
OjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpT
Qzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5
cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255
bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1
cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAg
ICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKQEAgLTE0Myw3ICsxNDMsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgewogICAgICAgICBpZiAoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9
IGdldENhY2hlZERPTVN0cnVjdHVyZShnbG9iYWxPYmplY3QsICZXcmFwcGVyQ2xhc3M6OnNfaW5m
bykpCiAgICAgICAgICAgICByZXR1cm4gc3RydWN0dXJlOwotICAgICAgICByZXR1cm4gY2FjaGVE
T01TdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBXcmFwcGVyQ2xhc3M6OmNyZWF0ZVN0cnVjdHVyZShX
cmFwcGVyQ2xhc3M6OmNyZWF0ZVByb3RvdHlwZShleGVjLCBnbG9iYWxPYmplY3QpKSwgJldyYXBw
ZXJDbGFzczo6c19pbmZvKTsKKyAgICAgICAgcmV0dXJuIGNhY2hlRE9NU3RydWN0dXJlKGdsb2Jh
bE9iamVjdCwgV3JhcHBlckNsYXNzOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBXcmFwcGVyQ2xhc3M6OmNyZWF0ZVByb3RvdHlwZShleGVjLCBnbG9iYWxPYmplY3QpKSwgJldy
YXBwZXJDbGFzczo6c19pbmZvKTsKICAgICB9CiAgICAgdGVtcGxhdGU8Y2xhc3MgV3JhcHBlckNs
YXNzPiBpbmxpbmUgSlNDOjpTdHJ1Y3R1cmUqIGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUoSlND
OjpFeGVjU3RhdGUqIGV4ZWMpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NR2xvYmFsT2JqZWN0LmgKaW5kZXggZGFlNDA1YThmZGU3OWQyMDBkY2Q0YWU2NGM2ZDQy
Zjk3MGI0NmY2MS4uMWU5OTJjNWI3MWZkYzYyOGU2NTFkY2IyZjcyYzE1MTY0ZWZiMjQwNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCkBAIC02
OSw5ICs2OSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBzdGF0aWMgY29uc3Qg
SlNDOjpDbGFzc0luZm8gc19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6
U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6
OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBl
LCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1v
dXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAg
ICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93QmFzZS5oCmluZGV4IDdiZGEzZTQyMDcyNTRhOTVlMmEzYzcwMzU3YTJlZmRlM2Fh
ZjYzNmUuLmJmZWMzMWM1Njc4MjUyYzk1NzcyMmY0NmExMjllYjkwNjZlMjgwZjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCkBAIC01Nyw5ICs1Nyw5
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFz
c0luZm8gc19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJl
PiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAg
ICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6OlR5
cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291
bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUo
Z2xvYmFsRGF0YSwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAK
ICAgICAgICAgdmlydHVhbCBKU0M6OkV4ZWNTdGF0ZSogZ2xvYmFsRXhlYygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAppbmRleCBhNGNjNzc3
ZDk0YWQyMzM4YjhhNjhlYjA3NzQyY2Q5ZGFmOTk0MTNmLi44MTdlOWMwZGEyMDI4NDQxNWNjNTI5
MDRlZTM3ZjFjN2I5MjdkYmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd1NoZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd1NoZWxsLmNwcApAQCAtNDQsNyArNDQsNyBAQCBBU1NFUlRfQ0xBU1NfRklUU19J
Tl9DRUxMKEpTRE9NV2luZG93U2hlbGwpOwogY29uc3QgQ2xhc3NJbmZvIEpTRE9NV2luZG93U2hl
bGw6OnNfaW5mbyA9IHsgIkpTRE9NV2luZG93U2hlbGwiLCAmQmFzZTo6c19pbmZvLCAwLCAwIH07
CiAKIEpTRE9NV2luZG93U2hlbGw6OkpTRE9NV2luZG93U2hlbGwoUGFzc1JlZlB0cjxET01XaW5k
b3c+IHdpbmRvdywgRE9NV3JhcHBlcldvcmxkKiB3b3JsZCkKLSAgICA6IEJhc2UoSlNET01XaW5k
b3dTaGVsbDo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKKyAgICA6IEJhc2UoSlNET01XaW5k
b3dTaGVsbDo6Y3JlYXRlU3RydWN0dXJlKCp3b3JsZC0+Z2xvYmFsRGF0YSgpLCBqc051bGwoKSkp
CiAgICAgLCBtX3dvcmxkKHdvcmxkKQogewogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7
CkBAIC02MCwxMCArNjAsMTAgQEAgdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpzZXRXaW5kb3coUGFz
c1JlZlB0cjxET01XaW5kb3c+IGRvbVdpbmRvdykKICAgICAvLyBFeHBsaWNpdGx5IHByb3RlY3Qg
dGhlIGdsb2JhbCBvYmplY3QncyBwcm90b3R5cGUgc28gaXQgaXNuJ3QgY29sbGVjdGVkCiAgICAg
Ly8gd2hlbiB3ZSBhbGxvY2F0ZSB0aGUgZ2xvYmFsIG9iamVjdC4gKE9uY2UgdGhlIGdsb2JhbCBv
YmplY3QgaXMgZnVsbHkKICAgICAvLyBjb25zdHJ1Y3RlZCwgaXQgY2FuIG1hcmsgaXRzIG93biBw
cm90b3R5cGUuKQotICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHByb3RvdHlwZVN0cnVjdHVyZSA9IEpT
RE9NV2luZG93UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpOworICAgIFJlZlB0
cjxTdHJ1Y3R1cmU+IHByb3RvdHlwZVN0cnVjdHVyZSA9IEpTRE9NV2luZG93UHJvdG90eXBlOjpj
cmVhdGVTdHJ1Y3R1cmUoKkpTRE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKSwganNOdWxs
KCkpOwogICAgIEdsb2JhbDxKU0RPTVdpbmRvd1Byb3RvdHlwZT4gcHJvdG90eXBlKCpKU0RPTVdp
bmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCksIG5ldyBKU0RPTVdpbmRvd1Byb3RvdHlwZSgwLCBw
cm90b3R5cGVTdHJ1Y3R1cmUucmVsZWFzZSgpKSk7CiAKLSAgICBSZWZQdHI8U3RydWN0dXJlPiBz
dHJ1Y3R1cmUgPSBKU0RPTVdpbmRvdzo6Y3JlYXRlU3RydWN0dXJlKHByb3RvdHlwZS5nZXQoKSk7
CisgICAgUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlID0gSlNET01XaW5kb3c6OmNyZWF0ZVN0
cnVjdHVyZSgqSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLCBwcm90b3R5cGUuZ2V0
KCkpOwogICAgIEpTRE9NV2luZG93KiBqc0RPTVdpbmRvdyA9IG5ldyAoSlNET01XaW5kb3c6OmNv
bW1vbkpTR2xvYmFsRGF0YSgpKSBKU0RPTVdpbmRvdyhzdHJ1Y3R1cmUucmVsZWFzZSgpLCBkb21X
aW5kb3csIHRoaXMpOwogICAgIHByb3RvdHlwZS0+cHV0QW5vbnltb3VzVmFsdWUoKkpTRE9NV2lu
ZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKSwgMCwganNET01XaW5kb3cpOwogICAgIHNldFdpbmRv
dygqSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLCBqc0RPTVdpbmRvdyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKaW5kZXggMDZkZDFm
ZjVmNDBjNmQ0OTA0MmU3OGEwYjVkOWNhMjhlM2I4YTA1ZS4uNDMwN2MxYzQ2MWIwZmY0NmJmOGEz
YTc3YmFiOGVjMmU1MDRmOWJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dTaGVsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93U2hlbGwuaApAQCAtNTgsOSArNTgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICAgICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCk7CiAKLSAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJv
dG90eXBlKSAKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0
ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHBy
b3RvdHlwZSkgCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6
Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCisgICAgICAgICAgICByZXR1
cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIEpTQzo6VHlw
ZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3Vu
dCwgJnNfaW5mbyk7IAogICAgICAgICB9CiAKICAgICAgICAgRE9NV3JhcHBlcldvcmxkKiB3b3Js
ZCgpIHsgcmV0dXJuIG1fd29ybGQuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuY3BwCmluZGV4IDFkZGYxMzYwNDNkODEwM2U5Zjlk
MzEyYjJjYjI4NDI2MDRhMGQwMWYuLmJlNzVhZjBiZTdjYWU5MTQ2NjFjMmRlZWQ0ZjRiMjVkZDBk
N2NmZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25z
dHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0
cnVjdG9yLmNwcApAQCAtMzUsNyArMzUsNyBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpT
SW1hZ2VDb25zdHJ1Y3Rvcik7CiBjb25zdCBDbGFzc0luZm8gSlNJbWFnZUNvbnN0cnVjdG9yOjpz
X2luZm8gPSB7ICJJbWFnZUNvbnN0cnVjdG9yIiwgJkRPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50
OjpzX2luZm8sIDAsIDAgfTsKIAogSlNJbWFnZUNvbnN0cnVjdG9yOjpKU0ltYWdlQ29uc3RydWN0
b3IoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotICAg
IDogRE9NQ29uc3RydWN0b3JXaXRoRG9jdW1lbnQoSlNJbWFnZUNvbnN0cnVjdG9yOjpjcmVhdGVT
dHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVjdCkK
KyAgICA6IERPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50KEpTSW1hZ2VDb25zdHJ1Y3Rvcjo6Y3Jl
YXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QtPm9i
amVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQogewogICAgIEFTU0VSVChpbmhlcml0cygm
c19pbmZvKSk7CiAgICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVy
dHlOYW1lcygpLnByb3RvdHlwZSwgSlNIVE1MSW1hZ2VFbGVtZW50UHJvdG90eXBlOjpzZWxmKGV4
ZWMsIGdsb2JhbE9iamVjdCksIE5vbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0ltYWdlQ29uc3RydWN0b3IuaAppbmRleCA3MzI5M2M3YmY5NDdkMjYxNGQ0MTdlZmRmZjc5
NGZjMWIwZGM1OTQzLi42NTRlMjIzZmE4ZGI1YmZhYWFhY2VkZmVkMzVjZjcwMmE3OTkzYTEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuaApA
QCAtMjksOSArMjksOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHVibGljOgogICAgICAg
ICBKU0ltYWdlQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCop
OwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1
Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8p
OworICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwg
cHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgc3Rh
dGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcAppbmRleCBiNTU5MmQ4YzdkMGVhM2ExOGYz
ZjM2OTc0YmYwMTY4N2Y1ZjJiOGRlLi5hOTJlZDQ3MGM0OTI5YTcwM2QxMThjZmEyYTdjYTBiOWMx
Zjk0MTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlRGF0
YUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZURhdGFD
dXN0b20uY3BwCkBAIC00OCw3ICs0OCw3IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEltYWdlRGF0YSogaW1hZ2VECiAgICAg
d3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBJ
bWFnZURhdGEsIGltYWdlRGF0YSk7CiAgICAgSWRlbnRpZmllciBkYXRhTmFtZShleGVjLCAiZGF0
YSIpOwogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gY3BhQ2xhc3NJbmZvID0geyAiQ2FudmFz
UGl4ZWxBcnJheSIsICZKU0J5dGVBcnJheTo6QmFzZTo6c19pbmZvLCAwLCAwIH07Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8U3RydWN0dXJlPiwgY3BhU3RydWN0dXJlLCAoSlNCeXRl
QXJyYXk6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSwgJmNwYUNsYXNzSW5mbykpKTsKKyAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKFJlZlB0cjxTdHJ1Y3R1cmU+LCBjcGFTdHJ1Y3R1cmUsIChKU0J5
dGVBcnJheTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNOdWxsKCksICZj
cGFDbGFzc0luZm8pKSk7CiAgICAgd3JhcHBlci0+cHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEo
KSwgZGF0YU5hbWUsIG5ldyAoZXhlYykgSlNCeXRlQXJyYXkoZXhlYywgY3BhU3RydWN0dXJlLCBp
bWFnZURhdGEtPmRhdGEoKS0+ZGF0YSgpKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKICAgICBl
eGVjLT5oZWFwKCktPnJlcG9ydEV4dHJhTWVtb3J5Q29zdChpbWFnZURhdGEtPmRhdGEoKS0+bGVu
Z3RoKCkpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNP
cHRpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlv
bkNvbnN0cnVjdG9yLmNwcAppbmRleCBhM2M5YWFiNGQyM2U3YTJlMmI3YjFkYzVjZDE4MDY2ZjBl
MWZlNGM3Li41OWUwYjZhM2U4YmE5NDZhODQ2MDQ5YjMxMzk2MTM4MzE4NzBjZjJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmNwcApA
QCAtMzYsNyArMzYsNyBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTT3B0aW9uQ29uc3Ry
dWN0b3IpOwogY29uc3QgQ2xhc3NJbmZvIEpTT3B0aW9uQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsg
Ik9wdGlvbkNvbnN0cnVjdG9yIiwgJkRPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50OjpzX2luZm8s
IDAsIDAgfTsKIAogSlNPcHRpb25Db25zdHJ1Y3Rvcjo6SlNPcHRpb25Db25zdHJ1Y3RvcihFeGVj
U3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi0gICAgOiBET01D
b25zdHJ1Y3RvcldpdGhEb2N1bWVudChKU09wdGlvbkNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1
cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVjdCkKKyAgICA6
IERPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50KEpTT3B0aW9uQ29uc3RydWN0b3I6OmNyZWF0ZVN0
cnVjdHVyZShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQ
cm90b3R5cGUoKSksIGdsb2JhbE9iamVjdCkKIHsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5m
bykpOwogICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFt
ZXMoKS5wcm90b3R5cGUsIEpTSFRNTE9wdGlvbkVsZW1lbnRQcm90b3R5cGU6OnNlbGYoZXhlYywg
Z2xvYmFsT2JqZWN0KSwgTm9uZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U09wdGlvbkNvbnN0cnVjdG9yLmgKaW5kZXggMDM2MzNjNzkyZTNlMjFiYTFjMTk1YmY3MzNiY2Fi
NzlmOWEyNzU4OC4uOGExODAwNzFjYWYwNTZjY2IyYTJmYzkwYmNlMWU4MTBiZGQ0NWI5NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuaApA
QCAtMzAsOSArMzAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHVibGljOgogICAgICAg
ICBKU09wdGlvbkNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3Qq
KTsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3Ry
dWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6
Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZv
KTsKKyAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgICAgIHN0
YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmgKaW5kZXggOTk5NDhiNzNhMDM2MjUzMjBj
MDI0MTc0YzI1ZTU3NjU2YWY3YjdkZS4uYjljMjM0YTJiZmJiZDgyYTA1ZjU4MjE0MWRhYzExMjBh
YTAyNzI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJD
b250ZXh0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29u
dGV4dEJhc2UuaApAQCAtNDksOSArNDksOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IFdvcmtlckNvbnRleHQqIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwuZ2V0KCk7IH0KICAg
ICAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkgY29uc3Q7CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+
IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlw
ZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3Vu
dCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShn
bG9iYWxEYXRhLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAog
ICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3Jr
ZXJTY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtl
clNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGQzOTIyODE2OWJmOGRiZjIwZjVhYjQyM2JjMDUy
NWM5M2UxZDc5OWMuLjY3YjA0NDFhYTIyYTRmNTA0YmFmYjUwYWYyYzMyMmYxYWEzNzU2MTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRy
b2xsZXIuY3BwCkBAIC03MywxMyArNzMsMTMgQEAgdm9pZCBXb3JrZXJTY3JpcHRDb250cm9sbGVy
Ojppbml0U2NyaXB0KCkKICAgICAvLyBFeHBsaWNpdGx5IHByb3RlY3QgdGhlIGdsb2JhbCBvYmpl
Y3QncyBwcm90b3R5cGUgc28gaXQgaXNuJ3QgY29sbGVjdGVkCiAgICAgLy8gd2hlbiB3ZSBhbGxv
Y2F0ZSB0aGUgZ2xvYmFsIG9iamVjdC4gKE9uY2UgdGhlIGdsb2JhbCBvYmplY3QgaXMgZnVsbHkK
ICAgICAvLyBjb25zdHJ1Y3RlZCwgaXQgY2FuIG1hcmsgaXRzIG93biBwcm90b3R5cGUuKQotICAg
IFJlZlB0cjxTdHJ1Y3R1cmU+IHdvcmtlckNvbnRleHRQcm90b3R5cGVTdHJ1Y3R1cmUgPSBKU1dv
cmtlckNvbnRleHRQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSk7CisgICAgUmVm
UHRyPFN0cnVjdHVyZT4gd29ya2VyQ29udGV4dFByb3RvdHlwZVN0cnVjdHVyZSA9IEpTV29ya2Vy
Q29udGV4dFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKCptX2dsb2JhbERhdGEsIGpzTnVsbCgp
KTsKICAgICBHbG9iYWw8SlNXb3JrZXJDb250ZXh0UHJvdG90eXBlPiB3b3JrZXJDb250ZXh0UHJv
dG90eXBlKCptX2dsb2JhbERhdGEsIG5ldyAobV9nbG9iYWxEYXRhLmdldCgpKSBKU1dvcmtlckNv
bnRleHRQcm90b3R5cGUoMCwgd29ya2VyQ29udGV4dFByb3RvdHlwZVN0cnVjdHVyZS5yZWxlYXNl
KCkpKTsKIAogICAgIGlmIChtX3dvcmtlckNvbnRleHQtPmlzRGVkaWNhdGVkV29ya2VyQ29udGV4
dCgpKSB7Ci0gICAgICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IGRlZGljYXRlZENvbnRleHRQcm90b3R5
cGVTdHJ1Y3R1cmUgPSBKU0RlZGljYXRlZFdvcmtlckNvbnRleHRQcm90b3R5cGU6OmNyZWF0ZVN0
cnVjdHVyZSh3b3JrZXJDb250ZXh0UHJvdG90eXBlLmdldCgpKTsKKyAgICAgICAgUmVmUHRyPFN0
cnVjdHVyZT4gZGVkaWNhdGVkQ29udGV4dFByb3RvdHlwZVN0cnVjdHVyZSA9IEpTRGVkaWNhdGVk
V29ya2VyQ29udGV4dFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKCptX2dsb2JhbERhdGEsIHdv
cmtlckNvbnRleHRQcm90b3R5cGUuZ2V0KCkpOwogICAgICAgICBHbG9iYWw8SlNEZWRpY2F0ZWRX
b3JrZXJDb250ZXh0UHJvdG90eXBlPiBkZWRpY2F0ZWRDb250ZXh0UHJvdG90eXBlKCptX2dsb2Jh
bERhdGEsIG5ldyAobV9nbG9iYWxEYXRhLmdldCgpKSBKU0RlZGljYXRlZFdvcmtlckNvbnRleHRQ
cm90b3R5cGUoMCwgZGVkaWNhdGVkQ29udGV4dFByb3RvdHlwZVN0cnVjdHVyZS5yZWxlYXNlKCkp
KTsKLSAgICAgICAgUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlID0gSlNEZWRpY2F0ZWRXb3Jr
ZXJDb250ZXh0OjpjcmVhdGVTdHJ1Y3R1cmUoZGVkaWNhdGVkQ29udGV4dFByb3RvdHlwZS5nZXQo
KSk7CisgICAgICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSA9IEpTRGVkaWNhdGVkV29y
a2VyQ29udGV4dDo6Y3JlYXRlU3RydWN0dXJlKCptX2dsb2JhbERhdGEsIGRlZGljYXRlZENvbnRl
eHRQcm90b3R5cGUuZ2V0KCkpOwogCiAgICAgICAgIG1fd29ya2VyQ29udGV4dFdyYXBwZXIuc2V0
KCptX2dsb2JhbERhdGEsIG5ldyAobV9nbG9iYWxEYXRhLmdldCgpKSBKU0RlZGljYXRlZFdvcmtl
ckNvbnRleHQoc3RydWN0dXJlLnJlbGVhc2UoKSwgbV93b3JrZXJDb250ZXh0LT50b0RlZGljYXRl
ZFdvcmtlckNvbnRleHQoKSkpOwogICAgICAgICB3b3JrZXJDb250ZXh0UHJvdG90eXBlLT5wdXRB
bm9ueW1vdXNWYWx1ZSgqbV9nbG9iYWxEYXRhLCAwLCBtX3dvcmtlckNvbnRleHRXcmFwcGVyLmdl
dCgpKTsKQEAgLTg3LDkgKzg3LDkgQEAgdm9pZCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjppbml0
U2NyaXB0KCkKICNpZiBFTkFCTEUoU0hBUkVEX1dPUktFUlMpCiAgICAgfSBlbHNlIHsKICAgICAg
ICAgQVNTRVJUKG1fd29ya2VyQ29udGV4dC0+aXNTaGFyZWRXb3JrZXJDb250ZXh0KCkpOwotICAg
ICAgICBSZWZQdHI8U3RydWN0dXJlPiBzaGFyZWRDb250ZXh0UHJvdG90eXBlU3RydWN0dXJlID0g
SlNTaGFyZWRXb3JrZXJDb250ZXh0UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUod29ya2VyQ29u
dGV4dFByb3RvdHlwZS5nZXQoKSk7CisgICAgICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHNoYXJlZENv
bnRleHRQcm90b3R5cGVTdHJ1Y3R1cmUgPSBKU1NoYXJlZFdvcmtlckNvbnRleHRQcm90b3R5cGU6
OmNyZWF0ZVN0cnVjdHVyZSgqbV9nbG9iYWxEYXRhLCB3b3JrZXJDb250ZXh0UHJvdG90eXBlLmdl
dCgpKTsKICAgICAgICAgR2xvYmFsPEpTU2hhcmVkV29ya2VyQ29udGV4dFByb3RvdHlwZT4gc2hh
cmVkQ29udGV4dFByb3RvdHlwZSgqbV9nbG9iYWxEYXRhLCBuZXcgKG1fZ2xvYmFsRGF0YS5nZXQo
KSkgSlNTaGFyZWRXb3JrZXJDb250ZXh0UHJvdG90eXBlKDAsIHNoYXJlZENvbnRleHRQcm90b3R5
cGVTdHJ1Y3R1cmUucmVsZWFzZSgpKSk7Ci0gICAgICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVj
dHVyZSA9IEpTU2hhcmVkV29ya2VyQ29udGV4dDo6Y3JlYXRlU3RydWN0dXJlKHNoYXJlZENvbnRl
eHRQcm90b3R5cGUuZ2V0KCkpOworICAgICAgICBSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUg
PSBKU1NoYXJlZFdvcmtlckNvbnRleHQ6OmNyZWF0ZVN0cnVjdHVyZSgqbV9nbG9iYWxEYXRhLCBz
aGFyZWRDb250ZXh0UHJvdG90eXBlLmdldCgpKTsKIAogICAgICAgICBtX3dvcmtlckNvbnRleHRX
cmFwcGVyLnNldCgqbV9nbG9iYWxEYXRhLCBuZXcgKG1fZ2xvYmFsRGF0YS5nZXQoKSkgSlNTaGFy
ZWRXb3JrZXJDb250ZXh0KHN0cnVjdHVyZS5yZWxlYXNlKCksIG1fd29ya2VyQ29udGV4dC0+dG9T
aGFyZWRXb3JrZXJDb250ZXh0KCkpKTsKICAgICAgICAgd29ya2VyQ29udGV4dFByb3RvdHlwZS0+
cHV0QW5vbnltb3VzVmFsdWUoKm1fZ2xvYmFsRGF0YSwgMCwgbV93b3JrZXJDb250ZXh0V3JhcHBl
ci5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCmluZGV4IGNiNTFjOGEyN2Q4MTJlZTM3MzRkMGRiMGRjMDQxMzYzNjViMWE1
ZjEuLjEyYjQ3N2I1ODk0NWM3NTcyMDNmNTdjYTI1NWQwMmU4NzU2YWJjN2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC03
NDYsOSArNzQ2LDkgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgICRzdHJ1Y3R1cmVGbGFn
c3siSlNDOjpOZWVkc1RoaXNDb252ZXJzaW9uIn0gPSAxOwogICAgIH0KICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LAotICAgICAgICAiICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJl
PiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSlcbiIgLgorICAgICAgICAi
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlND
OjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpXG4iIC4K
ICAgICAgICAgIiAgICB7XG4iIC4KLSAgICAgICAgIiAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0
dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pO1xuIiAuCisgICAgICAg
ICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3Rv
dHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5v
bnltb3VzU2xvdENvdW50LCAmc19pbmZvKTtcbiIgLgogICAgICAgICAiICAgIH1cblxuIik7CiAK
ICAgICAjIG1hcmtDaGlsZHJlbiBmdW5jdGlvbgpAQCAtOTU4LDkgKzk1OCw5IEBAIHN1YiBHZW5l
cmF0ZUhlYWRlcgogICAgICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6T3ZlcnJpZGVzTWFya0No
aWxkcmVuIn0gPSAxOwogICAgIH0KICAgICBwdXNoKEBoZWFkZXJDb250ZW50LAotICAgICAgICAi
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlND
OjpKU1ZhbHVlIHByb3RvdHlwZSlcbiIgLgorICAgICAgICAiICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpXG4iIC4KICAgICAgICAgIiAgICB7XG4iIC4K
LSAgICAgICAgIiAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBl
LCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1v
dXNTbG90Q291bnQsICZzX2luZm8pO1xuIiAuCisgICAgICAgICIgICAgICAgIHJldHVybiBKU0M6
OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhK
U0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTtcbiIgLgogICAgICAgICAiICAgIH1cbiIpOwogICAgIGlmICgkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5nUHJvdG90eXBlUHV0RnVuY3Rpb24ifSkgewogICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVl
LCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7CkBAIC0xNDQyLDkgKzE0NDIsOSBAQCBzdWIg
R2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTT2Jq
ZWN0KiAke2NsYXNzTmFtZX06OmNyZWF0ZVByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJ7XG4iKTsKICAgICAgICAgaWYgKCRoYXNQYXJlbnQgJiYgJHBhcmVudENsYXNzTmFtZSBuZSAi
SlNDOjpET01Ob2RlRmlsdGVyIikgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgcmV0dXJuIG5ldyAoZXhlYykgJHtjbGFzc05hbWV9UHJvdG90eXBlKGdsb2JhbE9iamVjdCwg
JHtjbGFzc05hbWV9UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoJHtwYXJlbnRDbGFzc05hbWV9
UHJvdG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCkpKTtcbiIpOworICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIG5ldyAoZXhlYykgJHtjbGFzc05hbWV9UHJv
dG90eXBlKGdsb2JhbE9iamVjdCwgJHtjbGFzc05hbWV9UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1
cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCAke3BhcmVudENsYXNzTmFtZX1Qcm90b3R5cGU6OnNlbGYo
ZXhlYywgZ2xvYmFsT2JqZWN0KSkpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gbmV3IChleGVjKSAke2NsYXNzTmFtZX1Q
cm90b3R5cGUoZ2xvYmFsT2JqZWN0LCAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OmNyZWF0ZVN0cnVj
dHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSk7XG4iKTsKKyAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBuZXcgKGV4ZWMpICR7Y2xhc3NOYW1lfVBy
b3RvdHlwZShnbG9iYWxPYmplY3QsICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0
dXJlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QtPm9iamVjdFByb3Rv
dHlwZSgpKSk7XG4iKTsKICAgICAgICAgfQogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1c
blxuIik7CiAgICAgfQpAQCAtMjg3Myw5ICsyODczLDkgQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0
b3JEZWNsYXJhdGlvbgogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVu
dGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTtcbiIpOwogICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvO1xuIik7CiAK
LSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1
Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKVxuIik7CisgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJl
PiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNW
YWx1ZSBwcm90b3R5cGUpXG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAge1xuIik7
Ci0gICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6
OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7XG4iKTsKKyAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTtcbiIpOwogICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICB9XG4iKTsKIAogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgInByb3Rl
Y3RlZDpcbiIpOwpAQCAtMjkwNyw3ICsyOTA3LDcgQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0b3JE
ZWZpbml0aW9uCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiY29uc3QgQ2xhc3NJbmZvICR7Y29u
c3RydWN0b3JDbGFzc05hbWV9OjpzX2luZm8gPSB7IFwiJHt2aXNpYmxlQ2xhc3NOYW1lfUNvbnN0
cnVjdG9yXCIsICZET01Db25zdHJ1Y3Rvck9iamVjdDo6c19pbmZvLCAmJHtjb25zdHJ1Y3RvckNs
YXNzTmFtZX1UYWJsZSwgMCB9O1xuXG4iKTsKIAogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiR7
Y29uc3RydWN0b3JDbGFzc05hbWV9Ojoke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfShFeGVjU3RhdGUq
IGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpXG4iKTsKLSAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdCgke2NvbnN0cnVjdG9yQ2xh
c3NOYW1lfTo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkp
LCBnbG9iYWxPYmplY3QpXG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgOiBET01D
b25zdHJ1Y3Rvck9iamVjdCgke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6Y3JlYXRlU3RydWN0dXJl
KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlw
ZSgpKSwgZ2xvYmFsT2JqZWN0KVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7
CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7
XG4iKTsKICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5oCmluZGV4IDI2N2Q3MWU0NzI4MjU4ODUzZjMx
ODUwOWQyMzM1NjVhYmQ0MmI3MmQuLjg1ODE1ZmJkNDY5ODQ1YWZlNjUwNGRmNmY2Yjk5YmU3NGI3
MmY2NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvQ1J1bnRpbWVPYmplY3QuaApAQCAtNDQs
OSArNDQsOSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsK
IAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFs
dWUgcHJvdG90eXBlKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3Ry
dWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAg
ewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7
CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUs
IFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50
LCAmc19pbmZvKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvYy9jX2luc3RhbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFuY2Uu
Y3BwCmluZGV4IDI3YWZmZWIxN2M5NmQ1YjJlNzYxNDE4NDIzMWU5NjNlNzllM2E3OWIuLjIxZmFl
NGYxZmNiN2U0Zjk4MzE5NmQ4OGI0M2I5MTg1ZTA1YzFlMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9jL2NfaW5zdGFuY2UuY3BwCkBAIC0xMjAsOSArMTIwLDkgQEAgcHVibGljOgogICAgICAgICBB
U1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKICAg
ICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuY3BwCmluZGV4IDk1ZDUxODAxOTQ5N2RlNDI5
YmZiOGNlNzY4NjNkNTg1NmY5ZTFjYzMuLmIzMTE0MWU0YjkxYmI4MDQ3Y2Q0NDM2ZWFiOWIyNGY4
MzVhYjQxNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFJ
bnN0YW5jZUpTQy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUlu
c3RhbmNlSlNDLmNwcApAQCAtMTI1LDkgKzEyNSw5IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJU
KGluaGVyaXRzKCZzX2luZm8pKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1
Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBB
bm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgc3Rh
dGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2Uvam5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuaAppbmRleCAxMmE4NWFlNGRlYTUxODdkMzA5MTFm
NDFkNGUwNDkxNDNiZDJlNDgwLi4wM2YxMTZmYWRmNWRhNDBlOGQ4OGY3NjhkMzIwZDE2NjNiNDJk
MjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhUnVudGlt
ZU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1l
T2JqZWN0LmgKQEAgLTQyLDkgKzQyLDkgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0IENs
YXNzSW5mbyBzX2luZm87CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0
ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1
Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUg
cHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3Rv
dHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90
Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0LmgKaW5kZXggZTlmYTEwZGMwNThkMDdk
ODJjYmYyZWQ4ZjQxNDlhM2Y1OGNmNTVjZi4uYjI5YTMzMzk5OTViYjk1OWNiZWFlYTM0OWUzZmMy
ZDliNzFmOWE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvT2JqQ1J1
bnRpbWVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9PYmpDUnVudGlt
ZU9iamVjdC5oCkBAIC00Miw5ICs0Miw5IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdCBD
bGFzc0luZm8gc19pbmZvOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVh
dGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVl
IHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBB
bm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tCmluZGV4IGUwYjE4ZjE0MjU1MWU3ZTgxZWVh
MjkwMTA2ZGQ2NzgyYTlmYmJjNTcuLjRmOTNjZmE2YWY5NzE2ZGRkYjRmZDFkZWUzYzFjODQ5ZjU1
M2Y5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5zdGFu
Y2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbQpA
QCAtMTg0LDkgKzE4NCw5IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2lu
Zm8pKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0
cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1
cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJv
dG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlw
ZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291
bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0
YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255
bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0IENsYXNz
SW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpj
X3J1bnRpbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCmlu
ZGV4IDFjZWU4NWJjMjJjMWZjMDA1YThkZjcyMTk3YmM3ZjAwNjI4ZDFjNDEuLjRlZjBhZmQ1NzM5
N2VhNWY3NWZkNTgzNmEzNjc0NjA0NWJhMzcyODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9v
YmpjL29iamNfcnVudGltZS5oCkBAIC0xMDMsOSArMTAzLDkgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKTsKICAgICB9CiAKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlw
ZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7
CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfYXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKaW5k
ZXggYmQxZGEzMjE3MTY3YTAxOTdkYjY2NmU3ODUyZGJhMDk1NjU4OTgwNi4uOTU1NTU0NTJkZWY5
NmFmMDZjYTY5NWRmNWRiMDhkMDdhOGE2YzA1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfYXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9hcnJheS5oCkBAIC01OCw5ICs1OCw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGdsb2Jh
bE9iamVjdC0+YXJyYXlQcm90b3R5cGUoKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiBw
cm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRo
b2QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oCmluZGV4IGMwYzlm
MTYzNDA0YzVhOTgyZGMwOWVmZDNlMGQwM2Q1YjhlZjczNDcuLjlkZjc5NmViMDcxNWJmMzJiMzRk
MjIzZmI1MmIzYzgyNjJiYzZiZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX21ldGhvZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhv
ZC5oCkBAIC00NSw5ICs0NSw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGdsb2JhbE9iamVj
dC0+ZnVuY3Rpb25Qcm90b3R5cGUoKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiBwcm90
ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCmluZGV4IDBkZWNkMTc4
NjQ4NDM5MDhjNjhkNTZkNjNmNDkwMTMxMzI4YWE0MDEuLmJiNmQwNTEwZjI4ZDQzZGI1NzUxODUw
OWUxMGJkMTJhNDNkMzRhYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX29iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5o
CkBAIC02MSw5ICs2MSw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+
b2JqZWN0UHJvdG90eXBlKCk7CiAgICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5v
bnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgIH0KIAogcHJvdGVjdGVk
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCmluZGV4IGQ3NzU3NzJiNWVmOWY5NmI0NmFjNGNhZDNhNWE3ODNmNjI0
ZmQ2Y2MuLmYxNzM1Yjg2YjQzNDZmNjYzYjVlZWZjNzE1MGZkNDY3NjcwNmFkYmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0wMy0xNSAgT2xpdmVyIEh1bnQgIDxvbGl2
ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE1ha2UgU3RydWN0dXJlIGNyZWF0aW9uIHJlcXVpcmUgYSBKU0dsb2JhbERhdGEKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NDM4CisKKyAg
ICAgICAgTWVjaGFuaWNhbCBjaGFuZ2UgdG8gbWFrZSBhbGwgU3RydWN0dXJlIGNyZWF0aW9uIHVz
ZSBhIEpTR2xvYmFsRGF0YSYKKworICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFu
Y2UubW06CisgICAgICAgIChXZWJLaXQ6OlByb3h5UnVudGltZU1ldGhvZDo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QuaDoKKyAg
ICAgICAgKFdlYktpdDo6UHJveHlSdW50aW1lT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorCiAy
MDExLTAzLTE1ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAg
IEZvcmdvdCB0byBzYXZlIGEgbW9kaWZpY2F0aW9uIHRvIHRoaXMgZmlsZSB3aGVuIGNvbW1pdHRp
bmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUlu
c3RhbmNlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5j
ZS5tbQppbmRleCA4YTQxM2Q0MjhjMjc2NTk4OGM4NzY4ZTNjN2JmZTkzMDQxNzJhODA3Li5mMjZi
ODVkY2VhMmEzOWZhNTM5ZjA4ODYzNDVmNWE1MTgyMDI0MzM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW0KQEAgLTE4Nyw5ICsxODcs
OSBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAgICAgfQog
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1
ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1
Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7
Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsK
KyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQs
ICZzX2luZm8pOwogICAgIH0KIAogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1l
T2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVP
YmplY3QuaAppbmRleCBmYzc3ODkwMmFmZTRjYTA0NTIyNzkyOTQ3MGFmZWI4NmRhODFmNzBkLi5h
MDdjODZjODg4ZTc3YmEzYmMxNjRjNGRhYzA3N2U4MmYyMDdmM2I0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QuaAorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QuaApAQCAt
NDEsOSArNDEsOSBAQCBwdWJsaWM6CiAKICAgICBQcm94eUluc3RhbmNlKiBnZXRJbnRlcm5hbFBy
b3h5SW5zdGFuY2UoKSBjb25zdDsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpT
Qzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBw
cm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0
IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5NTFhMjU3NDBlNGQ1ZTlkNTEx
Y2NiZmFhMzg1OTY4ZTNjYTYwZDI1Li5hNGM4NWY4N2Q4YzRhMjExMTQ3YTNiYWNjNDQyNTRlM2Zm
ZjY2NzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDMtMTUgIE9saXZlciBI
dW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBNYWtlIFN0cnVjdHVyZSBjcmVhdGlvbiByZXF1aXJlIGEgSlNHbG9i
YWxEYXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
NjQzOAorCisgICAgICAgIE1lY2hhbmljYWwgY2hhbmdlIHRvIG1ha2UgYWxsIFN0cnVjdHVyZSBj
cmVhdGlvbiB1c2UgYSBKU0dsb2JhbERhdGEmLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwOgorICAgICAgICAoV2ViS2l0OjpKU05QTWV0aG9k
OjpKU05QTWV0aG9kKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNO
UE1ldGhvZC5oOgorICAgICAgICAoV2ViS2l0OjpKU05QTWV0aG9kOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6SlNOUE9iamVjdDo6SlNOUE9iamVjdCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaDoKKyAgICAgICAgKFdlYktpdDo6
SlNOUE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKwogMjAxMS0wMy0xNSAgU2lkZGhhcnRoIE1h
dGh1ciAgPHNpZGRoYXJ0aC5tYXRodXJAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IExhc3psbyBHb21ib3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5jcHAKaW5kZXggZmM3MzUxOTA4NjEwNTFiODlh
Yjg4MmJkMTFlN2IxZGM4NWIzNGRiYi4uOGIzNmQxZGFlZjgwNWZmMzc3YzMxZWJiMDA4YzU4M2U0
MzkwZGU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL0pTTlBNZXRob2QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmNwcApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIGNvbnN0IENsYXNzSW5mbyBKU05QTWV0aG9kOjpzX2luZm8gPSB7ICJOUE1ldGhv
ZCIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2luZm8sIDAsIDAgfTsKIAogSlNOUE1ldGhvZDo6SlNO
UE1ldGhvZChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNv
bnN0IElkZW50aWZpZXImIG5hbWUsIE5QSWRlbnRpZmllciBucElkZW50aWZpZXIpCi0gICAgOiBJ
bnRlcm5hbEZ1bmN0aW9uKCZleGVjLT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCwgY3JlYXRl
U3RydWN0dXJlKGdsb2JhbE9iamVjdC0+ZnVuY3Rpb25Qcm90b3R5cGUoKSksIG5hbWUpCisgICAg
OiBJbnRlcm5hbEZ1bmN0aW9uKCZleGVjLT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCwgY3Jl
YXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5mdW5jdGlvblBy
b3RvdHlwZSgpKSwgbmFtZSkKICAgICAsIG1fbnBJZGVudGlmaWVyKG5wSWRlbnRpZmllcikKIHsK
ICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmgKaW5kZXggYTkxM2E5
OWQwNWFhNDhiZDI5ZWFhNzc0NmMzNzA5MzMzZTRjYjcwOC4uZjBjMjQyNGFkYmZiMWFiYTM3NzRi
MjliZmNhYTQ2MTkzYWI4MzRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5oCkBAIC00Miw5ICs0Miw5IEBAIHB1
YmxpYzoKICAgICBOUElkZW50aWZpZXIgbnBJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9u
cElkZW50aWZpZXI7IH0KIAogcHJpdmF0ZTogICAgCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8SlND
OjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewot
ICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlw
ZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3Vu
dCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKICAgICB2aXJ0
dWFsIEpTQzo6Q2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDOjpDYWxsRGF0YSYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3Qu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmpl
Y3QuY3BwCmluZGV4IDI3MjRmMGQ2NTljODA0Y2M1ZmE3NzdlNzg1YjkyZGNhYjhhNzQxZmYuLjkz
ZjlmYzViYjg3MDk0NTVlNjA0MDFlNmI5ZmNmMzRmYjZjMDRhZDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5j
cHAKQEAgLTUwLDcgKzUwLDcgQEAgc3RhdGljIE5QSWRlbnRpZmllciBucElkZW50aWZpZXJGcm9t
SWRlbnRpZmllcihjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyKQogY29uc3QgQ2xhc3NJbmZv
IEpTTlBPYmplY3Q6OnNfaW5mbyA9IHsgIk5QT2JqZWN0IiwgJkpTT2JqZWN0V2l0aEdsb2JhbE9i
amVjdDo6c19pbmZvLCAwLCAwIH07CiAKIEpTTlBPYmplY3Q6OkpTTlBPYmplY3QoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgTlBSdW50aW1lT2JqZWN0TWFwKiBvYmplY3RNYXAsIE5QT2Jq
ZWN0KiBucE9iamVjdCkKLSAgICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmpl
Y3QsIGNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSkKKyAg
ICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIGNyZWF0ZVN0cnVjdHVy
ZShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5
cGUoKSkpCiAgICAgLCBtX29iamVjdE1hcChvYmplY3RNYXApCiAgICAgLCBtX25wT2JqZWN0KG5w
T2JqZWN0KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL0pTTlBPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKaW5kZXggYWRhZmZhN2YyOTFmOTNmMjlhZDJkNWJkOTli
OGM4OWI5YjZjYjg4NC4uZThhMDhkYWQ0ODdlMDA3YzhmNDY4NmNhZWI1NGE3NDE5MDJjYzMwYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pT
TlBPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvSlNOUE9iamVjdC5oCkBAIC01NSw5ICs1NSw5IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpPdmVycmlkZXNHZXRP
d25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBKU09iamVj
dDo6U3RydWN0dXJlRmxhZ3M7CiAgICAgCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1
Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAg
ICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8o
SlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIEpT
Qzo6Q2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDOjpDYWxsRGF0YSYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85939</attachid>
            <date>2011-03-16 10:27:37 -0700</date>
            <delta_ts>2011-03-16 11:00:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56438-20110316102736.patch</filename>
            <type>text/plain</type>
            <size>126967</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODEyNTMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCmluZGV4IGNkMzA3YTY3NjVlNjk0ZGNiM2U3ODg2
ZjVjOTRiNWRmYzIyNzQ4YTAuLjAwMWM0MTYxNmRmMDg3NjA0ZTc4NjhkMDMwZTUxMzFkM2RiYjM2
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0
cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3Ry
dWN0b3IuaApAQCAtMzksOSArMzksOSBAQCBwdWJsaWM6CiAgICAgSlNPYmplY3RDYWxsQXNDb25z
dHJ1Y3RvckNhbGxiYWNrIGNhbGxiYWNrKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsYmFjazsgfQog
ICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90bykgCisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU1ZhbHVlIHByb3RvKSAKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUoZ2xvYmFsRGF0YSwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKIHByb3RlY3RlZDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oCmluZGV4IGQ4
YWU2MDgzNjgxY2ZlMjQ0NWVkYjIzZDc0N2Y0OTExOTY1ZDVhMmYuLjExZmI5NWM1YzEwZjIzOGM2
ODcxMjA3ZGY3OGYyMTM5MjhjYzFiZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0NhbGxiYWNrRnVuY3Rpb24uaApAQCAtMzksOSArMzksOSBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgLy8gSW50ZXJuYWxGdW5jdGlvbiBtaXNoLW1hc2hlcyBjb25zdHJ1Y3RvciBhbmQgZnVuY3Rp
b24gYmVoYXZpb3IgLS0gd2Ugc2hvdWxkIAogICAgIC8vIHJlZmFjdG9yIHRoZSBjb2RlIHNvIHRo
aXMgb3ZlcnJpZGUgaXNuJ3QgbmVjZXNzYXJ5Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90bykgCisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U1ZhbHVlIHByb3RvKSAKICAgICB7IAotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
cHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsgCisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOyAKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCmluZGV4IDczMmNjMWRiMTQwNTAz
NjU5MGEwZDhhYzFjMDA3MDIzMDE4ZDMwOGYuLmEwYWRiNDQ4Mjc5Zjk4NjA4MTg0ZGY4MTA0YjBi
YTg1OTRiZDNhMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09i
amVjdC5oCkBAIC0xMjgsOSArMTI4LDkgQEAgcHVibGljOgogICAgIEpTQ2xhc3NSZWYgY2xhc3NS
ZWYoKSBjb25zdCB7IHJldHVybiBtX2NhbGxiYWNrT2JqZWN0RGF0YS0+anNDbGFzczsgfQogICAg
IGJvb2wgaW5oZXJpdHMoSlNDbGFzc1JlZikgY29uc3Q7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvKSAKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTVmFsdWUgcHJvdG8pIAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBCYXNl
OjpBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyAKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEJhc2U6OkFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAogICAgIH0KICAg
ICAKICAgICBKU1ZhbHVlIGdldFByaXZhdGVQcm9wZXJ0eShjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q29udGV4dFJlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5j
cHAKaW5kZXggY2NhYjk1MzI2MDA0Y2NhODlmNzgxNWU4NWE1ZWVjODVkMWNkOGI2ZC4uZTVjNzc4
ZjliYzUwYWQ5ODdlMTA3ZDU1MmI5NzkwZTQ4YjBmOTFlZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcApAQCAtOTMsMTEgKzkzLDExIEBAIEpTR2xvYmFsQ29u
dGV4dFJlZiBKU0dsb2JhbENvbnRleHRDcmVhdGVJbkdyb3VwKEpTQ29udGV4dEdyb3VwUmVmIGdy
b3VwLCBKU0NsYXNzCiAjZW5kaWYKIAogICAgIGlmICghZ2xvYmFsT2JqZWN0Q2xhc3MpIHsKLSAg
ICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG5ldyAoZ2xvYmFsRGF0YS5nZXQo
KSkgSlNHbG9iYWxPYmplY3Q7CisgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qg
PSBuZXcgKGdsb2JhbERhdGEuZ2V0KCkpIEpTR2xvYmFsT2JqZWN0KCpnbG9iYWxEYXRhKTsKICAg
ICAgICAgcmV0dXJuIEpTR2xvYmFsQ29udGV4dFJldGFpbih0b0dsb2JhbFJlZihnbG9iYWxPYmpl
Y3QtPmdsb2JhbEV4ZWMoKSkpOwogICAgIH0KIAotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSBuZXcgKGdsb2JhbERhdGEuZ2V0KCkpIEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxP
YmplY3Q+KGdsb2JhbE9iamVjdENsYXNzLCBKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0
Pjo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSk7CisgICAgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCA9IG5ldyAoZ2xvYmFsRGF0YS5nZXQoKSkgSlNDYWxsYmFja09iamVjdDxKU0dsb2Jh
bE9iamVjdD4oZ2xvYmFsT2JqZWN0Q2xhc3MsIEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmpl
Y3Q+OjpjcmVhdGVTdHJ1Y3R1cmUoKmdsb2JhbERhdGEsIGpzTnVsbCgpKSk7CiAgICAgRXhlY1N0
YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CiAgICAgSlNWYWx1ZSBwcm90
b3R5cGUgPSBnbG9iYWxPYmplY3RDbGFzcy0+cHJvdG90eXBlKGV4ZWMpOwogICAgIGlmICghcHJv
dG90eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggYzQ5NzM2Y2VkYzlhOGZjYWM2Mzdl
MTZmZjE1MjI1ZWMyMjliMDVkMS4uMzQxYTBhNzEwOTI0ZjdhNmJmMDg1ZTE0M2MxNDNmZTQyZmJi
MmYxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMxIEBACisyMDExLTAz
LTE1ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBTdHJ1Y3R1cmUgY3JlYXRpb24gcmVx
dWlyZSBhIEpTR2xvYmFsRGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTY0MzgKKworICAgICAgICBNZWNoYW5pY2FsIGNoYW5nZSB0byBtYWtlIFN0
cnVjdHVyZTo6Y3JlYXRlIHJlcXVpcmUgSlNHbG9iYWxEYXRhJiwgYW5kCisgICAgICAgIHJlcXVp
cmUgYWxsIHVzZXJzIHRvIHByb3ZpZGUgdGhlIGdsb2JhbERhdGEuCisKKyAgICAgICAgKiBBUEkv
SlNDYWxsYmFja0NvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tDb25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja0Z1bmN0aW9u
Lmg6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKToK
KyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0NhbGxi
YWNrT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIEFQSS9KU0NvbnRleHRSZWYu
Y3BwOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAgICAgKiBkZWJ1Z2dlci9E
ZWJ1Z2dlckFjdGl2YXRpb24uY3BwOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckFjdGl2YXRpb246
OkRlYnVnZ2VyQWN0aXZhdGlvbik6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0
aW9uLmg6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyQWN0aXZhdGlvbjo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpERUZJTkVfU1RV
Ql9GVU5DVElPTik6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKEdsb2JhbE9iamVjdDo6
R2xvYmFsT2JqZWN0KToKKyAgICAgICAgKGZ1bmN0aW9uUnVuKToKKyAgICAgICAgKGpzY21haW4p
OgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmg6CisgICAgICAgIChKU0M6OkFyZ3VtZW50
czo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmg6
CisgICAgICAgIChKU0M6OkFycmF5UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAg
ICAqIHJ1bnRpbWUvQm9vbGVhbk9iamVjdC5oOgorICAgICAgICAoSlNDOjpCb29sZWFuT2JqZWN0
OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUluc3RhbmNlLmg6Cisg
ICAgICAgIChKU0M6OkRhdGVJbnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBy
dW50aW1lL0RhdGVQcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RGF0ZVByb3RvdHlwZTo6Y3Jl
YXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9ySW5zdGFuY2UuaDoKKyAgICAg
ICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50
aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUJhc2U6OmNyZWF0ZVN0
cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkV2YWxFeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAoSlNDOjpQcm9ncmFtRXhlY3V0YWJsZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAg
ICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Q
cm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9HZXR0ZXJTZXR0
ZXIuaDoKKyAgICAgICAgKEpTQzo6R2V0dGVyU2V0dGVyOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAg
ICAgICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpJbnRlcm5h
bEZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBUElWYWx1
ZVdyYXBwZXIuaDoKKyAgICAgICAgKEpTQzo6SlNBUElWYWx1ZVdyYXBwZXI6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgICogcnVudGltZS9KU0FjdGl2YXRpb24uaDoKKyAgICAgICAgKEpTQzo6
SlNBY3RpdmF0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJh
eS5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OkpTQXJyYXkpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNBcnJheS5oOgorICAgICAgICAoSlNDOjpKU0FycmF5OjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpKU0J5dGVB
cnJheTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTQnl0ZUFycmF5Lmg6
CisgICAgICAgIChKU0M6OkpTQnl0ZUFycmF5OjpKU0J5dGVBcnJheSk6CisgICAgICAgICogcnVu
dGltZS9KU0NlbGwuaDoKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpKU0NlbGw6OmNyZWF0ZUR1bW15
U3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uaDoKKyAgICAgICAgKEpT
Qzo6SlNGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xv
YmFsRGF0YS5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsRGF0YTo6c3RvcmVWUHRycyk6Cisg
ICAgICAgIChKU0M6OkpTR2xvYmFsRGF0YTo6SlNHbG9iYWxEYXRhKToKKyAgICAgICAgKiBydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OnJl
c2V0KToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6
OkpTR2xvYmFsT2JqZWN0OjpKU0dsb2JhbE9iamVjdCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFs
T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVj
dC5oOgorICAgICAgICAoSlNDOjpKU05vdEFuT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU09OT2JqZWN0Ojpj
cmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAg
ICAoSlNDOjpKU09iamVjdDo6Y3JlYXRlSW5oZXJpdG9ySUQpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgIChKU0M6OkpTTm9uRmluYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
IChKU0M6OkpTRmluYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OmNy
ZWF0ZUVtcHR5T2JqZWN0U3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmluaGVy
aXRvcklEKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oOgor
ICAgICAgICAoSlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6
CisgICAgICAgICogcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmg6CisgICAgICAgIChK
U0M6OkpTUHJvcGVydHlOYW1lSXRlcmF0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICog
cnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTU3RhdGljU2Nv
cGVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5o
OgorICAgICAgICAoSlNDOjpSb3BlQnVpbGRlcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAg
KiBydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNWYXJpYWJsZU9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTV3JhcHBlck9iamVj
dC5oOgorICAgICAgICAoSlNDOjpKU1dyYXBwZXJPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9KU1pvbWJpZS5oOgorICAgICAgICAoSlNDOjpKU1pvbWJpZTo6Y3Jl
YXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL01hdGhPYmplY3QuaDoKKyAgICAgICAg
KEpTQzo6TWF0aE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL05h
dGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0
cnVjdG9yOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBydW50aW1lL05hdGl2
ZUVycm9yQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6TmF0aXZlRXJyb3JDb25zdHJ1Y3Rv
cjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL051bWJlckNvbnN0cnVjdG9y
Lmg6CisgICAgICAgIChKU0M6Ok51bWJlckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyT2JqZWN0Lmg6CisgICAgICAgIChKU0M6Ok51bWJlck9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVj
dG9yLmg6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6
UmVnRXhwQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9S
ZWdFeHBPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1
cmUpOgorICAgICAgICAqIHJ1bnRpbWUvU2NvcGVDaGFpbi5oOgorICAgICAgICAoSlNDOjpTY29w
ZUNoYWluTm9kZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09i
amVjdC5oOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZC5o
OgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZDo6
Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oOgor
ICAgICAgICAoSlNDOjpTdHJpbmdQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
ICogcnVudGltZS9TdHJ1Y3R1cmUuaDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpjcmVhdGUp
OgorCiAyMDExLTAzLTE1ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLmV4cAppbmRleCBmYjZiYmUzYjkzMGE4NDczNGU5Yzg0YmE5OTdlYjM1MTQ1MmRj
ZjEzLi5hNzViYjBjNmM0OWM2ZDIxMjRiNWFmZDBjZDQxYzViMDQwZjk1YWEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTExMyw3ICsxMTMsNyBAQCBfX1pO
M0pTQzEwSlNGdW5jdGlvbjZzX2luZm9FCiBfX1pOM0pTQzEwdGhyb3dFcnJvckVQTlNfOUV4ZWNT
dGF0ZUVOU183SlNWYWx1ZUUKIF9fWk4zSlNDMTB0aHJvd0Vycm9yRVBOU185RXhlY1N0YXRlRVBO
U184SlNPYmplY3RFCiBfX1pOM0pTQzExSlNCeXRlQXJyYXkxM3NfZGVmYXVsdEluZm9FCi1fX1pO
M0pTQzExSlNCeXRlQXJyYXkxNWNyZWF0ZVN0cnVjdHVyZUVOU183SlNWYWx1ZUVQS05TXzlDbGFz
c0luZm9FCitfX1pOM0pTQzExSlNCeXRlQXJyYXkxNWNyZWF0ZVN0cnVjdHVyZUVSTlNfMTJKU0ds
b2JhbERhdGFFTlNfN0pTVmFsdWVFUEtOU185Q2xhc3NJbmZvRQogX19aTjNKU0MxMUpTQnl0ZUFy
cmF5QzFFUE5TXzlFeGVjU3RhdGVFTjNXVEYxN05vbk51bGxQYXNzUmVmUHRySU5TXzlTdHJ1Y3R1
cmVFRUVQTlMzXzlCeXRlQXJyYXlFCiBfX1pOM0pTQzExTWFya2VkU3BhY2UyMWFsbG9jYXRlRnJv
bVNpemVDbGFzc0VSTlMwXzlTaXplQ2xhc3NFCiBfX1pOM0pTQzExUGFyc2VyQXJlbmE1cmVzZXRF
dgpAQCAtMjg3LDcgKzI4Nyw2IEBAIF9fWk4zSlNDOEpTT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQ
TlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDOEpTT2JqZWN0MTRkZWxl
dGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVqCiBfX1pOM0pTQzhKU09iamVjdDE1dW53cmFwcGVk
T2JqZWN0RXYKIF9fWk4zSlNDOEpTT2JqZWN0MTZnZXRQcm9wZXJ0eU5hbWVzRVBOU185RXhlY1N0
YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RU5TXzE1RW51bWVyYXRpb25Nb2RlRQotX19aTjNK
U0M4SlNPYmplY3QxN2NyZWF0ZUluaGVyaXRvcklERXYKIF9fWk4zSlNDOEpTT2JqZWN0MTdkZWZp
bmVPd25Qcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9w
ZXJ0eURlc2NyaXB0b3JFYgogX19aTjNKU0M4SlNPYmplY3QxN3B1dERpcmVjdEZ1bmN0aW9uRVBO
U185RXhlY1N0YXRlRVBOU18xMEpTRnVuY3Rpb25FagogX19aTjNKU0M4SlNPYmplY3QxN3B1dERp
cmVjdEZ1bmN0aW9uRVBOU185RXhlY1N0YXRlRVBOU18xNkludGVybmFsRnVuY3Rpb25FagpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgppbmRl
eCBkYzgxMjZkMTc4OWI0NGFhY2Q1NzEwNzAyY2FhMGJlYWNkM2ZmZjlkLi43NWM2ZDNlZmE4NDk5
OGFlNWE2YjBjNTlkMWU3MjMwNjA1ZjEyOTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LmRlZgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtMTAyLDE0ICsxMDIsMTIgQEAgRVhQ
T1JUUwogICAgID9jcmVhdGVAUmVnRXhwQEpTQ0BAU0E/QVY/JFBhc3NSZWZQdHJAVlJlZ0V4cEBK
U0NAQEBXVEZAQFBBVkpTR2xvYmFsRGF0YUAyQEFCVlVTdHJpbmdAMkBXNFJlZ0V4cEZsYWdzQDJA
QFoKICAgICA/Y3JlYXRlRW1wdHlTdHJpbmdAU21hbGxTdHJpbmdzQEpTQ0BAQUFFWFBBVkpTR2xv
YmFsRGF0YUAyQEBaCiAgICAgP2NyZWF0ZUVycm9yQEpTQ0BAWUFQQVZKU09iamVjdEAxQFBBVkV4
ZWNTdGF0ZUAxQEFCVlVTdHJpbmdAMUBAWgotICAgID9jcmVhdGVJbmhlcml0b3JJREBKU09iamVj
dEBKU0NAQEFBRVBBVlN0cnVjdHVyZUAyQFhaCiAgICAgP2NyZWF0ZUludGVycnVwdGVkRXhlY3V0
aW9uRXhjZXB0aW9uQEpTQ0BAWUFQQVZKU09iamVjdEAxQFBBVkpTR2xvYmFsRGF0YUAxQEBaCiAg
ICAgP2NyZWF0ZUxlYWtlZEBKU0dsb2JhbERhdGFASlNDQEBTQT9BVj8kUGFzc1JlZlB0ckBWSlNH
bG9iYWxEYXRhQEpTQ0BAQFdURkBAVzRUaHJlYWRTdGFja1R5cGVAMkBAWgogICAgID9jcmVhdGVS
YW5nZUVycm9yQEpTQ0BAWUFQQVZKU09iamVjdEAxQFBBVkV4ZWNTdGF0ZUAxQEFCVlVTdHJpbmdA
MUBAWgogICAgID9jcmVhdGVSZWZlcmVuY2VFcnJvckBKU0NAQFlBUEFWSlNPYmplY3RAMUBQQVZF
eGVjU3RhdGVAMUBBQlZVU3RyaW5nQDFAQFoKICAgICA/Y3JlYXRlU2luZ2xlQ2hhcmFjdGVyU3Ry
aW5nQFNtYWxsU3RyaW5nc0BKU0NAQEFBRVhQQVZKU0dsb2JhbERhdGFAMkBFQFoKICAgICA/Y3Jl
YXRlU3RhY2tPdmVyZmxvd0Vycm9yQEpTQ0BAWUFQQVZKU09iamVjdEAxQFBBVkV4ZWNTdGF0ZUAx
QEBaCi0gICAgP2NyZWF0ZVN0cnVjdHVyZUBKU0J5dGVBcnJheUBKU0NAQFNBP0FWPyRQYXNzUmVm
UHRyQFZTdHJ1Y3R1cmVASlNDQEBAV1RGQEBWSlNWYWx1ZUAyQFBCVUNsYXNzSW5mb0AyQEBaCiAg
ICAgP2NyZWF0ZVN5bnRheEVycm9yQEpTQ0BAWUFQQVZKU09iamVjdEAxQFBBVkV4ZWNTdGF0ZUAx
QEFCVlVTdHJpbmdAMUBAWgogICAgID9jcmVhdGVUYWJsZUBIYXNoVGFibGVASlNDQEBBQkVYUEFW
SlNHbG9iYWxEYXRhQDJAQFoKICAgICA/Y3JlYXRlVGhyZWFkQFdURkBAWUFJUDZBUEFYUEFYQFow
QFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzdlNmVlN2RlNzI4OWRjOWRkZGI5
ZDAyOWYyYWE4NWVlM2RlNzA0NC4uMTIxYWRiOTVkYjdhY2RhM2Y2OTczYTY4OWM4OWI5NDBkNWZj
YTMxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2MzgsNiArMjYzOCw3IEBA
CiAJCQl9OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDE0OUMyNzcxMDg5MDJBRkUwMDhB
OUVGQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIkphdmFTY3Jp
cHRDb3JlIiAqLzsKIAkJCWNvbXBhdGliaWxpdHlWZXJzaW9uID0gIlhjb2RlIDMuMSI7CisJCQlk
ZXZlbG9wbWVudFJlZ2lvbiA9IEVuZ2xpc2g7CiAJCQloYXNTY2FubmVkRm9yRW5jb2RpbmdzID0g
MTsKIAkJCWtub3duUmVnaW9ucyA9ICgKIAkJCQlFbmdsaXNoLApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAppbmRleCA2MmEy
ZTU0ZTFiYWI5MmMyZWZjMmVmMTFmNGNiODdhM2I2YjdjODBhLi41MGJhNzQ2ZWVkMTZkYjMwYWJk
MjhlY2M0MDRkZjdjMGI3YTgwNzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcApAQCAtMzEsNyArMzEsNyBAQAogbmFt
ZXNwYWNlIEpTQyB7CiAKIERlYnVnZ2VyQWN0aXZhdGlvbjo6RGVidWdnZXJBY3RpdmF0aW9uKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNPYmplY3QqIGFjdGl2YXRpb24pCi0gICAgOiBKU05v
bkZpbmFsT2JqZWN0KERlYnVnZ2VyQWN0aXZhdGlvbjo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgp
KSkKKyAgICA6IEpTTm9uRmluYWxPYmplY3QoRGVidWdnZXJBY3RpdmF0aW9uOjpjcmVhdGVTdHJ1
Y3R1cmUoZ2xvYmFsRGF0YSwganNOdWxsKCkpKQogewogICAgIEFTU0VSVChhY3RpdmF0aW9uKTsK
ICAgICBBU1NFUlQoYWN0aXZhdGlvbi0+aXNBY3RpdmF0aW9uT2JqZWN0KCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCmluZGV4
IDAxYTQ5MDczMzYxYjBkNjQxMzliZDQ2N2NiZWFhMDg1ZjE0ZTkyMjkuLmYyMmQyZmZiZDkxOTQz
YWU0OGZjOTNmM2M3ZTgwYTIxYWJhNGM5NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKQEAgLTQ5LDkgKzQ5LDkgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgSlNWYWx1ZSBsb29rdXBHZXR0ZXIoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICAgICAgdmlydHVhbCBK
U1ZhbHVlIGxvb2t1cFNldHRlcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUpOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3Ry
dWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKSAKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVl
IHByb3RvdHlwZSkgCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5v
bnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAogICAgICAgICB9CiAK
ICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFN0dWJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCmluZGV4
IGZlNTFhM2ZjY2ExZTU0ZDhmMmExMTEyYzk1ZDhjNmMxMTBmYzhlNDkuLjEwYTJiNjA1MjEzNjFj
M2ZkZjUwYzIzNjY3Mjg3ZTdkZjc0MjIzNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUU3R1YnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
U3R1YnMuY3BwCkBAIC0xMTc0LDcgKzExNzQsNyBAQCBERUZJTkVfU1RVQl9GVU5DVElPTihFbmNv
ZGVkSlNWYWx1ZSwgb3BfY3JlYXRlX3RoaXMpCiAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmU7CiAg
ICAgSlNWYWx1ZSBwcm90byA9IHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCk7CiAgICAgaWYg
KHByb3RvLmlzT2JqZWN0KCkpCi0gICAgICAgIHN0cnVjdHVyZSA9IGFzT2JqZWN0KHByb3RvKS0+
aW5oZXJpdG9ySUQoKTsKKyAgICAgICAgc3RydWN0dXJlID0gYXNPYmplY3QocHJvdG8pLT5pbmhl
cml0b3JJRCgqc3RhY2tGcmFtZS5nbG9iYWxEYXRhKTsKICAgICBlbHNlCiAgICAgICAgIHN0cnVj
dHVyZSA9IGNvbnN0cnVjdG9yLT5zY29wZSgpLT5nbG9iYWxPYmplY3QtPmVtcHR5T2JqZWN0U3Ry
dWN0dXJlKCk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChjYWxs
RnJhbWUsIHN0cnVjdHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNj
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDE4NzM2NTkxMjhiOWNh
Nzg0MjMwZTAzZmZjZWZiNWVhM2VkZjBkNWMuLjhjY2IwMzk4NTA2YmQ5YTMxYmRhNmE3OWM5MDZk
N2IxNGQ0MTRmODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC0xNDEsMTQgKzE0MSwxNCBAQCBs
b25nIFN0b3BXYXRjaDo6Z2V0RWxhcHNlZE1TKCkKIAogY2xhc3MgR2xvYmFsT2JqZWN0IDogcHVi
bGljIEpTR2xvYmFsT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBHbG9iYWxPYmplY3QoY29uc3QgVmVj
dG9yPFVTdHJpbmc+JiBhcmd1bWVudHMpOworICAgIEdsb2JhbE9iamVjdChKU0dsb2JhbERhdGEm
LCBjb25zdCBWZWN0b3I8VVN0cmluZz4mIGFyZ3VtZW50cyk7CiAgICAgdmlydHVhbCBVU3RyaW5n
IGNsYXNzTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJnbG9iYWwiOyB9CiB9OwogQ09NUElMRV9BU1NF
UlQoIUlzSW50ZWdlcjxHbG9iYWxPYmplY3Q+Ojp2YWx1ZSwgV1RGX0lzSW50ZWdlcl9HbG9iYWxP
YmplY3RfZmFsc2UpOwogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChHbG9iYWxPYmplY3QpOwog
Ci1HbG9iYWxPYmplY3Q6Okdsb2JhbE9iamVjdChjb25zdCBWZWN0b3I8VVN0cmluZz4mIGFyZ3Vt
ZW50cykKLSAgICA6IEpTR2xvYmFsT2JqZWN0KCkKK0dsb2JhbE9iamVjdDo6R2xvYmFsT2JqZWN0
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgVmVjdG9yPFVTdHJpbmc+JiBhcmd1bWVu
dHMpCisgICAgOiBKU0dsb2JhbE9iamVjdChnbG9iYWxEYXRhKQogewogICAgIHB1dERpcmVjdEZ1
bmN0aW9uKGdsb2JhbEV4ZWMoKSwgbmV3IChnbG9iYWxFeGVjKCkpIEpTRnVuY3Rpb24oZ2xvYmFs
RXhlYygpLCB0aGlzLCBmdW5jdGlvblN0cnVjdHVyZSgpLCAxLCBJZGVudGlmaWVyKGdsb2JhbEV4
ZWMoKSwgImRlYnVnIiksIGZ1bmN0aW9uRGVidWcpKTsKICAgICBwdXREaXJlY3RGdW5jdGlvbihn
bG9iYWxFeGVjKCksIG5ldyAoZ2xvYmFsRXhlYygpKSBKU0Z1bmN0aW9uKGdsb2JhbEV4ZWMoKSwg
dGhpcywgZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMSwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJw
cmludCIpLCBmdW5jdGlvblByaW50KSk7CkBAIC0yMTIsNyArMjEyLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJ1bihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKCFm
aWxsQnVmZmVyV2l0aENvbnRlbnRzT2ZGaWxlKGZpbGVOYW1lLCBzY3JpcHQpKQogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93RXJyb3IoZXhlYywgY3JlYXRlRXJyb3IoZXhlYywg
IkNvdWxkIG5vdCBvcGVuIGZpbGUuIikpKTsKIAotICAgIEdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0ID0gbmV3ICgmZXhlYy0+Z2xvYmFsRGF0YSgpKSBHbG9iYWxPYmplY3QoVmVjdG9yPFVTdHJp
bmc+KCkpOworICAgIEdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbmV3ICgmZXhlYy0+Z2xv
YmFsRGF0YSgpKSBHbG9iYWxPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBWZWN0b3I8VVN0cmlu
Zz4oKSk7CiAKICAgICBTdG9wV2F0Y2ggc3RvcFdhdGNoOwogICAgIHN0b3BXYXRjaC5zdGFydCgp
OwpAQCAtNTM2LDcgKzUzNiw3IEBAIGludCBqc2NtYWluKGludCBhcmdjLCBjaGFyKiogYXJndiwg
SlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQogICAgIE9wdGlvbnMgb3B0aW9uczsKICAgICBwYXJz
ZUFyZ3VtZW50cyhhcmdjLCBhcmd2LCBvcHRpb25zLCBnbG9iYWxEYXRhKTsKIAotICAgIEdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbmV3IChnbG9iYWxEYXRhKSBHbG9iYWxPYmplY3Qob3B0
aW9ucy5hcmd1bWVudHMpOworICAgIEdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbmV3IChn
bG9iYWxEYXRhKSBHbG9iYWxPYmplY3QoKmdsb2JhbERhdGEsIG9wdGlvbnMuYXJndW1lbnRzKTsK
ICAgICBib29sIHN1Y2Nlc3MgPSBydW5XaXRoU2NyaXB0cyhnbG9iYWxPYmplY3QsIG9wdGlvbnMu
c2NyaXB0cywgb3B0aW9ucy5kdW1wKTsKICAgICBpZiAob3B0aW9ucy5pbnRlcmFjdGl2ZSAmJiBz
dWNjZXNzKQogICAgICAgICBydW5JbnRlcmFjdGl2ZShnbG9iYWxPYmplY3QpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAppbmRleCA5MGMzZjljYjg3ODUxOTRiNTRm
NzRkZjI1NTJlZGE2NjVhOTI2MDE4Li5iYjZiZjMyYWU3Mzk0ODY3Y2YwOTlhZDFlMWI3NGFkMjQ1
YjRkNjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVu
dHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaApAQCAt
OTIsOSArOTIsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIGQtPnJlZ2lzdGVycyA9
ICZhY3RpdmF0aW9uLT5yZWdpc3RlckF0KDApOwogICAgICAgICB9CiAKLSAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUp
IAorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKSAKICAgICAgICAgeyAK
LSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZv
KTsgCisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Ns
b3RDb3VudCwgJnNfaW5mbyk7IAogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaAppbmRleCBlNDFkOGNh
ODNmYTkyZTJkNmI3Y2QxZjM3MjE5OTliOWMxZTE0NDM3Li45NjY0MWJkMmJiYmM0NDFmMTBmYzc0
NTQ2MDJjYzcxOWI4ZTVlZWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheVByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5UHJvdG90eXBlLmgKQEAgLTM1LDkgKzM1LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKLSAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisg
ICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAg
ICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUs
IFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50
LCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oCmluZGV4IGUyYWYwYzI2YmNiNzM2ZmYz
ZDYyYzRiMWY3ZGJjYjZkNzc2ZGQ0ODAuLmVmMmQ0MDM0ZDU1MzRmNDgwY2VjNjExODVjZGM0Y2Fk
MDczZjcwMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xl
YW5PYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2Jq
ZWN0LmgKQEAgLTMxLDkgKzMxLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGlj
IGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAgICAgICAgIAotICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOwogICAgICAgICB9CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EYXRlSW5zdGFuY2UuaAppbmRleCBlM2YzYmU5ODBiY2VlOGNkMzljOGQzMjU5NWU3ZmJh
YTc0MGEzNThiLi42Yzk3Nzg5N2Q5ZGFjYmU3ZmQxYWQwN2Q5YjM1YzJmZWVhY2E3MjI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaApAQCAtNTMsOSAr
NTMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBjYWxjdWxhdGVHcmVn
b3JpYW5EYXRlVGltZVVUQyhleGVjKTsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAg
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwg
JnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmgKaW5kZXggODYxNWJlZmU4OTYwOTdkOWZkZjdh
ZDQ1NzYyYWExNzNiZWYxMzRlZC4uMGViYmVkYzdlMzAyZDBhZDc3NzI3NTIxN2Y3YTMxYTFiZGY1
YjQyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3Rv
dHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUu
aApAQCAtMzYsOSArMzYsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgY29u
c3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1
cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAg
ICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FcnJvckluc3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvckluc3RhbmNlLmgKaW5kZXggYzFiZWVmNzc1MmNlMTAwMmIxMmE1ZWZkMDM2M2JkNmM5
YWY2ZWY1ZC4uODJkYmYwZjU2MzgyZWJjMDg1NDJkNTcxNGIxNjNiZWM5YjZiNzQyMSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaApAQCAtMjksOSAr
MjksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBjb25z
dCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVy
ZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAg
ICAgIH0KIAogICAgICAgICBzdGF0aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRlKEpTR2xvYmFsRGF0
YSosIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4sIGNvbnN0IFVTdHJpbmcmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAppbmRleCAyZmYyYjg1ZmU4ZjM3
ZDIwYmM4NzA4YzdlNmE0MWM0ZmRiMTBjMmJjLi43YTQ4ZDZjNmM1YzI1ZmI2NDY0MGRlMjEwYmRi
OTdkODkwNmIxN2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
eGVjdXRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJs
ZS5oCkBAIC02NSw3ICs2NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJu
IG1fbnVtUGFyYW1ldGVyc0ZvckNhbGwgPT0gTlVNX1BBUkFNRVRFUlNfSVNfSE9TVDsKICAgICAg
ICAgfQogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0
dXJlKEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBl
SW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAw
KTsgfQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVy
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAwKTsgfQogCiAgICAgcHJvdGVjdGVk
OgogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSAwOwpAQCAt
MjM3LDcgKzIzNyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIGdlbmVy
YXRlZEpJVENvZGVGb3JDYWxsKCk7CiAgICAgICAgIH0KICNlbmRpZgotICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvKSB7IHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgMCk7IH0KKyAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91
c1Nsb3RDb3VudCwgMCk7IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc01hcmtDaGlsZHJlbiB8IFNjcmlwdEV4
ZWN1dGFibGU6OlN0cnVjdHVyZUZsYWdzOwpAQCAtMjgyLDcgKzI4Miw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICB9CiAjZW5kaWYKICAgICAgICAgCi0gICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAwKTsgfQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpT
VmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3Rv
LCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENv
dW50LCAwKTsgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzTWFya0NoaWxkcmVuIHwgU2NyaXB0RXhlY3V0YWJs
ZTo6U3RydWN0dXJlRmxhZ3M7CkBAIC0zNzIsNyArMzcyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIHZvaWQgZGlzY2FyZENvZGUoKTsKICAgICAgICAgdm9pZCBtYXJrQ2hpbGRyZW4oTWFy
a1N0YWNrJik7CiAgICAgICAgIHN0YXRpYyBGdW5jdGlvbkV4ZWN1dGFibGUqIGZyb21HbG9iYWxD
b2RlKGNvbnN0IElkZW50aWZpZXImLCBFeGVjU3RhdGUqLCBEZWJ1Z2dlciosIGNvbnN0IFNvdXJj
ZUNvZGUmLCBKU09iamVjdCoqIGV4Y2VwdGlvbik7Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAwKTsgfQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFs
dWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBU
eXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50
LCAwKTsgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKEpTR2xv
YmFsRGF0YSosIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUmLCBib29s
IGZvcmNlVXNlc0FyZ3VtZW50cywgRnVuY3Rpb25QYXJhbWV0ZXJzKiwgYm9vbCwgaW50IGZpcnN0
TGluZSwgaW50IGxhc3RMaW5lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9GdW5jdGlvblByb3RvdHlwZS5oCmluZGV4IGZiMGJiNDg5MjRhMDUyMmFjOWM2MzJlNzMyNmNm
MmI1ZjFmYWM3NzEuLjQ0N2YwMGJkODEwZjVlNTllZjc5NmE1ODgyZWExY2Y2ZDRmMjVjODEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUu
aApAQCAtMzAsOSArMzAsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRnVuY3Rpb25Qcm90
b3R5cGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1
Y3R1cmU+KTsKICAgICAgICAgdm9pZCBhZGRGdW5jdGlvblByb3BlcnRpZXMoRXhlY1N0YXRlKiwg
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqIGZ1bmN0aW9uU3RydWN0dXJlLCBKU0Z1bmN0aW9u
KiogY2FsbEZ1bmN0aW9uLCBKU0Z1bmN0aW9uKiogYXBwbHlGdW5jdGlvbik7CiAKLSAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90
bykKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvKQogICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9HZXR0ZXJTZXR0ZXIuaAppbmRleCA2OGE4YzcwNzBiYWYzZGJkNWI3ZmM3YjQ1YjIy
MDdjZDJmYzI0OGNlLi44MjQxMjc1ZjRkMjBkODUzMjEwZmI5ZjRhZDBmZDE2NmE4MzQxODA1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaApAQCAtNDcs
OSArNDcsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBzZXRHZXR0ZXIoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU09iamVjdCogZ2V0dGVyKSB7IG1fZ2V0dGVyLnNldChnbG9i
YWxEYXRhLCB0aGlzLCBnZXR0ZXIpOyB9CiAgICAgICAgIEpTT2JqZWN0KiBzZXR0ZXIoKSBjb25z
dCB7IHJldHVybiBtX3NldHRlci5nZXQoKTsgfQogICAgICAgICB2b2lkIHNldFNldHRlcihKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTT2JqZWN0KiBzZXR0ZXIpIHsgbV9zZXR0ZXIuc2V0KGds
b2JhbERhdGEsIHRoaXMsIHNldHRlcik7IH0KLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKEdldHRlclNldHRlclR5cGUs
IE92ZXJyaWRlc01hcmtDaGlsZHJlbiksIEFub255bW91c1Nsb3RDb3VudCwgMCk7CisgICAgICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBl
SW5mbyhHZXR0ZXJTZXR0ZXJUeXBlLCBPdmVycmlkZXNNYXJrQ2hpbGRyZW4pLCBBbm9ueW1vdXNT
bG90Q291bnQsIDApOwogICAgICAgICB9CiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBi
b29sIGlzR2V0dGVyU2V0dGVyKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKaW5kZXggODQyN2I4Y2EyNGU0YTZhODc1Zjc1NTYx
OWVlOGJjOGEyNmM2Mzc0Zi4uMDhjOThhNTM4MGYxNzI5NTM2ZWQ5OTE5ZmZiYmI4NjU0OTBhYTE5
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5j
dGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rp
b24uaApAQCAtMzksOSArMzksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgY29uc3QgVVN0
cmluZyBkaXNwbGF5TmFtZShFeGVjU3RhdGUqKTsKICAgICAgICAgY29uc3QgVVN0cmluZyBjYWxj
dWxhdGVkRGlzcGxheU5hbWUoRXhlY1N0YXRlKik7CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90bykgCisgICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90bykgCiAgICAgICAgIHsgCi0gICAgICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCisgICAgICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCiAgICAg
ICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQVBJVmFsdWVXcmFwcGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FQSVZhbHVlV3JhcHBlci5oCmluZGV4IDQzZGQwZDM5YTc4ODI2YzYyMjdjYmM4Y2Nj
YmQ5ZjA3NDdlZDYwMDMuLjU0ZmU5MDlhYmNhMGE0NDBhNTk2YjcxMGNhNTVmMWIwMDBlNzFlOTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQVBJVmFsdWVXcmFw
cGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBUElWYWx1ZVdyYXBw
ZXIuaApAQCAtMzUsOSArMzUsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB2aXJ0dWFs
IGJvb2wgaXNBUElWYWx1ZVdyYXBwZXIoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBw
cm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3Ry
dWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5
cGVJbmZvKENvbXBvdW5kVHlwZSwgT3ZlcnJpZGVzTWFya0NoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0
UHJvcGVydHlOYW1lcyksIEFub255bW91c1Nsb3RDb3VudCwgMCk7CisgICAgICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhDb21w
b3VuZFR5cGUsIE92ZXJyaWRlc01hcmtDaGlsZHJlbiB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFt
ZXMpLCBBbm9ueW1vdXNTbG90Q291bnQsIDApOwogICAgICAgICB9CiAKICAgICAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCmluZGV4IGViYzk5ZjFl
YzBlNTUyYTM5ODhkZGUwMTFjMzA4MjFlYjY5Y2ZkMTguLjJhOTAzOTA4Njc1N2E2YWE1MmE5ZjQz
MTkzZmY2YmZiNzBhNDg5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QWN0aXZhdGlvbi5oCkBAIC02Niw3ICs2Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAK
ICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKLSAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90bykgeyBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgfQorICAgICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255
bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IH0KIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVy
dHlTbG90IHwgTmVlZHNUaGlzQ29udmVyc2lvbiB8IE92ZXJyaWRlc01hcmtDaGlsZHJlbiB8IE92
ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBKU1ZhcmlhYmxlT2JqZWN0OjpTdHJ1Y3R1cmVGbGFn
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKaW5kZXggODIyYjg0
Y2RkZDZmMjY1NDY2MmZlY2E2NmJlY2JiOGFmYTkyMjQxNi4uMWQ2MjFmZTlmOTBkMDRjMzRmZGNh
MjIyYTllZmJlNDEyNTBiNWUyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
cnJheS5jcHAKQEAgLTEyNyw3ICsxMjcsNyBAQCBpbmxpbmUgdm9pZCBKU0FycmF5OjpjaGVja0Nv
bnNpc3RlbmN5KENvbnNpc3RlbmN5Q2hlY2tUeXBlKQogI2VuZGlmCiAKIEpTQXJyYXk6OkpTQXJy
YXkoVlB0clN0ZWFsaW5nSGFja1R5cGUpCi0gICAgOiBKU05vbkZpbmFsT2JqZWN0KGNyZWF0ZVN0
cnVjdHVyZShqc051bGwoKSkpCisgICAgOiBKU05vbkZpbmFsT2JqZWN0KFN0cnVjdHVyZTo6Y3Jl
YXRlKFN0cnVjdHVyZTo6VlB0clN0ZWFsaW5nSGFjaywgJnNfaW5mbykpCiB7CiAgICAgQVNTRVJU
KGluaGVyaXRzKCZzX2luZm8pKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJh
eS5oCmluZGV4IDI0ZGVmN2IwNDNjOGNhYmUzNmU0OTUxZTI4OGUxYmE3MzY1NmU0ZDMuLjlhNTRh
YWI0Y2ZkZjQ3MmEyMTViZTVhMDM3OGE1NDc3Y2RmMDRlNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FycmF5LmgKQEAgLTEyNCw5ICsxMjQsOSBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgdm9pZCBmaWxsQXJnTGlzdChFeGVjU3RhdGUqLCBNYXJrZWRBcmd1bWVudEJ1ZmZl
ciYpOwogICAgICAgICB2b2lkIGNvcHlUb1JlZ2lzdGVycyhFeGVjU3RhdGUqLCBSZWdpc3Rlcios
IHVpbnQzMl90KTsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0
ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1Zh
bHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBB
bm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAg
ICAgICAgIAogICAgICAgICBpbmxpbmUgdm9pZCBtYXJrQ2hpbGRyZW5EaXJlY3QoTWFya1N0YWNr
JiBtYXJrU3RhY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNCeXRlQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJy
YXkuY3BwCmluZGV4IGFlNzM1ZGMzZDRkZmFiNjEyZWM3YmJmNTg1NjUyYTc5MTZjNmM3OGQuLmZi
YWVhMWRmNmFhMmNlZjgwZDY3ZDQxMWRlMjQ5OWU1Y2Y1ZTFjNDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKQEAgLTUwLDkgKzUwLDkgQEAgSlNC
eXRlQXJyYXk6On5KU0J5dGVBcnJheSgpCiAjZW5kaWYKIAogCi1QYXNzUmVmUHRyPFN0cnVjdHVy
ZT4gSlNCeXRlQXJyYXk6OmNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3Qg
SlNDOjpDbGFzc0luZm8qIGNsYXNzSW5mbykKK1Bhc3NSZWZQdHI8U3RydWN0dXJlPiBKU0J5dGVB
cnJheTo6Y3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBw
cm90b3R5cGUsIGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiBjbGFzc0luZm8pCiB7Ci0gICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsIGNsYXNzSW5mbyk7CisgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsIGNsYXNzSW5mbyk7CiB9CiAK
IGJvb2wgSlNCeXRlQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKaW5kZXggNmU5MTU5NGJlZTE3
ZDQ2MDg5ZjU0MjQ0ZGMyYmFhMmYzZjYwOGE1NC4uZTY3NDk1ODBiMTI0MzMyY2I4YmE0ZDEwZjRj
NGY1YmY1NGVkNGRkOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNCeXRlQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVB
cnJheS5oCkBAIC03Niw3ICs3Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAKICAg
ICAgICAgSlNCeXRlQXJyYXkoRXhlY1N0YXRlKiwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJl
PiwgV1RGOjpCeXRlQXJyYXkqIHN0b3JhZ2UpOwotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgSlNDOjpD
bGFzc0luZm8qID0gJnNfZGVmYXVsdEluZm8pOworICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmLCBKU1ZhbHVlIHByb3RvdHlw
ZSwgY29uc3QgSlNDOjpDbGFzc0luZm8qID0gJnNfZGVmYXVsdEluZm8pOwogCiAgICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKQEAgLTEwMiw3ICsxMDIsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICBwcml2YXRlOgogICAgICAgICBlbnVtIFZQdHJTdGVhbGluZ0hh
Y2tUeXBlIHsgVlB0clN0ZWFsaW5nSGFjayB9OwogICAgICAgICBKU0J5dGVBcnJheShWUHRyU3Rl
YWxpbmdIYWNrVHlwZSkKLSAgICAgICAgICAgIDogSlNOb25GaW5hbE9iamVjdChjcmVhdGVTdHJ1
Y3R1cmUoanNOdWxsKCkpKQorICAgICAgICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KFN0cnVjdHVy
ZTo6Y3JlYXRlKFN0cnVjdHVyZTo6VlB0clN0ZWFsaW5nSGFjaywgJnNfaW5mbykpCiAgICAgICAg
IHsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NlbGwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCmluZGV4
IDgyMDI5NzIxZmZhNmRlNGI5YzQ2MjE4NDkxZGU0NTQ4YTk0ZWJlZDUuLmE3OTVhNWNmNjU3NTdj
MjIyN2IyN2VhNGJjYjk5ODc1ODU2Y2I3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQ2VsbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbC5oCkBAIC03Miw5ICs3Miw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0
dWFsIH5KU0NlbGwoKTsKIAogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBjcmVhdGVEdW1teVN0cnVjdHVyZSgpCisgICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN0cnVjdHVyZT4gY3JlYXRlRHVtbXlTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoanNO
dWxsKCksIFR5cGVJbmZvKFVuc3BlY2lmaWVkVHlwZSksIEFub255bW91c1Nsb3RDb3VudCwgMCk7
CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwganNOdWxs
KCksIFR5cGVJbmZvKFVuc3BlY2lmaWVkVHlwZSksIEFub255bW91c1Nsb3RDb3VudCwgMCk7CiAg
ICAgICAgIH0KIAogICAgICAgICAvLyBRdWVyeWluZyB0aGUgdHlwZS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAppbmRleCA2YmMzZTgzZDEwMzA2YjhiYjRmY2Yw
YTQ1ZTBmZGE3ZGRiZTFjNDBiLi41MDViOWRlMjcyYjVkNGQ1Y2FkYjAwYWIxMGM0YmVmOWZiM2I2
MjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9u
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCkBAIC03
Myw5ICs3Myw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBKU19FWFBPUlRE
QVRBIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpIAorICAgICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKSAKICAgICAgICAgeyAKLSAgICAgICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCisgICAgICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7IAogICAgICAgICB9CiAKICAgICAgICAgTmF0aXZlRnVuY3Rpb24gbmF0aXZlRnVuY3Rp
b24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
RGF0YS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3Bw
CmluZGV4IDhkOGY3ZTNmYWM5NTgwYTI0MTkyZWVkZjQzMDg1OWM0MzE2MjNlYWEuLjJhNTlmOTE3
NDkxNzJmOGJhYTliYjc0MGNkZTMwYzg5YTk5YTNlM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcApAQCAtMTA4LDggKzEwOCw4IEBAIHZvaWQg
SlNHbG9iYWxEYXRhOjpzdG9yZVZQdHJzKCkKIAogICAgIENPTVBJTEVfQVNTRVJUKHNpemVvZihK
U0Z1bmN0aW9uKSA8PSBzaXplb2Yoc3RvcmFnZSksIHNpemVvZl9KU0Z1bmN0aW9uX211c3RfYmVf
bGVzc190aGFuX3N0b3JhZ2UpOwogICAgIGNoYXIgZXhlY3V0YWJsZVN0b3JhZ2Vbc2l6ZW9mKFZQ
dHJIYWNrRXhlY3V0YWJsZSldOwotICAgIFZQdHJIYWNrRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9
IG5ldyAoZXhlY3V0YWJsZVN0b3JhZ2UpIFZQdHJIYWNrRXhlY3V0YWJsZShWUHRySGFja0V4ZWN1
dGFibGU6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSkpOwotICAgIEpTQ2VsbCoganNGdW5jdGlv
biA9IG5ldyAoc3RvcmFnZSkgSlNGdW5jdGlvbihKU0Z1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUo
anNOdWxsKCkpLCBleGVjdXRhYmxlKTsKKyAgICBWUHRySGFja0V4ZWN1dGFibGUqIGV4ZWN1dGFi
bGUgPSBuZXcgKGV4ZWN1dGFibGVTdG9yYWdlKSBWUHRySGFja0V4ZWN1dGFibGUoU3RydWN0dXJl
OjpjcmVhdGUoU3RydWN0dXJlOjpWUHRyU3RlYWxpbmdIYWNrLCAwKSk7CisgICAgSlNDZWxsKiBq
c0Z1bmN0aW9uID0gbmV3IChzdG9yYWdlKSBKU0Z1bmN0aW9uKFN0cnVjdHVyZTo6Y3JlYXRlKFN0
cnVjdHVyZTo6VlB0clN0ZWFsaW5nSGFjaywgJkpTRnVuY3Rpb246OnNfaW5mbyksIGV4ZWN1dGFi
bGUpOwogICAgIEpTR2xvYmFsRGF0YTo6anNGdW5jdGlvblZQdHIgPSBqc0Z1bmN0aW9uLT52cHRy
KCk7CiAgICAganNGdW5jdGlvbi0+fkpTQ2VsbCgpOwogfQpAQCAtMTI2LDIyICsxMjYsMjIgQEAg
SlNHbG9iYWxEYXRhOjpKU0dsb2JhbERhdGEoR2xvYmFsRGF0YVR5cGUgZ2xvYmFsRGF0YVR5cGUs
IFRocmVhZFN0YWNrVHlwZSB0aHJlYWQKICAgICAsIHJlZ0V4cFRhYmxlKGZhc3ROZXc8SGFzaFRh
YmxlPihKU0M6OnJlZ0V4cFRhYmxlKSkKICAgICAsIHJlZ0V4cENvbnN0cnVjdG9yVGFibGUoZmFz
dE5ldzxIYXNoVGFibGU+KEpTQzo6cmVnRXhwQ29uc3RydWN0b3JUYWJsZSkpCiAgICAgLCBzdHJp
bmdUYWJsZShmYXN0TmV3PEhhc2hUYWJsZT4oSlNDOjpzdHJpbmdUYWJsZSkpCi0gICAgLCBhY3Rp
dmF0aW9uU3RydWN0dXJlKEpTQWN0aXZhdGlvbjo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkK
LSAgICAsIGludGVycnVwdGVkRXhlY3V0aW9uRXJyb3JTdHJ1Y3R1cmUoSlNOb25GaW5hbE9iamVj
dDo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKLSAgICAsIHRlcm1pbmF0ZWRFeGVjdXRpb25F
cnJvclN0cnVjdHVyZShKU05vbkZpbmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkp
KQotICAgICwgc3RhdGljU2NvcGVTdHJ1Y3R1cmUoSlNTdGF0aWNTY29wZU9iamVjdDo6Y3JlYXRl
U3RydWN0dXJlKGpzTnVsbCgpKSkKLSAgICAsIHN0cmljdEV2YWxBY3RpdmF0aW9uU3RydWN0dXJl
KFN0cmljdEV2YWxBY3RpdmF0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKQotICAgICwg
c3RyaW5nU3RydWN0dXJlKEpTU3RyaW5nOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKQotICAg
ICwgbm90QW5PYmplY3RTdHJ1Y3R1cmUoSlNOb3RBbk9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKGpz
TnVsbCgpKSkKLSAgICAsIHByb3BlcnR5TmFtZUl0ZXJhdG9yU3RydWN0dXJlKEpTUHJvcGVydHlO
YW1lSXRlcmF0b3I6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSkpCi0gICAgLCBnZXR0ZXJTZXR0
ZXJTdHJ1Y3R1cmUoR2V0dGVyU2V0dGVyOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKQotICAg
ICwgYXBpV3JhcHBlclN0cnVjdHVyZShKU0FQSVZhbHVlV3JhcHBlcjo6Y3JlYXRlU3RydWN0dXJl
KGpzTnVsbCgpKSkKLSAgICAsIHNjb3BlQ2hhaW5Ob2RlU3RydWN0dXJlKFNjb3BlQ2hhaW5Ob2Rl
OjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKQotICAgICwgZXhlY3V0YWJsZVN0cnVjdHVyZShF
eGVjdXRhYmxlQmFzZTo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKLSAgICAsIGV2YWxFeGVj
dXRhYmxlU3RydWN0dXJlKEV2YWxFeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkp
KQotICAgICwgcHJvZ3JhbUV4ZWN1dGFibGVTdHJ1Y3R1cmUoUHJvZ3JhbUV4ZWN1dGFibGU6OmNy
ZWF0ZVN0cnVjdHVyZShqc051bGwoKSkpCi0gICAgLCBmdW5jdGlvbkV4ZWN1dGFibGVTdHJ1Y3R1
cmUoRnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKQotICAgICwg
ZHVtbXlNYXJrYWJsZUNlbGxTdHJ1Y3R1cmUoSlNDZWxsOjpjcmVhdGVEdW1teVN0cnVjdHVyZSgp
KQorICAgICwgYWN0aXZhdGlvblN0cnVjdHVyZShKU0FjdGl2YXRpb246OmNyZWF0ZVN0cnVjdHVy
ZSgqdGhpcywganNOdWxsKCkpKQorICAgICwgaW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvclN0cnVj
dHVyZShKU05vbkZpbmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIGpzTnVsbCgpKSkK
KyAgICAsIHRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvclN0cnVjdHVyZShKU05vbkZpbmFsT2JqZWN0
OjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIGpzTnVsbCgpKSkKKyAgICAsIHN0YXRpY1Njb3BlU3Ry
dWN0dXJlKEpTU3RhdGljU2NvcGVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywganNOdWxs
KCkpKQorICAgICwgc3RyaWN0RXZhbEFjdGl2YXRpb25TdHJ1Y3R1cmUoU3RyaWN0RXZhbEFjdGl2
YXRpb246OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywganNOdWxsKCkpKQorICAgICwgc3RyaW5nU3Ry
dWN0dXJlKEpTU3RyaW5nOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIGpzTnVsbCgpKSkKKyAgICAs
IG5vdEFuT2JqZWN0U3RydWN0dXJlKEpTTm90QW5PYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSgqdGhp
cywganNOdWxsKCkpKQorICAgICwgcHJvcGVydHlOYW1lSXRlcmF0b3JTdHJ1Y3R1cmUoSlNQcm9w
ZXJ0eU5hbWVJdGVyYXRvcjo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCBqc051bGwoKSkpCisgICAg
LCBnZXR0ZXJTZXR0ZXJTdHJ1Y3R1cmUoR2V0dGVyU2V0dGVyOjpjcmVhdGVTdHJ1Y3R1cmUoKnRo
aXMsIGpzTnVsbCgpKSkKKyAgICAsIGFwaVdyYXBwZXJTdHJ1Y3R1cmUoSlNBUElWYWx1ZVdyYXBw
ZXI6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywganNOdWxsKCkpKQorICAgICwgc2NvcGVDaGFpbk5v
ZGVTdHJ1Y3R1cmUoU2NvcGVDaGFpbk5vZGU6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywganNOdWxs
KCkpKQorICAgICwgZXhlY3V0YWJsZVN0cnVjdHVyZShFeGVjdXRhYmxlQmFzZTo6Y3JlYXRlU3Ry
dWN0dXJlKCp0aGlzLCBqc051bGwoKSkpCisgICAgLCBldmFsRXhlY3V0YWJsZVN0cnVjdHVyZShF
dmFsRXhlY3V0YWJsZTo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCBqc051bGwoKSkpCisgICAgLCBw
cm9ncmFtRXhlY3V0YWJsZVN0cnVjdHVyZShQcm9ncmFtRXhlY3V0YWJsZTo6Y3JlYXRlU3RydWN0
dXJlKCp0aGlzLCBqc051bGwoKSkpCisgICAgLCBmdW5jdGlvbkV4ZWN1dGFibGVTdHJ1Y3R1cmUo
RnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIGpzTnVsbCgpKSkKKyAg
ICAsIGR1bW15TWFya2FibGVDZWxsU3RydWN0dXJlKEpTQ2VsbDo6Y3JlYXRlRHVtbXlTdHJ1Y3R1
cmUoKnRoaXMpKQogICAgICwgaWRlbnRpZmllclRhYmxlKGdsb2JhbERhdGFUeXBlID09IERlZmF1
bHQgPyB3dGZUaHJlYWREYXRhKCkuY3VycmVudElkZW50aWZpZXJUYWJsZSgpIDogY3JlYXRlSWRl
bnRpZmllclRhYmxlKCkpCiAgICAgLCBwcm9wZXJ0eU5hbWVzKG5ldyBDb21tb25JZGVudGlmaWVy
cyh0aGlzKSkKICAgICAsIGVtcHR5TGlzdChuZXcgTWFya2VkQXJndW1lbnRCdWZmZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXgg
OTBiNDE2MDMwNGJhNTU4ZGM4YjVmMzIwYTIwMjZkYzJhNjk5NjAzYy4uYTk2ZGVjMTExNWM3NTIz
NTkyNDg0YWQ3NTNjNjFiYzUyNDhkZTc0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtMTc1LDY0ICsxNzUsNjQgQEAgdm9pZCBK
U0dsb2JhbE9iamVjdDo6cmVzZXQoSlNWYWx1ZSBwcm90b3R5cGUpCiAKICAgICAvLyBQcm90b3R5
cGVzCiAKLSAgICBtX2Z1bmN0aW9uUHJvdG90eXBlLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRo
aXMsIG5ldyAoZXhlYykgRnVuY3Rpb25Qcm90b3R5cGUoZXhlYywgdGhpcywgRnVuY3Rpb25Qcm90
b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSkpKTsgLy8gVGhlIHJlYWwgcHJvdG90eXBl
IHdpbGwgYmUgc2V0IG9uY2UgT2JqZWN0UHJvdG90eXBlIGlzIGNyZWF0ZWQuCi0gICAgbV9mdW5j
dGlvblN0cnVjdHVyZSA9IEpTRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZShtX2Z1bmN0aW9uUHJv
dG90eXBlLmdldCgpKTsKLSAgICBtX2ludGVybmFsRnVuY3Rpb25TdHJ1Y3R1cmUgPSBJbnRlcm5h
bEZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUobV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSk7Cisg
ICAgbV9mdW5jdGlvblByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcg
KGV4ZWMpIEZ1bmN0aW9uUHJvdG90eXBlKGV4ZWMsIHRoaXMsIEZ1bmN0aW9uUHJvdG90eXBlOjpj
cmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBqc051bGwoKSkpKTsgLy8gVGhlIHJl
YWwgcHJvdG90eXBlIHdpbGwgYmUgc2V0IG9uY2UgT2JqZWN0UHJvdG90eXBlIGlzIGNyZWF0ZWQu
CisgICAgbV9mdW5jdGlvblN0cnVjdHVyZSA9IEpTRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZShl
eGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpOworICAgIG1faW50
ZXJuYWxGdW5jdGlvblN0cnVjdHVyZSA9IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVy
ZShleGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpOwogICAgIEpT
RnVuY3Rpb24qIGNhbGxGdW5jdGlvbiA9IDA7CiAgICAgSlNGdW5jdGlvbiogYXBwbHlGdW5jdGlv
biA9IDA7CiAgICAgbV9mdW5jdGlvblByb3RvdHlwZS0+YWRkRnVuY3Rpb25Qcm9wZXJ0aWVzKGV4
ZWMsIHRoaXMsIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksICZjYWxsRnVuY3Rpb24sICZhcHBs
eUZ1bmN0aW9uKTsKICAgICBtX2NhbGxGdW5jdGlvbi5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0
aGlzLCBjYWxsRnVuY3Rpb24pOwogICAgIG1fYXBwbHlGdW5jdGlvbi5zZXQoZXhlYy0+Z2xvYmFs
RGF0YSgpLCB0aGlzLCBhcHBseUZ1bmN0aW9uKTsKLSAgICBtX29iamVjdFByb3RvdHlwZS5zZXQo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIE9iamVjdFByb3RvdHlwZShleGVj
LCB0aGlzLCBPYmplY3RQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSksIG1fZnVu
Y3Rpb25TdHJ1Y3R1cmUuZ2V0KCkpKTsKKyAgICBtX29iamVjdFByb3RvdHlwZS5zZXQoZXhlYy0+
Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIE9iamVjdFByb3RvdHlwZShleGVjLCB0aGlz
LCBPYmplY3RQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIGpz
TnVsbCgpKSwgbV9mdW5jdGlvblN0cnVjdHVyZS5nZXQoKSkpOwogICAgIG1fZnVuY3Rpb25Qcm90
b3R5cGUtPnN0cnVjdHVyZSgpLT5zZXRQcm90b3R5cGVXaXRob3V0VHJhbnNpdGlvbihtX29iamVj
dFByb3RvdHlwZS5nZXQoKSk7CiAKLSAgICBtX2VtcHR5T2JqZWN0U3RydWN0dXJlID0gbV9vYmpl
Y3RQcm90b3R5cGUtPmluaGVyaXRvcklEKCk7CisgICAgbV9lbXB0eU9iamVjdFN0cnVjdHVyZSA9
IG1fb2JqZWN0UHJvdG90eXBlLT5pbmhlcml0b3JJRChleGVjLT5nbG9iYWxEYXRhKCkpOwogCi0g
ICAgbV9jYWxsYmFja0Z1bmN0aW9uU3RydWN0dXJlID0gSlNDYWxsYmFja0Z1bmN0aW9uOjpjcmVh
dGVTdHJ1Y3R1cmUobV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSk7Ci0gICAgbV9hcmd1bWVudHNT
dHJ1Y3R1cmUgPSBBcmd1bWVudHM6OmNyZWF0ZVN0cnVjdHVyZShtX29iamVjdFByb3RvdHlwZS5n
ZXQoKSk7Ci0gICAgbV9jYWxsYmFja0NvbnN0cnVjdG9yU3RydWN0dXJlID0gSlNDYWxsYmFja0Nv
bnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUobV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpOwotICAg
IG1fY2FsbGJhY2tPYmplY3RTdHJ1Y3R1cmUgPSBKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdD46OmNyZWF0ZVN0cnVjdHVyZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSk7
CisgICAgbV9jYWxsYmFja0Z1bmN0aW9uU3RydWN0dXJlID0gSlNDYWxsYmFja0Z1bmN0aW9uOjpj
cmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdl
dCgpKTsKKyAgICBtX2FyZ3VtZW50c1N0cnVjdHVyZSA9IEFyZ3VtZW50czo6Y3JlYXRlU3RydWN0
dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpOworICAgIG1f
Y2FsbGJhY2tDb25zdHJ1Y3RvclN0cnVjdHVyZSA9IEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6Y3Jl
YXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkp
OworICAgIG1fY2FsbGJhY2tPYmplY3RTdHJ1Y3R1cmUgPSBKU0NhbGxiYWNrT2JqZWN0PEpTT2Jq
ZWN0V2l0aEdsb2JhbE9iamVjdD46OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCks
IG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKTsKIAotICAgIG1fYXJyYXlQcm90b3R5cGUuc2V0KGV4
ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBBcnJheVByb3RvdHlwZSh0aGlzLCBB
cnJheVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkp
OwotICAgIG1fYXJyYXlTdHJ1Y3R1cmUgPSBKU0FycmF5OjpjcmVhdGVTdHJ1Y3R1cmUobV9hcnJh
eVByb3RvdHlwZS5nZXQoKSk7Ci0gICAgbV9yZWdFeHBNYXRjaGVzQXJyYXlTdHJ1Y3R1cmUgPSBS
ZWdFeHBNYXRjaGVzQXJyYXk6OmNyZWF0ZVN0cnVjdHVyZShtX2FycmF5UHJvdG90eXBlLmdldCgp
KTsKKyAgICBtX2FycmF5UHJvdG90eXBlLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5l
dyAoZXhlYykgQXJyYXlQcm90b3R5cGUodGhpcywgQXJyYXlQcm90b3R5cGU6OmNyZWF0ZVN0cnVj
dHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkpOworICAg
IG1fYXJyYXlTdHJ1Y3R1cmUgPSBKU0FycmF5OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFs
RGF0YSgpLCBtX2FycmF5UHJvdG90eXBlLmdldCgpKTsKKyAgICBtX3JlZ0V4cE1hdGNoZXNBcnJh
eVN0cnVjdHVyZSA9IFJlZ0V4cE1hdGNoZXNBcnJheTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmds
b2JhbERhdGEoKSwgbV9hcnJheVByb3RvdHlwZS5nZXQoKSk7CiAKLSAgICBtX3N0cmluZ1Byb3Rv
dHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIFN0cmluZ1Byb3Rv
dHlwZShleGVjLCB0aGlzLCBTdHJpbmdQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShtX29iamVj
dFByb3RvdHlwZS5nZXQoKSkpKTsKLSAgICBtX3N0cmluZ09iamVjdFN0cnVjdHVyZSA9IFN0cmlu
Z09iamVjdDo6Y3JlYXRlU3RydWN0dXJlKG1fc3RyaW5nUHJvdG90eXBlLmdldCgpKTsKKyAgICBt
X3N0cmluZ1Byb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMp
IFN0cmluZ1Byb3RvdHlwZShleGVjLCB0aGlzLCBTdHJpbmdQcm90b3R5cGU6OmNyZWF0ZVN0cnVj
dHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkpOworICAg
IG1fc3RyaW5nT2JqZWN0U3RydWN0dXJlID0gU3RyaW5nT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX3N0cmluZ1Byb3RvdHlwZS5nZXQoKSk7CiAKLSAgICBtX2Jv
b2xlYW5Qcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBC
b29sZWFuUHJvdG90eXBlKGV4ZWMsIHRoaXMsIEJvb2xlYW5Qcm90b3R5cGU6OmNyZWF0ZVN0cnVj
dHVyZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSksIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCkp
KTsKLSAgICBtX2Jvb2xlYW5PYmplY3RTdHJ1Y3R1cmUgPSBCb29sZWFuT2JqZWN0OjpjcmVhdGVT
dHJ1Y3R1cmUobV9ib29sZWFuUHJvdG90eXBlLmdldCgpKTsKKyAgICBtX2Jvb2xlYW5Qcm90b3R5
cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBCb29sZWFuUHJvdG90
eXBlKGV4ZWMsIHRoaXMsIEJvb2xlYW5Qcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5n
bG9iYWxEYXRhKCksIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSwgbV9mdW5jdGlvblN0cnVjdHVy
ZS5nZXQoKSkpOworICAgIG1fYm9vbGVhbk9iamVjdFN0cnVjdHVyZSA9IEJvb2xlYW5PYmplY3Q6
OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fYm9vbGVhblByb3RvdHlwZS5n
ZXQoKSk7CiAKLSAgICBtX251bWJlclByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0
aGlzLCBuZXcgKGV4ZWMpIE51bWJlclByb3RvdHlwZShleGVjLCB0aGlzLCBOdW1iZXJQcm90b3R5
cGU6OmNyZWF0ZVN0cnVjdHVyZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSksIG1fZnVuY3Rpb25T
dHJ1Y3R1cmUuZ2V0KCkpKTsKLSAgICBtX251bWJlck9iamVjdFN0cnVjdHVyZSA9IE51bWJlck9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKG1fbnVtYmVyUHJvdG90eXBlLmdldCgpKTsKKyAgICBtX251
bWJlclByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIE51
bWJlclByb3RvdHlwZShleGVjLCB0aGlzLCBOdW1iZXJQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVy
ZShleGVjLT5nbG9iYWxEYXRhKCksIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSwgbV9mdW5jdGlv
blN0cnVjdHVyZS5nZXQoKSkpOworICAgIG1fbnVtYmVyT2JqZWN0U3RydWN0dXJlID0gTnVtYmVy
T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX251bWJlclByb3Rv
dHlwZS5nZXQoKSk7CiAKLSAgICBtX2RhdGVQcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEo
KSwgdGhpcywgbmV3IChleGVjKSBEYXRlUHJvdG90eXBlKGV4ZWMsIHRoaXMsIERhdGVQcm90b3R5
cGU6OmNyZWF0ZVN0cnVjdHVyZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpKTsKLSAgICBtX2Rh
dGVTdHJ1Y3R1cmUgPSBEYXRlSW5zdGFuY2U6OmNyZWF0ZVN0cnVjdHVyZShtX2RhdGVQcm90b3R5
cGUuZ2V0KCkpOworICAgIG1fZGF0ZVByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0
aGlzLCBuZXcgKGV4ZWMpIERhdGVQcm90b3R5cGUoZXhlYywgdGhpcywgRGF0ZVByb3RvdHlwZTo6
Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9vYmplY3RQcm90b3R5cGUuZ2V0
KCkpKSk7CisgICAgbV9kYXRlU3RydWN0dXJlID0gRGF0ZUluc3RhbmNlOjpjcmVhdGVTdHJ1Y3R1
cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX2RhdGVQcm90b3R5cGUuZ2V0KCkpOwogCi0gICAgbV9y
ZWdFeHBQcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBS
ZWdFeHBQcm90b3R5cGUoZXhlYywgdGhpcywgUmVnRXhwUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1
cmUobV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpLCBtX2Z1bmN0aW9uU3RydWN0dXJlLmdldCgpKSk7
Ci0gICAgbV9yZWdFeHBTdHJ1Y3R1cmUgPSBSZWdFeHBPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSht
X3JlZ0V4cFByb3RvdHlwZS5nZXQoKSk7CisgICAgbV9yZWdFeHBQcm90b3R5cGUuc2V0KGV4ZWMt
Pmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBSZWdFeHBQcm90b3R5cGUoZXhlYywgdGhp
cywgUmVnRXhwUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBt
X29iamVjdFByb3RvdHlwZS5nZXQoKSksIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCkpKTsKKyAg
ICBtX3JlZ0V4cFN0cnVjdHVyZSA9IFJlZ0V4cE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMt
Pmdsb2JhbERhdGEoKSwgbV9yZWdFeHBQcm90b3R5cGUuZ2V0KCkpOwogCiAgICAgbV9tZXRob2RD
YWxsRHVtbXkuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgY29uc3RydWN0RW1wdHlPYmpl
Y3QoZXhlYykpOwogCi0gICAgRXJyb3JQcm90b3R5cGUqIGVycm9yUHJvdG90eXBlID0gbmV3IChl
eGVjKSBFcnJvclByb3RvdHlwZShleGVjLCB0aGlzLCBFcnJvclByb3RvdHlwZTo6Y3JlYXRlU3Ry
dWN0dXJlKG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSwgbV9mdW5jdGlvblN0cnVjdHVyZS5nZXQo
KSk7Ci0gICAgbV9lcnJvclN0cnVjdHVyZSA9IEVycm9ySW5zdGFuY2U6OmNyZWF0ZVN0cnVjdHVy
ZShlcnJvclByb3RvdHlwZSk7CisgICAgRXJyb3JQcm90b3R5cGUqIGVycm9yUHJvdG90eXBlID0g
bmV3IChleGVjKSBFcnJvclByb3RvdHlwZShleGVjLCB0aGlzLCBFcnJvclByb3RvdHlwZTo6Y3Jl
YXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkp
LCBtX2Z1bmN0aW9uU3RydWN0dXJlLmdldCgpKTsKKyAgICBtX2Vycm9yU3RydWN0dXJlID0gRXJy
b3JJbnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXJyb3JQcm90
b3R5cGUpOwogCiAgICAgLy8gQ29uc3RydWN0b3JzCiAKLSAgICBKU0NlbGwqIG9iamVjdENvbnN0
cnVjdG9yID0gbmV3IChleGVjKSBPYmplY3RDb25zdHJ1Y3RvcihleGVjLCB0aGlzLCBPYmplY3RD
b25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBt
X29iamVjdFByb3RvdHlwZS5nZXQoKSk7Ci0gICAgSlNDZWxsKiBmdW5jdGlvbkNvbnN0cnVjdG9y
ID0gbmV3IChleGVjKSBGdW5jdGlvbkNvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIEZ1bmN0aW9uQ29u
c3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9m
dW5jdGlvblByb3RvdHlwZS5nZXQoKSk7Ci0gICAgSlNDZWxsKiBhcnJheUNvbnN0cnVjdG9yID0g
bmV3IChleGVjKSBBcnJheUNvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIEFycmF5Q29uc3RydWN0b3I6
OmNyZWF0ZVN0cnVjdHVyZShtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9hcnJheVByb3Rv
dHlwZS5nZXQoKSwgbV9mdW5jdGlvblN0cnVjdHVyZS5nZXQoKSk7Ci0gICAgSlNDZWxsKiBzdHJp
bmdDb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgU3RyaW5nQ29uc3RydWN0b3IoZXhlYywgdGhpcywg
U3RyaW5nQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShtX2Z1bmN0aW9uUHJvdG90eXBlLmdl
dCgpKSwgbV9mdW5jdGlvblN0cnVjdHVyZS5nZXQoKSwgbV9zdHJpbmdQcm90b3R5cGUuZ2V0KCkp
OwotICAgIEpTQ2VsbCogYm9vbGVhbkNvbnN0cnVjdG9yID0gbmV3IChleGVjKSBCb29sZWFuQ29u
c3RydWN0b3IoZXhlYywgdGhpcywgQm9vbGVhbkNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUo
bV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIG1fYm9vbGVhblByb3RvdHlwZS5nZXQoKSk7Ci0g
ICAgSlNDZWxsKiBudW1iZXJDb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgTnVtYmVyQ29uc3RydWN0
b3IoZXhlYywgdGhpcywgTnVtYmVyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShtX2Z1bmN0
aW9uUHJvdG90eXBlLmdldCgpKSwgbV9udW1iZXJQcm90b3R5cGUuZ2V0KCkpOwotICAgIEpTQ2Vs
bCogZGF0ZUNvbnN0cnVjdG9yID0gbmV3IChleGVjKSBEYXRlQ29uc3RydWN0b3IoZXhlYywgdGhp
cywgRGF0ZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUobV9mdW5jdGlvblByb3RvdHlwZS5n
ZXQoKSksIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksIG1fZGF0ZVByb3RvdHlwZS5nZXQoKSk7
CisgICAgSlNDZWxsKiBvYmplY3RDb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgT2JqZWN0Q29uc3Ry
dWN0b3IoZXhlYywgdGhpcywgT2JqZWN0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVj
LT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBtX29iamVjdFByb3Rv
dHlwZS5nZXQoKSk7CisgICAgSlNDZWxsKiBmdW5jdGlvbkNvbnN0cnVjdG9yID0gbmV3IChleGVj
KSBGdW5jdGlvbkNvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIEZ1bmN0aW9uQ29uc3RydWN0b3I6OmNy
ZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0
KCkpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKTsKKyAgICBKU0NlbGwqIGFycmF5Q29uc3Ry
dWN0b3IgPSBuZXcgKGV4ZWMpIEFycmF5Q29uc3RydWN0b3IoZXhlYywgdGhpcywgQXJyYXlDb25z
dHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9mdW5jdGlvblBy
b3RvdHlwZS5nZXQoKSksIG1fYXJyYXlQcm90b3R5cGUuZ2V0KCksIG1fZnVuY3Rpb25TdHJ1Y3R1
cmUuZ2V0KCkpOworICAgIEpTQ2VsbCogc3RyaW5nQ29uc3RydWN0b3IgPSBuZXcgKGV4ZWMpIFN0
cmluZ0NvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIFN0cmluZ0NvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1
Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9m
dW5jdGlvblN0cnVjdHVyZS5nZXQoKSwgbV9zdHJpbmdQcm90b3R5cGUuZ2V0KCkpOworICAgIEpT
Q2VsbCogYm9vbGVhbkNvbnN0cnVjdG9yID0gbmV3IChleGVjKSBCb29sZWFuQ29uc3RydWN0b3Io
ZXhlYywgdGhpcywgQm9vbGVhbkNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9ib29sZWFuUHJvdG90eXBl
LmdldCgpKTsKKyAgICBKU0NlbGwqIG51bWJlckNvbnN0cnVjdG9yID0gbmV3IChleGVjKSBOdW1i
ZXJDb25zdHJ1Y3RvcihleGVjLCB0aGlzLCBOdW1iZXJDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIG1fbnVt
YmVyUHJvdG90eXBlLmdldCgpKTsKKyAgICBKU0NlbGwqIGRhdGVDb25zdHJ1Y3RvciA9IG5ldyAo
ZXhlYykgRGF0ZUNvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIERhdGVDb25zdHJ1Y3Rvcjo6Y3JlYXRl
U3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSks
IG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksIG1fZGF0ZVByb3RvdHlwZS5nZXQoKSk7CiAKLSAg
ICBtX3JlZ0V4cENvbnN0cnVjdG9yLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5ldyAo
ZXhlYykgUmVnRXhwQ29uc3RydWN0b3IoZXhlYywgdGhpcywgUmVnRXhwQ29uc3RydWN0b3I6OmNy
ZWF0ZVN0cnVjdHVyZShtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9yZWdFeHBQcm90b3R5
cGUuZ2V0KCkpKTsKKyAgICBtX3JlZ0V4cENvbnN0cnVjdG9yLnNldChleGVjLT5nbG9iYWxEYXRh
KCksIHRoaXMsIG5ldyAoZXhlYykgUmVnRXhwQ29uc3RydWN0b3IoZXhlYywgdGhpcywgUmVnRXhw
Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rp
b25Qcm90b3R5cGUuZ2V0KCkpLCBtX3JlZ0V4cFByb3RvdHlwZS5nZXQoKSkpOwogCi0gICAgbV9l
cnJvckNvbnN0cnVjdG9yLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5ldyAoZXhlYykg
RXJyb3JDb25zdHJ1Y3RvcihleGVjLCB0aGlzLCBFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1
Y3R1cmUobV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIGVycm9yUHJvdG90eXBlKSk7CisgICAg
bV9lcnJvckNvbnN0cnVjdG9yLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5ldyAoZXhl
YykgRXJyb3JDb25zdHJ1Y3RvcihleGVjLCB0aGlzLCBFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGVT
dHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwg
ZXJyb3JQcm90b3R5cGUpKTsKIAotICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IG5hdGl2ZUVycm9yUHJv
dG90eXBlU3RydWN0dXJlID0gTmF0aXZlRXJyb3JQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShl
cnJvclByb3RvdHlwZSk7Ci0gICAgUmVmUHRyPFN0cnVjdHVyZT4gbmF0aXZlRXJyb3JTdHJ1Y3R1
cmUgPSBOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUobV9mdW5jdGlvblBy
b3RvdHlwZS5nZXQoKSk7CisgICAgUmVmUHRyPFN0cnVjdHVyZT4gbmF0aXZlRXJyb3JQcm90b3R5
cGVTdHJ1Y3R1cmUgPSBOYXRpdmVFcnJvclByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMt
Pmdsb2JhbERhdGEoKSwgZXJyb3JQcm90b3R5cGUpOworICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IG5h
dGl2ZUVycm9yU3RydWN0dXJlID0gTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSk7CiAgICAg
bV9ldmFsRXJyb3JDb25zdHJ1Y3Rvci5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcg
KGV4ZWMpIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoZXhlYywgdGhpcywgbmF0aXZlRXJyb3JTdHJ1
Y3R1cmUsIG5hdGl2ZUVycm9yUHJvdG90eXBlU3RydWN0dXJlLCAiRXZhbEVycm9yIikpOwogICAg
IG1fcmFuZ2VFcnJvckNvbnN0cnVjdG9yLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5l
dyAoZXhlYykgTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcihleGVjLCB0aGlzLCBuYXRpdmVFcnJvclN0
cnVjdHVyZSwgbmF0aXZlRXJyb3JQcm90b3R5cGVTdHJ1Y3R1cmUsICJSYW5nZUVycm9yIikpOwog
ICAgIG1fcmVmZXJlbmNlRXJyb3JDb25zdHJ1Y3Rvci5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0
aGlzLCBuZXcgKGV4ZWMpIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoZXhlYywgdGhpcywgbmF0aXZl
RXJyb3JTdHJ1Y3R1cmUsIG5hdGl2ZUVycm9yUHJvdG90eXBlU3RydWN0dXJlLCAiUmVmZXJlbmNl
RXJyb3IiKSk7CkBAIC0yNzIsMTEgKzI3MiwxMSBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0OjpyZXNl
dChKU1ZhbHVlIHByb3RvdHlwZSkKIAogICAgIC8vIFNldCBnbG9iYWwgdmFsdWVzLgogICAgIEds
b2JhbFByb3BlcnR5SW5mbyBzdGF0aWNHbG9iYWxzW10gPSB7Ci0gICAgICAgIEdsb2JhbFByb3Bl
cnR5SW5mbyhJZGVudGlmaWVyKGV4ZWMsICJNYXRoIiksIG5ldyAoZXhlYykgTWF0aE9iamVjdChl
eGVjLCB0aGlzLCBNYXRoT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUobV9vYmplY3RQcm90b3R5cGUu
Z2V0KCkpKSwgRG9udEVudW0gfCBEb250RGVsZXRlKSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvKElkZW50aWZpZXIoZXhlYywgIk1hdGgiKSwgbmV3IChleGVjKSBNYXRoT2JqZWN0KGV4ZWMs
IHRoaXMsIE1hdGhPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1f
b2JqZWN0UHJvdG90eXBlLmdldCgpKSksIERvbnRFbnVtIHwgRG9udERlbGV0ZSksCiAgICAgICAg
IEdsb2JhbFByb3BlcnR5SW5mbyhJZGVudGlmaWVyKGV4ZWMsICJOYU4iKSwganNOYU4oKSwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8oSWRlbnRpZmllcihleGVjLCAiSW5maW5pdHkiKSwganNOdW1iZXIoSW5mKSwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8oSWRl
bnRpZmllcihleGVjLCAidW5kZWZpbmVkIiksIGpzVW5kZWZpbmVkKCksIERvbnRFbnVtIHwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKElkZW50aWZp
ZXIoZXhlYywgIkpTT04iKSwgbmV3IChleGVjKSBKU09OT2JqZWN0KHRoaXMsIEpTT05PYmplY3Q6
OmNyZWF0ZVN0cnVjdHVyZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpLCBEb250RW51bSB8IERv
bnREZWxldGUpCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyhJZGVudGlmaWVyKGV4ZWMsICJK
U09OIiksIG5ldyAoZXhlYykgSlNPTk9iamVjdCh0aGlzLCBKU09OT2JqZWN0OjpjcmVhdGVTdHJ1
Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpLCBEb250
RW51bSB8IERvbnREZWxldGUpCiAgICAgfTsKIAogICAgIGFkZFN0YXRpY0dsb2JhbHMoc3RhdGlj
R2xvYmFscywgV1RGX0FSUkFZX0xFTkdUSChzdGF0aWNHbG9iYWxzKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCBjZGU5OTYwYTg3YjEz
NTQ1ZGQ3MjkzZjFmY2Y2YjEyMjg3NjRkOWE0Li41NmVlYTYzMjI2N2Y0N2VhMmU3NDYxODdmOGIz
YmNmMmY5NDhmNjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmgKQEAgLTExMyw4ICsxMTMsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJs
aWM6CiAgICAgICAgIHZvaWQqIG9wZXJhdG9yIG5ldyhzaXplX3QsIEpTR2xvYmFsRGF0YSopOwog
ICAgICAgICAKLSAgICAgICAgZXhwbGljaXQgSlNHbG9iYWxPYmplY3QoKQotICAgICAgICAgICAg
OiBKU1ZhcmlhYmxlT2JqZWN0KEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxs
KCkpLCAmbV9zeW1ib2xUYWJsZSwgMCkKKyAgICAgICAgZXhwbGljaXQgSlNHbG9iYWxPYmplY3Qo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQorICAgICAgICAgICAgOiBKU1ZhcmlhYmxlT2JqZWN0
KEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwganNOdWxsKCkpLCAm
bV9zeW1ib2xUYWJsZSwgMCkKICAgICAgICAgICAgICwgbV9yZWdpc3RlckFycmF5U2l6ZSgwKQog
ICAgICAgICAgICAgLCBtX2dsb2JhbFNjb3BlQ2hhaW4oKQogICAgICAgICAgICAgLCBtX3dlYWtS
YW5kb20oc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHJhbmRvbU51bWJlcigpICogKHN0ZDo6bnVtZXJp
Y19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSArIDEuMCkpKQpAQCAtMjM4LDkgKzIzOCw5IEBAIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgICAgIEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSgpIGNvbnN0
IHsgcmV0dXJuICptX2dsb2JhbERhdGEuZ2V0KCk7IH0KIAotICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgdm9pZCByZWdpc3RlcldlYWtNYXAoT3BhcXVl
SlNXZWFrT2JqZWN0TWFwKiBtYXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU05vdEFuT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U05vdEFuT2JqZWN0LmgKaW5kZXggN2U3MGE5ODY0NmIzOGUwZWNjZmRlYmIwNzRmZTBiMmJkNjY4
MjQwZS4uYjg4MjAzOTFlZjYxNjVhYjFmZGUwNmMyMDA2ODk1YjU2OWEyYjc5NSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaApAQCAtNDMsOSArNDMs
OSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5
cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJl
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZv
KTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmgKaW5kZXggNTI2NGZkNzk4ZjAxNDIzYjk0
MDg2MmViZmJmOGRhM2IwZmVkMmNjMC4uYTUyYzU0MzhkMDVjOWU2ODM4Yjk5ODBlYmZhYTMzODQz
ODhjZTFlNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9i
amVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaApA
QCAtMzYsOSArMzYsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIEpT
T05PYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9uTnVsbFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBzdHJ1Y3R1cmUpOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVj
dHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAg
ICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmNwcAppbmRleCAyMDljOWVmN2U2OTgwOWI4ZWZhMDJkOTRiYjhmNzVkNWQxZmE5
MDg4Li41ZjVjMDVjNWRlZWVkMzg1NGZkYjExYTkwOTg5NDNlNDNhNGMzMzEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC01NzIsOSArNTcyLDkgQEAg
TkVWRVJfSU5MSU5FIHZvaWQgSlNPYmplY3Q6OmZpbGxHZXR0ZXJQcm9wZXJ0eVNsb3QoUHJvcGVy
dHlTbG90JiBzbG90LCBXcml0ZUJhcnIKICAgICAgICAgc2xvdC5zZXRVbmRlZmluZWQoKTsKIH0K
IAotU3RydWN0dXJlKiBKU09iamVjdDo6Y3JlYXRlSW5oZXJpdG9ySUQoKQorU3RydWN0dXJlKiBK
U09iamVjdDo6Y3JlYXRlSW5oZXJpdG9ySUQoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQogewot
ICAgIG1faW5oZXJpdG9ySUQgPSBjcmVhdGVFbXB0eU9iamVjdFN0cnVjdHVyZSh0aGlzKTsKKyAg
ICBtX2luaGVyaXRvcklEID0gY3JlYXRlRW1wdHlPYmplY3RTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwg
dGhpcyk7CiAgICAgcmV0dXJuIG1faW5oZXJpdG9ySUQuZ2V0KCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IGVlZjM3YjIyYTZlMzM2NWRiY2IxZjNj
ZThmZGViMzMxZjlmYTg0NmMuLjY2YWMyZDZiYTE2MjE3MzYzN2Y3YjM5MjEwZTYzNTA1Njg5MDBm
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtOTIsNyAr
OTIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBzZXRQcm90b3R5cGVXaXRoQ3lj
bGVDaGVjayhKU1ZhbHVlIHByb3RvdHlwZSk7CiAgICAgICAgIAogICAgICAgICB2b2lkIHNldFN0
cnVjdHVyZShOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+KTsKLSAgICAgICAgU3RydWN0dXJl
KiBpbmhlcml0b3JJRCgpOworICAgICAgICBTdHJ1Y3R1cmUqIGluaGVyaXRvcklEKEpTR2xvYmFs
RGF0YSYpOwogCiAgICAgICAgIHZpcnR1YWwgVVN0cmluZyBjbGFzc05hbWUoKSBjb25zdDsKIApA
QCAtMjUwLDkgKzI1MCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgSlNfRVhQ
T1JUREFUQSBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCiAgICAgcHJvdGVjdGVkOgotICAgICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHBy
b3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1
Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1v
dXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gMDsKQEAgLTI5Niw3ICsyOTYsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgYm9vbCBpbmxpbmVHZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKIAogICAg
ICAgICBjb25zdCBIYXNoRW50cnkqIGZpbmRQcm9wZXJ0eUhhc2hFbnRyeShFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpIGNvbnN0OwotICAgICAgICBTdHJ1Y3R1cmUq
IGNyZWF0ZUluaGVyaXRvcklEKCk7CisgICAgICAgIFN0cnVjdHVyZSogY3JlYXRlSW5oZXJpdG9y
SUQoSlNHbG9iYWxEYXRhJik7CiAKICAgICAgICAgUHJvcGVydHlTdG9yYWdlIG1fcHJvcGVydHlT
dG9yYWdlOwogICAgICAgICBSZWZQdHI8U3RydWN0dXJlPiBtX2luaGVyaXRvcklEOwpAQCAtMzIw
LDkgKzMyMCw5IEBAIENPTVBJTEVfQVNTRVJUKChKU0ZpbmFsT2JqZWN0X2lubGluZVN0b3JhZ2VD
YXBhY2l0eSA+PSBKU05vbkZpbmFsT2JqZWN0X2lubGluZVN0CiAgICAgICAgIGZyaWVuZCBjbGFz
cyBKU09iamVjdDsKIAogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsK
ICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpAQCAtMzQ4LDkgKzM0OCw5IEBAIENPTVBJTEVf
QVNTRVJUKChKU0ZpbmFsT2JqZWN0X2lubGluZVN0b3JhZ2VDYXBhY2l0eSA+PSBKU05vbkZpbmFs
T2JqZWN0X2lubGluZVN0CiAgICAgICAgICAgICByZXR1cm4gbmV3IChleGVjKSBKU0ZpbmFsT2Jq
ZWN0KHN0cnVjdHVyZSk7CiAgICAgICAgIH0KIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8o
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8p
OwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgpAQCAtMzc3LDkgKzM3Nyw5IEBAIGlubGluZSBK
U09iamVjdCogY29uc3RydWN0RW1wdHlPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBOb25OdWxsUGFz
c1JlZlB0cjxTdHJ1Y3R1CiAgICAgcmV0dXJuIEpTRmluYWxPYmplY3Q6OmNyZWF0ZShleGVjLCBz
dHJ1Y3R1cmUpOwogfQogCi1pbmxpbmUgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZUVtcHR5
T2JqZWN0U3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQoraW5saW5lIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBjcmVhdGVFbXB0eU9iamVjdFN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTVmFsdWUgcHJvdG90eXBlKQogewotICAgIHJldHVybiBKU0ZpbmFsT2JqZWN0OjpjcmVh
dGVTdHJ1Y3R1cmUocHJvdG90eXBlKTsKKyAgICByZXR1cm4gSlNGaW5hbE9iamVjdDo6Y3JlYXRl
U3RydWN0dXJlKGdsb2JhbERhdGEsIHByb3RvdHlwZSk7CiB9CiAKIGlubGluZSBKU09iamVjdCog
YXNPYmplY3QoSlNDZWxsKiBjZWxsKQpAQCAtNDQyLDExICs0NDIsMTEgQEAgaW5saW5lIHZvaWQg
SlNPYmplY3Q6OnNldFN0cnVjdHVyZShOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVj
dHVyZSkKICAgICBtX3N0cnVjdHVyZSA9IHN0cnVjdHVyZS5sZWFrUmVmKCk7IC8vIH5KU09iamVj
dCBiYWxhbmNlcyB0aGlzIHJlZigpCiB9CiAKLWlubGluZSBTdHJ1Y3R1cmUqIEpTT2JqZWN0Ojpp
bmhlcml0b3JJRCgpCitpbmxpbmUgU3RydWN0dXJlKiBKU09iamVjdDo6aW5oZXJpdG9ySUQoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhKQogewogICAgIGlmIChtX2luaGVyaXRvcklEKQogICAgICAg
ICByZXR1cm4gbV9pbmhlcml0b3JJRC5nZXQoKTsKLSAgICByZXR1cm4gY3JlYXRlSW5oZXJpdG9y
SUQoKTsKKyAgICByZXR1cm4gY3JlYXRlSW5oZXJpdG9ySUQoZ2xvYmFsRGF0YSk7CiB9CiAKIGlu
bGluZSBib29sIFN0cnVjdHVyZTo6aXNVc2luZ0lubGluZVN0b3JhZ2UoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2Jq
ZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxP
YmplY3QuaAppbmRleCBjNWUzMDQ3NWEwYmQ4OGMxZWQzMjU5OTE2ZmIwMmE0ZmVjYWQ2MmIwLi44
MzgwNTE0ZDU3YWNiZjVlOGI1YjBlZjU0MDUzZTgyYzgxYzE3NTM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3Qu
aApAQCAtMzQsOSArMzQsOSBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdDsKIAogY2xhc3MgSlNPYmpl
Y3RXaXRoR2xvYmFsT2JqZWN0IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUg
cHJvdG8pCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgIH0K
IAogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaApp
bmRleCA5MGY0NDllZTIxZTk3ZTI3ODBkNDEyNDlkMzczNTU3YzkzMmE4MTk4Li44YjAwN2RkNzY3
ZjY0NjRiMTQzODE5OWU0ZmE2MTg1ZTRkMzJhZDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oCkBAIC00NSw5ICs0
NSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIEpTUHJv
cGVydHlOYW1lSXRlcmF0b3IqIGNyZWF0ZShFeGVjU3RhdGUqLCBKU09iamVjdCopOwogICAgICAg
ICAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4g
Y3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5
cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90
b3R5cGUsIFR5cGVJbmZvKENvbXBvdW5kVHlwZSwgT3ZlcnJpZGVzTWFya0NoaWxkcmVuKSwgQW5v
bnltb3VzU2xvdENvdW50LCAwKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKENvbXBvdW5kVHlwZSwgT3ZlcnJpZGVz
TWFya0NoaWxkcmVuKSwgQW5vbnltb3VzU2xvdENvdW50LCAwKTsKICAgICAgICAgfQogCiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBpc1Byb3BlcnR5TmFtZUl0ZXJhdG9yKCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0
aWNTY29wZU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNT
Y29wZU9iamVjdC5oCmluZGV4IGIxNDEzYWY2N2JhNGE4MTllYTZiNTdkNjI1ZjRkNDgyZDc5ZGUx
ZWQuLjNlMTliYmMyMzY2YTljMWQ4ZjRhOTRjYmY2MGI3YjQzNzkzZWNhNjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKQEAg
LTQ3LDcgKzQ3LDcgQEAgbmFtZXNwYWNlIEpTQ3sKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7
CiAgICAgICAgIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogCi0gICAgICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8pIHsgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IH0KKyAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxE
YXRhLCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1v
dXNTbG90Q291bnQsICZzX2luZm8pOyB9CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5
U2xvdCB8IE5lZWRzVGhpc0NvbnZlcnNpb24gfCBPdmVycmlkZXNNYXJrQ2hpbGRyZW4gfCBPdmVy
cmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNWYXJpYWJsZU9iamVjdDo6U3RydWN0dXJlRmxhZ3M7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAppbmRleCAyNjc3ZDlhZTlj
ZWFhMzg4ZjdiYWMxNjAyNDVmYWM0NDA2OGE5YjUyLi4xMTAwMmRiMjZmMTJmZDlmMzgyZmQ4N2Nk
ODc4Zjk3ZTNiOWQ1NTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1N0cmluZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5n
LmgKQEAgLTM0OSw3ICszNDksNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBKU1ZhbHVl
IHJlcGxhY2VDaGFyYWN0ZXIoRXhlY1N0YXRlKiwgVUNoYXIsIGNvbnN0IFVTdHJpbmcmIHJlcGxh
Y2VtZW50KTsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0
cnVjdHVyZShKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90bywg
VHlwZUluZm8oU3RyaW5nVHlwZSwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgTmVlZHNU
aGlzQ29udmVyc2lvbiksIEFub255bW91c1Nsb3RDb3VudCwgMCk7IH0KKyAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxE
YXRhLCBwcm90bywgVHlwZUluZm8oU3RyaW5nVHlwZSwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlT
bG90IHwgTmVlZHNUaGlzQ29udmVyc2lvbiksIEFub255bW91c1Nsb3RDb3VudCwgMCk7IH0KIAog
ICAgIHByaXZhdGU6CiAgICAgICAgIGVudW0gVlB0clN0ZWFsaW5nSGFja1R5cGUgeyBWUHRyU3Rl
YWxpbmdIYWNrIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1ZhcmlhYmxlT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Zhcmlh
YmxlT2JqZWN0LmgKaW5kZXggNTc3OWYzN2JhY2NmYTI1YWExOTY4MjM1OWM4OTIwMGIwY2JiY2Ew
NS4uODkxYWRhOGM0M2EzN2FhN2JjMTI2ZTMzMDQ3NTA3MDIwYzNlMzFjOSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaApAQCAtNTgsOSAr
NTgsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4q
IGNvbnN0ICogYWRkcmVzc09mUmVnaXN0ZXJzKCkgY29uc3QgeyByZXR1cm4gJm1fcmVnaXN0ZXJz
OyB9CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1
cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVy
ZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90
b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3Vz
U2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQogICAgICAgICAK
ICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1dyYXBwZXJPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3Jh
cHBlck9iamVjdC5oCmluZGV4IDNmYzBiMTg2ZmU1ODExN2VjYTBlYzBiMmE1NmJhZjY1ZDEyZDlm
M2MuLjYzODMzZTlmMzc0ZWM3Yzc5YWE3YWQ4MjBlOGEwNDEyZmJkYWQzODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oCkBAIC0zNiw5ICsz
Niw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBKU1ZhbHVlIGludGVybmFsVmFsdWUoKSBj
b25zdDsKICAgICAgICAgdm9pZCBzZXRJbnRlcm5hbFZhbHVlKEpTR2xvYmFsRGF0YSYsIEpTVmFs
dWUpOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0
dXJlKEpTVmFsdWUgcHJvdG90eXBlKSAKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHBy
b3RvdHlwZSkgCiAgICAgICAgIHsgCi0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255
bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAg
IHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Wm9tYmllLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1pvbWJpZS5oCmluZGV4
IGU1NzVhYzU1MjE2Y2NlMTQ5N2RlMzY0YTk3MjhiY2ZmYjI3YjRmZDYuLjE3OWZmNTMxMDBmZDNm
ZDIwYWIzYzE3NDczMjVkOWRkMTgwY2I3MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTWm9tYmllLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNab21iaWUuaApAQCAtNjYsOSArNjYsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlTbG90JikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCwgUHJvcGVy
dHlTbG90JikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGZhbHNlOyB9CiAgICAgCi0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBw
cm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1
cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVj
dFR5cGUsIDApLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCAwKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKICAgICBzdGF0
aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L01hdGhPYmplY3QuaAppbmRleCA4NmU3OTUxYTFiZGNhOGQ2NmUzZTU5ZWNkNTUyODQxY2VkZWE0
NWViLi4yNmVhYWUwNDQ5OTI4ZGU1MWE1YzRkZTVlZGZmY2JhMmViZGM1NzEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCkBAIC0zNCw5ICszNCw5IEBAIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwog
Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpT
VmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBl
KQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3Rl
ZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9y
Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJy
b3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNzk0OWRkOTZhNWI3N2MzYzFjNjdmZmU5YjlhOGU1M2E0
YzY5NWYyNC4uZDhmZGE2OWE4NDA3YmQ1MGJlZGYzZTRlZTdhMGFlMzdjMjY4NTk2NiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25z
dHJ1Y3Rvci5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6TmF0
aXZlRXJyb3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KgogCiAg
ICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxl
bmd0aCwganNOdW1iZXIoMSksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsgLy8g
RUNNQSAxNS4xMS43LjUKICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5w
cm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBwcm90b3R5cGUsIERvbnREZWxldGUgfCBSZWFkT25s
eSB8IERvbnRFbnVtKTsKLSAgICBtX2Vycm9yU3RydWN0dXJlID0gRXJyb3JJbnN0YW5jZTo6Y3Jl
YXRlU3RydWN0dXJlKHByb3RvdHlwZSk7CisgICAgbV9lcnJvclN0cnVjdHVyZSA9IEVycm9ySW5z
dGFuY2U6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIHByb3RvdHlwZSk7CiB9
CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhOYXRp
dmVFcnJvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaAppbmRleCBlNDk3
OGNjYTFjYmJiOWQyN2ViMzhkYmMwNDM1NzA3ZGM2YzZhYjkyLi4yM2Y3OThlNDcyOWJlYmU3YTk4
YzYyZDg0ZDNiZDI2YzdjMWI3ODA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oCkBAIC0zNSw5ICszNSw5IEBAIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwog
Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpT
VmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBl
KQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgICAgICBTdHJ1
Y3R1cmUqIGVycm9yU3RydWN0dXJlKCkgeyByZXR1cm4gbV9lcnJvclN0cnVjdHVyZS5nZXQoKTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3Ry
dWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9y
LmgKaW5kZXggYWFmN2MzMjEwMjYzZDM4YTcxNjM0NzgxODRjYjlmYWM0NWI0NzU5My4uYWI0NTA3
ZTU4M2ViMjViMjdhZmYyMzQxOWM0Mjc4ZTFhNzk2MTU4MiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCkBAIC0zNyw5ICszNyw5IEBA
IG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZv
OwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJl
KEpTVmFsdWUgcHJvdG8pIAorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG8pIAog
ICAgICAgICB7IAotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwg
JnNfaW5mbyk7IAorICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91
c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAogICAgICAgICB9CiAKICAgICAgICAgZW51bSB7IE5hTlZh
bHVlLCBOZWdJbmZpbml0eSwgUG9zSW5maW5pdHksIE1heFZhbHVlLCBNaW5WYWx1ZSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuaAppbmRleCBiZGY1NmY3
ZjQ3NTNiNGUxNjQyNTNiMjUzZmIxMmE0YjYyMTVjNDQ5Li4xNTcxZmQ0MmNlNmIwYzMyZTgyZTgx
YWQ2YjAzMTYwYTkxZTdlZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9O
dW1iZXJPYmplY3QuaApAQCAtMzEsOSArMzEsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAg
ICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAotICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKaW5kZXggODk1Zjk4OGY2YzEzOTQ2
NTMxZjI4MjQ4NmJmZDE1ODlkODE0OGIwOC4uYjdiZmMxZDcxN2M3MTc4ZTMzYzI5NmFkN2I0Yjk3
NDAxZWFlNDNkMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmpl
Y3RDb25zdHJ1Y3Rvci5oCkBAIC0zNiw5ICszNiw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAg
ICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAg
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwg
JnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCmluZGV4IDhhOGE1NGFhYTg2
NWI5OWZhM2ExY2RjZmE1NTk4YmE0YzAzYmEyNWYuLjAzYzZiZWEyYmEzODY0NjUzMmRkN2U1MWZh
YWEzZjYxZTJmOTg1MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwQ29uc3RydWN0b3IuaApAQCAtNTksOSArNTksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICBwdWJsaWM6CiAgICAgICAgIFJlZ0V4cENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSosIEpTR2xvYmFs
T2JqZWN0KiwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiwgUmVnRXhwUHJvdG90eXBlKik7
CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4g
Y3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5
cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShn
bG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgICAgIHZp
cnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwT2JqZWN0LmgKaW5kZXggOWYyY2E1YWEyNGNlN2RhZTY1NTkwM2MxMmJhZGFl
MTU2ZTJmYWQ4MS4uZmEyMDI0ZGNkNzVlN2FjNWMyNjhjMTg3N2UwNjk0MTAwNDIxNWI5ZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKQEAgLTU4LDkg
KzU4LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIEpTX0VYUE9SVERBVEEg
Y29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1
Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwog
ICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TY29wZUNoYWluLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TY29wZUNoYWluLmgKaW5kZXggNTVkMTFhZGQyYjFhN2IwMzY4NzEyZDFjMWZhNzk1NGIzNTYy
Mjg1Yy4uY2I3MGEzNDZiOTY3YjUwZjMyNGY5MGU3ZDM0MzE3N2JiMzkyMDE3YiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlQ2hhaW4uaApAQCAtNjQsNyArNjQsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBwcmludCgpOwogI2VuZGlmCiAgICAgICAgIAot
ICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1Zh
bHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90bywgVHlwZUluZm8oQ29t
cG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgMCk7IH0KKyAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCwgMCk7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIG1h
cmtDaGlsZHJlbihNYXJrU3RhY2smKTsKICAgICBwcml2YXRlOgogICAgICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNNYXJrQ2hpbGRyZW47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCmluZGV4IGFjZGVjYjNj
NWVlOGE0MDE3Njk5MGUzODQyMzVhZjEyMWM1MTgzYjAuLjBlMmEyYjI0MTNjOThlMmNhNzEwYzJj
ZGQ5YThiMDQwZDg3NGI2MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ09iamVjdC5oCkBAIC00NSw5ICs0NSw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAg
IEpTU3RyaW5nKiBpbnRlcm5hbFZhbHVlKCkgY29uc3QgeyByZXR1cm4gYXNTdHJpbmcoSlNXcmFw
cGVyT2JqZWN0OjppbnRlcm5hbFZhbHVlKCkpO30KIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5l
ZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0VGhhdE1hc3F1
ZXJhZGVzQXNVbmRlZmluZWQuaAppbmRleCAwYTQ0ZWQzMjNhZDBmY2Q0Njg2YjVmNTdkMDJjM2Rh
ZGVhMzU5OWZkLi5lNGM3MDYxMjJjZTE3MTNkNDNlZTk1M2QxYmM4OWY3NTBlOWI0ZTdjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFz
cXVlcmFkZXNBc1VuZGVmaW5lZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ09iamVjdFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLmgKQEAgLTMzLDcgKzMzLDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBTdHJpbmdPYmplY3RUaGF0TWFzcXVl
cmFkZXNBc1VuZGVmaW5lZCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgVVN0cmluZyYg
c3RyaW5nKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gbmV3IChleGVjKSBTdHJpbmdP
YmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZChleGVjLAotICAgICAgICAgICAgICAgIGNy
ZWF0ZVN0cnVjdHVyZShleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnN0cmluZ1Byb3RvdHlw
ZSgpKSwgc3RyaW5nKTsKKyAgICAgICAgICAgICAgICBjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnN0cmluZ1Byb3RvdHlwZSgp
KSwgc3RyaW5nKTsKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKQEAgLTQyLDkgKzQyLDkgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8pIAorICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG8pIAogICAgICAgICB7IAotICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAorICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7
IAogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgTWFzcXVlcmFkZXNBc1VuZGVmaW5l
ZCB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBTdHJpbmdPYmplY3Q6OlN0cnVjdHVyZUZs
YWdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJv
dG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUu
aAppbmRleCA1N2E1MDlhYmFkMjY5OTc0N2NhZmZlMmFjOWExMjAxMGM4ZTY2MTliLi41N2RlZjIy
ODFiMWQ1YzQ4ZjEzNGFkNWQ0MjFlMDc3ZWU1YTA4N2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaApAQCAtMzQsOSArMzQsOSBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIAotICAgICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlw
ZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8o
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8p
OworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3Rv
dHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90
Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNz
SW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJ1Y3R1cmUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCmlu
ZGV4IDY0YjFkMjg3Mjk1ODE1ZDUwMmVhNzU0NzNkM2E3ODU5ODAyNjY4NmIuLjZmNzA2MGJmMWFh
ZGMyNDAzZjk3MGM1MWRlOGViMjY4NTBhNDQ1MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZS5oCkBAIC01NywxMSArNTcsMTcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgY2xhc3MgU3RydWN0dXJlIDogcHVibGljIFJlZkNvdW50ZWQ8U3RydWN0dXJlPiB7CiAgICAg
cHVibGljOgogICAgICAgICBmcmllbmQgY2xhc3MgU3RydWN0dXJlVHJhbnNpdGlvblRhYmxlOwot
ICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZShKU1ZhbHVlIHByb3Rv
dHlwZSwgY29uc3QgVHlwZUluZm8mIHR5cGVJbmZvLCB1bnNpZ25lZCBhbm9ueW1vdXNTbG90Q291
bnQsIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTdHJ1Y3R1cmU+IGNyZWF0ZShKU0dsb2JhbERhdGEmLCBKU1ZhbHVlIHByb3RvdHlwZSwgY29u
c3QgVHlwZUluZm8mIHR5cGVJbmZvLCB1bnNpZ25lZCBhbm9ueW1vdXNTbG90Q291bnQsIGNvbnN0
IENsYXNzSW5mbyogY2xhc3NJbmZvKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFN0cnVjdHVyZShwcm90b3R5cGUsIHR5cGVJbmZvLCBhbm9ueW1vdXNTbG90Q291
bnQsIGNsYXNzSW5mbykpOwogICAgICAgICB9CiAKKyAgICAgICAgZW51bSBWUHRyU3RlYWxpbmdI
YWNrVHlwZSB7IFZQdHJTdGVhbGluZ0hhY2sgfTsKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBjcmVhdGUoVlB0clN0ZWFsaW5nSGFja1R5cGUsIGNvbnN0IENsYXNzSW5mbyog
Y2xhc3NJbmZvKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFN0
cnVjdHVyZShqc051bGwoKSwgVHlwZUluZm8oVW5zcGVjaWZpZWRUeXBlKSwgMCwgY2xhc3NJbmZv
KSk7CisgICAgICAgIH0KKwogICAgICAgICBzdGF0aWMgdm9pZCBzdGFydElnbm9yaW5nTGVha3Mo
KTsKICAgICAgICAgc3RhdGljIHZvaWQgc3RvcElnbm9yaW5nTGVha3MoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1
ZS9DaGFuZ2VMb2cKaW5kZXggZDBlM2Y2YzI1MzA1M2QyNWM5Yjg3MDU5ZTU1MjM4YWQzNTNhM2Uy
My4uZDdiODdhZmVjZjZkNTAwOTllZjk1ZmI5MTNjNmJlMDdmODZmZGZhNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEds
dWUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDMtMTUgIE9saXZlciBIdW50ICA8
b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBNYWtlIFN0cnVjdHVyZSBjcmVhdGlvbiByZXF1aXJlIGEgSlNHbG9iYWxEYXRh
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjQzOAor
CisgICAgICAgIE1lY2hhbmljYWwgY2hhbmdlIHRvIG1ha2UgYWxsIHN0cnVjdHVyZSBjcmVhdGlv
biBwYXNzIGEgSlNHbG9iYWxEYXRhJi4KKworICAgICAgICAqIEpTUnVuLmNwcDoKKyAgICAgICAg
KEpTR2x1ZUdsb2JhbE9iamVjdDo6SlNHbHVlR2xvYmFsT2JqZWN0KToKKyAgICAgICAgKEpTUnVu
OjpKU1J1bik6CisgICAgICAgICogSlNSdW4uaDoKKyAgICAgICAgKiBKU1V0aWxzLmNwcDoKKyAg
ICAgICAgKGdldFRocmVhZEdsb2JhbE9iamVjdCk6CisgICAgICAgICogVXNlck9iamVjdEltcC5o
OgorICAgICAgICAoVXNlck9iamVjdEltcDo6Y3JlYXRlU3RydWN0dXJlKToKKwogMjAxMS0wMy0x
NSAgS2V2aW4gT2xsaXZpZXIgIDxrZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1
ZS9KU1J1bi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNSdW4uY3BwCmluZGV4IDg2MzA1
OTRiMGExYWZiNTRiNDVhZWMzMjQwNWZlZTFiZjQ4N2NhMDguLmE4MDk2YWE0YmFjNzM1ZTViNzY0
NmQ5NTM5MmJhMWRlYjA5OGEyMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9K
U1J1bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0pTUnVuLmNwcApAQCAtMzMsMTcg
KzMzLDE3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29tcGxldGlvbi5oPgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL1NvdXJjZUNvZGUuaD4KIAotSlNHbHVlR2xvYmFsT2JqZWN0OjpK
U0dsdWVHbG9iYWxPYmplY3QoUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSwgSlNGbGFn
cyBmbGFncykKK0pTR2x1ZUdsb2JhbE9iamVjdDo6SlNHbHVlR2xvYmFsT2JqZWN0KEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSwgSlNGbGFn
cyBmbGFncykKICAgICA6IEpTR2xvYmFsT2JqZWN0KHN0cnVjdHVyZSkKICAgICAsIG1fZmxhZ3Mo
ZmxhZ3MpCi0gICAgLCBtX3VzZXJPYmplY3RTdHJ1Y3R1cmUoVXNlck9iamVjdEltcDo6Y3JlYXRl
U3RydWN0dXJlKGpzTnVsbCgpKSkKKyAgICAsIG1fdXNlck9iamVjdFN0cnVjdHVyZShVc2VyT2Jq
ZWN0SW1wOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwganNOdWxsKCkpKQogewogfQogCiBK
U1J1bjo6SlNSdW4oQ0ZTdHJpbmdSZWYgc291cmNlLCBKU0ZsYWdzIGluRmxhZ3MpCiAgICAgOiAg
IEpTQmFzZShrSlNSdW5UeXBlSUQpLAogICAgICAgICBmU291cmNlKENGU3RyaW5nVG9VU3RyaW5n
KHNvdXJjZSkpLAotICAgICAgICBmR2xvYmFsT2JqZWN0KGdldFRocmVhZEdsb2JhbEV4ZWNTdGF0
ZSgpLT5nbG9iYWxEYXRhKCksIG5ldyAoJmdldFRocmVhZEdsb2JhbEV4ZWNTdGF0ZSgpLT5nbG9i
YWxEYXRhKCkpIEpTR2x1ZUdsb2JhbE9iamVjdChKU0dsdWVHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0
cnVjdHVyZShqc051bGwoKSksIGluRmxhZ3MpKSwKKyAgICAgICAgZkdsb2JhbE9iamVjdChnZXRU
aHJlYWRHbG9iYWxFeGVjU3RhdGUoKS0+Z2xvYmFsRGF0YSgpLCBuZXcgKCZnZXRUaHJlYWRHbG9i
YWxFeGVjU3RhdGUoKS0+Z2xvYmFsRGF0YSgpKSBKU0dsdWVHbG9iYWxPYmplY3QoZ2V0VGhyZWFk
R2xvYmFsRXhlY1N0YXRlKCktPmdsb2JhbERhdGEoKSwgSlNHbHVlR2xvYmFsT2JqZWN0OjpjcmVh
dGVTdHJ1Y3R1cmUoZ2V0VGhyZWFkR2xvYmFsRXhlY1N0YXRlKCktPmdsb2JhbERhdGEoKSwganNO
dWxsKCkpLCBpbkZsYWdzKSksCiAgICAgICAgIGZGbGFncyhpbkZsYWdzKQogewogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0pTUnVuLmggYi9Tb3VyY2UvSmF2YVNjcmlwdEds
dWUvSlNSdW4uaAppbmRleCBlOWExNDg0MmVjMWE5YzU0MzZiZmE1MzYxNjgwMzU2NGY2OTQ0NTkw
Li5kN2FhNjgyNDEwYzhiMzMyNzM3ZThlMGY1NmM3N2E1Mjk3ZTRmOWU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNSdW4uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUv
SlNSdW4uaApAQCAtMzQsNyArMzQsNyBAQAogCiBjbGFzcyBKU0dsdWVHbG9iYWxPYmplY3QgOiBw
dWJsaWMgSlNHbG9iYWxPYmplY3QgewogICAgIHB1YmxpYzoKLSAgICAgICAgSlNHbHVlR2xvYmFs
T2JqZWN0KFBhc3NSZWZQdHI8U3RydWN0dXJlPiwgSlNGbGFncyA9IGtKU0ZsYWdOb25lKTsKKyAg
ICAgICAgSlNHbHVlR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYsIFBhc3NSZWZQdHI8U3RydWN0
dXJlPiwgSlNGbGFncyA9IGtKU0ZsYWdOb25lKTsKIAogICAgICAgICBKU0ZsYWdzIEZsYWdzKCkg
Y29uc3QgeyByZXR1cm4gbV9mbGFnczsgfQogICAgICAgICBTdHJ1Y3R1cmUqIHVzZXJPYmplY3RT
dHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX3VzZXJPYmplY3RTdHJ1Y3R1cmUuZ2V0KCk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1V0aWxzLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0R2x1ZS9KU1V0aWxzLmNwcAppbmRleCA5NGM4ZGNjZDYzYjZjNjMwOWZjYThiOGYy
MmMwOGExMGNhZTA1MGY1Li5iNjJlN2JmYjZlODk4YzhmMmRhNjIyNzllYzhhMWM5OWE0ZWJjMWE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNVdGlscy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRHbHVlL0pTVXRpbHMuY3BwCkBAIC00MTQsNyArNDE0LDcgQEAgc3RhdGlj
IEpTR2x1ZUdsb2JhbE9iamVjdCogZ2V0VGhyZWFkR2xvYmFsT2JqZWN0KCkKICAgICBwdGhyZWFk
X29uY2UoJmdsb2JhbE9iamVjdEtleU9uY2UsIGluaXRpYWxpemVHbG9iYWxPYmplY3RLZXkpOwog
ICAgIEpTR2x1ZUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNHbHVl
R2xvYmFsT2JqZWN0Kj4ocHRocmVhZF9nZXRzcGVjaWZpYyhnbG9iYWxPYmplY3RLZXkpKTsKICAg
ICBpZiAoIWdsb2JhbE9iamVjdCkgewotICAgICAgICBnbG9iYWxPYmplY3QgPSBuZXcgKGdldFRo
cmVhZEdsb2JhbERhdGEoKSkgSlNHbHVlR2xvYmFsT2JqZWN0KEpTR2x1ZUdsb2JhbE9iamVjdDo6
Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSk7CisgICAgICAgIGdsb2JhbE9iamVjdCA9IG5ldyAo
Z2V0VGhyZWFkR2xvYmFsRGF0YSgpKSBKU0dsdWVHbG9iYWxPYmplY3QoKmdldFRocmVhZEdsb2Jh
bERhdGEoKSwgSlNHbHVlR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoKmdldFRocmVhZEds
b2JhbERhdGEoKSwganNOdWxsKCkpKTsKICAgICAgICAgZ2NQcm90ZWN0KGdsb2JhbE9iamVjdCk7
CiAgICAgICAgIHB0aHJlYWRfc2V0c3BlY2lmaWMoZ2xvYmFsT2JqZWN0S2V5LCBnbG9iYWxPYmpl
Y3QpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0
SW1wLmggYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCmluZGV4IDNmNjQx
NTMwZjY0NGViNTc5NzdmNDY0Yjc3NDhlYTAxMmVmNDBkZTcuLmM2YjhkODZmNWQ5YWI2OWMxZTFl
NTY5ZWM4MmM2YmUyNTEyZDg1NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9V
c2VyT2JqZWN0SW1wLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAu
aApAQCAtNTgsOSArNTgsOSBAQCBwdWJsaWM6CiAKICAgICBKU1VzZXJPYmplY3QgKkdldEpTVXNl
ck9iamVjdCgpIGNvbnN0OwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVh
dGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVl
IHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8
IE92ZXJyaWRlc01hcmtDaGlsZHJlbiB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBPdmVycmlkZXNH
ZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNNYXJrQ2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQ
cm9wZXJ0eU5hbWVzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggOTY2NGI5YjFmYTc0MTcxYzYwOTkwYmE0N2MzNmJhZjYzYzI1
ZGRjNi4uY2ExZjhhYTc0NDliOTI0MzMxMWVkNjljNjBlZTBkZWUwZGE2NmI4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDY1IEBACisyMDExLTAzLTE1ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TWFrZSBTdHJ1Y3R1cmUgY3JlYXRpb24gcmVxdWlyZSBhIEpTR2xvYmFsRGF0YQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY0MzgKKworICAgICAgICBN
ZWNoYW5pY2FsIGNoYW5nZSB0byBtYWtlIGFsbCBzdHJ1Y3R1cmUgY3JlYXRpb24gdXNlIEdsb2Jh
bERhdGEKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0F1ZGlvQ29uc3RydWN0b3I6OkpTQXVkaW9Db25zdHJ1Y3Rvcik6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmg6CisgICAgICAgIChX
ZWJDb3JlOjpKU0F1ZGlvQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpET01PYmplY3RX
aXRoR2xvYmFsUG9pbnRlcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TUNvbnN0cnVjdG9yT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6
Z2V0RE9NU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVj
dC5oOgorICAgICAgICAoV2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVy
ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdp
bmRvd1NoZWxsOjpKU0RPTVdpbmRvd1NoZWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2lu
ZG93U2hlbGw6OnNldFdpbmRvdyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dT
aGVsbC5oOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNJbWFnZUNvbnN0cnVjdG9yOjpKU0ltYWdlQ29uc3RydWN0b3IpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoV2Vi
Q29yZTo6SlNJbWFnZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNPcHRpb25Db25zdHJ1Y3Rvcjo6SlNPcHRpb25Db25zdHJ1Y3Rvcik6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5oOgorICAgICAgICAoV2Vi
Q29yZTo6SlNPcHRpb25Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpKU1dv
cmtlckNvbnRleHRCYXNlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2Ny
aXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgICogYnJpZGdlL2MvQ1J1bnRpbWVPYmplY3QuaDoK
KyAgICAgICAgKEpTQzo6QmluZGluZ3M6OkNSdW50aW1lT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAqIGJyaWRnZS9jL2NfaW5zdGFuY2UuY3BwOgorICAgICAgICAoSlNDOjpCaW5k
aW5nczo6Q1J1bnRpbWVNZXRob2Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYnJpZGdl
L2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmNwcDoKKyAgICAgICAgKEphdmFSdW50aW1lTWV0aG9k
OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJyaWRnZS9qbmkvanNjL0phdmFSdW50aW1l
T2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpKYXZhUnVudGltZU9iamVjdDo6Y3Jl
YXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9PYmpDUnVudGltZU9iamVjdC5o
OgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqQ1J1bnRpbWVPYmplY3Q6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbToKKyAgICAgICAg
KE9iakNSdW50aW1lTWV0aG9kOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJyaWRnZS9v
YmpjL29iamNfcnVudGltZS5oOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0ZhbGxiYWNr
T2JqZWN0SW1wOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2Fy
cmF5Lmg6CisgICAgICAgIChKU0M6OlJ1bnRpbWVBcnJheTo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKiBicmlkZ2UvcnVudGltZV9tZXRob2QuaDoKKyAgICAgICAgKEpTQzo6UnVudGltZU1l
dGhvZDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3Qu
aDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVy
ZSk6CisKIDIwMTEtMDMtMTYgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmNwcAppbmRleCBmMDA0MGZhOWE3MmVjNDY3OGI0
MjhmNTNiMDQ1Y2YzNjMzMDY2MDQ4Li45YWM3OTdiMWRlODk4MDg1OTExY2U5ZTI5ODU0ZWQxZmYy
NTA3ZDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29u
c3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db25z
dHJ1Y3Rvci5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY29uc3Qg
Q2xhc3NJbmZvIEpTQXVkaW9Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiQXVkaW9Db25zdHJ1Y3Rv
ciIsICZET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudDo6c19pbmZvLCAwLCAwIH07CiAKIEpTQXVk
aW9Db25zdHJ1Y3Rvcjo6SlNBdWRpb0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLSAgICA6IERPTUNvbnN0cnVjdG9yV2l0aERvY3Vt
ZW50KEpTQXVkaW9Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+b2Jq
ZWN0UHJvdG90eXBlKCkpLCBnbG9iYWxPYmplY3QpCisgICAgOiBET01Db25zdHJ1Y3RvcldpdGhE
b2N1bWVudChKU0F1ZGlvQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3Qt
Pmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9i
amVjdCkKIHsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHB1dERpcmVjdChl
eGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTSFRN
TEF1ZGlvRWxlbWVudFByb3RvdHlwZTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3QpLCBOb25lKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rv
ci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmgKaW5k
ZXggYzkwYWJiZjdkOWVlYmE5NDYzNmFjNjZkMTI0NjNhZTFmNGNkMGRkMS4uYmUwYjgwMDAwNWJm
MjIxYWJlZDdhOTg0NmQ4YTEzYWVjMzViNDQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmgKQEAgLTM4LDkgKzM4LDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIHB1YmxpYzoKICAgICAgICAgSlNBdWRpb0NvbnN0cnVjdG9yKEpTQzo6
RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKIAotICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5
cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1
Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5
cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRl
KHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBKU0M6
OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhK
U0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBz
X2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRp
bmcuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCmluZGV4IDRm
ZTNkMTZjMWZjYzI4YzdjNjc0ODlhODFiYzFhYjU3OGEwZmExZDIuLjkzNGQ5YjMxYTQ2MWIyMTc5
ZGJkNDE5ZmRlZTAwMmE4MGUzMjgzYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5oCkBAIC02NCw5ICs2NCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwog
ICAgICAgICB9CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUlu
Zm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwg
JnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAg
IHByb3RlY3RlZDoKQEAgLTgzLDkgKzgzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIC8v
IEJhc2UgY2xhc3MgZm9yIGFsbCBjb25zdHJ1Y3RvciBvYmplY3RzIGluIHRoZSBKU0MgYmluZGlu
Z3MuCiAgICAgY2xhc3MgRE9NQ29uc3RydWN0b3JPYmplY3QgOiBwdWJsaWMgRE9NT2JqZWN0V2l0
aEdsb2JhbFBvaW50ZXIgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQor
ICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJl
KEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQog
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90
b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7
CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKQEAgLTE0Myw3ICsxNDMsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgewogICAgICAgICBpZiAoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSA9IGdldENhY2hlZERPTVN0cnVjdHVyZShnbG9iYWxPYmplY3QsICZXcmFwcGVyQ2xhc3M6OnNf
aW5mbykpCiAgICAgICAgICAgICByZXR1cm4gc3RydWN0dXJlOwotICAgICAgICByZXR1cm4gY2Fj
aGVET01TdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBXcmFwcGVyQ2xhc3M6OmNyZWF0ZVN0cnVjdHVy
ZShXcmFwcGVyQ2xhc3M6OmNyZWF0ZVByb3RvdHlwZShleGVjLCBnbG9iYWxPYmplY3QpKSwgJldy
YXBwZXJDbGFzczo6c19pbmZvKTsKKyAgICAgICAgcmV0dXJuIGNhY2hlRE9NU3RydWN0dXJlKGds
b2JhbE9iamVjdCwgV3JhcHBlckNsYXNzOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0
YSgpLCBXcmFwcGVyQ2xhc3M6OmNyZWF0ZVByb3RvdHlwZShleGVjLCBnbG9iYWxPYmplY3QpKSwg
JldyYXBwZXJDbGFzczo6c19pbmZvKTsKICAgICB9CiAgICAgdGVtcGxhdGU8Y2xhc3MgV3JhcHBl
ckNsYXNzPiBpbmxpbmUgSlNDOjpTdHJ1Y3R1cmUqIGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUo
SlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKaW5kZXggZGFlNDA1YThmZGU3OWQyMDBkY2Q0YWU2NGM2
ZDQyZjk3MGI0NmY2MS4uMWU5OTJjNWI3MWZkYzYyOGU2NTFkY2IyZjcyYzE1MTY0ZWZiMjQwNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCkBA
IC02OSw5ICs2OSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBzdGF0aWMgY29u
c3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpT
Qzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShK
U0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90
eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwog
ICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93QmFzZS5oCmluZGV4IDdiZGEzZTQyMDcyNTRhOTVlMmEzYzcwMzU3YTJlZmRl
M2FhZjYzNmUuLmJmZWMzMWM1Njc4MjUyYzk1NzcyMmY0NmExMjllYjkwNjZlMjgwZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCkBAIC01Nyw5ICs1
Nyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBzdGF0aWMgY29uc3QgSlNDOjpD
bGFzc0luZm8gc19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6
OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90
Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVh
dGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9
CiAKICAgICAgICAgdmlydHVhbCBKU0M6OkV4ZWNTdGF0ZSogZ2xvYmFsRXhlYygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAppbmRleCBhNGNj
Nzc3ZDk0YWQyMzM4YjhhNjhlYjA3NzQyY2Q5ZGFmOTk0MTNmLi44MTdlOWMwZGEyMDI4NDQxNWNj
NTI5MDRlZTM3ZjFjN2I5MjdkYmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd1NoZWxsLmNwcApAQCAtNDQsNyArNDQsNyBAQCBBU1NFUlRfQ0xBU1NfRklU
U19JTl9DRUxMKEpTRE9NV2luZG93U2hlbGwpOwogY29uc3QgQ2xhc3NJbmZvIEpTRE9NV2luZG93
U2hlbGw6OnNfaW5mbyA9IHsgIkpTRE9NV2luZG93U2hlbGwiLCAmQmFzZTo6c19pbmZvLCAwLCAw
IH07CiAKIEpTRE9NV2luZG93U2hlbGw6OkpTRE9NV2luZG93U2hlbGwoUGFzc1JlZlB0cjxET01X
aW5kb3c+IHdpbmRvdywgRE9NV3JhcHBlcldvcmxkKiB3b3JsZCkKLSAgICA6IEJhc2UoSlNET01X
aW5kb3dTaGVsbDo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKKyAgICA6IEJhc2UoSlNET01X
aW5kb3dTaGVsbDo6Y3JlYXRlU3RydWN0dXJlKCp3b3JsZC0+Z2xvYmFsRGF0YSgpLCBqc051bGwo
KSkpCiAgICAgLCBtX3dvcmxkKHdvcmxkKQogewogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZv
KSk7CkBAIC02MCwxMCArNjAsMTAgQEAgdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpzZXRXaW5kb3co
UGFzc1JlZlB0cjxET01XaW5kb3c+IGRvbVdpbmRvdykKICAgICAvLyBFeHBsaWNpdGx5IHByb3Rl
Y3QgdGhlIGdsb2JhbCBvYmplY3QncyBwcm90b3R5cGUgc28gaXQgaXNuJ3QgY29sbGVjdGVkCiAg
ICAgLy8gd2hlbiB3ZSBhbGxvY2F0ZSB0aGUgZ2xvYmFsIG9iamVjdC4gKE9uY2UgdGhlIGdsb2Jh
bCBvYmplY3QgaXMgZnVsbHkKICAgICAvLyBjb25zdHJ1Y3RlZCwgaXQgY2FuIG1hcmsgaXRzIG93
biBwcm90b3R5cGUuKQotICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHByb3RvdHlwZVN0cnVjdHVyZSA9
IEpTRE9NV2luZG93UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpOworICAgIFJl
ZlB0cjxTdHJ1Y3R1cmU+IHByb3RvdHlwZVN0cnVjdHVyZSA9IEpTRE9NV2luZG93UHJvdG90eXBl
OjpjcmVhdGVTdHJ1Y3R1cmUoKkpTRE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKSwganNO
dWxsKCkpOwogICAgIEdsb2JhbDxKU0RPTVdpbmRvd1Byb3RvdHlwZT4gcHJvdG90eXBlKCpKU0RP
TVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCksIG5ldyBKU0RPTVdpbmRvd1Byb3RvdHlwZSgw
LCBwcm90b3R5cGVTdHJ1Y3R1cmUucmVsZWFzZSgpKSk7CiAKLSAgICBSZWZQdHI8U3RydWN0dXJl
PiBzdHJ1Y3R1cmUgPSBKU0RPTVdpbmRvdzo6Y3JlYXRlU3RydWN0dXJlKHByb3RvdHlwZS5nZXQo
KSk7CisgICAgUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlID0gSlNET01XaW5kb3c6OmNyZWF0
ZVN0cnVjdHVyZSgqSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLCBwcm90b3R5cGUu
Z2V0KCkpOwogICAgIEpTRE9NV2luZG93KiBqc0RPTVdpbmRvdyA9IG5ldyAoSlNET01XaW5kb3c6
OmNvbW1vbkpTR2xvYmFsRGF0YSgpKSBKU0RPTVdpbmRvdyhzdHJ1Y3R1cmUucmVsZWFzZSgpLCBk
b21XaW5kb3csIHRoaXMpOwogICAgIHByb3RvdHlwZS0+cHV0QW5vbnltb3VzVmFsdWUoKkpTRE9N
V2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKSwgMCwganNET01XaW5kb3cpOwogICAgIHNldFdp
bmRvdygqSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLCBqc0RPTVdpbmRvdyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKaW5kZXggMDZk
ZDFmZjVmNDBjNmQ0OTA0MmU3OGEwYjVkOWNhMjhlM2I4YTA1ZS4uNDMwN2MxYzQ2MWIwZmY0NmJm
OGEzYTc3YmFiOGVjMmU1MDRmOWJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dTaGVsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93U2hlbGwuaApAQCAtNTgsOSArNTgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICAgICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCk7CiAKLSAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUg
cHJvdG90eXBlKSAKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVl
IHByb3RvdHlwZSkgCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVy
ZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCisgICAgICAgICAgICBy
ZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIEpTQzo6
VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7IAogICAgICAgICB9CiAKICAgICAgICAgRE9NV3JhcHBlcldvcmxkKiB3
b3JsZCgpIHsgcmV0dXJuIG1fd29ybGQuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuY3BwCmluZGV4IDFkZGYxMzYwNDNkODEwM2U5
ZjlkMzEyYjJjYjI4NDI2MDRhMGQwMWYuLmJlNzVhZjBiZTdjYWU5MTQ2NjFjMmRlZWQ0ZjRiMjVk
ZDBkN2NmZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNv
bnN0cnVjdG9yLmNwcApAQCAtMzUsNyArMzUsNyBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxM
KEpTSW1hZ2VDb25zdHJ1Y3Rvcik7CiBjb25zdCBDbGFzc0luZm8gSlNJbWFnZUNvbnN0cnVjdG9y
OjpzX2luZm8gPSB7ICJJbWFnZUNvbnN0cnVjdG9yIiwgJkRPTUNvbnN0cnVjdG9yV2l0aERvY3Vt
ZW50OjpzX2luZm8sIDAsIDAgfTsKIAogSlNJbWFnZUNvbnN0cnVjdG9yOjpKU0ltYWdlQ29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQot
ICAgIDogRE9NQ29uc3RydWN0b3JXaXRoRG9jdW1lbnQoSlNJbWFnZUNvbnN0cnVjdG9yOjpjcmVh
dGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVj
dCkKKyAgICA6IERPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50KEpTSW1hZ2VDb25zdHJ1Y3Rvcjo6
Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3Qt
Pm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQogewogICAgIEFTU0VSVChpbmhlcml0
cygmc19pbmZvKSk7CiAgICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJv
cGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNIVE1MSW1hZ2VFbGVtZW50UHJvdG90eXBlOjpzZWxm
KGV4ZWMsIGdsb2JhbE9iamVjdCksIE5vbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuaAppbmRleCA3MzI5M2M3YmY5NDdkMjYxNGQ0MTdlZmRm
Zjc5NGZjMWIwZGM1OTQzLi42NTRlMjIzZmE4ZGI1YmZhYWFhY2VkZmVkMzVjZjcwMmE3OTkzYTEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3Iu
aApAQCAtMjksOSArMjksOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHVibGljOgogICAg
ICAgICBKU0ltYWdlQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVj
dCopOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVT
dHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpT
Qzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOworICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0
YSwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAg
c3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcAppbmRleCBiNTU5MmQ4YzdkMGVhM2Ex
OGYzZjM2OTc0YmYwMTY4N2Y1ZjJiOGRlLi5hOTJlZDQ3MGM0OTI5YTcwM2QxMThjZmEyYTdjYTBi
OWMxZjk0MTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdl
RGF0YUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZURh
dGFDdXN0b20uY3BwCkBAIC00OCw3ICs0OCw3IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4
ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEltYWdlRGF0YSogaW1hZ2VECiAg
ICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0
LCBJbWFnZURhdGEsIGltYWdlRGF0YSk7CiAgICAgSWRlbnRpZmllciBkYXRhTmFtZShleGVjLCAi
ZGF0YSIpOwogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gY3BhQ2xhc3NJbmZvID0geyAiQ2Fu
dmFzUGl4ZWxBcnJheSIsICZKU0J5dGVBcnJheTo6QmFzZTo6c19pbmZvLCAwLCAwIH07Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8U3RydWN0dXJlPiwgY3BhU3RydWN0dXJlLCAoSlNC
eXRlQXJyYXk6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSwgJmNwYUNsYXNzSW5mbykpKTsKKyAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKFJlZlB0cjxTdHJ1Y3R1cmU+LCBjcGFTdHJ1Y3R1cmUsIChK
U0J5dGVBcnJheTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNOdWxsKCks
ICZjcGFDbGFzc0luZm8pKSk7CiAgICAgd3JhcHBlci0+cHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERh
dGEoKSwgZGF0YU5hbWUsIG5ldyAoZXhlYykgSlNCeXRlQXJyYXkoZXhlYywgY3BhU3RydWN0dXJl
LCBpbWFnZURhdGEtPmRhdGEoKS0+ZGF0YSgpKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKICAg
ICBleGVjLT5oZWFwKCktPnJlcG9ydEV4dHJhTWVtb3J5Q29zdChpbWFnZURhdGEtPmRhdGEoKS0+
bGVuZ3RoKCkpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNPcHRpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09w
dGlvbkNvbnN0cnVjdG9yLmNwcAppbmRleCBhM2M5YWFiNGQyM2U3YTJlMmI3YjFkYzVjZDE4MDY2
ZjBlMWZlNGM3Li41OWUwYjZhM2U4YmE5NDZhODQ2MDQ5YjMxMzk2MTM4MzE4NzBjZjJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmNw
cApAQCAtMzYsNyArMzYsNyBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTT3B0aW9uQ29u
c3RydWN0b3IpOwogY29uc3QgQ2xhc3NJbmZvIEpTT3B0aW9uQ29uc3RydWN0b3I6OnNfaW5mbyA9
IHsgIk9wdGlvbkNvbnN0cnVjdG9yIiwgJkRPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50OjpzX2lu
Zm8sIDAsIDAgfTsKIAogSlNPcHRpb25Db25zdHJ1Y3Rvcjo6SlNPcHRpb25Db25zdHJ1Y3RvcihF
eGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi0gICAgOiBE
T01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudChKU09wdGlvbkNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1
Y3R1cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVjdCkKKyAg
ICA6IERPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50KEpTT3B0aW9uQ29uc3RydWN0b3I6OmNyZWF0
ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5vYmpl
Y3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVjdCkKIHsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNf
aW5mbykpOwogICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5
TmFtZXMoKS5wcm90b3R5cGUsIEpTSFRNTE9wdGlvbkVsZW1lbnRQcm90b3R5cGU6OnNlbGYoZXhl
YywgZ2xvYmFsT2JqZWN0KSwgTm9uZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU09wdGlvbkNvbnN0cnVjdG9yLmgKaW5kZXggMDM2MzNjNzkyZTNlMjFiYTFjMTk1YmY3MzNi
Y2FiNzlmOWEyNzU4OC4uOGExODAwNzFjYWYwNTZjY2IyYTJmYzkwYmNlMWU4MTBiZGQ0NWI5NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3Iu
aApAQCAtMzAsOSArMzAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHVibGljOgogICAg
ICAgICBKU09wdGlvbkNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmpl
Y3QqKTsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRl
U3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhK
U0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsKKyAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgICAg
IHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmgKaW5kZXggOTk5NDhiNzNhMDM2MjUz
MjBjMDI0MTc0YzI1ZTU3NjU2YWY3YjdkZS4uYjljMjM0YTJiZmJiZDgyYTA1ZjU4MjE0MWRhYzEx
MjBhYTAyNzI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3Jr
ZXJDb250ZXh0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2Vy
Q29udGV4dEJhc2UuaApAQCAtNDksOSArNDksOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIFdvcmtlckNvbnRleHQqIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwuZ2V0KCk7IH0K
ICAgICAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3Q7CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1
cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6
VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0K
IAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
b3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dv
cmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGQzOTIyODE2OWJmOGRiZjIwZjVhYjQyM2Jj
MDUyNWM5M2UxZDc5OWMuLjY3YjA0NDFhYTIyYTRmNTA0YmFmYjUwYWYyYzMyMmYxYWEzNzU2MTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENv
bnRyb2xsZXIuY3BwCkBAIC03MywxMyArNzMsMTMgQEAgdm9pZCBXb3JrZXJTY3JpcHRDb250cm9s
bGVyOjppbml0U2NyaXB0KCkKICAgICAvLyBFeHBsaWNpdGx5IHByb3RlY3QgdGhlIGdsb2JhbCBv
YmplY3QncyBwcm90b3R5cGUgc28gaXQgaXNuJ3QgY29sbGVjdGVkCiAgICAgLy8gd2hlbiB3ZSBh
bGxvY2F0ZSB0aGUgZ2xvYmFsIG9iamVjdC4gKE9uY2UgdGhlIGdsb2JhbCBvYmplY3QgaXMgZnVs
bHkKICAgICAvLyBjb25zdHJ1Y3RlZCwgaXQgY2FuIG1hcmsgaXRzIG93biBwcm90b3R5cGUuKQot
ICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHdvcmtlckNvbnRleHRQcm90b3R5cGVTdHJ1Y3R1cmUgPSBK
U1dvcmtlckNvbnRleHRQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSk7CisgICAg
UmVmUHRyPFN0cnVjdHVyZT4gd29ya2VyQ29udGV4dFByb3RvdHlwZVN0cnVjdHVyZSA9IEpTV29y
a2VyQ29udGV4dFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKCptX2dsb2JhbERhdGEsIGpzTnVs
bCgpKTsKICAgICBHbG9iYWw8SlNXb3JrZXJDb250ZXh0UHJvdG90eXBlPiB3b3JrZXJDb250ZXh0
UHJvdG90eXBlKCptX2dsb2JhbERhdGEsIG5ldyAobV9nbG9iYWxEYXRhLmdldCgpKSBKU1dvcmtl
ckNvbnRleHRQcm90b3R5cGUoMCwgd29ya2VyQ29udGV4dFByb3RvdHlwZVN0cnVjdHVyZS5yZWxl
YXNlKCkpKTsKIAogICAgIGlmIChtX3dvcmtlckNvbnRleHQtPmlzRGVkaWNhdGVkV29ya2VyQ29u
dGV4dCgpKSB7Ci0gICAgICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IGRlZGljYXRlZENvbnRleHRQcm90
b3R5cGVTdHJ1Y3R1cmUgPSBKU0RlZGljYXRlZFdvcmtlckNvbnRleHRQcm90b3R5cGU6OmNyZWF0
ZVN0cnVjdHVyZSh3b3JrZXJDb250ZXh0UHJvdG90eXBlLmdldCgpKTsKKyAgICAgICAgUmVmUHRy
PFN0cnVjdHVyZT4gZGVkaWNhdGVkQ29udGV4dFByb3RvdHlwZVN0cnVjdHVyZSA9IEpTRGVkaWNh
dGVkV29ya2VyQ29udGV4dFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKCptX2dsb2JhbERhdGEs
IHdvcmtlckNvbnRleHRQcm90b3R5cGUuZ2V0KCkpOwogICAgICAgICBHbG9iYWw8SlNEZWRpY2F0
ZWRXb3JrZXJDb250ZXh0UHJvdG90eXBlPiBkZWRpY2F0ZWRDb250ZXh0UHJvdG90eXBlKCptX2ds
b2JhbERhdGEsIG5ldyAobV9nbG9iYWxEYXRhLmdldCgpKSBKU0RlZGljYXRlZFdvcmtlckNvbnRl
eHRQcm90b3R5cGUoMCwgZGVkaWNhdGVkQ29udGV4dFByb3RvdHlwZVN0cnVjdHVyZS5yZWxlYXNl
KCkpKTsKLSAgICAgICAgUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlID0gSlNEZWRpY2F0ZWRX
b3JrZXJDb250ZXh0OjpjcmVhdGVTdHJ1Y3R1cmUoZGVkaWNhdGVkQ29udGV4dFByb3RvdHlwZS5n
ZXQoKSk7CisgICAgICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSA9IEpTRGVkaWNhdGVk
V29ya2VyQ29udGV4dDo6Y3JlYXRlU3RydWN0dXJlKCptX2dsb2JhbERhdGEsIGRlZGljYXRlZENv
bnRleHRQcm90b3R5cGUuZ2V0KCkpOwogCiAgICAgICAgIG1fd29ya2VyQ29udGV4dFdyYXBwZXIu
c2V0KCptX2dsb2JhbERhdGEsIG5ldyAobV9nbG9iYWxEYXRhLmdldCgpKSBKU0RlZGljYXRlZFdv
cmtlckNvbnRleHQoc3RydWN0dXJlLnJlbGVhc2UoKSwgbV93b3JrZXJDb250ZXh0LT50b0RlZGlj
YXRlZFdvcmtlckNvbnRleHQoKSkpOwogICAgICAgICB3b3JrZXJDb250ZXh0UHJvdG90eXBlLT5w
dXRBbm9ueW1vdXNWYWx1ZSgqbV9nbG9iYWxEYXRhLCAwLCBtX3dvcmtlckNvbnRleHRXcmFwcGVy
LmdldCgpKTsKQEAgLTg3LDkgKzg3LDkgQEAgdm9pZCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpp
bml0U2NyaXB0KCkKICNpZiBFTkFCTEUoU0hBUkVEX1dPUktFUlMpCiAgICAgfSBlbHNlIHsKICAg
ICAgICAgQVNTRVJUKG1fd29ya2VyQ29udGV4dC0+aXNTaGFyZWRXb3JrZXJDb250ZXh0KCkpOwot
ICAgICAgICBSZWZQdHI8U3RydWN0dXJlPiBzaGFyZWRDb250ZXh0UHJvdG90eXBlU3RydWN0dXJl
ID0gSlNTaGFyZWRXb3JrZXJDb250ZXh0UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUod29ya2Vy
Q29udGV4dFByb3RvdHlwZS5nZXQoKSk7CisgICAgICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHNoYXJl
ZENvbnRleHRQcm90b3R5cGVTdHJ1Y3R1cmUgPSBKU1NoYXJlZFdvcmtlckNvbnRleHRQcm90b3R5
cGU6OmNyZWF0ZVN0cnVjdHVyZSgqbV9nbG9iYWxEYXRhLCB3b3JrZXJDb250ZXh0UHJvdG90eXBl
LmdldCgpKTsKICAgICAgICAgR2xvYmFsPEpTU2hhcmVkV29ya2VyQ29udGV4dFByb3RvdHlwZT4g
c2hhcmVkQ29udGV4dFByb3RvdHlwZSgqbV9nbG9iYWxEYXRhLCBuZXcgKG1fZ2xvYmFsRGF0YS5n
ZXQoKSkgSlNTaGFyZWRXb3JrZXJDb250ZXh0UHJvdG90eXBlKDAsIHNoYXJlZENvbnRleHRQcm90
b3R5cGVTdHJ1Y3R1cmUucmVsZWFzZSgpKSk7Ci0gICAgICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHN0
cnVjdHVyZSA9IEpTU2hhcmVkV29ya2VyQ29udGV4dDo6Y3JlYXRlU3RydWN0dXJlKHNoYXJlZENv
bnRleHRQcm90b3R5cGUuZ2V0KCkpOworICAgICAgICBSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1
cmUgPSBKU1NoYXJlZFdvcmtlckNvbnRleHQ6OmNyZWF0ZVN0cnVjdHVyZSgqbV9nbG9iYWxEYXRh
LCBzaGFyZWRDb250ZXh0UHJvdG90eXBlLmdldCgpKTsKIAogICAgICAgICBtX3dvcmtlckNvbnRl
eHRXcmFwcGVyLnNldCgqbV9nbG9iYWxEYXRhLCBuZXcgKG1fZ2xvYmFsRGF0YS5nZXQoKSkgSlNT
aGFyZWRXb3JrZXJDb250ZXh0KHN0cnVjdHVyZS5yZWxlYXNlKCksIG1fd29ya2VyQ29udGV4dC0+
dG9TaGFyZWRXb3JrZXJDb250ZXh0KCkpKTsKICAgICAgICAgd29ya2VyQ29udGV4dFByb3RvdHlw
ZS0+cHV0QW5vbnltb3VzVmFsdWUoKm1fZ2xvYmFsRGF0YSwgMCwgbV93b3JrZXJDb250ZXh0V3Jh
cHBlci5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCmluZGV4IGNiNTFjOGEyN2Q4MTJlZTM3MzRkMGRiMGRjMDQxMzYzNjVi
MWE1ZjEuLjEyYjQ3N2I1ODk0NWM3NTcyMDNmNTdjYTI1NWQwMmU4NzU2YWJjN2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBA
IC03NDYsOSArNzQ2LDkgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgICRzdHJ1Y3R1cmVG
bGFnc3siSlNDOjpOZWVkc1RoaXNDb252ZXJzaW9uIn0gPSAxOwogICAgIH0KICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LAotICAgICAgICAiICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSlcbiIgLgorICAgICAg
ICAiICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpXG4i
IC4KICAgICAgICAgIiAgICB7XG4iIC4KLSAgICAgICAgIiAgICAgICAgcmV0dXJuIEpTQzo6U3Ry
dWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pO1xuIiAuCisgICAg
ICAgICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHBy
b3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTtcbiIgLgogICAgICAgICAiICAgIH1cblxuIik7
CiAKICAgICAjIG1hcmtDaGlsZHJlbiBmdW5jdGlvbgpAQCAtOTU4LDkgKzk1OCw5IEBAIHN1YiBH
ZW5lcmF0ZUhlYWRlcgogICAgICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6T3ZlcnJpZGVzTWFy
a0NoaWxkcmVuIn0gPSAxOwogICAgIH0KICAgICBwdXNoKEBoZWFkZXJDb250ZW50LAotICAgICAg
ICAiICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNDOjpKU1ZhbHVlIHByb3RvdHlwZSlcbiIgLgorICAgICAgICAiICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpXG4iIC4KICAgICAgICAgIiAgICB7XG4i
IC4KLSAgICAgICAgIiAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90
eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pO1xuIiAuCisgICAgICAgICIgICAgICAgIHJldHVybiBK
U0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5m
byhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAm
c19pbmZvKTtcbiIgLgogICAgICAgICAiICAgIH1cbiIpOwogICAgIGlmICgkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5nUHJvdG90eXBlUHV0RnVuY3Rpb24ifSkgewog
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1Zh
bHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7CkBAIC0xNDQyLDkgKzE0NDIsOSBAQCBz
dWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpT
T2JqZWN0KiAke2NsYXNzTmFtZX06OmNyZWF0ZVByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ7XG4iKTsKICAgICAgICAgaWYgKCRoYXNQYXJlbnQgJiYgJHBhcmVudENsYXNzTmFtZSBu
ZSAiSlNDOjpET01Ob2RlRmlsdGVyIikgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgcmV0dXJuIG5ldyAoZXhlYykgJHtjbGFzc05hbWV9UHJvdG90eXBlKGdsb2JhbE9iamVj
dCwgJHtjbGFzc05hbWV9UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoJHtwYXJlbnRDbGFzc05h
bWV9UHJvdG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCkpKTtcbiIpOworICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIG5ldyAoZXhlYykgJHtjbGFzc05hbWV9
UHJvdG90eXBlKGdsb2JhbE9iamVjdCwgJHtjbGFzc05hbWV9UHJvdG90eXBlOjpjcmVhdGVTdHJ1
Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCAke3BhcmVudENsYXNzTmFtZX1Qcm90b3R5cGU6OnNl
bGYoZXhlYywgZ2xvYmFsT2JqZWN0KSkpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gbmV3IChleGVjKSAke2NsYXNzTmFt
ZX1Qcm90b3R5cGUoZ2xvYmFsT2JqZWN0LCAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OmNyZWF0ZVN0
cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSk7XG4iKTsKKyAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBuZXcgKGV4ZWMpICR7Y2xhc3NOYW1l
fVByb3RvdHlwZShnbG9iYWxPYmplY3QsICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6Y3JlYXRlU3Ry
dWN0dXJlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QtPm9iamVjdFBy
b3RvdHlwZSgpKSk7XG4iKTsKICAgICAgICAgfQogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
In1cblxuIik7CiAgICAgfQpAQCAtMjg3Myw5ICsyODczLDkgQEAgc3ViIEdlbmVyYXRlQ29uc3Ry
dWN0b3JEZWNsYXJhdGlvbgogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTtcbiIpOwogICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvO1xuIik7
CiAKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKVxuIik7Cisg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6
SlNWYWx1ZSBwcm90b3R5cGUpXG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAge1xu
Iik7Ci0gICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1
cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7XG4iKTsKKyAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTtcbiIpOwogICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIiAgICB9XG4iKTsKIAogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgInBy
b3RlY3RlZDpcbiIpOwpAQCAtMjkwNyw3ICsyOTA3LDcgQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0
b3JEZWZpbml0aW9uCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiY29uc3QgQ2xhc3NJbmZvICR7
Y29uc3RydWN0b3JDbGFzc05hbWV9OjpzX2luZm8gPSB7IFwiJHt2aXNpYmxlQ2xhc3NOYW1lfUNv
bnN0cnVjdG9yXCIsICZET01Db25zdHJ1Y3Rvck9iamVjdDo6c19pbmZvLCAmJHtjb25zdHJ1Y3Rv
ckNsYXNzTmFtZX1UYWJsZSwgMCB9O1xuXG4iKTsKIAogICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiR7Y29uc3RydWN0b3JDbGFzc05hbWV9Ojoke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfShFeGVjU3Rh
dGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpXG4iKTsKLSAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdCgke2NvbnN0cnVjdG9y
Q2xhc3NOYW1lfTo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBl
KCkpLCBnbG9iYWxPYmplY3QpXG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgOiBE
T01Db25zdHJ1Y3Rvck9iamVjdCgke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6Y3JlYXRlU3RydWN0
dXJlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QtPm9iamVjdFByb3Rv
dHlwZSgpKSwgZ2xvYmFsT2JqZWN0KVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xu
Iik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZv
KSk7XG4iKTsKICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5oCmluZGV4IDI2N2Q3MWU0NzI4MjU4ODUz
ZjMxODUwOWQyMzM1NjVhYmQ0MmI3MmQuLjg1ODE1ZmJkNDY5ODQ1YWZlNjUwNGRmNmY2Yjk5YmU3
NGI3MmY2NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50aW1lT2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvQ1J1bnRpbWVPYmplY3QuaApAQCAt
NDQsOSArNDQsOSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5m
bzsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpT
VmFsdWUgcHJvdG90eXBlKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRl
U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAg
ICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5m
byk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5
cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENv
dW50LCAmc19pbmZvKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvYy9jX2luc3RhbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFu
Y2UuY3BwCmluZGV4IDI3YWZmZWIxN2M5NmQ1YjJlNzYxNDE4NDIzMWU5NjNlNzllM2E3OWIuLjIx
ZmFlNGYxZmNiN2U0Zjk4MzE5NmQ4OGI0M2I5MTg1ZTA1YzFlMTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9jL2NfaW5zdGFuY2UuY3BwCkBAIC0xMjAsOSArMTIwLDkgQEAgcHVibGljOgogICAgICAg
ICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAK
ICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuY3BwCmluZGV4IDk1ZDUxODAxOTQ5N2Rl
NDI5YmZiOGNlNzY4NjNkNTg1NmY5ZTFjYzMuLmIzMTE0MWU0YjkxYmI4MDQ3Y2Q0NDM2ZWFiOWIy
NGY4MzVhYjQxNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0ph
dmFJbnN0YW5jZUpTQy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2
YUluc3RhbmNlSlNDLmNwcApAQCAtMTI1LDkgKzEyNSw5IEBAIHB1YmxpYzoKICAgICAgICAgQVNT
RVJUKGluaGVyaXRzKCZzX2luZm8pKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAg
c3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvam5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuaAppbmRleCAxMmE4NWFlNGRlYTUxODdkMzA5
MTFmNDFkNGUwNDkxNDNiZDJlNDgwLi4wM2YxMTZmYWRmNWRhNDBlOGQ4OGY3NjhkMzIwZDE2NjNi
NDJkMjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhUnVu
dGltZU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50
aW1lT2JqZWN0LmgKQEAgLTQyLDkgKzQyLDkgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0
IENsYXNzSW5mbyBzX2luZm87CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFs
dWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNT
bG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0LmgKaW5kZXggZTlmYTEwZGMwNThk
MDdkODJjYmYyZWQ4ZjQxNDlhM2Y1OGNmNTVjZi4uYjI5YTMzMzk5OTViYjk1OWNiZWFlYTM0OWUz
ZmMyZDliNzFmOWE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvT2Jq
Q1J1bnRpbWVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9PYmpDUnVu
dGltZU9iamVjdC5oCkBAIC00Miw5ICs0Miw5IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25z
dCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBj
cmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1Zh
bHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3Vz
U2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tCmluZGV4IGUwYjE4ZjE0MjU1MWU3ZTgx
ZWVhMjkwMTA2ZGQ2NzgyYTlmYmJjNTcuLjRmOTNjZmE2YWY5NzE2ZGRkYjRmZDFkZWUzYzFjODQ5
ZjU1M2Y5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5z
dGFuY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5t
bQpAQCAtMTg0LDkgKzE4NCw5IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKGluaGVyaXRzKCZz
X2luZm8pKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0
ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1
Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUg
cHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3Rv
dHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90
Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0IENs
YXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9v
YmpjX3J1bnRpbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5o
CmluZGV4IDFjZWU4NWJjMjJjMWZjMDA1YThkZjcyMTk3YmM3ZjAwNjI4ZDFjNDEuLjRlZjBhZmQ1
NzM5N2VhNWY3NWZkNTgzNmEzNjc0NjA0NWJhMzcyODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9vYmpjL29iamNfcnVudGltZS5oCkBAIC0xMDMsOSArMTAzLDkgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKTsKICAgICB9CiAKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3Rv
dHlwZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5m
byk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfYXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgK
aW5kZXggYmQxZGEzMjE3MTY3YTAxOTdkYjY2NmU3ODUyZGJhMDk1NjU4OTgwNi4uOTU1NTU0NTJk
ZWY5NmFmMDZjYTY5NWRmNWRiMDhkMDdhOGE2YzA1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9hcnJheS5oCkBAIC01OCw5ICs1OCw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGds
b2JhbE9iamVjdC0+YXJyYXlQcm90b3R5cGUoKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQog
CiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9t
ZXRob2QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oCmluZGV4IGMw
YzlmMTYzNDA0YzVhOTgyZGMwOWVmZDNlMGQwM2Q1YjhlZjczNDcuLjlkZjc5NmViMDcxNWJmMzJi
MzRkMjIzZmI1MmIzYzgyNjJiYzZiZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX21ldGhvZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21l
dGhvZC5oCkBAIC00NSw5ICs0NSw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGdsb2JhbE9i
amVjdC0+ZnVuY3Rpb25Qcm90b3R5cGUoKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiBw
cm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCmluZGV4IDBkZWNk
MTc4NjQ4NDM5MDhjNjhkNTZkNjNmNDkwMTMxMzI4YWE0MDEuLmJiNmQwNTEwZjI4ZDQzZGI1NzUx
ODUwOWUxMGJkMTJhNDNkMzRhYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX29iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVj
dC5oCkBAIC02MSw5ICs2MSw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGdsb2JhbE9iamVj
dC0+b2JqZWN0UHJvdG90eXBlKCk7CiAgICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgIH0KIAogcHJvdGVj
dGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGQ3NzU3NzJiNWVmOWY5NmI0NmFjNGNhZDNhNWE3ODNm
NjI0ZmQ2Y2MuLmYxNzM1Yjg2YjQzNDZmNjYzYjVlZWZjNzE1MGZkNDY3NjcwNmFkYmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0wMy0xNSAgT2xpdmVyIEh1bnQgIDxv
bGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1ha2UgU3RydWN0dXJlIGNyZWF0aW9uIHJlcXVpcmUgYSBKU0dsb2JhbERhdGEK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NDM4CisK
KyAgICAgICAgTWVjaGFuaWNhbCBjaGFuZ2UgdG8gbWFrZSBhbGwgU3RydWN0dXJlIGNyZWF0aW9u
IHVzZSBhIEpTR2xvYmFsRGF0YSYKKworICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1Byb3h5SW5z
dGFuY2UubW06CisgICAgICAgIChXZWJLaXQ6OlByb3h5UnVudGltZU1ldGhvZDo6Y3JlYXRlU3Ry
dWN0dXJlKToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QuaDoK
KyAgICAgICAgKFdlYktpdDo6UHJveHlSdW50aW1lT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgor
CiAyMDExLTAzLTE1ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAg
ICAgIEZvcmdvdCB0byBzYXZlIGEgbW9kaWZpY2F0aW9uIHRvIHRoaXMgZmlsZSB3aGVuIGNvbW1p
dHRpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94
eUluc3RhbmNlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0
YW5jZS5tbQppbmRleCA4YTQxM2Q0MjhjMjc2NTk4OGM4NzY4ZTNjN2JmZTkzMDQxNzJhODA3Li5m
MjZiODVkY2VhMmEzOWZhNTM5ZjA4ODYzNDVmNWE1MTgyMDI0MzM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW0KQEAgLTE4Nyw5ICsx
ODcsOSBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAgICAg
fQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNW
YWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVT
dHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZv
KTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlw
ZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291
bnQsICZzX2luZm8pOwogICAgIH0KIAogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZv
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50
aW1lT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRp
bWVPYmplY3QuaAppbmRleCBmYzc3ODkwMmFmZTRjYTA0NTIyNzkyOTQ3MGFmZWI4NmRhODFmNzBk
Li5hMDdjODZjODg4ZTc3YmEzYmMxNjRjNGRhYzA3N2U4MmYyMDdmM2I0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QuaApA
QCAtNDEsOSArNDEsOSBAQCBwdWJsaWM6CiAKICAgICBQcm94eUluc3RhbmNlKiBnZXRJbnRlcm5h
bFByb3h5SW5zdGFuY2UoKSBjb25zdDsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3Ry
dWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6OlR5cGVJbmZv
KEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgc3RhdGljIGNv
bnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlNzRmOTNiMjBiMzE4Y2Q4
NWNkMTZlOWI5NzM3M2MwOWZlN2I1ZTQ1Li5jOTMwMTViZWUxZGE0NWQ2OTU5NTA5ZTNhMGQzYzQ5
NTZlNWM4NzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDMtMTUgIE9saXZl
ciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNYWtlIFN0cnVjdHVyZSBjcmVhdGlvbiByZXF1aXJlIGEgSlNH
bG9iYWxEYXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01NjQzOAorCisgICAgICAgIE1lY2hhbmljYWwgY2hhbmdlIHRvIG1ha2UgYWxsIFN0cnVjdHVy
ZSBjcmVhdGlvbiB1c2UgYSBKU0dsb2JhbERhdGEmLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwOgorICAgICAgICAoV2ViS2l0OjpKU05QTWV0
aG9kOjpKU05QTWV0aG9kKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
SlNOUE1ldGhvZC5oOgorICAgICAgICAoV2ViS2l0OjpKU05QTWV0aG9kOjpjcmVhdGVTdHJ1Y3R1
cmUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6SlNOUE9iamVjdDo6SlNOUE9iamVjdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaDoKKyAgICAgICAgKFdlYktp
dDo6SlNOUE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKwogMjAxMS0wMy0xNiAgQnJhZHkgRWlk
c29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2Jl
bi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9KU05QTWV0aG9kLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9KU05QTWV0aG9kLmNwcAppbmRleCBmYzczNTE5MDg2MTA1MWI4OWFiODgyYmQxMWU3YjFk
Yzg1YjM0ZGJiLi44YjM2ZDFkYWVmODA1ZmYzNzdjMzFlYmIwMDhjNTgzZTQzOTBkZTY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1l
dGhvZC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L0pTTlBNZXRob2QuY3BwCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY29u
c3QgQ2xhc3NJbmZvIEpTTlBNZXRob2Q6OnNfaW5mbyA9IHsgIk5QTWV0aG9kIiwgJkludGVybmFs
RnVuY3Rpb246OnNfaW5mbywgMCwgMCB9OwogCiBKU05QTWV0aG9kOjpKU05QTWV0aG9kKEV4ZWNT
dGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmll
ciYgbmFtZSwgTlBJZGVudGlmaWVyIG5wSWRlbnRpZmllcikKLSAgICA6IEludGVybmFsRnVuY3Rp
b24oJmV4ZWMtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LCBjcmVhdGVTdHJ1Y3R1cmUoZ2xv
YmFsT2JqZWN0LT5mdW5jdGlvblByb3RvdHlwZSgpKSwgbmFtZSkKKyAgICA6IEludGVybmFsRnVu
Y3Rpb24oJmV4ZWMtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LCBjcmVhdGVTdHJ1Y3R1cmUo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QtPmZ1bmN0aW9uUHJvdG90eXBlKCkpLCBu
YW1lKQogICAgICwgbV9ucElkZW50aWZpZXIobnBJZGVudGlmaWVyKQogewogICAgIEFTU0VSVChp
bmhlcml0cygmc19pbmZvKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaAppbmRleCBhOTEzYTk5ZDA1YWE0OGJkMjll
YWE3NzQ2YzM3MDkzMzNlNGNiNzA4Li5mMGMyNDI0YWRiZmIxYWJhMzc3NGIyOWJmY2FhNDYxOTNh
YjgzNGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvSlNOUE1ldGhvZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QTWV0aG9kLmgKQEAgLTQyLDkgKzQyLDkgQEAgcHVibGljOgogICAgIE5Q
SWRlbnRpZmllciBucElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX25wSWRlbnRpZmllcjsg
fQogCiBwcml2YXRlOiAgICAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4g
Y3JlYXRlU3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsK
KyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90
eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgIH0KIAogICAgIHZpcnR1YWwgSlNDOjpDYWxs
VHlwZSBnZXRDYWxsRGF0YShKU0M6OkNhbGxEYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKaW5kZXgg
MjcyNGYwZDY1OWM4MDRjYzVmYTc3N2U3ODViOTJkY2FiOGE3NDFmZi4uOTNmOWZjNWJiODcwOTQ1
NWU2MDQwMWU2YjlmY2YzNGZiNmMwNGFkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcApAQCAtNTAsNyAr
NTAsNyBAQCBzdGF0aWMgTlBJZGVudGlmaWVyIG5wSWRlbnRpZmllckZyb21JZGVudGlmaWVyKGNv
bnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIpCiBjb25zdCBDbGFzc0luZm8gSlNOUE9iamVjdDo6
c19pbmZvID0geyAiTlBPYmplY3QiLCAmSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpzX2luZm8s
IDAsIDAgfTsKIAogSlNOUE9iamVjdDo6SlNOUE9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBOUFJ1bnRpbWVPYmplY3RNYXAqIG9iamVjdE1hcCwgTlBPYmplY3QqIG5wT2JqZWN0
KQotICAgIDogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgY3JlYXRlU3Ry
dWN0dXJlKGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpKQorICAgIDogSlNPYmplY3RX
aXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgY3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVj
dC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSkKICAgICAs
IG1fb2JqZWN0TWFwKG9iamVjdE1hcCkKICAgICAsIG1fbnBPYmplY3QobnBPYmplY3QpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNO
UE9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pT
TlBPYmplY3QuaAppbmRleCBhZGFmZmE3ZjI5MWY5M2YyOWFkMmQ1YmQ5OWI4Yzg5YjliNmNiODg0
Li5lOGEwOGRhZDQ4N2UwMDdjOGY0Njg2Y2FlYjU0YTc0MTkwMmNjMzBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0
LmgKQEAgLTU1LDkgKzU1LDkgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xv
dCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEpTT2JqZWN0OjpTdHJ1Y3R1cmVG
bGFnczsKICAgICAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRl
U3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8
SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6
OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAg
ICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBK
U0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNT
bG90Q291bnQsICZzX2luZm8pOwogICAgIH0KIAogICAgIHZpcnR1YWwgSlNDOjpDYWxsVHlwZSBn
ZXRDYWxsRGF0YShKU0M6OkNhbGxEYXRhJik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85942</attachid>
            <date>2011-03-16 11:00:58 -0700</date>
            <delta_ts>2011-03-16 11:27:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56438-20110316110057.patch</filename>
            <type>text/plain</type>
            <size>130341</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODEyNTMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCmluZGV4IGNkMzA3YTY3NjVlNjk0ZGNiM2U3ODg2
ZjVjOTRiNWRmYzIyNzQ4YTAuLjAwMWM0MTYxNmRmMDg3NjA0ZTc4NjhkMDMwZTUxMzFkM2RiYjM2
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0
cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3Ry
dWN0b3IuaApAQCAtMzksOSArMzksOSBAQCBwdWJsaWM6CiAgICAgSlNPYmplY3RDYWxsQXNDb25z
dHJ1Y3RvckNhbGxiYWNrIGNhbGxiYWNrKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsYmFjazsgfQog
ICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90bykgCisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU1ZhbHVlIHByb3RvKSAKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUoZ2xvYmFsRGF0YSwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKIHByb3RlY3RlZDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oCmluZGV4IGQ4
YWU2MDgzNjgxY2ZlMjQ0NWVkYjIzZDc0N2Y0OTExOTY1ZDVhMmYuLjExZmI5NWM1YzEwZjIzOGM2
ODcxMjA3ZGY3OGYyMTM5MjhjYzFiZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0NhbGxiYWNrRnVuY3Rpb24uaApAQCAtMzksOSArMzksOSBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgLy8gSW50ZXJuYWxGdW5jdGlvbiBtaXNoLW1hc2hlcyBjb25zdHJ1Y3RvciBhbmQgZnVuY3Rp
b24gYmVoYXZpb3IgLS0gd2Ugc2hvdWxkIAogICAgIC8vIHJlZmFjdG9yIHRoZSBjb2RlIHNvIHRo
aXMgb3ZlcnJpZGUgaXNuJ3QgbmVjZXNzYXJ5Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90bykgCisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U1ZhbHVlIHByb3RvKSAKICAgICB7IAotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
cHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsgCisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOyAKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCmluZGV4IDczMmNjMWRiMTQwNTAz
NjU5MGEwZDhhYzFjMDA3MDIzMDE4ZDMwOGYuLmEwYWRiNDQ4Mjc5Zjk4NjA4MTg0ZGY4MTA0YjBi
YTg1OTRiZDNhMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09i
amVjdC5oCkBAIC0xMjgsOSArMTI4LDkgQEAgcHVibGljOgogICAgIEpTQ2xhc3NSZWYgY2xhc3NS
ZWYoKSBjb25zdCB7IHJldHVybiBtX2NhbGxiYWNrT2JqZWN0RGF0YS0+anNDbGFzczsgfQogICAg
IGJvb2wgaW5oZXJpdHMoSlNDbGFzc1JlZikgY29uc3Q7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvKSAKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTVmFsdWUgcHJvdG8pIAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBCYXNl
OjpBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyAKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEJhc2U6OkFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAogICAgIH0KICAg
ICAKICAgICBKU1ZhbHVlIGdldFByaXZhdGVQcm9wZXJ0eShjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q29udGV4dFJlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5j
cHAKaW5kZXggY2NhYjk1MzI2MDA0Y2NhODlmNzgxNWU4NWE1ZWVjODVkMWNkOGI2ZC4uZTVjNzc4
ZjliYzUwYWQ5ODdlMTA3ZDU1MmI5NzkwZTQ4YjBmOTFlZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcApAQCAtOTMsMTEgKzkzLDExIEBAIEpTR2xvYmFsQ29u
dGV4dFJlZiBKU0dsb2JhbENvbnRleHRDcmVhdGVJbkdyb3VwKEpTQ29udGV4dEdyb3VwUmVmIGdy
b3VwLCBKU0NsYXNzCiAjZW5kaWYKIAogICAgIGlmICghZ2xvYmFsT2JqZWN0Q2xhc3MpIHsKLSAg
ICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG5ldyAoZ2xvYmFsRGF0YS5nZXQo
KSkgSlNHbG9iYWxPYmplY3Q7CisgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qg
PSBuZXcgKGdsb2JhbERhdGEuZ2V0KCkpIEpTR2xvYmFsT2JqZWN0KCpnbG9iYWxEYXRhKTsKICAg
ICAgICAgcmV0dXJuIEpTR2xvYmFsQ29udGV4dFJldGFpbih0b0dsb2JhbFJlZihnbG9iYWxPYmpl
Y3QtPmdsb2JhbEV4ZWMoKSkpOwogICAgIH0KIAotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSBuZXcgKGdsb2JhbERhdGEuZ2V0KCkpIEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxP
YmplY3Q+KGdsb2JhbE9iamVjdENsYXNzLCBKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0
Pjo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSk7CisgICAgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCA9IG5ldyAoZ2xvYmFsRGF0YS5nZXQoKSkgSlNDYWxsYmFja09iamVjdDxKU0dsb2Jh
bE9iamVjdD4oZ2xvYmFsT2JqZWN0Q2xhc3MsIEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmpl
Y3Q+OjpjcmVhdGVTdHJ1Y3R1cmUoKmdsb2JhbERhdGEsIGpzTnVsbCgpKSk7CiAgICAgRXhlY1N0
YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CiAgICAgSlNWYWx1ZSBwcm90
b3R5cGUgPSBnbG9iYWxPYmplY3RDbGFzcy0+cHJvdG90eXBlKGV4ZWMpOwogICAgIGlmICghcHJv
dG90eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggYzQ5NzM2Y2VkYzlhOGZjYWM2Mzdl
MTZmZjE1MjI1ZWMyMjliMDVkMS4uMzQxYTBhNzEwOTI0ZjdhNmJmMDg1ZTE0M2MxNDNmZTQyZmJi
MmYxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMxIEBACisyMDExLTAz
LTE1ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBTdHJ1Y3R1cmUgY3JlYXRpb24gcmVx
dWlyZSBhIEpTR2xvYmFsRGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTY0MzgKKworICAgICAgICBNZWNoYW5pY2FsIGNoYW5nZSB0byBtYWtlIFN0
cnVjdHVyZTo6Y3JlYXRlIHJlcXVpcmUgSlNHbG9iYWxEYXRhJiwgYW5kCisgICAgICAgIHJlcXVp
cmUgYWxsIHVzZXJzIHRvIHByb3ZpZGUgdGhlIGdsb2JhbERhdGEuCisKKyAgICAgICAgKiBBUEkv
SlNDYWxsYmFja0NvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tDb25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja0Z1bmN0aW9u
Lmg6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKToK
KyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0NhbGxi
YWNrT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIEFQSS9KU0NvbnRleHRSZWYu
Y3BwOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAgICAgKiBkZWJ1Z2dlci9E
ZWJ1Z2dlckFjdGl2YXRpb24uY3BwOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckFjdGl2YXRpb246
OkRlYnVnZ2VyQWN0aXZhdGlvbik6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0
aW9uLmg6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyQWN0aXZhdGlvbjo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpERUZJTkVfU1RV
Ql9GVU5DVElPTik6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKEdsb2JhbE9iamVjdDo6
R2xvYmFsT2JqZWN0KToKKyAgICAgICAgKGZ1bmN0aW9uUnVuKToKKyAgICAgICAgKGpzY21haW4p
OgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmg6CisgICAgICAgIChKU0M6OkFyZ3VtZW50
czo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmg6
CisgICAgICAgIChKU0M6OkFycmF5UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAg
ICAqIHJ1bnRpbWUvQm9vbGVhbk9iamVjdC5oOgorICAgICAgICAoSlNDOjpCb29sZWFuT2JqZWN0
OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUluc3RhbmNlLmg6Cisg
ICAgICAgIChKU0M6OkRhdGVJbnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBy
dW50aW1lL0RhdGVQcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RGF0ZVByb3RvdHlwZTo6Y3Jl
YXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9ySW5zdGFuY2UuaDoKKyAgICAg
ICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50
aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUJhc2U6OmNyZWF0ZVN0
cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkV2YWxFeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAoSlNDOjpQcm9ncmFtRXhlY3V0YWJsZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAg
ICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Q
cm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9HZXR0ZXJTZXR0
ZXIuaDoKKyAgICAgICAgKEpTQzo6R2V0dGVyU2V0dGVyOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAg
ICAgICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpJbnRlcm5h
bEZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBUElWYWx1
ZVdyYXBwZXIuaDoKKyAgICAgICAgKEpTQzo6SlNBUElWYWx1ZVdyYXBwZXI6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgICogcnVudGltZS9KU0FjdGl2YXRpb24uaDoKKyAgICAgICAgKEpTQzo6
SlNBY3RpdmF0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJh
eS5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OkpTQXJyYXkpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNBcnJheS5oOgorICAgICAgICAoSlNDOjpKU0FycmF5OjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpKU0J5dGVB
cnJheTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTQnl0ZUFycmF5Lmg6
CisgICAgICAgIChKU0M6OkpTQnl0ZUFycmF5OjpKU0J5dGVBcnJheSk6CisgICAgICAgICogcnVu
dGltZS9KU0NlbGwuaDoKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpKU0NlbGw6OmNyZWF0ZUR1bW15
U3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uaDoKKyAgICAgICAgKEpT
Qzo6SlNGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xv
YmFsRGF0YS5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsRGF0YTo6c3RvcmVWUHRycyk6Cisg
ICAgICAgIChKU0M6OkpTR2xvYmFsRGF0YTo6SlNHbG9iYWxEYXRhKToKKyAgICAgICAgKiBydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OnJl
c2V0KToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6
OkpTR2xvYmFsT2JqZWN0OjpKU0dsb2JhbE9iamVjdCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFs
T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVj
dC5oOgorICAgICAgICAoSlNDOjpKU05vdEFuT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU09OT2JqZWN0Ojpj
cmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAg
ICAoSlNDOjpKU09iamVjdDo6Y3JlYXRlSW5oZXJpdG9ySUQpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgIChKU0M6OkpTTm9uRmluYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
IChKU0M6OkpTRmluYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OmNy
ZWF0ZUVtcHR5T2JqZWN0U3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmluaGVy
aXRvcklEKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oOgor
ICAgICAgICAoSlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6
CisgICAgICAgICogcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmg6CisgICAgICAgIChK
U0M6OkpTUHJvcGVydHlOYW1lSXRlcmF0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICog
cnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTU3RhdGljU2Nv
cGVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5o
OgorICAgICAgICAoSlNDOjpSb3BlQnVpbGRlcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAg
KiBydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNWYXJpYWJsZU9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTV3JhcHBlck9iamVj
dC5oOgorICAgICAgICAoSlNDOjpKU1dyYXBwZXJPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9KU1pvbWJpZS5oOgorICAgICAgICAoSlNDOjpKU1pvbWJpZTo6Y3Jl
YXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL01hdGhPYmplY3QuaDoKKyAgICAgICAg
KEpTQzo6TWF0aE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL05h
dGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0
cnVjdG9yOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBydW50aW1lL05hdGl2
ZUVycm9yQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6TmF0aXZlRXJyb3JDb25zdHJ1Y3Rv
cjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL051bWJlckNvbnN0cnVjdG9y
Lmg6CisgICAgICAgIChKU0M6Ok51bWJlckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyT2JqZWN0Lmg6CisgICAgICAgIChKU0M6Ok51bWJlck9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVj
dG9yLmg6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6
UmVnRXhwQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9S
ZWdFeHBPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1
cmUpOgorICAgICAgICAqIHJ1bnRpbWUvU2NvcGVDaGFpbi5oOgorICAgICAgICAoSlNDOjpTY29w
ZUNoYWluTm9kZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09i
amVjdC5oOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZC5o
OgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZDo6
Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oOgor
ICAgICAgICAoSlNDOjpTdHJpbmdQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
ICogcnVudGltZS9TdHJ1Y3R1cmUuaDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpjcmVhdGUp
OgorCiAyMDExLTAzLTE1ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLmV4cAppbmRleCBmYjZiYmUzYjkzMGE4NDczNGU5Yzg0YmE5OTdlYjM1MTQ1MmRj
ZjEzLi5hNzViYjBjNmM0OWM2ZDIxMjRiNWFmZDBjZDQxYzViMDQwZjk1YWEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTExMyw3ICsxMTMsNyBAQCBfX1pO
M0pTQzEwSlNGdW5jdGlvbjZzX2luZm9FCiBfX1pOM0pTQzEwdGhyb3dFcnJvckVQTlNfOUV4ZWNT
dGF0ZUVOU183SlNWYWx1ZUUKIF9fWk4zSlNDMTB0aHJvd0Vycm9yRVBOU185RXhlY1N0YXRlRVBO
U184SlNPYmplY3RFCiBfX1pOM0pTQzExSlNCeXRlQXJyYXkxM3NfZGVmYXVsdEluZm9FCi1fX1pO
M0pTQzExSlNCeXRlQXJyYXkxNWNyZWF0ZVN0cnVjdHVyZUVOU183SlNWYWx1ZUVQS05TXzlDbGFz
c0luZm9FCitfX1pOM0pTQzExSlNCeXRlQXJyYXkxNWNyZWF0ZVN0cnVjdHVyZUVSTlNfMTJKU0ds
b2JhbERhdGFFTlNfN0pTVmFsdWVFUEtOU185Q2xhc3NJbmZvRQogX19aTjNKU0MxMUpTQnl0ZUFy
cmF5QzFFUE5TXzlFeGVjU3RhdGVFTjNXVEYxN05vbk51bGxQYXNzUmVmUHRySU5TXzlTdHJ1Y3R1
cmVFRUVQTlMzXzlCeXRlQXJyYXlFCiBfX1pOM0pTQzExTWFya2VkU3BhY2UyMWFsbG9jYXRlRnJv
bVNpemVDbGFzc0VSTlMwXzlTaXplQ2xhc3NFCiBfX1pOM0pTQzExUGFyc2VyQXJlbmE1cmVzZXRF
dgpAQCAtMjg3LDcgKzI4Nyw2IEBAIF9fWk4zSlNDOEpTT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQ
TlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDOEpTT2JqZWN0MTRkZWxl
dGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVqCiBfX1pOM0pTQzhKU09iamVjdDE1dW53cmFwcGVk
T2JqZWN0RXYKIF9fWk4zSlNDOEpTT2JqZWN0MTZnZXRQcm9wZXJ0eU5hbWVzRVBOU185RXhlY1N0
YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RU5TXzE1RW51bWVyYXRpb25Nb2RlRQotX19aTjNK
U0M4SlNPYmplY3QxN2NyZWF0ZUluaGVyaXRvcklERXYKIF9fWk4zSlNDOEpTT2JqZWN0MTdkZWZp
bmVPd25Qcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9w
ZXJ0eURlc2NyaXB0b3JFYgogX19aTjNKU0M4SlNPYmplY3QxN3B1dERpcmVjdEZ1bmN0aW9uRVBO
U185RXhlY1N0YXRlRVBOU18xMEpTRnVuY3Rpb25FagogX19aTjNKU0M4SlNPYmplY3QxN3B1dERp
cmVjdEZ1bmN0aW9uRVBOU185RXhlY1N0YXRlRVBOU18xNkludGVybmFsRnVuY3Rpb25FagpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgppbmRl
eCBkYzgxMjZkMTc4OWI0NGFhY2Q1NzEwNzAyY2FhMGJlYWNkM2ZmZjlkLi43NWM2ZDNlZmE4NDk5
OGFlNWE2YjBjNTlkMWU3MjMwNjA1ZjEyOTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LmRlZgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtMTAyLDE0ICsxMDIsMTIgQEAgRVhQ
T1JUUwogICAgID9jcmVhdGVAUmVnRXhwQEpTQ0BAU0E/QVY/JFBhc3NSZWZQdHJAVlJlZ0V4cEBK
U0NAQEBXVEZAQFBBVkpTR2xvYmFsRGF0YUAyQEFCVlVTdHJpbmdAMkBXNFJlZ0V4cEZsYWdzQDJA
QFoKICAgICA/Y3JlYXRlRW1wdHlTdHJpbmdAU21hbGxTdHJpbmdzQEpTQ0BAQUFFWFBBVkpTR2xv
YmFsRGF0YUAyQEBaCiAgICAgP2NyZWF0ZUVycm9yQEpTQ0BAWUFQQVZKU09iamVjdEAxQFBBVkV4
ZWNTdGF0ZUAxQEFCVlVTdHJpbmdAMUBAWgotICAgID9jcmVhdGVJbmhlcml0b3JJREBKU09iamVj
dEBKU0NAQEFBRVBBVlN0cnVjdHVyZUAyQFhaCiAgICAgP2NyZWF0ZUludGVycnVwdGVkRXhlY3V0
aW9uRXhjZXB0aW9uQEpTQ0BAWUFQQVZKU09iamVjdEAxQFBBVkpTR2xvYmFsRGF0YUAxQEBaCiAg
ICAgP2NyZWF0ZUxlYWtlZEBKU0dsb2JhbERhdGFASlNDQEBTQT9BVj8kUGFzc1JlZlB0ckBWSlNH
bG9iYWxEYXRhQEpTQ0BAQFdURkBAVzRUaHJlYWRTdGFja1R5cGVAMkBAWgogICAgID9jcmVhdGVS
YW5nZUVycm9yQEpTQ0BAWUFQQVZKU09iamVjdEAxQFBBVkV4ZWNTdGF0ZUAxQEFCVlVTdHJpbmdA
MUBAWgogICAgID9jcmVhdGVSZWZlcmVuY2VFcnJvckBKU0NAQFlBUEFWSlNPYmplY3RAMUBQQVZF
eGVjU3RhdGVAMUBBQlZVU3RyaW5nQDFAQFoKICAgICA/Y3JlYXRlU2luZ2xlQ2hhcmFjdGVyU3Ry
aW5nQFNtYWxsU3RyaW5nc0BKU0NAQEFBRVhQQVZKU0dsb2JhbERhdGFAMkBFQFoKICAgICA/Y3Jl
YXRlU3RhY2tPdmVyZmxvd0Vycm9yQEpTQ0BAWUFQQVZKU09iamVjdEAxQFBBVkV4ZWNTdGF0ZUAx
QEBaCi0gICAgP2NyZWF0ZVN0cnVjdHVyZUBKU0J5dGVBcnJheUBKU0NAQFNBP0FWPyRQYXNzUmVm
UHRyQFZTdHJ1Y3R1cmVASlNDQEBAV1RGQEBWSlNWYWx1ZUAyQFBCVUNsYXNzSW5mb0AyQEBaCiAg
ICAgP2NyZWF0ZVN5bnRheEVycm9yQEpTQ0BAWUFQQVZKU09iamVjdEAxQFBBVkV4ZWNTdGF0ZUAx
QEFCVlVTdHJpbmdAMUBAWgogICAgID9jcmVhdGVUYWJsZUBIYXNoVGFibGVASlNDQEBBQkVYUEFW
SlNHbG9iYWxEYXRhQDJAQFoKICAgICA/Y3JlYXRlVGhyZWFkQFdURkBAWUFJUDZBUEFYUEFYQFow
QFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzdlNmVlN2RlNzI4OWRjOWRkZGI5
ZDAyOWYyYWE4NWVlM2RlNzA0NC4uMTIxYWRiOTVkYjdhY2RhM2Y2OTczYTY4OWM4OWI5NDBkNWZj
YTMxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2MzgsNiArMjYzOCw3IEBA
CiAJCQl9OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDE0OUMyNzcxMDg5MDJBRkUwMDhB
OUVGQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIkphdmFTY3Jp
cHRDb3JlIiAqLzsKIAkJCWNvbXBhdGliaWxpdHlWZXJzaW9uID0gIlhjb2RlIDMuMSI7CisJCQlk
ZXZlbG9wbWVudFJlZ2lvbiA9IEVuZ2xpc2g7CiAJCQloYXNTY2FubmVkRm9yRW5jb2RpbmdzID0g
MTsKIAkJCWtub3duUmVnaW9ucyA9ICgKIAkJCQlFbmdsaXNoLApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAppbmRleCA2MmEy
ZTU0ZTFiYWI5MmMyZWZjMmVmMTFmNGNiODdhM2I2YjdjODBhLi41MGJhNzQ2ZWVkMTZkYjMwYWJk
MjhlY2M0MDRkZjdjMGI3YTgwNzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcApAQCAtMzEsNyArMzEsNyBAQAogbmFt
ZXNwYWNlIEpTQyB7CiAKIERlYnVnZ2VyQWN0aXZhdGlvbjo6RGVidWdnZXJBY3RpdmF0aW9uKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNPYmplY3QqIGFjdGl2YXRpb24pCi0gICAgOiBKU05v
bkZpbmFsT2JqZWN0KERlYnVnZ2VyQWN0aXZhdGlvbjo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgp
KSkKKyAgICA6IEpTTm9uRmluYWxPYmplY3QoRGVidWdnZXJBY3RpdmF0aW9uOjpjcmVhdGVTdHJ1
Y3R1cmUoZ2xvYmFsRGF0YSwganNOdWxsKCkpKQogewogICAgIEFTU0VSVChhY3RpdmF0aW9uKTsK
ICAgICBBU1NFUlQoYWN0aXZhdGlvbi0+aXNBY3RpdmF0aW9uT2JqZWN0KCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCmluZGV4
IDAxYTQ5MDczMzYxYjBkNjQxMzliZDQ2N2NiZWFhMDg1ZjE0ZTkyMjkuLmYyMmQyZmZiZDkxOTQz
YWU0OGZjOTNmM2M3ZTgwYTIxYWJhNGM5NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKQEAgLTQ5LDkgKzQ5LDkgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgSlNWYWx1ZSBsb29rdXBHZXR0ZXIoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICAgICAgdmlydHVhbCBK
U1ZhbHVlIGxvb2t1cFNldHRlcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUpOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3Ry
dWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKSAKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVl
IHByb3RvdHlwZSkgCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5v
bnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAogICAgICAgICB9CiAK
ICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFN0dWJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCmluZGV4
IGZlNTFhM2ZjY2ExZTU0ZDhmMmExMTEyYzk1ZDhjNmMxMTBmYzhlNDkuLjEwYTJiNjA1MjEzNjFj
M2ZkZjUwYzIzNjY3Mjg3ZTdkZjc0MjIzNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUU3R1YnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
U3R1YnMuY3BwCkBAIC0xMTc0LDcgKzExNzQsNyBAQCBERUZJTkVfU1RVQl9GVU5DVElPTihFbmNv
ZGVkSlNWYWx1ZSwgb3BfY3JlYXRlX3RoaXMpCiAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmU7CiAg
ICAgSlNWYWx1ZSBwcm90byA9IHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCk7CiAgICAgaWYg
KHByb3RvLmlzT2JqZWN0KCkpCi0gICAgICAgIHN0cnVjdHVyZSA9IGFzT2JqZWN0KHByb3RvKS0+
aW5oZXJpdG9ySUQoKTsKKyAgICAgICAgc3RydWN0dXJlID0gYXNPYmplY3QocHJvdG8pLT5pbmhl
cml0b3JJRCgqc3RhY2tGcmFtZS5nbG9iYWxEYXRhKTsKICAgICBlbHNlCiAgICAgICAgIHN0cnVj
dHVyZSA9IGNvbnN0cnVjdG9yLT5zY29wZSgpLT5nbG9iYWxPYmplY3QtPmVtcHR5T2JqZWN0U3Ry
dWN0dXJlKCk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChjYWxs
RnJhbWUsIHN0cnVjdHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNj
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDE4NzM2NTkxMjhiOWNh
Nzg0MjMwZTAzZmZjZWZiNWVhM2VkZjBkNWMuLjhjY2IwMzk4NTA2YmQ5YTMxYmRhNmE3OWM5MDZk
N2IxNGQ0MTRmODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC0xNDEsMTQgKzE0MSwxNCBAQCBs
b25nIFN0b3BXYXRjaDo6Z2V0RWxhcHNlZE1TKCkKIAogY2xhc3MgR2xvYmFsT2JqZWN0IDogcHVi
bGljIEpTR2xvYmFsT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBHbG9iYWxPYmplY3QoY29uc3QgVmVj
dG9yPFVTdHJpbmc+JiBhcmd1bWVudHMpOworICAgIEdsb2JhbE9iamVjdChKU0dsb2JhbERhdGEm
LCBjb25zdCBWZWN0b3I8VVN0cmluZz4mIGFyZ3VtZW50cyk7CiAgICAgdmlydHVhbCBVU3RyaW5n
IGNsYXNzTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJnbG9iYWwiOyB9CiB9OwogQ09NUElMRV9BU1NF
UlQoIUlzSW50ZWdlcjxHbG9iYWxPYmplY3Q+Ojp2YWx1ZSwgV1RGX0lzSW50ZWdlcl9HbG9iYWxP
YmplY3RfZmFsc2UpOwogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChHbG9iYWxPYmplY3QpOwog
Ci1HbG9iYWxPYmplY3Q6Okdsb2JhbE9iamVjdChjb25zdCBWZWN0b3I8VVN0cmluZz4mIGFyZ3Vt
ZW50cykKLSAgICA6IEpTR2xvYmFsT2JqZWN0KCkKK0dsb2JhbE9iamVjdDo6R2xvYmFsT2JqZWN0
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgVmVjdG9yPFVTdHJpbmc+JiBhcmd1bWVu
dHMpCisgICAgOiBKU0dsb2JhbE9iamVjdChnbG9iYWxEYXRhKQogewogICAgIHB1dERpcmVjdEZ1
bmN0aW9uKGdsb2JhbEV4ZWMoKSwgbmV3IChnbG9iYWxFeGVjKCkpIEpTRnVuY3Rpb24oZ2xvYmFs
RXhlYygpLCB0aGlzLCBmdW5jdGlvblN0cnVjdHVyZSgpLCAxLCBJZGVudGlmaWVyKGdsb2JhbEV4
ZWMoKSwgImRlYnVnIiksIGZ1bmN0aW9uRGVidWcpKTsKICAgICBwdXREaXJlY3RGdW5jdGlvbihn
bG9iYWxFeGVjKCksIG5ldyAoZ2xvYmFsRXhlYygpKSBKU0Z1bmN0aW9uKGdsb2JhbEV4ZWMoKSwg
dGhpcywgZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMSwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJw
cmludCIpLCBmdW5jdGlvblByaW50KSk7CkBAIC0yMTIsNyArMjEyLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJ1bihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKCFm
aWxsQnVmZmVyV2l0aENvbnRlbnRzT2ZGaWxlKGZpbGVOYW1lLCBzY3JpcHQpKQogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93RXJyb3IoZXhlYywgY3JlYXRlRXJyb3IoZXhlYywg
IkNvdWxkIG5vdCBvcGVuIGZpbGUuIikpKTsKIAotICAgIEdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0ID0gbmV3ICgmZXhlYy0+Z2xvYmFsRGF0YSgpKSBHbG9iYWxPYmplY3QoVmVjdG9yPFVTdHJp
bmc+KCkpOworICAgIEdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbmV3ICgmZXhlYy0+Z2xv
YmFsRGF0YSgpKSBHbG9iYWxPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBWZWN0b3I8VVN0cmlu
Zz4oKSk7CiAKICAgICBTdG9wV2F0Y2ggc3RvcFdhdGNoOwogICAgIHN0b3BXYXRjaC5zdGFydCgp
OwpAQCAtNTM2LDcgKzUzNiw3IEBAIGludCBqc2NtYWluKGludCBhcmdjLCBjaGFyKiogYXJndiwg
SlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQogICAgIE9wdGlvbnMgb3B0aW9uczsKICAgICBwYXJz
ZUFyZ3VtZW50cyhhcmdjLCBhcmd2LCBvcHRpb25zLCBnbG9iYWxEYXRhKTsKIAotICAgIEdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbmV3IChnbG9iYWxEYXRhKSBHbG9iYWxPYmplY3Qob3B0
aW9ucy5hcmd1bWVudHMpOworICAgIEdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbmV3IChn
bG9iYWxEYXRhKSBHbG9iYWxPYmplY3QoKmdsb2JhbERhdGEsIG9wdGlvbnMuYXJndW1lbnRzKTsK
ICAgICBib29sIHN1Y2Nlc3MgPSBydW5XaXRoU2NyaXB0cyhnbG9iYWxPYmplY3QsIG9wdGlvbnMu
c2NyaXB0cywgb3B0aW9ucy5kdW1wKTsKICAgICBpZiAob3B0aW9ucy5pbnRlcmFjdGl2ZSAmJiBz
dWNjZXNzKQogICAgICAgICBydW5JbnRlcmFjdGl2ZShnbG9iYWxPYmplY3QpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAppbmRleCA5MGMzZjljYjg3ODUxOTRiNTRm
NzRkZjI1NTJlZGE2NjVhOTI2MDE4Li5iYjZiZjMyYWU3Mzk0ODY3Y2YwOTlhZDFlMWI3NGFkMjQ1
YjRkNjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVu
dHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaApAQCAt
OTIsOSArOTIsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIGQtPnJlZ2lzdGVycyA9
ICZhY3RpdmF0aW9uLT5yZWdpc3RlckF0KDApOwogICAgICAgICB9CiAKLSAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUp
IAorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKSAKICAgICAgICAgeyAK
LSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZv
KTsgCisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Ns
b3RDb3VudCwgJnNfaW5mbyk7IAogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaAppbmRleCBlNDFkOGNh
ODNmYTkyZTJkNmI3Y2QxZjM3MjE5OTliOWMxZTE0NDM3Li45NjY0MWJkMmJiYmM0NDFmMTBmYzc0
NTQ2MDJjYzcxOWI4ZTVlZWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheVByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5UHJvdG90eXBlLmgKQEAgLTM1LDkgKzM1LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKLSAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisg
ICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAg
ICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUs
IFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50
LCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oCmluZGV4IGUyYWYwYzI2YmNiNzM2ZmYz
ZDYyYzRiMWY3ZGJjYjZkNzc2ZGQ0ODAuLmVmMmQ0MDM0ZDU1MzRmNDgwY2VjNjExODVjZGM0Y2Fk
MDczZjcwMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xl
YW5PYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2Jq
ZWN0LmgKQEAgLTMxLDkgKzMxLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGlj
IGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAgICAgICAgIAotICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOwogICAgICAgICB9CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EYXRlSW5zdGFuY2UuaAppbmRleCBlM2YzYmU5ODBiY2VlOGNkMzljOGQzMjU5NWU3ZmJh
YTc0MGEzNThiLi42Yzk3Nzg5N2Q5ZGFjYmU3ZmQxYWQwN2Q5YjM1YzJmZWVhY2E3MjI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaApAQCAtNTMsOSAr
NTMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBjYWxjdWxhdGVHcmVn
b3JpYW5EYXRlVGltZVVUQyhleGVjKTsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAg
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwg
JnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmgKaW5kZXggODYxNWJlZmU4OTYwOTdkOWZkZjdh
ZDQ1NzYyYWExNzNiZWYxMzRlZC4uMGViYmVkYzdlMzAyZDBhZDc3NzI3NTIxN2Y3YTMxYTFiZGY1
YjQyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3Rv
dHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUu
aApAQCAtMzYsOSArMzYsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgY29u
c3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1
cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAg
ICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FcnJvckluc3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvckluc3RhbmNlLmgKaW5kZXggYzFiZWVmNzc1MmNlMTAwMmIxMmE1ZWZkMDM2M2JkNmM5
YWY2ZWY1ZC4uODJkYmYwZjU2MzgyZWJjMDg1NDJkNTcxNGIxNjNiZWM5YjZiNzQyMSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaApAQCAtMjksOSAr
MjksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBjb25z
dCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVy
ZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAg
ICAgIH0KIAogICAgICAgICBzdGF0aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRlKEpTR2xvYmFsRGF0
YSosIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4sIGNvbnN0IFVTdHJpbmcmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAppbmRleCAyZmYyYjg1ZmU4ZjM3
ZDIwYmM4NzA4YzdlNmE0MWM0ZmRiMTBjMmJjLi43YTQ4ZDZjNmM1YzI1ZmI2NDY0MGRlMjEwYmRi
OTdkODkwNmIxN2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
eGVjdXRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJs
ZS5oCkBAIC02NSw3ICs2NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJu
IG1fbnVtUGFyYW1ldGVyc0ZvckNhbGwgPT0gTlVNX1BBUkFNRVRFUlNfSVNfSE9TVDsKICAgICAg
ICAgfQogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0
dXJlKEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBl
SW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAw
KTsgfQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVy
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAwKTsgfQogCiAgICAgcHJvdGVjdGVk
OgogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSAwOwpAQCAt
MjM3LDcgKzIzNyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIGdlbmVy
YXRlZEpJVENvZGVGb3JDYWxsKCk7CiAgICAgICAgIH0KICNlbmRpZgotICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvKSB7IHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgMCk7IH0KKyAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91
c1Nsb3RDb3VudCwgMCk7IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc01hcmtDaGlsZHJlbiB8IFNjcmlwdEV4
ZWN1dGFibGU6OlN0cnVjdHVyZUZsYWdzOwpAQCAtMjgyLDcgKzI4Miw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICB9CiAjZW5kaWYKICAgICAgICAgCi0gICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAwKTsgfQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpT
VmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3Rv
LCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENv
dW50LCAwKTsgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzTWFya0NoaWxkcmVuIHwgU2NyaXB0RXhlY3V0YWJs
ZTo6U3RydWN0dXJlRmxhZ3M7CkBAIC0zNzIsNyArMzcyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIHZvaWQgZGlzY2FyZENvZGUoKTsKICAgICAgICAgdm9pZCBtYXJrQ2hpbGRyZW4oTWFy
a1N0YWNrJik7CiAgICAgICAgIHN0YXRpYyBGdW5jdGlvbkV4ZWN1dGFibGUqIGZyb21HbG9iYWxD
b2RlKGNvbnN0IElkZW50aWZpZXImLCBFeGVjU3RhdGUqLCBEZWJ1Z2dlciosIGNvbnN0IFNvdXJj
ZUNvZGUmLCBKU09iamVjdCoqIGV4Y2VwdGlvbik7Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAwKTsgfQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFs
dWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBU
eXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50
LCAwKTsgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKEpTR2xv
YmFsRGF0YSosIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUmLCBib29s
IGZvcmNlVXNlc0FyZ3VtZW50cywgRnVuY3Rpb25QYXJhbWV0ZXJzKiwgYm9vbCwgaW50IGZpcnN0
TGluZSwgaW50IGxhc3RMaW5lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9GdW5jdGlvblByb3RvdHlwZS5oCmluZGV4IGZiMGJiNDg5MjRhMDUyMmFjOWM2MzJlNzMyNmNm
MmI1ZjFmYWM3NzEuLjQ0N2YwMGJkODEwZjVlNTllZjc5NmE1ODgyZWExY2Y2ZDRmMjVjODEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUu
aApAQCAtMzAsOSArMzAsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRnVuY3Rpb25Qcm90
b3R5cGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1
Y3R1cmU+KTsKICAgICAgICAgdm9pZCBhZGRGdW5jdGlvblByb3BlcnRpZXMoRXhlY1N0YXRlKiwg
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqIGZ1bmN0aW9uU3RydWN0dXJlLCBKU0Z1bmN0aW9u
KiogY2FsbEZ1bmN0aW9uLCBKU0Z1bmN0aW9uKiogYXBwbHlGdW5jdGlvbik7CiAKLSAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90
bykKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvKQogICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9HZXR0ZXJTZXR0ZXIuaAppbmRleCA2OGE4YzcwNzBiYWYzZGJkNWI3ZmM3YjQ1YjIy
MDdjZDJmYzI0OGNlLi44MjQxMjc1ZjRkMjBkODUzMjEwZmI5ZjRhZDBmZDE2NmE4MzQxODA1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaApAQCAtNDcs
OSArNDcsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBzZXRHZXR0ZXIoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU09iamVjdCogZ2V0dGVyKSB7IG1fZ2V0dGVyLnNldChnbG9i
YWxEYXRhLCB0aGlzLCBnZXR0ZXIpOyB9CiAgICAgICAgIEpTT2JqZWN0KiBzZXR0ZXIoKSBjb25z
dCB7IHJldHVybiBtX3NldHRlci5nZXQoKTsgfQogICAgICAgICB2b2lkIHNldFNldHRlcihKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTT2JqZWN0KiBzZXR0ZXIpIHsgbV9zZXR0ZXIuc2V0KGds
b2JhbERhdGEsIHRoaXMsIHNldHRlcik7IH0KLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKEdldHRlclNldHRlclR5cGUs
IE92ZXJyaWRlc01hcmtDaGlsZHJlbiksIEFub255bW91c1Nsb3RDb3VudCwgMCk7CisgICAgICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBl
SW5mbyhHZXR0ZXJTZXR0ZXJUeXBlLCBPdmVycmlkZXNNYXJrQ2hpbGRyZW4pLCBBbm9ueW1vdXNT
bG90Q291bnQsIDApOwogICAgICAgICB9CiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBi
b29sIGlzR2V0dGVyU2V0dGVyKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKaW5kZXggODQyN2I4Y2EyNGU0YTZhODc1Zjc1NTYx
OWVlOGJjOGEyNmM2Mzc0Zi4uMDhjOThhNTM4MGYxNzI5NTM2ZWQ5OTE5ZmZiYmI4NjU0OTBhYTE5
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5j
dGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rp
b24uaApAQCAtMzksOSArMzksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgY29uc3QgVVN0
cmluZyBkaXNwbGF5TmFtZShFeGVjU3RhdGUqKTsKICAgICAgICAgY29uc3QgVVN0cmluZyBjYWxj
dWxhdGVkRGlzcGxheU5hbWUoRXhlY1N0YXRlKik7CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90bykgCisgICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90bykgCiAgICAgICAgIHsgCi0gICAgICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCisgICAgICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCiAgICAg
ICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQVBJVmFsdWVXcmFwcGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FQSVZhbHVlV3JhcHBlci5oCmluZGV4IDQzZGQwZDM5YTc4ODI2YzYyMjdjYmM4Y2Nj
YmQ5ZjA3NDdlZDYwMDMuLjU0ZmU5MDlhYmNhMGE0NDBhNTk2YjcxMGNhNTVmMWIwMDBlNzFlOTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQVBJVmFsdWVXcmFw
cGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBUElWYWx1ZVdyYXBw
ZXIuaApAQCAtMzUsOSArMzUsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB2aXJ0dWFs
IGJvb2wgaXNBUElWYWx1ZVdyYXBwZXIoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBw
cm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3Ry
dWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5
cGVJbmZvKENvbXBvdW5kVHlwZSwgT3ZlcnJpZGVzTWFya0NoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0
UHJvcGVydHlOYW1lcyksIEFub255bW91c1Nsb3RDb3VudCwgMCk7CisgICAgICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhDb21w
b3VuZFR5cGUsIE92ZXJyaWRlc01hcmtDaGlsZHJlbiB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFt
ZXMpLCBBbm9ueW1vdXNTbG90Q291bnQsIDApOwogICAgICAgICB9CiAKICAgICAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCmluZGV4IGViYzk5ZjFl
YzBlNTUyYTM5ODhkZGUwMTFjMzA4MjFlYjY5Y2ZkMTguLjJhOTAzOTA4Njc1N2E2YWE1MmE5ZjQz
MTkzZmY2YmZiNzBhNDg5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QWN0aXZhdGlvbi5oCkBAIC02Niw3ICs2Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAK
ICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKLSAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90bykgeyBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgfQorICAgICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255
bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IH0KIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVy
dHlTbG90IHwgTmVlZHNUaGlzQ29udmVyc2lvbiB8IE92ZXJyaWRlc01hcmtDaGlsZHJlbiB8IE92
ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBKU1ZhcmlhYmxlT2JqZWN0OjpTdHJ1Y3R1cmVGbGFn
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKaW5kZXggODIyYjg0
Y2RkZDZmMjY1NDY2MmZlY2E2NmJlY2JiOGFmYTkyMjQxNi4uMWQ2MjFmZTlmOTBkMDRjMzRmZGNh
MjIyYTllZmJlNDEyNTBiNWUyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
cnJheS5jcHAKQEAgLTEyNyw3ICsxMjcsNyBAQCBpbmxpbmUgdm9pZCBKU0FycmF5OjpjaGVja0Nv
bnNpc3RlbmN5KENvbnNpc3RlbmN5Q2hlY2tUeXBlKQogI2VuZGlmCiAKIEpTQXJyYXk6OkpTQXJy
YXkoVlB0clN0ZWFsaW5nSGFja1R5cGUpCi0gICAgOiBKU05vbkZpbmFsT2JqZWN0KGNyZWF0ZVN0
cnVjdHVyZShqc051bGwoKSkpCisgICAgOiBKU05vbkZpbmFsT2JqZWN0KFN0cnVjdHVyZTo6Y3Jl
YXRlKFN0cnVjdHVyZTo6VlB0clN0ZWFsaW5nSGFjaywgJnNfaW5mbykpCiB7CiAgICAgQVNTRVJU
KGluaGVyaXRzKCZzX2luZm8pKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJh
eS5oCmluZGV4IDI0ZGVmN2IwNDNjOGNhYmUzNmU0OTUxZTI4OGUxYmE3MzY1NmU0ZDMuLjlhNTRh
YWI0Y2ZkZjQ3MmEyMTViZTVhMDM3OGE1NDc3Y2RmMDRlNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FycmF5LmgKQEAgLTEyNCw5ICsxMjQsOSBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgdm9pZCBmaWxsQXJnTGlzdChFeGVjU3RhdGUqLCBNYXJrZWRBcmd1bWVudEJ1ZmZl
ciYpOwogICAgICAgICB2b2lkIGNvcHlUb1JlZ2lzdGVycyhFeGVjU3RhdGUqLCBSZWdpc3Rlcios
IHVpbnQzMl90KTsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0
ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1Zh
bHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBB
bm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAg
ICAgICAgIAogICAgICAgICBpbmxpbmUgdm9pZCBtYXJrQ2hpbGRyZW5EaXJlY3QoTWFya1N0YWNr
JiBtYXJrU3RhY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNCeXRlQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJy
YXkuY3BwCmluZGV4IGFlNzM1ZGMzZDRkZmFiNjEyZWM3YmJmNTg1NjUyYTc5MTZjNmM3OGQuLmZi
YWVhMWRmNmFhMmNlZjgwZDY3ZDQxMWRlMjQ5OWU1Y2Y1ZTFjNDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKQEAgLTUwLDkgKzUwLDkgQEAgSlNC
eXRlQXJyYXk6On5KU0J5dGVBcnJheSgpCiAjZW5kaWYKIAogCi1QYXNzUmVmUHRyPFN0cnVjdHVy
ZT4gSlNCeXRlQXJyYXk6OmNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3Qg
SlNDOjpDbGFzc0luZm8qIGNsYXNzSW5mbykKK1Bhc3NSZWZQdHI8U3RydWN0dXJlPiBKU0J5dGVB
cnJheTo6Y3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBw
cm90b3R5cGUsIGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiBjbGFzc0luZm8pCiB7Ci0gICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsIGNsYXNzSW5mbyk7CisgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsIGNsYXNzSW5mbyk7CiB9CiAK
IGJvb2wgSlNCeXRlQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKaW5kZXggNmU5MTU5NGJlZTE3
ZDQ2MDg5ZjU0MjQ0ZGMyYmFhMmYzZjYwOGE1NC4uZTY3NDk1ODBiMTI0MzMyY2I4YmE0ZDEwZjRj
NGY1YmY1NGVkNGRkOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNCeXRlQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVB
cnJheS5oCkBAIC03Niw3ICs3Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAKICAg
ICAgICAgSlNCeXRlQXJyYXkoRXhlY1N0YXRlKiwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJl
PiwgV1RGOjpCeXRlQXJyYXkqIHN0b3JhZ2UpOwotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgSlNDOjpD
bGFzc0luZm8qID0gJnNfZGVmYXVsdEluZm8pOworICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmLCBKU1ZhbHVlIHByb3RvdHlw
ZSwgY29uc3QgSlNDOjpDbGFzc0luZm8qID0gJnNfZGVmYXVsdEluZm8pOwogCiAgICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKQEAgLTEwMiw3ICsxMDIsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICBwcml2YXRlOgogICAgICAgICBlbnVtIFZQdHJTdGVhbGluZ0hh
Y2tUeXBlIHsgVlB0clN0ZWFsaW5nSGFjayB9OwogICAgICAgICBKU0J5dGVBcnJheShWUHRyU3Rl
YWxpbmdIYWNrVHlwZSkKLSAgICAgICAgICAgIDogSlNOb25GaW5hbE9iamVjdChjcmVhdGVTdHJ1
Y3R1cmUoanNOdWxsKCkpKQorICAgICAgICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KFN0cnVjdHVy
ZTo6Y3JlYXRlKFN0cnVjdHVyZTo6VlB0clN0ZWFsaW5nSGFjaywgJnNfaW5mbykpCiAgICAgICAg
IHsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NlbGwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCmluZGV4
IDgyMDI5NzIxZmZhNmRlNGI5YzQ2MjE4NDkxZGU0NTQ4YTk0ZWJlZDUuLmE3OTVhNWNmNjU3NTdj
MjIyN2IyN2VhNGJjYjk5ODc1ODU2Y2I3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQ2VsbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbC5oCkBAIC03Miw5ICs3Miw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0
dWFsIH5KU0NlbGwoKTsKIAogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBjcmVhdGVEdW1teVN0cnVjdHVyZSgpCisgICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN0cnVjdHVyZT4gY3JlYXRlRHVtbXlTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoanNO
dWxsKCksIFR5cGVJbmZvKFVuc3BlY2lmaWVkVHlwZSksIEFub255bW91c1Nsb3RDb3VudCwgMCk7
CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwganNOdWxs
KCksIFR5cGVJbmZvKFVuc3BlY2lmaWVkVHlwZSksIEFub255bW91c1Nsb3RDb3VudCwgMCk7CiAg
ICAgICAgIH0KIAogICAgICAgICAvLyBRdWVyeWluZyB0aGUgdHlwZS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAppbmRleCA2YmMzZTgzZDEwMzA2YjhiYjRmY2Yw
YTQ1ZTBmZGE3ZGRiZTFjNDBiLi41MDViOWRlMjcyYjVkNGQ1Y2FkYjAwYWIxMGM0YmVmOWZiM2I2
MjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9u
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCkBAIC03
Myw5ICs3Myw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBKU19FWFBPUlRE
QVRBIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpIAorICAgICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKSAKICAgICAgICAgeyAKLSAgICAgICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCisgICAgICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7IAogICAgICAgICB9CiAKICAgICAgICAgTmF0aXZlRnVuY3Rpb24gbmF0aXZlRnVuY3Rp
b24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
RGF0YS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3Bw
CmluZGV4IDhkOGY3ZTNmYWM5NTgwYTI0MTkyZWVkZjQzMDg1OWM0MzE2MjNlYWEuLjJhNTlmOTE3
NDkxNzJmOGJhYTliYjc0MGNkZTMwYzg5YTk5YTNlM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcApAQCAtMTA4LDggKzEwOCw4IEBAIHZvaWQg
SlNHbG9iYWxEYXRhOjpzdG9yZVZQdHJzKCkKIAogICAgIENPTVBJTEVfQVNTRVJUKHNpemVvZihK
U0Z1bmN0aW9uKSA8PSBzaXplb2Yoc3RvcmFnZSksIHNpemVvZl9KU0Z1bmN0aW9uX211c3RfYmVf
bGVzc190aGFuX3N0b3JhZ2UpOwogICAgIGNoYXIgZXhlY3V0YWJsZVN0b3JhZ2Vbc2l6ZW9mKFZQ
dHJIYWNrRXhlY3V0YWJsZSldOwotICAgIFZQdHJIYWNrRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9
IG5ldyAoZXhlY3V0YWJsZVN0b3JhZ2UpIFZQdHJIYWNrRXhlY3V0YWJsZShWUHRySGFja0V4ZWN1
dGFibGU6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSkpOwotICAgIEpTQ2VsbCoganNGdW5jdGlv
biA9IG5ldyAoc3RvcmFnZSkgSlNGdW5jdGlvbihKU0Z1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUo
anNOdWxsKCkpLCBleGVjdXRhYmxlKTsKKyAgICBWUHRySGFja0V4ZWN1dGFibGUqIGV4ZWN1dGFi
bGUgPSBuZXcgKGV4ZWN1dGFibGVTdG9yYWdlKSBWUHRySGFja0V4ZWN1dGFibGUoU3RydWN0dXJl
OjpjcmVhdGUoU3RydWN0dXJlOjpWUHRyU3RlYWxpbmdIYWNrLCAwKSk7CisgICAgSlNDZWxsKiBq
c0Z1bmN0aW9uID0gbmV3IChzdG9yYWdlKSBKU0Z1bmN0aW9uKFN0cnVjdHVyZTo6Y3JlYXRlKFN0
cnVjdHVyZTo6VlB0clN0ZWFsaW5nSGFjaywgJkpTRnVuY3Rpb246OnNfaW5mbyksIGV4ZWN1dGFi
bGUpOwogICAgIEpTR2xvYmFsRGF0YTo6anNGdW5jdGlvblZQdHIgPSBqc0Z1bmN0aW9uLT52cHRy
KCk7CiAgICAganNGdW5jdGlvbi0+fkpTQ2VsbCgpOwogfQpAQCAtMTI2LDIyICsxMjYsMjIgQEAg
SlNHbG9iYWxEYXRhOjpKU0dsb2JhbERhdGEoR2xvYmFsRGF0YVR5cGUgZ2xvYmFsRGF0YVR5cGUs
IFRocmVhZFN0YWNrVHlwZSB0aHJlYWQKICAgICAsIHJlZ0V4cFRhYmxlKGZhc3ROZXc8SGFzaFRh
YmxlPihKU0M6OnJlZ0V4cFRhYmxlKSkKICAgICAsIHJlZ0V4cENvbnN0cnVjdG9yVGFibGUoZmFz
dE5ldzxIYXNoVGFibGU+KEpTQzo6cmVnRXhwQ29uc3RydWN0b3JUYWJsZSkpCiAgICAgLCBzdHJp
bmdUYWJsZShmYXN0TmV3PEhhc2hUYWJsZT4oSlNDOjpzdHJpbmdUYWJsZSkpCi0gICAgLCBhY3Rp
dmF0aW9uU3RydWN0dXJlKEpTQWN0aXZhdGlvbjo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkK
LSAgICAsIGludGVycnVwdGVkRXhlY3V0aW9uRXJyb3JTdHJ1Y3R1cmUoSlNOb25GaW5hbE9iamVj
dDo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKLSAgICAsIHRlcm1pbmF0ZWRFeGVjdXRpb25F
cnJvclN0cnVjdHVyZShKU05vbkZpbmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkp
KQotICAgICwgc3RhdGljU2NvcGVTdHJ1Y3R1cmUoSlNTdGF0aWNTY29wZU9iamVjdDo6Y3JlYXRl
U3RydWN0dXJlKGpzTnVsbCgpKSkKLSAgICAsIHN0cmljdEV2YWxBY3RpdmF0aW9uU3RydWN0dXJl
KFN0cmljdEV2YWxBY3RpdmF0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKQotICAgICwg
c3RyaW5nU3RydWN0dXJlKEpTU3RyaW5nOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKQotICAg
ICwgbm90QW5PYmplY3RTdHJ1Y3R1cmUoSlNOb3RBbk9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKGpz
TnVsbCgpKSkKLSAgICAsIHByb3BlcnR5TmFtZUl0ZXJhdG9yU3RydWN0dXJlKEpTUHJvcGVydHlO
YW1lSXRlcmF0b3I6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSkpCi0gICAgLCBnZXR0ZXJTZXR0
ZXJTdHJ1Y3R1cmUoR2V0dGVyU2V0dGVyOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKQotICAg
ICwgYXBpV3JhcHBlclN0cnVjdHVyZShKU0FQSVZhbHVlV3JhcHBlcjo6Y3JlYXRlU3RydWN0dXJl
KGpzTnVsbCgpKSkKLSAgICAsIHNjb3BlQ2hhaW5Ob2RlU3RydWN0dXJlKFNjb3BlQ2hhaW5Ob2Rl
OjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKQotICAgICwgZXhlY3V0YWJsZVN0cnVjdHVyZShF
eGVjdXRhYmxlQmFzZTo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKLSAgICAsIGV2YWxFeGVj
dXRhYmxlU3RydWN0dXJlKEV2YWxFeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkp
KQotICAgICwgcHJvZ3JhbUV4ZWN1dGFibGVTdHJ1Y3R1cmUoUHJvZ3JhbUV4ZWN1dGFibGU6OmNy
ZWF0ZVN0cnVjdHVyZShqc051bGwoKSkpCi0gICAgLCBmdW5jdGlvbkV4ZWN1dGFibGVTdHJ1Y3R1
cmUoRnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKQotICAgICwg
ZHVtbXlNYXJrYWJsZUNlbGxTdHJ1Y3R1cmUoSlNDZWxsOjpjcmVhdGVEdW1teVN0cnVjdHVyZSgp
KQorICAgICwgYWN0aXZhdGlvblN0cnVjdHVyZShKU0FjdGl2YXRpb246OmNyZWF0ZVN0cnVjdHVy
ZSgqdGhpcywganNOdWxsKCkpKQorICAgICwgaW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvclN0cnVj
dHVyZShKU05vbkZpbmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIGpzTnVsbCgpKSkK
KyAgICAsIHRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvclN0cnVjdHVyZShKU05vbkZpbmFsT2JqZWN0
OjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIGpzTnVsbCgpKSkKKyAgICAsIHN0YXRpY1Njb3BlU3Ry
dWN0dXJlKEpTU3RhdGljU2NvcGVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywganNOdWxs
KCkpKQorICAgICwgc3RyaWN0RXZhbEFjdGl2YXRpb25TdHJ1Y3R1cmUoU3RyaWN0RXZhbEFjdGl2
YXRpb246OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywganNOdWxsKCkpKQorICAgICwgc3RyaW5nU3Ry
dWN0dXJlKEpTU3RyaW5nOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIGpzTnVsbCgpKSkKKyAgICAs
IG5vdEFuT2JqZWN0U3RydWN0dXJlKEpTTm90QW5PYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSgqdGhp
cywganNOdWxsKCkpKQorICAgICwgcHJvcGVydHlOYW1lSXRlcmF0b3JTdHJ1Y3R1cmUoSlNQcm9w
ZXJ0eU5hbWVJdGVyYXRvcjo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCBqc051bGwoKSkpCisgICAg
LCBnZXR0ZXJTZXR0ZXJTdHJ1Y3R1cmUoR2V0dGVyU2V0dGVyOjpjcmVhdGVTdHJ1Y3R1cmUoKnRo
aXMsIGpzTnVsbCgpKSkKKyAgICAsIGFwaVdyYXBwZXJTdHJ1Y3R1cmUoSlNBUElWYWx1ZVdyYXBw
ZXI6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywganNOdWxsKCkpKQorICAgICwgc2NvcGVDaGFpbk5v
ZGVTdHJ1Y3R1cmUoU2NvcGVDaGFpbk5vZGU6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywganNOdWxs
KCkpKQorICAgICwgZXhlY3V0YWJsZVN0cnVjdHVyZShFeGVjdXRhYmxlQmFzZTo6Y3JlYXRlU3Ry
dWN0dXJlKCp0aGlzLCBqc051bGwoKSkpCisgICAgLCBldmFsRXhlY3V0YWJsZVN0cnVjdHVyZShF
dmFsRXhlY3V0YWJsZTo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCBqc051bGwoKSkpCisgICAgLCBw
cm9ncmFtRXhlY3V0YWJsZVN0cnVjdHVyZShQcm9ncmFtRXhlY3V0YWJsZTo6Y3JlYXRlU3RydWN0
dXJlKCp0aGlzLCBqc051bGwoKSkpCisgICAgLCBmdW5jdGlvbkV4ZWN1dGFibGVTdHJ1Y3R1cmUo
RnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIGpzTnVsbCgpKSkKKyAg
ICAsIGR1bW15TWFya2FibGVDZWxsU3RydWN0dXJlKEpTQ2VsbDo6Y3JlYXRlRHVtbXlTdHJ1Y3R1
cmUoKnRoaXMpKQogICAgICwgaWRlbnRpZmllclRhYmxlKGdsb2JhbERhdGFUeXBlID09IERlZmF1
bHQgPyB3dGZUaHJlYWREYXRhKCkuY3VycmVudElkZW50aWZpZXJUYWJsZSgpIDogY3JlYXRlSWRl
bnRpZmllclRhYmxlKCkpCiAgICAgLCBwcm9wZXJ0eU5hbWVzKG5ldyBDb21tb25JZGVudGlmaWVy
cyh0aGlzKSkKICAgICAsIGVtcHR5TGlzdChuZXcgTWFya2VkQXJndW1lbnRCdWZmZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXgg
OTBiNDE2MDMwNGJhNTU4ZGM4YjVmMzIwYTIwMjZkYzJhNjk5NjAzYy4uYTk2ZGVjMTExNWM3NTIz
NTkyNDg0YWQ3NTNjNjFiYzUyNDhkZTc0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtMTc1LDY0ICsxNzUsNjQgQEAgdm9pZCBK
U0dsb2JhbE9iamVjdDo6cmVzZXQoSlNWYWx1ZSBwcm90b3R5cGUpCiAKICAgICAvLyBQcm90b3R5
cGVzCiAKLSAgICBtX2Z1bmN0aW9uUHJvdG90eXBlLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRo
aXMsIG5ldyAoZXhlYykgRnVuY3Rpb25Qcm90b3R5cGUoZXhlYywgdGhpcywgRnVuY3Rpb25Qcm90
b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSkpKTsgLy8gVGhlIHJlYWwgcHJvdG90eXBl
IHdpbGwgYmUgc2V0IG9uY2UgT2JqZWN0UHJvdG90eXBlIGlzIGNyZWF0ZWQuCi0gICAgbV9mdW5j
dGlvblN0cnVjdHVyZSA9IEpTRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZShtX2Z1bmN0aW9uUHJv
dG90eXBlLmdldCgpKTsKLSAgICBtX2ludGVybmFsRnVuY3Rpb25TdHJ1Y3R1cmUgPSBJbnRlcm5h
bEZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUobV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSk7Cisg
ICAgbV9mdW5jdGlvblByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcg
KGV4ZWMpIEZ1bmN0aW9uUHJvdG90eXBlKGV4ZWMsIHRoaXMsIEZ1bmN0aW9uUHJvdG90eXBlOjpj
cmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBqc051bGwoKSkpKTsgLy8gVGhlIHJl
YWwgcHJvdG90eXBlIHdpbGwgYmUgc2V0IG9uY2UgT2JqZWN0UHJvdG90eXBlIGlzIGNyZWF0ZWQu
CisgICAgbV9mdW5jdGlvblN0cnVjdHVyZSA9IEpTRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZShl
eGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpOworICAgIG1faW50
ZXJuYWxGdW5jdGlvblN0cnVjdHVyZSA9IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVy
ZShleGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpOwogICAgIEpT
RnVuY3Rpb24qIGNhbGxGdW5jdGlvbiA9IDA7CiAgICAgSlNGdW5jdGlvbiogYXBwbHlGdW5jdGlv
biA9IDA7CiAgICAgbV9mdW5jdGlvblByb3RvdHlwZS0+YWRkRnVuY3Rpb25Qcm9wZXJ0aWVzKGV4
ZWMsIHRoaXMsIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksICZjYWxsRnVuY3Rpb24sICZhcHBs
eUZ1bmN0aW9uKTsKICAgICBtX2NhbGxGdW5jdGlvbi5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0
aGlzLCBjYWxsRnVuY3Rpb24pOwogICAgIG1fYXBwbHlGdW5jdGlvbi5zZXQoZXhlYy0+Z2xvYmFs
RGF0YSgpLCB0aGlzLCBhcHBseUZ1bmN0aW9uKTsKLSAgICBtX29iamVjdFByb3RvdHlwZS5zZXQo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIE9iamVjdFByb3RvdHlwZShleGVj
LCB0aGlzLCBPYmplY3RQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSksIG1fZnVu
Y3Rpb25TdHJ1Y3R1cmUuZ2V0KCkpKTsKKyAgICBtX29iamVjdFByb3RvdHlwZS5zZXQoZXhlYy0+
Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIE9iamVjdFByb3RvdHlwZShleGVjLCB0aGlz
LCBPYmplY3RQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIGpz
TnVsbCgpKSwgbV9mdW5jdGlvblN0cnVjdHVyZS5nZXQoKSkpOwogICAgIG1fZnVuY3Rpb25Qcm90
b3R5cGUtPnN0cnVjdHVyZSgpLT5zZXRQcm90b3R5cGVXaXRob3V0VHJhbnNpdGlvbihtX29iamVj
dFByb3RvdHlwZS5nZXQoKSk7CiAKLSAgICBtX2VtcHR5T2JqZWN0U3RydWN0dXJlID0gbV9vYmpl
Y3RQcm90b3R5cGUtPmluaGVyaXRvcklEKCk7CisgICAgbV9lbXB0eU9iamVjdFN0cnVjdHVyZSA9
IG1fb2JqZWN0UHJvdG90eXBlLT5pbmhlcml0b3JJRChleGVjLT5nbG9iYWxEYXRhKCkpOwogCi0g
ICAgbV9jYWxsYmFja0Z1bmN0aW9uU3RydWN0dXJlID0gSlNDYWxsYmFja0Z1bmN0aW9uOjpjcmVh
dGVTdHJ1Y3R1cmUobV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSk7Ci0gICAgbV9hcmd1bWVudHNT
dHJ1Y3R1cmUgPSBBcmd1bWVudHM6OmNyZWF0ZVN0cnVjdHVyZShtX29iamVjdFByb3RvdHlwZS5n
ZXQoKSk7Ci0gICAgbV9jYWxsYmFja0NvbnN0cnVjdG9yU3RydWN0dXJlID0gSlNDYWxsYmFja0Nv
bnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUobV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpOwotICAg
IG1fY2FsbGJhY2tPYmplY3RTdHJ1Y3R1cmUgPSBKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdD46OmNyZWF0ZVN0cnVjdHVyZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSk7
CisgICAgbV9jYWxsYmFja0Z1bmN0aW9uU3RydWN0dXJlID0gSlNDYWxsYmFja0Z1bmN0aW9uOjpj
cmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdl
dCgpKTsKKyAgICBtX2FyZ3VtZW50c1N0cnVjdHVyZSA9IEFyZ3VtZW50czo6Y3JlYXRlU3RydWN0
dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpOworICAgIG1f
Y2FsbGJhY2tDb25zdHJ1Y3RvclN0cnVjdHVyZSA9IEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6Y3Jl
YXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkp
OworICAgIG1fY2FsbGJhY2tPYmplY3RTdHJ1Y3R1cmUgPSBKU0NhbGxiYWNrT2JqZWN0PEpTT2Jq
ZWN0V2l0aEdsb2JhbE9iamVjdD46OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCks
IG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKTsKIAotICAgIG1fYXJyYXlQcm90b3R5cGUuc2V0KGV4
ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBBcnJheVByb3RvdHlwZSh0aGlzLCBB
cnJheVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkp
OwotICAgIG1fYXJyYXlTdHJ1Y3R1cmUgPSBKU0FycmF5OjpjcmVhdGVTdHJ1Y3R1cmUobV9hcnJh
eVByb3RvdHlwZS5nZXQoKSk7Ci0gICAgbV9yZWdFeHBNYXRjaGVzQXJyYXlTdHJ1Y3R1cmUgPSBS
ZWdFeHBNYXRjaGVzQXJyYXk6OmNyZWF0ZVN0cnVjdHVyZShtX2FycmF5UHJvdG90eXBlLmdldCgp
KTsKKyAgICBtX2FycmF5UHJvdG90eXBlLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5l
dyAoZXhlYykgQXJyYXlQcm90b3R5cGUodGhpcywgQXJyYXlQcm90b3R5cGU6OmNyZWF0ZVN0cnVj
dHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkpOworICAg
IG1fYXJyYXlTdHJ1Y3R1cmUgPSBKU0FycmF5OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFs
RGF0YSgpLCBtX2FycmF5UHJvdG90eXBlLmdldCgpKTsKKyAgICBtX3JlZ0V4cE1hdGNoZXNBcnJh
eVN0cnVjdHVyZSA9IFJlZ0V4cE1hdGNoZXNBcnJheTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmds
b2JhbERhdGEoKSwgbV9hcnJheVByb3RvdHlwZS5nZXQoKSk7CiAKLSAgICBtX3N0cmluZ1Byb3Rv
dHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIFN0cmluZ1Byb3Rv
dHlwZShleGVjLCB0aGlzLCBTdHJpbmdQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShtX29iamVj
dFByb3RvdHlwZS5nZXQoKSkpKTsKLSAgICBtX3N0cmluZ09iamVjdFN0cnVjdHVyZSA9IFN0cmlu
Z09iamVjdDo6Y3JlYXRlU3RydWN0dXJlKG1fc3RyaW5nUHJvdG90eXBlLmdldCgpKTsKKyAgICBt
X3N0cmluZ1Byb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMp
IFN0cmluZ1Byb3RvdHlwZShleGVjLCB0aGlzLCBTdHJpbmdQcm90b3R5cGU6OmNyZWF0ZVN0cnVj
dHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkpOworICAg
IG1fc3RyaW5nT2JqZWN0U3RydWN0dXJlID0gU3RyaW5nT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX3N0cmluZ1Byb3RvdHlwZS5nZXQoKSk7CiAKLSAgICBtX2Jv
b2xlYW5Qcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBC
b29sZWFuUHJvdG90eXBlKGV4ZWMsIHRoaXMsIEJvb2xlYW5Qcm90b3R5cGU6OmNyZWF0ZVN0cnVj
dHVyZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSksIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCkp
KTsKLSAgICBtX2Jvb2xlYW5PYmplY3RTdHJ1Y3R1cmUgPSBCb29sZWFuT2JqZWN0OjpjcmVhdGVT
dHJ1Y3R1cmUobV9ib29sZWFuUHJvdG90eXBlLmdldCgpKTsKKyAgICBtX2Jvb2xlYW5Qcm90b3R5
cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBCb29sZWFuUHJvdG90
eXBlKGV4ZWMsIHRoaXMsIEJvb2xlYW5Qcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5n
bG9iYWxEYXRhKCksIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSwgbV9mdW5jdGlvblN0cnVjdHVy
ZS5nZXQoKSkpOworICAgIG1fYm9vbGVhbk9iamVjdFN0cnVjdHVyZSA9IEJvb2xlYW5PYmplY3Q6
OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fYm9vbGVhblByb3RvdHlwZS5n
ZXQoKSk7CiAKLSAgICBtX251bWJlclByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0
aGlzLCBuZXcgKGV4ZWMpIE51bWJlclByb3RvdHlwZShleGVjLCB0aGlzLCBOdW1iZXJQcm90b3R5
cGU6OmNyZWF0ZVN0cnVjdHVyZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSksIG1fZnVuY3Rpb25T
dHJ1Y3R1cmUuZ2V0KCkpKTsKLSAgICBtX251bWJlck9iamVjdFN0cnVjdHVyZSA9IE51bWJlck9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKG1fbnVtYmVyUHJvdG90eXBlLmdldCgpKTsKKyAgICBtX251
bWJlclByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIE51
bWJlclByb3RvdHlwZShleGVjLCB0aGlzLCBOdW1iZXJQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVy
ZShleGVjLT5nbG9iYWxEYXRhKCksIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSwgbV9mdW5jdGlv
blN0cnVjdHVyZS5nZXQoKSkpOworICAgIG1fbnVtYmVyT2JqZWN0U3RydWN0dXJlID0gTnVtYmVy
T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX251bWJlclByb3Rv
dHlwZS5nZXQoKSk7CiAKLSAgICBtX2RhdGVQcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEo
KSwgdGhpcywgbmV3IChleGVjKSBEYXRlUHJvdG90eXBlKGV4ZWMsIHRoaXMsIERhdGVQcm90b3R5
cGU6OmNyZWF0ZVN0cnVjdHVyZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpKTsKLSAgICBtX2Rh
dGVTdHJ1Y3R1cmUgPSBEYXRlSW5zdGFuY2U6OmNyZWF0ZVN0cnVjdHVyZShtX2RhdGVQcm90b3R5
cGUuZ2V0KCkpOworICAgIG1fZGF0ZVByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0
aGlzLCBuZXcgKGV4ZWMpIERhdGVQcm90b3R5cGUoZXhlYywgdGhpcywgRGF0ZVByb3RvdHlwZTo6
Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9vYmplY3RQcm90b3R5cGUuZ2V0
KCkpKSk7CisgICAgbV9kYXRlU3RydWN0dXJlID0gRGF0ZUluc3RhbmNlOjpjcmVhdGVTdHJ1Y3R1
cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX2RhdGVQcm90b3R5cGUuZ2V0KCkpOwogCi0gICAgbV9y
ZWdFeHBQcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBS
ZWdFeHBQcm90b3R5cGUoZXhlYywgdGhpcywgUmVnRXhwUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1
cmUobV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpLCBtX2Z1bmN0aW9uU3RydWN0dXJlLmdldCgpKSk7
Ci0gICAgbV9yZWdFeHBTdHJ1Y3R1cmUgPSBSZWdFeHBPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSht
X3JlZ0V4cFByb3RvdHlwZS5nZXQoKSk7CisgICAgbV9yZWdFeHBQcm90b3R5cGUuc2V0KGV4ZWMt
Pmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBSZWdFeHBQcm90b3R5cGUoZXhlYywgdGhp
cywgUmVnRXhwUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBt
X29iamVjdFByb3RvdHlwZS5nZXQoKSksIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCkpKTsKKyAg
ICBtX3JlZ0V4cFN0cnVjdHVyZSA9IFJlZ0V4cE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMt
Pmdsb2JhbERhdGEoKSwgbV9yZWdFeHBQcm90b3R5cGUuZ2V0KCkpOwogCiAgICAgbV9tZXRob2RD
YWxsRHVtbXkuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgY29uc3RydWN0RW1wdHlPYmpl
Y3QoZXhlYykpOwogCi0gICAgRXJyb3JQcm90b3R5cGUqIGVycm9yUHJvdG90eXBlID0gbmV3IChl
eGVjKSBFcnJvclByb3RvdHlwZShleGVjLCB0aGlzLCBFcnJvclByb3RvdHlwZTo6Y3JlYXRlU3Ry
dWN0dXJlKG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSwgbV9mdW5jdGlvblN0cnVjdHVyZS5nZXQo
KSk7Ci0gICAgbV9lcnJvclN0cnVjdHVyZSA9IEVycm9ySW5zdGFuY2U6OmNyZWF0ZVN0cnVjdHVy
ZShlcnJvclByb3RvdHlwZSk7CisgICAgRXJyb3JQcm90b3R5cGUqIGVycm9yUHJvdG90eXBlID0g
bmV3IChleGVjKSBFcnJvclByb3RvdHlwZShleGVjLCB0aGlzLCBFcnJvclByb3RvdHlwZTo6Y3Jl
YXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkp
LCBtX2Z1bmN0aW9uU3RydWN0dXJlLmdldCgpKTsKKyAgICBtX2Vycm9yU3RydWN0dXJlID0gRXJy
b3JJbnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXJyb3JQcm90
b3R5cGUpOwogCiAgICAgLy8gQ29uc3RydWN0b3JzCiAKLSAgICBKU0NlbGwqIG9iamVjdENvbnN0
cnVjdG9yID0gbmV3IChleGVjKSBPYmplY3RDb25zdHJ1Y3RvcihleGVjLCB0aGlzLCBPYmplY3RD
b25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBt
X29iamVjdFByb3RvdHlwZS5nZXQoKSk7Ci0gICAgSlNDZWxsKiBmdW5jdGlvbkNvbnN0cnVjdG9y
ID0gbmV3IChleGVjKSBGdW5jdGlvbkNvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIEZ1bmN0aW9uQ29u
c3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9m
dW5jdGlvblByb3RvdHlwZS5nZXQoKSk7Ci0gICAgSlNDZWxsKiBhcnJheUNvbnN0cnVjdG9yID0g
bmV3IChleGVjKSBBcnJheUNvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIEFycmF5Q29uc3RydWN0b3I6
OmNyZWF0ZVN0cnVjdHVyZShtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9hcnJheVByb3Rv
dHlwZS5nZXQoKSwgbV9mdW5jdGlvblN0cnVjdHVyZS5nZXQoKSk7Ci0gICAgSlNDZWxsKiBzdHJp
bmdDb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgU3RyaW5nQ29uc3RydWN0b3IoZXhlYywgdGhpcywg
U3RyaW5nQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShtX2Z1bmN0aW9uUHJvdG90eXBlLmdl
dCgpKSwgbV9mdW5jdGlvblN0cnVjdHVyZS5nZXQoKSwgbV9zdHJpbmdQcm90b3R5cGUuZ2V0KCkp
OwotICAgIEpTQ2VsbCogYm9vbGVhbkNvbnN0cnVjdG9yID0gbmV3IChleGVjKSBCb29sZWFuQ29u
c3RydWN0b3IoZXhlYywgdGhpcywgQm9vbGVhbkNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUo
bV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIG1fYm9vbGVhblByb3RvdHlwZS5nZXQoKSk7Ci0g
ICAgSlNDZWxsKiBudW1iZXJDb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgTnVtYmVyQ29uc3RydWN0
b3IoZXhlYywgdGhpcywgTnVtYmVyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShtX2Z1bmN0
aW9uUHJvdG90eXBlLmdldCgpKSwgbV9udW1iZXJQcm90b3R5cGUuZ2V0KCkpOwotICAgIEpTQ2Vs
bCogZGF0ZUNvbnN0cnVjdG9yID0gbmV3IChleGVjKSBEYXRlQ29uc3RydWN0b3IoZXhlYywgdGhp
cywgRGF0ZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUobV9mdW5jdGlvblByb3RvdHlwZS5n
ZXQoKSksIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksIG1fZGF0ZVByb3RvdHlwZS5nZXQoKSk7
CisgICAgSlNDZWxsKiBvYmplY3RDb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgT2JqZWN0Q29uc3Ry
dWN0b3IoZXhlYywgdGhpcywgT2JqZWN0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVj
LT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBtX29iamVjdFByb3Rv
dHlwZS5nZXQoKSk7CisgICAgSlNDZWxsKiBmdW5jdGlvbkNvbnN0cnVjdG9yID0gbmV3IChleGVj
KSBGdW5jdGlvbkNvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIEZ1bmN0aW9uQ29uc3RydWN0b3I6OmNy
ZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0
KCkpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKTsKKyAgICBKU0NlbGwqIGFycmF5Q29uc3Ry
dWN0b3IgPSBuZXcgKGV4ZWMpIEFycmF5Q29uc3RydWN0b3IoZXhlYywgdGhpcywgQXJyYXlDb25z
dHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9mdW5jdGlvblBy
b3RvdHlwZS5nZXQoKSksIG1fYXJyYXlQcm90b3R5cGUuZ2V0KCksIG1fZnVuY3Rpb25TdHJ1Y3R1
cmUuZ2V0KCkpOworICAgIEpTQ2VsbCogc3RyaW5nQ29uc3RydWN0b3IgPSBuZXcgKGV4ZWMpIFN0
cmluZ0NvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIFN0cmluZ0NvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1
Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9m
dW5jdGlvblN0cnVjdHVyZS5nZXQoKSwgbV9zdHJpbmdQcm90b3R5cGUuZ2V0KCkpOworICAgIEpT
Q2VsbCogYm9vbGVhbkNvbnN0cnVjdG9yID0gbmV3IChleGVjKSBCb29sZWFuQ29uc3RydWN0b3Io
ZXhlYywgdGhpcywgQm9vbGVhbkNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9ib29sZWFuUHJvdG90eXBl
LmdldCgpKTsKKyAgICBKU0NlbGwqIG51bWJlckNvbnN0cnVjdG9yID0gbmV3IChleGVjKSBOdW1i
ZXJDb25zdHJ1Y3RvcihleGVjLCB0aGlzLCBOdW1iZXJDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIG1fbnVt
YmVyUHJvdG90eXBlLmdldCgpKTsKKyAgICBKU0NlbGwqIGRhdGVDb25zdHJ1Y3RvciA9IG5ldyAo
ZXhlYykgRGF0ZUNvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIERhdGVDb25zdHJ1Y3Rvcjo6Y3JlYXRl
U3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSks
IG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksIG1fZGF0ZVByb3RvdHlwZS5nZXQoKSk7CiAKLSAg
ICBtX3JlZ0V4cENvbnN0cnVjdG9yLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5ldyAo
ZXhlYykgUmVnRXhwQ29uc3RydWN0b3IoZXhlYywgdGhpcywgUmVnRXhwQ29uc3RydWN0b3I6OmNy
ZWF0ZVN0cnVjdHVyZShtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9yZWdFeHBQcm90b3R5
cGUuZ2V0KCkpKTsKKyAgICBtX3JlZ0V4cENvbnN0cnVjdG9yLnNldChleGVjLT5nbG9iYWxEYXRh
KCksIHRoaXMsIG5ldyAoZXhlYykgUmVnRXhwQ29uc3RydWN0b3IoZXhlYywgdGhpcywgUmVnRXhw
Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rp
b25Qcm90b3R5cGUuZ2V0KCkpLCBtX3JlZ0V4cFByb3RvdHlwZS5nZXQoKSkpOwogCi0gICAgbV9l
cnJvckNvbnN0cnVjdG9yLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5ldyAoZXhlYykg
RXJyb3JDb25zdHJ1Y3RvcihleGVjLCB0aGlzLCBFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1
Y3R1cmUobV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIGVycm9yUHJvdG90eXBlKSk7CisgICAg
bV9lcnJvckNvbnN0cnVjdG9yLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5ldyAoZXhl
YykgRXJyb3JDb25zdHJ1Y3RvcihleGVjLCB0aGlzLCBFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGVT
dHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwg
ZXJyb3JQcm90b3R5cGUpKTsKIAotICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IG5hdGl2ZUVycm9yUHJv
dG90eXBlU3RydWN0dXJlID0gTmF0aXZlRXJyb3JQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShl
cnJvclByb3RvdHlwZSk7Ci0gICAgUmVmUHRyPFN0cnVjdHVyZT4gbmF0aXZlRXJyb3JTdHJ1Y3R1
cmUgPSBOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUobV9mdW5jdGlvblBy
b3RvdHlwZS5nZXQoKSk7CisgICAgUmVmUHRyPFN0cnVjdHVyZT4gbmF0aXZlRXJyb3JQcm90b3R5
cGVTdHJ1Y3R1cmUgPSBOYXRpdmVFcnJvclByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMt
Pmdsb2JhbERhdGEoKSwgZXJyb3JQcm90b3R5cGUpOworICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IG5h
dGl2ZUVycm9yU3RydWN0dXJlID0gTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSk7CiAgICAg
bV9ldmFsRXJyb3JDb25zdHJ1Y3Rvci5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcg
KGV4ZWMpIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoZXhlYywgdGhpcywgbmF0aXZlRXJyb3JTdHJ1
Y3R1cmUsIG5hdGl2ZUVycm9yUHJvdG90eXBlU3RydWN0dXJlLCAiRXZhbEVycm9yIikpOwogICAg
IG1fcmFuZ2VFcnJvckNvbnN0cnVjdG9yLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5l
dyAoZXhlYykgTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcihleGVjLCB0aGlzLCBuYXRpdmVFcnJvclN0
cnVjdHVyZSwgbmF0aXZlRXJyb3JQcm90b3R5cGVTdHJ1Y3R1cmUsICJSYW5nZUVycm9yIikpOwog
ICAgIG1fcmVmZXJlbmNlRXJyb3JDb25zdHJ1Y3Rvci5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0
aGlzLCBuZXcgKGV4ZWMpIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoZXhlYywgdGhpcywgbmF0aXZl
RXJyb3JTdHJ1Y3R1cmUsIG5hdGl2ZUVycm9yUHJvdG90eXBlU3RydWN0dXJlLCAiUmVmZXJlbmNl
RXJyb3IiKSk7CkBAIC0yNzIsMTEgKzI3MiwxMSBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0OjpyZXNl
dChKU1ZhbHVlIHByb3RvdHlwZSkKIAogICAgIC8vIFNldCBnbG9iYWwgdmFsdWVzLgogICAgIEds
b2JhbFByb3BlcnR5SW5mbyBzdGF0aWNHbG9iYWxzW10gPSB7Ci0gICAgICAgIEdsb2JhbFByb3Bl
cnR5SW5mbyhJZGVudGlmaWVyKGV4ZWMsICJNYXRoIiksIG5ldyAoZXhlYykgTWF0aE9iamVjdChl
eGVjLCB0aGlzLCBNYXRoT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUobV9vYmplY3RQcm90b3R5cGUu
Z2V0KCkpKSwgRG9udEVudW0gfCBEb250RGVsZXRlKSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvKElkZW50aWZpZXIoZXhlYywgIk1hdGgiKSwgbmV3IChleGVjKSBNYXRoT2JqZWN0KGV4ZWMs
IHRoaXMsIE1hdGhPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1f
b2JqZWN0UHJvdG90eXBlLmdldCgpKSksIERvbnRFbnVtIHwgRG9udERlbGV0ZSksCiAgICAgICAg
IEdsb2JhbFByb3BlcnR5SW5mbyhJZGVudGlmaWVyKGV4ZWMsICJOYU4iKSwganNOYU4oKSwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8oSWRlbnRpZmllcihleGVjLCAiSW5maW5pdHkiKSwganNOdW1iZXIoSW5mKSwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8oSWRl
bnRpZmllcihleGVjLCAidW5kZWZpbmVkIiksIGpzVW5kZWZpbmVkKCksIERvbnRFbnVtIHwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKElkZW50aWZp
ZXIoZXhlYywgIkpTT04iKSwgbmV3IChleGVjKSBKU09OT2JqZWN0KHRoaXMsIEpTT05PYmplY3Q6
OmNyZWF0ZVN0cnVjdHVyZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpLCBEb250RW51bSB8IERv
bnREZWxldGUpCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyhJZGVudGlmaWVyKGV4ZWMsICJK
U09OIiksIG5ldyAoZXhlYykgSlNPTk9iamVjdCh0aGlzLCBKU09OT2JqZWN0OjpjcmVhdGVTdHJ1
Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpLCBEb250
RW51bSB8IERvbnREZWxldGUpCiAgICAgfTsKIAogICAgIGFkZFN0YXRpY0dsb2JhbHMoc3RhdGlj
R2xvYmFscywgV1RGX0FSUkFZX0xFTkdUSChzdGF0aWNHbG9iYWxzKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCBjZGU5OTYwYTg3YjEz
NTQ1ZGQ3MjkzZjFmY2Y2YjEyMjg3NjRkOWE0Li41NmVlYTYzMjI2N2Y0N2VhMmU3NDYxODdmOGIz
YmNmMmY5NDhmNjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmgKQEAgLTExMyw4ICsxMTMsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJs
aWM6CiAgICAgICAgIHZvaWQqIG9wZXJhdG9yIG5ldyhzaXplX3QsIEpTR2xvYmFsRGF0YSopOwog
ICAgICAgICAKLSAgICAgICAgZXhwbGljaXQgSlNHbG9iYWxPYmplY3QoKQotICAgICAgICAgICAg
OiBKU1ZhcmlhYmxlT2JqZWN0KEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxs
KCkpLCAmbV9zeW1ib2xUYWJsZSwgMCkKKyAgICAgICAgZXhwbGljaXQgSlNHbG9iYWxPYmplY3Qo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQorICAgICAgICAgICAgOiBKU1ZhcmlhYmxlT2JqZWN0
KEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwganNOdWxsKCkpLCAm
bV9zeW1ib2xUYWJsZSwgMCkKICAgICAgICAgICAgICwgbV9yZWdpc3RlckFycmF5U2l6ZSgwKQog
ICAgICAgICAgICAgLCBtX2dsb2JhbFNjb3BlQ2hhaW4oKQogICAgICAgICAgICAgLCBtX3dlYWtS
YW5kb20oc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHJhbmRvbU51bWJlcigpICogKHN0ZDo6bnVtZXJp
Y19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSArIDEuMCkpKQpAQCAtMjM4LDkgKzIzOCw5IEBAIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgICAgIEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSgpIGNvbnN0
IHsgcmV0dXJuICptX2dsb2JhbERhdGEuZ2V0KCk7IH0KIAotICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgdm9pZCByZWdpc3RlcldlYWtNYXAoT3BhcXVl
SlNXZWFrT2JqZWN0TWFwKiBtYXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU05vdEFuT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U05vdEFuT2JqZWN0LmgKaW5kZXggN2U3MGE5ODY0NmIzOGUwZWNjZmRlYmIwNzRmZTBiMmJkNjY4
MjQwZS4uYjg4MjAzOTFlZjYxNjVhYjFmZGUwNmMyMDA2ODk1YjU2OWEyYjc5NSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaApAQCAtNDMsOSArNDMs
OSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5
cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJl
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZv
KTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmgKaW5kZXggNTI2NGZkNzk4ZjAxNDIzYjk0
MDg2MmViZmJmOGRhM2IwZmVkMmNjMC4uYTUyYzU0MzhkMDVjOWU2ODM4Yjk5ODBlYmZhYTMzODQz
ODhjZTFlNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9i
amVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaApA
QCAtMzYsOSArMzYsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIEpT
T05PYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9uTnVsbFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBzdHJ1Y3R1cmUpOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVj
dHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAg
ICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmNwcAppbmRleCAyMDljOWVmN2U2OTgwOWI4ZWZhMDJkOTRiYjhmNzVkNWQxZmE5
MDg4Li41ZjVjMDVjNWRlZWVkMzg1NGZkYjExYTkwOTg5NDNlNDNhNGMzMzEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC01NzIsOSArNTcyLDkgQEAg
TkVWRVJfSU5MSU5FIHZvaWQgSlNPYmplY3Q6OmZpbGxHZXR0ZXJQcm9wZXJ0eVNsb3QoUHJvcGVy
dHlTbG90JiBzbG90LCBXcml0ZUJhcnIKICAgICAgICAgc2xvdC5zZXRVbmRlZmluZWQoKTsKIH0K
IAotU3RydWN0dXJlKiBKU09iamVjdDo6Y3JlYXRlSW5oZXJpdG9ySUQoKQorU3RydWN0dXJlKiBK
U09iamVjdDo6Y3JlYXRlSW5oZXJpdG9ySUQoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQogewot
ICAgIG1faW5oZXJpdG9ySUQgPSBjcmVhdGVFbXB0eU9iamVjdFN0cnVjdHVyZSh0aGlzKTsKKyAg
ICBtX2luaGVyaXRvcklEID0gY3JlYXRlRW1wdHlPYmplY3RTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwg
dGhpcyk7CiAgICAgcmV0dXJuIG1faW5oZXJpdG9ySUQuZ2V0KCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IGVlZjM3YjIyYTZlMzM2NWRiY2IxZjNj
ZThmZGViMzMxZjlmYTg0NmMuLjY2YWMyZDZiYTE2MjE3MzYzN2Y3YjM5MjEwZTYzNTA1Njg5MDBm
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtOTIsNyAr
OTIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBzZXRQcm90b3R5cGVXaXRoQ3lj
bGVDaGVjayhKU1ZhbHVlIHByb3RvdHlwZSk7CiAgICAgICAgIAogICAgICAgICB2b2lkIHNldFN0
cnVjdHVyZShOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+KTsKLSAgICAgICAgU3RydWN0dXJl
KiBpbmhlcml0b3JJRCgpOworICAgICAgICBTdHJ1Y3R1cmUqIGluaGVyaXRvcklEKEpTR2xvYmFs
RGF0YSYpOwogCiAgICAgICAgIHZpcnR1YWwgVVN0cmluZyBjbGFzc05hbWUoKSBjb25zdDsKIApA
QCAtMjUwLDkgKzI1MCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgSlNfRVhQ
T1JUREFUQSBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCiAgICAgcHJvdGVjdGVkOgotICAgICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHBy
b3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1
Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1v
dXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gMDsKQEAgLTI5Niw3ICsyOTYsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgYm9vbCBpbmxpbmVHZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKIAogICAg
ICAgICBjb25zdCBIYXNoRW50cnkqIGZpbmRQcm9wZXJ0eUhhc2hFbnRyeShFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpIGNvbnN0OwotICAgICAgICBTdHJ1Y3R1cmUq
IGNyZWF0ZUluaGVyaXRvcklEKCk7CisgICAgICAgIFN0cnVjdHVyZSogY3JlYXRlSW5oZXJpdG9y
SUQoSlNHbG9iYWxEYXRhJik7CiAKICAgICAgICAgUHJvcGVydHlTdG9yYWdlIG1fcHJvcGVydHlT
dG9yYWdlOwogICAgICAgICBSZWZQdHI8U3RydWN0dXJlPiBtX2luaGVyaXRvcklEOwpAQCAtMzIw
LDkgKzMyMCw5IEBAIENPTVBJTEVfQVNTRVJUKChKU0ZpbmFsT2JqZWN0X2lubGluZVN0b3JhZ2VD
YXBhY2l0eSA+PSBKU05vbkZpbmFsT2JqZWN0X2lubGluZVN0CiAgICAgICAgIGZyaWVuZCBjbGFz
cyBKU09iamVjdDsKIAogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsK
ICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpAQCAtMzQ4LDkgKzM0OCw5IEBAIENPTVBJTEVf
QVNTRVJUKChKU0ZpbmFsT2JqZWN0X2lubGluZVN0b3JhZ2VDYXBhY2l0eSA+PSBKU05vbkZpbmFs
T2JqZWN0X2lubGluZVN0CiAgICAgICAgICAgICByZXR1cm4gbmV3IChleGVjKSBKU0ZpbmFsT2Jq
ZWN0KHN0cnVjdHVyZSk7CiAgICAgICAgIH0KIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8o
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8p
OwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgpAQCAtMzc3LDkgKzM3Nyw5IEBAIGlubGluZSBK
U09iamVjdCogY29uc3RydWN0RW1wdHlPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBOb25OdWxsUGFz
c1JlZlB0cjxTdHJ1Y3R1CiAgICAgcmV0dXJuIEpTRmluYWxPYmplY3Q6OmNyZWF0ZShleGVjLCBz
dHJ1Y3R1cmUpOwogfQogCi1pbmxpbmUgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZUVtcHR5
T2JqZWN0U3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQoraW5saW5lIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBjcmVhdGVFbXB0eU9iamVjdFN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTVmFsdWUgcHJvdG90eXBlKQogewotICAgIHJldHVybiBKU0ZpbmFsT2JqZWN0OjpjcmVh
dGVTdHJ1Y3R1cmUocHJvdG90eXBlKTsKKyAgICByZXR1cm4gSlNGaW5hbE9iamVjdDo6Y3JlYXRl
U3RydWN0dXJlKGdsb2JhbERhdGEsIHByb3RvdHlwZSk7CiB9CiAKIGlubGluZSBKU09iamVjdCog
YXNPYmplY3QoSlNDZWxsKiBjZWxsKQpAQCAtNDQyLDExICs0NDIsMTEgQEAgaW5saW5lIHZvaWQg
SlNPYmplY3Q6OnNldFN0cnVjdHVyZShOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVj
dHVyZSkKICAgICBtX3N0cnVjdHVyZSA9IHN0cnVjdHVyZS5sZWFrUmVmKCk7IC8vIH5KU09iamVj
dCBiYWxhbmNlcyB0aGlzIHJlZigpCiB9CiAKLWlubGluZSBTdHJ1Y3R1cmUqIEpTT2JqZWN0Ojpp
bmhlcml0b3JJRCgpCitpbmxpbmUgU3RydWN0dXJlKiBKU09iamVjdDo6aW5oZXJpdG9ySUQoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhKQogewogICAgIGlmIChtX2luaGVyaXRvcklEKQogICAgICAg
ICByZXR1cm4gbV9pbmhlcml0b3JJRC5nZXQoKTsKLSAgICByZXR1cm4gY3JlYXRlSW5oZXJpdG9y
SUQoKTsKKyAgICByZXR1cm4gY3JlYXRlSW5oZXJpdG9ySUQoZ2xvYmFsRGF0YSk7CiB9CiAKIGlu
bGluZSBib29sIFN0cnVjdHVyZTo6aXNVc2luZ0lubGluZVN0b3JhZ2UoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2Jq
ZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxP
YmplY3QuaAppbmRleCBjNWUzMDQ3NWEwYmQ4OGMxZWQzMjU5OTE2ZmIwMmE0ZmVjYWQ2MmIwLi44
MzgwNTE0ZDU3YWNiZjVlOGI1YjBlZjU0MDUzZTgyYzgxYzE3NTM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3Qu
aApAQCAtMzQsOSArMzQsOSBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdDsKIAogY2xhc3MgSlNPYmpl
Y3RXaXRoR2xvYmFsT2JqZWN0IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUg
cHJvdG8pCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgIH0K
IAogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaApp
bmRleCA5MGY0NDllZTIxZTk3ZTI3ODBkNDEyNDlkMzczNTU3YzkzMmE4MTk4Li44YjAwN2RkNzY3
ZjY0NjRiMTQzODE5OWU0ZmE2MTg1ZTRkMzJhZDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oCkBAIC00NSw5ICs0
NSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIEpTUHJv
cGVydHlOYW1lSXRlcmF0b3IqIGNyZWF0ZShFeGVjU3RhdGUqLCBKU09iamVjdCopOwogICAgICAg
ICAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4g
Y3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5
cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90
b3R5cGUsIFR5cGVJbmZvKENvbXBvdW5kVHlwZSwgT3ZlcnJpZGVzTWFya0NoaWxkcmVuKSwgQW5v
bnltb3VzU2xvdENvdW50LCAwKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKENvbXBvdW5kVHlwZSwgT3ZlcnJpZGVz
TWFya0NoaWxkcmVuKSwgQW5vbnltb3VzU2xvdENvdW50LCAwKTsKICAgICAgICAgfQogCiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBpc1Byb3BlcnR5TmFtZUl0ZXJhdG9yKCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0
aWNTY29wZU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNT
Y29wZU9iamVjdC5oCmluZGV4IGIxNDEzYWY2N2JhNGE4MTllYTZiNTdkNjI1ZjRkNDgyZDc5ZGUx
ZWQuLjNlMTliYmMyMzY2YTljMWQ4ZjRhOTRjYmY2MGI3YjQzNzkzZWNhNjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKQEAg
LTQ3LDcgKzQ3LDcgQEAgbmFtZXNwYWNlIEpTQ3sKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7
CiAgICAgICAgIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogCi0gICAgICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8pIHsgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IH0KKyAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxE
YXRhLCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1v
dXNTbG90Q291bnQsICZzX2luZm8pOyB9CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5
U2xvdCB8IE5lZWRzVGhpc0NvbnZlcnNpb24gfCBPdmVycmlkZXNNYXJrQ2hpbGRyZW4gfCBPdmVy
cmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNWYXJpYWJsZU9iamVjdDo6U3RydWN0dXJlRmxhZ3M7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAppbmRleCAyNjc3ZDlhZTlj
ZWFhMzg4ZjdiYWMxNjAyNDVmYWM0NDA2OGE5YjUyLi4xMTAwMmRiMjZmMTJmZDlmMzgyZmQ4N2Nk
ODc4Zjk3ZTNiOWQ1NTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1N0cmluZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5n
LmgKQEAgLTM0OSw3ICszNDksNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBKU1ZhbHVl
IHJlcGxhY2VDaGFyYWN0ZXIoRXhlY1N0YXRlKiwgVUNoYXIsIGNvbnN0IFVTdHJpbmcmIHJlcGxh
Y2VtZW50KTsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0
cnVjdHVyZShKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90bywg
VHlwZUluZm8oU3RyaW5nVHlwZSwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgTmVlZHNU
aGlzQ29udmVyc2lvbiksIEFub255bW91c1Nsb3RDb3VudCwgMCk7IH0KKyAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxE
YXRhLCBwcm90bywgVHlwZUluZm8oU3RyaW5nVHlwZSwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlT
bG90IHwgTmVlZHNUaGlzQ29udmVyc2lvbiksIEFub255bW91c1Nsb3RDb3VudCwgMCk7IH0KIAog
ICAgIHByaXZhdGU6CiAgICAgICAgIGVudW0gVlB0clN0ZWFsaW5nSGFja1R5cGUgeyBWUHRyU3Rl
YWxpbmdIYWNrIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1ZhcmlhYmxlT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Zhcmlh
YmxlT2JqZWN0LmgKaW5kZXggNTc3OWYzN2JhY2NmYTI1YWExOTY4MjM1OWM4OTIwMGIwY2JiY2Ew
NS4uODkxYWRhOGM0M2EzN2FhN2JjMTI2ZTMzMDQ3NTA3MDIwYzNlMzFjOSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaApAQCAtNTgsOSAr
NTgsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4q
IGNvbnN0ICogYWRkcmVzc09mUmVnaXN0ZXJzKCkgY29uc3QgeyByZXR1cm4gJm1fcmVnaXN0ZXJz
OyB9CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1
cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVy
ZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90
b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3Vz
U2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQogICAgICAgICAK
ICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1dyYXBwZXJPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3Jh
cHBlck9iamVjdC5oCmluZGV4IDNmYzBiMTg2ZmU1ODExN2VjYTBlYzBiMmE1NmJhZjY1ZDEyZDlm
M2MuLjYzODMzZTlmMzc0ZWM3Yzc5YWE3YWQ4MjBlOGEwNDEyZmJkYWQzODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oCkBAIC0zNiw5ICsz
Niw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBKU1ZhbHVlIGludGVybmFsVmFsdWUoKSBj
b25zdDsKICAgICAgICAgdm9pZCBzZXRJbnRlcm5hbFZhbHVlKEpTR2xvYmFsRGF0YSYsIEpTVmFs
dWUpOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0
dXJlKEpTVmFsdWUgcHJvdG90eXBlKSAKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHBy
b3RvdHlwZSkgCiAgICAgICAgIHsgCi0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255
bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAg
IHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Wm9tYmllLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1pvbWJpZS5oCmluZGV4
IGU1NzVhYzU1MjE2Y2NlMTQ5N2RlMzY0YTk3MjhiY2ZmYjI3YjRmZDYuLjE3OWZmNTMxMDBmZDNm
ZDIwYWIzYzE3NDczMjVkOWRkMTgwY2I3MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTWm9tYmllLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNab21iaWUuaApAQCAtNjYsOSArNjYsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlTbG90JikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCwgUHJvcGVy
dHlTbG90JikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGZhbHNlOyB9CiAgICAgCi0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBw
cm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1
cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVj
dFR5cGUsIDApLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCAwKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKICAgICBzdGF0
aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L01hdGhPYmplY3QuaAppbmRleCA4NmU3OTUxYTFiZGNhOGQ2NmUzZTU5ZWNkNTUyODQxY2VkZWE0
NWViLi4yNmVhYWUwNDQ5OTI4ZGU1MWE1YzRkZTVlZGZmY2JhMmViZGM1NzEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCkBAIC0zNCw5ICszNCw5IEBAIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwog
Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpT
VmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBl
KQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3Rl
ZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9y
Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJy
b3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNzk0OWRkOTZhNWI3N2MzYzFjNjdmZmU5YjlhOGU1M2E0
YzY5NWYyNC4uZDhmZGE2OWE4NDA3YmQ1MGJlZGYzZTRlZTdhMGFlMzdjMjY4NTk2NiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25z
dHJ1Y3Rvci5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6TmF0
aXZlRXJyb3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KgogCiAg
ICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxl
bmd0aCwganNOdW1iZXIoMSksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsgLy8g
RUNNQSAxNS4xMS43LjUKICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5w
cm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBwcm90b3R5cGUsIERvbnREZWxldGUgfCBSZWFkT25s
eSB8IERvbnRFbnVtKTsKLSAgICBtX2Vycm9yU3RydWN0dXJlID0gRXJyb3JJbnN0YW5jZTo6Y3Jl
YXRlU3RydWN0dXJlKHByb3RvdHlwZSk7CisgICAgbV9lcnJvclN0cnVjdHVyZSA9IEVycm9ySW5z
dGFuY2U6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIHByb3RvdHlwZSk7CiB9
CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhOYXRp
dmVFcnJvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaAppbmRleCBlNDk3
OGNjYTFjYmJiOWQyN2ViMzhkYmMwNDM1NzA3ZGM2YzZhYjkyLi4yM2Y3OThlNDcyOWJlYmU3YTk4
YzYyZDg0ZDNiZDI2YzdjMWI3ODA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oCkBAIC0zNSw5ICszNSw5IEBAIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwog
Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpT
VmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBl
KQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgICAgICBTdHJ1
Y3R1cmUqIGVycm9yU3RydWN0dXJlKCkgeyByZXR1cm4gbV9lcnJvclN0cnVjdHVyZS5nZXQoKTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3Ry
dWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9y
LmgKaW5kZXggYWFmN2MzMjEwMjYzZDM4YTcxNjM0NzgxODRjYjlmYWM0NWI0NzU5My4uYWI0NTA3
ZTU4M2ViMjViMjdhZmYyMzQxOWM0Mjc4ZTFhNzk2MTU4MiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCkBAIC0zNyw5ICszNyw5IEBA
IG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZv
OwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJl
KEpTVmFsdWUgcHJvdG8pIAorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG8pIAog
ICAgICAgICB7IAotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwg
JnNfaW5mbyk7IAorICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91
c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAogICAgICAgICB9CiAKICAgICAgICAgZW51bSB7IE5hTlZh
bHVlLCBOZWdJbmZpbml0eSwgUG9zSW5maW5pdHksIE1heFZhbHVlLCBNaW5WYWx1ZSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuaAppbmRleCBiZGY1NmY3
ZjQ3NTNiNGUxNjQyNTNiMjUzZmIxMmE0YjYyMTVjNDQ5Li4xNTcxZmQ0MmNlNmIwYzMyZTgyZTgx
YWQ2YjAzMTYwYTkxZTdlZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9O
dW1iZXJPYmplY3QuaApAQCAtMzEsOSArMzEsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAg
ICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAotICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKaW5kZXggODk1Zjk4OGY2YzEzOTQ2
NTMxZjI4MjQ4NmJmZDE1ODlkODE0OGIwOC4uYjdiZmMxZDcxN2M3MTc4ZTMzYzI5NmFkN2I0Yjk3
NDAxZWFlNDNkMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmpl
Y3RDb25zdHJ1Y3Rvci5oCkBAIC0zNiw5ICszNiw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAg
ICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAg
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwg
JnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCmluZGV4IDhhOGE1NGFhYTg2
NWI5OWZhM2ExY2RjZmE1NTk4YmE0YzAzYmEyNWYuLjAzYzZiZWEyYmEzODY0NjUzMmRkN2U1MWZh
YWEzZjYxZTJmOTg1MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwQ29uc3RydWN0b3IuaApAQCAtNTksOSArNTksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICBwdWJsaWM6CiAgICAgICAgIFJlZ0V4cENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSosIEpTR2xvYmFs
T2JqZWN0KiwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiwgUmVnRXhwUHJvdG90eXBlKik7
CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4g
Y3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5
cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShn
bG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgICAgIHZp
cnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwT2JqZWN0LmgKaW5kZXggOWYyY2E1YWEyNGNlN2RhZTY1NTkwM2MxMmJhZGFl
MTU2ZTJmYWQ4MS4uZmEyMDI0ZGNkNzVlN2FjNWMyNjhjMTg3N2UwNjk0MTAwNDIxNWI5ZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKQEAgLTU4LDkg
KzU4LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIEpTX0VYUE9SVERBVEEg
Y29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1
Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwog
ICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TY29wZUNoYWluLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TY29wZUNoYWluLmgKaW5kZXggNTVkMTFhZGQyYjFhN2IwMzY4NzEyZDFjMWZhNzk1NGIzNTYy
Mjg1Yy4uY2I3MGEzNDZiOTY3YjUwZjMyNGY5MGU3ZDM0MzE3N2JiMzkyMDE3YiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlQ2hhaW4uaApAQCAtNjQsNyArNjQsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBwcmludCgpOwogI2VuZGlmCiAgICAgICAgIAot
ICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1Zh
bHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90bywgVHlwZUluZm8oQ29t
cG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgMCk7IH0KKyAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCwgMCk7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIG1h
cmtDaGlsZHJlbihNYXJrU3RhY2smKTsKICAgICBwcml2YXRlOgogICAgICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNNYXJrQ2hpbGRyZW47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCmluZGV4IGFjZGVjYjNj
NWVlOGE0MDE3Njk5MGUzODQyMzVhZjEyMWM1MTgzYjAuLjBlMmEyYjI0MTNjOThlMmNhNzEwYzJj
ZGQ5YThiMDQwZDg3NGI2MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ09iamVjdC5oCkBAIC00NSw5ICs0NSw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAg
IEpTU3RyaW5nKiBpbnRlcm5hbFZhbHVlKCkgY29uc3QgeyByZXR1cm4gYXNTdHJpbmcoSlNXcmFw
cGVyT2JqZWN0OjppbnRlcm5hbFZhbHVlKCkpO30KIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5l
ZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0VGhhdE1hc3F1
ZXJhZGVzQXNVbmRlZmluZWQuaAppbmRleCAwYTQ0ZWQzMjNhZDBmY2Q0Njg2YjVmNTdkMDJjM2Rh
ZGVhMzU5OWZkLi5lNGM3MDYxMjJjZTE3MTNkNDNlZTk1M2QxYmM4OWY3NTBlOWI0ZTdjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFz
cXVlcmFkZXNBc1VuZGVmaW5lZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ09iamVjdFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLmgKQEAgLTMzLDcgKzMzLDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBTdHJpbmdPYmplY3RUaGF0TWFzcXVl
cmFkZXNBc1VuZGVmaW5lZCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgVVN0cmluZyYg
c3RyaW5nKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gbmV3IChleGVjKSBTdHJpbmdP
YmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZChleGVjLAotICAgICAgICAgICAgICAgIGNy
ZWF0ZVN0cnVjdHVyZShleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnN0cmluZ1Byb3RvdHlw
ZSgpKSwgc3RyaW5nKTsKKyAgICAgICAgICAgICAgICBjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnN0cmluZ1Byb3RvdHlwZSgp
KSwgc3RyaW5nKTsKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKQEAgLTQyLDkgKzQyLDkgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8pIAorICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG8pIAogICAgICAgICB7IAotICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAorICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7
IAogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgTWFzcXVlcmFkZXNBc1VuZGVmaW5l
ZCB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBTdHJpbmdPYmplY3Q6OlN0cnVjdHVyZUZs
YWdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJv
dG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUu
aAppbmRleCA1N2E1MDlhYmFkMjY5OTc0N2NhZmZlMmFjOWExMjAxMGM4ZTY2MTliLi41N2RlZjIy
ODFiMWQ1YzQ4ZjEzNGFkNWQ0MjFlMDc3ZWU1YTA4N2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaApAQCAtMzQsOSArMzQsOSBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIAotICAgICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlw
ZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8o
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8p
OworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3Rv
dHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90
Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNz
SW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJ1Y3R1cmUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCmlu
ZGV4IDY0YjFkMjg3Mjk1ODE1ZDUwMmVhNzU0NzNkM2E3ODU5ODAyNjY4NmIuLjZmNzA2MGJmMWFh
ZGMyNDAzZjk3MGM1MWRlOGViMjY4NTBhNDQ1MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZS5oCkBAIC01NywxMSArNTcsMTcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgY2xhc3MgU3RydWN0dXJlIDogcHVibGljIFJlZkNvdW50ZWQ8U3RydWN0dXJlPiB7CiAgICAg
cHVibGljOgogICAgICAgICBmcmllbmQgY2xhc3MgU3RydWN0dXJlVHJhbnNpdGlvblRhYmxlOwot
ICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZShKU1ZhbHVlIHByb3Rv
dHlwZSwgY29uc3QgVHlwZUluZm8mIHR5cGVJbmZvLCB1bnNpZ25lZCBhbm9ueW1vdXNTbG90Q291
bnQsIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTdHJ1Y3R1cmU+IGNyZWF0ZShKU0dsb2JhbERhdGEmLCBKU1ZhbHVlIHByb3RvdHlwZSwgY29u
c3QgVHlwZUluZm8mIHR5cGVJbmZvLCB1bnNpZ25lZCBhbm9ueW1vdXNTbG90Q291bnQsIGNvbnN0
IENsYXNzSW5mbyogY2xhc3NJbmZvKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFN0cnVjdHVyZShwcm90b3R5cGUsIHR5cGVJbmZvLCBhbm9ueW1vdXNTbG90Q291
bnQsIGNsYXNzSW5mbykpOwogICAgICAgICB9CiAKKyAgICAgICAgZW51bSBWUHRyU3RlYWxpbmdI
YWNrVHlwZSB7IFZQdHJTdGVhbGluZ0hhY2sgfTsKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBjcmVhdGUoVlB0clN0ZWFsaW5nSGFja1R5cGUsIGNvbnN0IENsYXNzSW5mbyog
Y2xhc3NJbmZvKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFN0
cnVjdHVyZShqc051bGwoKSwgVHlwZUluZm8oVW5zcGVjaWZpZWRUeXBlKSwgMCwgY2xhc3NJbmZv
KSk7CisgICAgICAgIH0KKwogICAgICAgICBzdGF0aWMgdm9pZCBzdGFydElnbm9yaW5nTGVha3Mo
KTsKICAgICAgICAgc3RhdGljIHZvaWQgc3RvcElnbm9yaW5nTGVha3MoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1
ZS9DaGFuZ2VMb2cKaW5kZXggZDBlM2Y2YzI1MzA1M2QyNWM5Yjg3MDU5ZTU1MjM4YWQzNTNhM2Uy
My4uZDdiODdhZmVjZjZkNTAwOTllZjk1ZmI5MTNjNmJlMDdmODZmZGZhNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEds
dWUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDMtMTUgIE9saXZlciBIdW50ICA8
b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBNYWtlIFN0cnVjdHVyZSBjcmVhdGlvbiByZXF1aXJlIGEgSlNHbG9iYWxEYXRh
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjQzOAor
CisgICAgICAgIE1lY2hhbmljYWwgY2hhbmdlIHRvIG1ha2UgYWxsIHN0cnVjdHVyZSBjcmVhdGlv
biBwYXNzIGEgSlNHbG9iYWxEYXRhJi4KKworICAgICAgICAqIEpTUnVuLmNwcDoKKyAgICAgICAg
KEpTR2x1ZUdsb2JhbE9iamVjdDo6SlNHbHVlR2xvYmFsT2JqZWN0KToKKyAgICAgICAgKEpTUnVu
OjpKU1J1bik6CisgICAgICAgICogSlNSdW4uaDoKKyAgICAgICAgKiBKU1V0aWxzLmNwcDoKKyAg
ICAgICAgKGdldFRocmVhZEdsb2JhbE9iamVjdCk6CisgICAgICAgICogVXNlck9iamVjdEltcC5o
OgorICAgICAgICAoVXNlck9iamVjdEltcDo6Y3JlYXRlU3RydWN0dXJlKToKKwogMjAxMS0wMy0x
NSAgS2V2aW4gT2xsaXZpZXIgIDxrZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1
ZS9KU1J1bi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNSdW4uY3BwCmluZGV4IDg2MzA1
OTRiMGExYWZiNTRiNDVhZWMzMjQwNWZlZTFiZjQ4N2NhMDguLmE4MDk2YWE0YmFjNzM1ZTViNzY0
NmQ5NTM5MmJhMWRlYjA5OGEyMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9K
U1J1bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0pTUnVuLmNwcApAQCAtMzMsMTcg
KzMzLDE3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29tcGxldGlvbi5oPgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL1NvdXJjZUNvZGUuaD4KIAotSlNHbHVlR2xvYmFsT2JqZWN0OjpK
U0dsdWVHbG9iYWxPYmplY3QoUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSwgSlNGbGFn
cyBmbGFncykKK0pTR2x1ZUdsb2JhbE9iamVjdDo6SlNHbHVlR2xvYmFsT2JqZWN0KEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSwgSlNGbGFn
cyBmbGFncykKICAgICA6IEpTR2xvYmFsT2JqZWN0KHN0cnVjdHVyZSkKICAgICAsIG1fZmxhZ3Mo
ZmxhZ3MpCi0gICAgLCBtX3VzZXJPYmplY3RTdHJ1Y3R1cmUoVXNlck9iamVjdEltcDo6Y3JlYXRl
U3RydWN0dXJlKGpzTnVsbCgpKSkKKyAgICAsIG1fdXNlck9iamVjdFN0cnVjdHVyZShVc2VyT2Jq
ZWN0SW1wOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwganNOdWxsKCkpKQogewogfQogCiBK
U1J1bjo6SlNSdW4oQ0ZTdHJpbmdSZWYgc291cmNlLCBKU0ZsYWdzIGluRmxhZ3MpCiAgICAgOiAg
IEpTQmFzZShrSlNSdW5UeXBlSUQpLAogICAgICAgICBmU291cmNlKENGU3RyaW5nVG9VU3RyaW5n
KHNvdXJjZSkpLAotICAgICAgICBmR2xvYmFsT2JqZWN0KGdldFRocmVhZEdsb2JhbEV4ZWNTdGF0
ZSgpLT5nbG9iYWxEYXRhKCksIG5ldyAoJmdldFRocmVhZEdsb2JhbEV4ZWNTdGF0ZSgpLT5nbG9i
YWxEYXRhKCkpIEpTR2x1ZUdsb2JhbE9iamVjdChKU0dsdWVHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0
cnVjdHVyZShqc051bGwoKSksIGluRmxhZ3MpKSwKKyAgICAgICAgZkdsb2JhbE9iamVjdChnZXRU
aHJlYWRHbG9iYWxFeGVjU3RhdGUoKS0+Z2xvYmFsRGF0YSgpLCBuZXcgKCZnZXRUaHJlYWRHbG9i
YWxFeGVjU3RhdGUoKS0+Z2xvYmFsRGF0YSgpKSBKU0dsdWVHbG9iYWxPYmplY3QoZ2V0VGhyZWFk
R2xvYmFsRXhlY1N0YXRlKCktPmdsb2JhbERhdGEoKSwgSlNHbHVlR2xvYmFsT2JqZWN0OjpjcmVh
dGVTdHJ1Y3R1cmUoZ2V0VGhyZWFkR2xvYmFsRXhlY1N0YXRlKCktPmdsb2JhbERhdGEoKSwganNO
dWxsKCkpLCBpbkZsYWdzKSksCiAgICAgICAgIGZGbGFncyhpbkZsYWdzKQogewogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0pTUnVuLmggYi9Tb3VyY2UvSmF2YVNjcmlwdEds
dWUvSlNSdW4uaAppbmRleCBlOWExNDg0MmVjMWE5YzU0MzZiZmE1MzYxNjgwMzU2NGY2OTQ0NTkw
Li5kN2FhNjgyNDEwYzhiMzMyNzM3ZThlMGY1NmM3N2E1Mjk3ZTRmOWU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNSdW4uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUv
SlNSdW4uaApAQCAtMzQsNyArMzQsNyBAQAogCiBjbGFzcyBKU0dsdWVHbG9iYWxPYmplY3QgOiBw
dWJsaWMgSlNHbG9iYWxPYmplY3QgewogICAgIHB1YmxpYzoKLSAgICAgICAgSlNHbHVlR2xvYmFs
T2JqZWN0KFBhc3NSZWZQdHI8U3RydWN0dXJlPiwgSlNGbGFncyA9IGtKU0ZsYWdOb25lKTsKKyAg
ICAgICAgSlNHbHVlR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYsIFBhc3NSZWZQdHI8U3RydWN0
dXJlPiwgSlNGbGFncyA9IGtKU0ZsYWdOb25lKTsKIAogICAgICAgICBKU0ZsYWdzIEZsYWdzKCkg
Y29uc3QgeyByZXR1cm4gbV9mbGFnczsgfQogICAgICAgICBTdHJ1Y3R1cmUqIHVzZXJPYmplY3RT
dHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX3VzZXJPYmplY3RTdHJ1Y3R1cmUuZ2V0KCk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1V0aWxzLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0R2x1ZS9KU1V0aWxzLmNwcAppbmRleCA5NGM4ZGNjZDYzYjZjNjMwOWZjYThiOGYy
MmMwOGExMGNhZTA1MGY1Li5iNjJlN2JmYjZlODk4YzhmMmRhNjIyNzllYzhhMWM5OWE0ZWJjMWE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNVdGlscy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRHbHVlL0pTVXRpbHMuY3BwCkBAIC00MTQsNyArNDE0LDcgQEAgc3RhdGlj
IEpTR2x1ZUdsb2JhbE9iamVjdCogZ2V0VGhyZWFkR2xvYmFsT2JqZWN0KCkKICAgICBwdGhyZWFk
X29uY2UoJmdsb2JhbE9iamVjdEtleU9uY2UsIGluaXRpYWxpemVHbG9iYWxPYmplY3RLZXkpOwog
ICAgIEpTR2x1ZUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNHbHVl
R2xvYmFsT2JqZWN0Kj4ocHRocmVhZF9nZXRzcGVjaWZpYyhnbG9iYWxPYmplY3RLZXkpKTsKICAg
ICBpZiAoIWdsb2JhbE9iamVjdCkgewotICAgICAgICBnbG9iYWxPYmplY3QgPSBuZXcgKGdldFRo
cmVhZEdsb2JhbERhdGEoKSkgSlNHbHVlR2xvYmFsT2JqZWN0KEpTR2x1ZUdsb2JhbE9iamVjdDo6
Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSk7CisgICAgICAgIGdsb2JhbE9iamVjdCA9IG5ldyAo
Z2V0VGhyZWFkR2xvYmFsRGF0YSgpKSBKU0dsdWVHbG9iYWxPYmplY3QoKmdldFRocmVhZEdsb2Jh
bERhdGEoKSwgSlNHbHVlR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoKmdldFRocmVhZEds
b2JhbERhdGEoKSwganNOdWxsKCkpKTsKICAgICAgICAgZ2NQcm90ZWN0KGdsb2JhbE9iamVjdCk7
CiAgICAgICAgIHB0aHJlYWRfc2V0c3BlY2lmaWMoZ2xvYmFsT2JqZWN0S2V5LCBnbG9iYWxPYmpl
Y3QpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0
SW1wLmggYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCmluZGV4IDNmNjQx
NTMwZjY0NGViNTc5NzdmNDY0Yjc3NDhlYTAxMmVmNDBkZTcuLmM2YjhkODZmNWQ5YWI2OWMxZTFl
NTY5ZWM4MmM2YmUyNTEyZDg1NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9V
c2VyT2JqZWN0SW1wLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAu
aApAQCAtNTgsOSArNTgsOSBAQCBwdWJsaWM6CiAKICAgICBKU1VzZXJPYmplY3QgKkdldEpTVXNl
ck9iamVjdCgpIGNvbnN0OwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVh
dGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVl
IHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8
IE92ZXJyaWRlc01hcmtDaGlsZHJlbiB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBPdmVycmlkZXNH
ZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNNYXJrQ2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQ
cm9wZXJ0eU5hbWVzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggOTY2NGI5YjFmYTc0MTcxYzYwOTkwYmE0N2MzNmJhZjYzYzI1
ZGRjNi4uY2ExZjhhYTc0NDliOTI0MzMxMWVkNjljNjBlZTBkZWUwZGE2NmI4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDY1IEBACisyMDExLTAzLTE1ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TWFrZSBTdHJ1Y3R1cmUgY3JlYXRpb24gcmVxdWlyZSBhIEpTR2xvYmFsRGF0YQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY0MzgKKworICAgICAgICBN
ZWNoYW5pY2FsIGNoYW5nZSB0byBtYWtlIGFsbCBzdHJ1Y3R1cmUgY3JlYXRpb24gdXNlIEdsb2Jh
bERhdGEKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0F1ZGlvQ29uc3RydWN0b3I6OkpTQXVkaW9Db25zdHJ1Y3Rvcik6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmg6CisgICAgICAgIChX
ZWJDb3JlOjpKU0F1ZGlvQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpET01PYmplY3RX
aXRoR2xvYmFsUG9pbnRlcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TUNvbnN0cnVjdG9yT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6
Z2V0RE9NU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVj
dC5oOgorICAgICAgICAoV2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVy
ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdp
bmRvd1NoZWxsOjpKU0RPTVdpbmRvd1NoZWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2lu
ZG93U2hlbGw6OnNldFdpbmRvdyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dT
aGVsbC5oOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNJbWFnZUNvbnN0cnVjdG9yOjpKU0ltYWdlQ29uc3RydWN0b3IpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoV2Vi
Q29yZTo6SlNJbWFnZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNPcHRpb25Db25zdHJ1Y3Rvcjo6SlNPcHRpb25Db25zdHJ1Y3Rvcik6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5oOgorICAgICAgICAoV2Vi
Q29yZTo6SlNPcHRpb25Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpKU1dv
cmtlckNvbnRleHRCYXNlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2Ny
aXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgICogYnJpZGdlL2MvQ1J1bnRpbWVPYmplY3QuaDoK
KyAgICAgICAgKEpTQzo6QmluZGluZ3M6OkNSdW50aW1lT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAqIGJyaWRnZS9jL2NfaW5zdGFuY2UuY3BwOgorICAgICAgICAoSlNDOjpCaW5k
aW5nczo6Q1J1bnRpbWVNZXRob2Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYnJpZGdl
L2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmNwcDoKKyAgICAgICAgKEphdmFSdW50aW1lTWV0aG9k
OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJyaWRnZS9qbmkvanNjL0phdmFSdW50aW1l
T2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpKYXZhUnVudGltZU9iamVjdDo6Y3Jl
YXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9PYmpDUnVudGltZU9iamVjdC5o
OgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqQ1J1bnRpbWVPYmplY3Q6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbToKKyAgICAgICAg
KE9iakNSdW50aW1lTWV0aG9kOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJyaWRnZS9v
YmpjL29iamNfcnVudGltZS5oOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0ZhbGxiYWNr
T2JqZWN0SW1wOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2Fy
cmF5Lmg6CisgICAgICAgIChKU0M6OlJ1bnRpbWVBcnJheTo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKiBicmlkZ2UvcnVudGltZV9tZXRob2QuaDoKKyAgICAgICAgKEpTQzo6UnVudGltZU1l
dGhvZDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3Qu
aDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVy
ZSk6CisKIDIwMTEtMDMtMTYgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmNwcAppbmRleCBmMDA0MGZhOWE3MmVjNDY3OGI0
MjhmNTNiMDQ1Y2YzNjMzMDY2MDQ4Li45YWM3OTdiMWRlODk4MDg1OTExY2U5ZTI5ODU0ZWQxZmYy
NTA3ZDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29u
c3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db25z
dHJ1Y3Rvci5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY29uc3Qg
Q2xhc3NJbmZvIEpTQXVkaW9Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiQXVkaW9Db25zdHJ1Y3Rv
ciIsICZET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudDo6c19pbmZvLCAwLCAwIH07CiAKIEpTQXVk
aW9Db25zdHJ1Y3Rvcjo6SlNBdWRpb0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLSAgICA6IERPTUNvbnN0cnVjdG9yV2l0aERvY3Vt
ZW50KEpTQXVkaW9Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+b2Jq
ZWN0UHJvdG90eXBlKCkpLCBnbG9iYWxPYmplY3QpCisgICAgOiBET01Db25zdHJ1Y3RvcldpdGhE
b2N1bWVudChKU0F1ZGlvQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3Qt
Pmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9i
amVjdCkKIHsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHB1dERpcmVjdChl
eGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTSFRN
TEF1ZGlvRWxlbWVudFByb3RvdHlwZTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3QpLCBOb25lKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rv
ci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmgKaW5k
ZXggYzkwYWJiZjdkOWVlYmE5NDYzNmFjNjZkMTI0NjNhZTFmNGNkMGRkMS4uYmUwYjgwMDAwNWJm
MjIxYWJlZDdhOTg0NmQ4YTEzYWVjMzViNDQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmgKQEAgLTM4LDkgKzM4LDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIHB1YmxpYzoKICAgICAgICAgSlNBdWRpb0NvbnN0cnVjdG9yKEpTQzo6
RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKIAotICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5
cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1
Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5
cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRl
KHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBKU0M6
OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhK
U0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBz
X2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRp
bmcuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCmluZGV4IDRm
ZTNkMTZjMWZjYzI4YzdjNjc0ODlhODFiYzFhYjU3OGEwZmExZDIuLjkzNGQ5YjMxYTQ2MWIyMTc5
ZGJkNDE5ZmRlZTAwMmE4MGUzMjgzYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5oCkBAIC02NCw5ICs2NCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwog
ICAgICAgICB9CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUlu
Zm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwg
JnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAg
IHByb3RlY3RlZDoKQEAgLTgzLDkgKzgzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIC8v
IEJhc2UgY2xhc3MgZm9yIGFsbCBjb25zdHJ1Y3RvciBvYmplY3RzIGluIHRoZSBKU0MgYmluZGlu
Z3MuCiAgICAgY2xhc3MgRE9NQ29uc3RydWN0b3JPYmplY3QgOiBwdWJsaWMgRE9NT2JqZWN0V2l0
aEdsb2JhbFBvaW50ZXIgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQor
ICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJl
KEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQog
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90
b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7
CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKQEAgLTE0Myw3ICsxNDMsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgewogICAgICAgICBpZiAoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSA9IGdldENhY2hlZERPTVN0cnVjdHVyZShnbG9iYWxPYmplY3QsICZXcmFwcGVyQ2xhc3M6OnNf
aW5mbykpCiAgICAgICAgICAgICByZXR1cm4gc3RydWN0dXJlOwotICAgICAgICByZXR1cm4gY2Fj
aGVET01TdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBXcmFwcGVyQ2xhc3M6OmNyZWF0ZVN0cnVjdHVy
ZShXcmFwcGVyQ2xhc3M6OmNyZWF0ZVByb3RvdHlwZShleGVjLCBnbG9iYWxPYmplY3QpKSwgJldy
YXBwZXJDbGFzczo6c19pbmZvKTsKKyAgICAgICAgcmV0dXJuIGNhY2hlRE9NU3RydWN0dXJlKGds
b2JhbE9iamVjdCwgV3JhcHBlckNsYXNzOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0
YSgpLCBXcmFwcGVyQ2xhc3M6OmNyZWF0ZVByb3RvdHlwZShleGVjLCBnbG9iYWxPYmplY3QpKSwg
JldyYXBwZXJDbGFzczo6c19pbmZvKTsKICAgICB9CiAgICAgdGVtcGxhdGU8Y2xhc3MgV3JhcHBl
ckNsYXNzPiBpbmxpbmUgSlNDOjpTdHJ1Y3R1cmUqIGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUo
SlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKaW5kZXggZGFlNDA1YThmZGU3OWQyMDBkY2Q0YWU2NGM2
ZDQyZjk3MGI0NmY2MS4uMWU5OTJjNWI3MWZkYzYyOGU2NTFkY2IyZjcyYzE1MTY0ZWZiMjQwNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCkBA
IC02OSw5ICs2OSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBzdGF0aWMgY29u
c3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpT
Qzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShK
U0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90
eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwog
ICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93QmFzZS5oCmluZGV4IDdiZGEzZTQyMDcyNTRhOTVlMmEzYzcwMzU3YTJlZmRl
M2FhZjYzNmUuLmJmZWMzMWM1Njc4MjUyYzk1NzcyMmY0NmExMjllYjkwNjZlMjgwZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCkBAIC01Nyw5ICs1
Nyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBzdGF0aWMgY29uc3QgSlNDOjpD
bGFzc0luZm8gc19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6
OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90
Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVh
dGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9
CiAKICAgICAgICAgdmlydHVhbCBKU0M6OkV4ZWNTdGF0ZSogZ2xvYmFsRXhlYygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAppbmRleCBhNGNj
Nzc3ZDk0YWQyMzM4YjhhNjhlYjA3NzQyY2Q5ZGFmOTk0MTNmLi44MTdlOWMwZGEyMDI4NDQxNWNj
NTI5MDRlZTM3ZjFjN2I5MjdkYmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd1NoZWxsLmNwcApAQCAtNDQsNyArNDQsNyBAQCBBU1NFUlRfQ0xBU1NfRklU
U19JTl9DRUxMKEpTRE9NV2luZG93U2hlbGwpOwogY29uc3QgQ2xhc3NJbmZvIEpTRE9NV2luZG93
U2hlbGw6OnNfaW5mbyA9IHsgIkpTRE9NV2luZG93U2hlbGwiLCAmQmFzZTo6c19pbmZvLCAwLCAw
IH07CiAKIEpTRE9NV2luZG93U2hlbGw6OkpTRE9NV2luZG93U2hlbGwoUGFzc1JlZlB0cjxET01X
aW5kb3c+IHdpbmRvdywgRE9NV3JhcHBlcldvcmxkKiB3b3JsZCkKLSAgICA6IEJhc2UoSlNET01X
aW5kb3dTaGVsbDo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKKyAgICA6IEJhc2UoSlNET01X
aW5kb3dTaGVsbDo6Y3JlYXRlU3RydWN0dXJlKCp3b3JsZC0+Z2xvYmFsRGF0YSgpLCBqc051bGwo
KSkpCiAgICAgLCBtX3dvcmxkKHdvcmxkKQogewogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZv
KSk7CkBAIC02MCwxMCArNjAsMTAgQEAgdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpzZXRXaW5kb3co
UGFzc1JlZlB0cjxET01XaW5kb3c+IGRvbVdpbmRvdykKICAgICAvLyBFeHBsaWNpdGx5IHByb3Rl
Y3QgdGhlIGdsb2JhbCBvYmplY3QncyBwcm90b3R5cGUgc28gaXQgaXNuJ3QgY29sbGVjdGVkCiAg
ICAgLy8gd2hlbiB3ZSBhbGxvY2F0ZSB0aGUgZ2xvYmFsIG9iamVjdC4gKE9uY2UgdGhlIGdsb2Jh
bCBvYmplY3QgaXMgZnVsbHkKICAgICAvLyBjb25zdHJ1Y3RlZCwgaXQgY2FuIG1hcmsgaXRzIG93
biBwcm90b3R5cGUuKQotICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHByb3RvdHlwZVN0cnVjdHVyZSA9
IEpTRE9NV2luZG93UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpOworICAgIFJl
ZlB0cjxTdHJ1Y3R1cmU+IHByb3RvdHlwZVN0cnVjdHVyZSA9IEpTRE9NV2luZG93UHJvdG90eXBl
OjpjcmVhdGVTdHJ1Y3R1cmUoKkpTRE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKSwganNO
dWxsKCkpOwogICAgIEdsb2JhbDxKU0RPTVdpbmRvd1Byb3RvdHlwZT4gcHJvdG90eXBlKCpKU0RP
TVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCksIG5ldyBKU0RPTVdpbmRvd1Byb3RvdHlwZSgw
LCBwcm90b3R5cGVTdHJ1Y3R1cmUucmVsZWFzZSgpKSk7CiAKLSAgICBSZWZQdHI8U3RydWN0dXJl
PiBzdHJ1Y3R1cmUgPSBKU0RPTVdpbmRvdzo6Y3JlYXRlU3RydWN0dXJlKHByb3RvdHlwZS5nZXQo
KSk7CisgICAgUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlID0gSlNET01XaW5kb3c6OmNyZWF0
ZVN0cnVjdHVyZSgqSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLCBwcm90b3R5cGUu
Z2V0KCkpOwogICAgIEpTRE9NV2luZG93KiBqc0RPTVdpbmRvdyA9IG5ldyAoSlNET01XaW5kb3c6
OmNvbW1vbkpTR2xvYmFsRGF0YSgpKSBKU0RPTVdpbmRvdyhzdHJ1Y3R1cmUucmVsZWFzZSgpLCBk
b21XaW5kb3csIHRoaXMpOwogICAgIHByb3RvdHlwZS0+cHV0QW5vbnltb3VzVmFsdWUoKkpTRE9N
V2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKSwgMCwganNET01XaW5kb3cpOwogICAgIHNldFdp
bmRvdygqSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLCBqc0RPTVdpbmRvdyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKaW5kZXggMDZk
ZDFmZjVmNDBjNmQ0OTA0MmU3OGEwYjVkOWNhMjhlM2I4YTA1ZS4uNDMwN2MxYzQ2MWIwZmY0NmJm
OGEzYTc3YmFiOGVjMmU1MDRmOWJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dTaGVsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93U2hlbGwuaApAQCAtNTgsOSArNTgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICAgICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCk7CiAKLSAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUg
cHJvdG90eXBlKSAKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVl
IHByb3RvdHlwZSkgCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVy
ZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCisgICAgICAgICAgICBy
ZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIEpTQzo6
VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7IAogICAgICAgICB9CiAKICAgICAgICAgRE9NV3JhcHBlcldvcmxkKiB3
b3JsZCgpIHsgcmV0dXJuIG1fd29ybGQuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuY3BwCmluZGV4IDFkZGYxMzYwNDNkODEwM2U5
ZjlkMzEyYjJjYjI4NDI2MDRhMGQwMWYuLmJlNzVhZjBiZTdjYWU5MTQ2NjFjMmRlZWQ0ZjRiMjVk
ZDBkN2NmZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNv
bnN0cnVjdG9yLmNwcApAQCAtMzUsNyArMzUsNyBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxM
KEpTSW1hZ2VDb25zdHJ1Y3Rvcik7CiBjb25zdCBDbGFzc0luZm8gSlNJbWFnZUNvbnN0cnVjdG9y
OjpzX2luZm8gPSB7ICJJbWFnZUNvbnN0cnVjdG9yIiwgJkRPTUNvbnN0cnVjdG9yV2l0aERvY3Vt
ZW50OjpzX2luZm8sIDAsIDAgfTsKIAogSlNJbWFnZUNvbnN0cnVjdG9yOjpKU0ltYWdlQ29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQot
ICAgIDogRE9NQ29uc3RydWN0b3JXaXRoRG9jdW1lbnQoSlNJbWFnZUNvbnN0cnVjdG9yOjpjcmVh
dGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVj
dCkKKyAgICA6IERPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50KEpTSW1hZ2VDb25zdHJ1Y3Rvcjo6
Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3Qt
Pm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQogewogICAgIEFTU0VSVChpbmhlcml0
cygmc19pbmZvKSk7CiAgICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJv
cGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNIVE1MSW1hZ2VFbGVtZW50UHJvdG90eXBlOjpzZWxm
KGV4ZWMsIGdsb2JhbE9iamVjdCksIE5vbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuaAppbmRleCA3MzI5M2M3YmY5NDdkMjYxNGQ0MTdlZmRm
Zjc5NGZjMWIwZGM1OTQzLi42NTRlMjIzZmE4ZGI1YmZhYWFhY2VkZmVkMzVjZjcwMmE3OTkzYTEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3Iu
aApAQCAtMjksOSArMjksOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHVibGljOgogICAg
ICAgICBKU0ltYWdlQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVj
dCopOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVT
dHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpT
Qzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOworICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0
YSwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAg
c3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcAppbmRleCBiNTU5MmQ4YzdkMGVhM2Ex
OGYzZjM2OTc0YmYwMTY4N2Y1ZjJiOGRlLi5hOTJlZDQ3MGM0OTI5YTcwM2QxMThjZmEyYTdjYTBi
OWMxZjk0MTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdl
RGF0YUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZURh
dGFDdXN0b20uY3BwCkBAIC00OCw3ICs0OCw3IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4
ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEltYWdlRGF0YSogaW1hZ2VECiAg
ICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0
LCBJbWFnZURhdGEsIGltYWdlRGF0YSk7CiAgICAgSWRlbnRpZmllciBkYXRhTmFtZShleGVjLCAi
ZGF0YSIpOwogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gY3BhQ2xhc3NJbmZvID0geyAiQ2Fu
dmFzUGl4ZWxBcnJheSIsICZKU0J5dGVBcnJheTo6QmFzZTo6c19pbmZvLCAwLCAwIH07Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8U3RydWN0dXJlPiwgY3BhU3RydWN0dXJlLCAoSlNC
eXRlQXJyYXk6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSwgJmNwYUNsYXNzSW5mbykpKTsKKyAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKFJlZlB0cjxTdHJ1Y3R1cmU+LCBjcGFTdHJ1Y3R1cmUsIChK
U0J5dGVBcnJheTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNOdWxsKCks
ICZjcGFDbGFzc0luZm8pKSk7CiAgICAgd3JhcHBlci0+cHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERh
dGEoKSwgZGF0YU5hbWUsIG5ldyAoZXhlYykgSlNCeXRlQXJyYXkoZXhlYywgY3BhU3RydWN0dXJl
LCBpbWFnZURhdGEtPmRhdGEoKS0+ZGF0YSgpKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKICAg
ICBleGVjLT5oZWFwKCktPnJlcG9ydEV4dHJhTWVtb3J5Q29zdChpbWFnZURhdGEtPmRhdGEoKS0+
bGVuZ3RoKCkpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNPcHRpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09w
dGlvbkNvbnN0cnVjdG9yLmNwcAppbmRleCBhM2M5YWFiNGQyM2U3YTJlMmI3YjFkYzVjZDE4MDY2
ZjBlMWZlNGM3Li41OWUwYjZhM2U4YmE5NDZhODQ2MDQ5YjMxMzk2MTM4MzE4NzBjZjJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmNw
cApAQCAtMzYsNyArMzYsNyBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTT3B0aW9uQ29u
c3RydWN0b3IpOwogY29uc3QgQ2xhc3NJbmZvIEpTT3B0aW9uQ29uc3RydWN0b3I6OnNfaW5mbyA9
IHsgIk9wdGlvbkNvbnN0cnVjdG9yIiwgJkRPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50OjpzX2lu
Zm8sIDAsIDAgfTsKIAogSlNPcHRpb25Db25zdHJ1Y3Rvcjo6SlNPcHRpb25Db25zdHJ1Y3RvcihF
eGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi0gICAgOiBE
T01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudChKU09wdGlvbkNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1
Y3R1cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVjdCkKKyAg
ICA6IERPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50KEpTT3B0aW9uQ29uc3RydWN0b3I6OmNyZWF0
ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5vYmpl
Y3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVjdCkKIHsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNf
aW5mbykpOwogICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5
TmFtZXMoKS5wcm90b3R5cGUsIEpTSFRNTE9wdGlvbkVsZW1lbnRQcm90b3R5cGU6OnNlbGYoZXhl
YywgZ2xvYmFsT2JqZWN0KSwgTm9uZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU09wdGlvbkNvbnN0cnVjdG9yLmgKaW5kZXggMDM2MzNjNzkyZTNlMjFiYTFjMTk1YmY3MzNi
Y2FiNzlmOWEyNzU4OC4uOGExODAwNzFjYWYwNTZjY2IyYTJmYzkwYmNlMWU4MTBiZGQ0NWI5NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3Iu
aApAQCAtMzAsOSArMzAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHVibGljOgogICAg
ICAgICBKU09wdGlvbkNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmpl
Y3QqKTsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRl
U3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhK
U0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsKKyAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgICAg
IHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmgKaW5kZXggOTk5NDhiNzNhMDM2MjUz
MjBjMDI0MTc0YzI1ZTU3NjU2YWY3YjdkZS4uYjljMjM0YTJiZmJiZDgyYTA1ZjU4MjE0MWRhYzEx
MjBhYTAyNzI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3Jr
ZXJDb250ZXh0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2Vy
Q29udGV4dEJhc2UuaApAQCAtNDksOSArNDksOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIFdvcmtlckNvbnRleHQqIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwuZ2V0KCk7IH0K
ICAgICAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3Q7CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1
cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6
VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0K
IAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
b3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dv
cmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGQzOTIyODE2OWJmOGRiZjIwZjVhYjQyM2Jj
MDUyNWM5M2UxZDc5OWMuLjY3YjA0NDFhYTIyYTRmNTA0YmFmYjUwYWYyYzMyMmYxYWEzNzU2MTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENv
bnRyb2xsZXIuY3BwCkBAIC03MywxMyArNzMsMTMgQEAgdm9pZCBXb3JrZXJTY3JpcHRDb250cm9s
bGVyOjppbml0U2NyaXB0KCkKICAgICAvLyBFeHBsaWNpdGx5IHByb3RlY3QgdGhlIGdsb2JhbCBv
YmplY3QncyBwcm90b3R5cGUgc28gaXQgaXNuJ3QgY29sbGVjdGVkCiAgICAgLy8gd2hlbiB3ZSBh
bGxvY2F0ZSB0aGUgZ2xvYmFsIG9iamVjdC4gKE9uY2UgdGhlIGdsb2JhbCBvYmplY3QgaXMgZnVs
bHkKICAgICAvLyBjb25zdHJ1Y3RlZCwgaXQgY2FuIG1hcmsgaXRzIG93biBwcm90b3R5cGUuKQot
ICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHdvcmtlckNvbnRleHRQcm90b3R5cGVTdHJ1Y3R1cmUgPSBK
U1dvcmtlckNvbnRleHRQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSk7CisgICAg
UmVmUHRyPFN0cnVjdHVyZT4gd29ya2VyQ29udGV4dFByb3RvdHlwZVN0cnVjdHVyZSA9IEpTV29y
a2VyQ29udGV4dFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKCptX2dsb2JhbERhdGEsIGpzTnVs
bCgpKTsKICAgICBHbG9iYWw8SlNXb3JrZXJDb250ZXh0UHJvdG90eXBlPiB3b3JrZXJDb250ZXh0
UHJvdG90eXBlKCptX2dsb2JhbERhdGEsIG5ldyAobV9nbG9iYWxEYXRhLmdldCgpKSBKU1dvcmtl
ckNvbnRleHRQcm90b3R5cGUoMCwgd29ya2VyQ29udGV4dFByb3RvdHlwZVN0cnVjdHVyZS5yZWxl
YXNlKCkpKTsKIAogICAgIGlmIChtX3dvcmtlckNvbnRleHQtPmlzRGVkaWNhdGVkV29ya2VyQ29u
dGV4dCgpKSB7Ci0gICAgICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IGRlZGljYXRlZENvbnRleHRQcm90
b3R5cGVTdHJ1Y3R1cmUgPSBKU0RlZGljYXRlZFdvcmtlckNvbnRleHRQcm90b3R5cGU6OmNyZWF0
ZVN0cnVjdHVyZSh3b3JrZXJDb250ZXh0UHJvdG90eXBlLmdldCgpKTsKKyAgICAgICAgUmVmUHRy
PFN0cnVjdHVyZT4gZGVkaWNhdGVkQ29udGV4dFByb3RvdHlwZVN0cnVjdHVyZSA9IEpTRGVkaWNh
dGVkV29ya2VyQ29udGV4dFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKCptX2dsb2JhbERhdGEs
IHdvcmtlckNvbnRleHRQcm90b3R5cGUuZ2V0KCkpOwogICAgICAgICBHbG9iYWw8SlNEZWRpY2F0
ZWRXb3JrZXJDb250ZXh0UHJvdG90eXBlPiBkZWRpY2F0ZWRDb250ZXh0UHJvdG90eXBlKCptX2ds
b2JhbERhdGEsIG5ldyAobV9nbG9iYWxEYXRhLmdldCgpKSBKU0RlZGljYXRlZFdvcmtlckNvbnRl
eHRQcm90b3R5cGUoMCwgZGVkaWNhdGVkQ29udGV4dFByb3RvdHlwZVN0cnVjdHVyZS5yZWxlYXNl
KCkpKTsKLSAgICAgICAgUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlID0gSlNEZWRpY2F0ZWRX
b3JrZXJDb250ZXh0OjpjcmVhdGVTdHJ1Y3R1cmUoZGVkaWNhdGVkQ29udGV4dFByb3RvdHlwZS5n
ZXQoKSk7CisgICAgICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSA9IEpTRGVkaWNhdGVk
V29ya2VyQ29udGV4dDo6Y3JlYXRlU3RydWN0dXJlKCptX2dsb2JhbERhdGEsIGRlZGljYXRlZENv
bnRleHRQcm90b3R5cGUuZ2V0KCkpOwogCiAgICAgICAgIG1fd29ya2VyQ29udGV4dFdyYXBwZXIu
c2V0KCptX2dsb2JhbERhdGEsIG5ldyAobV9nbG9iYWxEYXRhLmdldCgpKSBKU0RlZGljYXRlZFdv
cmtlckNvbnRleHQoc3RydWN0dXJlLnJlbGVhc2UoKSwgbV93b3JrZXJDb250ZXh0LT50b0RlZGlj
YXRlZFdvcmtlckNvbnRleHQoKSkpOwogICAgICAgICB3b3JrZXJDb250ZXh0UHJvdG90eXBlLT5w
dXRBbm9ueW1vdXNWYWx1ZSgqbV9nbG9iYWxEYXRhLCAwLCBtX3dvcmtlckNvbnRleHRXcmFwcGVy
LmdldCgpKTsKQEAgLTg3LDkgKzg3LDkgQEAgdm9pZCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpp
bml0U2NyaXB0KCkKICNpZiBFTkFCTEUoU0hBUkVEX1dPUktFUlMpCiAgICAgfSBlbHNlIHsKICAg
ICAgICAgQVNTRVJUKG1fd29ya2VyQ29udGV4dC0+aXNTaGFyZWRXb3JrZXJDb250ZXh0KCkpOwot
ICAgICAgICBSZWZQdHI8U3RydWN0dXJlPiBzaGFyZWRDb250ZXh0UHJvdG90eXBlU3RydWN0dXJl
ID0gSlNTaGFyZWRXb3JrZXJDb250ZXh0UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUod29ya2Vy
Q29udGV4dFByb3RvdHlwZS5nZXQoKSk7CisgICAgICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHNoYXJl
ZENvbnRleHRQcm90b3R5cGVTdHJ1Y3R1cmUgPSBKU1NoYXJlZFdvcmtlckNvbnRleHRQcm90b3R5
cGU6OmNyZWF0ZVN0cnVjdHVyZSgqbV9nbG9iYWxEYXRhLCB3b3JrZXJDb250ZXh0UHJvdG90eXBl
LmdldCgpKTsKICAgICAgICAgR2xvYmFsPEpTU2hhcmVkV29ya2VyQ29udGV4dFByb3RvdHlwZT4g
c2hhcmVkQ29udGV4dFByb3RvdHlwZSgqbV9nbG9iYWxEYXRhLCBuZXcgKG1fZ2xvYmFsRGF0YS5n
ZXQoKSkgSlNTaGFyZWRXb3JrZXJDb250ZXh0UHJvdG90eXBlKDAsIHNoYXJlZENvbnRleHRQcm90
b3R5cGVTdHJ1Y3R1cmUucmVsZWFzZSgpKSk7Ci0gICAgICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHN0
cnVjdHVyZSA9IEpTU2hhcmVkV29ya2VyQ29udGV4dDo6Y3JlYXRlU3RydWN0dXJlKHNoYXJlZENv
bnRleHRQcm90b3R5cGUuZ2V0KCkpOworICAgICAgICBSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1
cmUgPSBKU1NoYXJlZFdvcmtlckNvbnRleHQ6OmNyZWF0ZVN0cnVjdHVyZSgqbV9nbG9iYWxEYXRh
LCBzaGFyZWRDb250ZXh0UHJvdG90eXBlLmdldCgpKTsKIAogICAgICAgICBtX3dvcmtlckNvbnRl
eHRXcmFwcGVyLnNldCgqbV9nbG9iYWxEYXRhLCBuZXcgKG1fZ2xvYmFsRGF0YS5nZXQoKSkgSlNT
aGFyZWRXb3JrZXJDb250ZXh0KHN0cnVjdHVyZS5yZWxlYXNlKCksIG1fd29ya2VyQ29udGV4dC0+
dG9TaGFyZWRXb3JrZXJDb250ZXh0KCkpKTsKICAgICAgICAgd29ya2VyQ29udGV4dFByb3RvdHlw
ZS0+cHV0QW5vbnltb3VzVmFsdWUoKm1fZ2xvYmFsRGF0YSwgMCwgbV93b3JrZXJDb250ZXh0V3Jh
cHBlci5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCmluZGV4IGNiNTFjOGEyN2Q4MTJlZTM3MzRkMGRiMGRjMDQxMzYzNjVi
MWE1ZjEuLjEyYjQ3N2I1ODk0NWM3NTcyMDNmNTdjYTI1NWQwMmU4NzU2YWJjN2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBA
IC03NDYsOSArNzQ2LDkgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgICRzdHJ1Y3R1cmVG
bGFnc3siSlNDOjpOZWVkc1RoaXNDb252ZXJzaW9uIn0gPSAxOwogICAgIH0KICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LAotICAgICAgICAiICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSlcbiIgLgorICAgICAg
ICAiICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpXG4i
IC4KICAgICAgICAgIiAgICB7XG4iIC4KLSAgICAgICAgIiAgICAgICAgcmV0dXJuIEpTQzo6U3Ry
dWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pO1xuIiAuCisgICAg
ICAgICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHBy
b3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTtcbiIgLgogICAgICAgICAiICAgIH1cblxuIik7
CiAKICAgICAjIG1hcmtDaGlsZHJlbiBmdW5jdGlvbgpAQCAtOTU4LDkgKzk1OCw5IEBAIHN1YiBH
ZW5lcmF0ZUhlYWRlcgogICAgICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6T3ZlcnJpZGVzTWFy
a0NoaWxkcmVuIn0gPSAxOwogICAgIH0KICAgICBwdXNoKEBoZWFkZXJDb250ZW50LAotICAgICAg
ICAiICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNDOjpKU1ZhbHVlIHByb3RvdHlwZSlcbiIgLgorICAgICAgICAiICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpXG4iIC4KICAgICAgICAgIiAgICB7XG4i
IC4KLSAgICAgICAgIiAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90
eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pO1xuIiAuCisgICAgICAgICIgICAgICAgIHJldHVybiBK
U0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5m
byhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAm
c19pbmZvKTtcbiIgLgogICAgICAgICAiICAgIH1cbiIpOwogICAgIGlmICgkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5nUHJvdG90eXBlUHV0RnVuY3Rpb24ifSkgewog
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1Zh
bHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7CkBAIC0xNDQyLDkgKzE0NDIsOSBAQCBz
dWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpT
T2JqZWN0KiAke2NsYXNzTmFtZX06OmNyZWF0ZVByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ7XG4iKTsKICAgICAgICAgaWYgKCRoYXNQYXJlbnQgJiYgJHBhcmVudENsYXNzTmFtZSBu
ZSAiSlNDOjpET01Ob2RlRmlsdGVyIikgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgcmV0dXJuIG5ldyAoZXhlYykgJHtjbGFzc05hbWV9UHJvdG90eXBlKGdsb2JhbE9iamVj
dCwgJHtjbGFzc05hbWV9UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoJHtwYXJlbnRDbGFzc05h
bWV9UHJvdG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCkpKTtcbiIpOworICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIG5ldyAoZXhlYykgJHtjbGFzc05hbWV9
UHJvdG90eXBlKGdsb2JhbE9iamVjdCwgJHtjbGFzc05hbWV9UHJvdG90eXBlOjpjcmVhdGVTdHJ1
Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCAke3BhcmVudENsYXNzTmFtZX1Qcm90b3R5cGU6OnNl
bGYoZXhlYywgZ2xvYmFsT2JqZWN0KSkpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gbmV3IChleGVjKSAke2NsYXNzTmFt
ZX1Qcm90b3R5cGUoZ2xvYmFsT2JqZWN0LCAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OmNyZWF0ZVN0
cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSk7XG4iKTsKKyAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBuZXcgKGV4ZWMpICR7Y2xhc3NOYW1l
fVByb3RvdHlwZShnbG9iYWxPYmplY3QsICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6Y3JlYXRlU3Ry
dWN0dXJlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QtPm9iamVjdFBy
b3RvdHlwZSgpKSk7XG4iKTsKICAgICAgICAgfQogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
In1cblxuIik7CiAgICAgfQpAQCAtMjg3Myw5ICsyODczLDkgQEAgc3ViIEdlbmVyYXRlQ29uc3Ry
dWN0b3JEZWNsYXJhdGlvbgogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTtcbiIpOwogICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvO1xuIik7
CiAKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKVxuIik7Cisg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6
SlNWYWx1ZSBwcm90b3R5cGUpXG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAge1xu
Iik7Ci0gICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1
cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7XG4iKTsKKyAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTtcbiIpOwogICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIiAgICB9XG4iKTsKIAogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgInBy
b3RlY3RlZDpcbiIpOwpAQCAtMjkwNyw3ICsyOTA3LDcgQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0
b3JEZWZpbml0aW9uCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiY29uc3QgQ2xhc3NJbmZvICR7
Y29uc3RydWN0b3JDbGFzc05hbWV9OjpzX2luZm8gPSB7IFwiJHt2aXNpYmxlQ2xhc3NOYW1lfUNv
bnN0cnVjdG9yXCIsICZET01Db25zdHJ1Y3Rvck9iamVjdDo6c19pbmZvLCAmJHtjb25zdHJ1Y3Rv
ckNsYXNzTmFtZX1UYWJsZSwgMCB9O1xuXG4iKTsKIAogICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiR7Y29uc3RydWN0b3JDbGFzc05hbWV9Ojoke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfShFeGVjU3Rh
dGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpXG4iKTsKLSAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdCgke2NvbnN0cnVjdG9y
Q2xhc3NOYW1lfTo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBl
KCkpLCBnbG9iYWxPYmplY3QpXG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgOiBE
T01Db25zdHJ1Y3Rvck9iamVjdCgke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6Y3JlYXRlU3RydWN0
dXJlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QtPm9iamVjdFByb3Rv
dHlwZSgpKSwgZ2xvYmFsT2JqZWN0KVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xu
Iik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZv
KSk7XG4iKTsKICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5oCmluZGV4IDI2N2Q3MWU0NzI4MjU4ODUz
ZjMxODUwOWQyMzM1NjVhYmQ0MmI3MmQuLjg1ODE1ZmJkNDY5ODQ1YWZlNjUwNGRmNmY2Yjk5YmU3
NGI3MmY2NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50aW1lT2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvQ1J1bnRpbWVPYmplY3QuaApAQCAt
NDQsOSArNDQsOSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5m
bzsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpT
VmFsdWUgcHJvdG90eXBlKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRl
U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAg
ICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5m
byk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5
cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENv
dW50LCAmc19pbmZvKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvYy9jX2luc3RhbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFu
Y2UuY3BwCmluZGV4IDI3YWZmZWIxN2M5NmQ1YjJlNzYxNDE4NDIzMWU5NjNlNzllM2E3OWIuLjIx
ZmFlNGYxZmNiN2U0Zjk4MzE5NmQ4OGI0M2I5MTg1ZTA1YzFlMTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9jL2NfaW5zdGFuY2UuY3BwCkBAIC0xMjAsOSArMTIwLDkgQEAgcHVibGljOgogICAgICAg
ICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAK
ICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuY3BwCmluZGV4IDk1ZDUxODAxOTQ5N2Rl
NDI5YmZiOGNlNzY4NjNkNTg1NmY5ZTFjYzMuLmIzMTE0MWU0YjkxYmI4MDQ3Y2Q0NDM2ZWFiOWIy
NGY4MzVhYjQxNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0ph
dmFJbnN0YW5jZUpTQy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2
YUluc3RhbmNlSlNDLmNwcApAQCAtMTI1LDkgKzEyNSw5IEBAIHB1YmxpYzoKICAgICAgICAgQVNT
RVJUKGluaGVyaXRzKCZzX2luZm8pKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAg
c3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvam5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuaAppbmRleCAxMmE4NWFlNGRlYTUxODdkMzA5
MTFmNDFkNGUwNDkxNDNiZDJlNDgwLi4wM2YxMTZmYWRmNWRhNDBlOGQ4OGY3NjhkMzIwZDE2NjNi
NDJkMjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhUnVu
dGltZU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50
aW1lT2JqZWN0LmgKQEAgLTQyLDkgKzQyLDkgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0
IENsYXNzSW5mbyBzX2luZm87CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFs
dWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNT
bG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0LmgKaW5kZXggZTlmYTEwZGMwNThk
MDdkODJjYmYyZWQ4ZjQxNDlhM2Y1OGNmNTVjZi4uYjI5YTMzMzk5OTViYjk1OWNiZWFlYTM0OWUz
ZmMyZDliNzFmOWE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvT2Jq
Q1J1bnRpbWVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9PYmpDUnVu
dGltZU9iamVjdC5oCkBAIC00Miw5ICs0Miw5IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25z
dCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBj
cmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1Zh
bHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3Vz
U2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tCmluZGV4IGUwYjE4ZjE0MjU1MWU3ZTgx
ZWVhMjkwMTA2ZGQ2NzgyYTlmYmJjNTcuLjRmOTNjZmE2YWY5NzE2ZGRkYjRmZDFkZWUzYzFjODQ5
ZjU1M2Y5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5z
dGFuY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5t
bQpAQCAtMTg0LDkgKzE4NCw5IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKGluaGVyaXRzKCZz
X2luZm8pKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0
ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1
Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUg
cHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3Rv
dHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90
Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0IENs
YXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9v
YmpjX3J1bnRpbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5o
CmluZGV4IDFjZWU4NWJjMjJjMWZjMDA1YThkZjcyMTk3YmM3ZjAwNjI4ZDFjNDEuLjRlZjBhZmQ1
NzM5N2VhNWY3NWZkNTgzNmEzNjc0NjA0NWJhMzcyODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9vYmpjL29iamNfcnVudGltZS5oCkBAIC0xMDMsOSArMTAzLDkgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKTsKICAgICB9CiAKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3Rv
dHlwZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5m
byk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3F0L3F0X2luc3RhbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9pbnN0YW5j
ZS5jcHAKaW5kZXggN2FmNzUyZDRmMDdiYjkxNzU5MDc1YTA1YjQxY2FkMjIyY2U3ZmFlYS4uOTFh
ZTQwZjFkMGIwMzE5MDAyNDViNDQ4OTFjMmMxZDgzMTZiMTljNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwCkBAIC01OSw5ICs1OSw5IEBAIHB1YmxpYzoKICAgICAg
ICAgICAgIGluc3RhbmNlLT5tYXJrQWdncmVnYXRlKG1hcmtTdGFjayk7CiAgICAgfQogCi0gICAg
c3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90
b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5
cGUsICBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJ
bmZvKE9iamVjdFR5cGUsICBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcXQvcXRfcGl4bWFwcnVudGltZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQv
cXRfcGl4bWFwcnVudGltZS5jcHAKaW5kZXggNTM0ZTI4ZTI1OWI0ODZhN2MzOTNmZDU1MWEyNmNm
MTk5MTZkMTQ1OC4uZjVlMmIxMmJkMzExNTVkZTdiY2VmOGZmYmMyZDc3M2Q4NzZmNGUzYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3BpeG1hcHJ1bnRpbWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9waXhtYXBydW50aW1lLmNwcApAQCAtMTUw
LDkgKzE1MCw5IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZv
OwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNW
YWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVT
dHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsICBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5m
byk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5
cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsICBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cXQvcXRfcnVudGltZS5jcHAKaW5kZXggZWQzZjg0MTM3NmZlZDM0ZWViMzNmYjIyM2FhZGQyZjUx
M2JlOWUwZC4uN2NkNmM2NDNhNWJhYWNjNWIzY2VlOTRkN2E5NzQzMzQ2ZWY3NGQyYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcApAQCAtODkwLDcgKzg5MCw3IEBAIEpT
VmFsdWUgY29udmVydFFWYXJpYW50VG9WYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8
Um9vdE9iamVjdD4gcm9vdCwgY29uCiAgICAgICAgIFFCeXRlQXJyYXkgcXRCeXRlQXJyYXkgPSB2
YXJpYW50LnZhbHVlPFFCeXRlQXJyYXk+KCk7CiAgICAgICAgIFdURjo6UmVmUHRyPFdURjo6Qnl0
ZUFycmF5PiB3dGZCeXRlQXJyYXkgPSBXVEY6OkJ5dGVBcnJheTo6Y3JlYXRlKHF0Qnl0ZUFycmF5
Lmxlbmd0aCgpKTsKICAgICAgICAgbWVtY3B5KHd0ZkJ5dGVBcnJheS0+ZGF0YSgpLCBxdEJ5dGVB
cnJheS5jb25zdERhdGEoKSwgcXRCeXRlQXJyYXkubGVuZ3RoKCkpOwotICAgICAgICByZXR1cm4g
bmV3IChleGVjKSBKU0M6OkpTQnl0ZUFycmF5KGV4ZWMsIEpTQzo6SlNCeXRlQXJyYXk6OmNyZWF0
ZVN0cnVjdHVyZShqc051bGwoKSksIHd0ZkJ5dGVBcnJheS5nZXQoKSk7CisgICAgICAgIHJldHVy
biBuZXcgKGV4ZWMpIEpTQzo6SlNCeXRlQXJyYXkoZXhlYywgSlNDOjpKU0J5dGVBcnJheTo6Y3Jl
YXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNOdWxsKCkpLCB3dGZCeXRlQXJyYXku
Z2V0KCkpOwogICAgIH0KIAogICAgIGlmICh0eXBlID09IFFNZXRhVHlwZTo6UU9iamVjdFN0YXIg
fHwgdHlwZSA9PSBRTWV0YVR5cGU6OlFXaWRnZXRTdGFyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0
L3F0X3J1bnRpbWUuaAppbmRleCBiODZjY2JlMmMzODNkMWJmZDMxMTNkZTczNzk4MDA5MjAyZjE0
Y2NmLi44NWIzNGI4Y2M1ZTBlMGViZjZmNTBkNTUwZWNkMWY0YjgxZDhkY2IxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmgKQEAgLTE1Myw5ICsxNTMsOSBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QtPmZ1bmN0aW9uUHJvdG90eXBlKCk7CiAgICAgfQog
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1
ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1
Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7
Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsICBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7
CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUs
IFR5cGVJbmZvKE9iamVjdFR5cGUsICBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3Vu
dCwgJnNfaW5mbyk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfYXJyYXkuaAppbmRleCBiZDFkYTMyMTcxNjdhMDE5N2RiNjY2ZTc4NTJkYmEwOTU2NTg5ODA2
Li45NTU1NTQ1MmRlZjk2YWYwNmNhNjk1ZGY1ZGIwOGQwN2E4YTZjMDU4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX2FycmF5LmgKQEAgLTU4LDkgKzU4LDkgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5hcnJheVByb3RvdHlwZSgpOwogICAgIH0KIAotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90
eXBlKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZv
KTsKICAgICB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX21ldGhvZC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9k
LmgKaW5kZXggYzBjOWYxNjM0MDRjNWE5ODJkYzA5ZWZkM2UwZDAzZDViOGVmNzM0Ny4uOWRmNzk2
ZWIwNzE1YmYzMmIzNGQyMjNmYjUyYjNjODI2MmJjNmJlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfbWV0aG9kLmgKQEAgLTQ1LDkgKzQ1LDkgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gZ2xvYmFsT2JqZWN0LT5mdW5jdGlvblByb3RvdHlwZSgpOwogICAgIH0KIAotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBl
KQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsK
ICAgICB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX29iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgK
aW5kZXggMGRlY2QxNzg2NDg0MzkwOGM2OGQ1NmQ2M2Y0OTAxMzEzMjhhYTQwMS4uYmI2ZDA1MTBm
MjhkNDNkYjU3NTE4NTA5ZTEwYmQxMmE0M2QzNGFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfb2JqZWN0LmgKQEAgLTYxLDkgKzYxLDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
Z2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAg
fQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZDc3NTc3MmI1ZWY5Zjk2YjQ2YWM0
Y2FkM2E1YTc4M2Y2MjRmZDZjYy4uZjE3MzViODZiNDM0NmY2NjNiNWVlZmM3MTUwZmQ0Njc2NzA2
YWRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTAzLTE1ICBPbGl2
ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWFrZSBTdHJ1Y3R1cmUgY3JlYXRpb24gcmVxdWlyZSBhIEpT
R2xvYmFsRGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTY0MzgKKworICAgICAgICBNZWNoYW5pY2FsIGNoYW5nZSB0byBtYWtlIGFsbCBTdHJ1Y3R1
cmUgY3JlYXRpb24gdXNlIGEgSlNHbG9iYWxEYXRhJgorCisgICAgICAgICogUGx1Z2lucy9Ib3N0
ZWQvUHJveHlJbnN0YW5jZS5tbToKKyAgICAgICAgKFdlYktpdDo6UHJveHlSdW50aW1lTWV0aG9k
OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGlt
ZU9iamVjdC5oOgorICAgICAgICAoV2ViS2l0OjpQcm94eVJ1bnRpbWVPYmplY3Q6OmNyZWF0ZVN0
cnVjdHVyZSk6CisKIDIwMTEtMDMtMTUgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5j
b20+CiAKICAgICAgICAgRm9yZ290IHRvIHNhdmUgYSBtb2RpZmljYXRpb24gdG8gdGhpcyBmaWxl
IHdoZW4gY29tbWl0dGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMv
SG9zdGVkL1Byb3h5SW5zdGFuY2UubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3Rl
ZC9Qcm94eUluc3RhbmNlLm1tCmluZGV4IDhhNDEzZDQyOGMyNzY1OTg4Yzg3NjhlM2M3YmZlOTMw
NDE3MmE4MDcuLmYyNmI4NWRjZWEyYTM5ZmE1MzlmMDg4NjM0NWY1YTUxODIwMjQzMzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW0K
KysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbQpA
QCAtMTg3LDkgKzE4Nyw5IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2lu
Zm8pKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0
cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1
cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJv
dG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlw
ZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291
bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0
YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255
bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0IENsYXNz
SW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3Rl
ZC9Qcm94eVJ1bnRpbWVPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVk
L1Byb3h5UnVudGltZU9iamVjdC5oCmluZGV4IGZjNzc4OTAyYWZlNGNhMDQ1MjI3OTI5NDcwYWZl
Yjg2ZGE4MWY3MGQuLmEwN2M4NmM4ODhlNzdiYTNiYzE2NGM0ZGFjMDc3ZTgyZjIwN2YzYjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGlt
ZU9iamVjdC5oCkBAIC00MSw5ICs0MSw5IEBAIHB1YmxpYzoKIAogICAgIFByb3h5SW5zdGFuY2Uq
IGdldEludGVybmFsUHJveHlJbnN0YW5jZSgpIGNvbnN0OwogCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBl
KQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAg
ICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpT
Qzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Ns
b3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRl
KGdsb2JhbERhdGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKICAg
ICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGU3NGY5
M2IyMGIzMThjZDg1Y2QxNmU5Yjk3MzczYzA5ZmU3YjVlNDUuLmM5MzAxNWJlZTFkYTQ1ZDY5NTk1
MDllM2EwZDNjNDk1NmU1Yzg3MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMS0w
My0xNSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgU3RydWN0dXJlIGNyZWF0aW9uIHJl
cXVpcmUgYSBKU0dsb2JhbERhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU2NDM4CisKKyAgICAgICAgTWVjaGFuaWNhbCBjaGFuZ2UgdG8gbWFrZSBh
bGwgU3RydWN0dXJlIGNyZWF0aW9uIHVzZSBhIEpTR2xvYmFsRGF0YSYuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkpTTlBNZXRob2Q6OkpTTlBNZXRob2QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QTWV0aG9kLmg6CisgICAgICAgIChXZWJLaXQ6OkpTTlBNZXRob2Q6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pT
TlBPYmplY3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpKU05QT2JqZWN0OjpKU05QT2JqZWN0KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oOgorICAg
ICAgICAoV2ViS2l0OjpKU05QT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorCiAyMDExLTAzLTE2
ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBBZGFtIFJvYmVuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwCmluZGV4IGZjNzM1MTkwODYxMDUxYjg5YWI4
ODJiZDExZTdiMWRjODViMzRkYmIuLjhiMzZkMWRhZWY4MDVmZjM3N2MzMWViYjAwOGM1ODNlNDM5
MGRlNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9KU05QTWV0aG9kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiBjb25zdCBDbGFzc0luZm8gSlNOUE1ldGhvZDo6c19pbmZvID0geyAiTlBNZXRob2Qi
LCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvLCAwLCAwIH07CiAKIEpTTlBNZXRob2Q6OkpTTlBN
ZXRob2QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25z
dCBJZGVudGlmaWVyJiBuYW1lLCBOUElkZW50aWZpZXIgbnBJZGVudGlmaWVyKQotICAgIDogSW50
ZXJuYWxGdW5jdGlvbigmZXhlYy0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QsIGNyZWF0ZVN0
cnVjdHVyZShnbG9iYWxPYmplY3QtPmZ1bmN0aW9uUHJvdG90eXBlKCkpLCBuYW1lKQorICAgIDog
SW50ZXJuYWxGdW5jdGlvbigmZXhlYy0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QsIGNyZWF0
ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdC0+ZnVuY3Rpb25Qcm90
b3R5cGUoKSksIG5hbWUpCiAgICAgLCBtX25wSWRlbnRpZmllcihucElkZW50aWZpZXIpCiB7CiAg
ICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5oCmluZGV4IGE5MTNhOTlk
MDVhYTQ4YmQyOWVhYTc3NDZjMzcwOTMzM2U0Y2I3MDguLmYwYzI0MjRhZGJmYjFhYmEzNzc0YjI5
YmZjYWE0NjE5M2FiODM0ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaApAQCAtNDIsOSArNDIsOSBAQCBwdWJs
aWM6CiAgICAgTlBJZGVudGlmaWVyIG5wSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fbnBJ
ZGVudGlmaWVyOyB9CiAKIHByaXZhdGU6ICAgIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6
U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6OlR5cGVJ
bmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQs
ICZzX2luZm8pOworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxE
YXRhLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgdmlydHVh
bCBKU0M6OkNhbGxUeXBlIGdldENhbGxEYXRhKEpTQzo6Q2FsbERhdGEmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0
LmNwcAppbmRleCAyNzI0ZjBkNjU5YzgwNGNjNWZhNzc3ZTc4NWI5MmRjYWI4YTc0MWZmLi45M2Y5
ZmM1YmI4NzA5NDU1ZTYwNDAxZTZiOWZjZjM0ZmI2YzA0YWQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3Bw
CkBAIC01MCw3ICs1MCw3IEBAIHN0YXRpYyBOUElkZW50aWZpZXIgbnBJZGVudGlmaWVyRnJvbUlk
ZW50aWZpZXIoY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcikKIGNvbnN0IENsYXNzSW5mbyBK
U05QT2JqZWN0OjpzX2luZm8gPSB7ICJOUE9iamVjdCIsICZKU09iamVjdFdpdGhHbG9iYWxPYmpl
Y3Q6OnNfaW5mbywgMCwgMCB9OwogCiBKU05QT2JqZWN0OjpKU05QT2JqZWN0KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIE5QUnVudGltZU9iamVjdE1hcCogb2JqZWN0TWFwLCBOUE9iamVj
dCogbnBPYmplY3QpCi0gICAgOiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0
LCBjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpCisgICAg
OiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LCBjcmVhdGVTdHJ1Y3R1cmUo
Z2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBl
KCkpKQogICAgICwgbV9vYmplY3RNYXAob2JqZWN0TWFwKQogICAgICwgbV9ucE9iamVjdChucE9i
amVjdCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9KU05QT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvSlNOUE9iamVjdC5oCmluZGV4IGFkYWZmYTdmMjkxZjkzZjI5YWQyZDViZDk5Yjhj
ODliOWI2Y2I4ODQuLmU4YTA4ZGFkNDg3ZTAwN2M4ZjQ2ODZjYWViNTRhNzQxOTAyY2MzMGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L0pTTlBPYmplY3QuaApAQCAtNTUsOSArNTUsOSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6T3ZlcnJpZGVzR2V0T3du
UHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmplY3Q6
OlN0cnVjdHVyZUZsYWdzOwogICAgIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpT
Qzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBw
cm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgdmlydHVhbCBKU0M6
OkNhbGxUeXBlIGdldENhbGxEYXRhKEpTQzo6Q2FsbERhdGEmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85945</attachid>
            <date>2011-03-16 11:27:41 -0700</date>
            <delta_ts>2011-03-16 11:41:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56438-20110316112740.patch</filename>
            <type>text/plain</type>
            <size>131066</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODEyNTMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCmluZGV4IGNkMzA3YTY3NjVlNjk0ZGNiM2U3ODg2
ZjVjOTRiNWRmYzIyNzQ4YTAuLjAwMWM0MTYxNmRmMDg3NjA0ZTc4NjhkMDMwZTUxMzFkM2RiYjM2
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0
cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3Ry
dWN0b3IuaApAQCAtMzksOSArMzksOSBAQCBwdWJsaWM6CiAgICAgSlNPYmplY3RDYWxsQXNDb25z
dHJ1Y3RvckNhbGxiYWNrIGNhbGxiYWNrKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsYmFjazsgfQog
ICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90bykgCisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU1ZhbHVlIHByb3RvKSAKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUoZ2xvYmFsRGF0YSwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKIHByb3RlY3RlZDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oCmluZGV4IGQ4
YWU2MDgzNjgxY2ZlMjQ0NWVkYjIzZDc0N2Y0OTExOTY1ZDVhMmYuLjExZmI5NWM1YzEwZjIzOGM2
ODcxMjA3ZGY3OGYyMTM5MjhjYzFiZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0NhbGxiYWNrRnVuY3Rpb24uaApAQCAtMzksOSArMzksOSBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgLy8gSW50ZXJuYWxGdW5jdGlvbiBtaXNoLW1hc2hlcyBjb25zdHJ1Y3RvciBhbmQgZnVuY3Rp
b24gYmVoYXZpb3IgLS0gd2Ugc2hvdWxkIAogICAgIC8vIHJlZmFjdG9yIHRoZSBjb2RlIHNvIHRo
aXMgb3ZlcnJpZGUgaXNuJ3QgbmVjZXNzYXJ5Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90bykgCisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U1ZhbHVlIHByb3RvKSAKICAgICB7IAotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
cHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsgCisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOyAKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCmluZGV4IDczMmNjMWRiMTQwNTAz
NjU5MGEwZDhhYzFjMDA3MDIzMDE4ZDMwOGYuLmEwYWRiNDQ4Mjc5Zjk4NjA4MTg0ZGY4MTA0YjBi
YTg1OTRiZDNhMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09i
amVjdC5oCkBAIC0xMjgsOSArMTI4LDkgQEAgcHVibGljOgogICAgIEpTQ2xhc3NSZWYgY2xhc3NS
ZWYoKSBjb25zdCB7IHJldHVybiBtX2NhbGxiYWNrT2JqZWN0RGF0YS0+anNDbGFzczsgfQogICAg
IGJvb2wgaW5oZXJpdHMoSlNDbGFzc1JlZikgY29uc3Q7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvKSAKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTVmFsdWUgcHJvdG8pIAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBCYXNl
OjpBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyAKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEJhc2U6OkFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAogICAgIH0KICAg
ICAKICAgICBKU1ZhbHVlIGdldFByaXZhdGVQcm9wZXJ0eShjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q29udGV4dFJlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5j
cHAKaW5kZXggY2NhYjk1MzI2MDA0Y2NhODlmNzgxNWU4NWE1ZWVjODVkMWNkOGI2ZC4uZTVjNzc4
ZjliYzUwYWQ5ODdlMTA3ZDU1MmI5NzkwZTQ4YjBmOTFlZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcApAQCAtOTMsMTEgKzkzLDExIEBAIEpTR2xvYmFsQ29u
dGV4dFJlZiBKU0dsb2JhbENvbnRleHRDcmVhdGVJbkdyb3VwKEpTQ29udGV4dEdyb3VwUmVmIGdy
b3VwLCBKU0NsYXNzCiAjZW5kaWYKIAogICAgIGlmICghZ2xvYmFsT2JqZWN0Q2xhc3MpIHsKLSAg
ICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG5ldyAoZ2xvYmFsRGF0YS5nZXQo
KSkgSlNHbG9iYWxPYmplY3Q7CisgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qg
PSBuZXcgKGdsb2JhbERhdGEuZ2V0KCkpIEpTR2xvYmFsT2JqZWN0KCpnbG9iYWxEYXRhKTsKICAg
ICAgICAgcmV0dXJuIEpTR2xvYmFsQ29udGV4dFJldGFpbih0b0dsb2JhbFJlZihnbG9iYWxPYmpl
Y3QtPmdsb2JhbEV4ZWMoKSkpOwogICAgIH0KIAotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSBuZXcgKGdsb2JhbERhdGEuZ2V0KCkpIEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxP
YmplY3Q+KGdsb2JhbE9iamVjdENsYXNzLCBKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0
Pjo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSk7CisgICAgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCA9IG5ldyAoZ2xvYmFsRGF0YS5nZXQoKSkgSlNDYWxsYmFja09iamVjdDxKU0dsb2Jh
bE9iamVjdD4oZ2xvYmFsT2JqZWN0Q2xhc3MsIEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmpl
Y3Q+OjpjcmVhdGVTdHJ1Y3R1cmUoKmdsb2JhbERhdGEsIGpzTnVsbCgpKSk7CiAgICAgRXhlY1N0
YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CiAgICAgSlNWYWx1ZSBwcm90
b3R5cGUgPSBnbG9iYWxPYmplY3RDbGFzcy0+cHJvdG90eXBlKGV4ZWMpOwogICAgIGlmICghcHJv
dG90eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggYzQ5NzM2Y2VkYzlhOGZjYWM2Mzdl
MTZmZjE1MjI1ZWMyMjliMDVkMS4uMzQxYTBhNzEwOTI0ZjdhNmJmMDg1ZTE0M2MxNDNmZTQyZmJi
MmYxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMxIEBACisyMDExLTAz
LTE1ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBTdHJ1Y3R1cmUgY3JlYXRpb24gcmVx
dWlyZSBhIEpTR2xvYmFsRGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTY0MzgKKworICAgICAgICBNZWNoYW5pY2FsIGNoYW5nZSB0byBtYWtlIFN0
cnVjdHVyZTo6Y3JlYXRlIHJlcXVpcmUgSlNHbG9iYWxEYXRhJiwgYW5kCisgICAgICAgIHJlcXVp
cmUgYWxsIHVzZXJzIHRvIHByb3ZpZGUgdGhlIGdsb2JhbERhdGEuCisKKyAgICAgICAgKiBBUEkv
SlNDYWxsYmFja0NvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tDb25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja0Z1bmN0aW9u
Lmg6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKToK
KyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0NhbGxi
YWNrT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIEFQSS9KU0NvbnRleHRSZWYu
Y3BwOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAgICAgKiBkZWJ1Z2dlci9E
ZWJ1Z2dlckFjdGl2YXRpb24uY3BwOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckFjdGl2YXRpb246
OkRlYnVnZ2VyQWN0aXZhdGlvbik6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0
aW9uLmg6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyQWN0aXZhdGlvbjo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpERUZJTkVfU1RV
Ql9GVU5DVElPTik6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKEdsb2JhbE9iamVjdDo6
R2xvYmFsT2JqZWN0KToKKyAgICAgICAgKGZ1bmN0aW9uUnVuKToKKyAgICAgICAgKGpzY21haW4p
OgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmg6CisgICAgICAgIChKU0M6OkFyZ3VtZW50
czo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmg6
CisgICAgICAgIChKU0M6OkFycmF5UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAg
ICAqIHJ1bnRpbWUvQm9vbGVhbk9iamVjdC5oOgorICAgICAgICAoSlNDOjpCb29sZWFuT2JqZWN0
OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUluc3RhbmNlLmg6Cisg
ICAgICAgIChKU0M6OkRhdGVJbnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBy
dW50aW1lL0RhdGVQcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RGF0ZVByb3RvdHlwZTo6Y3Jl
YXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9ySW5zdGFuY2UuaDoKKyAgICAg
ICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50
aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUJhc2U6OmNyZWF0ZVN0
cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkV2YWxFeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAoSlNDOjpQcm9ncmFtRXhlY3V0YWJsZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAg
ICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Q
cm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9HZXR0ZXJTZXR0
ZXIuaDoKKyAgICAgICAgKEpTQzo6R2V0dGVyU2V0dGVyOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAg
ICAgICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpJbnRlcm5h
bEZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBUElWYWx1
ZVdyYXBwZXIuaDoKKyAgICAgICAgKEpTQzo6SlNBUElWYWx1ZVdyYXBwZXI6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgICogcnVudGltZS9KU0FjdGl2YXRpb24uaDoKKyAgICAgICAgKEpTQzo6
SlNBY3RpdmF0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJh
eS5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OkpTQXJyYXkpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNBcnJheS5oOgorICAgICAgICAoSlNDOjpKU0FycmF5OjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpKU0J5dGVB
cnJheTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTQnl0ZUFycmF5Lmg6
CisgICAgICAgIChKU0M6OkpTQnl0ZUFycmF5OjpKU0J5dGVBcnJheSk6CisgICAgICAgICogcnVu
dGltZS9KU0NlbGwuaDoKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpKU0NlbGw6OmNyZWF0ZUR1bW15
U3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uaDoKKyAgICAgICAgKEpT
Qzo6SlNGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xv
YmFsRGF0YS5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsRGF0YTo6c3RvcmVWUHRycyk6Cisg
ICAgICAgIChKU0M6OkpTR2xvYmFsRGF0YTo6SlNHbG9iYWxEYXRhKToKKyAgICAgICAgKiBydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OnJl
c2V0KToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6
OkpTR2xvYmFsT2JqZWN0OjpKU0dsb2JhbE9iamVjdCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFs
T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVj
dC5oOgorICAgICAgICAoSlNDOjpKU05vdEFuT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU09OT2JqZWN0Ojpj
cmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAg
ICAoSlNDOjpKU09iamVjdDo6Y3JlYXRlSW5oZXJpdG9ySUQpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgIChKU0M6OkpTTm9uRmluYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
IChKU0M6OkpTRmluYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OmNy
ZWF0ZUVtcHR5T2JqZWN0U3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmluaGVy
aXRvcklEKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oOgor
ICAgICAgICAoSlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6
CisgICAgICAgICogcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmg6CisgICAgICAgIChK
U0M6OkpTUHJvcGVydHlOYW1lSXRlcmF0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICog
cnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTU3RhdGljU2Nv
cGVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5o
OgorICAgICAgICAoSlNDOjpSb3BlQnVpbGRlcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAg
KiBydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNWYXJpYWJsZU9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTV3JhcHBlck9iamVj
dC5oOgorICAgICAgICAoSlNDOjpKU1dyYXBwZXJPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9KU1pvbWJpZS5oOgorICAgICAgICAoSlNDOjpKU1pvbWJpZTo6Y3Jl
YXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL01hdGhPYmplY3QuaDoKKyAgICAgICAg
KEpTQzo6TWF0aE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL05h
dGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0
cnVjdG9yOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBydW50aW1lL05hdGl2
ZUVycm9yQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6TmF0aXZlRXJyb3JDb25zdHJ1Y3Rv
cjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL051bWJlckNvbnN0cnVjdG9y
Lmg6CisgICAgICAgIChKU0M6Ok51bWJlckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyT2JqZWN0Lmg6CisgICAgICAgIChKU0M6Ok51bWJlck9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVj
dG9yLmg6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6
UmVnRXhwQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9S
ZWdFeHBPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1
cmUpOgorICAgICAgICAqIHJ1bnRpbWUvU2NvcGVDaGFpbi5oOgorICAgICAgICAoSlNDOjpTY29w
ZUNoYWluTm9kZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09i
amVjdC5oOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZC5o
OgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZDo6
Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oOgor
ICAgICAgICAoSlNDOjpTdHJpbmdQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
ICogcnVudGltZS9TdHJ1Y3R1cmUuaDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpjcmVhdGUp
OgorCiAyMDExLTAzLTE1ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLmV4cAppbmRleCBmYjZiYmUzYjkzMGE4NDczNGU5Yzg0YmE5OTdlYjM1MTQ1MmRj
ZjEzLi5hNzViYjBjNmM0OWM2ZDIxMjRiNWFmZDBjZDQxYzViMDQwZjk1YWEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTExMyw3ICsxMTMsNyBAQCBfX1pO
M0pTQzEwSlNGdW5jdGlvbjZzX2luZm9FCiBfX1pOM0pTQzEwdGhyb3dFcnJvckVQTlNfOUV4ZWNT
dGF0ZUVOU183SlNWYWx1ZUUKIF9fWk4zSlNDMTB0aHJvd0Vycm9yRVBOU185RXhlY1N0YXRlRVBO
U184SlNPYmplY3RFCiBfX1pOM0pTQzExSlNCeXRlQXJyYXkxM3NfZGVmYXVsdEluZm9FCi1fX1pO
M0pTQzExSlNCeXRlQXJyYXkxNWNyZWF0ZVN0cnVjdHVyZUVOU183SlNWYWx1ZUVQS05TXzlDbGFz
c0luZm9FCitfX1pOM0pTQzExSlNCeXRlQXJyYXkxNWNyZWF0ZVN0cnVjdHVyZUVSTlNfMTJKU0ds
b2JhbERhdGFFTlNfN0pTVmFsdWVFUEtOU185Q2xhc3NJbmZvRQogX19aTjNKU0MxMUpTQnl0ZUFy
cmF5QzFFUE5TXzlFeGVjU3RhdGVFTjNXVEYxN05vbk51bGxQYXNzUmVmUHRySU5TXzlTdHJ1Y3R1
cmVFRUVQTlMzXzlCeXRlQXJyYXlFCiBfX1pOM0pTQzExTWFya2VkU3BhY2UyMWFsbG9jYXRlRnJv
bVNpemVDbGFzc0VSTlMwXzlTaXplQ2xhc3NFCiBfX1pOM0pTQzExUGFyc2VyQXJlbmE1cmVzZXRF
dgpAQCAtMjg3LDcgKzI4Nyw2IEBAIF9fWk4zSlNDOEpTT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQ
TlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDOEpTT2JqZWN0MTRkZWxl
dGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVqCiBfX1pOM0pTQzhKU09iamVjdDE1dW53cmFwcGVk
T2JqZWN0RXYKIF9fWk4zSlNDOEpTT2JqZWN0MTZnZXRQcm9wZXJ0eU5hbWVzRVBOU185RXhlY1N0
YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RU5TXzE1RW51bWVyYXRpb25Nb2RlRQotX19aTjNK
U0M4SlNPYmplY3QxN2NyZWF0ZUluaGVyaXRvcklERXYKIF9fWk4zSlNDOEpTT2JqZWN0MTdkZWZp
bmVPd25Qcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9w
ZXJ0eURlc2NyaXB0b3JFYgogX19aTjNKU0M4SlNPYmplY3QxN3B1dERpcmVjdEZ1bmN0aW9uRVBO
U185RXhlY1N0YXRlRVBOU18xMEpTRnVuY3Rpb25FagogX19aTjNKU0M4SlNPYmplY3QxN3B1dERp
cmVjdEZ1bmN0aW9uRVBOU185RXhlY1N0YXRlRVBOU18xNkludGVybmFsRnVuY3Rpb25FagpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgppbmRl
eCBkYzgxMjZkMTc4OWI0NGFhY2Q1NzEwNzAyY2FhMGJlYWNkM2ZmZjlkLi43NWM2ZDNlZmE4NDk5
OGFlNWE2YjBjNTlkMWU3MjMwNjA1ZjEyOTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LmRlZgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtMTAyLDE0ICsxMDIsMTIgQEAgRVhQ
T1JUUwogICAgID9jcmVhdGVAUmVnRXhwQEpTQ0BAU0E/QVY/JFBhc3NSZWZQdHJAVlJlZ0V4cEBK
U0NAQEBXVEZAQFBBVkpTR2xvYmFsRGF0YUAyQEFCVlVTdHJpbmdAMkBXNFJlZ0V4cEZsYWdzQDJA
QFoKICAgICA/Y3JlYXRlRW1wdHlTdHJpbmdAU21hbGxTdHJpbmdzQEpTQ0BAQUFFWFBBVkpTR2xv
YmFsRGF0YUAyQEBaCiAgICAgP2NyZWF0ZUVycm9yQEpTQ0BAWUFQQVZKU09iamVjdEAxQFBBVkV4
ZWNTdGF0ZUAxQEFCVlVTdHJpbmdAMUBAWgotICAgID9jcmVhdGVJbmhlcml0b3JJREBKU09iamVj
dEBKU0NAQEFBRVBBVlN0cnVjdHVyZUAyQFhaCiAgICAgP2NyZWF0ZUludGVycnVwdGVkRXhlY3V0
aW9uRXhjZXB0aW9uQEpTQ0BAWUFQQVZKU09iamVjdEAxQFBBVkpTR2xvYmFsRGF0YUAxQEBaCiAg
ICAgP2NyZWF0ZUxlYWtlZEBKU0dsb2JhbERhdGFASlNDQEBTQT9BVj8kUGFzc1JlZlB0ckBWSlNH
bG9iYWxEYXRhQEpTQ0BAQFdURkBAVzRUaHJlYWRTdGFja1R5cGVAMkBAWgogICAgID9jcmVhdGVS
YW5nZUVycm9yQEpTQ0BAWUFQQVZKU09iamVjdEAxQFBBVkV4ZWNTdGF0ZUAxQEFCVlVTdHJpbmdA
MUBAWgogICAgID9jcmVhdGVSZWZlcmVuY2VFcnJvckBKU0NAQFlBUEFWSlNPYmplY3RAMUBQQVZF
eGVjU3RhdGVAMUBBQlZVU3RyaW5nQDFAQFoKICAgICA/Y3JlYXRlU2luZ2xlQ2hhcmFjdGVyU3Ry
aW5nQFNtYWxsU3RyaW5nc0BKU0NAQEFBRVhQQVZKU0dsb2JhbERhdGFAMkBFQFoKICAgICA/Y3Jl
YXRlU3RhY2tPdmVyZmxvd0Vycm9yQEpTQ0BAWUFQQVZKU09iamVjdEAxQFBBVkV4ZWNTdGF0ZUAx
QEBaCi0gICAgP2NyZWF0ZVN0cnVjdHVyZUBKU0J5dGVBcnJheUBKU0NAQFNBP0FWPyRQYXNzUmVm
UHRyQFZTdHJ1Y3R1cmVASlNDQEBAV1RGQEBWSlNWYWx1ZUAyQFBCVUNsYXNzSW5mb0AyQEBaCiAg
ICAgP2NyZWF0ZVN5bnRheEVycm9yQEpTQ0BAWUFQQVZKU09iamVjdEAxQFBBVkV4ZWNTdGF0ZUAx
QEFCVlVTdHJpbmdAMUBAWgogICAgID9jcmVhdGVUYWJsZUBIYXNoVGFibGVASlNDQEBBQkVYUEFW
SlNHbG9iYWxEYXRhQDJAQFoKICAgICA/Y3JlYXRlVGhyZWFkQFdURkBAWUFJUDZBUEFYUEFYQFow
QFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzdlNmVlN2RlNzI4OWRjOWRkZGI5
ZDAyOWYyYWE4NWVlM2RlNzA0NC4uMTIxYWRiOTVkYjdhY2RhM2Y2OTczYTY4OWM4OWI5NDBkNWZj
YTMxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2MzgsNiArMjYzOCw3IEBA
CiAJCQl9OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDE0OUMyNzcxMDg5MDJBRkUwMDhB
OUVGQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIkphdmFTY3Jp
cHRDb3JlIiAqLzsKIAkJCWNvbXBhdGliaWxpdHlWZXJzaW9uID0gIlhjb2RlIDMuMSI7CisJCQlk
ZXZlbG9wbWVudFJlZ2lvbiA9IEVuZ2xpc2g7CiAJCQloYXNTY2FubmVkRm9yRW5jb2RpbmdzID0g
MTsKIAkJCWtub3duUmVnaW9ucyA9ICgKIAkJCQlFbmdsaXNoLApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAppbmRleCA2MmEy
ZTU0ZTFiYWI5MmMyZWZjMmVmMTFmNGNiODdhM2I2YjdjODBhLi41MGJhNzQ2ZWVkMTZkYjMwYWJk
MjhlY2M0MDRkZjdjMGI3YTgwNzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcApAQCAtMzEsNyArMzEsNyBAQAogbmFt
ZXNwYWNlIEpTQyB7CiAKIERlYnVnZ2VyQWN0aXZhdGlvbjo6RGVidWdnZXJBY3RpdmF0aW9uKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNPYmplY3QqIGFjdGl2YXRpb24pCi0gICAgOiBKU05v
bkZpbmFsT2JqZWN0KERlYnVnZ2VyQWN0aXZhdGlvbjo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgp
KSkKKyAgICA6IEpTTm9uRmluYWxPYmplY3QoRGVidWdnZXJBY3RpdmF0aW9uOjpjcmVhdGVTdHJ1
Y3R1cmUoZ2xvYmFsRGF0YSwganNOdWxsKCkpKQogewogICAgIEFTU0VSVChhY3RpdmF0aW9uKTsK
ICAgICBBU1NFUlQoYWN0aXZhdGlvbi0+aXNBY3RpdmF0aW9uT2JqZWN0KCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCmluZGV4
IDAxYTQ5MDczMzYxYjBkNjQxMzliZDQ2N2NiZWFhMDg1ZjE0ZTkyMjkuLmYyMmQyZmZiZDkxOTQz
YWU0OGZjOTNmM2M3ZTgwYTIxYWJhNGM5NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKQEAgLTQ5LDkgKzQ5LDkgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgSlNWYWx1ZSBsb29rdXBHZXR0ZXIoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICAgICAgdmlydHVhbCBK
U1ZhbHVlIGxvb2t1cFNldHRlcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUpOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3Ry
dWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKSAKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVl
IHByb3RvdHlwZSkgCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5v
bnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAogICAgICAgICB9CiAK
ICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFN0dWJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCmluZGV4
IGZlNTFhM2ZjY2ExZTU0ZDhmMmExMTEyYzk1ZDhjNmMxMTBmYzhlNDkuLjEwYTJiNjA1MjEzNjFj
M2ZkZjUwYzIzNjY3Mjg3ZTdkZjc0MjIzNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUU3R1YnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
U3R1YnMuY3BwCkBAIC0xMTc0LDcgKzExNzQsNyBAQCBERUZJTkVfU1RVQl9GVU5DVElPTihFbmNv
ZGVkSlNWYWx1ZSwgb3BfY3JlYXRlX3RoaXMpCiAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmU7CiAg
ICAgSlNWYWx1ZSBwcm90byA9IHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCk7CiAgICAgaWYg
KHByb3RvLmlzT2JqZWN0KCkpCi0gICAgICAgIHN0cnVjdHVyZSA9IGFzT2JqZWN0KHByb3RvKS0+
aW5oZXJpdG9ySUQoKTsKKyAgICAgICAgc3RydWN0dXJlID0gYXNPYmplY3QocHJvdG8pLT5pbmhl
cml0b3JJRCgqc3RhY2tGcmFtZS5nbG9iYWxEYXRhKTsKICAgICBlbHNlCiAgICAgICAgIHN0cnVj
dHVyZSA9IGNvbnN0cnVjdG9yLT5zY29wZSgpLT5nbG9iYWxPYmplY3QtPmVtcHR5T2JqZWN0U3Ry
dWN0dXJlKCk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChjYWxs
RnJhbWUsIHN0cnVjdHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNj
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDE4NzM2NTkxMjhiOWNh
Nzg0MjMwZTAzZmZjZWZiNWVhM2VkZjBkNWMuLjhjY2IwMzk4NTA2YmQ5YTMxYmRhNmE3OWM5MDZk
N2IxNGQ0MTRmODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC0xNDEsMTQgKzE0MSwxNCBAQCBs
b25nIFN0b3BXYXRjaDo6Z2V0RWxhcHNlZE1TKCkKIAogY2xhc3MgR2xvYmFsT2JqZWN0IDogcHVi
bGljIEpTR2xvYmFsT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBHbG9iYWxPYmplY3QoY29uc3QgVmVj
dG9yPFVTdHJpbmc+JiBhcmd1bWVudHMpOworICAgIEdsb2JhbE9iamVjdChKU0dsb2JhbERhdGEm
LCBjb25zdCBWZWN0b3I8VVN0cmluZz4mIGFyZ3VtZW50cyk7CiAgICAgdmlydHVhbCBVU3RyaW5n
IGNsYXNzTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJnbG9iYWwiOyB9CiB9OwogQ09NUElMRV9BU1NF
UlQoIUlzSW50ZWdlcjxHbG9iYWxPYmplY3Q+Ojp2YWx1ZSwgV1RGX0lzSW50ZWdlcl9HbG9iYWxP
YmplY3RfZmFsc2UpOwogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChHbG9iYWxPYmplY3QpOwog
Ci1HbG9iYWxPYmplY3Q6Okdsb2JhbE9iamVjdChjb25zdCBWZWN0b3I8VVN0cmluZz4mIGFyZ3Vt
ZW50cykKLSAgICA6IEpTR2xvYmFsT2JqZWN0KCkKK0dsb2JhbE9iamVjdDo6R2xvYmFsT2JqZWN0
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgVmVjdG9yPFVTdHJpbmc+JiBhcmd1bWVu
dHMpCisgICAgOiBKU0dsb2JhbE9iamVjdChnbG9iYWxEYXRhKQogewogICAgIHB1dERpcmVjdEZ1
bmN0aW9uKGdsb2JhbEV4ZWMoKSwgbmV3IChnbG9iYWxFeGVjKCkpIEpTRnVuY3Rpb24oZ2xvYmFs
RXhlYygpLCB0aGlzLCBmdW5jdGlvblN0cnVjdHVyZSgpLCAxLCBJZGVudGlmaWVyKGdsb2JhbEV4
ZWMoKSwgImRlYnVnIiksIGZ1bmN0aW9uRGVidWcpKTsKICAgICBwdXREaXJlY3RGdW5jdGlvbihn
bG9iYWxFeGVjKCksIG5ldyAoZ2xvYmFsRXhlYygpKSBKU0Z1bmN0aW9uKGdsb2JhbEV4ZWMoKSwg
dGhpcywgZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMSwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJw
cmludCIpLCBmdW5jdGlvblByaW50KSk7CkBAIC0yMTIsNyArMjEyLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJ1bihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKCFm
aWxsQnVmZmVyV2l0aENvbnRlbnRzT2ZGaWxlKGZpbGVOYW1lLCBzY3JpcHQpKQogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93RXJyb3IoZXhlYywgY3JlYXRlRXJyb3IoZXhlYywg
IkNvdWxkIG5vdCBvcGVuIGZpbGUuIikpKTsKIAotICAgIEdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0ID0gbmV3ICgmZXhlYy0+Z2xvYmFsRGF0YSgpKSBHbG9iYWxPYmplY3QoVmVjdG9yPFVTdHJp
bmc+KCkpOworICAgIEdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbmV3ICgmZXhlYy0+Z2xv
YmFsRGF0YSgpKSBHbG9iYWxPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBWZWN0b3I8VVN0cmlu
Zz4oKSk7CiAKICAgICBTdG9wV2F0Y2ggc3RvcFdhdGNoOwogICAgIHN0b3BXYXRjaC5zdGFydCgp
OwpAQCAtNTM2LDcgKzUzNiw3IEBAIGludCBqc2NtYWluKGludCBhcmdjLCBjaGFyKiogYXJndiwg
SlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQogICAgIE9wdGlvbnMgb3B0aW9uczsKICAgICBwYXJz
ZUFyZ3VtZW50cyhhcmdjLCBhcmd2LCBvcHRpb25zLCBnbG9iYWxEYXRhKTsKIAotICAgIEdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbmV3IChnbG9iYWxEYXRhKSBHbG9iYWxPYmplY3Qob3B0
aW9ucy5hcmd1bWVudHMpOworICAgIEdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbmV3IChn
bG9iYWxEYXRhKSBHbG9iYWxPYmplY3QoKmdsb2JhbERhdGEsIG9wdGlvbnMuYXJndW1lbnRzKTsK
ICAgICBib29sIHN1Y2Nlc3MgPSBydW5XaXRoU2NyaXB0cyhnbG9iYWxPYmplY3QsIG9wdGlvbnMu
c2NyaXB0cywgb3B0aW9ucy5kdW1wKTsKICAgICBpZiAob3B0aW9ucy5pbnRlcmFjdGl2ZSAmJiBz
dWNjZXNzKQogICAgICAgICBydW5JbnRlcmFjdGl2ZShnbG9iYWxPYmplY3QpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAppbmRleCA5MGMzZjljYjg3ODUxOTRiNTRm
NzRkZjI1NTJlZGE2NjVhOTI2MDE4Li5iYjZiZjMyYWU3Mzk0ODY3Y2YwOTlhZDFlMWI3NGFkMjQ1
YjRkNjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVu
dHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaApAQCAt
OTIsOSArOTIsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIGQtPnJlZ2lzdGVycyA9
ICZhY3RpdmF0aW9uLT5yZWdpc3RlckF0KDApOwogICAgICAgICB9CiAKLSAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUp
IAorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKSAKICAgICAgICAgeyAK
LSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZv
KTsgCisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Ns
b3RDb3VudCwgJnNfaW5mbyk7IAogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaAppbmRleCBlNDFkOGNh
ODNmYTkyZTJkNmI3Y2QxZjM3MjE5OTliOWMxZTE0NDM3Li45NjY0MWJkMmJiYmM0NDFmMTBmYzc0
NTQ2MDJjYzcxOWI4ZTVlZWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheVByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5UHJvdG90eXBlLmgKQEAgLTM1LDkgKzM1LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKLSAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisg
ICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAg
ICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUs
IFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50
LCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oCmluZGV4IGUyYWYwYzI2YmNiNzM2ZmYz
ZDYyYzRiMWY3ZGJjYjZkNzc2ZGQ0ODAuLmVmMmQ0MDM0ZDU1MzRmNDgwY2VjNjExODVjZGM0Y2Fk
MDczZjcwMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xl
YW5PYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2Jq
ZWN0LmgKQEAgLTMxLDkgKzMxLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGlj
IGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAgICAgICAgIAotICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOwogICAgICAgICB9CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EYXRlSW5zdGFuY2UuaAppbmRleCBlM2YzYmU5ODBiY2VlOGNkMzljOGQzMjU5NWU3ZmJh
YTc0MGEzNThiLi42Yzk3Nzg5N2Q5ZGFjYmU3ZmQxYWQwN2Q5YjM1YzJmZWVhY2E3MjI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaApAQCAtNTMsOSAr
NTMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBjYWxjdWxhdGVHcmVn
b3JpYW5EYXRlVGltZVVUQyhleGVjKTsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAg
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwg
JnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmgKaW5kZXggODYxNWJlZmU4OTYwOTdkOWZkZjdh
ZDQ1NzYyYWExNzNiZWYxMzRlZC4uMGViYmVkYzdlMzAyZDBhZDc3NzI3NTIxN2Y3YTMxYTFiZGY1
YjQyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3Rv
dHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUu
aApAQCAtMzYsOSArMzYsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgY29u
c3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1
cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAg
ICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FcnJvckluc3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvckluc3RhbmNlLmgKaW5kZXggYzFiZWVmNzc1MmNlMTAwMmIxMmE1ZWZkMDM2M2JkNmM5
YWY2ZWY1ZC4uODJkYmYwZjU2MzgyZWJjMDg1NDJkNTcxNGIxNjNiZWM5YjZiNzQyMSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaApAQCAtMjksOSAr
MjksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBjb25z
dCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVy
ZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAg
ICAgIH0KIAogICAgICAgICBzdGF0aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRlKEpTR2xvYmFsRGF0
YSosIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4sIGNvbnN0IFVTdHJpbmcmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAppbmRleCAyZmYyYjg1ZmU4ZjM3
ZDIwYmM4NzA4YzdlNmE0MWM0ZmRiMTBjMmJjLi43YTQ4ZDZjNmM1YzI1ZmI2NDY0MGRlMjEwYmRi
OTdkODkwNmIxN2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
eGVjdXRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJs
ZS5oCkBAIC02NSw3ICs2NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJu
IG1fbnVtUGFyYW1ldGVyc0ZvckNhbGwgPT0gTlVNX1BBUkFNRVRFUlNfSVNfSE9TVDsKICAgICAg
ICAgfQogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0
dXJlKEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBl
SW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAw
KTsgfQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVy
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAwKTsgfQogCiAgICAgcHJvdGVjdGVk
OgogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSAwOwpAQCAt
MjM3LDcgKzIzNyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIGdlbmVy
YXRlZEpJVENvZGVGb3JDYWxsKCk7CiAgICAgICAgIH0KICNlbmRpZgotICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvKSB7IHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgMCk7IH0KKyAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91
c1Nsb3RDb3VudCwgMCk7IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc01hcmtDaGlsZHJlbiB8IFNjcmlwdEV4
ZWN1dGFibGU6OlN0cnVjdHVyZUZsYWdzOwpAQCAtMjgyLDcgKzI4Miw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICB9CiAjZW5kaWYKICAgICAgICAgCi0gICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAwKTsgfQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpT
VmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3Rv
LCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENv
dW50LCAwKTsgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzTWFya0NoaWxkcmVuIHwgU2NyaXB0RXhlY3V0YWJs
ZTo6U3RydWN0dXJlRmxhZ3M7CkBAIC0zNzIsNyArMzcyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIHZvaWQgZGlzY2FyZENvZGUoKTsKICAgICAgICAgdm9pZCBtYXJrQ2hpbGRyZW4oTWFy
a1N0YWNrJik7CiAgICAgICAgIHN0YXRpYyBGdW5jdGlvbkV4ZWN1dGFibGUqIGZyb21HbG9iYWxD
b2RlKGNvbnN0IElkZW50aWZpZXImLCBFeGVjU3RhdGUqLCBEZWJ1Z2dlciosIGNvbnN0IFNvdXJj
ZUNvZGUmLCBKU09iamVjdCoqIGV4Y2VwdGlvbik7Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAwKTsgfQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFs
dWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBU
eXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50
LCAwKTsgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKEpTR2xv
YmFsRGF0YSosIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUmLCBib29s
IGZvcmNlVXNlc0FyZ3VtZW50cywgRnVuY3Rpb25QYXJhbWV0ZXJzKiwgYm9vbCwgaW50IGZpcnN0
TGluZSwgaW50IGxhc3RMaW5lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9GdW5jdGlvblByb3RvdHlwZS5oCmluZGV4IGZiMGJiNDg5MjRhMDUyMmFjOWM2MzJlNzMyNmNm
MmI1ZjFmYWM3NzEuLjQ0N2YwMGJkODEwZjVlNTllZjc5NmE1ODgyZWExY2Y2ZDRmMjVjODEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUu
aApAQCAtMzAsOSArMzAsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRnVuY3Rpb25Qcm90
b3R5cGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1
Y3R1cmU+KTsKICAgICAgICAgdm9pZCBhZGRGdW5jdGlvblByb3BlcnRpZXMoRXhlY1N0YXRlKiwg
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqIGZ1bmN0aW9uU3RydWN0dXJlLCBKU0Z1bmN0aW9u
KiogY2FsbEZ1bmN0aW9uLCBKU0Z1bmN0aW9uKiogYXBwbHlGdW5jdGlvbik7CiAKLSAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90
bykKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvKQogICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9HZXR0ZXJTZXR0ZXIuaAppbmRleCA2OGE4YzcwNzBiYWYzZGJkNWI3ZmM3YjQ1YjIy
MDdjZDJmYzI0OGNlLi44MjQxMjc1ZjRkMjBkODUzMjEwZmI5ZjRhZDBmZDE2NmE4MzQxODA1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaApAQCAtNDcs
OSArNDcsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBzZXRHZXR0ZXIoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU09iamVjdCogZ2V0dGVyKSB7IG1fZ2V0dGVyLnNldChnbG9i
YWxEYXRhLCB0aGlzLCBnZXR0ZXIpOyB9CiAgICAgICAgIEpTT2JqZWN0KiBzZXR0ZXIoKSBjb25z
dCB7IHJldHVybiBtX3NldHRlci5nZXQoKTsgfQogICAgICAgICB2b2lkIHNldFNldHRlcihKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTT2JqZWN0KiBzZXR0ZXIpIHsgbV9zZXR0ZXIuc2V0KGds
b2JhbERhdGEsIHRoaXMsIHNldHRlcik7IH0KLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKEdldHRlclNldHRlclR5cGUs
IE92ZXJyaWRlc01hcmtDaGlsZHJlbiksIEFub255bW91c1Nsb3RDb3VudCwgMCk7CisgICAgICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBl
SW5mbyhHZXR0ZXJTZXR0ZXJUeXBlLCBPdmVycmlkZXNNYXJrQ2hpbGRyZW4pLCBBbm9ueW1vdXNT
bG90Q291bnQsIDApOwogICAgICAgICB9CiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBi
b29sIGlzR2V0dGVyU2V0dGVyKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKaW5kZXggODQyN2I4Y2EyNGU0YTZhODc1Zjc1NTYx
OWVlOGJjOGEyNmM2Mzc0Zi4uMDhjOThhNTM4MGYxNzI5NTM2ZWQ5OTE5ZmZiYmI4NjU0OTBhYTE5
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5j
dGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rp
b24uaApAQCAtMzksOSArMzksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgY29uc3QgVVN0
cmluZyBkaXNwbGF5TmFtZShFeGVjU3RhdGUqKTsKICAgICAgICAgY29uc3QgVVN0cmluZyBjYWxj
dWxhdGVkRGlzcGxheU5hbWUoRXhlY1N0YXRlKik7CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90bykgCisgICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90bykgCiAgICAgICAgIHsgCi0gICAgICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCisgICAgICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCiAgICAg
ICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQVBJVmFsdWVXcmFwcGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FQSVZhbHVlV3JhcHBlci5oCmluZGV4IDQzZGQwZDM5YTc4ODI2YzYyMjdjYmM4Y2Nj
YmQ5ZjA3NDdlZDYwMDMuLjU0ZmU5MDlhYmNhMGE0NDBhNTk2YjcxMGNhNTVmMWIwMDBlNzFlOTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQVBJVmFsdWVXcmFw
cGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBUElWYWx1ZVdyYXBw
ZXIuaApAQCAtMzUsOSArMzUsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB2aXJ0dWFs
IGJvb2wgaXNBUElWYWx1ZVdyYXBwZXIoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBw
cm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3Ry
dWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5
cGVJbmZvKENvbXBvdW5kVHlwZSwgT3ZlcnJpZGVzTWFya0NoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0
UHJvcGVydHlOYW1lcyksIEFub255bW91c1Nsb3RDb3VudCwgMCk7CisgICAgICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhDb21w
b3VuZFR5cGUsIE92ZXJyaWRlc01hcmtDaGlsZHJlbiB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFt
ZXMpLCBBbm9ueW1vdXNTbG90Q291bnQsIDApOwogICAgICAgICB9CiAKICAgICAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCmluZGV4IGViYzk5ZjFl
YzBlNTUyYTM5ODhkZGUwMTFjMzA4MjFlYjY5Y2ZkMTguLjJhOTAzOTA4Njc1N2E2YWE1MmE5ZjQz
MTkzZmY2YmZiNzBhNDg5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QWN0aXZhdGlvbi5oCkBAIC02Niw3ICs2Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAK
ICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKLSAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90bykgeyBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgfQorICAgICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255
bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IH0KIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVy
dHlTbG90IHwgTmVlZHNUaGlzQ29udmVyc2lvbiB8IE92ZXJyaWRlc01hcmtDaGlsZHJlbiB8IE92
ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBKU1ZhcmlhYmxlT2JqZWN0OjpTdHJ1Y3R1cmVGbGFn
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKaW5kZXggODIyYjg0
Y2RkZDZmMjY1NDY2MmZlY2E2NmJlY2JiOGFmYTkyMjQxNi4uMWQ2MjFmZTlmOTBkMDRjMzRmZGNh
MjIyYTllZmJlNDEyNTBiNWUyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
cnJheS5jcHAKQEAgLTEyNyw3ICsxMjcsNyBAQCBpbmxpbmUgdm9pZCBKU0FycmF5OjpjaGVja0Nv
bnNpc3RlbmN5KENvbnNpc3RlbmN5Q2hlY2tUeXBlKQogI2VuZGlmCiAKIEpTQXJyYXk6OkpTQXJy
YXkoVlB0clN0ZWFsaW5nSGFja1R5cGUpCi0gICAgOiBKU05vbkZpbmFsT2JqZWN0KGNyZWF0ZVN0
cnVjdHVyZShqc051bGwoKSkpCisgICAgOiBKU05vbkZpbmFsT2JqZWN0KFN0cnVjdHVyZTo6Y3Jl
YXRlKFN0cnVjdHVyZTo6VlB0clN0ZWFsaW5nSGFjaywgJnNfaW5mbykpCiB7CiAgICAgQVNTRVJU
KGluaGVyaXRzKCZzX2luZm8pKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJh
eS5oCmluZGV4IDI0ZGVmN2IwNDNjOGNhYmUzNmU0OTUxZTI4OGUxYmE3MzY1NmU0ZDMuLjlhNTRh
YWI0Y2ZkZjQ3MmEyMTViZTVhMDM3OGE1NDc3Y2RmMDRlNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FycmF5LmgKQEAgLTEyNCw5ICsxMjQsOSBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgdm9pZCBmaWxsQXJnTGlzdChFeGVjU3RhdGUqLCBNYXJrZWRBcmd1bWVudEJ1ZmZl
ciYpOwogICAgICAgICB2b2lkIGNvcHlUb1JlZ2lzdGVycyhFeGVjU3RhdGUqLCBSZWdpc3Rlcios
IHVpbnQzMl90KTsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0
ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1Zh
bHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBB
bm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAg
ICAgICAgIAogICAgICAgICBpbmxpbmUgdm9pZCBtYXJrQ2hpbGRyZW5EaXJlY3QoTWFya1N0YWNr
JiBtYXJrU3RhY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNCeXRlQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJy
YXkuY3BwCmluZGV4IGFlNzM1ZGMzZDRkZmFiNjEyZWM3YmJmNTg1NjUyYTc5MTZjNmM3OGQuLmZi
YWVhMWRmNmFhMmNlZjgwZDY3ZDQxMWRlMjQ5OWU1Y2Y1ZTFjNDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKQEAgLTUwLDkgKzUwLDkgQEAgSlNC
eXRlQXJyYXk6On5KU0J5dGVBcnJheSgpCiAjZW5kaWYKIAogCi1QYXNzUmVmUHRyPFN0cnVjdHVy
ZT4gSlNCeXRlQXJyYXk6OmNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3Qg
SlNDOjpDbGFzc0luZm8qIGNsYXNzSW5mbykKK1Bhc3NSZWZQdHI8U3RydWN0dXJlPiBKU0J5dGVB
cnJheTo6Y3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBw
cm90b3R5cGUsIGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiBjbGFzc0luZm8pCiB7Ci0gICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsIGNsYXNzSW5mbyk7CisgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsIGNsYXNzSW5mbyk7CiB9CiAK
IGJvb2wgSlNCeXRlQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKaW5kZXggNmU5MTU5NGJlZTE3
ZDQ2MDg5ZjU0MjQ0ZGMyYmFhMmYzZjYwOGE1NC4uZTY3NDk1ODBiMTI0MzMyY2I4YmE0ZDEwZjRj
NGY1YmY1NGVkNGRkOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNCeXRlQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVB
cnJheS5oCkBAIC03Niw3ICs3Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAKICAg
ICAgICAgSlNCeXRlQXJyYXkoRXhlY1N0YXRlKiwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJl
PiwgV1RGOjpCeXRlQXJyYXkqIHN0b3JhZ2UpOwotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgSlNDOjpD
bGFzc0luZm8qID0gJnNfZGVmYXVsdEluZm8pOworICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmLCBKU1ZhbHVlIHByb3RvdHlw
ZSwgY29uc3QgSlNDOjpDbGFzc0luZm8qID0gJnNfZGVmYXVsdEluZm8pOwogCiAgICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKQEAgLTEwMiw3ICsxMDIsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICBwcml2YXRlOgogICAgICAgICBlbnVtIFZQdHJTdGVhbGluZ0hh
Y2tUeXBlIHsgVlB0clN0ZWFsaW5nSGFjayB9OwogICAgICAgICBKU0J5dGVBcnJheShWUHRyU3Rl
YWxpbmdIYWNrVHlwZSkKLSAgICAgICAgICAgIDogSlNOb25GaW5hbE9iamVjdChjcmVhdGVTdHJ1
Y3R1cmUoanNOdWxsKCkpKQorICAgICAgICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KFN0cnVjdHVy
ZTo6Y3JlYXRlKFN0cnVjdHVyZTo6VlB0clN0ZWFsaW5nSGFjaywgJnNfaW5mbykpCiAgICAgICAg
IHsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NlbGwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCmluZGV4
IDgyMDI5NzIxZmZhNmRlNGI5YzQ2MjE4NDkxZGU0NTQ4YTk0ZWJlZDUuLmE3OTVhNWNmNjU3NTdj
MjIyN2IyN2VhNGJjYjk5ODc1ODU2Y2I3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQ2VsbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbC5oCkBAIC03Miw5ICs3Miw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0
dWFsIH5KU0NlbGwoKTsKIAogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBjcmVhdGVEdW1teVN0cnVjdHVyZSgpCisgICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN0cnVjdHVyZT4gY3JlYXRlRHVtbXlTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoanNO
dWxsKCksIFR5cGVJbmZvKFVuc3BlY2lmaWVkVHlwZSksIEFub255bW91c1Nsb3RDb3VudCwgMCk7
CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwganNOdWxs
KCksIFR5cGVJbmZvKFVuc3BlY2lmaWVkVHlwZSksIEFub255bW91c1Nsb3RDb3VudCwgMCk7CiAg
ICAgICAgIH0KIAogICAgICAgICAvLyBRdWVyeWluZyB0aGUgdHlwZS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAppbmRleCA2YmMzZTgzZDEwMzA2YjhiYjRmY2Yw
YTQ1ZTBmZGE3ZGRiZTFjNDBiLi41MDViOWRlMjcyYjVkNGQ1Y2FkYjAwYWIxMGM0YmVmOWZiM2I2
MjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9u
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCkBAIC03
Myw5ICs3Myw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBKU19FWFBPUlRE
QVRBIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpIAorICAgICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKSAKICAgICAgICAgeyAKLSAgICAgICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCisgICAgICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7IAogICAgICAgICB9CiAKICAgICAgICAgTmF0aXZlRnVuY3Rpb24gbmF0aXZlRnVuY3Rp
b24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
RGF0YS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3Bw
CmluZGV4IDhkOGY3ZTNmYWM5NTgwYTI0MTkyZWVkZjQzMDg1OWM0MzE2MjNlYWEuLjJhNTlmOTE3
NDkxNzJmOGJhYTliYjc0MGNkZTMwYzg5YTk5YTNlM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcApAQCAtMTA4LDggKzEwOCw4IEBAIHZvaWQg
SlNHbG9iYWxEYXRhOjpzdG9yZVZQdHJzKCkKIAogICAgIENPTVBJTEVfQVNTRVJUKHNpemVvZihK
U0Z1bmN0aW9uKSA8PSBzaXplb2Yoc3RvcmFnZSksIHNpemVvZl9KU0Z1bmN0aW9uX211c3RfYmVf
bGVzc190aGFuX3N0b3JhZ2UpOwogICAgIGNoYXIgZXhlY3V0YWJsZVN0b3JhZ2Vbc2l6ZW9mKFZQ
dHJIYWNrRXhlY3V0YWJsZSldOwotICAgIFZQdHJIYWNrRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9
IG5ldyAoZXhlY3V0YWJsZVN0b3JhZ2UpIFZQdHJIYWNrRXhlY3V0YWJsZShWUHRySGFja0V4ZWN1
dGFibGU6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSkpOwotICAgIEpTQ2VsbCoganNGdW5jdGlv
biA9IG5ldyAoc3RvcmFnZSkgSlNGdW5jdGlvbihKU0Z1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUo
anNOdWxsKCkpLCBleGVjdXRhYmxlKTsKKyAgICBWUHRySGFja0V4ZWN1dGFibGUqIGV4ZWN1dGFi
bGUgPSBuZXcgKGV4ZWN1dGFibGVTdG9yYWdlKSBWUHRySGFja0V4ZWN1dGFibGUoU3RydWN0dXJl
OjpjcmVhdGUoU3RydWN0dXJlOjpWUHRyU3RlYWxpbmdIYWNrLCAwKSk7CisgICAgSlNDZWxsKiBq
c0Z1bmN0aW9uID0gbmV3IChzdG9yYWdlKSBKU0Z1bmN0aW9uKFN0cnVjdHVyZTo6Y3JlYXRlKFN0
cnVjdHVyZTo6VlB0clN0ZWFsaW5nSGFjaywgJkpTRnVuY3Rpb246OnNfaW5mbyksIGV4ZWN1dGFi
bGUpOwogICAgIEpTR2xvYmFsRGF0YTo6anNGdW5jdGlvblZQdHIgPSBqc0Z1bmN0aW9uLT52cHRy
KCk7CiAgICAganNGdW5jdGlvbi0+fkpTQ2VsbCgpOwogfQpAQCAtMTI2LDIyICsxMjYsMjIgQEAg
SlNHbG9iYWxEYXRhOjpKU0dsb2JhbERhdGEoR2xvYmFsRGF0YVR5cGUgZ2xvYmFsRGF0YVR5cGUs
IFRocmVhZFN0YWNrVHlwZSB0aHJlYWQKICAgICAsIHJlZ0V4cFRhYmxlKGZhc3ROZXc8SGFzaFRh
YmxlPihKU0M6OnJlZ0V4cFRhYmxlKSkKICAgICAsIHJlZ0V4cENvbnN0cnVjdG9yVGFibGUoZmFz
dE5ldzxIYXNoVGFibGU+KEpTQzo6cmVnRXhwQ29uc3RydWN0b3JUYWJsZSkpCiAgICAgLCBzdHJp
bmdUYWJsZShmYXN0TmV3PEhhc2hUYWJsZT4oSlNDOjpzdHJpbmdUYWJsZSkpCi0gICAgLCBhY3Rp
dmF0aW9uU3RydWN0dXJlKEpTQWN0aXZhdGlvbjo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkK
LSAgICAsIGludGVycnVwdGVkRXhlY3V0aW9uRXJyb3JTdHJ1Y3R1cmUoSlNOb25GaW5hbE9iamVj
dDo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKLSAgICAsIHRlcm1pbmF0ZWRFeGVjdXRpb25F
cnJvclN0cnVjdHVyZShKU05vbkZpbmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkp
KQotICAgICwgc3RhdGljU2NvcGVTdHJ1Y3R1cmUoSlNTdGF0aWNTY29wZU9iamVjdDo6Y3JlYXRl
U3RydWN0dXJlKGpzTnVsbCgpKSkKLSAgICAsIHN0cmljdEV2YWxBY3RpdmF0aW9uU3RydWN0dXJl
KFN0cmljdEV2YWxBY3RpdmF0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKQotICAgICwg
c3RyaW5nU3RydWN0dXJlKEpTU3RyaW5nOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKQotICAg
ICwgbm90QW5PYmplY3RTdHJ1Y3R1cmUoSlNOb3RBbk9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKGpz
TnVsbCgpKSkKLSAgICAsIHByb3BlcnR5TmFtZUl0ZXJhdG9yU3RydWN0dXJlKEpTUHJvcGVydHlO
YW1lSXRlcmF0b3I6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSkpCi0gICAgLCBnZXR0ZXJTZXR0
ZXJTdHJ1Y3R1cmUoR2V0dGVyU2V0dGVyOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKQotICAg
ICwgYXBpV3JhcHBlclN0cnVjdHVyZShKU0FQSVZhbHVlV3JhcHBlcjo6Y3JlYXRlU3RydWN0dXJl
KGpzTnVsbCgpKSkKLSAgICAsIHNjb3BlQ2hhaW5Ob2RlU3RydWN0dXJlKFNjb3BlQ2hhaW5Ob2Rl
OjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKQotICAgICwgZXhlY3V0YWJsZVN0cnVjdHVyZShF
eGVjdXRhYmxlQmFzZTo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKLSAgICAsIGV2YWxFeGVj
dXRhYmxlU3RydWN0dXJlKEV2YWxFeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkp
KQotICAgICwgcHJvZ3JhbUV4ZWN1dGFibGVTdHJ1Y3R1cmUoUHJvZ3JhbUV4ZWN1dGFibGU6OmNy
ZWF0ZVN0cnVjdHVyZShqc051bGwoKSkpCi0gICAgLCBmdW5jdGlvbkV4ZWN1dGFibGVTdHJ1Y3R1
cmUoRnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKQotICAgICwg
ZHVtbXlNYXJrYWJsZUNlbGxTdHJ1Y3R1cmUoSlNDZWxsOjpjcmVhdGVEdW1teVN0cnVjdHVyZSgp
KQorICAgICwgYWN0aXZhdGlvblN0cnVjdHVyZShKU0FjdGl2YXRpb246OmNyZWF0ZVN0cnVjdHVy
ZSgqdGhpcywganNOdWxsKCkpKQorICAgICwgaW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvclN0cnVj
dHVyZShKU05vbkZpbmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIGpzTnVsbCgpKSkK
KyAgICAsIHRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvclN0cnVjdHVyZShKU05vbkZpbmFsT2JqZWN0
OjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIGpzTnVsbCgpKSkKKyAgICAsIHN0YXRpY1Njb3BlU3Ry
dWN0dXJlKEpTU3RhdGljU2NvcGVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywganNOdWxs
KCkpKQorICAgICwgc3RyaWN0RXZhbEFjdGl2YXRpb25TdHJ1Y3R1cmUoU3RyaWN0RXZhbEFjdGl2
YXRpb246OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywganNOdWxsKCkpKQorICAgICwgc3RyaW5nU3Ry
dWN0dXJlKEpTU3RyaW5nOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIGpzTnVsbCgpKSkKKyAgICAs
IG5vdEFuT2JqZWN0U3RydWN0dXJlKEpTTm90QW5PYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSgqdGhp
cywganNOdWxsKCkpKQorICAgICwgcHJvcGVydHlOYW1lSXRlcmF0b3JTdHJ1Y3R1cmUoSlNQcm9w
ZXJ0eU5hbWVJdGVyYXRvcjo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCBqc051bGwoKSkpCisgICAg
LCBnZXR0ZXJTZXR0ZXJTdHJ1Y3R1cmUoR2V0dGVyU2V0dGVyOjpjcmVhdGVTdHJ1Y3R1cmUoKnRo
aXMsIGpzTnVsbCgpKSkKKyAgICAsIGFwaVdyYXBwZXJTdHJ1Y3R1cmUoSlNBUElWYWx1ZVdyYXBw
ZXI6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywganNOdWxsKCkpKQorICAgICwgc2NvcGVDaGFpbk5v
ZGVTdHJ1Y3R1cmUoU2NvcGVDaGFpbk5vZGU6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywganNOdWxs
KCkpKQorICAgICwgZXhlY3V0YWJsZVN0cnVjdHVyZShFeGVjdXRhYmxlQmFzZTo6Y3JlYXRlU3Ry
dWN0dXJlKCp0aGlzLCBqc051bGwoKSkpCisgICAgLCBldmFsRXhlY3V0YWJsZVN0cnVjdHVyZShF
dmFsRXhlY3V0YWJsZTo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCBqc051bGwoKSkpCisgICAgLCBw
cm9ncmFtRXhlY3V0YWJsZVN0cnVjdHVyZShQcm9ncmFtRXhlY3V0YWJsZTo6Y3JlYXRlU3RydWN0
dXJlKCp0aGlzLCBqc051bGwoKSkpCisgICAgLCBmdW5jdGlvbkV4ZWN1dGFibGVTdHJ1Y3R1cmUo
RnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIGpzTnVsbCgpKSkKKyAg
ICAsIGR1bW15TWFya2FibGVDZWxsU3RydWN0dXJlKEpTQ2VsbDo6Y3JlYXRlRHVtbXlTdHJ1Y3R1
cmUoKnRoaXMpKQogICAgICwgaWRlbnRpZmllclRhYmxlKGdsb2JhbERhdGFUeXBlID09IERlZmF1
bHQgPyB3dGZUaHJlYWREYXRhKCkuY3VycmVudElkZW50aWZpZXJUYWJsZSgpIDogY3JlYXRlSWRl
bnRpZmllclRhYmxlKCkpCiAgICAgLCBwcm9wZXJ0eU5hbWVzKG5ldyBDb21tb25JZGVudGlmaWVy
cyh0aGlzKSkKICAgICAsIGVtcHR5TGlzdChuZXcgTWFya2VkQXJndW1lbnRCdWZmZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXgg
OTBiNDE2MDMwNGJhNTU4ZGM4YjVmMzIwYTIwMjZkYzJhNjk5NjAzYy4uYTk2ZGVjMTExNWM3NTIz
NTkyNDg0YWQ3NTNjNjFiYzUyNDhkZTc0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtMTc1LDY0ICsxNzUsNjQgQEAgdm9pZCBK
U0dsb2JhbE9iamVjdDo6cmVzZXQoSlNWYWx1ZSBwcm90b3R5cGUpCiAKICAgICAvLyBQcm90b3R5
cGVzCiAKLSAgICBtX2Z1bmN0aW9uUHJvdG90eXBlLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRo
aXMsIG5ldyAoZXhlYykgRnVuY3Rpb25Qcm90b3R5cGUoZXhlYywgdGhpcywgRnVuY3Rpb25Qcm90
b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSkpKTsgLy8gVGhlIHJlYWwgcHJvdG90eXBl
IHdpbGwgYmUgc2V0IG9uY2UgT2JqZWN0UHJvdG90eXBlIGlzIGNyZWF0ZWQuCi0gICAgbV9mdW5j
dGlvblN0cnVjdHVyZSA9IEpTRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZShtX2Z1bmN0aW9uUHJv
dG90eXBlLmdldCgpKTsKLSAgICBtX2ludGVybmFsRnVuY3Rpb25TdHJ1Y3R1cmUgPSBJbnRlcm5h
bEZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUobV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSk7Cisg
ICAgbV9mdW5jdGlvblByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcg
KGV4ZWMpIEZ1bmN0aW9uUHJvdG90eXBlKGV4ZWMsIHRoaXMsIEZ1bmN0aW9uUHJvdG90eXBlOjpj
cmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBqc051bGwoKSkpKTsgLy8gVGhlIHJl
YWwgcHJvdG90eXBlIHdpbGwgYmUgc2V0IG9uY2UgT2JqZWN0UHJvdG90eXBlIGlzIGNyZWF0ZWQu
CisgICAgbV9mdW5jdGlvblN0cnVjdHVyZSA9IEpTRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZShl
eGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpOworICAgIG1faW50
ZXJuYWxGdW5jdGlvblN0cnVjdHVyZSA9IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVy
ZShleGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpOwogICAgIEpT
RnVuY3Rpb24qIGNhbGxGdW5jdGlvbiA9IDA7CiAgICAgSlNGdW5jdGlvbiogYXBwbHlGdW5jdGlv
biA9IDA7CiAgICAgbV9mdW5jdGlvblByb3RvdHlwZS0+YWRkRnVuY3Rpb25Qcm9wZXJ0aWVzKGV4
ZWMsIHRoaXMsIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksICZjYWxsRnVuY3Rpb24sICZhcHBs
eUZ1bmN0aW9uKTsKICAgICBtX2NhbGxGdW5jdGlvbi5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0
aGlzLCBjYWxsRnVuY3Rpb24pOwogICAgIG1fYXBwbHlGdW5jdGlvbi5zZXQoZXhlYy0+Z2xvYmFs
RGF0YSgpLCB0aGlzLCBhcHBseUZ1bmN0aW9uKTsKLSAgICBtX29iamVjdFByb3RvdHlwZS5zZXQo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIE9iamVjdFByb3RvdHlwZShleGVj
LCB0aGlzLCBPYmplY3RQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSksIG1fZnVu
Y3Rpb25TdHJ1Y3R1cmUuZ2V0KCkpKTsKKyAgICBtX29iamVjdFByb3RvdHlwZS5zZXQoZXhlYy0+
Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIE9iamVjdFByb3RvdHlwZShleGVjLCB0aGlz
LCBPYmplY3RQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIGpz
TnVsbCgpKSwgbV9mdW5jdGlvblN0cnVjdHVyZS5nZXQoKSkpOwogICAgIG1fZnVuY3Rpb25Qcm90
b3R5cGUtPnN0cnVjdHVyZSgpLT5zZXRQcm90b3R5cGVXaXRob3V0VHJhbnNpdGlvbihtX29iamVj
dFByb3RvdHlwZS5nZXQoKSk7CiAKLSAgICBtX2VtcHR5T2JqZWN0U3RydWN0dXJlID0gbV9vYmpl
Y3RQcm90b3R5cGUtPmluaGVyaXRvcklEKCk7CisgICAgbV9lbXB0eU9iamVjdFN0cnVjdHVyZSA9
IG1fb2JqZWN0UHJvdG90eXBlLT5pbmhlcml0b3JJRChleGVjLT5nbG9iYWxEYXRhKCkpOwogCi0g
ICAgbV9jYWxsYmFja0Z1bmN0aW9uU3RydWN0dXJlID0gSlNDYWxsYmFja0Z1bmN0aW9uOjpjcmVh
dGVTdHJ1Y3R1cmUobV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSk7Ci0gICAgbV9hcmd1bWVudHNT
dHJ1Y3R1cmUgPSBBcmd1bWVudHM6OmNyZWF0ZVN0cnVjdHVyZShtX29iamVjdFByb3RvdHlwZS5n
ZXQoKSk7Ci0gICAgbV9jYWxsYmFja0NvbnN0cnVjdG9yU3RydWN0dXJlID0gSlNDYWxsYmFja0Nv
bnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUobV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpOwotICAg
IG1fY2FsbGJhY2tPYmplY3RTdHJ1Y3R1cmUgPSBKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdD46OmNyZWF0ZVN0cnVjdHVyZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSk7
CisgICAgbV9jYWxsYmFja0Z1bmN0aW9uU3RydWN0dXJlID0gSlNDYWxsYmFja0Z1bmN0aW9uOjpj
cmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdl
dCgpKTsKKyAgICBtX2FyZ3VtZW50c1N0cnVjdHVyZSA9IEFyZ3VtZW50czo6Y3JlYXRlU3RydWN0
dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpOworICAgIG1f
Y2FsbGJhY2tDb25zdHJ1Y3RvclN0cnVjdHVyZSA9IEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6Y3Jl
YXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkp
OworICAgIG1fY2FsbGJhY2tPYmplY3RTdHJ1Y3R1cmUgPSBKU0NhbGxiYWNrT2JqZWN0PEpTT2Jq
ZWN0V2l0aEdsb2JhbE9iamVjdD46OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCks
IG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKTsKIAotICAgIG1fYXJyYXlQcm90b3R5cGUuc2V0KGV4
ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBBcnJheVByb3RvdHlwZSh0aGlzLCBB
cnJheVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkp
OwotICAgIG1fYXJyYXlTdHJ1Y3R1cmUgPSBKU0FycmF5OjpjcmVhdGVTdHJ1Y3R1cmUobV9hcnJh
eVByb3RvdHlwZS5nZXQoKSk7Ci0gICAgbV9yZWdFeHBNYXRjaGVzQXJyYXlTdHJ1Y3R1cmUgPSBS
ZWdFeHBNYXRjaGVzQXJyYXk6OmNyZWF0ZVN0cnVjdHVyZShtX2FycmF5UHJvdG90eXBlLmdldCgp
KTsKKyAgICBtX2FycmF5UHJvdG90eXBlLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5l
dyAoZXhlYykgQXJyYXlQcm90b3R5cGUodGhpcywgQXJyYXlQcm90b3R5cGU6OmNyZWF0ZVN0cnVj
dHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkpOworICAg
IG1fYXJyYXlTdHJ1Y3R1cmUgPSBKU0FycmF5OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFs
RGF0YSgpLCBtX2FycmF5UHJvdG90eXBlLmdldCgpKTsKKyAgICBtX3JlZ0V4cE1hdGNoZXNBcnJh
eVN0cnVjdHVyZSA9IFJlZ0V4cE1hdGNoZXNBcnJheTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmds
b2JhbERhdGEoKSwgbV9hcnJheVByb3RvdHlwZS5nZXQoKSk7CiAKLSAgICBtX3N0cmluZ1Byb3Rv
dHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIFN0cmluZ1Byb3Rv
dHlwZShleGVjLCB0aGlzLCBTdHJpbmdQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShtX29iamVj
dFByb3RvdHlwZS5nZXQoKSkpKTsKLSAgICBtX3N0cmluZ09iamVjdFN0cnVjdHVyZSA9IFN0cmlu
Z09iamVjdDo6Y3JlYXRlU3RydWN0dXJlKG1fc3RyaW5nUHJvdG90eXBlLmdldCgpKTsKKyAgICBt
X3N0cmluZ1Byb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMp
IFN0cmluZ1Byb3RvdHlwZShleGVjLCB0aGlzLCBTdHJpbmdQcm90b3R5cGU6OmNyZWF0ZVN0cnVj
dHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkpOworICAg
IG1fc3RyaW5nT2JqZWN0U3RydWN0dXJlID0gU3RyaW5nT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX3N0cmluZ1Byb3RvdHlwZS5nZXQoKSk7CiAKLSAgICBtX2Jv
b2xlYW5Qcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBC
b29sZWFuUHJvdG90eXBlKGV4ZWMsIHRoaXMsIEJvb2xlYW5Qcm90b3R5cGU6OmNyZWF0ZVN0cnVj
dHVyZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSksIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCkp
KTsKLSAgICBtX2Jvb2xlYW5PYmplY3RTdHJ1Y3R1cmUgPSBCb29sZWFuT2JqZWN0OjpjcmVhdGVT
dHJ1Y3R1cmUobV9ib29sZWFuUHJvdG90eXBlLmdldCgpKTsKKyAgICBtX2Jvb2xlYW5Qcm90b3R5
cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBCb29sZWFuUHJvdG90
eXBlKGV4ZWMsIHRoaXMsIEJvb2xlYW5Qcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5n
bG9iYWxEYXRhKCksIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSwgbV9mdW5jdGlvblN0cnVjdHVy
ZS5nZXQoKSkpOworICAgIG1fYm9vbGVhbk9iamVjdFN0cnVjdHVyZSA9IEJvb2xlYW5PYmplY3Q6
OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fYm9vbGVhblByb3RvdHlwZS5n
ZXQoKSk7CiAKLSAgICBtX251bWJlclByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0
aGlzLCBuZXcgKGV4ZWMpIE51bWJlclByb3RvdHlwZShleGVjLCB0aGlzLCBOdW1iZXJQcm90b3R5
cGU6OmNyZWF0ZVN0cnVjdHVyZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSksIG1fZnVuY3Rpb25T
dHJ1Y3R1cmUuZ2V0KCkpKTsKLSAgICBtX251bWJlck9iamVjdFN0cnVjdHVyZSA9IE51bWJlck9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKG1fbnVtYmVyUHJvdG90eXBlLmdldCgpKTsKKyAgICBtX251
bWJlclByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIE51
bWJlclByb3RvdHlwZShleGVjLCB0aGlzLCBOdW1iZXJQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVy
ZShleGVjLT5nbG9iYWxEYXRhKCksIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSwgbV9mdW5jdGlv
blN0cnVjdHVyZS5nZXQoKSkpOworICAgIG1fbnVtYmVyT2JqZWN0U3RydWN0dXJlID0gTnVtYmVy
T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX251bWJlclByb3Rv
dHlwZS5nZXQoKSk7CiAKLSAgICBtX2RhdGVQcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEo
KSwgdGhpcywgbmV3IChleGVjKSBEYXRlUHJvdG90eXBlKGV4ZWMsIHRoaXMsIERhdGVQcm90b3R5
cGU6OmNyZWF0ZVN0cnVjdHVyZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpKTsKLSAgICBtX2Rh
dGVTdHJ1Y3R1cmUgPSBEYXRlSW5zdGFuY2U6OmNyZWF0ZVN0cnVjdHVyZShtX2RhdGVQcm90b3R5
cGUuZ2V0KCkpOworICAgIG1fZGF0ZVByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0
aGlzLCBuZXcgKGV4ZWMpIERhdGVQcm90b3R5cGUoZXhlYywgdGhpcywgRGF0ZVByb3RvdHlwZTo6
Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9vYmplY3RQcm90b3R5cGUuZ2V0
KCkpKSk7CisgICAgbV9kYXRlU3RydWN0dXJlID0gRGF0ZUluc3RhbmNlOjpjcmVhdGVTdHJ1Y3R1
cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX2RhdGVQcm90b3R5cGUuZ2V0KCkpOwogCi0gICAgbV9y
ZWdFeHBQcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBS
ZWdFeHBQcm90b3R5cGUoZXhlYywgdGhpcywgUmVnRXhwUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1
cmUobV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpLCBtX2Z1bmN0aW9uU3RydWN0dXJlLmdldCgpKSk7
Ci0gICAgbV9yZWdFeHBTdHJ1Y3R1cmUgPSBSZWdFeHBPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSht
X3JlZ0V4cFByb3RvdHlwZS5nZXQoKSk7CisgICAgbV9yZWdFeHBQcm90b3R5cGUuc2V0KGV4ZWMt
Pmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBSZWdFeHBQcm90b3R5cGUoZXhlYywgdGhp
cywgUmVnRXhwUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBt
X29iamVjdFByb3RvdHlwZS5nZXQoKSksIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCkpKTsKKyAg
ICBtX3JlZ0V4cFN0cnVjdHVyZSA9IFJlZ0V4cE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMt
Pmdsb2JhbERhdGEoKSwgbV9yZWdFeHBQcm90b3R5cGUuZ2V0KCkpOwogCiAgICAgbV9tZXRob2RD
YWxsRHVtbXkuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgY29uc3RydWN0RW1wdHlPYmpl
Y3QoZXhlYykpOwogCi0gICAgRXJyb3JQcm90b3R5cGUqIGVycm9yUHJvdG90eXBlID0gbmV3IChl
eGVjKSBFcnJvclByb3RvdHlwZShleGVjLCB0aGlzLCBFcnJvclByb3RvdHlwZTo6Y3JlYXRlU3Ry
dWN0dXJlKG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSwgbV9mdW5jdGlvblN0cnVjdHVyZS5nZXQo
KSk7Ci0gICAgbV9lcnJvclN0cnVjdHVyZSA9IEVycm9ySW5zdGFuY2U6OmNyZWF0ZVN0cnVjdHVy
ZShlcnJvclByb3RvdHlwZSk7CisgICAgRXJyb3JQcm90b3R5cGUqIGVycm9yUHJvdG90eXBlID0g
bmV3IChleGVjKSBFcnJvclByb3RvdHlwZShleGVjLCB0aGlzLCBFcnJvclByb3RvdHlwZTo6Y3Jl
YXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkp
LCBtX2Z1bmN0aW9uU3RydWN0dXJlLmdldCgpKTsKKyAgICBtX2Vycm9yU3RydWN0dXJlID0gRXJy
b3JJbnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXJyb3JQcm90
b3R5cGUpOwogCiAgICAgLy8gQ29uc3RydWN0b3JzCiAKLSAgICBKU0NlbGwqIG9iamVjdENvbnN0
cnVjdG9yID0gbmV3IChleGVjKSBPYmplY3RDb25zdHJ1Y3RvcihleGVjLCB0aGlzLCBPYmplY3RD
b25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBt
X29iamVjdFByb3RvdHlwZS5nZXQoKSk7Ci0gICAgSlNDZWxsKiBmdW5jdGlvbkNvbnN0cnVjdG9y
ID0gbmV3IChleGVjKSBGdW5jdGlvbkNvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIEZ1bmN0aW9uQ29u
c3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9m
dW5jdGlvblByb3RvdHlwZS5nZXQoKSk7Ci0gICAgSlNDZWxsKiBhcnJheUNvbnN0cnVjdG9yID0g
bmV3IChleGVjKSBBcnJheUNvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIEFycmF5Q29uc3RydWN0b3I6
OmNyZWF0ZVN0cnVjdHVyZShtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9hcnJheVByb3Rv
dHlwZS5nZXQoKSwgbV9mdW5jdGlvblN0cnVjdHVyZS5nZXQoKSk7Ci0gICAgSlNDZWxsKiBzdHJp
bmdDb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgU3RyaW5nQ29uc3RydWN0b3IoZXhlYywgdGhpcywg
U3RyaW5nQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShtX2Z1bmN0aW9uUHJvdG90eXBlLmdl
dCgpKSwgbV9mdW5jdGlvblN0cnVjdHVyZS5nZXQoKSwgbV9zdHJpbmdQcm90b3R5cGUuZ2V0KCkp
OwotICAgIEpTQ2VsbCogYm9vbGVhbkNvbnN0cnVjdG9yID0gbmV3IChleGVjKSBCb29sZWFuQ29u
c3RydWN0b3IoZXhlYywgdGhpcywgQm9vbGVhbkNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUo
bV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIG1fYm9vbGVhblByb3RvdHlwZS5nZXQoKSk7Ci0g
ICAgSlNDZWxsKiBudW1iZXJDb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgTnVtYmVyQ29uc3RydWN0
b3IoZXhlYywgdGhpcywgTnVtYmVyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShtX2Z1bmN0
aW9uUHJvdG90eXBlLmdldCgpKSwgbV9udW1iZXJQcm90b3R5cGUuZ2V0KCkpOwotICAgIEpTQ2Vs
bCogZGF0ZUNvbnN0cnVjdG9yID0gbmV3IChleGVjKSBEYXRlQ29uc3RydWN0b3IoZXhlYywgdGhp
cywgRGF0ZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUobV9mdW5jdGlvblByb3RvdHlwZS5n
ZXQoKSksIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksIG1fZGF0ZVByb3RvdHlwZS5nZXQoKSk7
CisgICAgSlNDZWxsKiBvYmplY3RDb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgT2JqZWN0Q29uc3Ry
dWN0b3IoZXhlYywgdGhpcywgT2JqZWN0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVj
LT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBtX29iamVjdFByb3Rv
dHlwZS5nZXQoKSk7CisgICAgSlNDZWxsKiBmdW5jdGlvbkNvbnN0cnVjdG9yID0gbmV3IChleGVj
KSBGdW5jdGlvbkNvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIEZ1bmN0aW9uQ29uc3RydWN0b3I6OmNy
ZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0
KCkpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKTsKKyAgICBKU0NlbGwqIGFycmF5Q29uc3Ry
dWN0b3IgPSBuZXcgKGV4ZWMpIEFycmF5Q29uc3RydWN0b3IoZXhlYywgdGhpcywgQXJyYXlDb25z
dHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9mdW5jdGlvblBy
b3RvdHlwZS5nZXQoKSksIG1fYXJyYXlQcm90b3R5cGUuZ2V0KCksIG1fZnVuY3Rpb25TdHJ1Y3R1
cmUuZ2V0KCkpOworICAgIEpTQ2VsbCogc3RyaW5nQ29uc3RydWN0b3IgPSBuZXcgKGV4ZWMpIFN0
cmluZ0NvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIFN0cmluZ0NvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1
Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9m
dW5jdGlvblN0cnVjdHVyZS5nZXQoKSwgbV9zdHJpbmdQcm90b3R5cGUuZ2V0KCkpOworICAgIEpT
Q2VsbCogYm9vbGVhbkNvbnN0cnVjdG9yID0gbmV3IChleGVjKSBCb29sZWFuQ29uc3RydWN0b3Io
ZXhlYywgdGhpcywgQm9vbGVhbkNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9ib29sZWFuUHJvdG90eXBl
LmdldCgpKTsKKyAgICBKU0NlbGwqIG51bWJlckNvbnN0cnVjdG9yID0gbmV3IChleGVjKSBOdW1i
ZXJDb25zdHJ1Y3RvcihleGVjLCB0aGlzLCBOdW1iZXJDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIG1fbnVt
YmVyUHJvdG90eXBlLmdldCgpKTsKKyAgICBKU0NlbGwqIGRhdGVDb25zdHJ1Y3RvciA9IG5ldyAo
ZXhlYykgRGF0ZUNvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIERhdGVDb25zdHJ1Y3Rvcjo6Y3JlYXRl
U3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSks
IG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksIG1fZGF0ZVByb3RvdHlwZS5nZXQoKSk7CiAKLSAg
ICBtX3JlZ0V4cENvbnN0cnVjdG9yLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5ldyAo
ZXhlYykgUmVnRXhwQ29uc3RydWN0b3IoZXhlYywgdGhpcywgUmVnRXhwQ29uc3RydWN0b3I6OmNy
ZWF0ZVN0cnVjdHVyZShtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9yZWdFeHBQcm90b3R5
cGUuZ2V0KCkpKTsKKyAgICBtX3JlZ0V4cENvbnN0cnVjdG9yLnNldChleGVjLT5nbG9iYWxEYXRh
KCksIHRoaXMsIG5ldyAoZXhlYykgUmVnRXhwQ29uc3RydWN0b3IoZXhlYywgdGhpcywgUmVnRXhw
Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rp
b25Qcm90b3R5cGUuZ2V0KCkpLCBtX3JlZ0V4cFByb3RvdHlwZS5nZXQoKSkpOwogCi0gICAgbV9l
cnJvckNvbnN0cnVjdG9yLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5ldyAoZXhlYykg
RXJyb3JDb25zdHJ1Y3RvcihleGVjLCB0aGlzLCBFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1
Y3R1cmUobV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIGVycm9yUHJvdG90eXBlKSk7CisgICAg
bV9lcnJvckNvbnN0cnVjdG9yLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5ldyAoZXhl
YykgRXJyb3JDb25zdHJ1Y3RvcihleGVjLCB0aGlzLCBFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGVT
dHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwg
ZXJyb3JQcm90b3R5cGUpKTsKIAotICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IG5hdGl2ZUVycm9yUHJv
dG90eXBlU3RydWN0dXJlID0gTmF0aXZlRXJyb3JQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShl
cnJvclByb3RvdHlwZSk7Ci0gICAgUmVmUHRyPFN0cnVjdHVyZT4gbmF0aXZlRXJyb3JTdHJ1Y3R1
cmUgPSBOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUobV9mdW5jdGlvblBy
b3RvdHlwZS5nZXQoKSk7CisgICAgUmVmUHRyPFN0cnVjdHVyZT4gbmF0aXZlRXJyb3JQcm90b3R5
cGVTdHJ1Y3R1cmUgPSBOYXRpdmVFcnJvclByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMt
Pmdsb2JhbERhdGEoKSwgZXJyb3JQcm90b3R5cGUpOworICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IG5h
dGl2ZUVycm9yU3RydWN0dXJlID0gTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSk7CiAgICAg
bV9ldmFsRXJyb3JDb25zdHJ1Y3Rvci5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcg
KGV4ZWMpIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoZXhlYywgdGhpcywgbmF0aXZlRXJyb3JTdHJ1
Y3R1cmUsIG5hdGl2ZUVycm9yUHJvdG90eXBlU3RydWN0dXJlLCAiRXZhbEVycm9yIikpOwogICAg
IG1fcmFuZ2VFcnJvckNvbnN0cnVjdG9yLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5l
dyAoZXhlYykgTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcihleGVjLCB0aGlzLCBuYXRpdmVFcnJvclN0
cnVjdHVyZSwgbmF0aXZlRXJyb3JQcm90b3R5cGVTdHJ1Y3R1cmUsICJSYW5nZUVycm9yIikpOwog
ICAgIG1fcmVmZXJlbmNlRXJyb3JDb25zdHJ1Y3Rvci5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0
aGlzLCBuZXcgKGV4ZWMpIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoZXhlYywgdGhpcywgbmF0aXZl
RXJyb3JTdHJ1Y3R1cmUsIG5hdGl2ZUVycm9yUHJvdG90eXBlU3RydWN0dXJlLCAiUmVmZXJlbmNl
RXJyb3IiKSk7CkBAIC0yNzIsMTEgKzI3MiwxMSBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0OjpyZXNl
dChKU1ZhbHVlIHByb3RvdHlwZSkKIAogICAgIC8vIFNldCBnbG9iYWwgdmFsdWVzLgogICAgIEds
b2JhbFByb3BlcnR5SW5mbyBzdGF0aWNHbG9iYWxzW10gPSB7Ci0gICAgICAgIEdsb2JhbFByb3Bl
cnR5SW5mbyhJZGVudGlmaWVyKGV4ZWMsICJNYXRoIiksIG5ldyAoZXhlYykgTWF0aE9iamVjdChl
eGVjLCB0aGlzLCBNYXRoT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUobV9vYmplY3RQcm90b3R5cGUu
Z2V0KCkpKSwgRG9udEVudW0gfCBEb250RGVsZXRlKSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvKElkZW50aWZpZXIoZXhlYywgIk1hdGgiKSwgbmV3IChleGVjKSBNYXRoT2JqZWN0KGV4ZWMs
IHRoaXMsIE1hdGhPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1f
b2JqZWN0UHJvdG90eXBlLmdldCgpKSksIERvbnRFbnVtIHwgRG9udERlbGV0ZSksCiAgICAgICAg
IEdsb2JhbFByb3BlcnR5SW5mbyhJZGVudGlmaWVyKGV4ZWMsICJOYU4iKSwganNOYU4oKSwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8oSWRlbnRpZmllcihleGVjLCAiSW5maW5pdHkiKSwganNOdW1iZXIoSW5mKSwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8oSWRl
bnRpZmllcihleGVjLCAidW5kZWZpbmVkIiksIGpzVW5kZWZpbmVkKCksIERvbnRFbnVtIHwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKElkZW50aWZp
ZXIoZXhlYywgIkpTT04iKSwgbmV3IChleGVjKSBKU09OT2JqZWN0KHRoaXMsIEpTT05PYmplY3Q6
OmNyZWF0ZVN0cnVjdHVyZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpLCBEb250RW51bSB8IERv
bnREZWxldGUpCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyhJZGVudGlmaWVyKGV4ZWMsICJK
U09OIiksIG5ldyAoZXhlYykgSlNPTk9iamVjdCh0aGlzLCBKU09OT2JqZWN0OjpjcmVhdGVTdHJ1
Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpLCBEb250
RW51bSB8IERvbnREZWxldGUpCiAgICAgfTsKIAogICAgIGFkZFN0YXRpY0dsb2JhbHMoc3RhdGlj
R2xvYmFscywgV1RGX0FSUkFZX0xFTkdUSChzdGF0aWNHbG9iYWxzKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCBjZGU5OTYwYTg3YjEz
NTQ1ZGQ3MjkzZjFmY2Y2YjEyMjg3NjRkOWE0Li41NmVlYTYzMjI2N2Y0N2VhMmU3NDYxODdmOGIz
YmNmMmY5NDhmNjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmgKQEAgLTExMyw4ICsxMTMsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJs
aWM6CiAgICAgICAgIHZvaWQqIG9wZXJhdG9yIG5ldyhzaXplX3QsIEpTR2xvYmFsRGF0YSopOwog
ICAgICAgICAKLSAgICAgICAgZXhwbGljaXQgSlNHbG9iYWxPYmplY3QoKQotICAgICAgICAgICAg
OiBKU1ZhcmlhYmxlT2JqZWN0KEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxs
KCkpLCAmbV9zeW1ib2xUYWJsZSwgMCkKKyAgICAgICAgZXhwbGljaXQgSlNHbG9iYWxPYmplY3Qo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQorICAgICAgICAgICAgOiBKU1ZhcmlhYmxlT2JqZWN0
KEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwganNOdWxsKCkpLCAm
bV9zeW1ib2xUYWJsZSwgMCkKICAgICAgICAgICAgICwgbV9yZWdpc3RlckFycmF5U2l6ZSgwKQog
ICAgICAgICAgICAgLCBtX2dsb2JhbFNjb3BlQ2hhaW4oKQogICAgICAgICAgICAgLCBtX3dlYWtS
YW5kb20oc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHJhbmRvbU51bWJlcigpICogKHN0ZDo6bnVtZXJp
Y19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSArIDEuMCkpKQpAQCAtMjM4LDkgKzIzOCw5IEBAIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgICAgIEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSgpIGNvbnN0
IHsgcmV0dXJuICptX2dsb2JhbERhdGEuZ2V0KCk7IH0KIAotICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgdm9pZCByZWdpc3RlcldlYWtNYXAoT3BhcXVl
SlNXZWFrT2JqZWN0TWFwKiBtYXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU05vdEFuT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U05vdEFuT2JqZWN0LmgKaW5kZXggN2U3MGE5ODY0NmIzOGUwZWNjZmRlYmIwNzRmZTBiMmJkNjY4
MjQwZS4uYjg4MjAzOTFlZjYxNjVhYjFmZGUwNmMyMDA2ODk1YjU2OWEyYjc5NSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaApAQCAtNDMsOSArNDMs
OSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5
cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJl
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZv
KTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmgKaW5kZXggNTI2NGZkNzk4ZjAxNDIzYjk0
MDg2MmViZmJmOGRhM2IwZmVkMmNjMC4uYTUyYzU0MzhkMDVjOWU2ODM4Yjk5ODBlYmZhYTMzODQz
ODhjZTFlNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9i
amVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaApA
QCAtMzYsOSArMzYsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIEpT
T05PYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9uTnVsbFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBzdHJ1Y3R1cmUpOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVj
dHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAg
ICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmNwcAppbmRleCAyMDljOWVmN2U2OTgwOWI4ZWZhMDJkOTRiYjhmNzVkNWQxZmE5
MDg4Li41ZjVjMDVjNWRlZWVkMzg1NGZkYjExYTkwOTg5NDNlNDNhNGMzMzEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC01NzIsOSArNTcyLDkgQEAg
TkVWRVJfSU5MSU5FIHZvaWQgSlNPYmplY3Q6OmZpbGxHZXR0ZXJQcm9wZXJ0eVNsb3QoUHJvcGVy
dHlTbG90JiBzbG90LCBXcml0ZUJhcnIKICAgICAgICAgc2xvdC5zZXRVbmRlZmluZWQoKTsKIH0K
IAotU3RydWN0dXJlKiBKU09iamVjdDo6Y3JlYXRlSW5oZXJpdG9ySUQoKQorU3RydWN0dXJlKiBK
U09iamVjdDo6Y3JlYXRlSW5oZXJpdG9ySUQoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQogewot
ICAgIG1faW5oZXJpdG9ySUQgPSBjcmVhdGVFbXB0eU9iamVjdFN0cnVjdHVyZSh0aGlzKTsKKyAg
ICBtX2luaGVyaXRvcklEID0gY3JlYXRlRW1wdHlPYmplY3RTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwg
dGhpcyk7CiAgICAgcmV0dXJuIG1faW5oZXJpdG9ySUQuZ2V0KCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IGVlZjM3YjIyYTZlMzM2NWRiY2IxZjNj
ZThmZGViMzMxZjlmYTg0NmMuLjY2YWMyZDZiYTE2MjE3MzYzN2Y3YjM5MjEwZTYzNTA1Njg5MDBm
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtOTIsNyAr
OTIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBzZXRQcm90b3R5cGVXaXRoQ3lj
bGVDaGVjayhKU1ZhbHVlIHByb3RvdHlwZSk7CiAgICAgICAgIAogICAgICAgICB2b2lkIHNldFN0
cnVjdHVyZShOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+KTsKLSAgICAgICAgU3RydWN0dXJl
KiBpbmhlcml0b3JJRCgpOworICAgICAgICBTdHJ1Y3R1cmUqIGluaGVyaXRvcklEKEpTR2xvYmFs
RGF0YSYpOwogCiAgICAgICAgIHZpcnR1YWwgVVN0cmluZyBjbGFzc05hbWUoKSBjb25zdDsKIApA
QCAtMjUwLDkgKzI1MCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgSlNfRVhQ
T1JUREFUQSBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCiAgICAgcHJvdGVjdGVkOgotICAgICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHBy
b3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1
Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1v
dXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gMDsKQEAgLTI5Niw3ICsyOTYsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgYm9vbCBpbmxpbmVHZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKIAogICAg
ICAgICBjb25zdCBIYXNoRW50cnkqIGZpbmRQcm9wZXJ0eUhhc2hFbnRyeShFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpIGNvbnN0OwotICAgICAgICBTdHJ1Y3R1cmUq
IGNyZWF0ZUluaGVyaXRvcklEKCk7CisgICAgICAgIFN0cnVjdHVyZSogY3JlYXRlSW5oZXJpdG9y
SUQoSlNHbG9iYWxEYXRhJik7CiAKICAgICAgICAgUHJvcGVydHlTdG9yYWdlIG1fcHJvcGVydHlT
dG9yYWdlOwogICAgICAgICBSZWZQdHI8U3RydWN0dXJlPiBtX2luaGVyaXRvcklEOwpAQCAtMzIw
LDkgKzMyMCw5IEBAIENPTVBJTEVfQVNTRVJUKChKU0ZpbmFsT2JqZWN0X2lubGluZVN0b3JhZ2VD
YXBhY2l0eSA+PSBKU05vbkZpbmFsT2JqZWN0X2lubGluZVN0CiAgICAgICAgIGZyaWVuZCBjbGFz
cyBKU09iamVjdDsKIAogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsK
ICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpAQCAtMzQ4LDkgKzM0OCw5IEBAIENPTVBJTEVf
QVNTRVJUKChKU0ZpbmFsT2JqZWN0X2lubGluZVN0b3JhZ2VDYXBhY2l0eSA+PSBKU05vbkZpbmFs
T2JqZWN0X2lubGluZVN0CiAgICAgICAgICAgICByZXR1cm4gbmV3IChleGVjKSBKU0ZpbmFsT2Jq
ZWN0KHN0cnVjdHVyZSk7CiAgICAgICAgIH0KIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8o
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8p
OwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgpAQCAtMzc3LDkgKzM3Nyw5IEBAIGlubGluZSBK
U09iamVjdCogY29uc3RydWN0RW1wdHlPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBOb25OdWxsUGFz
c1JlZlB0cjxTdHJ1Y3R1CiAgICAgcmV0dXJuIEpTRmluYWxPYmplY3Q6OmNyZWF0ZShleGVjLCBz
dHJ1Y3R1cmUpOwogfQogCi1pbmxpbmUgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZUVtcHR5
T2JqZWN0U3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQoraW5saW5lIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBjcmVhdGVFbXB0eU9iamVjdFN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTVmFsdWUgcHJvdG90eXBlKQogewotICAgIHJldHVybiBKU0ZpbmFsT2JqZWN0OjpjcmVh
dGVTdHJ1Y3R1cmUocHJvdG90eXBlKTsKKyAgICByZXR1cm4gSlNGaW5hbE9iamVjdDo6Y3JlYXRl
U3RydWN0dXJlKGdsb2JhbERhdGEsIHByb3RvdHlwZSk7CiB9CiAKIGlubGluZSBKU09iamVjdCog
YXNPYmplY3QoSlNDZWxsKiBjZWxsKQpAQCAtNDQyLDExICs0NDIsMTEgQEAgaW5saW5lIHZvaWQg
SlNPYmplY3Q6OnNldFN0cnVjdHVyZShOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVj
dHVyZSkKICAgICBtX3N0cnVjdHVyZSA9IHN0cnVjdHVyZS5sZWFrUmVmKCk7IC8vIH5KU09iamVj
dCBiYWxhbmNlcyB0aGlzIHJlZigpCiB9CiAKLWlubGluZSBTdHJ1Y3R1cmUqIEpTT2JqZWN0Ojpp
bmhlcml0b3JJRCgpCitpbmxpbmUgU3RydWN0dXJlKiBKU09iamVjdDo6aW5oZXJpdG9ySUQoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhKQogewogICAgIGlmIChtX2luaGVyaXRvcklEKQogICAgICAg
ICByZXR1cm4gbV9pbmhlcml0b3JJRC5nZXQoKTsKLSAgICByZXR1cm4gY3JlYXRlSW5oZXJpdG9y
SUQoKTsKKyAgICByZXR1cm4gY3JlYXRlSW5oZXJpdG9ySUQoZ2xvYmFsRGF0YSk7CiB9CiAKIGlu
bGluZSBib29sIFN0cnVjdHVyZTo6aXNVc2luZ0lubGluZVN0b3JhZ2UoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2Jq
ZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxP
YmplY3QuaAppbmRleCBjNWUzMDQ3NWEwYmQ4OGMxZWQzMjU5OTE2ZmIwMmE0ZmVjYWQ2MmIwLi44
MzgwNTE0ZDU3YWNiZjVlOGI1YjBlZjU0MDUzZTgyYzgxYzE3NTM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3Qu
aApAQCAtMzQsOSArMzQsOSBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdDsKIAogY2xhc3MgSlNPYmpl
Y3RXaXRoR2xvYmFsT2JqZWN0IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUg
cHJvdG8pCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgIH0K
IAogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaApp
bmRleCA5MGY0NDllZTIxZTk3ZTI3ODBkNDEyNDlkMzczNTU3YzkzMmE4MTk4Li44YjAwN2RkNzY3
ZjY0NjRiMTQzODE5OWU0ZmE2MTg1ZTRkMzJhZDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oCkBAIC00NSw5ICs0
NSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIEpTUHJv
cGVydHlOYW1lSXRlcmF0b3IqIGNyZWF0ZShFeGVjU3RhdGUqLCBKU09iamVjdCopOwogICAgICAg
ICAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4g
Y3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5
cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90
b3R5cGUsIFR5cGVJbmZvKENvbXBvdW5kVHlwZSwgT3ZlcnJpZGVzTWFya0NoaWxkcmVuKSwgQW5v
bnltb3VzU2xvdENvdW50LCAwKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKENvbXBvdW5kVHlwZSwgT3ZlcnJpZGVz
TWFya0NoaWxkcmVuKSwgQW5vbnltb3VzU2xvdENvdW50LCAwKTsKICAgICAgICAgfQogCiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBpc1Byb3BlcnR5TmFtZUl0ZXJhdG9yKCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0
aWNTY29wZU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNT
Y29wZU9iamVjdC5oCmluZGV4IGIxNDEzYWY2N2JhNGE4MTllYTZiNTdkNjI1ZjRkNDgyZDc5ZGUx
ZWQuLjNlMTliYmMyMzY2YTljMWQ4ZjRhOTRjYmY2MGI3YjQzNzkzZWNhNjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKQEAg
LTQ3LDcgKzQ3LDcgQEAgbmFtZXNwYWNlIEpTQ3sKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7
CiAgICAgICAgIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogCi0gICAgICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8pIHsgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IH0KKyAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxE
YXRhLCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1v
dXNTbG90Q291bnQsICZzX2luZm8pOyB9CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5
U2xvdCB8IE5lZWRzVGhpc0NvbnZlcnNpb24gfCBPdmVycmlkZXNNYXJrQ2hpbGRyZW4gfCBPdmVy
cmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNWYXJpYWJsZU9iamVjdDo6U3RydWN0dXJlRmxhZ3M7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAppbmRleCAyNjc3ZDlhZTlj
ZWFhMzg4ZjdiYWMxNjAyNDVmYWM0NDA2OGE5YjUyLi4xMTAwMmRiMjZmMTJmZDlmMzgyZmQ4N2Nk
ODc4Zjk3ZTNiOWQ1NTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1N0cmluZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5n
LmgKQEAgLTM0OSw3ICszNDksNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBKU1ZhbHVl
IHJlcGxhY2VDaGFyYWN0ZXIoRXhlY1N0YXRlKiwgVUNoYXIsIGNvbnN0IFVTdHJpbmcmIHJlcGxh
Y2VtZW50KTsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0
cnVjdHVyZShKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90bywg
VHlwZUluZm8oU3RyaW5nVHlwZSwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgTmVlZHNU
aGlzQ29udmVyc2lvbiksIEFub255bW91c1Nsb3RDb3VudCwgMCk7IH0KKyAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxE
YXRhLCBwcm90bywgVHlwZUluZm8oU3RyaW5nVHlwZSwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlT
bG90IHwgTmVlZHNUaGlzQ29udmVyc2lvbiksIEFub255bW91c1Nsb3RDb3VudCwgMCk7IH0KIAog
ICAgIHByaXZhdGU6CiAgICAgICAgIGVudW0gVlB0clN0ZWFsaW5nSGFja1R5cGUgeyBWUHRyU3Rl
YWxpbmdIYWNrIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1ZhcmlhYmxlT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Zhcmlh
YmxlT2JqZWN0LmgKaW5kZXggNTc3OWYzN2JhY2NmYTI1YWExOTY4MjM1OWM4OTIwMGIwY2JiY2Ew
NS4uODkxYWRhOGM0M2EzN2FhN2JjMTI2ZTMzMDQ3NTA3MDIwYzNlMzFjOSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaApAQCAtNTgsOSAr
NTgsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4q
IGNvbnN0ICogYWRkcmVzc09mUmVnaXN0ZXJzKCkgY29uc3QgeyByZXR1cm4gJm1fcmVnaXN0ZXJz
OyB9CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1
cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVy
ZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90
b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3Vz
U2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQogICAgICAgICAK
ICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1dyYXBwZXJPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3Jh
cHBlck9iamVjdC5oCmluZGV4IDNmYzBiMTg2ZmU1ODExN2VjYTBlYzBiMmE1NmJhZjY1ZDEyZDlm
M2MuLjYzODMzZTlmMzc0ZWM3Yzc5YWE3YWQ4MjBlOGEwNDEyZmJkYWQzODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oCkBAIC0zNiw5ICsz
Niw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBKU1ZhbHVlIGludGVybmFsVmFsdWUoKSBj
b25zdDsKICAgICAgICAgdm9pZCBzZXRJbnRlcm5hbFZhbHVlKEpTR2xvYmFsRGF0YSYsIEpTVmFs
dWUpOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0
dXJlKEpTVmFsdWUgcHJvdG90eXBlKSAKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHBy
b3RvdHlwZSkgCiAgICAgICAgIHsgCi0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255
bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAg
IHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Wm9tYmllLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1pvbWJpZS5oCmluZGV4
IGU1NzVhYzU1MjE2Y2NlMTQ5N2RlMzY0YTk3MjhiY2ZmYjI3YjRmZDYuLjE3OWZmNTMxMDBmZDNm
ZDIwYWIzYzE3NDczMjVkOWRkMTgwY2I3MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTWm9tYmllLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNab21iaWUuaApAQCAtNjYsOSArNjYsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlTbG90JikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCwgUHJvcGVy
dHlTbG90JikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGZhbHNlOyB9CiAgICAgCi0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBw
cm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1
cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVj
dFR5cGUsIDApLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCAwKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKICAgICBzdGF0
aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L01hdGhPYmplY3QuaAppbmRleCA4NmU3OTUxYTFiZGNhOGQ2NmUzZTU5ZWNkNTUyODQxY2VkZWE0
NWViLi4yNmVhYWUwNDQ5OTI4ZGU1MWE1YzRkZTVlZGZmY2JhMmViZGM1NzEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCkBAIC0zNCw5ICszNCw5IEBAIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwog
Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpT
VmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBl
KQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3Rl
ZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9y
Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJy
b3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNzk0OWRkOTZhNWI3N2MzYzFjNjdmZmU5YjlhOGU1M2E0
YzY5NWYyNC4uZDhmZGE2OWE4NDA3YmQ1MGJlZGYzZTRlZTdhMGFlMzdjMjY4NTk2NiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25z
dHJ1Y3Rvci5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6TmF0
aXZlRXJyb3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KgogCiAg
ICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxl
bmd0aCwganNOdW1iZXIoMSksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsgLy8g
RUNNQSAxNS4xMS43LjUKICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5w
cm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBwcm90b3R5cGUsIERvbnREZWxldGUgfCBSZWFkT25s
eSB8IERvbnRFbnVtKTsKLSAgICBtX2Vycm9yU3RydWN0dXJlID0gRXJyb3JJbnN0YW5jZTo6Y3Jl
YXRlU3RydWN0dXJlKHByb3RvdHlwZSk7CisgICAgbV9lcnJvclN0cnVjdHVyZSA9IEVycm9ySW5z
dGFuY2U6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIHByb3RvdHlwZSk7CiB9
CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhOYXRp
dmVFcnJvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaAppbmRleCBlNDk3
OGNjYTFjYmJiOWQyN2ViMzhkYmMwNDM1NzA3ZGM2YzZhYjkyLi4yM2Y3OThlNDcyOWJlYmU3YTk4
YzYyZDg0ZDNiZDI2YzdjMWI3ODA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oCkBAIC0zNSw5ICszNSw5IEBAIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwog
Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpT
VmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBl
KQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgICAgICBTdHJ1
Y3R1cmUqIGVycm9yU3RydWN0dXJlKCkgeyByZXR1cm4gbV9lcnJvclN0cnVjdHVyZS5nZXQoKTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3Ry
dWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9y
LmgKaW5kZXggYWFmN2MzMjEwMjYzZDM4YTcxNjM0NzgxODRjYjlmYWM0NWI0NzU5My4uYWI0NTA3
ZTU4M2ViMjViMjdhZmYyMzQxOWM0Mjc4ZTFhNzk2MTU4MiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCkBAIC0zNyw5ICszNyw5IEBA
IG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZv
OwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJl
KEpTVmFsdWUgcHJvdG8pIAorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG8pIAog
ICAgICAgICB7IAotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwg
JnNfaW5mbyk7IAorICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91
c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAogICAgICAgICB9CiAKICAgICAgICAgZW51bSB7IE5hTlZh
bHVlLCBOZWdJbmZpbml0eSwgUG9zSW5maW5pdHksIE1heFZhbHVlLCBNaW5WYWx1ZSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuaAppbmRleCBiZGY1NmY3
ZjQ3NTNiNGUxNjQyNTNiMjUzZmIxMmE0YjYyMTVjNDQ5Li4xNTcxZmQ0MmNlNmIwYzMyZTgyZTgx
YWQ2YjAzMTYwYTkxZTdlZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9O
dW1iZXJPYmplY3QuaApAQCAtMzEsOSArMzEsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAg
ICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAotICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKaW5kZXggODk1Zjk4OGY2YzEzOTQ2
NTMxZjI4MjQ4NmJmZDE1ODlkODE0OGIwOC4uYjdiZmMxZDcxN2M3MTc4ZTMzYzI5NmFkN2I0Yjk3
NDAxZWFlNDNkMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmpl
Y3RDb25zdHJ1Y3Rvci5oCkBAIC0zNiw5ICszNiw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAg
ICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAg
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwg
JnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCmluZGV4IDhhOGE1NGFhYTg2
NWI5OWZhM2ExY2RjZmE1NTk4YmE0YzAzYmEyNWYuLjAzYzZiZWEyYmEzODY0NjUzMmRkN2U1MWZh
YWEzZjYxZTJmOTg1MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwQ29uc3RydWN0b3IuaApAQCAtNTksOSArNTksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICBwdWJsaWM6CiAgICAgICAgIFJlZ0V4cENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSosIEpTR2xvYmFs
T2JqZWN0KiwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiwgUmVnRXhwUHJvdG90eXBlKik7
CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4g
Y3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5
cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShn
bG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgICAgIHZp
cnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwT2JqZWN0LmgKaW5kZXggOWYyY2E1YWEyNGNlN2RhZTY1NTkwM2MxMmJhZGFl
MTU2ZTJmYWQ4MS4uZmEyMDI0ZGNkNzVlN2FjNWMyNjhjMTg3N2UwNjk0MTAwNDIxNWI5ZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKQEAgLTU4LDkg
KzU4LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIEpTX0VYUE9SVERBVEEg
Y29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1
Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwog
ICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TY29wZUNoYWluLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TY29wZUNoYWluLmgKaW5kZXggNTVkMTFhZGQyYjFhN2IwMzY4NzEyZDFjMWZhNzk1NGIzNTYy
Mjg1Yy4uY2I3MGEzNDZiOTY3YjUwZjMyNGY5MGU3ZDM0MzE3N2JiMzkyMDE3YiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlQ2hhaW4uaApAQCAtNjQsNyArNjQsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBwcmludCgpOwogI2VuZGlmCiAgICAgICAgIAot
ICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1Zh
bHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90bywgVHlwZUluZm8oQ29t
cG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgMCk7IH0KKyAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCwgMCk7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIG1h
cmtDaGlsZHJlbihNYXJrU3RhY2smKTsKICAgICBwcml2YXRlOgogICAgICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNNYXJrQ2hpbGRyZW47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCmluZGV4IGFjZGVjYjNj
NWVlOGE0MDE3Njk5MGUzODQyMzVhZjEyMWM1MTgzYjAuLjBlMmEyYjI0MTNjOThlMmNhNzEwYzJj
ZGQ5YThiMDQwZDg3NGI2MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ09iamVjdC5oCkBAIC00NSw5ICs0NSw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAg
IEpTU3RyaW5nKiBpbnRlcm5hbFZhbHVlKCkgY29uc3QgeyByZXR1cm4gYXNTdHJpbmcoSlNXcmFw
cGVyT2JqZWN0OjppbnRlcm5hbFZhbHVlKCkpO30KIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5l
ZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0VGhhdE1hc3F1
ZXJhZGVzQXNVbmRlZmluZWQuaAppbmRleCAwYTQ0ZWQzMjNhZDBmY2Q0Njg2YjVmNTdkMDJjM2Rh
ZGVhMzU5OWZkLi5lNGM3MDYxMjJjZTE3MTNkNDNlZTk1M2QxYmM4OWY3NTBlOWI0ZTdjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFz
cXVlcmFkZXNBc1VuZGVmaW5lZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ09iamVjdFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLmgKQEAgLTMzLDcgKzMzLDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBTdHJpbmdPYmplY3RUaGF0TWFzcXVl
cmFkZXNBc1VuZGVmaW5lZCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgVVN0cmluZyYg
c3RyaW5nKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gbmV3IChleGVjKSBTdHJpbmdP
YmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZChleGVjLAotICAgICAgICAgICAgICAgIGNy
ZWF0ZVN0cnVjdHVyZShleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnN0cmluZ1Byb3RvdHlw
ZSgpKSwgc3RyaW5nKTsKKyAgICAgICAgICAgICAgICBjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnN0cmluZ1Byb3RvdHlwZSgp
KSwgc3RyaW5nKTsKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKQEAgLTQyLDkgKzQyLDkgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8pIAorICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG8pIAogICAgICAgICB7IAotICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAorICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7
IAogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgTWFzcXVlcmFkZXNBc1VuZGVmaW5l
ZCB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBTdHJpbmdPYmplY3Q6OlN0cnVjdHVyZUZs
YWdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJv
dG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUu
aAppbmRleCA1N2E1MDlhYmFkMjY5OTc0N2NhZmZlMmFjOWExMjAxMGM4ZTY2MTliLi41N2RlZjIy
ODFiMWQ1YzQ4ZjEzNGFkNWQ0MjFlMDc3ZWU1YTA4N2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaApAQCAtMzQsOSArMzQsOSBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIAotICAgICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlw
ZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8o
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8p
OworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3Rv
dHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90
Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNz
SW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJ1Y3R1cmUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCmlu
ZGV4IDY0YjFkMjg3Mjk1ODE1ZDUwMmVhNzU0NzNkM2E3ODU5ODAyNjY4NmIuLjZmNzA2MGJmMWFh
ZGMyNDAzZjk3MGM1MWRlOGViMjY4NTBhNDQ1MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZS5oCkBAIC01NywxMSArNTcsMTcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgY2xhc3MgU3RydWN0dXJlIDogcHVibGljIFJlZkNvdW50ZWQ8U3RydWN0dXJlPiB7CiAgICAg
cHVibGljOgogICAgICAgICBmcmllbmQgY2xhc3MgU3RydWN0dXJlVHJhbnNpdGlvblRhYmxlOwot
ICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZShKU1ZhbHVlIHByb3Rv
dHlwZSwgY29uc3QgVHlwZUluZm8mIHR5cGVJbmZvLCB1bnNpZ25lZCBhbm9ueW1vdXNTbG90Q291
bnQsIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTdHJ1Y3R1cmU+IGNyZWF0ZShKU0dsb2JhbERhdGEmLCBKU1ZhbHVlIHByb3RvdHlwZSwgY29u
c3QgVHlwZUluZm8mIHR5cGVJbmZvLCB1bnNpZ25lZCBhbm9ueW1vdXNTbG90Q291bnQsIGNvbnN0
IENsYXNzSW5mbyogY2xhc3NJbmZvKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFN0cnVjdHVyZShwcm90b3R5cGUsIHR5cGVJbmZvLCBhbm9ueW1vdXNTbG90Q291
bnQsIGNsYXNzSW5mbykpOwogICAgICAgICB9CiAKKyAgICAgICAgZW51bSBWUHRyU3RlYWxpbmdI
YWNrVHlwZSB7IFZQdHJTdGVhbGluZ0hhY2sgfTsKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBjcmVhdGUoVlB0clN0ZWFsaW5nSGFja1R5cGUsIGNvbnN0IENsYXNzSW5mbyog
Y2xhc3NJbmZvKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFN0
cnVjdHVyZShqc051bGwoKSwgVHlwZUluZm8oVW5zcGVjaWZpZWRUeXBlKSwgMCwgY2xhc3NJbmZv
KSk7CisgICAgICAgIH0KKwogICAgICAgICBzdGF0aWMgdm9pZCBzdGFydElnbm9yaW5nTGVha3Mo
KTsKICAgICAgICAgc3RhdGljIHZvaWQgc3RvcElnbm9yaW5nTGVha3MoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1
ZS9DaGFuZ2VMb2cKaW5kZXggZDBlM2Y2YzI1MzA1M2QyNWM5Yjg3MDU5ZTU1MjM4YWQzNTNhM2Uy
My4uZDdiODdhZmVjZjZkNTAwOTllZjk1ZmI5MTNjNmJlMDdmODZmZGZhNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEds
dWUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDMtMTUgIE9saXZlciBIdW50ICA8
b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBNYWtlIFN0cnVjdHVyZSBjcmVhdGlvbiByZXF1aXJlIGEgSlNHbG9iYWxEYXRh
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjQzOAor
CisgICAgICAgIE1lY2hhbmljYWwgY2hhbmdlIHRvIG1ha2UgYWxsIHN0cnVjdHVyZSBjcmVhdGlv
biBwYXNzIGEgSlNHbG9iYWxEYXRhJi4KKworICAgICAgICAqIEpTUnVuLmNwcDoKKyAgICAgICAg
KEpTR2x1ZUdsb2JhbE9iamVjdDo6SlNHbHVlR2xvYmFsT2JqZWN0KToKKyAgICAgICAgKEpTUnVu
OjpKU1J1bik6CisgICAgICAgICogSlNSdW4uaDoKKyAgICAgICAgKiBKU1V0aWxzLmNwcDoKKyAg
ICAgICAgKGdldFRocmVhZEdsb2JhbE9iamVjdCk6CisgICAgICAgICogVXNlck9iamVjdEltcC5o
OgorICAgICAgICAoVXNlck9iamVjdEltcDo6Y3JlYXRlU3RydWN0dXJlKToKKwogMjAxMS0wMy0x
NSAgS2V2aW4gT2xsaXZpZXIgIDxrZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1
ZS9KU1J1bi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNSdW4uY3BwCmluZGV4IDg2MzA1
OTRiMGExYWZiNTRiNDVhZWMzMjQwNWZlZTFiZjQ4N2NhMDguLmE4MDk2YWE0YmFjNzM1ZTViNzY0
NmQ5NTM5MmJhMWRlYjA5OGEyMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9K
U1J1bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0pTUnVuLmNwcApAQCAtMzMsMTcg
KzMzLDE3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29tcGxldGlvbi5oPgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL1NvdXJjZUNvZGUuaD4KIAotSlNHbHVlR2xvYmFsT2JqZWN0OjpK
U0dsdWVHbG9iYWxPYmplY3QoUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSwgSlNGbGFn
cyBmbGFncykKK0pTR2x1ZUdsb2JhbE9iamVjdDo6SlNHbHVlR2xvYmFsT2JqZWN0KEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSwgSlNGbGFn
cyBmbGFncykKICAgICA6IEpTR2xvYmFsT2JqZWN0KHN0cnVjdHVyZSkKICAgICAsIG1fZmxhZ3Mo
ZmxhZ3MpCi0gICAgLCBtX3VzZXJPYmplY3RTdHJ1Y3R1cmUoVXNlck9iamVjdEltcDo6Y3JlYXRl
U3RydWN0dXJlKGpzTnVsbCgpKSkKKyAgICAsIG1fdXNlck9iamVjdFN0cnVjdHVyZShVc2VyT2Jq
ZWN0SW1wOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwganNOdWxsKCkpKQogewogfQogCiBK
U1J1bjo6SlNSdW4oQ0ZTdHJpbmdSZWYgc291cmNlLCBKU0ZsYWdzIGluRmxhZ3MpCiAgICAgOiAg
IEpTQmFzZShrSlNSdW5UeXBlSUQpLAogICAgICAgICBmU291cmNlKENGU3RyaW5nVG9VU3RyaW5n
KHNvdXJjZSkpLAotICAgICAgICBmR2xvYmFsT2JqZWN0KGdldFRocmVhZEdsb2JhbEV4ZWNTdGF0
ZSgpLT5nbG9iYWxEYXRhKCksIG5ldyAoJmdldFRocmVhZEdsb2JhbEV4ZWNTdGF0ZSgpLT5nbG9i
YWxEYXRhKCkpIEpTR2x1ZUdsb2JhbE9iamVjdChKU0dsdWVHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0
cnVjdHVyZShqc051bGwoKSksIGluRmxhZ3MpKSwKKyAgICAgICAgZkdsb2JhbE9iamVjdChnZXRU
aHJlYWRHbG9iYWxFeGVjU3RhdGUoKS0+Z2xvYmFsRGF0YSgpLCBuZXcgKCZnZXRUaHJlYWRHbG9i
YWxFeGVjU3RhdGUoKS0+Z2xvYmFsRGF0YSgpKSBKU0dsdWVHbG9iYWxPYmplY3QoZ2V0VGhyZWFk
R2xvYmFsRXhlY1N0YXRlKCktPmdsb2JhbERhdGEoKSwgSlNHbHVlR2xvYmFsT2JqZWN0OjpjcmVh
dGVTdHJ1Y3R1cmUoZ2V0VGhyZWFkR2xvYmFsRXhlY1N0YXRlKCktPmdsb2JhbERhdGEoKSwganNO
dWxsKCkpLCBpbkZsYWdzKSksCiAgICAgICAgIGZGbGFncyhpbkZsYWdzKQogewogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0pTUnVuLmggYi9Tb3VyY2UvSmF2YVNjcmlwdEds
dWUvSlNSdW4uaAppbmRleCBlOWExNDg0MmVjMWE5YzU0MzZiZmE1MzYxNjgwMzU2NGY2OTQ0NTkw
Li5kN2FhNjgyNDEwYzhiMzMyNzM3ZThlMGY1NmM3N2E1Mjk3ZTRmOWU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNSdW4uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUv
SlNSdW4uaApAQCAtMzQsNyArMzQsNyBAQAogCiBjbGFzcyBKU0dsdWVHbG9iYWxPYmplY3QgOiBw
dWJsaWMgSlNHbG9iYWxPYmplY3QgewogICAgIHB1YmxpYzoKLSAgICAgICAgSlNHbHVlR2xvYmFs
T2JqZWN0KFBhc3NSZWZQdHI8U3RydWN0dXJlPiwgSlNGbGFncyA9IGtKU0ZsYWdOb25lKTsKKyAg
ICAgICAgSlNHbHVlR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYsIFBhc3NSZWZQdHI8U3RydWN0
dXJlPiwgSlNGbGFncyA9IGtKU0ZsYWdOb25lKTsKIAogICAgICAgICBKU0ZsYWdzIEZsYWdzKCkg
Y29uc3QgeyByZXR1cm4gbV9mbGFnczsgfQogICAgICAgICBTdHJ1Y3R1cmUqIHVzZXJPYmplY3RT
dHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX3VzZXJPYmplY3RTdHJ1Y3R1cmUuZ2V0KCk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1V0aWxzLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0R2x1ZS9KU1V0aWxzLmNwcAppbmRleCA5NGM4ZGNjZDYzYjZjNjMwOWZjYThiOGYy
MmMwOGExMGNhZTA1MGY1Li5iNjJlN2JmYjZlODk4YzhmMmRhNjIyNzllYzhhMWM5OWE0ZWJjMWE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNVdGlscy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRHbHVlL0pTVXRpbHMuY3BwCkBAIC00MTQsNyArNDE0LDcgQEAgc3RhdGlj
IEpTR2x1ZUdsb2JhbE9iamVjdCogZ2V0VGhyZWFkR2xvYmFsT2JqZWN0KCkKICAgICBwdGhyZWFk
X29uY2UoJmdsb2JhbE9iamVjdEtleU9uY2UsIGluaXRpYWxpemVHbG9iYWxPYmplY3RLZXkpOwog
ICAgIEpTR2x1ZUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNHbHVl
R2xvYmFsT2JqZWN0Kj4ocHRocmVhZF9nZXRzcGVjaWZpYyhnbG9iYWxPYmplY3RLZXkpKTsKICAg
ICBpZiAoIWdsb2JhbE9iamVjdCkgewotICAgICAgICBnbG9iYWxPYmplY3QgPSBuZXcgKGdldFRo
cmVhZEdsb2JhbERhdGEoKSkgSlNHbHVlR2xvYmFsT2JqZWN0KEpTR2x1ZUdsb2JhbE9iamVjdDo6
Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSk7CisgICAgICAgIGdsb2JhbE9iamVjdCA9IG5ldyAo
Z2V0VGhyZWFkR2xvYmFsRGF0YSgpKSBKU0dsdWVHbG9iYWxPYmplY3QoKmdldFRocmVhZEdsb2Jh
bERhdGEoKSwgSlNHbHVlR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoKmdldFRocmVhZEds
b2JhbERhdGEoKSwganNOdWxsKCkpKTsKICAgICAgICAgZ2NQcm90ZWN0KGdsb2JhbE9iamVjdCk7
CiAgICAgICAgIHB0aHJlYWRfc2V0c3BlY2lmaWMoZ2xvYmFsT2JqZWN0S2V5LCBnbG9iYWxPYmpl
Y3QpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0
SW1wLmggYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCmluZGV4IDNmNjQx
NTMwZjY0NGViNTc5NzdmNDY0Yjc3NDhlYTAxMmVmNDBkZTcuLmM2YjhkODZmNWQ5YWI2OWMxZTFl
NTY5ZWM4MmM2YmUyNTEyZDg1NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9V
c2VyT2JqZWN0SW1wLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAu
aApAQCAtNTgsOSArNTgsOSBAQCBwdWJsaWM6CiAKICAgICBKU1VzZXJPYmplY3QgKkdldEpTVXNl
ck9iamVjdCgpIGNvbnN0OwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVh
dGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVl
IHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8
IE92ZXJyaWRlc01hcmtDaGlsZHJlbiB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBPdmVycmlkZXNH
ZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNNYXJrQ2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQ
cm9wZXJ0eU5hbWVzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggOTY2NGI5YjFmYTc0MTcxYzYwOTkwYmE0N2MzNmJhZjYzYzI1
ZGRjNi4uY2ExZjhhYTc0NDliOTI0MzMxMWVkNjljNjBlZTBkZWUwZGE2NmI4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDY1IEBACisyMDExLTAzLTE1ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TWFrZSBTdHJ1Y3R1cmUgY3JlYXRpb24gcmVxdWlyZSBhIEpTR2xvYmFsRGF0YQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY0MzgKKworICAgICAgICBN
ZWNoYW5pY2FsIGNoYW5nZSB0byBtYWtlIGFsbCBzdHJ1Y3R1cmUgY3JlYXRpb24gdXNlIEdsb2Jh
bERhdGEKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0F1ZGlvQ29uc3RydWN0b3I6OkpTQXVkaW9Db25zdHJ1Y3Rvcik6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmg6CisgICAgICAgIChX
ZWJDb3JlOjpKU0F1ZGlvQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpET01PYmplY3RX
aXRoR2xvYmFsUG9pbnRlcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TUNvbnN0cnVjdG9yT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6
Z2V0RE9NU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVj
dC5oOgorICAgICAgICAoV2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVy
ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdp
bmRvd1NoZWxsOjpKU0RPTVdpbmRvd1NoZWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2lu
ZG93U2hlbGw6OnNldFdpbmRvdyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dT
aGVsbC5oOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNJbWFnZUNvbnN0cnVjdG9yOjpKU0ltYWdlQ29uc3RydWN0b3IpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoV2Vi
Q29yZTo6SlNJbWFnZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNPcHRpb25Db25zdHJ1Y3Rvcjo6SlNPcHRpb25Db25zdHJ1Y3Rvcik6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5oOgorICAgICAgICAoV2Vi
Q29yZTo6SlNPcHRpb25Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpKU1dv
cmtlckNvbnRleHRCYXNlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2Ny
aXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgICogYnJpZGdlL2MvQ1J1bnRpbWVPYmplY3QuaDoK
KyAgICAgICAgKEpTQzo6QmluZGluZ3M6OkNSdW50aW1lT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAqIGJyaWRnZS9jL2NfaW5zdGFuY2UuY3BwOgorICAgICAgICAoSlNDOjpCaW5k
aW5nczo6Q1J1bnRpbWVNZXRob2Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYnJpZGdl
L2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmNwcDoKKyAgICAgICAgKEphdmFSdW50aW1lTWV0aG9k
OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJyaWRnZS9qbmkvanNjL0phdmFSdW50aW1l
T2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpKYXZhUnVudGltZU9iamVjdDo6Y3Jl
YXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9PYmpDUnVudGltZU9iamVjdC5o
OgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqQ1J1bnRpbWVPYmplY3Q6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbToKKyAgICAgICAg
KE9iakNSdW50aW1lTWV0aG9kOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJyaWRnZS9v
YmpjL29iamNfcnVudGltZS5oOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0ZhbGxiYWNr
T2JqZWN0SW1wOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2Fy
cmF5Lmg6CisgICAgICAgIChKU0M6OlJ1bnRpbWVBcnJheTo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKiBicmlkZ2UvcnVudGltZV9tZXRob2QuaDoKKyAgICAgICAgKEpTQzo6UnVudGltZU1l
dGhvZDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3Qu
aDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVy
ZSk6CisKIDIwMTEtMDMtMTYgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmNwcAppbmRleCBmMDA0MGZhOWE3MmVjNDY3OGI0
MjhmNTNiMDQ1Y2YzNjMzMDY2MDQ4Li45YWM3OTdiMWRlODk4MDg1OTExY2U5ZTI5ODU0ZWQxZmYy
NTA3ZDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29u
c3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db25z
dHJ1Y3Rvci5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY29uc3Qg
Q2xhc3NJbmZvIEpTQXVkaW9Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiQXVkaW9Db25zdHJ1Y3Rv
ciIsICZET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudDo6c19pbmZvLCAwLCAwIH07CiAKIEpTQXVk
aW9Db25zdHJ1Y3Rvcjo6SlNBdWRpb0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLSAgICA6IERPTUNvbnN0cnVjdG9yV2l0aERvY3Vt
ZW50KEpTQXVkaW9Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+b2Jq
ZWN0UHJvdG90eXBlKCkpLCBnbG9iYWxPYmplY3QpCisgICAgOiBET01Db25zdHJ1Y3RvcldpdGhE
b2N1bWVudChKU0F1ZGlvQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3Qt
Pmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9i
amVjdCkKIHsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHB1dERpcmVjdChl
eGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTSFRN
TEF1ZGlvRWxlbWVudFByb3RvdHlwZTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3QpLCBOb25lKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rv
ci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmgKaW5k
ZXggYzkwYWJiZjdkOWVlYmE5NDYzNmFjNjZkMTI0NjNhZTFmNGNkMGRkMS4uYmUwYjgwMDAwNWJm
MjIxYWJlZDdhOTg0NmQ4YTEzYWVjMzViNDQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmgKQEAgLTM4LDkgKzM4LDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIHB1YmxpYzoKICAgICAgICAgSlNBdWRpb0NvbnN0cnVjdG9yKEpTQzo6
RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKIAotICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5
cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1
Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5
cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRl
KHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBKU0M6
OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhK
U0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBz
X2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRp
bmcuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCmluZGV4IDRm
ZTNkMTZjMWZjYzI4YzdjNjc0ODlhODFiYzFhYjU3OGEwZmExZDIuLjkzNGQ5YjMxYTQ2MWIyMTc5
ZGJkNDE5ZmRlZTAwMmE4MGUzMjgzYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5oCkBAIC02NCw5ICs2NCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwog
ICAgICAgICB9CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUlu
Zm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwg
JnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAg
IHByb3RlY3RlZDoKQEAgLTgzLDkgKzgzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIC8v
IEJhc2UgY2xhc3MgZm9yIGFsbCBjb25zdHJ1Y3RvciBvYmplY3RzIGluIHRoZSBKU0MgYmluZGlu
Z3MuCiAgICAgY2xhc3MgRE9NQ29uc3RydWN0b3JPYmplY3QgOiBwdWJsaWMgRE9NT2JqZWN0V2l0
aEdsb2JhbFBvaW50ZXIgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQor
ICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJl
KEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQog
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90
b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7
CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKQEAgLTE0Myw3ICsxNDMsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgewogICAgICAgICBpZiAoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSA9IGdldENhY2hlZERPTVN0cnVjdHVyZShnbG9iYWxPYmplY3QsICZXcmFwcGVyQ2xhc3M6OnNf
aW5mbykpCiAgICAgICAgICAgICByZXR1cm4gc3RydWN0dXJlOwotICAgICAgICByZXR1cm4gY2Fj
aGVET01TdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBXcmFwcGVyQ2xhc3M6OmNyZWF0ZVN0cnVjdHVy
ZShXcmFwcGVyQ2xhc3M6OmNyZWF0ZVByb3RvdHlwZShleGVjLCBnbG9iYWxPYmplY3QpKSwgJldy
YXBwZXJDbGFzczo6c19pbmZvKTsKKyAgICAgICAgcmV0dXJuIGNhY2hlRE9NU3RydWN0dXJlKGds
b2JhbE9iamVjdCwgV3JhcHBlckNsYXNzOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0
YSgpLCBXcmFwcGVyQ2xhc3M6OmNyZWF0ZVByb3RvdHlwZShleGVjLCBnbG9iYWxPYmplY3QpKSwg
JldyYXBwZXJDbGFzczo6c19pbmZvKTsKICAgICB9CiAgICAgdGVtcGxhdGU8Y2xhc3MgV3JhcHBl
ckNsYXNzPiBpbmxpbmUgSlNDOjpTdHJ1Y3R1cmUqIGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUo
SlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKaW5kZXggZGFlNDA1YThmZGU3OWQyMDBkY2Q0YWU2NGM2
ZDQyZjk3MGI0NmY2MS4uMWU5OTJjNWI3MWZkYzYyOGU2NTFkY2IyZjcyYzE1MTY0ZWZiMjQwNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCkBA
IC02OSw5ICs2OSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBzdGF0aWMgY29u
c3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpT
Qzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShK
U0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90
eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwog
ICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93QmFzZS5oCmluZGV4IDdiZGEzZTQyMDcyNTRhOTVlMmEzYzcwMzU3YTJlZmRl
M2FhZjYzNmUuLmJmZWMzMWM1Njc4MjUyYzk1NzcyMmY0NmExMjllYjkwNjZlMjgwZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCkBAIC01Nyw5ICs1
Nyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBzdGF0aWMgY29uc3QgSlNDOjpD
bGFzc0luZm8gc19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6
OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90
Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVh
dGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9
CiAKICAgICAgICAgdmlydHVhbCBKU0M6OkV4ZWNTdGF0ZSogZ2xvYmFsRXhlYygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAppbmRleCBhNGNj
Nzc3ZDk0YWQyMzM4YjhhNjhlYjA3NzQyY2Q5ZGFmOTk0MTNmLi44MTdlOWMwZGEyMDI4NDQxNWNj
NTI5MDRlZTM3ZjFjN2I5MjdkYmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd1NoZWxsLmNwcApAQCAtNDQsNyArNDQsNyBAQCBBU1NFUlRfQ0xBU1NfRklU
U19JTl9DRUxMKEpTRE9NV2luZG93U2hlbGwpOwogY29uc3QgQ2xhc3NJbmZvIEpTRE9NV2luZG93
U2hlbGw6OnNfaW5mbyA9IHsgIkpTRE9NV2luZG93U2hlbGwiLCAmQmFzZTo6c19pbmZvLCAwLCAw
IH07CiAKIEpTRE9NV2luZG93U2hlbGw6OkpTRE9NV2luZG93U2hlbGwoUGFzc1JlZlB0cjxET01X
aW5kb3c+IHdpbmRvdywgRE9NV3JhcHBlcldvcmxkKiB3b3JsZCkKLSAgICA6IEJhc2UoSlNET01X
aW5kb3dTaGVsbDo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKKyAgICA6IEJhc2UoSlNET01X
aW5kb3dTaGVsbDo6Y3JlYXRlU3RydWN0dXJlKCp3b3JsZC0+Z2xvYmFsRGF0YSgpLCBqc051bGwo
KSkpCiAgICAgLCBtX3dvcmxkKHdvcmxkKQogewogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZv
KSk7CkBAIC02MCwxMCArNjAsMTAgQEAgdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpzZXRXaW5kb3co
UGFzc1JlZlB0cjxET01XaW5kb3c+IGRvbVdpbmRvdykKICAgICAvLyBFeHBsaWNpdGx5IHByb3Rl
Y3QgdGhlIGdsb2JhbCBvYmplY3QncyBwcm90b3R5cGUgc28gaXQgaXNuJ3QgY29sbGVjdGVkCiAg
ICAgLy8gd2hlbiB3ZSBhbGxvY2F0ZSB0aGUgZ2xvYmFsIG9iamVjdC4gKE9uY2UgdGhlIGdsb2Jh
bCBvYmplY3QgaXMgZnVsbHkKICAgICAvLyBjb25zdHJ1Y3RlZCwgaXQgY2FuIG1hcmsgaXRzIG93
biBwcm90b3R5cGUuKQotICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHByb3RvdHlwZVN0cnVjdHVyZSA9
IEpTRE9NV2luZG93UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpOworICAgIFJl
ZlB0cjxTdHJ1Y3R1cmU+IHByb3RvdHlwZVN0cnVjdHVyZSA9IEpTRE9NV2luZG93UHJvdG90eXBl
OjpjcmVhdGVTdHJ1Y3R1cmUoKkpTRE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKSwganNO
dWxsKCkpOwogICAgIEdsb2JhbDxKU0RPTVdpbmRvd1Byb3RvdHlwZT4gcHJvdG90eXBlKCpKU0RP
TVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCksIG5ldyBKU0RPTVdpbmRvd1Byb3RvdHlwZSgw
LCBwcm90b3R5cGVTdHJ1Y3R1cmUucmVsZWFzZSgpKSk7CiAKLSAgICBSZWZQdHI8U3RydWN0dXJl
PiBzdHJ1Y3R1cmUgPSBKU0RPTVdpbmRvdzo6Y3JlYXRlU3RydWN0dXJlKHByb3RvdHlwZS5nZXQo
KSk7CisgICAgUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlID0gSlNET01XaW5kb3c6OmNyZWF0
ZVN0cnVjdHVyZSgqSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLCBwcm90b3R5cGUu
Z2V0KCkpOwogICAgIEpTRE9NV2luZG93KiBqc0RPTVdpbmRvdyA9IG5ldyAoSlNET01XaW5kb3c6
OmNvbW1vbkpTR2xvYmFsRGF0YSgpKSBKU0RPTVdpbmRvdyhzdHJ1Y3R1cmUucmVsZWFzZSgpLCBk
b21XaW5kb3csIHRoaXMpOwogICAgIHByb3RvdHlwZS0+cHV0QW5vbnltb3VzVmFsdWUoKkpTRE9N
V2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKSwgMCwganNET01XaW5kb3cpOwogICAgIHNldFdp
bmRvdygqSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLCBqc0RPTVdpbmRvdyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKaW5kZXggMDZk
ZDFmZjVmNDBjNmQ0OTA0MmU3OGEwYjVkOWNhMjhlM2I4YTA1ZS4uNDMwN2MxYzQ2MWIwZmY0NmJm
OGEzYTc3YmFiOGVjMmU1MDRmOWJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dTaGVsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93U2hlbGwuaApAQCAtNTgsOSArNTgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICAgICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCk7CiAKLSAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUg
cHJvdG90eXBlKSAKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVl
IHByb3RvdHlwZSkgCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVy
ZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCisgICAgICAgICAgICBy
ZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIEpTQzo6
VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7IAogICAgICAgICB9CiAKICAgICAgICAgRE9NV3JhcHBlcldvcmxkKiB3
b3JsZCgpIHsgcmV0dXJuIG1fd29ybGQuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuY3BwCmluZGV4IDFkZGYxMzYwNDNkODEwM2U5
ZjlkMzEyYjJjYjI4NDI2MDRhMGQwMWYuLmJlNzVhZjBiZTdjYWU5MTQ2NjFjMmRlZWQ0ZjRiMjVk
ZDBkN2NmZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNv
bnN0cnVjdG9yLmNwcApAQCAtMzUsNyArMzUsNyBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxM
KEpTSW1hZ2VDb25zdHJ1Y3Rvcik7CiBjb25zdCBDbGFzc0luZm8gSlNJbWFnZUNvbnN0cnVjdG9y
OjpzX2luZm8gPSB7ICJJbWFnZUNvbnN0cnVjdG9yIiwgJkRPTUNvbnN0cnVjdG9yV2l0aERvY3Vt
ZW50OjpzX2luZm8sIDAsIDAgfTsKIAogSlNJbWFnZUNvbnN0cnVjdG9yOjpKU0ltYWdlQ29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQot
ICAgIDogRE9NQ29uc3RydWN0b3JXaXRoRG9jdW1lbnQoSlNJbWFnZUNvbnN0cnVjdG9yOjpjcmVh
dGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVj
dCkKKyAgICA6IERPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50KEpTSW1hZ2VDb25zdHJ1Y3Rvcjo6
Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3Qt
Pm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQogewogICAgIEFTU0VSVChpbmhlcml0
cygmc19pbmZvKSk7CiAgICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJv
cGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNIVE1MSW1hZ2VFbGVtZW50UHJvdG90eXBlOjpzZWxm
KGV4ZWMsIGdsb2JhbE9iamVjdCksIE5vbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuaAppbmRleCA3MzI5M2M3YmY5NDdkMjYxNGQ0MTdlZmRm
Zjc5NGZjMWIwZGM1OTQzLi42NTRlMjIzZmE4ZGI1YmZhYWFhY2VkZmVkMzVjZjcwMmE3OTkzYTEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3Iu
aApAQCAtMjksOSArMjksOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHVibGljOgogICAg
ICAgICBKU0ltYWdlQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVj
dCopOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVT
dHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpT
Qzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOworICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0
YSwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAg
c3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcAppbmRleCBiNTU5MmQ4YzdkMGVhM2Ex
OGYzZjM2OTc0YmYwMTY4N2Y1ZjJiOGRlLi5hOTJlZDQ3MGM0OTI5YTcwM2QxMThjZmEyYTdjYTBi
OWMxZjk0MTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdl
RGF0YUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZURh
dGFDdXN0b20uY3BwCkBAIC00OCw3ICs0OCw3IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4
ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEltYWdlRGF0YSogaW1hZ2VECiAg
ICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0
LCBJbWFnZURhdGEsIGltYWdlRGF0YSk7CiAgICAgSWRlbnRpZmllciBkYXRhTmFtZShleGVjLCAi
ZGF0YSIpOwogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gY3BhQ2xhc3NJbmZvID0geyAiQ2Fu
dmFzUGl4ZWxBcnJheSIsICZKU0J5dGVBcnJheTo6QmFzZTo6c19pbmZvLCAwLCAwIH07Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8U3RydWN0dXJlPiwgY3BhU3RydWN0dXJlLCAoSlNC
eXRlQXJyYXk6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSwgJmNwYUNsYXNzSW5mbykpKTsKKyAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKFJlZlB0cjxTdHJ1Y3R1cmU+LCBjcGFTdHJ1Y3R1cmUsIChK
U0J5dGVBcnJheTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNOdWxsKCks
ICZjcGFDbGFzc0luZm8pKSk7CiAgICAgd3JhcHBlci0+cHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERh
dGEoKSwgZGF0YU5hbWUsIG5ldyAoZXhlYykgSlNCeXRlQXJyYXkoZXhlYywgY3BhU3RydWN0dXJl
LCBpbWFnZURhdGEtPmRhdGEoKS0+ZGF0YSgpKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKICAg
ICBleGVjLT5oZWFwKCktPnJlcG9ydEV4dHJhTWVtb3J5Q29zdChpbWFnZURhdGEtPmRhdGEoKS0+
bGVuZ3RoKCkpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNPcHRpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09w
dGlvbkNvbnN0cnVjdG9yLmNwcAppbmRleCBhM2M5YWFiNGQyM2U3YTJlMmI3YjFkYzVjZDE4MDY2
ZjBlMWZlNGM3Li41OWUwYjZhM2U4YmE5NDZhODQ2MDQ5YjMxMzk2MTM4MzE4NzBjZjJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmNw
cApAQCAtMzYsNyArMzYsNyBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTT3B0aW9uQ29u
c3RydWN0b3IpOwogY29uc3QgQ2xhc3NJbmZvIEpTT3B0aW9uQ29uc3RydWN0b3I6OnNfaW5mbyA9
IHsgIk9wdGlvbkNvbnN0cnVjdG9yIiwgJkRPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50OjpzX2lu
Zm8sIDAsIDAgfTsKIAogSlNPcHRpb25Db25zdHJ1Y3Rvcjo6SlNPcHRpb25Db25zdHJ1Y3RvcihF
eGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi0gICAgOiBE
T01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudChKU09wdGlvbkNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1
Y3R1cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVjdCkKKyAg
ICA6IERPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50KEpTT3B0aW9uQ29uc3RydWN0b3I6OmNyZWF0
ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5vYmpl
Y3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVjdCkKIHsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNf
aW5mbykpOwogICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5
TmFtZXMoKS5wcm90b3R5cGUsIEpTSFRNTE9wdGlvbkVsZW1lbnRQcm90b3R5cGU6OnNlbGYoZXhl
YywgZ2xvYmFsT2JqZWN0KSwgTm9uZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU09wdGlvbkNvbnN0cnVjdG9yLmgKaW5kZXggMDM2MzNjNzkyZTNlMjFiYTFjMTk1YmY3MzNi
Y2FiNzlmOWEyNzU4OC4uOGExODAwNzFjYWYwNTZjY2IyYTJmYzkwYmNlMWU4MTBiZGQ0NWI5NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3Iu
aApAQCAtMzAsOSArMzAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHVibGljOgogICAg
ICAgICBKU09wdGlvbkNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmpl
Y3QqKTsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRl
U3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhK
U0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsKKyAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgICAg
IHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmgKaW5kZXggOTk5NDhiNzNhMDM2MjUz
MjBjMDI0MTc0YzI1ZTU3NjU2YWY3YjdkZS4uYjljMjM0YTJiZmJiZDgyYTA1ZjU4MjE0MWRhYzEx
MjBhYTAyNzI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3Jr
ZXJDb250ZXh0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2Vy
Q29udGV4dEJhc2UuaApAQCAtNDksOSArNDksOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIFdvcmtlckNvbnRleHQqIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwuZ2V0KCk7IH0K
ICAgICAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3Q7CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1
cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6
VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0K
IAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
b3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dv
cmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGQzOTIyODE2OWJmOGRiZjIwZjVhYjQyM2Jj
MDUyNWM5M2UxZDc5OWMuLjY3YjA0NDFhYTIyYTRmNTA0YmFmYjUwYWYyYzMyMmYxYWEzNzU2MTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENv
bnRyb2xsZXIuY3BwCkBAIC03MywxMyArNzMsMTMgQEAgdm9pZCBXb3JrZXJTY3JpcHRDb250cm9s
bGVyOjppbml0U2NyaXB0KCkKICAgICAvLyBFeHBsaWNpdGx5IHByb3RlY3QgdGhlIGdsb2JhbCBv
YmplY3QncyBwcm90b3R5cGUgc28gaXQgaXNuJ3QgY29sbGVjdGVkCiAgICAgLy8gd2hlbiB3ZSBh
bGxvY2F0ZSB0aGUgZ2xvYmFsIG9iamVjdC4gKE9uY2UgdGhlIGdsb2JhbCBvYmplY3QgaXMgZnVs
bHkKICAgICAvLyBjb25zdHJ1Y3RlZCwgaXQgY2FuIG1hcmsgaXRzIG93biBwcm90b3R5cGUuKQot
ICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHdvcmtlckNvbnRleHRQcm90b3R5cGVTdHJ1Y3R1cmUgPSBK
U1dvcmtlckNvbnRleHRQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSk7CisgICAg
UmVmUHRyPFN0cnVjdHVyZT4gd29ya2VyQ29udGV4dFByb3RvdHlwZVN0cnVjdHVyZSA9IEpTV29y
a2VyQ29udGV4dFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKCptX2dsb2JhbERhdGEsIGpzTnVs
bCgpKTsKICAgICBHbG9iYWw8SlNXb3JrZXJDb250ZXh0UHJvdG90eXBlPiB3b3JrZXJDb250ZXh0
UHJvdG90eXBlKCptX2dsb2JhbERhdGEsIG5ldyAobV9nbG9iYWxEYXRhLmdldCgpKSBKU1dvcmtl
ckNvbnRleHRQcm90b3R5cGUoMCwgd29ya2VyQ29udGV4dFByb3RvdHlwZVN0cnVjdHVyZS5yZWxl
YXNlKCkpKTsKIAogICAgIGlmIChtX3dvcmtlckNvbnRleHQtPmlzRGVkaWNhdGVkV29ya2VyQ29u
dGV4dCgpKSB7Ci0gICAgICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IGRlZGljYXRlZENvbnRleHRQcm90
b3R5cGVTdHJ1Y3R1cmUgPSBKU0RlZGljYXRlZFdvcmtlckNvbnRleHRQcm90b3R5cGU6OmNyZWF0
ZVN0cnVjdHVyZSh3b3JrZXJDb250ZXh0UHJvdG90eXBlLmdldCgpKTsKKyAgICAgICAgUmVmUHRy
PFN0cnVjdHVyZT4gZGVkaWNhdGVkQ29udGV4dFByb3RvdHlwZVN0cnVjdHVyZSA9IEpTRGVkaWNh
dGVkV29ya2VyQ29udGV4dFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKCptX2dsb2JhbERhdGEs
IHdvcmtlckNvbnRleHRQcm90b3R5cGUuZ2V0KCkpOwogICAgICAgICBHbG9iYWw8SlNEZWRpY2F0
ZWRXb3JrZXJDb250ZXh0UHJvdG90eXBlPiBkZWRpY2F0ZWRDb250ZXh0UHJvdG90eXBlKCptX2ds
b2JhbERhdGEsIG5ldyAobV9nbG9iYWxEYXRhLmdldCgpKSBKU0RlZGljYXRlZFdvcmtlckNvbnRl
eHRQcm90b3R5cGUoMCwgZGVkaWNhdGVkQ29udGV4dFByb3RvdHlwZVN0cnVjdHVyZS5yZWxlYXNl
KCkpKTsKLSAgICAgICAgUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlID0gSlNEZWRpY2F0ZWRX
b3JrZXJDb250ZXh0OjpjcmVhdGVTdHJ1Y3R1cmUoZGVkaWNhdGVkQ29udGV4dFByb3RvdHlwZS5n
ZXQoKSk7CisgICAgICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSA9IEpTRGVkaWNhdGVk
V29ya2VyQ29udGV4dDo6Y3JlYXRlU3RydWN0dXJlKCptX2dsb2JhbERhdGEsIGRlZGljYXRlZENv
bnRleHRQcm90b3R5cGUuZ2V0KCkpOwogCiAgICAgICAgIG1fd29ya2VyQ29udGV4dFdyYXBwZXIu
c2V0KCptX2dsb2JhbERhdGEsIG5ldyAobV9nbG9iYWxEYXRhLmdldCgpKSBKU0RlZGljYXRlZFdv
cmtlckNvbnRleHQoc3RydWN0dXJlLnJlbGVhc2UoKSwgbV93b3JrZXJDb250ZXh0LT50b0RlZGlj
YXRlZFdvcmtlckNvbnRleHQoKSkpOwogICAgICAgICB3b3JrZXJDb250ZXh0UHJvdG90eXBlLT5w
dXRBbm9ueW1vdXNWYWx1ZSgqbV9nbG9iYWxEYXRhLCAwLCBtX3dvcmtlckNvbnRleHRXcmFwcGVy
LmdldCgpKTsKQEAgLTg3LDkgKzg3LDkgQEAgdm9pZCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpp
bml0U2NyaXB0KCkKICNpZiBFTkFCTEUoU0hBUkVEX1dPUktFUlMpCiAgICAgfSBlbHNlIHsKICAg
ICAgICAgQVNTRVJUKG1fd29ya2VyQ29udGV4dC0+aXNTaGFyZWRXb3JrZXJDb250ZXh0KCkpOwot
ICAgICAgICBSZWZQdHI8U3RydWN0dXJlPiBzaGFyZWRDb250ZXh0UHJvdG90eXBlU3RydWN0dXJl
ID0gSlNTaGFyZWRXb3JrZXJDb250ZXh0UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUod29ya2Vy
Q29udGV4dFByb3RvdHlwZS5nZXQoKSk7CisgICAgICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHNoYXJl
ZENvbnRleHRQcm90b3R5cGVTdHJ1Y3R1cmUgPSBKU1NoYXJlZFdvcmtlckNvbnRleHRQcm90b3R5
cGU6OmNyZWF0ZVN0cnVjdHVyZSgqbV9nbG9iYWxEYXRhLCB3b3JrZXJDb250ZXh0UHJvdG90eXBl
LmdldCgpKTsKICAgICAgICAgR2xvYmFsPEpTU2hhcmVkV29ya2VyQ29udGV4dFByb3RvdHlwZT4g
c2hhcmVkQ29udGV4dFByb3RvdHlwZSgqbV9nbG9iYWxEYXRhLCBuZXcgKG1fZ2xvYmFsRGF0YS5n
ZXQoKSkgSlNTaGFyZWRXb3JrZXJDb250ZXh0UHJvdG90eXBlKDAsIHNoYXJlZENvbnRleHRQcm90
b3R5cGVTdHJ1Y3R1cmUucmVsZWFzZSgpKSk7Ci0gICAgICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHN0
cnVjdHVyZSA9IEpTU2hhcmVkV29ya2VyQ29udGV4dDo6Y3JlYXRlU3RydWN0dXJlKHNoYXJlZENv
bnRleHRQcm90b3R5cGUuZ2V0KCkpOworICAgICAgICBSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1
cmUgPSBKU1NoYXJlZFdvcmtlckNvbnRleHQ6OmNyZWF0ZVN0cnVjdHVyZSgqbV9nbG9iYWxEYXRh
LCBzaGFyZWRDb250ZXh0UHJvdG90eXBlLmdldCgpKTsKIAogICAgICAgICBtX3dvcmtlckNvbnRl
eHRXcmFwcGVyLnNldCgqbV9nbG9iYWxEYXRhLCBuZXcgKG1fZ2xvYmFsRGF0YS5nZXQoKSkgSlNT
aGFyZWRXb3JrZXJDb250ZXh0KHN0cnVjdHVyZS5yZWxlYXNlKCksIG1fd29ya2VyQ29udGV4dC0+
dG9TaGFyZWRXb3JrZXJDb250ZXh0KCkpKTsKICAgICAgICAgd29ya2VyQ29udGV4dFByb3RvdHlw
ZS0+cHV0QW5vbnltb3VzVmFsdWUoKm1fZ2xvYmFsRGF0YSwgMCwgbV93b3JrZXJDb250ZXh0V3Jh
cHBlci5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCmluZGV4IGNiNTFjOGEyN2Q4MTJlZTM3MzRkMGRiMGRjMDQxMzYzNjVi
MWE1ZjEuLjEyYjQ3N2I1ODk0NWM3NTcyMDNmNTdjYTI1NWQwMmU4NzU2YWJjN2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBA
IC03NDYsOSArNzQ2LDkgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgICRzdHJ1Y3R1cmVG
bGFnc3siSlNDOjpOZWVkc1RoaXNDb252ZXJzaW9uIn0gPSAxOwogICAgIH0KICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LAotICAgICAgICAiICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSlcbiIgLgorICAgICAg
ICAiICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpXG4i
IC4KICAgICAgICAgIiAgICB7XG4iIC4KLSAgICAgICAgIiAgICAgICAgcmV0dXJuIEpTQzo6U3Ry
dWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pO1xuIiAuCisgICAg
ICAgICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHBy
b3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTtcbiIgLgogICAgICAgICAiICAgIH1cblxuIik7
CiAKICAgICAjIG1hcmtDaGlsZHJlbiBmdW5jdGlvbgpAQCAtOTU4LDkgKzk1OCw5IEBAIHN1YiBH
ZW5lcmF0ZUhlYWRlcgogICAgICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6T3ZlcnJpZGVzTWFy
a0NoaWxkcmVuIn0gPSAxOwogICAgIH0KICAgICBwdXNoKEBoZWFkZXJDb250ZW50LAotICAgICAg
ICAiICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNDOjpKU1ZhbHVlIHByb3RvdHlwZSlcbiIgLgorICAgICAgICAiICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpXG4iIC4KICAgICAgICAgIiAgICB7XG4i
IC4KLSAgICAgICAgIiAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90
eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pO1xuIiAuCisgICAgICAgICIgICAgICAgIHJldHVybiBK
U0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5m
byhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAm
c19pbmZvKTtcbiIgLgogICAgICAgICAiICAgIH1cbiIpOwogICAgIGlmICgkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5nUHJvdG90eXBlUHV0RnVuY3Rpb24ifSkgewog
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1Zh
bHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7CkBAIC0xNDQyLDkgKzE0NDIsOSBAQCBz
dWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpT
T2JqZWN0KiAke2NsYXNzTmFtZX06OmNyZWF0ZVByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ7XG4iKTsKICAgICAgICAgaWYgKCRoYXNQYXJlbnQgJiYgJHBhcmVudENsYXNzTmFtZSBu
ZSAiSlNDOjpET01Ob2RlRmlsdGVyIikgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgcmV0dXJuIG5ldyAoZXhlYykgJHtjbGFzc05hbWV9UHJvdG90eXBlKGdsb2JhbE9iamVj
dCwgJHtjbGFzc05hbWV9UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoJHtwYXJlbnRDbGFzc05h
bWV9UHJvdG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCkpKTtcbiIpOworICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIG5ldyAoZXhlYykgJHtjbGFzc05hbWV9
UHJvdG90eXBlKGdsb2JhbE9iamVjdCwgJHtjbGFzc05hbWV9UHJvdG90eXBlOjpjcmVhdGVTdHJ1
Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCAke3BhcmVudENsYXNzTmFtZX1Qcm90b3R5cGU6OnNl
bGYoZXhlYywgZ2xvYmFsT2JqZWN0KSkpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gbmV3IChleGVjKSAke2NsYXNzTmFt
ZX1Qcm90b3R5cGUoZ2xvYmFsT2JqZWN0LCAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OmNyZWF0ZVN0
cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSk7XG4iKTsKKyAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBuZXcgKGV4ZWMpICR7Y2xhc3NOYW1l
fVByb3RvdHlwZShnbG9iYWxPYmplY3QsICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6Y3JlYXRlU3Ry
dWN0dXJlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QtPm9iamVjdFBy
b3RvdHlwZSgpKSk7XG4iKTsKICAgICAgICAgfQogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
In1cblxuIik7CiAgICAgfQpAQCAtMjg3Myw5ICsyODczLDkgQEAgc3ViIEdlbmVyYXRlQ29uc3Ry
dWN0b3JEZWNsYXJhdGlvbgogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTtcbiIpOwogICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvO1xuIik7
CiAKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKVxuIik7Cisg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6
SlNWYWx1ZSBwcm90b3R5cGUpXG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAge1xu
Iik7Ci0gICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1
cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7XG4iKTsKKyAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTtcbiIpOwogICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIiAgICB9XG4iKTsKIAogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgInBy
b3RlY3RlZDpcbiIpOwpAQCAtMjkwNyw3ICsyOTA3LDcgQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0
b3JEZWZpbml0aW9uCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiY29uc3QgQ2xhc3NJbmZvICR7
Y29uc3RydWN0b3JDbGFzc05hbWV9OjpzX2luZm8gPSB7IFwiJHt2aXNpYmxlQ2xhc3NOYW1lfUNv
bnN0cnVjdG9yXCIsICZET01Db25zdHJ1Y3Rvck9iamVjdDo6c19pbmZvLCAmJHtjb25zdHJ1Y3Rv
ckNsYXNzTmFtZX1UYWJsZSwgMCB9O1xuXG4iKTsKIAogICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiR7Y29uc3RydWN0b3JDbGFzc05hbWV9Ojoke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfShFeGVjU3Rh
dGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpXG4iKTsKLSAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdCgke2NvbnN0cnVjdG9y
Q2xhc3NOYW1lfTo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBl
KCkpLCBnbG9iYWxPYmplY3QpXG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgOiBE
T01Db25zdHJ1Y3Rvck9iamVjdCgke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6Y3JlYXRlU3RydWN0
dXJlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QtPm9iamVjdFByb3Rv
dHlwZSgpKSwgZ2xvYmFsT2JqZWN0KVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xu
Iik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZv
KSk7XG4iKTsKICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5oCmluZGV4IDI2N2Q3MWU0NzI4MjU4ODUz
ZjMxODUwOWQyMzM1NjVhYmQ0MmI3MmQuLjg1ODE1ZmJkNDY5ODQ1YWZlNjUwNGRmNmY2Yjk5YmU3
NGI3MmY2NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50aW1lT2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvQ1J1bnRpbWVPYmplY3QuaApAQCAt
NDQsOSArNDQsOSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5m
bzsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpT
VmFsdWUgcHJvdG90eXBlKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRl
U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAg
ICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5m
byk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5
cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENv
dW50LCAmc19pbmZvKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvYy9jX2luc3RhbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFu
Y2UuY3BwCmluZGV4IDI3YWZmZWIxN2M5NmQ1YjJlNzYxNDE4NDIzMWU5NjNlNzllM2E3OWIuLjIx
ZmFlNGYxZmNiN2U0Zjk4MzE5NmQ4OGI0M2I5MTg1ZTA1YzFlMTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9jL2NfaW5zdGFuY2UuY3BwCkBAIC0xMjAsOSArMTIwLDkgQEAgcHVibGljOgogICAgICAg
ICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAK
ICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuY3BwCmluZGV4IDk1ZDUxODAxOTQ5N2Rl
NDI5YmZiOGNlNzY4NjNkNTg1NmY5ZTFjYzMuLmIzMTE0MWU0YjkxYmI4MDQ3Y2Q0NDM2ZWFiOWIy
NGY4MzVhYjQxNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0ph
dmFJbnN0YW5jZUpTQy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2
YUluc3RhbmNlSlNDLmNwcApAQCAtMTI1LDkgKzEyNSw5IEBAIHB1YmxpYzoKICAgICAgICAgQVNT
RVJUKGluaGVyaXRzKCZzX2luZm8pKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAg
c3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvam5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuaAppbmRleCAxMmE4NWFlNGRlYTUxODdkMzA5
MTFmNDFkNGUwNDkxNDNiZDJlNDgwLi4wM2YxMTZmYWRmNWRhNDBlOGQ4OGY3NjhkMzIwZDE2NjNi
NDJkMjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhUnVu
dGltZU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50
aW1lT2JqZWN0LmgKQEAgLTQyLDkgKzQyLDkgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0
IENsYXNzSW5mbyBzX2luZm87CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFs
dWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNT
bG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0LmgKaW5kZXggZTlmYTEwZGMwNThk
MDdkODJjYmYyZWQ4ZjQxNDlhM2Y1OGNmNTVjZi4uYjI5YTMzMzk5OTViYjk1OWNiZWFlYTM0OWUz
ZmMyZDliNzFmOWE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvT2Jq
Q1J1bnRpbWVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9PYmpDUnVu
dGltZU9iamVjdC5oCkBAIC00Miw5ICs0Miw5IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25z
dCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBj
cmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1Zh
bHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3Vz
U2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tCmluZGV4IGUwYjE4ZjE0MjU1MWU3ZTgx
ZWVhMjkwMTA2ZGQ2NzgyYTlmYmJjNTcuLjRmOTNjZmE2YWY5NzE2ZGRkYjRmZDFkZWUzYzFjODQ5
ZjU1M2Y5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5z
dGFuY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5t
bQpAQCAtMTg0LDkgKzE4NCw5IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKGluaGVyaXRzKCZz
X2luZm8pKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0
ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1
Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUg
cHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3Rv
dHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90
Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0IENs
YXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9v
YmpjX3J1bnRpbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5o
CmluZGV4IDFjZWU4NWJjMjJjMWZjMDA1YThkZjcyMTk3YmM3ZjAwNjI4ZDFjNDEuLjRlZjBhZmQ1
NzM5N2VhNWY3NWZkNTgzNmEzNjc0NjA0NWJhMzcyODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9vYmpjL29iamNfcnVudGltZS5oCkBAIC0xMDMsOSArMTAzLDkgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKTsKICAgICB9CiAKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3Rv
dHlwZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5m
byk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3F0L3F0X2luc3RhbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9pbnN0YW5j
ZS5jcHAKaW5kZXggN2FmNzUyZDRmMDdiYjkxNzU5MDc1YTA1YjQxY2FkMjIyY2U3ZmFlYS4uOTFh
ZTQwZjFkMGIwMzE5MDAyNDViNDQ4OTFjMmMxZDgzMTZiMTljNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwCkBAIC01OSw5ICs1OSw5IEBAIHB1YmxpYzoKICAgICAg
ICAgICAgIGluc3RhbmNlLT5tYXJrQWdncmVnYXRlKG1hcmtTdGFjayk7CiAgICAgfQogCi0gICAg
c3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90
b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5
cGUsICBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJ
bmZvKE9iamVjdFR5cGUsICBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcXQvcXRfcGl4bWFwcnVudGltZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQv
cXRfcGl4bWFwcnVudGltZS5jcHAKaW5kZXggNTM0ZTI4ZTI1OWI0ODZhN2MzOTNmZDU1MWEyNmNm
MTk5MTZkMTQ1OC4uZjVlMmIxMmJkMzExNTVkZTdiY2VmOGZmYmMyZDc3M2Q4NzZmNGUzYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3BpeG1hcHJ1bnRpbWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9waXhtYXBydW50aW1lLmNwcApAQCAtMTUw
LDkgKzE1MCw5IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZv
OwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNW
YWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVT
dHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsICBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5m
byk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5
cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsICBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cXQvcXRfcnVudGltZS5jcHAKaW5kZXggZWQzZjg0MTM3NmZlZDM0ZWViMzNmYjIyM2FhZGQyZjUx
M2JlOWUwZC4uZmQzM2I4OTdkYTBmNmQ0NGU1N2RiMDJjZDExZTNhODAxNmU0ZTRlNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcApAQCAtODkwLDcgKzg5MCw3IEBAIEpT
VmFsdWUgY29udmVydFFWYXJpYW50VG9WYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8
Um9vdE9iamVjdD4gcm9vdCwgY29uCiAgICAgICAgIFFCeXRlQXJyYXkgcXRCeXRlQXJyYXkgPSB2
YXJpYW50LnZhbHVlPFFCeXRlQXJyYXk+KCk7CiAgICAgICAgIFdURjo6UmVmUHRyPFdURjo6Qnl0
ZUFycmF5PiB3dGZCeXRlQXJyYXkgPSBXVEY6OkJ5dGVBcnJheTo6Y3JlYXRlKHF0Qnl0ZUFycmF5
Lmxlbmd0aCgpKTsKICAgICAgICAgbWVtY3B5KHd0ZkJ5dGVBcnJheS0+ZGF0YSgpLCBxdEJ5dGVB
cnJheS5jb25zdERhdGEoKSwgcXRCeXRlQXJyYXkubGVuZ3RoKCkpOwotICAgICAgICByZXR1cm4g
bmV3IChleGVjKSBKU0M6OkpTQnl0ZUFycmF5KGV4ZWMsIEpTQzo6SlNCeXRlQXJyYXk6OmNyZWF0
ZVN0cnVjdHVyZShqc051bGwoKSksIHd0ZkJ5dGVBcnJheS5nZXQoKSk7CisgICAgICAgIHJldHVy
biBuZXcgKGV4ZWMpIEpTQzo6SlNCeXRlQXJyYXkoZXhlYywgSlNDOjpKU0J5dGVBcnJheTo6Y3Jl
YXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNOdWxsKCkpLCB3dGZCeXRlQXJyYXku
Z2V0KCkpOwogICAgIH0KIAogICAgIGlmICh0eXBlID09IFFNZXRhVHlwZTo6UU9iamVjdFN0YXIg
fHwgdHlwZSA9PSBRTWV0YVR5cGU6OlFXaWRnZXRTdGFyKSB7CkBAIC0xODI4LDcgKzE4MjgsNyBA
QCB2b2lkIFF0Q29ubmVjdGlvbk9iamVjdDo6ZXhlY3V0ZSh2b2lkICoqYXJndikKICAgICAgICAg
ICAgICAgICAgICAgICAgIGZpbXAgPSBzdGF0aWNfY2FzdDxKU0Z1bmN0aW9uKj4obV9mdW5jT2Jq
ZWN0LmdldCgpKTsKIAogICAgICAgICAgICAgICAgICAgICAgICAgSlNPYmplY3QqIHF0X3NlbmRl
ciA9IFF0SW5zdGFuY2U6OmdldFF0SW5zdGFuY2Uoc2VuZGVyKCksIHJvLCBRU2NyaXB0RW5naW5l
OjpRdE93bmVyc2hpcCktPmNyZWF0ZVJ1bnRpbWVPYmplY3QoZXhlYyk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBKU09iamVjdCogd3JhcHBlciA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGV4ZWMs
IGNyZWF0ZUVtcHR5T2JqZWN0U3RydWN0dXJlKGpzTnVsbCgpKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBKU09iamVjdCogd3JhcHBlciA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGV4ZWMsIGNy
ZWF0ZUVtcHR5T2JqZWN0U3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNOdWxsKCkpKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwogICAgICAgICAg
ICAgICAgICAgICAgICAgd3JhcHBlci0+cHV0KGV4ZWMsIElkZW50aWZpZXIoZXhlYywgIl9fcXRf
c2VuZGVyX18iKSwgcXRfc2VuZGVyLCBzbG90KTsKICAgICAgICAgICAgICAgICAgICAgICAgIG9s
ZHNjID0gZmltcC0+c2NvcGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9x
dC9xdF9ydW50aW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oCmlu
ZGV4IGI4NmNjYmUyYzM4M2QxYmZkMzExM2RlNzM3OTgwMDkyMDJmMTRjY2YuLjg1YjM0YjhjYzVl
MGUwZWJmNmY1MGQ1NTBlY2QxZjRiODFkOGRjYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9xdC9xdF9ydW50aW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0
X3J1bnRpbWUuaApAQCAtMTUzLDkgKzE1Myw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGds
b2JhbE9iamVjdC0+ZnVuY3Rpb25Qcm90b3R5cGUoKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0
VHlwZSwgIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAg
ICB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX2FycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCmluZGV4
IGJkMWRhMzIxNzE2N2EwMTk3ZGI2NjZlNzg1MmRiYTA5NTY1ODk4MDYuLjk1NTU1NDUyZGVmOTZh
ZjA2Y2E2OTVkZjVkYjA4ZDA3YThhNmMwNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX2FycmF5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
YXJyYXkuaApAQCAtNTgsOSArNTgsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBnbG9iYWxP
YmplY3QtPmFycmF5UHJvdG90eXBlKCk7CiAgICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgIH0KIAogcHJv
dGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9k
LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAppbmRleCBjMGM5ZjE2
MzQwNGM1YTk4MmRjMDllZmQzZTBkMDNkNWI4ZWY3MzQ3Li45ZGY3OTZlYjA3MTViZjMyYjM0ZDIy
M2ZiNTJiM2M4MjYyYmM2YmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9tZXRob2QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2Qu
aApAQCAtNDUsOSArNDUsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBnbG9iYWxPYmplY3Qt
PmZ1bmN0aW9uUHJvdG90eXBlKCk7CiAgICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgIH0KIAogcHJvdGVj
dGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAppbmRleCAwZGVjZDE3ODY0
ODQzOTA4YzY4ZDU2ZDYzZjQ5MDEzMTMyOGFhNDAxLi5iYjZkMDUxMGYyOGQ0M2RiNTc1MTg1MDll
MTBiZDEyYTQzZDM0YWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9vYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaApA
QCAtNjEsOSArNjEsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QtPm9i
amVjdFByb3RvdHlwZSgpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVy
ZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255
bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKIHByb3RlY3RlZDoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwppbmRleCBkNzc1NzcyYjVlZjlmOTZiNDZhYzRjYWQzYTVhNzgzZjYyNGZk
NmNjLi5mMTczNWI4NmI0MzQ2ZjY2M2I1ZWVmYzcxNTBmZDQ2NzY3MDZhZGJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDMtMTUgIE9saXZlciBIdW50ICA8b2xpdmVy
QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBNYWtlIFN0cnVjdHVyZSBjcmVhdGlvbiByZXF1aXJlIGEgSlNHbG9iYWxEYXRhCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjQzOAorCisgICAg
ICAgIE1lY2hhbmljYWwgY2hhbmdlIHRvIG1ha2UgYWxsIFN0cnVjdHVyZSBjcmVhdGlvbiB1c2Ug
YSBKU0dsb2JhbERhdGEmCisKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNl
Lm1tOgorICAgICAgICAoV2ViS2l0OjpQcm94eVJ1bnRpbWVNZXRob2Q6OmNyZWF0ZVN0cnVjdHVy
ZSk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0Lmg6CisgICAg
ICAgIChXZWJLaXQ6OlByb3h5UnVudGltZU9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKwogMjAx
MS0wMy0xNSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBG
b3Jnb3QgdG8gc2F2ZSBhIG1vZGlmaWNhdGlvbiB0byB0aGlzIGZpbGUgd2hlbiBjb21taXR0aW5n
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0
YW5jZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2Uu
bW0KaW5kZXggOGE0MTNkNDI4YzI3NjU5ODhjODc2OGUzYzdiZmU5MzA0MTcyYTgwNy4uZjI2Yjg1
ZGNlYTJhMzlmYTUzOWYwODg2MzQ1ZjVhNTE4MjAyNDMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tCkBAIC0xODcsOSArMTg3LDkg
QEAgcHVibGljOgogICAgICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIH0KIAot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUg
cHJvdG90eXBlKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0
dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewot
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7Cisg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5
cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAm
c19pbmZvKTsKICAgICB9CiAKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9i
amVjdC5oIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2Jq
ZWN0LmgKaW5kZXggZmM3Nzg5MDJhZmU0Y2EwNDUyMjc5Mjk0NzBhZmViODZkYTgxZjcwZC4uYTA3
Yzg2Yzg4OGU3N2JhM2JjMTY0YzRkYWMwNzdlODJmMjA3ZjNiNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0LmgKQEAgLTQx
LDkgKzQxLDkgQEAgcHVibGljOgogCiAgICAgUHJveHlJbnN0YW5jZSogZ2V0SW50ZXJuYWxQcm94
eUluc3RhbmNlKCkgY29uc3Q7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVy
ZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBh
c3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6
Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZv
KTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJv
dG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBB
bm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgIH0KIAogICAgIHN0YXRpYyBjb25zdCBK
U0M6OkNsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTc0ZjkzYjIwYjMxOGNkODVjZDE2
ZTliOTczNzNjMDlmZTdiNWU0NS4uYzkzMDE1YmVlMWRhNDVkNjk1OTUwOWUzYTBkM2M0OTU2ZTVj
ODcxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTAzLTE1ICBPbGl2ZXIgSHVu
dCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTWFrZSBTdHJ1Y3R1cmUgY3JlYXRpb24gcmVxdWlyZSBhIEpTR2xvYmFs
RGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY0
MzgKKworICAgICAgICBNZWNoYW5pY2FsIGNoYW5nZSB0byBtYWtlIGFsbCBTdHJ1Y3R1cmUgY3Jl
YXRpb24gdXNlIGEgSlNHbG9iYWxEYXRhJi4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QTWV0aG9kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SlNOUE1ldGhvZDo6
SlNOUE1ldGhvZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBN
ZXRob2QuaDoKKyAgICAgICAgKFdlYktpdDo6SlNOUE1ldGhvZDo6Y3JlYXRlU3RydWN0dXJlKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkpTTlBPYmplY3Q6OkpTTlBPYmplY3QpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0Lmg6CisgICAgICAgIChXZWJLaXQ6OkpT
TlBPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisKIDIwMTEtMDMtMTYgIEJyYWR5IEVpZHNvbiAg
PGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNO
UE1ldGhvZC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
SlNOUE1ldGhvZC5jcHAKaW5kZXggZmM3MzUxOTA4NjEwNTFiODlhYjg4MmJkMTFlN2IxZGM4NWIz
NGRiYi4uOGIzNmQxZGFlZjgwNWZmMzc3YzMxZWJiMDA4YzU4M2U0MzkwZGU2NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
TWV0aG9kLmNwcApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNvbnN0IENs
YXNzSW5mbyBKU05QTWV0aG9kOjpzX2luZm8gPSB7ICJOUE1ldGhvZCIsICZJbnRlcm5hbEZ1bmN0
aW9uOjpzX2luZm8sIDAsIDAgfTsKIAogSlNOUE1ldGhvZDo6SlNOUE1ldGhvZChFeGVjU3RhdGUq
IGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IElkZW50aWZpZXImIG5h
bWUsIE5QSWRlbnRpZmllciBucElkZW50aWZpZXIpCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKCZl
eGVjLT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCwgY3JlYXRlU3RydWN0dXJlKGdsb2JhbE9i
amVjdC0+ZnVuY3Rpb25Qcm90b3R5cGUoKSksIG5hbWUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9u
KCZleGVjLT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCwgY3JlYXRlU3RydWN0dXJlKGV4ZWMt
Pmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5mdW5jdGlvblByb3RvdHlwZSgpKSwgbmFtZSkK
ICAgICAsIG1fbnBJZGVudGlmaWVyKG5wSWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoaW5oZXJp
dHMoJnNfaW5mbykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmgKaW5kZXggYTkxM2E5OWQwNWFhNDhiZDI5ZWFhNzc0
NmMzNzA5MzMzZTRjYjcwOC4uZjBjMjQyNGFkYmZiMWFiYTM3NzRiMjliZmNhYTQ2MTkzYWI4MzRl
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L0pTTlBNZXRob2QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvSlNOUE1ldGhvZC5oCkBAIC00Miw5ICs0Miw5IEBAIHB1YmxpYzoKICAgICBOUElkZW50
aWZpZXIgbnBJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9ucElkZW50aWZpZXI7IH0KIAog
cHJpdmF0ZTogICAgCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0
ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gSlND
OjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAg
ICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwg
SlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3Vz
U2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIEpTQzo6Q2FsbFR5cGUg
Z2V0Q2FsbERhdGEoSlNDOjpDYWxsRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCmluZGV4IDI3MjRm
MGQ2NTljODA0Y2M1ZmE3NzdlNzg1YjkyZGNhYjhhNzQxZmYuLjkzZjlmYzViYjg3MDk0NTVlNjA0
MDFlNmI5ZmNmMzRmYjZjMDRhZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKQEAgLTUwLDcgKzUwLDcg
QEAgc3RhdGljIE5QSWRlbnRpZmllciBucElkZW50aWZpZXJGcm9tSWRlbnRpZmllcihjb25zdCBJ
ZGVudGlmaWVyJiBpZGVudGlmaWVyKQogY29uc3QgQ2xhc3NJbmZvIEpTTlBPYmplY3Q6OnNfaW5m
byA9IHsgIk5QT2JqZWN0IiwgJkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6c19pbmZvLCAwLCAw
IH07CiAKIEpTTlBPYmplY3Q6OkpTTlBPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgTlBSdW50aW1lT2JqZWN0TWFwKiBvYmplY3RNYXAsIE5QT2JqZWN0KiBucE9iamVjdCkKLSAg
ICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIGNyZWF0ZVN0cnVjdHVy
ZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSkKKyAgICA6IEpTT2JqZWN0V2l0aEds
b2JhbE9iamVjdChnbG9iYWxPYmplY3QsIGNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPmds
b2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpCiAgICAgLCBtX29i
amVjdE1hcChvYmplY3RNYXApCiAgICAgLCBtX25wT2JqZWN0KG5wT2JqZWN0KQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2Jq
ZWN0LmgKaW5kZXggYWRhZmZhN2YyOTFmOTNmMjlhZDJkNWJkOTliOGM4OWI5YjZjYjg4NC4uZThh
MDhkYWQ0ODdlMDA3YzhmNDY4NmNhZWI1NGE3NDE5MDJjYzMwYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCkBA
IC01NSw5ICs1NSw5IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBK
U0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBKU09iamVjdDo6U3RydWN0dXJlRmxhZ3M7
CiAgICAgCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVj
dHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6
U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1
Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJl
dHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgSlNDOjpU
eXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENv
dW50LCAmc19pbmZvKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIEpTQzo6Q2FsbFR5cGUgZ2V0Q2Fs
bERhdGEoSlNDOjpDYWxsRGF0YSYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85950</attachid>
            <date>2011-03-16 11:41:32 -0700</date>
            <delta_ts>2011-03-16 12:13:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56438-20110316114130.patch</filename>
            <type>text/plain</type>
            <size>131192</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODEyNTMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCmluZGV4IGNkMzA3YTY3NjVlNjk0ZGNiM2U3ODg2
ZjVjOTRiNWRmYzIyNzQ4YTAuLjAwMWM0MTYxNmRmMDg3NjA0ZTc4NjhkMDMwZTUxMzFkM2RiYjM2
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0
cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3Ry
dWN0b3IuaApAQCAtMzksOSArMzksOSBAQCBwdWJsaWM6CiAgICAgSlNPYmplY3RDYWxsQXNDb25z
dHJ1Y3RvckNhbGxiYWNrIGNhbGxiYWNrKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsYmFjazsgfQog
ICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90bykgCisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU1ZhbHVlIHByb3RvKSAKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUoZ2xvYmFsRGF0YSwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKIHByb3RlY3RlZDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oCmluZGV4IGQ4
YWU2MDgzNjgxY2ZlMjQ0NWVkYjIzZDc0N2Y0OTExOTY1ZDVhMmYuLjExZmI5NWM1YzEwZjIzOGM2
ODcxMjA3ZGY3OGYyMTM5MjhjYzFiZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0NhbGxiYWNrRnVuY3Rpb24uaApAQCAtMzksOSArMzksOSBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgLy8gSW50ZXJuYWxGdW5jdGlvbiBtaXNoLW1hc2hlcyBjb25zdHJ1Y3RvciBhbmQgZnVuY3Rp
b24gYmVoYXZpb3IgLS0gd2Ugc2hvdWxkIAogICAgIC8vIHJlZmFjdG9yIHRoZSBjb2RlIHNvIHRo
aXMgb3ZlcnJpZGUgaXNuJ3QgbmVjZXNzYXJ5Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90bykgCisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U1ZhbHVlIHByb3RvKSAKICAgICB7IAotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
cHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsgCisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOyAKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCmluZGV4IDczMmNjMWRiMTQwNTAz
NjU5MGEwZDhhYzFjMDA3MDIzMDE4ZDMwOGYuLmEwYWRiNDQ4Mjc5Zjk4NjA4MTg0ZGY4MTA0YjBi
YTg1OTRiZDNhMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09i
amVjdC5oCkBAIC0xMjgsOSArMTI4LDkgQEAgcHVibGljOgogICAgIEpTQ2xhc3NSZWYgY2xhc3NS
ZWYoKSBjb25zdCB7IHJldHVybiBtX2NhbGxiYWNrT2JqZWN0RGF0YS0+anNDbGFzczsgfQogICAg
IGJvb2wgaW5oZXJpdHMoSlNDbGFzc1JlZikgY29uc3Q7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvKSAKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTVmFsdWUgcHJvdG8pIAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBCYXNl
OjpBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyAKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEJhc2U6OkFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAogICAgIH0KICAg
ICAKICAgICBKU1ZhbHVlIGdldFByaXZhdGVQcm9wZXJ0eShjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q29udGV4dFJlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5j
cHAKaW5kZXggY2NhYjk1MzI2MDA0Y2NhODlmNzgxNWU4NWE1ZWVjODVkMWNkOGI2ZC4uZTVjNzc4
ZjliYzUwYWQ5ODdlMTA3ZDU1MmI5NzkwZTQ4YjBmOTFlZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcApAQCAtOTMsMTEgKzkzLDExIEBAIEpTR2xvYmFsQ29u
dGV4dFJlZiBKU0dsb2JhbENvbnRleHRDcmVhdGVJbkdyb3VwKEpTQ29udGV4dEdyb3VwUmVmIGdy
b3VwLCBKU0NsYXNzCiAjZW5kaWYKIAogICAgIGlmICghZ2xvYmFsT2JqZWN0Q2xhc3MpIHsKLSAg
ICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG5ldyAoZ2xvYmFsRGF0YS5nZXQo
KSkgSlNHbG9iYWxPYmplY3Q7CisgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qg
PSBuZXcgKGdsb2JhbERhdGEuZ2V0KCkpIEpTR2xvYmFsT2JqZWN0KCpnbG9iYWxEYXRhKTsKICAg
ICAgICAgcmV0dXJuIEpTR2xvYmFsQ29udGV4dFJldGFpbih0b0dsb2JhbFJlZihnbG9iYWxPYmpl
Y3QtPmdsb2JhbEV4ZWMoKSkpOwogICAgIH0KIAotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSBuZXcgKGdsb2JhbERhdGEuZ2V0KCkpIEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxP
YmplY3Q+KGdsb2JhbE9iamVjdENsYXNzLCBKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0
Pjo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSk7CisgICAgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCA9IG5ldyAoZ2xvYmFsRGF0YS5nZXQoKSkgSlNDYWxsYmFja09iamVjdDxKU0dsb2Jh
bE9iamVjdD4oZ2xvYmFsT2JqZWN0Q2xhc3MsIEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmpl
Y3Q+OjpjcmVhdGVTdHJ1Y3R1cmUoKmdsb2JhbERhdGEsIGpzTnVsbCgpKSk7CiAgICAgRXhlY1N0
YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CiAgICAgSlNWYWx1ZSBwcm90
b3R5cGUgPSBnbG9iYWxPYmplY3RDbGFzcy0+cHJvdG90eXBlKGV4ZWMpOwogICAgIGlmICghcHJv
dG90eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggYzQ5NzM2Y2VkYzlhOGZjYWM2Mzdl
MTZmZjE1MjI1ZWMyMjliMDVkMS4uMzQxYTBhNzEwOTI0ZjdhNmJmMDg1ZTE0M2MxNDNmZTQyZmJi
MmYxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMxIEBACisyMDExLTAz
LTE1ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBTdHJ1Y3R1cmUgY3JlYXRpb24gcmVx
dWlyZSBhIEpTR2xvYmFsRGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTY0MzgKKworICAgICAgICBNZWNoYW5pY2FsIGNoYW5nZSB0byBtYWtlIFN0
cnVjdHVyZTo6Y3JlYXRlIHJlcXVpcmUgSlNHbG9iYWxEYXRhJiwgYW5kCisgICAgICAgIHJlcXVp
cmUgYWxsIHVzZXJzIHRvIHByb3ZpZGUgdGhlIGdsb2JhbERhdGEuCisKKyAgICAgICAgKiBBUEkv
SlNDYWxsYmFja0NvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tDb25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja0Z1bmN0aW9u
Lmg6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKToK
KyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0NhbGxi
YWNrT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIEFQSS9KU0NvbnRleHRSZWYu
Y3BwOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAgICAgKiBkZWJ1Z2dlci9E
ZWJ1Z2dlckFjdGl2YXRpb24uY3BwOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckFjdGl2YXRpb246
OkRlYnVnZ2VyQWN0aXZhdGlvbik6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0
aW9uLmg6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyQWN0aXZhdGlvbjo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpERUZJTkVfU1RV
Ql9GVU5DVElPTik6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKEdsb2JhbE9iamVjdDo6
R2xvYmFsT2JqZWN0KToKKyAgICAgICAgKGZ1bmN0aW9uUnVuKToKKyAgICAgICAgKGpzY21haW4p
OgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmg6CisgICAgICAgIChKU0M6OkFyZ3VtZW50
czo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmg6
CisgICAgICAgIChKU0M6OkFycmF5UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAg
ICAqIHJ1bnRpbWUvQm9vbGVhbk9iamVjdC5oOgorICAgICAgICAoSlNDOjpCb29sZWFuT2JqZWN0
OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUluc3RhbmNlLmg6Cisg
ICAgICAgIChKU0M6OkRhdGVJbnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBy
dW50aW1lL0RhdGVQcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RGF0ZVByb3RvdHlwZTo6Y3Jl
YXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9ySW5zdGFuY2UuaDoKKyAgICAg
ICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50
aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUJhc2U6OmNyZWF0ZVN0
cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkV2YWxFeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAoSlNDOjpQcm9ncmFtRXhlY3V0YWJsZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAg
ICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Q
cm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9HZXR0ZXJTZXR0
ZXIuaDoKKyAgICAgICAgKEpTQzo6R2V0dGVyU2V0dGVyOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAg
ICAgICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpJbnRlcm5h
bEZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBUElWYWx1
ZVdyYXBwZXIuaDoKKyAgICAgICAgKEpTQzo6SlNBUElWYWx1ZVdyYXBwZXI6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgICogcnVudGltZS9KU0FjdGl2YXRpb24uaDoKKyAgICAgICAgKEpTQzo6
SlNBY3RpdmF0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJh
eS5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OkpTQXJyYXkpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNBcnJheS5oOgorICAgICAgICAoSlNDOjpKU0FycmF5OjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpKU0J5dGVB
cnJheTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTQnl0ZUFycmF5Lmg6
CisgICAgICAgIChKU0M6OkpTQnl0ZUFycmF5OjpKU0J5dGVBcnJheSk6CisgICAgICAgICogcnVu
dGltZS9KU0NlbGwuaDoKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpKU0NlbGw6OmNyZWF0ZUR1bW15
U3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uaDoKKyAgICAgICAgKEpT
Qzo6SlNGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xv
YmFsRGF0YS5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsRGF0YTo6c3RvcmVWUHRycyk6Cisg
ICAgICAgIChKU0M6OkpTR2xvYmFsRGF0YTo6SlNHbG9iYWxEYXRhKToKKyAgICAgICAgKiBydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OnJl
c2V0KToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6
OkpTR2xvYmFsT2JqZWN0OjpKU0dsb2JhbE9iamVjdCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFs
T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVj
dC5oOgorICAgICAgICAoSlNDOjpKU05vdEFuT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU09OT2JqZWN0Ojpj
cmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAg
ICAoSlNDOjpKU09iamVjdDo6Y3JlYXRlSW5oZXJpdG9ySUQpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgIChKU0M6OkpTTm9uRmluYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
IChKU0M6OkpTRmluYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OmNy
ZWF0ZUVtcHR5T2JqZWN0U3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmluaGVy
aXRvcklEKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oOgor
ICAgICAgICAoSlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6
CisgICAgICAgICogcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmg6CisgICAgICAgIChK
U0M6OkpTUHJvcGVydHlOYW1lSXRlcmF0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICog
cnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTU3RhdGljU2Nv
cGVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5o
OgorICAgICAgICAoSlNDOjpSb3BlQnVpbGRlcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAg
KiBydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNWYXJpYWJsZU9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTV3JhcHBlck9iamVj
dC5oOgorICAgICAgICAoSlNDOjpKU1dyYXBwZXJPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9KU1pvbWJpZS5oOgorICAgICAgICAoSlNDOjpKU1pvbWJpZTo6Y3Jl
YXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL01hdGhPYmplY3QuaDoKKyAgICAgICAg
KEpTQzo6TWF0aE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL05h
dGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0
cnVjdG9yOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBydW50aW1lL05hdGl2
ZUVycm9yQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6TmF0aXZlRXJyb3JDb25zdHJ1Y3Rv
cjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL051bWJlckNvbnN0cnVjdG9y
Lmg6CisgICAgICAgIChKU0M6Ok51bWJlckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyT2JqZWN0Lmg6CisgICAgICAgIChKU0M6Ok51bWJlck9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVj
dG9yLmg6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6
UmVnRXhwQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9S
ZWdFeHBPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1
cmUpOgorICAgICAgICAqIHJ1bnRpbWUvU2NvcGVDaGFpbi5oOgorICAgICAgICAoSlNDOjpTY29w
ZUNoYWluTm9kZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09i
amVjdC5oOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZC5o
OgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZDo6
Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oOgor
ICAgICAgICAoSlNDOjpTdHJpbmdQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
ICogcnVudGltZS9TdHJ1Y3R1cmUuaDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpjcmVhdGUp
OgorCiAyMDExLTAzLTE1ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLmV4cAppbmRleCBmYjZiYmUzYjkzMGE4NDczNGU5Yzg0YmE5OTdlYjM1MTQ1MmRj
ZjEzLi5hNzViYjBjNmM0OWM2ZDIxMjRiNWFmZDBjZDQxYzViMDQwZjk1YWEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTExMyw3ICsxMTMsNyBAQCBfX1pO
M0pTQzEwSlNGdW5jdGlvbjZzX2luZm9FCiBfX1pOM0pTQzEwdGhyb3dFcnJvckVQTlNfOUV4ZWNT
dGF0ZUVOU183SlNWYWx1ZUUKIF9fWk4zSlNDMTB0aHJvd0Vycm9yRVBOU185RXhlY1N0YXRlRVBO
U184SlNPYmplY3RFCiBfX1pOM0pTQzExSlNCeXRlQXJyYXkxM3NfZGVmYXVsdEluZm9FCi1fX1pO
M0pTQzExSlNCeXRlQXJyYXkxNWNyZWF0ZVN0cnVjdHVyZUVOU183SlNWYWx1ZUVQS05TXzlDbGFz
c0luZm9FCitfX1pOM0pTQzExSlNCeXRlQXJyYXkxNWNyZWF0ZVN0cnVjdHVyZUVSTlNfMTJKU0ds
b2JhbERhdGFFTlNfN0pTVmFsdWVFUEtOU185Q2xhc3NJbmZvRQogX19aTjNKU0MxMUpTQnl0ZUFy
cmF5QzFFUE5TXzlFeGVjU3RhdGVFTjNXVEYxN05vbk51bGxQYXNzUmVmUHRySU5TXzlTdHJ1Y3R1
cmVFRUVQTlMzXzlCeXRlQXJyYXlFCiBfX1pOM0pTQzExTWFya2VkU3BhY2UyMWFsbG9jYXRlRnJv
bVNpemVDbGFzc0VSTlMwXzlTaXplQ2xhc3NFCiBfX1pOM0pTQzExUGFyc2VyQXJlbmE1cmVzZXRF
dgpAQCAtMjg3LDcgKzI4Nyw2IEBAIF9fWk4zSlNDOEpTT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQ
TlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDOEpTT2JqZWN0MTRkZWxl
dGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVqCiBfX1pOM0pTQzhKU09iamVjdDE1dW53cmFwcGVk
T2JqZWN0RXYKIF9fWk4zSlNDOEpTT2JqZWN0MTZnZXRQcm9wZXJ0eU5hbWVzRVBOU185RXhlY1N0
YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RU5TXzE1RW51bWVyYXRpb25Nb2RlRQotX19aTjNK
U0M4SlNPYmplY3QxN2NyZWF0ZUluaGVyaXRvcklERXYKIF9fWk4zSlNDOEpTT2JqZWN0MTdkZWZp
bmVPd25Qcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9w
ZXJ0eURlc2NyaXB0b3JFYgogX19aTjNKU0M4SlNPYmplY3QxN3B1dERpcmVjdEZ1bmN0aW9uRVBO
U185RXhlY1N0YXRlRVBOU18xMEpTRnVuY3Rpb25FagogX19aTjNKU0M4SlNPYmplY3QxN3B1dERp
cmVjdEZ1bmN0aW9uRVBOU185RXhlY1N0YXRlRVBOU18xNkludGVybmFsRnVuY3Rpb25FagpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgppbmRl
eCBkYzgxMjZkMTc4OWI0NGFhY2Q1NzEwNzAyY2FhMGJlYWNkM2ZmZjlkLi40N2M0MzJmMDk3OTU3
NmZlMmRjMjg2MjQxNmQyNjFiMzU4YzIwNWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LmRlZgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtMTAyLDE0ICsxMDIsMTMgQEAgRVhQ
T1JUUwogICAgID9jcmVhdGVAUmVnRXhwQEpTQ0BAU0E/QVY/JFBhc3NSZWZQdHJAVlJlZ0V4cEBK
U0NAQEBXVEZAQFBBVkpTR2xvYmFsRGF0YUAyQEFCVlVTdHJpbmdAMkBXNFJlZ0V4cEZsYWdzQDJA
QFoKICAgICA/Y3JlYXRlRW1wdHlTdHJpbmdAU21hbGxTdHJpbmdzQEpTQ0BAQUFFWFBBVkpTR2xv
YmFsRGF0YUAyQEBaCiAgICAgP2NyZWF0ZUVycm9yQEpTQ0BAWUFQQVZKU09iamVjdEAxQFBBVkV4
ZWNTdGF0ZUAxQEFCVlVTdHJpbmdAMUBAWgotICAgID9jcmVhdGVJbmhlcml0b3JJREBKU09iamVj
dEBKU0NAQEFBRVBBVlN0cnVjdHVyZUAyQFhaCiAgICAgP2NyZWF0ZUludGVycnVwdGVkRXhlY3V0
aW9uRXhjZXB0aW9uQEpTQ0BAWUFQQVZKU09iamVjdEAxQFBBVkpTR2xvYmFsRGF0YUAxQEBaCiAg
ICAgP2NyZWF0ZUxlYWtlZEBKU0dsb2JhbERhdGFASlNDQEBTQT9BVj8kUGFzc1JlZlB0ckBWSlNH
bG9iYWxEYXRhQEpTQ0BAQFdURkBAVzRUaHJlYWRTdGFja1R5cGVAMkBAWgogICAgID9jcmVhdGVS
YW5nZUVycm9yQEpTQ0BAWUFQQVZKU09iamVjdEAxQFBBVkV4ZWNTdGF0ZUAxQEFCVlVTdHJpbmdA
MUBAWgogICAgID9jcmVhdGVSZWZlcmVuY2VFcnJvckBKU0NAQFlBUEFWSlNPYmplY3RAMUBQQVZF
eGVjU3RhdGVAMUBBQlZVU3RyaW5nQDFAQFoKICAgICA/Y3JlYXRlU2luZ2xlQ2hhcmFjdGVyU3Ry
aW5nQFNtYWxsU3RyaW5nc0BKU0NAQEFBRVhQQVZKU0dsb2JhbERhdGFAMkBFQFoKICAgICA/Y3Jl
YXRlU3RhY2tPdmVyZmxvd0Vycm9yQEpTQ0BAWUFQQVZKU09iamVjdEAxQFBBVkV4ZWNTdGF0ZUAx
QEBaCi0gICAgP2NyZWF0ZVN0cnVjdHVyZUBKU0J5dGVBcnJheUBKU0NAQFNBP0FWPyRQYXNzUmVm
UHRyQFZTdHJ1Y3R1cmVASlNDQEBAV1RGQEBWSlNWYWx1ZUAyQFBCVUNsYXNzSW5mb0AyQEBaCisg
ICAgP2NyZWF0ZVN0cnVjdHVyZUBKU0J5dGVBcnJheUBKU0NAQFNBP0FWPyRQYXNzUmVmUHRyQFZT
dHJ1Y3R1cmVASlNDQEBAV1RGQEBBQVZKU0dsb2JhbERhdGFAMkBWSlNWYWx1ZUAyQFBCVUNsYXNz
SW5mb0AyQEBaCiAgICAgP2NyZWF0ZVN5bnRheEVycm9yQEpTQ0BAWUFQQVZKU09iamVjdEAxQFBB
VkV4ZWNTdGF0ZUAxQEFCVlVTdHJpbmdAMUBAWgogICAgID9jcmVhdGVUYWJsZUBIYXNoVGFibGVA
SlNDQEBBQkVYUEFWSlNHbG9iYWxEYXRhQDJAQFoKICAgICA/Y3JlYXRlVGhyZWFkQFdURkBAWUFJ
UDZBUEFYUEFYQFowQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzdlNmVlN2Rl
NzI4OWRjOWRkZGI5ZDAyOWYyYWE4NWVlM2RlNzA0NC4uMTIxYWRiOTVkYjdhY2RhM2Y2OTczYTY4
OWM4OWI5NDBkNWZjYTMxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2Mzgs
NiArMjYzOCw3IEBACiAJCQl9OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDE0OUMyNzcx
MDg5MDJBRkUwMDhBOUVGQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2pl
Y3QgIkphdmFTY3JpcHRDb3JlIiAqLzsKIAkJCWNvbXBhdGliaWxpdHlWZXJzaW9uID0gIlhjb2Rl
IDMuMSI7CisJCQlkZXZlbG9wbWVudFJlZ2lvbiA9IEVuZ2xpc2g7CiAJCQloYXNTY2FubmVkRm9y
RW5jb2RpbmdzID0gMTsKIAkJCWtub3duUmVnaW9ucyA9ICgKIAkJCQlFbmdsaXNoLApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNw
cAppbmRleCA2MmEyZTU0ZTFiYWI5MmMyZWZjMmVmMTFmNGNiODdhM2I2YjdjODBhLi41MGJhNzQ2
ZWVkMTZkYjMwYWJkMjhlY2M0MDRkZjdjMGI3YTgwNzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcApAQCAtMzEsNyAr
MzEsNyBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIERlYnVnZ2VyQWN0aXZhdGlvbjo6RGVidWdnZXJB
Y3RpdmF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNPYmplY3QqIGFjdGl2YXRpb24p
Ci0gICAgOiBKU05vbkZpbmFsT2JqZWN0KERlYnVnZ2VyQWN0aXZhdGlvbjo6Y3JlYXRlU3RydWN0
dXJlKGpzTnVsbCgpKSkKKyAgICA6IEpTTm9uRmluYWxPYmplY3QoRGVidWdnZXJBY3RpdmF0aW9u
OjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwganNOdWxsKCkpKQogewogICAgIEFTU0VSVChh
Y3RpdmF0aW9uKTsKICAgICBBU1NFUlQoYWN0aXZhdGlvbi0+aXNBY3RpdmF0aW9uT2JqZWN0KCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0
aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZh
dGlvbi5oCmluZGV4IDAxYTQ5MDczMzYxYjBkNjQxMzliZDQ2N2NiZWFhMDg1ZjE0ZTkyMjkuLmYy
MmQyZmZiZDkxOTQzYWU0OGZjOTNmM2M3ZTgwYTIxYWJhNGM5NmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKQEAgLTQ5LDkg
KzQ5LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgSlNWYWx1ZSBsb29rdXBH
ZXR0ZXIoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICAg
ICAgdmlydHVhbCBKU1ZhbHVlIGxvb2t1cFNldHRlcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUpOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVy
ZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKSAKKyAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkgCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCisgICAgICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAog
ICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFN0dWJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1
YnMuY3BwCmluZGV4IGZlNTFhM2ZjY2ExZTU0ZDhmMmExMTEyYzk1ZDhjNmMxMTBmYzhlNDkuLjEw
YTJiNjA1MjEzNjFjM2ZkZjUwYzIzNjY3Mjg3ZTdkZjc0MjIzNGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUU3R1YnMuY3BwCkBAIC0xMTc0LDcgKzExNzQsNyBAQCBERUZJTkVfU1RVQl9G
VU5DVElPTihFbmNvZGVkSlNWYWx1ZSwgb3BfY3JlYXRlX3RoaXMpCiAgICAgU3RydWN0dXJlKiBz
dHJ1Y3R1cmU7CiAgICAgSlNWYWx1ZSBwcm90byA9IHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVl
KCk7CiAgICAgaWYgKHByb3RvLmlzT2JqZWN0KCkpCi0gICAgICAgIHN0cnVjdHVyZSA9IGFzT2Jq
ZWN0KHByb3RvKS0+aW5oZXJpdG9ySUQoKTsKKyAgICAgICAgc3RydWN0dXJlID0gYXNPYmplY3Qo
cHJvdG8pLT5pbmhlcml0b3JJRCgqc3RhY2tGcmFtZS5nbG9iYWxEYXRhKTsKICAgICBlbHNlCiAg
ICAgICAgIHN0cnVjdHVyZSA9IGNvbnN0cnVjdG9yLT5zY29wZSgpLT5nbG9iYWxPYmplY3QtPmVt
cHR5T2JqZWN0U3RydWN0dXJlKCk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0
eU9iamVjdChjYWxsRnJhbWUsIHN0cnVjdHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDE4
NzM2NTkxMjhiOWNhNzg0MjMwZTAzZmZjZWZiNWVhM2VkZjBkNWMuLjhjY2IwMzk4NTA2YmQ5YTMx
YmRhNmE3OWM5MDZkN2IxNGQ0MTRmODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC0xNDEsMTQg
KzE0MSwxNCBAQCBsb25nIFN0b3BXYXRjaDo6Z2V0RWxhcHNlZE1TKCkKIAogY2xhc3MgR2xvYmFs
T2JqZWN0IDogcHVibGljIEpTR2xvYmFsT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBHbG9iYWxPYmpl
Y3QoY29uc3QgVmVjdG9yPFVTdHJpbmc+JiBhcmd1bWVudHMpOworICAgIEdsb2JhbE9iamVjdChK
U0dsb2JhbERhdGEmLCBjb25zdCBWZWN0b3I8VVN0cmluZz4mIGFyZ3VtZW50cyk7CiAgICAgdmly
dHVhbCBVU3RyaW5nIGNsYXNzTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJnbG9iYWwiOyB9CiB9Owog
Q09NUElMRV9BU1NFUlQoIUlzSW50ZWdlcjxHbG9iYWxPYmplY3Q+Ojp2YWx1ZSwgV1RGX0lzSW50
ZWdlcl9HbG9iYWxPYmplY3RfZmFsc2UpOwogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChHbG9i
YWxPYmplY3QpOwogCi1HbG9iYWxPYmplY3Q6Okdsb2JhbE9iamVjdChjb25zdCBWZWN0b3I8VVN0
cmluZz4mIGFyZ3VtZW50cykKLSAgICA6IEpTR2xvYmFsT2JqZWN0KCkKK0dsb2JhbE9iamVjdDo6
R2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgVmVjdG9yPFVTdHJp
bmc+JiBhcmd1bWVudHMpCisgICAgOiBKU0dsb2JhbE9iamVjdChnbG9iYWxEYXRhKQogewogICAg
IHB1dERpcmVjdEZ1bmN0aW9uKGdsb2JhbEV4ZWMoKSwgbmV3IChnbG9iYWxFeGVjKCkpIEpTRnVu
Y3Rpb24oZ2xvYmFsRXhlYygpLCB0aGlzLCBmdW5jdGlvblN0cnVjdHVyZSgpLCAxLCBJZGVudGlm
aWVyKGdsb2JhbEV4ZWMoKSwgImRlYnVnIiksIGZ1bmN0aW9uRGVidWcpKTsKICAgICBwdXREaXJl
Y3RGdW5jdGlvbihnbG9iYWxFeGVjKCksIG5ldyAoZ2xvYmFsRXhlYygpKSBKU0Z1bmN0aW9uKGds
b2JhbEV4ZWMoKSwgdGhpcywgZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMSwgSWRlbnRpZmllcihnbG9i
YWxFeGVjKCksICJwcmludCIpLCBmdW5jdGlvblByaW50KSk7CkBAIC0yMTIsNyArMjEyLDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJ1bihFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgaWYgKCFmaWxsQnVmZmVyV2l0aENvbnRlbnRzT2ZGaWxlKGZpbGVOYW1lLCBzY3JpcHQp
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93RXJyb3IoZXhlYywgY3JlYXRl
RXJyb3IoZXhlYywgIkNvdWxkIG5vdCBvcGVuIGZpbGUuIikpKTsKIAotICAgIEdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0ID0gbmV3ICgmZXhlYy0+Z2xvYmFsRGF0YSgpKSBHbG9iYWxPYmplY3Qo
VmVjdG9yPFVTdHJpbmc+KCkpOworICAgIEdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbmV3
ICgmZXhlYy0+Z2xvYmFsRGF0YSgpKSBHbG9iYWxPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBW
ZWN0b3I8VVN0cmluZz4oKSk7CiAKICAgICBTdG9wV2F0Y2ggc3RvcFdhdGNoOwogICAgIHN0b3BX
YXRjaC5zdGFydCgpOwpAQCAtNTM2LDcgKzUzNiw3IEBAIGludCBqc2NtYWluKGludCBhcmdjLCBj
aGFyKiogYXJndiwgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQogICAgIE9wdGlvbnMgb3B0aW9u
czsKICAgICBwYXJzZUFyZ3VtZW50cyhhcmdjLCBhcmd2LCBvcHRpb25zLCBnbG9iYWxEYXRhKTsK
IAotICAgIEdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbmV3IChnbG9iYWxEYXRhKSBHbG9i
YWxPYmplY3Qob3B0aW9ucy5hcmd1bWVudHMpOworICAgIEdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0ID0gbmV3IChnbG9iYWxEYXRhKSBHbG9iYWxPYmplY3QoKmdsb2JhbERhdGEsIG9wdGlvbnMu
YXJndW1lbnRzKTsKICAgICBib29sIHN1Y2Nlc3MgPSBydW5XaXRoU2NyaXB0cyhnbG9iYWxPYmpl
Y3QsIG9wdGlvbnMuc2NyaXB0cywgb3B0aW9ucy5kdW1wKTsKICAgICBpZiAob3B0aW9ucy5pbnRl
cmFjdGl2ZSAmJiBzdWNjZXNzKQogICAgICAgICBydW5JbnRlcmFjdGl2ZShnbG9iYWxPYmplY3Qp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAppbmRleCA5MGMzZjlj
Yjg3ODUxOTRiNTRmNzRkZjI1NTJlZGE2NjVhOTI2MDE4Li5iYjZiZjMyYWU3Mzk0ODY3Y2YwOTlh
ZDFlMWI3NGFkMjQ1YjRkNjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Bcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1
bWVudHMuaApAQCAtOTIsOSArOTIsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIGQt
PnJlZ2lzdGVycyA9ICZhY3RpdmF0aW9uLT5yZWdpc3RlckF0KDApOwogICAgICAgICB9CiAKLSAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1
ZSBwcm90b3R5cGUpIAorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0
ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKSAK
ICAgICAgICAgeyAKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5
cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENv
dW50LCAmc19pbmZvKTsgCisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAogICAgICAgICB9CiAKICAgICBwcm90ZWN0
ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3Rv
dHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaApp
bmRleCBlNDFkOGNhODNmYTkyZTJkNmI3Y2QxZjM3MjE5OTliOWMxZTE0NDM3Li45NjY0MWJkMmJi
YmM0NDFmMTBmYzc0NTQ2MDJjYzcxOWI4ZTVlZWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmgKQEAgLTM1LDkgKzM1LDkgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKLSAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBw
cm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3Ry
dWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5
cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAm
c19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnlt
b3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oCmluZGV4IGUyYWYw
YzI2YmNiNzM2ZmYzZDYyYzRiMWY3ZGJjYjZkNzc2ZGQ0ODAuLmVmMmQ0MDM0ZDU1MzRmNDgwY2Vj
NjExODVjZGM0Y2FkMDczZjcwMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Jvb2xlYW5PYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Cb29sZWFuT2JqZWN0LmgKQEAgLTMxLDkgKzMxLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAgICAgICAgIAotICAgICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3Rv
dHlwZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1
cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAg
ewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNT
bG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaAppbmRleCBlM2YzYmU5ODBiY2VlOGNkMzlj
OGQzMjU5NWU3ZmJhYTc0MGEzNThiLi42Yzk3Nzg5N2Q5ZGFjYmU3ZmQxYWQwN2Q5YjM1YzJmZWVh
Y2E3MjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5z
dGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2Uu
aApAQCAtNTMsOSArNTMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBj
YWxjdWxhdGVHcmVnb3JpYW5EYXRlVGltZVVUQyhleGVjKTsKICAgICAgICAgfQogCi0gICAgICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJv
dG90eXBlKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVj
dHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwg
cHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91
c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmgKaW5kZXggODYxNWJlZmU4
OTYwOTdkOWZkZjdhZDQ1NzYyYWExNzNiZWYxMzRlZC4uMGViYmVkYzdlMzAyZDBhZDc3NzI3NTIx
N2Y3YTMxYTFiZGY1YjQyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRGF0ZVByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGVQcm90b3R5cGUuaApAQCAtMzYsOSArMzYsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAg
ICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAotICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmgKaW5kZXggYzFiZWVmNzc1MmNlMTAwMmIxMmE1
ZWZkMDM2M2JkNmM5YWY2ZWY1ZC4uODJkYmYwZjU2MzgyZWJjMDg1NDJkNTcxNGIxNjNiZWM5YjZi
NzQyMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0
YW5jZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2Uu
aApAQCAtMjksOSArMjksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAg
IHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRl
KEpTR2xvYmFsRGF0YSosIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4sIGNvbnN0IFVTdHJp
bmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFi
bGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAppbmRleCAy
ZmYyYjg1ZmU4ZjM3ZDIwYmM4NzA4YzdlNmE0MWM0ZmRiMTBjMmJjLi43YTQ4ZDZjNmM1YzI1ZmI2
NDY0MGRlMjEwYmRiOTdkODkwNmIxN2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FeGVjdXRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXhlY3V0YWJsZS5oCkBAIC02NSw3ICs2NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICAgICAgcmV0dXJuIG1fbnVtUGFyYW1ldGVyc0ZvckNhbGwgPT0gTlVNX1BBUkFNRVRFUlNfSVNf
SE9TVDsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4g
Y3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3Vz
U2xvdENvdW50LCAwKTsgfQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG8pIHsg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhDb21w
b3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAwKTsgfQogCiAg
ICAgcHJvdGVjdGVkOgogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSAwOwpAQCAtMjM3LDcgKzIzNyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAg
cmV0dXJuIGdlbmVyYXRlZEpJVENvZGVGb3JDYWxsKCk7CiAgICAgICAgIH0KICNlbmRpZgotICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVl
IHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90bywgVHlwZUluZm8oQ29tcG91
bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgMCk7IH0KKyAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIEFub255bW91c1Nsb3RDb3VudCwgMCk7IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc01hcmtDaGlsZHJl
biB8IFNjcmlwdEV4ZWN1dGFibGU6OlN0cnVjdHVyZUZsYWdzOwpAQCAtMjgyLDcgKzI4Miw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAjZW5kaWYKICAgICAgICAgCi0gICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8p
IHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAwKTsgfQorICAgICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5v
bnltb3VzU2xvdENvdW50LCAwKTsgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzTWFya0NoaWxkcmVuIHwgU2Ny
aXB0RXhlY3V0YWJsZTo6U3RydWN0dXJlRmxhZ3M7CkBAIC0zNzIsNyArMzcyLDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZGlzY2FyZENvZGUoKTsKICAgICAgICAgdm9pZCBtYXJr
Q2hpbGRyZW4oTWFya1N0YWNrJik7CiAgICAgICAgIHN0YXRpYyBGdW5jdGlvbkV4ZWN1dGFibGUq
IGZyb21HbG9iYWxDb2RlKGNvbnN0IElkZW50aWZpZXImLCBFeGVjU3RhdGUqLCBEZWJ1Z2dlcios
IGNvbnN0IFNvdXJjZUNvZGUmLCBKU09iamVjdCoqIGV4Y2VwdGlvbik7Ci0gICAgICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8pIHsg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAwKTsgfQorICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERh
dGEsIHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnlt
b3VzU2xvdENvdW50LCAwKTsgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgRnVuY3Rpb25FeGVj
dXRhYmxlKEpTR2xvYmFsRGF0YSosIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJj
ZUNvZGUmLCBib29sIGZvcmNlVXNlc0FyZ3VtZW50cywgRnVuY3Rpb25QYXJhbWV0ZXJzKiwgYm9v
bCwgaW50IGZpcnN0TGluZSwgaW50IGxhc3RMaW5lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oCmluZGV4IGZiMGJiNDg5MjRhMDUyMmFj
OWM2MzJlNzMyNmNmMmI1ZjFmYWM3NzEuLjQ0N2YwMGJkODEwZjVlNTllZjc5NmE1ODgyZWExY2Y2
ZDRmMjVjODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0
aW9uUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rp
b25Qcm90b3R5cGUuaApAQCAtMzAsOSArMzAsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
RnVuY3Rpb25Qcm90b3R5cGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBOb25OdWxsUGFz
c1JlZlB0cjxTdHJ1Y3R1cmU+KTsKICAgICAgICAgdm9pZCBhZGRGdW5jdGlvblByb3BlcnRpZXMo
RXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqIGZ1bmN0aW9uU3RydWN0dXJl
LCBKU0Z1bmN0aW9uKiogY2FsbEZ1bmN0aW9uLCBKU0Z1bmN0aW9uKiogYXBwbHlGdW5jdGlvbik7
CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNWYWx1ZSBwcm90bykKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVh
dGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvKQogICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG8sIFR5cGVJ
bmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBw
cm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90
Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVyLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaAppbmRleCA2OGE4YzcwNzBiYWYzZGJk
NWI3ZmM3YjQ1YjIyMDdjZDJmYzI0OGNlLi44MjQxMjc1ZjRkMjBkODUzMjEwZmI5ZjRhZDBmZDE2
NmE4MzQxODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0
ZXJTZXR0ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0
ZXIuaApAQCAtNDcsOSArNDcsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBzZXRH
ZXR0ZXIoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU09iamVjdCogZ2V0dGVyKSB7IG1fZ2V0
dGVyLnNldChnbG9iYWxEYXRhLCB0aGlzLCBnZXR0ZXIpOyB9CiAgICAgICAgIEpTT2JqZWN0KiBz
ZXR0ZXIoKSBjb25zdCB7IHJldHVybiBtX3NldHRlci5nZXQoKTsgfQogICAgICAgICB2b2lkIHNl
dFNldHRlcihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTT2JqZWN0KiBzZXR0ZXIpIHsgbV9z
ZXR0ZXIuc2V0KGdsb2JhbERhdGEsIHRoaXMsIHNldHRlcik7IH0KLSAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisg
ICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKEdldHRl
clNldHRlclR5cGUsIE92ZXJyaWRlc01hcmtDaGlsZHJlbiksIEFub255bW91c1Nsb3RDb3VudCwg
MCk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJv
dG90eXBlLCBUeXBlSW5mbyhHZXR0ZXJTZXR0ZXJUeXBlLCBPdmVycmlkZXNNYXJrQ2hpbGRyZW4p
LCBBbm9ueW1vdXNTbG90Q291bnQsIDApOwogICAgICAgICB9CiAgICAgcHJpdmF0ZToKICAgICAg
ICAgdmlydHVhbCBib29sIGlzR2V0dGVyU2V0dGVyKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKaW5kZXggODQyN2I4Y2EyNGU0
YTZhODc1Zjc1NTYxOWVlOGJjOGEyNmM2Mzc0Zi4uMDhjOThhNTM4MGYxNzI5NTM2ZWQ5OTE5ZmZi
YmI4NjU0OTBhYTE5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50ZXJuYWxGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGVybmFsRnVuY3Rpb24uaApAQCAtMzksOSArMzksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgY29uc3QgVVN0cmluZyBkaXNwbGF5TmFtZShFeGVjU3RhdGUqKTsKICAgICAgICAgY29uc3Qg
VVN0cmluZyBjYWxjdWxhdGVkRGlzcGxheU5hbWUoRXhlY1N0YXRlKik7CiAKLSAgICAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90bykg
CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90bykgCiAgICAgICAgIHsgCi0gICAg
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCisgICAg
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG8sIFR5cGVJ
bmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsgCiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQVBJVmFsdWVXcmFwcGVyLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FQSVZhbHVlV3JhcHBlci5oCmluZGV4IDQzZGQwZDM5YTc4ODI2
YzYyMjdjYmM4Y2NjYmQ5ZjA3NDdlZDYwMDMuLjU0ZmU5MDlhYmNhMGE0NDBhNTk2YjcxMGNhNTVm
MWIwMDBlNzFlOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QVBJVmFsdWVXcmFwcGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
UElWYWx1ZVdyYXBwZXIuaApAQCAtMzUsOSArMzUsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
ICAgICB2aXJ0dWFsIGJvb2wgaXNBUElWYWx1ZVdyYXBwZXIoKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1
cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVy
ZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90
b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShw
cm90b3R5cGUsIFR5cGVJbmZvKENvbXBvdW5kVHlwZSwgT3ZlcnJpZGVzTWFya0NoaWxkcmVuIHwg
T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyksIEFub255bW91c1Nsb3RDb3VudCwgMCk7CisgICAg
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBU
eXBlSW5mbyhDb21wb3VuZFR5cGUsIE92ZXJyaWRlc01hcmtDaGlsZHJlbiB8IE92ZXJyaWRlc0dl
dFByb3BlcnR5TmFtZXMpLCBBbm9ueW1vdXNTbG90Q291bnQsIDApOwogICAgICAgICB9CiAKICAg
ICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2
YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCmlu
ZGV4IGViYzk5ZjFlYzBlNTUyYTM5ODhkZGUwMTFjMzA4MjFlYjY5Y2ZkMTguLjJhOTAzOTA4Njc1
N2E2YWE1MmE5ZjQzMTkzZmY2YmZiNzBhNDg5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCkBAIC02Niw3ICs2Niw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICAKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKLSAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1
ZSBwcm90bykgeyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG8sIFR5cGVJbmZvKE9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgfQor
ICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IH0KIAogICAgIHByb3RlY3RlZDoK
ICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVz
R2V0T3duUHJvcGVydHlTbG90IHwgTmVlZHNUaGlzQ29udmVyc2lvbiB8IE92ZXJyaWRlc01hcmtD
aGlsZHJlbiB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBKU1ZhcmlhYmxlT2JqZWN0OjpT
dHJ1Y3R1cmVGbGFnczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAK
aW5kZXggODIyYjg0Y2RkZDZmMjY1NDY2MmZlY2E2NmJlY2JiOGFmYTkyMjQxNi4uMWQ2MjFmZTlm
OTBkMDRjMzRmZGNhMjIyYTllZmJlNDEyNTBiNWUyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcnJheS5jcHAKQEAgLTEyNyw3ICsxMjcsNyBAQCBpbmxpbmUgdm9pZCBKU0Fy
cmF5OjpjaGVja0NvbnNpc3RlbmN5KENvbnNpc3RlbmN5Q2hlY2tUeXBlKQogI2VuZGlmCiAKIEpT
QXJyYXk6OkpTQXJyYXkoVlB0clN0ZWFsaW5nSGFja1R5cGUpCi0gICAgOiBKU05vbkZpbmFsT2Jq
ZWN0KGNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSkpCisgICAgOiBKU05vbkZpbmFsT2JqZWN0KFN0
cnVjdHVyZTo6Y3JlYXRlKFN0cnVjdHVyZTo6VlB0clN0ZWFsaW5nSGFjaywgJnNfaW5mbykpCiB7
CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheS5oCmluZGV4IDI0ZGVmN2IwNDNjOGNhYmUzNmU0OTUxZTI4OGUxYmE3MzY1
NmU0ZDMuLjlhNTRhYWI0Y2ZkZjQ3MmEyMTViZTVhMDM3OGE1NDc3Y2RmMDRlNDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKQEAgLTEyNCw5ICsxMjQsOSBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBmaWxsQXJnTGlzdChFeGVjU3RhdGUqLCBNYXJrZWRB
cmd1bWVudEJ1ZmZlciYpOwogICAgICAgICB2b2lkIGNvcHlUb1JlZ2lzdGVycyhFeGVjU3RhdGUq
LCBSZWdpc3RlciosIHVpbnQzMl90KTsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1
Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwog
ICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBpbmxpbmUgdm9pZCBtYXJrQ2hpbGRyZW5EaXJl
Y3QoTWFya1N0YWNrJiBtYXJrU3RhY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNCeXRlQXJyYXkuY3BwCmluZGV4IGFlNzM1ZGMzZDRkZmFiNjEyZWM3YmJmNTg1NjUyYTc5
MTZjNmM3OGQuLmZiYWVhMWRmNmFhMmNlZjgwZDY3ZDQxMWRlMjQ5OWU1Y2Y1ZTFjNDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKQEAgLTUwLDkg
KzUwLDkgQEAgSlNCeXRlQXJyYXk6On5KU0J5dGVBcnJheSgpCiAjZW5kaWYKIAogCi1QYXNzUmVm
UHRyPFN0cnVjdHVyZT4gSlNCeXRlQXJyYXk6OmNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3Rv
dHlwZSwgY29uc3QgSlNDOjpDbGFzc0luZm8qIGNsYXNzSW5mbykKK1Bhc3NSZWZQdHI8U3RydWN0
dXJlPiBKU0J5dGVBcnJheTo6Y3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNWYWx1ZSBwcm90b3R5cGUsIGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiBjbGFzc0luZm8pCiB7
Ci0gICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsIGNsYXNzSW5mbyk7Cisg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsIGNsYXNz
SW5mbyk7CiB9CiAKIGJvb2wgSlNCeXRlQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJy
YXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKaW5kZXgg
NmU5MTU5NGJlZTE3ZDQ2MDg5ZjU0MjQ0ZGMyYmFhMmYzZjYwOGE1NC4uZTY3NDk1ODBiMTI0MzMy
Y2I4YmE0ZDEwZjRjNGY1YmY1NGVkNGRkOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0J5dGVBcnJheS5oCkBAIC03Niw3ICs3Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICB9CiAKICAgICAgICAgSlNCeXRlQXJyYXkoRXhlY1N0YXRlKiwgTm9uTnVsbFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiwgV1RGOjpCeXRlQXJyYXkqIHN0b3JhZ2UpOwotICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSwg
Y29uc3QgSlNDOjpDbGFzc0luZm8qID0gJnNfZGVmYXVsdEluZm8pOworICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmLCBKU1Zh
bHVlIHByb3RvdHlwZSwgY29uc3QgSlNDOjpDbGFzc0luZm8qID0gJnNfZGVmYXVsdEluZm8pOwog
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUq
LCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3Qm
KTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0
ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKQEAgLTEwMiw3
ICsxMDIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcml2YXRlOgogICAgICAgICBlbnVtIFZQ
dHJTdGVhbGluZ0hhY2tUeXBlIHsgVlB0clN0ZWFsaW5nSGFjayB9OwogICAgICAgICBKU0J5dGVB
cnJheShWUHRyU3RlYWxpbmdIYWNrVHlwZSkKLSAgICAgICAgICAgIDogSlNOb25GaW5hbE9iamVj
dChjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKQorICAgICAgICAgICAgOiBKU05vbkZpbmFsT2Jq
ZWN0KFN0cnVjdHVyZTo6Y3JlYXRlKFN0cnVjdHVyZTo6VlB0clN0ZWFsaW5nSGFjaywgJnNfaW5m
bykpCiAgICAgICAgIHsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0NlbGwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q2VsbC5oCmluZGV4IDgyMDI5NzIxZmZhNmRlNGI5YzQ2MjE4NDkxZGU0NTQ4YTk0ZWJlZDUuLmE3
OTVhNWNmNjU3NTdjMjIyN2IyN2VhNGJjYjk5ODc1ODU2Y2I3MTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQ2VsbC5oCkBAIC03Miw5ICs3Miw5IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICB2aXJ0dWFsIH5KU0NlbGwoKTsKIAogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVEdW1teVN0cnVjdHVyZSgpCisgICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlRHVtbXlTdHJ1Y3R1cmUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoanNOdWxsKCksIFR5cGVJbmZvKFVuc3BlY2lmaWVkVHlwZSksIEFub255bW91c1Ns
b3RDb3VudCwgMCk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwganNOdWxsKCksIFR5cGVJbmZvKFVuc3BlY2lmaWVkVHlwZSksIEFub255bW91c1Nsb3RD
b3VudCwgMCk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBRdWVyeWluZyB0aGUgdHlwZS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAppbmRleCA2YmMzZTgzZDEw
MzA2YjhiYjRmY2YwYTQ1ZTBmZGE3ZGRiZTFjNDBiLi41MDViOWRlMjcyYjVkNGQ1Y2FkYjAwYWIx
MGM0YmVmOWZiM2I2MjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5j
dGlvbi5oCkBAIC03Myw5ICs3Myw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRp
YyBKU19FWFBPUlREQVRBIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKLSAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUp
IAorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKSAKICAgICAgICAgeyAK
LSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZv
KTsgCisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Ns
b3RDb3VudCwgJnNfaW5mbyk7IAogICAgICAgICB9CiAKICAgICAgICAgTmF0aXZlRnVuY3Rpb24g
bmF0aXZlRnVuY3Rpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsRGF0YS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbERhdGEuY3BwCmluZGV4IDhkOGY3ZTNmYWM5NTgwYTI0MTkyZWVkZjQzMDg1OWM0MzE2MjNl
YWEuLjJhNTlmOTE3NDkxNzJmOGJhYTliYjc0MGNkZTMwYzg5YTk5YTNlM2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcApAQCAtMTA4LDggKzEw
OCw4IEBAIHZvaWQgSlNHbG9iYWxEYXRhOjpzdG9yZVZQdHJzKCkKIAogICAgIENPTVBJTEVfQVNT
RVJUKHNpemVvZihKU0Z1bmN0aW9uKSA8PSBzaXplb2Yoc3RvcmFnZSksIHNpemVvZl9KU0Z1bmN0
aW9uX211c3RfYmVfbGVzc190aGFuX3N0b3JhZ2UpOwogICAgIGNoYXIgZXhlY3V0YWJsZVN0b3Jh
Z2Vbc2l6ZW9mKFZQdHJIYWNrRXhlY3V0YWJsZSldOwotICAgIFZQdHJIYWNrRXhlY3V0YWJsZSog
ZXhlY3V0YWJsZSA9IG5ldyAoZXhlY3V0YWJsZVN0b3JhZ2UpIFZQdHJIYWNrRXhlY3V0YWJsZShW
UHRySGFja0V4ZWN1dGFibGU6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSkpOwotICAgIEpTQ2Vs
bCoganNGdW5jdGlvbiA9IG5ldyAoc3RvcmFnZSkgSlNGdW5jdGlvbihKU0Z1bmN0aW9uOjpjcmVh
dGVTdHJ1Y3R1cmUoanNOdWxsKCkpLCBleGVjdXRhYmxlKTsKKyAgICBWUHRySGFja0V4ZWN1dGFi
bGUqIGV4ZWN1dGFibGUgPSBuZXcgKGV4ZWN1dGFibGVTdG9yYWdlKSBWUHRySGFja0V4ZWN1dGFi
bGUoU3RydWN0dXJlOjpjcmVhdGUoU3RydWN0dXJlOjpWUHRyU3RlYWxpbmdIYWNrLCAwKSk7Cisg
ICAgSlNDZWxsKiBqc0Z1bmN0aW9uID0gbmV3IChzdG9yYWdlKSBKU0Z1bmN0aW9uKFN0cnVjdHVy
ZTo6Y3JlYXRlKFN0cnVjdHVyZTo6VlB0clN0ZWFsaW5nSGFjaywgJkpTRnVuY3Rpb246OnNfaW5m
byksIGV4ZWN1dGFibGUpOwogICAgIEpTR2xvYmFsRGF0YTo6anNGdW5jdGlvblZQdHIgPSBqc0Z1
bmN0aW9uLT52cHRyKCk7CiAgICAganNGdW5jdGlvbi0+fkpTQ2VsbCgpOwogfQpAQCAtMTI2LDIy
ICsxMjYsMjIgQEAgSlNHbG9iYWxEYXRhOjpKU0dsb2JhbERhdGEoR2xvYmFsRGF0YVR5cGUgZ2xv
YmFsRGF0YVR5cGUsIFRocmVhZFN0YWNrVHlwZSB0aHJlYWQKICAgICAsIHJlZ0V4cFRhYmxlKGZh
c3ROZXc8SGFzaFRhYmxlPihKU0M6OnJlZ0V4cFRhYmxlKSkKICAgICAsIHJlZ0V4cENvbnN0cnVj
dG9yVGFibGUoZmFzdE5ldzxIYXNoVGFibGU+KEpTQzo6cmVnRXhwQ29uc3RydWN0b3JUYWJsZSkp
CiAgICAgLCBzdHJpbmdUYWJsZShmYXN0TmV3PEhhc2hUYWJsZT4oSlNDOjpzdHJpbmdUYWJsZSkp
Ci0gICAgLCBhY3RpdmF0aW9uU3RydWN0dXJlKEpTQWN0aXZhdGlvbjo6Y3JlYXRlU3RydWN0dXJl
KGpzTnVsbCgpKSkKLSAgICAsIGludGVycnVwdGVkRXhlY3V0aW9uRXJyb3JTdHJ1Y3R1cmUoSlNO
b25GaW5hbE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKLSAgICAsIHRlcm1pbmF0
ZWRFeGVjdXRpb25FcnJvclN0cnVjdHVyZShKU05vbkZpbmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1
cmUoanNOdWxsKCkpKQotICAgICwgc3RhdGljU2NvcGVTdHJ1Y3R1cmUoSlNTdGF0aWNTY29wZU9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKLSAgICAsIHN0cmljdEV2YWxBY3RpdmF0
aW9uU3RydWN0dXJlKFN0cmljdEV2YWxBY3RpdmF0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxs
KCkpKQotICAgICwgc3RyaW5nU3RydWN0dXJlKEpTU3RyaW5nOjpjcmVhdGVTdHJ1Y3R1cmUoanNO
dWxsKCkpKQotICAgICwgbm90QW5PYmplY3RTdHJ1Y3R1cmUoSlNOb3RBbk9iamVjdDo6Y3JlYXRl
U3RydWN0dXJlKGpzTnVsbCgpKSkKLSAgICAsIHByb3BlcnR5TmFtZUl0ZXJhdG9yU3RydWN0dXJl
KEpTUHJvcGVydHlOYW1lSXRlcmF0b3I6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSkpCi0gICAg
LCBnZXR0ZXJTZXR0ZXJTdHJ1Y3R1cmUoR2V0dGVyU2V0dGVyOjpjcmVhdGVTdHJ1Y3R1cmUoanNO
dWxsKCkpKQotICAgICwgYXBpV3JhcHBlclN0cnVjdHVyZShKU0FQSVZhbHVlV3JhcHBlcjo6Y3Jl
YXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKLSAgICAsIHNjb3BlQ2hhaW5Ob2RlU3RydWN0dXJlKFNj
b3BlQ2hhaW5Ob2RlOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKQotICAgICwgZXhlY3V0YWJs
ZVN0cnVjdHVyZShFeGVjdXRhYmxlQmFzZTo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKLSAg
ICAsIGV2YWxFeGVjdXRhYmxlU3RydWN0dXJlKEV2YWxFeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1
cmUoanNOdWxsKCkpKQotICAgICwgcHJvZ3JhbUV4ZWN1dGFibGVTdHJ1Y3R1cmUoUHJvZ3JhbUV4
ZWN1dGFibGU6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSkpCi0gICAgLCBmdW5jdGlvbkV4ZWN1
dGFibGVTdHJ1Y3R1cmUoRnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxs
KCkpKQotICAgICwgZHVtbXlNYXJrYWJsZUNlbGxTdHJ1Y3R1cmUoSlNDZWxsOjpjcmVhdGVEdW1t
eVN0cnVjdHVyZSgpKQorICAgICwgYWN0aXZhdGlvblN0cnVjdHVyZShKU0FjdGl2YXRpb246OmNy
ZWF0ZVN0cnVjdHVyZSgqdGhpcywganNOdWxsKCkpKQorICAgICwgaW50ZXJydXB0ZWRFeGVjdXRp
b25FcnJvclN0cnVjdHVyZShKU05vbkZpbmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMs
IGpzTnVsbCgpKSkKKyAgICAsIHRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvclN0cnVjdHVyZShKU05v
bkZpbmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIGpzTnVsbCgpKSkKKyAgICAsIHN0
YXRpY1Njb3BlU3RydWN0dXJlKEpTU3RhdGljU2NvcGVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSgq
dGhpcywganNOdWxsKCkpKQorICAgICwgc3RyaWN0RXZhbEFjdGl2YXRpb25TdHJ1Y3R1cmUoU3Ry
aWN0RXZhbEFjdGl2YXRpb246OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywganNOdWxsKCkpKQorICAg
ICwgc3RyaW5nU3RydWN0dXJlKEpTU3RyaW5nOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIGpzTnVs
bCgpKSkKKyAgICAsIG5vdEFuT2JqZWN0U3RydWN0dXJlKEpTTm90QW5PYmplY3Q6OmNyZWF0ZVN0
cnVjdHVyZSgqdGhpcywganNOdWxsKCkpKQorICAgICwgcHJvcGVydHlOYW1lSXRlcmF0b3JTdHJ1
Y3R1cmUoSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCBqc051
bGwoKSkpCisgICAgLCBnZXR0ZXJTZXR0ZXJTdHJ1Y3R1cmUoR2V0dGVyU2V0dGVyOjpjcmVhdGVT
dHJ1Y3R1cmUoKnRoaXMsIGpzTnVsbCgpKSkKKyAgICAsIGFwaVdyYXBwZXJTdHJ1Y3R1cmUoSlNB
UElWYWx1ZVdyYXBwZXI6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywganNOdWxsKCkpKQorICAgICwg
c2NvcGVDaGFpbk5vZGVTdHJ1Y3R1cmUoU2NvcGVDaGFpbk5vZGU6OmNyZWF0ZVN0cnVjdHVyZSgq
dGhpcywganNOdWxsKCkpKQorICAgICwgZXhlY3V0YWJsZVN0cnVjdHVyZShFeGVjdXRhYmxlQmFz
ZTo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCBqc051bGwoKSkpCisgICAgLCBldmFsRXhlY3V0YWJs
ZVN0cnVjdHVyZShFdmFsRXhlY3V0YWJsZTo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCBqc051bGwo
KSkpCisgICAgLCBwcm9ncmFtRXhlY3V0YWJsZVN0cnVjdHVyZShQcm9ncmFtRXhlY3V0YWJsZTo6
Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCBqc051bGwoKSkpCisgICAgLCBmdW5jdGlvbkV4ZWN1dGFi
bGVTdHJ1Y3R1cmUoRnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIGpz
TnVsbCgpKSkKKyAgICAsIGR1bW15TWFya2FibGVDZWxsU3RydWN0dXJlKEpTQ2VsbDo6Y3JlYXRl
RHVtbXlTdHJ1Y3R1cmUoKnRoaXMpKQogICAgICwgaWRlbnRpZmllclRhYmxlKGdsb2JhbERhdGFU
eXBlID09IERlZmF1bHQgPyB3dGZUaHJlYWREYXRhKCkuY3VycmVudElkZW50aWZpZXJUYWJsZSgp
IDogY3JlYXRlSWRlbnRpZmllclRhYmxlKCkpCiAgICAgLCBwcm9wZXJ0eU5hbWVzKG5ldyBDb21t
b25JZGVudGlmaWVycyh0aGlzKSkKICAgICAsIGVtcHR5TGlzdChuZXcgTWFya2VkQXJndW1lbnRC
dWZmZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHAKaW5kZXggOTBiNDE2MDMwNGJhNTU4ZGM4YjVmMzIwYTIwMjZkYzJhNjk5NjAzYy4uYTk2
ZGVjMTExNWM3NTIzNTkyNDg0YWQ3NTNjNjFiYzUyNDhkZTc0OSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtMTc1LDY0ICsxNzUs
NjQgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6cmVzZXQoSlNWYWx1ZSBwcm90b3R5cGUpCiAKICAg
ICAvLyBQcm90b3R5cGVzCiAKLSAgICBtX2Z1bmN0aW9uUHJvdG90eXBlLnNldChleGVjLT5nbG9i
YWxEYXRhKCksIHRoaXMsIG5ldyAoZXhlYykgRnVuY3Rpb25Qcm90b3R5cGUoZXhlYywgdGhpcywg
RnVuY3Rpb25Qcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSkpKTsgLy8gVGhlIHJl
YWwgcHJvdG90eXBlIHdpbGwgYmUgc2V0IG9uY2UgT2JqZWN0UHJvdG90eXBlIGlzIGNyZWF0ZWQu
Ci0gICAgbV9mdW5jdGlvblN0cnVjdHVyZSA9IEpTRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZSht
X2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKTsKLSAgICBtX2ludGVybmFsRnVuY3Rpb25TdHJ1Y3R1
cmUgPSBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUobV9mdW5jdGlvblByb3RvdHlw
ZS5nZXQoKSk7CisgICAgbV9mdW5jdGlvblByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgp
LCB0aGlzLCBuZXcgKGV4ZWMpIEZ1bmN0aW9uUHJvdG90eXBlKGV4ZWMsIHRoaXMsIEZ1bmN0aW9u
UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBqc051bGwoKSkp
KTsgLy8gVGhlIHJlYWwgcHJvdG90eXBlIHdpbGwgYmUgc2V0IG9uY2UgT2JqZWN0UHJvdG90eXBl
IGlzIGNyZWF0ZWQuCisgICAgbV9mdW5jdGlvblN0cnVjdHVyZSA9IEpTRnVuY3Rpb246OmNyZWF0
ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkp
OworICAgIG1faW50ZXJuYWxGdW5jdGlvblN0cnVjdHVyZSA9IEludGVybmFsRnVuY3Rpb246OmNy
ZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0
KCkpOwogICAgIEpTRnVuY3Rpb24qIGNhbGxGdW5jdGlvbiA9IDA7CiAgICAgSlNGdW5jdGlvbiog
YXBwbHlGdW5jdGlvbiA9IDA7CiAgICAgbV9mdW5jdGlvblByb3RvdHlwZS0+YWRkRnVuY3Rpb25Q
cm9wZXJ0aWVzKGV4ZWMsIHRoaXMsIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksICZjYWxsRnVu
Y3Rpb24sICZhcHBseUZ1bmN0aW9uKTsKICAgICBtX2NhbGxGdW5jdGlvbi5zZXQoZXhlYy0+Z2xv
YmFsRGF0YSgpLCB0aGlzLCBjYWxsRnVuY3Rpb24pOwogICAgIG1fYXBwbHlGdW5jdGlvbi5zZXQo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBhcHBseUZ1bmN0aW9uKTsKLSAgICBtX29iamVjdFBy
b3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIE9iamVjdFBy
b3RvdHlwZShleGVjLCB0aGlzLCBPYmplY3RQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShqc051
bGwoKSksIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCkpKTsKKyAgICBtX29iamVjdFByb3RvdHlw
ZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIE9iamVjdFByb3RvdHlw
ZShleGVjLCB0aGlzLCBPYmplY3RQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9i
YWxEYXRhKCksIGpzTnVsbCgpKSwgbV9mdW5jdGlvblN0cnVjdHVyZS5nZXQoKSkpOwogICAgIG1f
ZnVuY3Rpb25Qcm90b3R5cGUtPnN0cnVjdHVyZSgpLT5zZXRQcm90b3R5cGVXaXRob3V0VHJhbnNp
dGlvbihtX29iamVjdFByb3RvdHlwZS5nZXQoKSk7CiAKLSAgICBtX2VtcHR5T2JqZWN0U3RydWN0
dXJlID0gbV9vYmplY3RQcm90b3R5cGUtPmluaGVyaXRvcklEKCk7CisgICAgbV9lbXB0eU9iamVj
dFN0cnVjdHVyZSA9IG1fb2JqZWN0UHJvdG90eXBlLT5pbmhlcml0b3JJRChleGVjLT5nbG9iYWxE
YXRhKCkpOwogCi0gICAgbV9jYWxsYmFja0Z1bmN0aW9uU3RydWN0dXJlID0gSlNDYWxsYmFja0Z1
bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUobV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSk7Ci0gICAg
bV9hcmd1bWVudHNTdHJ1Y3R1cmUgPSBBcmd1bWVudHM6OmNyZWF0ZVN0cnVjdHVyZShtX29iamVj
dFByb3RvdHlwZS5nZXQoKSk7Ci0gICAgbV9jYWxsYmFja0NvbnN0cnVjdG9yU3RydWN0dXJlID0g
SlNDYWxsYmFja0NvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUobV9vYmplY3RQcm90b3R5cGUu
Z2V0KCkpOwotICAgIG1fY2FsbGJhY2tPYmplY3RTdHJ1Y3R1cmUgPSBKU0NhbGxiYWNrT2JqZWN0
PEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdD46OmNyZWF0ZVN0cnVjdHVyZShtX29iamVjdFByb3Rv
dHlwZS5nZXQoKSk7CisgICAgbV9jYWxsYmFja0Z1bmN0aW9uU3RydWN0dXJlID0gSlNDYWxsYmFj
a0Z1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX2Z1bmN0aW9u
UHJvdG90eXBlLmdldCgpKTsKKyAgICBtX2FyZ3VtZW50c1N0cnVjdHVyZSA9IEFyZ3VtZW50czo6
Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9vYmplY3RQcm90b3R5cGUuZ2V0
KCkpOworICAgIG1fY2FsbGJhY2tDb25zdHJ1Y3RvclN0cnVjdHVyZSA9IEpTQ2FsbGJhY2tDb25z
dHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9vYmplY3RQcm90
b3R5cGUuZ2V0KCkpOworICAgIG1fY2FsbGJhY2tPYmplY3RTdHJ1Y3R1cmUgPSBKU0NhbGxiYWNr
T2JqZWN0PEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdD46OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5n
bG9iYWxEYXRhKCksIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKTsKIAotICAgIG1fYXJyYXlQcm90
b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBBcnJheVByb3Rv
dHlwZSh0aGlzLCBBcnJheVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKG1fb2JqZWN0UHJvdG90
eXBlLmdldCgpKSkpOwotICAgIG1fYXJyYXlTdHJ1Y3R1cmUgPSBKU0FycmF5OjpjcmVhdGVTdHJ1
Y3R1cmUobV9hcnJheVByb3RvdHlwZS5nZXQoKSk7Ci0gICAgbV9yZWdFeHBNYXRjaGVzQXJyYXlT
dHJ1Y3R1cmUgPSBSZWdFeHBNYXRjaGVzQXJyYXk6OmNyZWF0ZVN0cnVjdHVyZShtX2FycmF5UHJv
dG90eXBlLmdldCgpKTsKKyAgICBtX2FycmF5UHJvdG90eXBlLnNldChleGVjLT5nbG9iYWxEYXRh
KCksIHRoaXMsIG5ldyAoZXhlYykgQXJyYXlQcm90b3R5cGUodGhpcywgQXJyYXlQcm90b3R5cGU6
OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fb2JqZWN0UHJvdG90eXBlLmdl
dCgpKSkpOworICAgIG1fYXJyYXlTdHJ1Y3R1cmUgPSBKU0FycmF5OjpjcmVhdGVTdHJ1Y3R1cmUo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX2FycmF5UHJvdG90eXBlLmdldCgpKTsKKyAgICBtX3JlZ0V4
cE1hdGNoZXNBcnJheVN0cnVjdHVyZSA9IFJlZ0V4cE1hdGNoZXNBcnJheTo6Y3JlYXRlU3RydWN0
dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9hcnJheVByb3RvdHlwZS5nZXQoKSk7CiAKLSAgICBt
X3N0cmluZ1Byb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMp
IFN0cmluZ1Byb3RvdHlwZShleGVjLCB0aGlzLCBTdHJpbmdQcm90b3R5cGU6OmNyZWF0ZVN0cnVj
dHVyZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpKTsKLSAgICBtX3N0cmluZ09iamVjdFN0cnVj
dHVyZSA9IFN0cmluZ09iamVjdDo6Y3JlYXRlU3RydWN0dXJlKG1fc3RyaW5nUHJvdG90eXBlLmdl
dCgpKTsKKyAgICBtX3N0cmluZ1Byb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlz
LCBuZXcgKGV4ZWMpIFN0cmluZ1Byb3RvdHlwZShleGVjLCB0aGlzLCBTdHJpbmdQcm90b3R5cGU6
OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fb2JqZWN0UHJvdG90eXBlLmdl
dCgpKSkpOworICAgIG1fc3RyaW5nT2JqZWN0U3RydWN0dXJlID0gU3RyaW5nT2JqZWN0OjpjcmVh
dGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX3N0cmluZ1Byb3RvdHlwZS5nZXQoKSk7
CiAKLSAgICBtX2Jvb2xlYW5Qcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywg
bmV3IChleGVjKSBCb29sZWFuUHJvdG90eXBlKGV4ZWMsIHRoaXMsIEJvb2xlYW5Qcm90b3R5cGU6
OmNyZWF0ZVN0cnVjdHVyZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSksIG1fZnVuY3Rpb25TdHJ1
Y3R1cmUuZ2V0KCkpKTsKLSAgICBtX2Jvb2xlYW5PYmplY3RTdHJ1Y3R1cmUgPSBCb29sZWFuT2Jq
ZWN0OjpjcmVhdGVTdHJ1Y3R1cmUobV9ib29sZWFuUHJvdG90eXBlLmdldCgpKTsKKyAgICBtX2Jv
b2xlYW5Qcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBC
b29sZWFuUHJvdG90eXBlKGV4ZWMsIHRoaXMsIEJvb2xlYW5Qcm90b3R5cGU6OmNyZWF0ZVN0cnVj
dHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSwgbV9mdW5j
dGlvblN0cnVjdHVyZS5nZXQoKSkpOworICAgIG1fYm9vbGVhbk9iamVjdFN0cnVjdHVyZSA9IEJv
b2xlYW5PYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fYm9vbGVh
blByb3RvdHlwZS5nZXQoKSk7CiAKLSAgICBtX251bWJlclByb3RvdHlwZS5zZXQoZXhlYy0+Z2xv
YmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIE51bWJlclByb3RvdHlwZShleGVjLCB0aGlzLCBO
dW1iZXJQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSks
IG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCkpKTsKLSAgICBtX251bWJlck9iamVjdFN0cnVjdHVy
ZSA9IE51bWJlck9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKG1fbnVtYmVyUHJvdG90eXBlLmdldCgp
KTsKKyAgICBtX251bWJlclByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBu
ZXcgKGV4ZWMpIE51bWJlclByb3RvdHlwZShleGVjLCB0aGlzLCBOdW1iZXJQcm90b3R5cGU6OmNy
ZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fb2JqZWN0UHJvdG90eXBlLmdldCgp
KSwgbV9mdW5jdGlvblN0cnVjdHVyZS5nZXQoKSkpOworICAgIG1fbnVtYmVyT2JqZWN0U3RydWN0
dXJlID0gTnVtYmVyT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBt
X251bWJlclByb3RvdHlwZS5nZXQoKSk7CiAKLSAgICBtX2RhdGVQcm90b3R5cGUuc2V0KGV4ZWMt
Pmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBEYXRlUHJvdG90eXBlKGV4ZWMsIHRoaXMs
IERhdGVQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSkp
KTsKLSAgICBtX2RhdGVTdHJ1Y3R1cmUgPSBEYXRlSW5zdGFuY2U6OmNyZWF0ZVN0cnVjdHVyZSht
X2RhdGVQcm90b3R5cGUuZ2V0KCkpOworICAgIG1fZGF0ZVByb3RvdHlwZS5zZXQoZXhlYy0+Z2xv
YmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIERhdGVQcm90b3R5cGUoZXhlYywgdGhpcywgRGF0
ZVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9vYmplY3RQ
cm90b3R5cGUuZ2V0KCkpKSk7CisgICAgbV9kYXRlU3RydWN0dXJlID0gRGF0ZUluc3RhbmNlOjpj
cmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX2RhdGVQcm90b3R5cGUuZ2V0KCkp
OwogCi0gICAgbV9yZWdFeHBQcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywg
bmV3IChleGVjKSBSZWdFeHBQcm90b3R5cGUoZXhlYywgdGhpcywgUmVnRXhwUHJvdG90eXBlOjpj
cmVhdGVTdHJ1Y3R1cmUobV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpLCBtX2Z1bmN0aW9uU3RydWN0
dXJlLmdldCgpKSk7Ci0gICAgbV9yZWdFeHBTdHJ1Y3R1cmUgPSBSZWdFeHBPYmplY3Q6OmNyZWF0
ZVN0cnVjdHVyZShtX3JlZ0V4cFByb3RvdHlwZS5nZXQoKSk7CisgICAgbV9yZWdFeHBQcm90b3R5
cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBSZWdFeHBQcm90b3R5
cGUoZXhlYywgdGhpcywgUmVnRXhwUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSksIG1fZnVuY3Rpb25TdHJ1Y3R1cmUu
Z2V0KCkpKTsKKyAgICBtX3JlZ0V4cFN0cnVjdHVyZSA9IFJlZ0V4cE9iamVjdDo6Y3JlYXRlU3Ry
dWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9yZWdFeHBQcm90b3R5cGUuZ2V0KCkpOwogCiAg
ICAgbV9tZXRob2RDYWxsRHVtbXkuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgY29uc3Ry
dWN0RW1wdHlPYmplY3QoZXhlYykpOwogCi0gICAgRXJyb3JQcm90b3R5cGUqIGVycm9yUHJvdG90
eXBlID0gbmV3IChleGVjKSBFcnJvclByb3RvdHlwZShleGVjLCB0aGlzLCBFcnJvclByb3RvdHlw
ZTo6Y3JlYXRlU3RydWN0dXJlKG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSwgbV9mdW5jdGlvblN0
cnVjdHVyZS5nZXQoKSk7Ci0gICAgbV9lcnJvclN0cnVjdHVyZSA9IEVycm9ySW5zdGFuY2U6OmNy
ZWF0ZVN0cnVjdHVyZShlcnJvclByb3RvdHlwZSk7CisgICAgRXJyb3JQcm90b3R5cGUqIGVycm9y
UHJvdG90eXBlID0gbmV3IChleGVjKSBFcnJvclByb3RvdHlwZShleGVjLCB0aGlzLCBFcnJvclBy
b3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9vYmplY3RQcm90
b3R5cGUuZ2V0KCkpLCBtX2Z1bmN0aW9uU3RydWN0dXJlLmdldCgpKTsKKyAgICBtX2Vycm9yU3Ry
dWN0dXJlID0gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEo
KSwgZXJyb3JQcm90b3R5cGUpOwogCiAgICAgLy8gQ29uc3RydWN0b3JzCiAKLSAgICBKU0NlbGwq
IG9iamVjdENvbnN0cnVjdG9yID0gbmV3IChleGVjKSBPYmplY3RDb25zdHJ1Y3RvcihleGVjLCB0
aGlzLCBPYmplY3RDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKG1fZnVuY3Rpb25Qcm90b3R5
cGUuZ2V0KCkpLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSk7Ci0gICAgSlNDZWxsKiBmdW5jdGlv
bkNvbnN0cnVjdG9yID0gbmV3IChleGVjKSBGdW5jdGlvbkNvbnN0cnVjdG9yKGV4ZWMsIHRoaXMs
IEZ1bmN0aW9uQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShtX2Z1bmN0aW9uUHJvdG90eXBl
LmdldCgpKSwgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSk7Ci0gICAgSlNDZWxsKiBhcnJheUNv
bnN0cnVjdG9yID0gbmV3IChleGVjKSBBcnJheUNvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIEFycmF5
Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwg
bV9hcnJheVByb3RvdHlwZS5nZXQoKSwgbV9mdW5jdGlvblN0cnVjdHVyZS5nZXQoKSk7Ci0gICAg
SlNDZWxsKiBzdHJpbmdDb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgU3RyaW5nQ29uc3RydWN0b3Io
ZXhlYywgdGhpcywgU3RyaW5nQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShtX2Z1bmN0aW9u
UHJvdG90eXBlLmdldCgpKSwgbV9mdW5jdGlvblN0cnVjdHVyZS5nZXQoKSwgbV9zdHJpbmdQcm90
b3R5cGUuZ2V0KCkpOwotICAgIEpTQ2VsbCogYm9vbGVhbkNvbnN0cnVjdG9yID0gbmV3IChleGVj
KSBCb29sZWFuQ29uc3RydWN0b3IoZXhlYywgdGhpcywgQm9vbGVhbkNvbnN0cnVjdG9yOjpjcmVh
dGVTdHJ1Y3R1cmUobV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIG1fYm9vbGVhblByb3RvdHlw
ZS5nZXQoKSk7Ci0gICAgSlNDZWxsKiBudW1iZXJDb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgTnVt
YmVyQ29uc3RydWN0b3IoZXhlYywgdGhpcywgTnVtYmVyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZShtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9udW1iZXJQcm90b3R5cGUuZ2V0KCkp
OwotICAgIEpTQ2VsbCogZGF0ZUNvbnN0cnVjdG9yID0gbmV3IChleGVjKSBEYXRlQ29uc3RydWN0
b3IoZXhlYywgdGhpcywgRGF0ZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUobV9mdW5jdGlv
blByb3RvdHlwZS5nZXQoKSksIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksIG1fZGF0ZVByb3Rv
dHlwZS5nZXQoKSk7CisgICAgSlNDZWxsKiBvYmplY3RDb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykg
T2JqZWN0Q29uc3RydWN0b3IoZXhlYywgdGhpcywgT2JqZWN0Q29uc3RydWN0b3I6OmNyZWF0ZVN0
cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBt
X29iamVjdFByb3RvdHlwZS5nZXQoKSk7CisgICAgSlNDZWxsKiBmdW5jdGlvbkNvbnN0cnVjdG9y
ID0gbmV3IChleGVjKSBGdW5jdGlvbkNvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIEZ1bmN0aW9uQ29u
c3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25Q
cm90b3R5cGUuZ2V0KCkpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKTsKKyAgICBKU0NlbGwq
IGFycmF5Q29uc3RydWN0b3IgPSBuZXcgKGV4ZWMpIEFycmF5Q29uc3RydWN0b3IoZXhlYywgdGhp
cywgQXJyYXlDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwg
bV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIG1fYXJyYXlQcm90b3R5cGUuZ2V0KCksIG1fZnVu
Y3Rpb25TdHJ1Y3R1cmUuZ2V0KCkpOworICAgIEpTQ2VsbCogc3RyaW5nQ29uc3RydWN0b3IgPSBu
ZXcgKGV4ZWMpIFN0cmluZ0NvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIFN0cmluZ0NvbnN0cnVjdG9y
OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX2Z1bmN0aW9uUHJvdG90eXBl
LmdldCgpKSwgbV9mdW5jdGlvblN0cnVjdHVyZS5nZXQoKSwgbV9zdHJpbmdQcm90b3R5cGUuZ2V0
KCkpOworICAgIEpTQ2VsbCogYm9vbGVhbkNvbnN0cnVjdG9yID0gbmV3IChleGVjKSBCb29sZWFu
Q29uc3RydWN0b3IoZXhlYywgdGhpcywgQm9vbGVhbkNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1
cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9ib29s
ZWFuUHJvdG90eXBlLmdldCgpKTsKKyAgICBKU0NlbGwqIG51bWJlckNvbnN0cnVjdG9yID0gbmV3
IChleGVjKSBOdW1iZXJDb25zdHJ1Y3RvcihleGVjLCB0aGlzLCBOdW1iZXJDb25zdHJ1Y3Rvcjo6
Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9mdW5jdGlvblByb3RvdHlwZS5n
ZXQoKSksIG1fbnVtYmVyUHJvdG90eXBlLmdldCgpKTsKKyAgICBKU0NlbGwqIGRhdGVDb25zdHJ1
Y3RvciA9IG5ldyAoZXhlYykgRGF0ZUNvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIERhdGVDb25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9mdW5jdGlvblByb3Rv
dHlwZS5nZXQoKSksIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksIG1fZGF0ZVByb3RvdHlwZS5n
ZXQoKSk7CiAKLSAgICBtX3JlZ0V4cENvbnN0cnVjdG9yLnNldChleGVjLT5nbG9iYWxEYXRhKCks
IHRoaXMsIG5ldyAoZXhlYykgUmVnRXhwQ29uc3RydWN0b3IoZXhlYywgdGhpcywgUmVnRXhwQ29u
c3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9y
ZWdFeHBQcm90b3R5cGUuZ2V0KCkpKTsKKyAgICBtX3JlZ0V4cENvbnN0cnVjdG9yLnNldChleGVj
LT5nbG9iYWxEYXRhKCksIHRoaXMsIG5ldyAoZXhlYykgUmVnRXhwQ29uc3RydWN0b3IoZXhlYywg
dGhpcywgUmVnRXhwQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRh
KCksIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBtX3JlZ0V4cFByb3RvdHlwZS5nZXQoKSkp
OwogCi0gICAgbV9lcnJvckNvbnN0cnVjdG9yLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMs
IG5ldyAoZXhlYykgRXJyb3JDb25zdHJ1Y3RvcihleGVjLCB0aGlzLCBFcnJvckNvbnN0cnVjdG9y
OjpjcmVhdGVTdHJ1Y3R1cmUobV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIGVycm9yUHJvdG90
eXBlKSk7CisgICAgbV9lcnJvckNvbnN0cnVjdG9yLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRo
aXMsIG5ldyAoZXhlYykgRXJyb3JDb25zdHJ1Y3RvcihleGVjLCB0aGlzLCBFcnJvckNvbnN0cnVj
dG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX2Z1bmN0aW9uUHJvdG90
eXBlLmdldCgpKSwgZXJyb3JQcm90b3R5cGUpKTsKIAotICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IG5h
dGl2ZUVycm9yUHJvdG90eXBlU3RydWN0dXJlID0gTmF0aXZlRXJyb3JQcm90b3R5cGU6OmNyZWF0
ZVN0cnVjdHVyZShlcnJvclByb3RvdHlwZSk7Ci0gICAgUmVmUHRyPFN0cnVjdHVyZT4gbmF0aXZl
RXJyb3JTdHJ1Y3R1cmUgPSBOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUo
bV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSk7CisgICAgUmVmUHRyPFN0cnVjdHVyZT4gbmF0aXZl
RXJyb3JQcm90b3R5cGVTdHJ1Y3R1cmUgPSBOYXRpdmVFcnJvclByb3RvdHlwZTo6Y3JlYXRlU3Ry
dWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXJyb3JQcm90b3R5cGUpOworICAgIFJlZlB0cjxT
dHJ1Y3R1cmU+IG5hdGl2ZUVycm9yU3RydWN0dXJlID0gTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6
Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9mdW5jdGlvblByb3RvdHlwZS5n
ZXQoKSk7CiAgICAgbV9ldmFsRXJyb3JDb25zdHJ1Y3Rvci5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgp
LCB0aGlzLCBuZXcgKGV4ZWMpIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoZXhlYywgdGhpcywgbmF0
aXZlRXJyb3JTdHJ1Y3R1cmUsIG5hdGl2ZUVycm9yUHJvdG90eXBlU3RydWN0dXJlLCAiRXZhbEVy
cm9yIikpOwogICAgIG1fcmFuZ2VFcnJvckNvbnN0cnVjdG9yLnNldChleGVjLT5nbG9iYWxEYXRh
KCksIHRoaXMsIG5ldyAoZXhlYykgTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcihleGVjLCB0aGlzLCBu
YXRpdmVFcnJvclN0cnVjdHVyZSwgbmF0aXZlRXJyb3JQcm90b3R5cGVTdHJ1Y3R1cmUsICJSYW5n
ZUVycm9yIikpOwogICAgIG1fcmVmZXJlbmNlRXJyb3JDb25zdHJ1Y3Rvci5zZXQoZXhlYy0+Z2xv
YmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoZXhlYywg
dGhpcywgbmF0aXZlRXJyb3JTdHJ1Y3R1cmUsIG5hdGl2ZUVycm9yUHJvdG90eXBlU3RydWN0dXJl
LCAiUmVmZXJlbmNlRXJyb3IiKSk7CkBAIC0yNzIsMTEgKzI3MiwxMSBAQCB2b2lkIEpTR2xvYmFs
T2JqZWN0OjpyZXNldChKU1ZhbHVlIHByb3RvdHlwZSkKIAogICAgIC8vIFNldCBnbG9iYWwgdmFs
dWVzLgogICAgIEdsb2JhbFByb3BlcnR5SW5mbyBzdGF0aWNHbG9iYWxzW10gPSB7Ci0gICAgICAg
IEdsb2JhbFByb3BlcnR5SW5mbyhJZGVudGlmaWVyKGV4ZWMsICJNYXRoIiksIG5ldyAoZXhlYykg
TWF0aE9iamVjdChleGVjLCB0aGlzLCBNYXRoT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUobV9vYmpl
Y3RQcm90b3R5cGUuZ2V0KCkpKSwgRG9udEVudW0gfCBEb250RGVsZXRlKSwKKyAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKElkZW50aWZpZXIoZXhlYywgIk1hdGgiKSwgbmV3IChleGVjKSBNYXRo
T2JqZWN0KGV4ZWMsIHRoaXMsIE1hdGhPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9i
YWxEYXRhKCksIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSksIERvbnRFbnVtIHwgRG9udERlbGV0
ZSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyhJZGVudGlmaWVyKGV4ZWMsICJOYU4iKSwg
anNOYU4oKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8oSWRlbnRpZmllcihleGVjLCAiSW5maW5pdHkiKSwganNOdW1iZXIoSW5m
KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9w
ZXJ0eUluZm8oSWRlbnRpZmllcihleGVjLCAidW5kZWZpbmVkIiksIGpzVW5kZWZpbmVkKCksIERv
bnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvKElkZW50aWZpZXIoZXhlYywgIkpTT04iKSwgbmV3IChleGVjKSBKU09OT2JqZWN0KHRoaXMs
IEpTT05PYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZShtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpLCBE
b250RW51bSB8IERvbnREZWxldGUpCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyhJZGVudGlm
aWVyKGV4ZWMsICJKU09OIiksIG5ldyAoZXhlYykgSlNPTk9iamVjdCh0aGlzLCBKU09OT2JqZWN0
OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX29iamVjdFByb3RvdHlwZS5n
ZXQoKSkpLCBEb250RW51bSB8IERvbnREZWxldGUpCiAgICAgfTsKIAogICAgIGFkZFN0YXRpY0ds
b2JhbHMoc3RhdGljR2xvYmFscywgV1RGX0FSUkFZX0xFTkdUSChzdGF0aWNHbG9iYWxzKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCBj
ZGU5OTYwYTg3YjEzNTQ1ZGQ3MjkzZjFmY2Y2YjEyMjg3NjRkOWE0Li41NmVlYTYzMjI2N2Y0N2Vh
MmU3NDYxODdmOGIzYmNmMmY5NDhmNjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTExMyw4ICsxMTMsOCBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHZvaWQqIG9wZXJhdG9yIG5ldyhzaXplX3QsIEpTR2xv
YmFsRGF0YSopOwogICAgICAgICAKLSAgICAgICAgZXhwbGljaXQgSlNHbG9iYWxPYmplY3QoKQot
ICAgICAgICAgICAgOiBKU1ZhcmlhYmxlT2JqZWN0KEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1
Y3R1cmUoanNOdWxsKCkpLCAmbV9zeW1ib2xUYWJsZSwgMCkKKyAgICAgICAgZXhwbGljaXQgSlNH
bG9iYWxPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQorICAgICAgICAgICAgOiBKU1Zh
cmlhYmxlT2JqZWN0KEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwg
anNOdWxsKCkpLCAmbV9zeW1ib2xUYWJsZSwgMCkKICAgICAgICAgICAgICwgbV9yZWdpc3RlckFy
cmF5U2l6ZSgwKQogICAgICAgICAgICAgLCBtX2dsb2JhbFNjb3BlQ2hhaW4oKQogICAgICAgICAg
ICAgLCBtX3dlYWtSYW5kb20oc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHJhbmRvbU51bWJlcigpICog
KHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSArIDEuMCkpKQpAQCAtMjM4LDkg
KzIzOCw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSgpIGNvbnN0IHsgcmV0dXJuICptX2dsb2JhbERhdGEuZ2V0KCk7IH0KIAotICAgICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3Rv
dHlwZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1
cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAg
ewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNT
bG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgdm9pZCByZWdpc3Rlcldl
YWtNYXAoT3BhcXVlSlNXZWFrT2JqZWN0TWFwKiBtYXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKaW5kZXggN2U3MGE5ODY0NmIzOGUwZWNjZmRlYmIw
NzRmZTBiMmJkNjY4MjQwZS4uYjg4MjAzOTFlZjYxNjVhYjFmZGUwNmMyMDA2ODk1YjU2OWEyYjc5
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVj
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaApA
QCAtNDMsOSArNDMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgewogICAgICAgICB9CiAK
LSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNW
YWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3Jl
YXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5
cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENv
dW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgIHByaXZhdGU6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmgKaW5kZXggNTI2NGZk
Nzk4ZjAxNDIzYjk0MDg2MmViZmJmOGRhM2IwZmVkMmNjMC4uYTUyYzU0MzhkMDVjOWU2ODM4Yjk5
ODBlYmZhYTMzODQzODhjZTFlNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPTk9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T05PYmplY3QuaApAQCAtMzYsOSArMzYsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6
CiAgICAgICAgIEpTT05PYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9uTnVs
bFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUpOwogCi0gICAgICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAg
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwg
JnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAppbmRleCAyMDljOWVmN2U2OTgwOWI4ZWZhMDJkOTRi
YjhmNzVkNWQxZmE5MDg4Li41ZjVjMDVjNWRlZWVkMzg1NGZkYjExYTkwOTg5NDNlNDNhNGMzMzEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC01NzIs
OSArNTcyLDkgQEAgTkVWRVJfSU5MSU5FIHZvaWQgSlNPYmplY3Q6OmZpbGxHZXR0ZXJQcm9wZXJ0
eVNsb3QoUHJvcGVydHlTbG90JiBzbG90LCBXcml0ZUJhcnIKICAgICAgICAgc2xvdC5zZXRVbmRl
ZmluZWQoKTsKIH0KIAotU3RydWN0dXJlKiBKU09iamVjdDo6Y3JlYXRlSW5oZXJpdG9ySUQoKQor
U3RydWN0dXJlKiBKU09iamVjdDo6Y3JlYXRlSW5oZXJpdG9ySUQoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhKQogewotICAgIG1faW5oZXJpdG9ySUQgPSBjcmVhdGVFbXB0eU9iamVjdFN0cnVjdHVy
ZSh0aGlzKTsKKyAgICBtX2luaGVyaXRvcklEID0gY3JlYXRlRW1wdHlPYmplY3RTdHJ1Y3R1cmUo
Z2xvYmFsRGF0YSwgdGhpcyk7CiAgICAgcmV0dXJuIG1faW5oZXJpdG9ySUQuZ2V0KCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IGVlZjM3YjIyYTZl
MzM2NWRiY2IxZjNjZThmZGViMzMxZjlmYTg0NmMuLjY2YWMyZDZiYTE2MjE3MzYzN2Y3YjM5MjEw
ZTYzNTA1Njg5MDBmODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
aApAQCAtOTIsNyArOTIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBzZXRQcm90
b3R5cGVXaXRoQ3ljbGVDaGVjayhKU1ZhbHVlIHByb3RvdHlwZSk7CiAgICAgICAgIAogICAgICAg
ICB2b2lkIHNldFN0cnVjdHVyZShOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+KTsKLSAgICAg
ICAgU3RydWN0dXJlKiBpbmhlcml0b3JJRCgpOworICAgICAgICBTdHJ1Y3R1cmUqIGluaGVyaXRv
cklEKEpTR2xvYmFsRGF0YSYpOwogCiAgICAgICAgIHZpcnR1YWwgVVN0cmluZyBjbGFzc05hbWUo
KSBjb25zdDsKIApAQCAtMjUwLDkgKzI1MCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBz
dGF0aWMgSlNfRVhQT1JUREFUQSBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCiAgICAgcHJvdGVj
dGVkOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVy
ZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJl
PiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3Rv
dHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNT
bG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gMDsKQEAgLTI5Niw3ICsyOTYs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBpbmxpbmVHZXRPd25Qcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmKTsKIAogICAgICAgICBjb25zdCBIYXNoRW50cnkqIGZpbmRQcm9wZXJ0eUhhc2hFbnRyeShF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpIGNvbnN0OwotICAgICAg
ICBTdHJ1Y3R1cmUqIGNyZWF0ZUluaGVyaXRvcklEKCk7CisgICAgICAgIFN0cnVjdHVyZSogY3Jl
YXRlSW5oZXJpdG9ySUQoSlNHbG9iYWxEYXRhJik7CiAKICAgICAgICAgUHJvcGVydHlTdG9yYWdl
IG1fcHJvcGVydHlTdG9yYWdlOwogICAgICAgICBSZWZQdHI8U3RydWN0dXJlPiBtX2luaGVyaXRv
cklEOwpAQCAtMzIwLDkgKzMyMCw5IEBAIENPTVBJTEVfQVNTRVJUKChKU0ZpbmFsT2JqZWN0X2lu
bGluZVN0b3JhZ2VDYXBhY2l0eSA+PSBKU05vbkZpbmFsT2JqZWN0X2lubGluZVN0CiAgICAgICAg
IGZyaWVuZCBjbGFzcyBKU09iamVjdDsKIAogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisg
ICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAg
ICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUs
IFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50
LCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpAQCAtMzQ4LDkgKzM0OCw5
IEBAIENPTVBJTEVfQVNTRVJUKChKU0ZpbmFsT2JqZWN0X2lubGluZVN0b3JhZ2VDYXBhY2l0eSA+
PSBKU05vbkZpbmFsT2JqZWN0X2lubGluZVN0CiAgICAgICAgICAgICByZXR1cm4gbmV3IChleGVj
KSBKU0ZpbmFsT2JqZWN0KHN0cnVjdHVyZSk7CiAgICAgICAgIH0KIAotICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkK
KyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAg
ICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwor
ICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlw
ZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291
bnQsICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgpAQCAtMzc3LDkgKzM3Nyw5
IEBAIGlubGluZSBKU09iamVjdCogY29uc3RydWN0RW1wdHlPYmplY3QoRXhlY1N0YXRlKiBleGVj
LCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1CiAgICAgcmV0dXJuIEpTRmluYWxPYmplY3Q6OmNy
ZWF0ZShleGVjLCBzdHJ1Y3R1cmUpOwogfQogCi1pbmxpbmUgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+
IGNyZWF0ZUVtcHR5T2JqZWN0U3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQoraW5saW5lIFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVFbXB0eU9iamVjdFN0cnVjdHVyZShKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogewotICAgIHJldHVybiBKU0ZpbmFs
T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUocHJvdG90eXBlKTsKKyAgICByZXR1cm4gSlNGaW5hbE9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbERhdGEsIHByb3RvdHlwZSk7CiB9CiAKIGlubGlu
ZSBKU09iamVjdCogYXNPYmplY3QoSlNDZWxsKiBjZWxsKQpAQCAtNDQyLDExICs0NDIsMTEgQEAg
aW5saW5lIHZvaWQgSlNPYmplY3Q6OnNldFN0cnVjdHVyZShOb25OdWxsUGFzc1JlZlB0cjxTdHJ1
Y3R1cmU+IHN0cnVjdHVyZSkKICAgICBtX3N0cnVjdHVyZSA9IHN0cnVjdHVyZS5sZWFrUmVmKCk7
IC8vIH5KU09iamVjdCBiYWxhbmNlcyB0aGlzIHJlZigpCiB9CiAKLWlubGluZSBTdHJ1Y3R1cmUq
IEpTT2JqZWN0Ojppbmhlcml0b3JJRCgpCitpbmxpbmUgU3RydWN0dXJlKiBKU09iamVjdDo6aW5o
ZXJpdG9ySUQoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQogewogICAgIGlmIChtX2luaGVyaXRv
cklEKQogICAgICAgICByZXR1cm4gbV9pbmhlcml0b3JJRC5nZXQoKTsKLSAgICByZXR1cm4gY3Jl
YXRlSW5oZXJpdG9ySUQoKTsKKyAgICByZXR1cm4gY3JlYXRlSW5oZXJpdG9ySUQoZ2xvYmFsRGF0
YSk7CiB9CiAKIGlubGluZSBib29sIFN0cnVjdHVyZTo6aXNVc2luZ0lubGluZVN0b3JhZ2UoKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RX
aXRoR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dFdpdGhHbG9iYWxPYmplY3QuaAppbmRleCBjNWUzMDQ3NWEwYmQ4OGMxZWQzMjU5OTE2ZmIwMmE0
ZmVjYWQ2MmIwLi44MzgwNTE0ZDU3YWNiZjVlOGI1YjBlZjU0MDUzZTgyYzgxYzE3NTM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxP
YmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhH
bG9iYWxPYmplY3QuaApAQCAtMzQsOSArMzQsOSBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdDsKIAog
Y2xhc3MgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0
dXJlKEpTVmFsdWUgcHJvdG8pCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVh
dGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7Cisg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOwogICAgIH0KIAogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1l
SXRlcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1l
SXRlcmF0b3IuaAppbmRleCA5MGY0NDllZTIxZTk3ZTI3ODBkNDEyNDlkMzczNTU3YzkzMmE4MTk4
Li44YjAwN2RkNzY3ZjY0NjRiMTQzODE5OWU0ZmE2MTg1ZTRkMzJhZDAxIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5o
CkBAIC00NSw5ICs0NSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHB1YmxpYzoKICAgICAgICAg
c3RhdGljIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIGNyZWF0ZShFeGVjU3RhdGUqLCBKU09iamVj
dCopOwogICAgICAgICAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVh
dGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNW
YWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKENvbXBvdW5kVHlwZSwgT3ZlcnJpZGVzTWFya0No
aWxkcmVuKSwgQW5vbnltb3VzU2xvdENvdW50LCAwKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKENvbXBvdW5kVHlw
ZSwgT3ZlcnJpZGVzTWFya0NoaWxkcmVuKSwgQW5vbnltb3VzU2xvdENvdW50LCAwKTsKICAgICAg
ICAgfQogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1Byb3BlcnR5TmFtZUl0ZXJhdG9yKCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNTdGF0aWNTY29wZU9iamVjdC5oCmluZGV4IGIxNDEzYWY2N2JhNGE4MTllYTZiNTdkNjI1
ZjRkNDgyZDc5ZGUxZWQuLjNlMTliYmMyMzY2YTljMWQ4ZjRhOTRjYmY2MGI3YjQzNzkzZWNhNjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVP
YmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3Bl
T2JqZWN0LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgbmFtZXNwYWNlIEpTQ3sKICAgICAgICAgdmlydHVh
bCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJv
cGVydHlTbG90Jik7CiAgICAgICAgIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogCi0gICAg
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUg
cHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IH0KKyAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyB9CiAKICAgICBwcm90ZWN0ZWQ6CiAg
ICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dl
dE93blByb3BlcnR5U2xvdCB8IE5lZWRzVGhpc0NvbnZlcnNpb24gfCBPdmVycmlkZXNNYXJrQ2hp
bGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNWYXJpYWJsZU9iamVjdDo6U3Ry
dWN0dXJlRmxhZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1N0cmluZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAppbmRl
eCAyNjc3ZDlhZTljZWFhMzg4ZjdiYWMxNjAyNDVmYWM0NDA2OGE5YjUyLi4xMTAwMmRiMjZmMTJm
ZDlmMzgyZmQ4N2NkODc4Zjk3ZTNiOWQ1NTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1N0cmluZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTU3RyaW5nLmgKQEAgLTM0OSw3ICszNDksNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
ICAgICBKU1ZhbHVlIHJlcGxhY2VDaGFyYWN0ZXIoRXhlY1N0YXRlKiwgVUNoYXIsIGNvbnN0IFVT
dHJpbmcmIHJlcGxhY2VtZW50KTsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1
cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShwcm90bywgVHlwZUluZm8oU3RyaW5nVHlwZSwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlT
bG90IHwgTmVlZHNUaGlzQ29udmVyc2lvbiksIEFub255bW91c1Nsb3RDb3VudCwgMCk7IH0KKyAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUluZm8oU3RyaW5nVHlwZSwgT3ZlcnJpZGVzR2V0
T3duUHJvcGVydHlTbG90IHwgTmVlZHNUaGlzQ29udmVyc2lvbiksIEFub255bW91c1Nsb3RDb3Vu
dCwgMCk7IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIGVudW0gVlB0clN0ZWFsaW5nSGFja1R5
cGUgeyBWUHRyU3RlYWxpbmdIYWNrIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1ZhcmlhYmxlT2JqZWN0LmgKaW5kZXggNTc3OWYzN2JhY2NmYTI1YWExOTY4MjM1OWM4
OTIwMGIwY2JiY2EwNS4uODkxYWRhOGM0M2EzN2FhN2JjMTI2ZTMzMDQ3NTA3MDIwYzNlMzFjOSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVj
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3Qu
aApAQCAtNTgsOSArNTgsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBXcml0ZUJhcnJp
ZXI8VW5rbm93bj4qIGNvbnN0ICogYWRkcmVzc09mUmVnaXN0ZXJzKCkgY29uc3QgeyByZXR1cm4g
Jm1fcmVnaXN0ZXJzOyB9CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBj
cmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAg
fQogICAgICAgICAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTV3JhcHBlck9iamVjdC5oCmluZGV4IDNmYzBiMTg2ZmU1ODExN2VjYTBlYzBiMmE1
NmJhZjY1ZDEyZDlmM2MuLjYzODMzZTlmMzc0ZWM3Yzc5YWE3YWQ4MjBlOGEwNDEyZmJkYWQzODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVj
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5o
CkBAIC0zNiw5ICszNiw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBKU1ZhbHVlIGludGVy
bmFsVmFsdWUoKSBjb25zdDsKICAgICAgICAgdm9pZCBzZXRJbnRlcm5hbFZhbHVlKEpTR2xvYmFs
RGF0YSYsIEpTVmFsdWUpOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4g
Y3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKSAKKyAgICAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBKU1ZhbHVlIHByb3RvdHlwZSkgCiAgICAgICAgIHsgCi0gICAgICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAg
ICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTWm9tYmllLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1pv
bWJpZS5oCmluZGV4IGU1NzVhYzU1MjE2Y2NlMTQ5N2RlMzY0YTk3MjhiY2ZmYjI3YjRmZDYuLjE3
OWZmNTMxMDBmZDNmZDIwYWIzYzE3NDczMjVkOWRkMTgwY2I3MjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTWm9tYmllLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNab21iaWUuaApAQCAtNjYsOSArNjYsOSBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgUHJvcGVydHlTbG90JikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1bnNp
Z25lZCwgUHJvcGVydHlTbG90JikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1
cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBj
cmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlw
ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5
cGVJbmZvKE9iamVjdFR5cGUsIDApLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCAwKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9
CiAKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaAppbmRleCA4NmU3OTUxYTFiZGNhOGQ2NmUzZTU5ZWNk
NTUyODQxY2VkZWE0NWViLi4yNmVhYWUwNDQ5OTI4ZGU1MWE1YzRkZTVlZGZmY2JhMmViZGM1NzEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCkBAIC0zNCw5
ICszNCw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0lu
Zm8gc19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRl
U3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFs
dWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAog
ICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNzk0OWRkOTZhNWI3N2MzYzFjNjdm
ZmU5YjlhOGU1M2E0YzY5NWYyNC4uZDhmZGE2OWE4NDA3YmQ1MGJlZGYzZTRlZTdhMGFlMzdjMjY4
NTk2NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJy
b3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0
aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgTmF0aXZlRXJyb3JDb25z
dHJ1Y3Rvcjo6TmF0aXZlRXJyb3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFs
T2JqZWN0KgogCiAgICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVy
dHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoMSksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERv
bnRFbnVtKTsgLy8gRUNNQSAxNS4xMS43LjUKICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0
YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBwcm90b3R5cGUsIERvbnREZWxl
dGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKLSAgICBtX2Vycm9yU3RydWN0dXJlID0gRXJyb3JJ
bnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJlKHByb3RvdHlwZSk7CisgICAgbV9lcnJvclN0cnVjdHVy
ZSA9IEVycm9ySW5zdGFuY2U6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIHBy
b3RvdHlwZSk7CiB9CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0
cnVjdFdpdGhOYXRpdmVFcnJvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3Iu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3Iu
aAppbmRleCBlNDk3OGNjYTFjYmJiOWQyN2ViMzhkYmMwNDM1NzA3ZGM2YzZhYjkyLi4yM2Y3OThl
NDcyOWJlYmU3YTk4YzYyZDg0ZDNiZDI2YzdjMWI3ODA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oCkBAIC0zNSw5
ICszNSw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0lu
Zm8gc19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRl
U3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFs
dWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAog
ICAgICAgICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlKCkgeyByZXR1cm4gbV9lcnJvclN0cnVj
dHVyZS5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TnVtYmVyQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJl
ckNvbnN0cnVjdG9yLmgKaW5kZXggYWFmN2MzMjEwMjYzZDM4YTcxNjM0NzgxODRjYjlmYWM0NWI0
NzU5My4uYWI0NTA3ZTU4M2ViMjViMjdhZmYyMzQxOWM0Mjc4ZTFhNzk2MTU4MiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCkBAIC0z
Nyw5ICszNyw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFz
c0luZm8gc19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3Jl
YXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8pIAorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFs
dWUgcHJvdG8pIAogICAgICAgICB7IAotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91
c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAorICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAogICAgICAgICB9CiAKICAgICAgICAg
ZW51bSB7IE5hTlZhbHVlLCBOZWdJbmZpbml0eSwgUG9zSW5maW5pdHksIE1heFZhbHVlLCBNaW5W
YWx1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
T2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuaApp
bmRleCBiZGY1NmY3ZjQ3NTNiNGUxNjQyNTNiMjUzZmIxMmE0YjYyMTVjNDQ5Li4xNTcxZmQ0MmNl
NmIwYzMyZTgyZTgxYWQ2YjAzMTYwYTkxZTdlZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OdW1iZXJPYmplY3QuaApAQCAtMzEsOSArMzEsOSBAQCBuYW1lc3BhY2UgSlND
IHsKIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAotICAgICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3Rv
dHlwZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1
cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAg
ewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNT
bG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKaW5kZXggODk1
Zjk4OGY2YzEzOTQ2NTMxZjI4MjQ4NmJmZDE1ODlkODE0OGIwOC4uYjdiZmMxZDcxN2M3MTc4ZTMz
YzI5NmFkN2I0Yjk3NDAxZWFlNDNkMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oCkBAIC0zNiw5ICszNiw5IEBAIG5hbWVzcGFjZSBK
U0MgewogCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJv
dG90eXBlKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVj
dHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwg
cHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91
c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCmluZGV4
IDhhOGE1NGFhYTg2NWI5OWZhM2ExY2RjZmE1NTk4YmE0YzAzYmEyNWYuLjAzYzZiZWEyYmEzODY0
NjUzMmRkN2U1MWZhYWEzZjYxZTJmOTg1MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaApAQCAtNTksOSArNTksOSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIFJlZ0V4cENvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSosIEpTR2xvYmFsT2JqZWN0KiwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiwgUmVnRXhw
UHJvdG90eXBlKik7CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVh
dGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNW
YWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQog
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKaW5kZXggOWYyY2E1YWEyNGNlN2RhZTY1
NTkwM2MxMmJhZGFlMTU2ZTJmYWQ4MS4uZmEyMDI0ZGNkNzVlN2FjNWMyNjhjMTg3N2UwNjk0MTAw
NDIxNWI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0
LmgKQEAgLTU4LDkgKzU4LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIEpT
X0VYUE9SVERBVEEgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAotICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAg
ICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQs
ICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZUNoYWluLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TY29wZUNoYWluLmgKaW5kZXggNTVkMTFhZGQyYjFhN2IwMzY4NzEyZDFj
MWZhNzk1NGIzNTYyMjg1Yy4uY2I3MGEzNDZiOTY3YjUwZjMyNGY5MGU3ZDM0MzE3N2JiMzkyMDE3
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlQ2hhaW4uaApAQCAtNjQs
NyArNjQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBwcmludCgpOwogI2VuZGlm
CiAgICAgICAgIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0
cnVjdHVyZShKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90bywg
VHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3Vu
dCwgMCk7IH0KKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1
Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgMCk7IH0KICAgICAgICAgdmly
dHVhbCB2b2lkIG1hcmtDaGlsZHJlbihNYXJrU3RhY2smKTsKICAgICBwcml2YXRlOgogICAgICAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNNYXJrQ2hp
bGRyZW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdP
YmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCmlu
ZGV4IGFjZGVjYjNjNWVlOGE0MDE3Njk5MGUzODQyMzVhZjEyMWM1MTgzYjAuLjBlMmEyYjI0MTNj
OThlMmNhNzEwYzJjZGQ5YThiMDQwZDg3NGI2MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCkBAIC00NSw5ICs0NSw5IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiAgICAgICAgIEpTU3RyaW5nKiBpbnRlcm5hbFZhbHVlKCkgY29uc3QgeyByZXR1cm4gYXNT
dHJpbmcoSlNXcmFwcGVyT2JqZWN0OjppbnRlcm5hbFZhbHVlKCkpO30KIAotICAgICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlw
ZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8o
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8p
OworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3Rv
dHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90
Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFk
ZXNBc1VuZGVmaW5lZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2Jq
ZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQuaAppbmRleCAwYTQ0ZWQzMjNhZDBmY2Q0Njg2
YjVmNTdkMDJjM2RhZGVhMzU5OWZkLi5lNGM3MDYxMjJjZTE3MTNkNDNlZTk1M2QxYmM4OWY3NTBl
OWI0ZTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdP
YmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLmgKQEAg
LTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBTdHJpbmdPYmpl
Y3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgVVN0cmluZyYgc3RyaW5nKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gbmV3IChl
eGVjKSBTdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZChleGVjLAotICAgICAg
ICAgICAgICAgIGNyZWF0ZVN0cnVjdHVyZShleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnN0
cmluZ1Byb3RvdHlwZSgpKSwgc3RyaW5nKTsKKyAgICAgICAgICAgICAgICBjcmVhdGVTdHJ1Y3R1
cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnN0cmlu
Z1Byb3RvdHlwZSgpKSwgc3RyaW5nKTsKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKQEAgLTQy
LDkgKzQyLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAg
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUg
cHJvdG8pIAorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVj
dHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG8pIAogICAgICAgICB7
IAotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7
IAorICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3Rv
LCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3Vu
dCwgJnNfaW5mbyk7IAogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgTWFzcXVlcmFk
ZXNBc1VuZGVmaW5lZCB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBTdHJpbmdPYmplY3Q6
OlN0cnVjdHVyZUZsYWdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaW5nUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdQcm90b3R5cGUuaAppbmRleCA1N2E1MDlhYmFkMjY5OTc0N2NhZmZlMmFjOWExMjAxMGM4ZTY2
MTliLi41N2RlZjIyODFiMWQ1YzQ4ZjEzNGFkNWQ0MjFlMDc3ZWU1YTA4N2E4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaApAQCAtMzQsOSAr
MzQsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIAot
ICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1Zh
bHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVh
dGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkK
ICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlw
ZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291
bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBB
bm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGlj
IGNvbnN0IENsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJ1Y3R1cmUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cnVjdHVyZS5oCmluZGV4IDY0YjFkMjg3Mjk1ODE1ZDUwMmVhNzU0NzNkM2E3ODU5ODAyNjY4NmIu
LjZmNzA2MGJmMWFhZGMyNDAzZjk3MGM1MWRlOGViMjY4NTBhNDQ1MmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCkBAIC01NywxMSArNTcsMTcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgY2xhc3MgU3RydWN0dXJlIDogcHVibGljIFJlZkNvdW50ZWQ8U3RydWN0
dXJlPiB7CiAgICAgcHVibGljOgogICAgICAgICBmcmllbmQgY2xhc3MgU3RydWN0dXJlVHJhbnNp
dGlvblRhYmxlOwotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZShK
U1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgVHlwZUluZm8mIHR5cGVJbmZvLCB1bnNpZ25lZCBhbm9u
eW1vdXNTbG90Q291bnQsIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKQorICAgICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZShKU0dsb2JhbERhdGEmLCBKU1ZhbHVlIHBy
b3RvdHlwZSwgY29uc3QgVHlwZUluZm8mIHR5cGVJbmZvLCB1bnNpZ25lZCBhbm9ueW1vdXNTbG90
Q291bnQsIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKQogICAgICAgICB7CiAgICAgICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFN0cnVjdHVyZShwcm90b3R5cGUsIHR5cGVJbmZvLCBhbm9u
eW1vdXNTbG90Q291bnQsIGNsYXNzSW5mbykpOwogICAgICAgICB9CiAKKyAgICAgICAgZW51bSBW
UHRyU3RlYWxpbmdIYWNrVHlwZSB7IFZQdHJTdGVhbGluZ0hhY2sgfTsKKyAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGUoVlB0clN0ZWFsaW5nSGFja1R5cGUsIGNvbnN0
IENsYXNzSW5mbyogY2xhc3NJbmZvKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFN0cnVjdHVyZShqc051bGwoKSwgVHlwZUluZm8oVW5zcGVjaWZpZWRUeXBlKSwg
MCwgY2xhc3NJbmZvKSk7CisgICAgICAgIH0KKwogICAgICAgICBzdGF0aWMgdm9pZCBzdGFydEln
bm9yaW5nTGVha3MoKTsKICAgICAgICAgc3RhdGljIHZvaWQgc3RvcElnbm9yaW5nTGVha3MoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZyBiL1NvdXJjZS9K
YXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKaW5kZXggZDBlM2Y2YzI1MzA1M2QyNWM5Yjg3MDU5ZTU1
MjM4YWQzNTNhM2UyMy4uZDdiODdhZmVjZjZkNTAwOTllZjk1ZmI5MTNjNmJlMDdmODZmZGZhNiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDMtMTUgIE9s
aXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFN0cnVjdHVyZSBjcmVhdGlvbiByZXF1aXJlIGEg
SlNHbG9iYWxEYXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01NjQzOAorCisgICAgICAgIE1lY2hhbmljYWwgY2hhbmdlIHRvIG1ha2UgYWxsIHN0cnVj
dHVyZSBjcmVhdGlvbiBwYXNzIGEgSlNHbG9iYWxEYXRhJi4KKworICAgICAgICAqIEpTUnVuLmNw
cDoKKyAgICAgICAgKEpTR2x1ZUdsb2JhbE9iamVjdDo6SlNHbHVlR2xvYmFsT2JqZWN0KToKKyAg
ICAgICAgKEpTUnVuOjpKU1J1bik6CisgICAgICAgICogSlNSdW4uaDoKKyAgICAgICAgKiBKU1V0
aWxzLmNwcDoKKyAgICAgICAgKGdldFRocmVhZEdsb2JhbE9iamVjdCk6CisgICAgICAgICogVXNl
ck9iamVjdEltcC5oOgorICAgICAgICAoVXNlck9iamVjdEltcDo6Y3JlYXRlU3RydWN0dXJlKToK
KwogMjAxMS0wMy0xNSAgS2V2aW4gT2xsaXZpZXIgIDxrZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0R2x1ZS9KU1J1bi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNSdW4uY3Bw
CmluZGV4IDg2MzA1OTRiMGExYWZiNTRiNDVhZWMzMjQwNWZlZTFiZjQ4N2NhMDguLmE4MDk2YWE0
YmFjNzM1ZTViNzY0NmQ5NTM5MmJhMWRlYjA5OGEyMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0R2x1ZS9KU1J1bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0pTUnVuLmNw
cApAQCAtMzMsMTcgKzMzLDE3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29tcGxldGlv
bi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NvdXJjZUNvZGUuaD4KIAotSlNHbHVlR2xv
YmFsT2JqZWN0OjpKU0dsdWVHbG9iYWxPYmplY3QoUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVj
dHVyZSwgSlNGbGFncyBmbGFncykKK0pTR2x1ZUdsb2JhbE9iamVjdDo6SlNHbHVlR2xvYmFsT2Jq
ZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVj
dHVyZSwgSlNGbGFncyBmbGFncykKICAgICA6IEpTR2xvYmFsT2JqZWN0KHN0cnVjdHVyZSkKICAg
ICAsIG1fZmxhZ3MoZmxhZ3MpCi0gICAgLCBtX3VzZXJPYmplY3RTdHJ1Y3R1cmUoVXNlck9iamVj
dEltcDo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKKyAgICAsIG1fdXNlck9iamVjdFN0cnVj
dHVyZShVc2VyT2JqZWN0SW1wOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwganNOdWxsKCkp
KQogewogfQogCiBKU1J1bjo6SlNSdW4oQ0ZTdHJpbmdSZWYgc291cmNlLCBKU0ZsYWdzIGluRmxh
Z3MpCiAgICAgOiAgIEpTQmFzZShrSlNSdW5UeXBlSUQpLAogICAgICAgICBmU291cmNlKENGU3Ry
aW5nVG9VU3RyaW5nKHNvdXJjZSkpLAotICAgICAgICBmR2xvYmFsT2JqZWN0KGdldFRocmVhZEds
b2JhbEV4ZWNTdGF0ZSgpLT5nbG9iYWxEYXRhKCksIG5ldyAoJmdldFRocmVhZEdsb2JhbEV4ZWNT
dGF0ZSgpLT5nbG9iYWxEYXRhKCkpIEpTR2x1ZUdsb2JhbE9iamVjdChKU0dsdWVHbG9iYWxPYmpl
Y3Q6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSksIGluRmxhZ3MpKSwKKyAgICAgICAgZkdsb2Jh
bE9iamVjdChnZXRUaHJlYWRHbG9iYWxFeGVjU3RhdGUoKS0+Z2xvYmFsRGF0YSgpLCBuZXcgKCZn
ZXRUaHJlYWRHbG9iYWxFeGVjU3RhdGUoKS0+Z2xvYmFsRGF0YSgpKSBKU0dsdWVHbG9iYWxPYmpl
Y3QoZ2V0VGhyZWFkR2xvYmFsRXhlY1N0YXRlKCktPmdsb2JhbERhdGEoKSwgSlNHbHVlR2xvYmFs
T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoZ2V0VGhyZWFkR2xvYmFsRXhlY1N0YXRlKCktPmdsb2Jh
bERhdGEoKSwganNOdWxsKCkpLCBpbkZsYWdzKSksCiAgICAgICAgIGZGbGFncyhpbkZsYWdzKQog
ewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0pTUnVuLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdEdsdWUvSlNSdW4uaAppbmRleCBlOWExNDg0MmVjMWE5YzU0MzZiZmE1MzYxNjgw
MzU2NGY2OTQ0NTkwLi5kN2FhNjgyNDEwYzhiMzMyNzM3ZThlMGY1NmM3N2E1Mjk3ZTRmOWU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNSdW4uaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdEdsdWUvSlNSdW4uaApAQCAtMzQsNyArMzQsNyBAQAogCiBjbGFzcyBKU0dsdWVHbG9i
YWxPYmplY3QgOiBwdWJsaWMgSlNHbG9iYWxPYmplY3QgewogICAgIHB1YmxpYzoKLSAgICAgICAg
SlNHbHVlR2xvYmFsT2JqZWN0KFBhc3NSZWZQdHI8U3RydWN0dXJlPiwgSlNGbGFncyA9IGtKU0Zs
YWdOb25lKTsKKyAgICAgICAgSlNHbHVlR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYsIFBhc3NS
ZWZQdHI8U3RydWN0dXJlPiwgSlNGbGFncyA9IGtKU0ZsYWdOb25lKTsKIAogICAgICAgICBKU0Zs
YWdzIEZsYWdzKCkgY29uc3QgeyByZXR1cm4gbV9mbGFnczsgfQogICAgICAgICBTdHJ1Y3R1cmUq
IHVzZXJPYmplY3RTdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX3VzZXJPYmplY3RTdHJ1Y3R1
cmUuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1V0aWxzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1V0aWxzLmNwcAppbmRleCA5NGM4ZGNjZDYzYjZj
NjMwOWZjYThiOGYyMmMwOGExMGNhZTA1MGY1Li5iNjJlN2JmYjZlODk4YzhmMmRhNjIyNzllYzhh
MWM5OWE0ZWJjMWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNVdGlscy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0pTVXRpbHMuY3BwCkBAIC00MTQsNyArNDE0
LDcgQEAgc3RhdGljIEpTR2x1ZUdsb2JhbE9iamVjdCogZ2V0VGhyZWFkR2xvYmFsT2JqZWN0KCkK
ICAgICBwdGhyZWFkX29uY2UoJmdsb2JhbE9iamVjdEtleU9uY2UsIGluaXRpYWxpemVHbG9iYWxP
YmplY3RLZXkpOwogICAgIEpTR2x1ZUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gc3RhdGlj
X2Nhc3Q8SlNHbHVlR2xvYmFsT2JqZWN0Kj4ocHRocmVhZF9nZXRzcGVjaWZpYyhnbG9iYWxPYmpl
Y3RLZXkpKTsKICAgICBpZiAoIWdsb2JhbE9iamVjdCkgewotICAgICAgICBnbG9iYWxPYmplY3Qg
PSBuZXcgKGdldFRocmVhZEdsb2JhbERhdGEoKSkgSlNHbHVlR2xvYmFsT2JqZWN0KEpTR2x1ZUds
b2JhbE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSk7CisgICAgICAgIGdsb2JhbE9i
amVjdCA9IG5ldyAoZ2V0VGhyZWFkR2xvYmFsRGF0YSgpKSBKU0dsdWVHbG9iYWxPYmplY3QoKmdl
dFRocmVhZEdsb2JhbERhdGEoKSwgSlNHbHVlR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUo
KmdldFRocmVhZEdsb2JhbERhdGEoKSwganNOdWxsKCkpKTsKICAgICAgICAgZ2NQcm90ZWN0KGds
b2JhbE9iamVjdCk7CiAgICAgICAgIHB0aHJlYWRfc2V0c3BlY2lmaWMoZ2xvYmFsT2JqZWN0S2V5
LCBnbG9iYWxPYmplY3QpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1
ZS9Vc2VyT2JqZWN0SW1wLmggYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5o
CmluZGV4IDNmNjQxNTMwZjY0NGViNTc5NzdmNDY0Yjc3NDhlYTAxMmVmNDBkZTcuLmM2YjhkODZm
NWQ5YWI2OWMxZTFlNTY5ZWM4MmM2YmUyNTEyZDg1NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1Vz
ZXJPYmplY3RJbXAuaApAQCAtNTgsOSArNTgsOSBAQCBwdWJsaWM6CiAKICAgICBKU1VzZXJPYmpl
Y3QgKkdldEpTVXNlck9iamVjdCgpIGNvbnN0OwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIE92ZXJyaWRlc0dldE93blBy
b3BlcnR5U2xvdCB8IE92ZXJyaWRlc01hcmtDaGlsZHJlbiB8IE92ZXJyaWRlc0dldFByb3BlcnR5
TmFtZXMpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNNYXJrQ2hpbGRyZW4gfCBP
dmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsK
ICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTY2NGI5YjFmYTc0MTcxYzYwOTkwYmE0
N2MzNmJhZjYzYzI1ZGRjNi4uY2ExZjhhYTc0NDliOTI0MzMxMWVkNjljNjBlZTBkZWUwZGE2NmI4
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDExLTAzLTE1ICBPbGl2ZXIgSHVudCAg
PG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTWFrZSBTdHJ1Y3R1cmUgY3JlYXRpb24gcmVxdWlyZSBhIEpTR2xvYmFsRGF0
YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY0MzgK
KworICAgICAgICBNZWNoYW5pY2FsIGNoYW5nZSB0byBtYWtlIGFsbCBzdHJ1Y3R1cmUgY3JlYXRp
b24gdXNlIEdsb2JhbERhdGEKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0F1ZGlvQ29uc3RydWN0b3I6OkpTQXVkaW9D
b25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpKU0F1ZGlvQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3Jl
OjpET01PYmplY3RXaXRoR2xvYmFsUG9pbnRlcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTUNvbnN0cnVjdG9yT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAg
ICAoV2ViQ29yZTo6Z2V0RE9NU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RP
TUdsb2JhbE9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3Q6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmg6
CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpKU0RPTVdpbmRvd1NoZWxsKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTRE9NV2luZG93U2hlbGw6OnNldFdpbmRvdyk6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01XaW5kb3dTaGVsbC5oOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6
Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNJbWFnZUNvbnN0cnVjdG9yOjpKU0ltYWdlQ29u
c3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5oOgor
ICAgICAgICAoV2ViQ29yZTo6SlNJbWFnZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNPcHRpb25Db25zdHJ1Y3Rvcjo6SlNPcHRpb25Db25z
dHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5oOgor
ICAgICAgICAoV2ViQ29yZTo6SlNPcHRpb25Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpKU1dvcmtlckNvbnRleHRCYXNlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdCk6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgICogYnJpZGdlL2MvQ1J1bnRp
bWVPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OkNSdW50aW1lT2JqZWN0OjpjcmVh
dGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJyaWRnZS9jL2NfaW5zdGFuY2UuY3BwOgorICAgICAg
ICAoSlNDOjpCaW5kaW5nczo6Q1J1bnRpbWVNZXRob2Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAg
ICAgICogYnJpZGdlL2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmNwcDoKKyAgICAgICAgKEphdmFS
dW50aW1lTWV0aG9kOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJyaWRnZS9qbmkvanNj
L0phdmFSdW50aW1lT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpKYXZhUnVudGlt
ZU9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9PYmpDUnVu
dGltZU9iamVjdC5oOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqQ1J1bnRpbWVPYmplY3Q6
OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5t
bToKKyAgICAgICAgKE9iakNSdW50aW1lTWV0aG9kOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAg
ICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5oOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6
T2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJyaWRn
ZS9ydW50aW1lX2FycmF5Lmg6CisgICAgICAgIChKU0M6OlJ1bnRpbWVBcnJheTo6Y3JlYXRlU3Ry
dWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9tZXRob2QuaDoKKyAgICAgICAgKEpT
Qzo6UnVudGltZU1ldGhvZDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2UvcnVu
dGltZV9vYmplY3QuaDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisKIDIwMTEtMDMtMTYgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmNwcAppbmRleCBmMDA0MGZh
OWE3MmVjNDY3OGI0MjhmNTNiMDQ1Y2YzNjMzMDY2MDQ4Li45YWM3OTdiMWRlODk4MDg1OTExY2U5
ZTI5ODU0ZWQxZmYyNTA3ZDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0F1ZGlvQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQXVkaW9Db25zdHJ1Y3Rvci5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY29uc3QgQ2xhc3NJbmZvIEpTQXVkaW9Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiQXVk
aW9Db25zdHJ1Y3RvciIsICZET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudDo6c19pbmZvLCAwLCAw
IH07CiAKIEpTQXVkaW9Db25zdHJ1Y3Rvcjo6SlNBdWRpb0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
ZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLSAgICA6IERPTUNvbnN0cnVj
dG9yV2l0aERvY3VtZW50KEpTQXVkaW9Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGdsb2Jh
bE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpLCBnbG9iYWxPYmplY3QpCisgICAgOiBET01Db25z
dHJ1Y3RvcldpdGhEb2N1bWVudChKU0F1ZGlvQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShn
bG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUo
KSksIGdsb2JhbE9iamVjdCkKIHsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAg
IHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90
b3R5cGUsIEpTSFRNTEF1ZGlvRWxlbWVudFByb3RvdHlwZTo6c2VsZihleGVjLCBnbG9iYWxPYmpl
Y3QpLCBOb25lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVk
aW9Db25zdHJ1Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0
cnVjdG9yLmgKaW5kZXggYzkwYWJiZjdkOWVlYmE5NDYzNmFjNjZkMTI0NjNhZTFmNGNkMGRkMS4u
YmUwYjgwMDAwNWJmMjIxYWJlZDdhOTg0NmQ4YTEzYWVjMzViNDQzMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmgKQEAgLTM4LDkgKzM4LDkg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHB1YmxpYzoKICAgICAgICAgSlNBdWRpb0NvbnN0
cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKIAotICAgICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNW
YWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJl
PiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNW
YWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVj
dHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAg
IHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgSlND
OjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCBKU0M6
OkNsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUJpbmRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGlu
Zy5oCmluZGV4IDRmZTNkMTZjMWZjYzI4YzdjNjc0ODlhODFiYzFhYjU3OGEwZmExZDIuLjkzNGQ5
YjMxYTQ2MWIyMTc5ZGJkNDE5ZmRlZTAwMmE4MGUzMjgzYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCkBAIC02NCw5ICs2NCw5IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QoKS0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpOwogICAgICAgICB9CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUs
IEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91
c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAg
ICAgIH0KIAogICAgIHByb3RlY3RlZDoKQEAgLTgzLDkgKzgzLDkgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIC8vIEJhc2UgY2xhc3MgZm9yIGFsbCBjb25zdHJ1Y3RvciBvYmplY3RzIGluIHRo
ZSBKU0MgYmluZGluZ3MuCiAgICAgY2xhc3MgRE9NQ29uc3RydWN0b3JPYmplY3QgOiBwdWJsaWMg
RE9NT2JqZWN0V2l0aEdsb2JhbFBvaW50ZXIgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUg
cHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3Jl
YXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUg
cHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6
OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1
cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIEpTQzo6VHlw
ZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3Vu
dCwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKQEAgLTE0Myw3ICsxNDMs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgewogICAgICAgICBpZiAoSlNDOjpTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSA9IGdldENhY2hlZERPTVN0cnVjdHVyZShnbG9iYWxPYmplY3QsICZXcmFw
cGVyQ2xhc3M6OnNfaW5mbykpCiAgICAgICAgICAgICByZXR1cm4gc3RydWN0dXJlOwotICAgICAg
ICByZXR1cm4gY2FjaGVET01TdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBXcmFwcGVyQ2xhc3M6OmNy
ZWF0ZVN0cnVjdHVyZShXcmFwcGVyQ2xhc3M6OmNyZWF0ZVByb3RvdHlwZShleGVjLCBnbG9iYWxP
YmplY3QpKSwgJldyYXBwZXJDbGFzczo6c19pbmZvKTsKKyAgICAgICAgcmV0dXJuIGNhY2hlRE9N
U3RydWN0dXJlKGdsb2JhbE9iamVjdCwgV3JhcHBlckNsYXNzOjpjcmVhdGVTdHJ1Y3R1cmUoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBXcmFwcGVyQ2xhc3M6OmNyZWF0ZVByb3RvdHlwZShleGVjLCBnbG9i
YWxPYmplY3QpKSwgJldyYXBwZXJDbGFzczo6c19pbmZvKTsKICAgICB9CiAgICAgdGVtcGxhdGU8
Y2xhc3MgV3JhcHBlckNsYXNzPiBpbmxpbmUgSlNDOjpTdHJ1Y3R1cmUqIGRlcHJlY2F0ZWRHZXRE
T01TdHJ1Y3R1cmUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKaW5kZXggZGFlNDA1YThmZGU3OWQy
MDBkY2Q0YWU2NGM2ZDQyZjk3MGI0NmY2MS4uMWU5OTJjNWI3MWZkYzYyOGU2NTFkY2IyZjcyYzE1
MTY0ZWZiMjQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01H
bG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2Jh
bE9iamVjdC5oCkBAIC02OSw5ICs2OSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAg
ICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHBy
b3RvdHlwZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0
ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHBy
b3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpj
cmVhdGUocHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJu
IEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBKU0M6OlR5cGVJ
bmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQs
ICZzX2luZm8pOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCmluZGV4IDdiZGEzZTQyMDcyNTRhOTVlMmEz
YzcwMzU3YTJlZmRlM2FhZjYzNmUuLmJmZWMzMWM1Njc4MjUyYzk1NzcyMmY0NmExMjllYjkwNjZl
MjgwZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5o
CkBAIC01Nyw5ICs1Nyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBzdGF0aWMg
Y29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkK
KyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVy
ZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkK
ICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJv
dG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBB
bm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3Ry
dWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8p
OwogICAgICAgICB9CiAKICAgICAgICAgdmlydHVhbCBKU0M6OkV4ZWNTdGF0ZSogZ2xvYmFsRXhl
YygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dT
aGVsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNw
cAppbmRleCBhNGNjNzc3ZDk0YWQyMzM4YjhhNjhlYjA3NzQyY2Q5ZGFmOTk0MTNmLi44MTdlOWMw
ZGEyMDI4NDQxNWNjNTI5MDRlZTM3ZjFjN2I5MjdkYmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcApAQCAtNDQsNyArNDQsNyBAQCBBU1NF
UlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTRE9NV2luZG93U2hlbGwpOwogY29uc3QgQ2xhc3NJbmZv
IEpTRE9NV2luZG93U2hlbGw6OnNfaW5mbyA9IHsgIkpTRE9NV2luZG93U2hlbGwiLCAmQmFzZTo6
c19pbmZvLCAwLCAwIH07CiAKIEpTRE9NV2luZG93U2hlbGw6OkpTRE9NV2luZG93U2hlbGwoUGFz
c1JlZlB0cjxET01XaW5kb3c+IHdpbmRvdywgRE9NV3JhcHBlcldvcmxkKiB3b3JsZCkKLSAgICA6
IEJhc2UoSlNET01XaW5kb3dTaGVsbDo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKKyAgICA6
IEJhc2UoSlNET01XaW5kb3dTaGVsbDo6Y3JlYXRlU3RydWN0dXJlKCp3b3JsZC0+Z2xvYmFsRGF0
YSgpLCBqc051bGwoKSkpCiAgICAgLCBtX3dvcmxkKHdvcmxkKQogewogICAgIEFTU0VSVChpbmhl
cml0cygmc19pbmZvKSk7CkBAIC02MCwxMCArNjAsMTAgQEAgdm9pZCBKU0RPTVdpbmRvd1NoZWxs
OjpzZXRXaW5kb3coUGFzc1JlZlB0cjxET01XaW5kb3c+IGRvbVdpbmRvdykKICAgICAvLyBFeHBs
aWNpdGx5IHByb3RlY3QgdGhlIGdsb2JhbCBvYmplY3QncyBwcm90b3R5cGUgc28gaXQgaXNuJ3Qg
Y29sbGVjdGVkCiAgICAgLy8gd2hlbiB3ZSBhbGxvY2F0ZSB0aGUgZ2xvYmFsIG9iamVjdC4gKE9u
Y2UgdGhlIGdsb2JhbCBvYmplY3QgaXMgZnVsbHkKICAgICAvLyBjb25zdHJ1Y3RlZCwgaXQgY2Fu
IG1hcmsgaXRzIG93biBwcm90b3R5cGUuKQotICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHByb3RvdHlw
ZVN0cnVjdHVyZSA9IEpTRE9NV2luZG93UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxs
KCkpOworICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHByb3RvdHlwZVN0cnVjdHVyZSA9IEpTRE9NV2lu
ZG93UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoKkpTRE9NV2luZG93Ojpjb21tb25KU0dsb2Jh
bERhdGEoKSwganNOdWxsKCkpOwogICAgIEdsb2JhbDxKU0RPTVdpbmRvd1Byb3RvdHlwZT4gcHJv
dG90eXBlKCpKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCksIG5ldyBKU0RPTVdpbmRv
d1Byb3RvdHlwZSgwLCBwcm90b3R5cGVTdHJ1Y3R1cmUucmVsZWFzZSgpKSk7CiAKLSAgICBSZWZQ
dHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUgPSBKU0RPTVdpbmRvdzo6Y3JlYXRlU3RydWN0dXJlKHBy
b3RvdHlwZS5nZXQoKSk7CisgICAgUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlID0gSlNET01X
aW5kb3c6OmNyZWF0ZVN0cnVjdHVyZSgqSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgp
LCBwcm90b3R5cGUuZ2V0KCkpOwogICAgIEpTRE9NV2luZG93KiBqc0RPTVdpbmRvdyA9IG5ldyAo
SlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpKSBKU0RPTVdpbmRvdyhzdHJ1Y3R1cmUu
cmVsZWFzZSgpLCBkb21XaW5kb3csIHRoaXMpOwogICAgIHByb3RvdHlwZS0+cHV0QW5vbnltb3Vz
VmFsdWUoKkpTRE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKSwgMCwganNET01XaW5kb3cp
OwogICAgIHNldFdpbmRvdygqSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLCBqc0RP
TVdpbmRvdyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd1NoZWxsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxs
LmgKaW5kZXggMDZkZDFmZjVmNDBjNmQ0OTA0MmU3OGEwYjVkOWNhMjhlM2I4YTA1ZS4uNDMwN2Mx
YzQ2MWIwZmY0NmJmOGEzYTc3YmFiOGVjMmU1MDRmOWJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaApAQCAtNTgsOSArNTgsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCk7CiAKLSAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShK
U0M6OkpTVmFsdWUgcHJvdG90eXBlKSAKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
SlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkgCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBK
U0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCisg
ICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90
b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IAogICAgICAgICB9CiAKICAgICAgICAgRE9NV3Jh
cHBlcldvcmxkKiB3b3JsZCgpIHsgcmV0dXJuIG1fd29ybGQuZ2V0KCk7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuY3BwCmluZGV4IDFkZGYx
MzYwNDNkODEwM2U5ZjlkMzEyYjJjYjI4NDI2MDRhMGQwMWYuLmJlNzVhZjBiZTdjYWU5MTQ2NjFj
MmRlZWQ0ZjRiMjVkZDBkN2NmZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNJbWFnZUNvbnN0cnVjdG9yLmNwcApAQCAtMzUsNyArMzUsNyBAQCBBU1NFUlRfQ0xBU1Nf
RklUU19JTl9DRUxMKEpTSW1hZ2VDb25zdHJ1Y3Rvcik7CiBjb25zdCBDbGFzc0luZm8gSlNJbWFn
ZUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJJbWFnZUNvbnN0cnVjdG9yIiwgJkRPTUNvbnN0cnVj
dG9yV2l0aERvY3VtZW50OjpzX2luZm8sIDAsIDAgfTsKIAogSlNJbWFnZUNvbnN0cnVjdG9yOjpK
U0ltYWdlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQotICAgIDogRE9NQ29uc3RydWN0b3JXaXRoRG9jdW1lbnQoSlNJbWFnZUNvbnN0
cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSks
IGdsb2JhbE9iamVjdCkKKyAgICA6IERPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50KEpTSW1hZ2VD
b25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBn
bG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQogewogICAgIEFT
U0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAgICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEo
KSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNIVE1MSW1hZ2VFbGVtZW50UHJv
dG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCksIE5vbmUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuaAppbmRleCA3MzI5M2M3YmY5NDdk
MjYxNGQ0MTdlZmRmZjc5NGZjMWIwZGM1OTQzLi42NTRlMjIzZmE4ZGI1YmZhYWFhY2VkZmVkMzVj
ZjcwMmE3OTkzYTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lt
YWdlQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdl
Q29uc3RydWN0b3IuaApAQCAtMjksOSArMjksOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
cHVibGljOgogICAgICAgICBKU0ltYWdlQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0RP
TUdsb2JhbE9iamVjdCopOwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6
OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90
Q291bnQsICZzX2luZm8pOworICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVh
dGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgICAgICB9
CiAKICAgICAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcAppbmRleCBiNTU5
MmQ4YzdkMGVhM2ExOGYzZjM2OTc0YmYwMTY4N2Y1ZjJiOGRlLi5hOTJlZDQ3MGM0OTI5YTcwM2Qx
MThjZmEyYTdjYTBiOWMxZjk0MTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0ltYWdlRGF0YUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNJbWFnZURhdGFDdXN0b20uY3BwCkBAIC00OCw3ICs0OCw3IEBAIEpTVmFsdWUgdG9KUyhF
eGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEltYWdlRGF0
YSogaW1hZ2VECiAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywg
Z2xvYmFsT2JqZWN0LCBJbWFnZURhdGEsIGltYWdlRGF0YSk7CiAgICAgSWRlbnRpZmllciBkYXRh
TmFtZShleGVjLCAiZGF0YSIpOwogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gY3BhQ2xhc3NJ
bmZvID0geyAiQ2FudmFzUGl4ZWxBcnJheSIsICZKU0J5dGVBcnJheTo6QmFzZTo6c19pbmZvLCAw
LCAwIH07Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8U3RydWN0dXJlPiwgY3BhU3Ry
dWN0dXJlLCAoSlNCeXRlQXJyYXk6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSwgJmNwYUNsYXNz
SW5mbykpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFJlZlB0cjxTdHJ1Y3R1cmU+LCBjcGFT
dHJ1Y3R1cmUsIChKU0J5dGVBcnJheTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEo
KSwganNOdWxsKCksICZjcGFDbGFzc0luZm8pKSk7CiAgICAgd3JhcHBlci0+cHV0RGlyZWN0KGV4
ZWMtPmdsb2JhbERhdGEoKSwgZGF0YU5hbWUsIG5ldyAoZXhlYykgSlNCeXRlQXJyYXkoZXhlYywg
Y3BhU3RydWN0dXJlLCBpbWFnZURhdGEtPmRhdGEoKS0+ZGF0YSgpKSwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KTsKICAgICBleGVjLT5oZWFwKCktPnJlcG9ydEV4dHJhTWVtb3J5Q29zdChpbWFnZURh
dGEtPmRhdGEoKS0+bGVuZ3RoKCkpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmNwcAppbmRleCBhM2M5YWFiNGQyM2U3YTJlMmI3
YjFkYzVjZDE4MDY2ZjBlMWZlNGM3Li41OWUwYjZhM2U4YmE5NDZhODQ2MDQ5YjMxMzk2MTM4MzE4
NzBjZjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNv
bnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNv
bnN0cnVjdG9yLmNwcApAQCAtMzYsNyArMzYsNyBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxM
KEpTT3B0aW9uQ29uc3RydWN0b3IpOwogY29uc3QgQ2xhc3NJbmZvIEpTT3B0aW9uQ29uc3RydWN0
b3I6OnNfaW5mbyA9IHsgIk9wdGlvbkNvbnN0cnVjdG9yIiwgJkRPTUNvbnN0cnVjdG9yV2l0aERv
Y3VtZW50OjpzX2luZm8sIDAsIDAgfTsKIAogSlNPcHRpb25Db25zdHJ1Y3Rvcjo6SlNPcHRpb25D
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCi0gICAgOiBET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudChKU09wdGlvbkNvbnN0cnVjdG9y
OjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2Jh
bE9iamVjdCkKKyAgICA6IERPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50KEpTT3B0aW9uQ29uc3Ry
dWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFs
T2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVjdCkKIHsKICAgICBBU1NFUlQo
aW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4
ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTSFRNTE9wdGlvbkVsZW1lbnRQcm90b3R5
cGU6OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0KSwgTm9uZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmgKaW5kZXggMDM2MzNjNzkyZTNlMjFi
YTFjMTk1YmY3MzNiY2FiNzlmOWEyNzU4OC4uOGExODAwNzFjYWYwNTZjY2IyYTJmYzkwYmNlMWU4
MTBiZGQ0NWI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNPcHRp
b25Db25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTT3B0aW9u
Q29uc3RydWN0b3IuaApAQCAtMzAsOSArMzAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
cHVibGljOgogICAgICAgICBKU09wdGlvbkNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNE
T01HbG9iYWxPYmplY3QqKTsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVj
dHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlND
OjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3Jl
YXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAg
fQogCiAgICAgICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmgKaW5kZXggOTk5
NDhiNzNhMDM2MjUzMjBjMDI0MTc0YzI1ZTU3NjU2YWY3YjdkZS4uYjljMjM0YTJiZmJiZDgyYTA1
ZjU4MjE0MWRhYzExMjBhYTAyNzI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV29ya2VyQ29udGV4dEJhc2UuaApAQCAtNDksOSArNDksOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIFdvcmtlckNvbnRleHQqIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2lt
cGwuZ2V0KCk7IH0KICAgICAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Q7CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQor
ICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJl
KEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQog
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90
b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7
CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGQzOTIyODE2OWJmOGRi
ZjIwZjVhYjQyM2JjMDUyNWM5M2UxZDc5OWMuLjY3YjA0NDFhYTIyYTRmNTA0YmFmYjUwYWYyYzMy
MmYxYWEzNzU2MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtl
clNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dv
cmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC03MywxMyArNzMsMTMgQEAgdm9pZCBXb3JrZXJT
Y3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0KCkKICAgICAvLyBFeHBsaWNpdGx5IHByb3RlY3Qg
dGhlIGdsb2JhbCBvYmplY3QncyBwcm90b3R5cGUgc28gaXQgaXNuJ3QgY29sbGVjdGVkCiAgICAg
Ly8gd2hlbiB3ZSBhbGxvY2F0ZSB0aGUgZ2xvYmFsIG9iamVjdC4gKE9uY2UgdGhlIGdsb2JhbCBv
YmplY3QgaXMgZnVsbHkKICAgICAvLyBjb25zdHJ1Y3RlZCwgaXQgY2FuIG1hcmsgaXRzIG93biBw
cm90b3R5cGUuKQotICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHdvcmtlckNvbnRleHRQcm90b3R5cGVT
dHJ1Y3R1cmUgPSBKU1dvcmtlckNvbnRleHRQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShqc051
bGwoKSk7CisgICAgUmVmUHRyPFN0cnVjdHVyZT4gd29ya2VyQ29udGV4dFByb3RvdHlwZVN0cnVj
dHVyZSA9IEpTV29ya2VyQ29udGV4dFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKCptX2dsb2Jh
bERhdGEsIGpzTnVsbCgpKTsKICAgICBHbG9iYWw8SlNXb3JrZXJDb250ZXh0UHJvdG90eXBlPiB3
b3JrZXJDb250ZXh0UHJvdG90eXBlKCptX2dsb2JhbERhdGEsIG5ldyAobV9nbG9iYWxEYXRhLmdl
dCgpKSBKU1dvcmtlckNvbnRleHRQcm90b3R5cGUoMCwgd29ya2VyQ29udGV4dFByb3RvdHlwZVN0
cnVjdHVyZS5yZWxlYXNlKCkpKTsKIAogICAgIGlmIChtX3dvcmtlckNvbnRleHQtPmlzRGVkaWNh
dGVkV29ya2VyQ29udGV4dCgpKSB7Ci0gICAgICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IGRlZGljYXRl
ZENvbnRleHRQcm90b3R5cGVTdHJ1Y3R1cmUgPSBKU0RlZGljYXRlZFdvcmtlckNvbnRleHRQcm90
b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh3b3JrZXJDb250ZXh0UHJvdG90eXBlLmdldCgpKTsKKyAg
ICAgICAgUmVmUHRyPFN0cnVjdHVyZT4gZGVkaWNhdGVkQ29udGV4dFByb3RvdHlwZVN0cnVjdHVy
ZSA9IEpTRGVkaWNhdGVkV29ya2VyQ29udGV4dFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKCpt
X2dsb2JhbERhdGEsIHdvcmtlckNvbnRleHRQcm90b3R5cGUuZ2V0KCkpOwogICAgICAgICBHbG9i
YWw8SlNEZWRpY2F0ZWRXb3JrZXJDb250ZXh0UHJvdG90eXBlPiBkZWRpY2F0ZWRDb250ZXh0UHJv
dG90eXBlKCptX2dsb2JhbERhdGEsIG5ldyAobV9nbG9iYWxEYXRhLmdldCgpKSBKU0RlZGljYXRl
ZFdvcmtlckNvbnRleHRQcm90b3R5cGUoMCwgZGVkaWNhdGVkQ29udGV4dFByb3RvdHlwZVN0cnVj
dHVyZS5yZWxlYXNlKCkpKTsKLSAgICAgICAgUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlID0g
SlNEZWRpY2F0ZWRXb3JrZXJDb250ZXh0OjpjcmVhdGVTdHJ1Y3R1cmUoZGVkaWNhdGVkQ29udGV4
dFByb3RvdHlwZS5nZXQoKSk7CisgICAgICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSA9
IEpTRGVkaWNhdGVkV29ya2VyQ29udGV4dDo6Y3JlYXRlU3RydWN0dXJlKCptX2dsb2JhbERhdGEs
IGRlZGljYXRlZENvbnRleHRQcm90b3R5cGUuZ2V0KCkpOwogCiAgICAgICAgIG1fd29ya2VyQ29u
dGV4dFdyYXBwZXIuc2V0KCptX2dsb2JhbERhdGEsIG5ldyAobV9nbG9iYWxEYXRhLmdldCgpKSBK
U0RlZGljYXRlZFdvcmtlckNvbnRleHQoc3RydWN0dXJlLnJlbGVhc2UoKSwgbV93b3JrZXJDb250
ZXh0LT50b0RlZGljYXRlZFdvcmtlckNvbnRleHQoKSkpOwogICAgICAgICB3b3JrZXJDb250ZXh0
UHJvdG90eXBlLT5wdXRBbm9ueW1vdXNWYWx1ZSgqbV9nbG9iYWxEYXRhLCAwLCBtX3dvcmtlckNv
bnRleHRXcmFwcGVyLmdldCgpKTsKQEAgLTg3LDkgKzg3LDkgQEAgdm9pZCBXb3JrZXJTY3JpcHRD
b250cm9sbGVyOjppbml0U2NyaXB0KCkKICNpZiBFTkFCTEUoU0hBUkVEX1dPUktFUlMpCiAgICAg
fSBlbHNlIHsKICAgICAgICAgQVNTRVJUKG1fd29ya2VyQ29udGV4dC0+aXNTaGFyZWRXb3JrZXJD
b250ZXh0KCkpOwotICAgICAgICBSZWZQdHI8U3RydWN0dXJlPiBzaGFyZWRDb250ZXh0UHJvdG90
eXBlU3RydWN0dXJlID0gSlNTaGFyZWRXb3JrZXJDb250ZXh0UHJvdG90eXBlOjpjcmVhdGVTdHJ1
Y3R1cmUod29ya2VyQ29udGV4dFByb3RvdHlwZS5nZXQoKSk7CisgICAgICAgIFJlZlB0cjxTdHJ1
Y3R1cmU+IHNoYXJlZENvbnRleHRQcm90b3R5cGVTdHJ1Y3R1cmUgPSBKU1NoYXJlZFdvcmtlckNv
bnRleHRQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSgqbV9nbG9iYWxEYXRhLCB3b3JrZXJDb250
ZXh0UHJvdG90eXBlLmdldCgpKTsKICAgICAgICAgR2xvYmFsPEpTU2hhcmVkV29ya2VyQ29udGV4
dFByb3RvdHlwZT4gc2hhcmVkQ29udGV4dFByb3RvdHlwZSgqbV9nbG9iYWxEYXRhLCBuZXcgKG1f
Z2xvYmFsRGF0YS5nZXQoKSkgSlNTaGFyZWRXb3JrZXJDb250ZXh0UHJvdG90eXBlKDAsIHNoYXJl
ZENvbnRleHRQcm90b3R5cGVTdHJ1Y3R1cmUucmVsZWFzZSgpKSk7Ci0gICAgICAgIFJlZlB0cjxT
dHJ1Y3R1cmU+IHN0cnVjdHVyZSA9IEpTU2hhcmVkV29ya2VyQ29udGV4dDo6Y3JlYXRlU3RydWN0
dXJlKHNoYXJlZENvbnRleHRQcm90b3R5cGUuZ2V0KCkpOworICAgICAgICBSZWZQdHI8U3RydWN0
dXJlPiBzdHJ1Y3R1cmUgPSBKU1NoYXJlZFdvcmtlckNvbnRleHQ6OmNyZWF0ZVN0cnVjdHVyZSgq
bV9nbG9iYWxEYXRhLCBzaGFyZWRDb250ZXh0UHJvdG90eXBlLmdldCgpKTsKIAogICAgICAgICBt
X3dvcmtlckNvbnRleHRXcmFwcGVyLnNldCgqbV9nbG9iYWxEYXRhLCBuZXcgKG1fZ2xvYmFsRGF0
YS5nZXQoKSkgSlNTaGFyZWRXb3JrZXJDb250ZXh0KHN0cnVjdHVyZS5yZWxlYXNlKCksIG1fd29y
a2VyQ29udGV4dC0+dG9TaGFyZWRXb3JrZXJDb250ZXh0KCkpKTsKICAgICAgICAgd29ya2VyQ29u
dGV4dFByb3RvdHlwZS0+cHV0QW5vbnltb3VzVmFsdWUoKm1fZ2xvYmFsRGF0YSwgMCwgbV93b3Jr
ZXJDb250ZXh0V3JhcHBlci5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGNiNTFjOGEyN2Q4MTJlZTM3MzRkMGRi
MGRjMDQxMzYzNjViMWE1ZjEuLjEyYjQ3N2I1ODk0NWM3NTcyMDNmNTdjYTI1NWQwMmU4NzU2YWJj
N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCkBAIC03NDYsOSArNzQ2LDkgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAg
ICRzdHJ1Y3R1cmVGbGFnc3siSlNDOjpOZWVkc1RoaXNDb252ZXJzaW9uIn0gPSAxOwogICAgIH0K
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LAotICAgICAgICAiICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSlc
biIgLgorICAgICAgICAiICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVh
dGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBw
cm90b3R5cGUpXG4iIC4KICAgICAgICAgIiAgICB7XG4iIC4KLSAgICAgICAgIiAgICAgICAgcmV0
dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8p
O1xuIiAuCisgICAgICAgICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTtcbiIgLgogICAgICAgICAi
ICAgIH1cblxuIik7CiAKICAgICAjIG1hcmtDaGlsZHJlbiBmdW5jdGlvbgpAQCAtOTU4LDkgKzk1
OCw5IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6
T3ZlcnJpZGVzTWFya0NoaWxkcmVuIn0gPSAxOwogICAgIH0KICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LAotICAgICAgICAiICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVh
dGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSlcbiIgLgorICAgICAgICAiICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpXG4iIC4KICAgICAg
ICAgIiAgICB7XG4iIC4KLSAgICAgICAgIiAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpj
cmVhdGUocHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pO1xuIiAuCisgICAgICAgICIgICAg
ICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwg
SlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3Vz
U2xvdENvdW50LCAmc19pbmZvKTtcbiIgLgogICAgICAgICAiICAgIH1cbiIpOwogICAgIGlmICgk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5nUHJvdG90eXBlUHV0RnVu
Y3Rpb24ifSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9p
ZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7CkBAIC0xNDQyLDkg
KzE0NDIsOSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIkpTT2JqZWN0KiAke2NsYXNzTmFtZX06OmNyZWF0ZVByb3RvdHlwZShFeGVjU3Rh
dGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpXG4iKTsKICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgaWYgKCRoYXNQYXJlbnQgJiYgJHBhcmVu
dENsYXNzTmFtZSBuZSAiSlNDOjpET01Ob2RlRmlsdGVyIikgewotICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgcmV0dXJuIG5ldyAoZXhlYykgJHtjbGFzc05hbWV9UHJvdG90eXBl
KGdsb2JhbE9iamVjdCwgJHtjbGFzc05hbWV9UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoJHtw
YXJlbnRDbGFzc05hbWV9UHJvdG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCkpKTtcbiIp
OworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIG5ldyAoZXhlYykg
JHtjbGFzc05hbWV9UHJvdG90eXBlKGdsb2JhbE9iamVjdCwgJHtjbGFzc05hbWV9UHJvdG90eXBl
OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCAke3BhcmVudENsYXNzTmFtZX1Q
cm90b3R5cGU6OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0KSkpO1xuIik7CiAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gbmV3IChleGVj
KSAke2NsYXNzTmFtZX1Qcm90b3R5cGUoZ2xvYmFsT2JqZWN0LCAke2NsYXNzTmFtZX1Qcm90b3R5
cGU6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSk7XG4i
KTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBuZXcgKGV4ZWMp
ICR7Y2xhc3NOYW1lfVByb3RvdHlwZShnbG9iYWxPYmplY3QsICR7Y2xhc3NOYW1lfVByb3RvdHlw
ZTo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmpl
Y3QtPm9iamVjdFByb3RvdHlwZSgpKSk7XG4iKTsKICAgICAgICAgfQogICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIn1cblxuIik7CiAgICAgfQpAQCAtMjg3Myw5ICsyODczLDkgQEAgc3ViIEdl
bmVyYXRlQ29uc3RydWN0b3JEZWNsYXJhdGlvbgogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTtcbiIpOwog
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8g
c19pbmZvO1xuIik7CiAKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgc3RhdGljIFBhc3NS
ZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90
eXBlKVxuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpXG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAge1xuIik7Ci0gICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4g
SlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7XG4i
KTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVy
ZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTtcbiIp
OwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB9XG4iKTsKIAogICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgInByb3RlY3RlZDpcbiIpOwpAQCAtMjkwNyw3ICsyOTA3LDcgQEAgc3ViIEdlbmVy
YXRlQ29uc3RydWN0b3JEZWZpbml0aW9uCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiY29uc3Qg
Q2xhc3NJbmZvICR7Y29uc3RydWN0b3JDbGFzc05hbWV9OjpzX2luZm8gPSB7IFwiJHt2aXNpYmxl
Q2xhc3NOYW1lfUNvbnN0cnVjdG9yXCIsICZET01Db25zdHJ1Y3Rvck9iamVjdDo6c19pbmZvLCAm
JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX1UYWJsZSwgMCB9O1xuXG4iKTsKIAogICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiR7Y29uc3RydWN0b3JDbGFzc05hbWV9Ojoke2NvbnN0cnVjdG9yQ2xhc3NO
YW1lfShFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpXG4i
KTsKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdCgk
e2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+b2Jq
ZWN0UHJvdG90eXBlKCkpLCBnbG9iYWxPYmplY3QpXG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdCgke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6
Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3Qt
Pm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KVxuIik7CiAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAie1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEFTU0VSVChpbmhl
cml0cygmc19pbmZvKSk7XG4iKTsKICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRv
dyIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5oCmluZGV4IDI2N2Q3
MWU0NzI4MjU4ODUzZjMxODUwOWQyMzM1NjVhYmQ0MmI3MmQuLjg1ODE1ZmJkNDY5ODQ1YWZlNjUw
NGRmNmY2Yjk5YmU3NGI3MmY2NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9j
L0NSdW50aW1lT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvQ1J1bnRpbWVP
YmplY3QuaApAQCAtNDQsOSArNDQsOSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3QgQ2xh
c3NJbmZvIHNfaW5mbzsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRl
U3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVj
dHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBw
cm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxE
YXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5v
bnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9jL2NfaW5zdGFuY2UuY3BwCmluZGV4IDI3YWZmZWIxN2M5NmQ1YjJlNzYxNDE4NDIzMWU5NjNl
NzllM2E3OWIuLjIxZmFlNGYxZmNiN2U0Zjk4MzE5NmQ4OGI0M2I5MTg1ZTA1YzFlMTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFuY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFuY2UuY3BwCkBAIC0xMjAsOSArMTIwLDkgQEAgcHVi
bGljOgogICAgICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIH0KIAotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90
eXBlKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZv
KTsKICAgICB9CiAKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuY3BwCmluZGV4IDk1
ZDUxODAxOTQ5N2RlNDI5YmZiOGNlNzY4NjNkNTg1NmY5ZTFjYzMuLmIzMTE0MWU0YjkxYmI4MDQ3
Y2Q0NDM2ZWFiOWIyNGY4MzVhYjQxNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmNwcApAQCAtMTI1LDkgKzEyNSw5IEBAIHB1YmxpYzoK
ICAgICAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKICAgICB9CiAKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAg
ICAgfQogCiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5oIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuaAppbmRleCAxMmE4NWFl
NGRlYTUxODdkMzA5MTFmNDFkNGUwNDkxNDNiZDJlNDgwLi4wM2YxMTZmYWRmNWRhNDBlOGQ4OGY3
NjhkMzIwZDE2NjNiNDJkMjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5p
L2pzYy9KYXZhUnVudGltZU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkv
anNjL0phdmFSdW50aW1lT2JqZWN0LmgKQEAgLTQyLDkgKzQyLDkgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0LmgKaW5kZXgg
ZTlmYTEwZGMwNThkMDdkODJjYmYyZWQ4ZjQxNDlhM2Y1OGNmNTVjZi4uYjI5YTMzMzk5OTViYjk1
OWNiZWFlYTM0OWUzZmMyZDliNzFmOWE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
b2JqYy9PYmpDUnVudGltZU9iamVjdC5oCkBAIC00Miw5ICs0Miw5IEBAIHB1YmxpYzoKIAogICAg
IHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgIH0KIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tCmluZGV4IGUwYjE4
ZjE0MjU1MWU3ZTgxZWVhMjkwMTA2ZGQ2NzgyYTlmYmJjNTcuLjRmOTNjZmE2YWY5NzE2ZGRkYjRm
ZDFkZWUzYzFjODQ5ZjU1M2Y5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9v
YmpjL29iamNfaW5zdGFuY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2Jq
Y19pbnN0YW5jZS5tbQpAQCAtMTg0LDkgKzE4NCw5IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJU
KGluaGVyaXRzKCZzX2luZm8pKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1
Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBB
bm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgc3Rh
dGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29i
amNfcnVudGltZS5oCmluZGV4IDFjZWU4NWJjMjJjMWZjMDA1YThkZjcyMTk3YmM3ZjAwNjI4ZDFj
NDEuLjRlZjBhZmQ1NzM5N2VhNWY3NWZkNTgzNmEzNjc0NjA0NWJhMzcyODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCkBAIC0xMDMsOSArMTAzLDkgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKTsKICAg
ICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShK
U1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0
ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9x
dC9xdF9pbnN0YW5jZS5jcHAKaW5kZXggN2FmNzUyZDRmMDdiYjkxNzU5MDc1YTA1YjQxY2FkMjIy
Y2U3ZmFlYS4uOTFhZTQwZjFkMGIwMzE5MDAyNDViNDQ4OTFjMmMxZDgzMTZiMTljNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwCkBAIC01OSw5ICs1OSw5IEBAIHB1
YmxpYzoKICAgICAgICAgICAgIGluc3RhbmNlLT5tYXJrQWdncmVnYXRlKG1hcmtTdGFjayk7CiAg
ICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVh
dGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJ
bmZvKE9iamVjdFR5cGUsICBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsICBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Ns
b3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcGl4bWFwcnVudGltZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcXQvcXRfcGl4bWFwcnVudGltZS5jcHAKaW5kZXggNTM0ZTI4ZTI1OWI0ODZhN2Mz
OTNmZDU1MWEyNmNmMTk5MTZkMTQ1OC4uZjVlMmIxMmJkMzExNTVkZTdiY2VmOGZmYmMyZDc3M2Q4
NzZmNGUzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3BpeG1hcHJ1
bnRpbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9waXhtYXBydW50aW1l
LmNwcApAQCAtMTUwLDkgKzE1MCw5IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdCBDbGFz
c0luZm8gc19pbmZvOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVT
dHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHBy
b3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5
cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsICBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxE
YXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsICBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKaW5kZXggZWQzZjg0MTM3NmZlZDM0ZWViMzNm
YjIyM2FhZGQyZjUxM2JlOWUwZC4uZmQzM2I4OTdkYTBmNmQ0NGU1N2RiMDJjZDExZTNhODAxNmU0
ZTRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcApAQCAtODkwLDcg
Kzg5MCw3IEBAIEpTVmFsdWUgY29udmVydFFWYXJpYW50VG9WYWx1ZShFeGVjU3RhdGUqIGV4ZWMs
IFBhc3NSZWZQdHI8Um9vdE9iamVjdD4gcm9vdCwgY29uCiAgICAgICAgIFFCeXRlQXJyYXkgcXRC
eXRlQXJyYXkgPSB2YXJpYW50LnZhbHVlPFFCeXRlQXJyYXk+KCk7CiAgICAgICAgIFdURjo6UmVm
UHRyPFdURjo6Qnl0ZUFycmF5PiB3dGZCeXRlQXJyYXkgPSBXVEY6OkJ5dGVBcnJheTo6Y3JlYXRl
KHF0Qnl0ZUFycmF5Lmxlbmd0aCgpKTsKICAgICAgICAgbWVtY3B5KHd0ZkJ5dGVBcnJheS0+ZGF0
YSgpLCBxdEJ5dGVBcnJheS5jb25zdERhdGEoKSwgcXRCeXRlQXJyYXkubGVuZ3RoKCkpOwotICAg
ICAgICByZXR1cm4gbmV3IChleGVjKSBKU0M6OkpTQnl0ZUFycmF5KGV4ZWMsIEpTQzo6SlNCeXRl
QXJyYXk6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSksIHd0ZkJ5dGVBcnJheS5nZXQoKSk7Cisg
ICAgICAgIHJldHVybiBuZXcgKGV4ZWMpIEpTQzo6SlNCeXRlQXJyYXkoZXhlYywgSlNDOjpKU0J5
dGVBcnJheTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNOdWxsKCkpLCB3
dGZCeXRlQXJyYXkuZ2V0KCkpOwogICAgIH0KIAogICAgIGlmICh0eXBlID09IFFNZXRhVHlwZTo6
UU9iamVjdFN0YXIgfHwgdHlwZSA9PSBRTWV0YVR5cGU6OlFXaWRnZXRTdGFyKSB7CkBAIC0xODI4
LDcgKzE4MjgsNyBAQCB2b2lkIFF0Q29ubmVjdGlvbk9iamVjdDo6ZXhlY3V0ZSh2b2lkICoqYXJn
dikKICAgICAgICAgICAgICAgICAgICAgICAgIGZpbXAgPSBzdGF0aWNfY2FzdDxKU0Z1bmN0aW9u
Kj4obV9mdW5jT2JqZWN0LmdldCgpKTsKIAogICAgICAgICAgICAgICAgICAgICAgICAgSlNPYmpl
Y3QqIHF0X3NlbmRlciA9IFF0SW5zdGFuY2U6OmdldFF0SW5zdGFuY2Uoc2VuZGVyKCksIHJvLCBR
U2NyaXB0RW5naW5lOjpRdE93bmVyc2hpcCktPmNyZWF0ZVJ1bnRpbWVPYmplY3QoZXhlYyk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBKU09iamVjdCogd3JhcHBlciA9IGNvbnN0cnVjdEVtcHR5
T2JqZWN0KGV4ZWMsIGNyZWF0ZUVtcHR5T2JqZWN0U3RydWN0dXJlKGpzTnVsbCgpKSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBKU09iamVjdCogd3JhcHBlciA9IGNvbnN0cnVjdEVtcHR5T2Jq
ZWN0KGV4ZWMsIGNyZWF0ZUVtcHR5T2JqZWN0U3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwg
anNOdWxsKCkpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90
OwogICAgICAgICAgICAgICAgICAgICAgICAgd3JhcHBlci0+cHV0KGV4ZWMsIElkZW50aWZpZXIo
ZXhlYywgIl9fcXRfc2VuZGVyX18iKSwgcXRfc2VuZGVyLCBzbG90KTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIG9sZHNjID0gZmltcC0+c2NvcGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRf
cnVudGltZS5oCmluZGV4IGI4NmNjYmUyYzM4M2QxYmZkMzExM2RlNzM3OTgwMDkyMDJmMTRjY2Yu
Ljg1YjM0YjhjYzVlMGUwZWJmNmY1MGQ1NTBlY2QxZjRiODFkOGRjYjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3F0L3F0X3J1bnRpbWUuaApAQCAtMTUzLDkgKzE1Myw5IEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+ZnVuY3Rpb25Qcm90b3R5cGUoKTsKICAgICB9CiAKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHBy
b3RvdHlwZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVy
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0
VHlwZSwgIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAm
c19pbmZvKTsKICAgICB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX2FycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9h
cnJheS5oCmluZGV4IGJkMWRhMzIxNzE2N2EwMTk3ZGI2NjZlNzg1MmRiYTA5NTY1ODk4MDYuLjk1
NTU1NDUyZGVmOTZhZjA2Y2E2OTVkZjVkYjA4ZDA3YThhNmMwNTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfYXJyYXkuaApAQCAtNTgsOSArNTgsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBnbG9iYWxPYmplY3QtPmFycmF5UHJvdG90eXBlKCk7CiAgICAgfQogCi0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUp
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwog
ICAgIH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfbWV0aG9kLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaApp
bmRleCBjMGM5ZjE2MzQwNGM1YTk4MmRjMDllZmQzZTBkMDNkNWI4ZWY3MzQ3Li45ZGY3OTZlYjA3
MTViZjMyYjM0ZDIyM2ZiNTJiM2M4MjYyYmM2YmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9tZXRob2QuaApAQCAtNDUsOSArNDUsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBn
bG9iYWxPYmplY3QtPmZ1bmN0aW9uUHJvdG90eXBlKCk7CiAgICAgfQogCi0gICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAg
IH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfb2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAppbmRl
eCAwZGVjZDE3ODY0ODQzOTA4YzY4ZDU2ZDYzZjQ5MDEzMTMyOGFhNDAxLi5iYjZkMDUxMGYyOGQ0
M2RiNTc1MTg1MDllMTBiZDEyYTQzZDM0YWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9vYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9vYmplY3QuaApAQCAtNjEsOSArNjEsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBnbG9i
YWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAK
IHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBkNzc1NzcyYjVlZjlmOTZiNDZhYzRjYWQz
YTVhNzgzZjYyNGZkNmNjLi5mMTczNWI4NmI0MzQ2ZjY2M2I1ZWVmYzcxNTBmZDQ2NzY3MDZhZGJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDMtMTUgIE9saXZlciBI
dW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBNYWtlIFN0cnVjdHVyZSBjcmVhdGlvbiByZXF1aXJlIGEgSlNHbG9i
YWxEYXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
NjQzOAorCisgICAgICAgIE1lY2hhbmljYWwgY2hhbmdlIHRvIG1ha2UgYWxsIFN0cnVjdHVyZSBj
cmVhdGlvbiB1c2UgYSBKU0dsb2JhbERhdGEmCisKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9Q
cm94eUluc3RhbmNlLm1tOgorICAgICAgICAoV2ViS2l0OjpQcm94eVJ1bnRpbWVNZXRob2Q6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2Jq
ZWN0Lmg6CisgICAgICAgIChXZWJLaXQ6OlByb3h5UnVudGltZU9iamVjdDo6Y3JlYXRlU3RydWN0
dXJlKToKKwogMjAxMS0wMy0xNSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4K
IAogICAgICAgICBGb3Jnb3QgdG8gc2F2ZSBhIG1vZGlmaWNhdGlvbiB0byB0aGlzIGZpbGUgd2hl
biBjb21taXR0aW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvUHJveHlJbnN0YW5jZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1By
b3h5SW5zdGFuY2UubW0KaW5kZXggOGE0MTNkNDI4YzI3NjU5ODhjODc2OGUzYzdiZmU5MzA0MTcy
YTgwNy4uZjI2Yjg1ZGNlYTJhMzlmYTUzOWYwODg2MzQ1ZjVhNTE4MjAyNDMzNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tCkBAIC0x
ODcsOSArMTg3LDkgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykp
OwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0
dXJlKEpTVmFsdWUgcHJvdG90eXBlKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4g
Y3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5
cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwg
JnNfaW5mbyk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3Vz
U2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZv
IHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1By
b3h5UnVudGltZU9iamVjdC5oIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJv
eHlSdW50aW1lT2JqZWN0LmgKaW5kZXggZmM3Nzg5MDJhZmU0Y2EwNDUyMjc5Mjk0NzBhZmViODZk
YTgxZjcwZC4uYTA3Yzg2Yzg4OGU3N2JhM2JjMTY0YzRkYWMwNzdlODJmMjA3ZjNiNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2Jq
ZWN0LmgKQEAgLTQxLDkgKzQxLDkgQEAgcHVibGljOgogCiAgICAgUHJveHlJbnN0YW5jZSogZ2V0
SW50ZXJuYWxQcm94eUluc3RhbmNlKCkgY29uc3Q7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxK
U0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6
OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7
Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpU
eXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENv
dW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgIH0KIAogICAgIHN0
YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTc0ZjkzYjIw
YjMxOGNkODVjZDE2ZTliOTczNzNjMDlmZTdiNWU0NS4uYzkzMDE1YmVlMWRhNDVkNjk1OTUwOWUz
YTBkM2M0OTU2ZTVjODcxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTAzLTE1
ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBTdHJ1Y3R1cmUgY3JlYXRpb24gcmVxdWly
ZSBhIEpTR2xvYmFsRGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTY0MzgKKworICAgICAgICBNZWNoYW5pY2FsIGNoYW5nZSB0byBtYWtlIGFsbCBT
dHJ1Y3R1cmUgY3JlYXRpb24gdXNlIGEgSlNHbG9iYWxEYXRhJi4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
SlNOUE1ldGhvZDo6SlNOUE1ldGhvZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL0pTTlBNZXRob2QuaDoKKyAgICAgICAgKFdlYktpdDo6SlNOUE1ldGhvZDo6Y3JlYXRl
U3RydWN0dXJlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9i
amVjdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkpTTlBPYmplY3Q6OkpTTlBPYmplY3QpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0Lmg6CisgICAgICAg
IChXZWJLaXQ6OkpTTlBPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisKIDIwMTEtMDMtMTYgIEJy
YWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFk
YW0gUm9iZW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvSlNOUE1ldGhvZC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5jcHAKaW5kZXggZmM3MzUxOTA4NjEwNTFiODlhYjg4MmJk
MTFlN2IxZGM4NWIzNGRiYi4uOGIzNmQxZGFlZjgwNWZmMzc3YzMxZWJiMDA4YzU4M2U0MzkwZGU2
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L0pTTlBNZXRob2QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9KU05QTWV0aG9kLmNwcApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIGNvbnN0IENsYXNzSW5mbyBKU05QTWV0aG9kOjpzX2luZm8gPSB7ICJOUE1ldGhvZCIsICZJ
bnRlcm5hbEZ1bmN0aW9uOjpzX2luZm8sIDAsIDAgfTsKIAogSlNOUE1ldGhvZDo6SlNOUE1ldGhv
ZChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IElk
ZW50aWZpZXImIG5hbWUsIE5QSWRlbnRpZmllciBucElkZW50aWZpZXIpCi0gICAgOiBJbnRlcm5h
bEZ1bmN0aW9uKCZleGVjLT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCwgY3JlYXRlU3RydWN0
dXJlKGdsb2JhbE9iamVjdC0+ZnVuY3Rpb25Qcm90b3R5cGUoKSksIG5hbWUpCisgICAgOiBJbnRl
cm5hbEZ1bmN0aW9uKCZleGVjLT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCwgY3JlYXRlU3Ry
dWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5mdW5jdGlvblByb3RvdHlw
ZSgpKSwgbmFtZSkKICAgICAsIG1fbnBJZGVudGlmaWVyKG5wSWRlbnRpZmllcikKIHsKICAgICBB
U1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmgKaW5kZXggYTkxM2E5OWQwNWFh
NDhiZDI5ZWFhNzc0NmMzNzA5MzMzZTRjYjcwOC4uZjBjMjQyNGFkYmZiMWFiYTM3NzRiMjliZmNh
YTQ2MTkzYWI4MzRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5oCkBAIC00Miw5ICs0Miw5IEBAIHB1YmxpYzoK
ICAgICBOUElkZW50aWZpZXIgbnBJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9ucElkZW50
aWZpZXI7IH0KIAogcHJpdmF0ZTogICAgCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1
Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAg
ICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8o
SlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIEpT
Qzo6Q2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDOjpDYWxsRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3Bw
CmluZGV4IDI3MjRmMGQ2NTljODA0Y2M1ZmE3NzdlNzg1YjkyZGNhYjhhNzQxZmYuLjkzZjlmYzVi
Yjg3MDk0NTVlNjA0MDFlNmI5ZmNmMzRmYjZjMDRhZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKQEAg
LTUwLDcgKzUwLDcgQEAgc3RhdGljIE5QSWRlbnRpZmllciBucElkZW50aWZpZXJGcm9tSWRlbnRp
Zmllcihjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyKQogY29uc3QgQ2xhc3NJbmZvIEpTTlBP
YmplY3Q6OnNfaW5mbyA9IHsgIk5QT2JqZWN0IiwgJkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6
c19pbmZvLCAwLCAwIH07CiAKIEpTTlBPYmplY3Q6OkpTTlBPYmplY3QoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgTlBSdW50aW1lT2JqZWN0TWFwKiBvYmplY3RNYXAsIE5QT2JqZWN0KiBu
cE9iamVjdCkKLSAgICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIGNy
ZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSkKKyAgICA6IEpT
T2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIGNyZWF0ZVN0cnVjdHVyZShnbG9i
YWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSkp
CiAgICAgLCBtX29iamVjdE1hcChvYmplY3RNYXApCiAgICAgLCBtX25wT2JqZWN0KG5wT2JqZWN0
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL0pTTlBPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9KU05QT2JqZWN0LmgKaW5kZXggYWRhZmZhN2YyOTFmOTNmMjlhZDJkNWJkOTliOGM4OWI5
YjZjYjg4NC4uZThhMDhkYWQ0ODdlMDA3YzhmNDY4NmNhZWI1NGE3NDE5MDJjYzMwYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmpl
Y3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNO
UE9iamVjdC5oCkBAIC01NSw5ICs1NSw5IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9w
ZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBKU09iamVjdDo6U3Ry
dWN0dXJlRmxhZ3M7CiAgICAgCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+
IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1
cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7
CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3Rv
dHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5v
bnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIEpTQzo6Q2Fs
bFR5cGUgZ2V0Q2FsbERhdGEoSlNDOjpDYWxsRGF0YSYpOwo=
</data>
<flag name="review"
          id="78152"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>