<?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>78455</bug_id>
          
          <creation_ts>2012-02-12 20:54:29 -0800</creation_ts>
          <short_desc>Use youngestShadowRoot and oldestShadowRoot instead of Element::shadowRoot()</short_desc>
          <delta_ts>2012-02-14 04:48:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>78313</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Shinya Kawanaka">shinyak</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>gustavo</cc>
    
    <cc>hayato</cc>
    
    <cc>japhet</cc>
    
    <cc>morrita</cc>
    
    <cc>pnormand</cc>
    
    <cc>rolandsteiner</cc>
    
    <cc>shinyak</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>554986</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-12 20:54:29 -0800</bug_when>
    <thetext>Element::shadowRoot() now becomes ambiguous, because in some cases, we want to get the youngest shadow root, in the other cases, we want to get the oldest shadow root.
It&apos;s time to convert them so that the code becomes more clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555057</commentid>
    <comment_count>1</comment_count>
      <attachid>126726</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-12 23:51:36 -0800</bug_when>
    <thetext>Created attachment 126726
Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555072</commentid>
    <comment_count>2</comment_count>
      <attachid>126726</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-13 00:12:22 -0800</bug_when>
    <thetext>Comment on attachment 126726
Test

Attachment 126726 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11509654</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555099</commentid>
    <comment_count>3</comment_count>
      <attachid>126726</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-13 01:01:11 -0800</bug_when>
    <thetext>Comment on attachment 126726
Test

Attachment 126726 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11510741

New failing tests:
fast/forms/access-key-for-all-elements.html
fast/forms/focus-selection-input.html
fast/forms/legend-access-key.html
fast/forms/focus-selection-textarea.html
fast/forms/access-key.html
fast/dom/shadow/access-key.html
fast/speech/speech-input-scripting.html
fast/forms/input-radio-checked-tab.html
fast/forms/ValidityState-valueMissing-002.html
fast/dom/access-key-iframe.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555121</commentid>
    <comment_count>4</comment_count>
      <attachid>126726</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-13 01:58:45 -0800</bug_when>
    <thetext>Comment on attachment 126726
Test

Attachment 126726 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11509682

New failing tests:
fast/forms/access-key-for-all-elements.html
fast/forms/focus-selection-input.html
fast/forms/legend-access-key.html
fast/forms/focus-selection-textarea.html
fast/forms/access-key.html
fast/dom/shadow/access-key.html
fast/speech/speech-input-scripting.html
fast/forms/input-radio-checked-tab.html
fast/forms/ValidityState-valueMissing-002.html
fast/dom/access-key-iframe.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555849</commentid>
    <comment_count>5</comment_count>
      <attachid>126884</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-13 18:43:27 -0800</bug_when>
    <thetext>Created attachment 126884
Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555860</commentid>
    <comment_count>6</comment_count>
      <attachid>126884</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-13 18:59:41 -0800</bug_when>
    <thetext>Comment on attachment 126884
Test

Attachment 126884 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11523018</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555898</commentid>
    <comment_count>7</comment_count>
      <attachid>126884</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-13 20:04:28 -0800</bug_when>
    <thetext>Comment on attachment 126884
Test

Attachment 126884 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11514125

New failing tests:
fast/speech/speech-input-scripting.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555899</commentid>
    <comment_count>8</comment_count>
      <attachid>126896</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-13 20:07:46 -0800</bug_when>
    <thetext>Created attachment 126896
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555911</commentid>
    <comment_count>9</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-13 20:36:26 -0800</bug_when>
    <thetext>Removes Element::shadowRoot(), and converted it to either:
(1) hasShadowRoot()
  to check the existence of shadow root,
(2) shadowRootList()-&gt;youngestShadowRoot()
  to render shadow root tree,
(3) shadowRootList()-&gt;oldestShadowRoot().
  to modify user agent shadow root.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555958</commentid>
    <comment_count>10</comment_count>
      <attachid>126896</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-13 22:33:58 -0800</bug_when>
    <thetext>Comment on attachment 126896
Patch

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

&gt; Source/WebCore/dom/Element.cpp:1181
&gt; +#endif

We can remove this.

&gt; Source/WebCore/dom/ShadowRootList.cpp:93
&gt; +{

Is it safe to attach like this?

&gt; Source/WebCore/html/InputType.cpp:387
&gt; +            root-&gt;removeChild(root-&gt;firstChild());

Why not removeAllChildren()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556025</commentid>
    <comment_count>11</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-14 00:01:13 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 126896 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=126896&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Element.cpp:1181
&gt; &gt; +#endif
&gt; 
&gt; We can remove this.

Nice catch...

&gt; 
&gt; &gt; Source/WebCore/dom/ShadowRootList.cpp:93
&gt; &gt; +{
&gt; 
&gt; Is it safe to attach like this?

Currently, yes, because all shadow roots are detached when calling this.

&gt; 
&gt; &gt; Source/WebCore/html/InputType.cpp:387
&gt; &gt; +            root-&gt;removeChild(root-&gt;firstChild());
&gt; 
&gt; Why not removeAllChildren()?

Why not....? yeah... it should be...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556035</commentid>
    <comment_count>12</comment_count>
      <attachid>126921</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-14 00:09:12 -0800</bug_when>
    <thetext>Created attachment 126921
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556066</commentid>
    <comment_count>13</comment_count>
      <attachid>126926</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-14 00:50:39 -0800</bug_when>
    <thetext>Created attachment 126926
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556073</commentid>
    <comment_count>14</comment_count>
      <attachid>126926</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-02-14 01:02:51 -0800</bug_when>
    <thetext>Comment on attachment 126926
Patch

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

&gt; Source/WebCore/dom/Element.cpp:876
&gt; +    if (ShadowRootList* shadowList = shadowRootList())

Could you name &apos;shadowRootList&apos; instead of &apos;shadowList&apos; in this patch?
Since we now have ShadowElement, a naming of &apos;shadow&apos; should be avoided and it might be better to use &apos;shadowRoot&apos; or &apos;shadowElement&apos; explicitly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556078</commentid>
    <comment_count>15</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-14 01:11:04 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 126926 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=126926&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Element.cpp:876
&gt; &gt; +    if (ShadowRootList* shadowList = shadowRootList())
&gt; 
&gt; Could you name &apos;shadowRootList&apos; instead of &apos;shadowList&apos; in this patch?
&gt; Since we now have ShadowElement, a naming of &apos;shadow&apos; should be avoided and it might be better to use &apos;shadowRoot&apos; or &apos;shadowElement&apos; explicitly.

Sounds reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556081</commentid>
    <comment_count>16</comment_count>
      <attachid>126929</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-14 01:12:29 -0800</bug_when>
    <thetext>Created attachment 126929
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556097</commentid>
    <comment_count>17</comment_count>
      <attachid>126932</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-14 01:34:00 -0800</bug_when>
    <thetext>Created attachment 126932
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556219</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-14 04:44:04 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 126932:

perf/object-keys.html bug 63769 (author: ojan@chromium.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556221</commentid>
    <comment_count>19</comment_count>
      <attachid>126932</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-14 04:48:41 -0800</bug_when>
    <thetext>Comment on attachment 126932
Patch

Clearing flags on attachment: 126932

Committed r107706: &lt;http://trac.webkit.org/changeset/107706&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556222</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-14 04:48:48 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126726</attachid>
            <date>2012-02-12 23:51:36 -0800</date>
            <delta_ts>2012-02-13 18:43:16 -0800</delta_ts>
            <desc>Test</desc>
            <filename>bug-78455-20120213165134.patch</filename>
            <type>text/plain</type>
            <size>43398</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDQ2NDUxYzdmZjY4ZGI3
MzgwMzM4ZjQ4NDM4NjlkZDFkODU4YmU0MS4uYzJhYzc5NjJiZjlkNTQxZTgyNDQ3ZjAwY2ExNGNh
MzRhNzU1YTJhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDExMCBAQAogMjAxMi0wMi0xMiAgU2hp
bnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgogCisgICAgICAgIFVzZSB5b3VuZ2Vz
dFNoYWRvd1Jvb3QgYW5kIG9sZGVzdFNoYWRvd1Jvb3QgaW5zdGVhZCBvZiBFbGVtZW50OjpzaGFk
b3dSb290KCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03ODQ1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEVsZW1lbnQ6OnNoYWRvd1Jvb3QoKSBpcyBhbWJpZ3VvdXMgYmVjYXVzZSBpdCBkb24ndCBzYXkg
dG8gdGFrZSB0aGUgeW91bmdlc3Qgc2hhZG93IHJvb3Qgb3IKKyAgICAgICAgdGhlIG9sZGVzdCBz
aGFkb3cgcm9vdC4KKworICAgICAgICBXZSBzaG91bGQgbWFrZSB0aGlzIGNsZWFyZXIuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBubyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmJ1aWxkQWNjZXNz
S2V5TWFwKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
OjpyZW1vdmVkRnJvbURvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6Omluc2Vy
dGVkSW50b1RyZWUpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVtb3ZlZEZyb21UcmVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmF0dGFjaCk6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjpkZXRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVjYWxjU3R5
bGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjplbnN1
cmVTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpmb2N1cyk6CisgICAgICAgICogZG9tL0Vs
ZW1lbnQuaDoKKyAgICAgICAgKEVsZW1lbnQpOgorICAgICAgICAqIGRvbS9FdmVudERpc3BhdGNo
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNTaGFkb3dIb3N0KToKKyAgICAgICAgKiBkb20v
Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzaGFkb3dSb290KToKKyAgICAgICAgKiBkb20v
Tm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmlu
Z0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0KToKKyAgICAgICAgKiBkb20vU2hhZG93Um9v
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpjcmVhdGUpOgorICAgICAgICAq
IGRvbS9TaGFkb3dSb290TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290TGlz
dDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTaGFkb3dSb290TGlzdDo6cmVtb3ZlZEZyb21Eb2N1bWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpTaGFkb3dSb290TGlzdDo6aW5zZXJ0ZWRJbnRvVHJlZSk6CisgICAgICAgIChXZWJD
b3JlOjpTaGFkb3dSb290TGlzdDo6cmVtb3ZlZEZyb21UcmVlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNoYWRvd1Jvb3RMaXN0Ojpob3N0Q2hpbGRyZW5DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNoYWRvd1Jvb3RMaXN0OjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdExp
c3Q6OmRldGFjaCk6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3RMaXN0Lmg6CisgICAgICAgIChT
aGFkb3dSb290TGlzdCk6CisgICAgICAgICogZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6c2hhZG93Um9vdEZvcik6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1
YnRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6bXVsdGlwbGVBdHRyaWJ1
dGVDaGFuZ2VkKToKKyAgICAgICAgKiBodG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MRGV0YWlsc0VsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTERldGFpbHNFbGVtZW50OjpmaW5kTWFpblN1bW1hcnkpOgor
ICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MSW5wdXRFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL0hU
TUxLZXlnZW5FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxLZXlnZW5FbGVtZW50
OjpIVE1MS2V5Z2VuRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MS2V5Z2VuRWxlbWVu
dDo6c2hhZG93U2VsZWN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFDb250cm9scyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpoYXNNZWRpYUNvbnRyb2xzKToKKyAgICAg
ICAgKiBodG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
dGVyRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9IVE1MUHJv
Z3Jlc3NFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6
OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvSFRNTFN1bW1hcnlFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlU2hhZG93
U3VidHJlZSk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6aW5uZXJUZXh0RWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Ojp1cGRhdGVQbGFjZWhvbGRl
clRleHQpOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklucHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvUmFuZ2VJ
bnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmhhbmRsZU1v
dXNlRG93bkV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5wdXRUeXBlOjpjcmVhdGVT
aGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUp
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjp1cGRhdGVQbGFjZWhvbGRl
clRleHQpOgorICAgICAgICAqIGh0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VmFsaWRhdGlvbk1lc3NhZ2U6OmRlbGV0ZUJ1YmJsZVRyZWUpOgorICAgICAgICAq
IGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpz
bGlkZXJUaHVtYkVsZW1lbnRPZik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXJDb250
YWluZXI6OmxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjp0cmFja0xpbWl0ZXJFbGVtZW50T2Yp
OgorICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnNoYWRvd1Jvb3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJv
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6dXBsb2Fk
QnV0dG9uKToKKyAgICAgICAgKiBzdmcvU1ZHVFJlZkVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVFJlZkVsZW1lbnQ6OnVwZGF0ZVJlZmVyZW5jZWRUZXh0KToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmVuc3Vy
ZVNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzaGFkb3dSb290KToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp5b3VuZ2Vz
dFNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpvbGRlc3RTaGFkb3dS
b290KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAoSW50ZXJuYWxz
KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKKzIwMTItMDItMTIgIFNoaW55
YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKwogICAgICAgICBJbnRyb2R1Y2UgU2hh
ZG93Um9vdExpc3QuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03ODA2OQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA2MmVlZmY5Yjk5OWQ4Yjc5
NWU0OTYyOWUzNDk3MDY4OTQxYzlmZDgzLi5lNTU3NDE4NjhmYWZmY2U5NWU2YzcxNTdlYjVhODc0
MjFkNmM4YThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEzNyw2ICsxMzcsNyBAQAog
I2luY2x1ZGUgIlNlZ21lbnRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5j
bHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVk
ZSAiU3RhdGljSGFzaFNldE5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldExpc3QuaCIK
ICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCkBAIC02NjYsOCArNjY3LDExIEBAIHZv
aWQgRG9jdW1lbnQ6OmJ1aWxkQWNjZXNzS2V5TWFwKFRyZWVTY29wZSogc2NvcGUpCiAgICAgICAg
IGNvbnN0IEF0b21pY1N0cmluZyYgYWNjZXNzS2V5ID0gZWxlbWVudC0+Z2V0QXR0cmlidXRlKGFj
Y2Vzc2tleUF0dHIpOwogICAgICAgICBpZiAoIWFjY2Vzc0tleS5pc0VtcHR5KCkpCiAgICAgICAg
ICAgICBtX2VsZW1lbnRzQnlBY2Nlc3NLZXkuc2V0KGFjY2Vzc0tleS5pbXBsKCksIGVsZW1lbnQp
OwotICAgICAgICBpZiAoU2hhZG93Um9vdCogc2hhZG93Um9vdCA9IGVsZW1lbnQtPnNoYWRvd1Jv
b3QoKSkKLSAgICAgICAgICAgIGJ1aWxkQWNjZXNzS2V5TWFwKHNoYWRvd1Jvb3QpOworCisgICAg
ICAgIGlmIChlbGVtZW50LT5oYXNTaGFkb3dSb290KCkpIHsKKyAgICAgICAgICAgIGZvciAoU2hh
ZG93Um9vdCogcm9vdCA9IGVsZW1lbnQtPnNoYWRvd1Jvb3RMaXN0KCktPnlvdW5nZXN0U2hhZG93
Um9vdCgpOyByb290OyByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKKyAgICAgICAgICAgICAgICBi
dWlsZEFjY2Vzc0tleU1hcChyb290KTsKKyAgICAgICAgfQogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCmluZGV4IDRjNWU0MWNjMzU4ZjFmYTVhNjgyOTZkZTBkZjc5NzBjOTBmNzViMTUu
LmQ2ZmRmNmNiNTQzOGQ5YjUwYjdkNWU5YTU2M2U0ZTQzOTNiODM5ZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAKQEAgLTg3MCw4ICs4NzAsOCBAQCB2b2lkIEVsZW1lbnQ6Omluc2VydGVkSW50b0Rv
Y3VtZW50KCkKICAgICAvLyBuZWVkIHRvIGRvIHN1cGVyY2xhc3MgcHJvY2Vzc2luZyBmaXJzdCBz
byBpbkRvY3VtZW50KCkgaXMgdHJ1ZQogICAgIC8vIGJ5IHRoZSB0aW1lIHdlIHJlYWNoIHVwZGF0
ZUlkCiAgICAgQ29udGFpbmVyTm9kZTo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKLSAgICBpZiAo
U2hhZG93Um9vdCogc2hhZG93ID0gc2hhZG93Um9vdCgpKQotICAgICAgICBzaGFkb3ctPmluc2Vy
dGVkSW50b0RvY3VtZW50KCk7CisgICAgaWYgKFNoYWRvd1Jvb3RMaXN0KiBzaGFkb3dMaXN0ID0g
c2hhZG93Um9vdExpc3QoKSkKKyAgICAgICAgc2hhZG93TGlzdC0+aW5zZXJ0ZWRJbnRvRG9jdW1l
bnQoKTsKIAogICAgIGlmIChtX2F0dHJpYnV0ZU1hcCkgewogICAgICAgICBpZiAoaGFzSUQoKSkg
ewpAQCAtOTAzLDggKzkwMyw4IEBAIHZvaWQgRWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVudCgp
CiAgICAgfQogCiAgICAgQ29udGFpbmVyTm9kZTo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpOwotICAg
IGlmIChTaGFkb3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290KCkpCi0gICAgICAgIHNoYWRvdy0+
cmVtb3ZlZEZyb21Eb2N1bWVudCgpOworICAgIGlmIChTaGFkb3dSb290TGlzdCogc2hhZG93TGlz
dCA9IHNoYWRvd1Jvb3RMaXN0KCkpCisgICAgICAgIHNoYWRvd0xpc3QtPnJlbW92ZWRGcm9tRG9j
dW1lbnQoKTsKIH0KIAogdm9pZCBFbGVtZW50OjppbnNlcnRlZEludG9UcmVlKGJvb2wgZGVlcCkK
QEAgLTkxMiw4ICs5MTIsOCBAQCB2b2lkIEVsZW1lbnQ6Omluc2VydGVkSW50b1RyZWUoYm9vbCBk
ZWVwKQogICAgIENvbnRhaW5lck5vZGU6Omluc2VydGVkSW50b1RyZWUoZGVlcCk7CiAgICAgaWYg
KCFkZWVwKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRvdyA9IHNo
YWRvd1Jvb3QoKSkKLSAgICAgICAgc2hhZG93LT5pbnNlcnRlZEludG9UcmVlKHRydWUpOworICAg
IGlmIChTaGFkb3dSb290TGlzdCogc2hhZG93TGlzdCA9IHNoYWRvd1Jvb3RMaXN0KCkpCisgICAg
ICAgIHNoYWRvd0xpc3QtPmluc2VydGVkSW50b1RyZWUodHJ1ZSk7CiAKICNpZiBFTkFCTEUoRlVM
TFNDUkVFTl9BUEkpCiAgICAgaWYgKGNvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnQoKSAmJiBwYXJl
bnRFbGVtZW50KCkgJiYgIXBhcmVudEVsZW1lbnQoKS0+Y29udGFpbnNGdWxsU2NyZWVuRWxlbWVu
dCgpKQpAQCAtOTI2LDggKzkyNiw4IEBAIHZvaWQgRWxlbWVudDo6cmVtb3ZlZEZyb21UcmVlKGJv
b2wgZGVlcCkKICAgICBDb250YWluZXJOb2RlOjpyZW1vdmVkRnJvbVRyZWUoZGVlcCk7CiAgICAg
aWYgKCFkZWVwKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRvdyA9
IHNoYWRvd1Jvb3QoKSkKLSAgICAgICAgc2hhZG93LT5yZW1vdmVkRnJvbVRyZWUodHJ1ZSk7Cisg
ICAgaWYgKFNoYWRvd1Jvb3RMaXN0KiBzaGFkb3dMaXN0ID0gc2hhZG93Um9vdExpc3QoKSkKKyAg
ICAgICAgc2hhZG93TGlzdC0+cmVtb3ZlZEZyb21UcmVlKHRydWUpOwogfQogCiB2b2lkIEVsZW1l
bnQ6OmF0dGFjaCgpCkBAIC05MzksMTAgKzkzOSwxMCBAQCB2b2lkIEVsZW1lbnQ6OmF0dGFjaCgp
CiAgICAgU3R5bGVTZWxlY3RvclBhcmVudFB1c2hlciBwYXJlbnRQdXNoZXIodGhpcyk7CiAKICAg
ICAvLyBXaGVuIGEgc2hhZG93IHJvb3QgZXhpc3RzLCBpdCBkb2VzIHRoZSB3b3JrIG9mIGF0dGFj
aGluZyB0aGUgY2hpbGRyZW4uCi0gICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRvdyA9IHNoYWRvd1Jv
b3QoKSkgeworICAgIGlmIChoYXNTaGFkb3dSb290KCkpIHsKICAgICAgICAgcGFyZW50UHVzaGVy
LnB1c2goKTsKICAgICAgICAgTm9kZTo6YXR0YWNoKCk7Ci0gICAgICAgIHNoYWRvdy0+YXR0YWNo
KCk7CisgICAgICAgIHNoYWRvd1Jvb3RMaXN0KCktPmF0dGFjaCgpOwogCiAgICAgICAgIC8vIElu
IGEgc2hhZG93IHRyZWUsIHNvbWUgb2YgbGlnaHQgY2hpbGRyZW4gbWF5IGJlIGF0dGFjaGVkIGJ5
ICdjb250ZW50JyBlbGVtZW50LgogICAgICAgICAvLyBIb3dldmVyLCB3aGVuIHRoZXJlIGlzIG5v
IGNvbnRlbnQgZWxlbWVudCBvciBjb250ZW50IGVsZW1lbnQgZG9lcyBub3Qgc2VsZWN0CkBAIC05
NzgsOCArOTc4LDggQEAgdm9pZCBFbGVtZW50OjpkZXRhY2goKQogICAgIGlmIChoYXNSYXJlRGF0
YSgpKQogICAgICAgICByYXJlRGF0YSgpLT5yZXNldENvbXB1dGVkU3R5bGUoKTsKICAgICBDb250
YWluZXJOb2RlOjpkZXRhY2goKTsKLSAgICBpZiAoU2hhZG93Um9vdCogc2hhZG93ID0gc2hhZG93
Um9vdCgpKQotICAgICAgICBzaGFkb3ctPmRldGFjaCgpOworICAgIGlmIChTaGFkb3dSb290TGlz
dCogc2hhZG93TGlzdCA9IHNoYWRvd1Jvb3RMaXN0KCkpCisgICAgICAgIHNoYWRvd0xpc3QtPmRl
dGFjaCgpOwogCiAgICAgUmVuZGVyV2lkZ2V0OjpyZXN1bWVXaWRnZXRIaWVyYXJjaHlVcGRhdGVz
KCk7CiB9CkBAIC0xMTM4LDcgKzExMzgsOCBAQCB2b2lkIEVsZW1lbnQ6OnJlY2FsY1N0eWxlKFN0
eWxlQ2hhbmdlIGNoYW5nZSkKICAgICAgICAgZm9yY2VDaGVja09mQW55RWxlbWVudFNpYmxpbmcg
PSBmb3JjZUNoZWNrT2ZBbnlFbGVtZW50U2libGluZyB8fCAoY2hpbGRSdWxlc0NoYW5nZWQgJiYg
aGFzSW5kaXJlY3RBZGphY2VudFJ1bGVzKTsKICAgICB9CiAgICAgLy8gRklYTUU6IFRoaXMgZG9l
cyBub3QgY2FyZSBhYm91dCBzaWJsaW5nIGNvbWJpbmF0b3JzLiBXaWxsIGJlIG5lY2Vzc2FyeSBp
biBYQkwyIHdvcmxkLgotICAgIGlmIChTaGFkb3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290KCkp
IHsKKyAgICBpZiAoaGFzU2hhZG93Um9vdCgpKSB7CisgICAgICAgIFNoYWRvd1Jvb3QqIHNoYWRv
dyA9IHNoYWRvd1Jvb3RMaXN0KCktPnlvdW5nZXN0U2hhZG93Um9vdCgpOwogICAgICAgICBpZiAo
Y2hhbmdlID49IEluaGVyaXQgfHwgc2hhZG93LT5jaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB8fCBz
aGFkb3ctPm5lZWRzU3R5bGVSZWNhbGMoKSkgewogICAgICAgICAgICAgcGFyZW50UHVzaGVyLnB1
c2goKTsKICAgICAgICAgICAgIHNoYWRvdy0+cmVjYWxjU2hhZG93VHJlZVN0eWxlKGNoYW5nZSk7
CkBAIC0xMTY3LDEyICsxMTY4LDE0IEBAIFNoYWRvd1Jvb3RMaXN0KiBFbGVtZW50OjpzaGFkb3dS
b290TGlzdCgpIGNvbnN0CiAgICAgcmV0dXJuICZyYXJlRGF0YSgpLT5tX3NoYWRvd1Jvb3RMaXN0
OwogfQogCisjaWYgMAogU2hhZG93Um9vdCogRWxlbWVudDo6c2hhZG93Um9vdCgpIGNvbnN0CiB7
CiAgICAgaWYgKFNoYWRvd1Jvb3RMaXN0KiBsaXN0ID0gc2hhZG93Um9vdExpc3QoKSkKICAgICAg
ICAgcmV0dXJuIGxpc3QtPnlvdW5nZXN0U2hhZG93Um9vdCgpOwogICAgIHJldHVybiAwOwogfQor
I2VuZGlmCiAKIHN0YXRpYyBib29sIHZhbGlkYXRlU2hhZG93Um9vdChEb2N1bWVudCogZG9jdW1l
bnQsIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewpAQCAtMTIx
Niw4ICsxMjE5LDggQEAgdm9pZCBFbGVtZW50OjpzZXRTaGFkb3dSb290KFBhc3NSZWZQdHI8U2hh
ZG93Um9vdD4gc2hhZG93Um9vdCwgRXhjZXB0aW9uQ29kZSYgZWMKIAogU2hhZG93Um9vdCogRWxl
bWVudDo6ZW5zdXJlU2hhZG93Um9vdCgpCiB7Ci0gICAgaWYgKFNoYWRvd1Jvb3QqIGV4aXN0aW5n
Um9vdCA9IHNoYWRvd1Jvb3QoKSkKLSAgICAgICAgcmV0dXJuIGV4aXN0aW5nUm9vdDsKKyAgICBp
ZiAoaGFzU2hhZG93Um9vdCgpKQorICAgICAgICByZXR1cm4gc2hhZG93Um9vdExpc3QoKS0+b2xk
ZXN0U2hhZG93Um9vdCgpOwogCiAgICAgcmV0dXJuIFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBT
aGFkb3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QpLmdldCgpOwogfQpAQCAtMTM3
OSw4ICsxMzgyLDggQEAgdm9pZCBFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2Vk
QnlQYXJzZXIsIE5vZGUqIGJlZm9yZUNoYW5nZSwgTm9kZSogYWYKICAgICAgICAgY2hlY2tGb3JT
aWJsaW5nU3R5bGVDaGFuZ2VzKHRoaXMsIHJlbmRlclN0eWxlKCksIGZhbHNlLCBiZWZvcmVDaGFu
Z2UsIGFmdGVyQ2hhbmdlLCBjaGlsZENvdW50RGVsdGEpOwogCiAgICAgaWYgKGhhc1JhcmVEYXRh
KCkpIHsKLSAgICAgICAgaWYgKFNoYWRvd1Jvb3QqIHJvb3QgPSBzaGFkb3dSb290KCkpCi0gICAg
ICAgICAgICByb290LT5ob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7CisgICAgICAgIGlmIChTaGFkb3dS
b290TGlzdCogbGlzdCA9IHNoYWRvd1Jvb3RMaXN0KCkpCisgICAgICAgICAgICBsaXN0LT5ob3N0
Q2hpbGRyZW5DaGFuZ2VkKCk7CiAgICAgfQogfQogCkBAIC0xNTc2LDcgKzE1NzksNyBAQCB2b2lk
IEVsZW1lbnQ6OmZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uKQogICAgICAgICAv
LyBJZiBhIGZvY3VzIGV2ZW50IGhhbmRsZXIgY2hhbmdlcyB0aGUgZm9jdXMgdG8gYSBkaWZmZXJl
bnQgbm9kZSBpdAogICAgICAgICAvLyBkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIGNvbnRpbnVlIGFu
ZCB1cGRhdGUgYXBwZWFyZW5jZS4KICAgICAgICAgcHJvdGVjdCA9IHRoaXM7Ci0gICAgICAgIGlm
IChzaGFkb3dSb290KCkgJiYgcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPnRyYW5zZmVyRm9jdXNU
b0VsZW1lbnRJblNoYWRvd1Jvb3QodGhpcywgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uKSkKKyAg
ICAgICAgaWYgKGhhc1NoYWRvd1Jvb3QoKSAmJiBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+dHJh
bnNmZXJGb2N1c1RvRWxlbWVudEluU2hhZG93Um9vdCh0aGlzLCByZXN0b3JlUHJldmlvdXNTZWxl
Y3Rpb24pKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAoIXBhZ2UtPmZvY3VzQ29u
dHJvbGxlcigpLT5zZXRGb2N1c2VkTm9kZSh0aGlzLCBkb2MtPmZyYW1lKCkpKQogICAgICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggMTZmZDU2NzNmODU0ZGJmNWVjMjllNjBj
MTc0NTE2ZTFmMzhkYWQ0Ni4uY2MyYzAxMTY3ZWQ4YjA0OGI0MmEwODdkZjM2NmViZThiNmUyNGU4
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0yNjIsNyArMjYyLDYgQEAgcHVibGljOgogCiAgICAg
Ly8gRklYTUU6IFRoZXNlIEFQSSB3aWxsIGJlIG1vdmVkIHRvIFNoYWRvd1Jvb3RMaXN0LgogICAg
IC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODMxMwotICAgIFNo
YWRvd1Jvb3QqIHNoYWRvd1Jvb3QoKSBjb25zdDsKICAgICB2b2lkIHNldFNoYWRvd1Jvb3QoUGFz
c1JlZlB0cjxTaGFkb3dSb290PiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFNoYWRvd1Jvb3QqIGVu
c3VyZVNoYWRvd1Jvb3QoKTsKICAgICB2b2lkIHJlbW92ZVNoYWRvd1Jvb3QoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggNzU3MzgzMmJhMzM1MGQwZmNiMzNmMTMy
ZDc5OWJlNjJjN2IxYWIxNy4uM2VlNTI4NWJjYTEyZTQ0ZDQ1MWEyZjJjYWQxOWJmYmU3NDcxMGYz
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTEyNyw3ICsxMjcs
NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTaGFkb3dSb290T3JTVkdTaGFkb3dSb290KGNvbnN0
IE5vZGUqIG5vZGUpCiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NoYWRvd0hvc3QoTm9kZSogbm9k
ZSkKIHsKLSAgICByZXR1cm4gbm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2Rl
KS0+c2hhZG93Um9vdCgpOworICAgIHJldHVybiBub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9F
bGVtZW50KG5vZGUpLT5oYXNTaGFkb3dSb290KCk7CiB9CiAKIFBhc3NSZWZQdHI8RXZlbnRUYXJn
ZXQ+IEV2ZW50RGlzcGF0Y2hlcjo6YWRqdXN0VG9TaGFkb3dCb3VuZGFyaWVzKFBhc3NSZWZQdHI8
Tm9kZT4gcmVsYXRlZFRhcmdldCwgY29uc3QgVmVjdG9yPE5vZGUqPiByZWxhdGVkVGFyZ2V0QW5j
ZXN0b3JzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDc4MWJjYWRlZjU0YWJmNDM3ZWNjN2ExYjE1MDg2
OWYzNzIzOWI4NjUuLjY0N2QwOGRlOWZlNzQyNDI4YTRjMjQ2NWIyZDkyNzZkODgzMWQ3OTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAKQEAgLTg2LDYgKzg2LDcgQEAKICNpbmNsdWRlICJTY29wZWRFdmVudFF1
ZXVlLmgiCiAjaW5jbHVkZSAiU2VsZWN0b3JRdWVyeS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3Qu
aCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlN0YXRpY05vZGVMaXN0
LmgiCiAjaW5jbHVkZSAiU3RvcmFnZUV2ZW50LmgiCiAjaW5jbHVkZSAiVGFnTm9kZUxpc3QuaCIK
QEAgLTgxMCw3ICs4MTEsNyBAQCBib29sIE5vZGU6Omhhc05vbkVtcHR5Qm91bmRpbmdCb3goKSBj
b25zdAogCiBpbmxpbmUgc3RhdGljIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QoTm9kZSogbm9kZSkK
IHsKLSAgICByZXR1cm4gbm9kZS0+aXNFbGVtZW50Tm9kZSgpID8gdG9FbGVtZW50KG5vZGUpLT5z
aGFkb3dSb290KCkgOiAwOworICAgIHJldHVybiBub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9F
bGVtZW50KG5vZGUpLT5oYXNTaGFkb3dSb290KCkgPyB0b0VsZW1lbnQobm9kZSktPnNoYWRvd1Jv
b3RMaXN0KCktPnlvdW5nZXN0U2hhZG93Um9vdCgpIDogMDsKIH0KIAogaW5saW5lIHZvaWQgTm9k
ZTo6c2V0U3R5bGVDaGFuZ2UoU3R5bGVDaGFuZ2VUeXBlIGNoYW5nZVR5cGUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCA0YTk3MDlhMGRkYjU2ZTUz
ZmQ0NzAyYTc5YjE2NmRlMmU0YWFiODJmLi4yMDgwZGZhMTAwOWQ3MjliYzQxOWZkMzQwMzZjM2Qw
Yjg3MTdjZTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0Nv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5j
cHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRl
ICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRv
d1Jvb3RMaXN0LmgiCiAKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIlNWR05hbWVzLmgiCkBA
IC02NSw3ICs2Niw4IEBAIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4
dChOb2RlKiBub2RlKQogICAgIG1fbG9jYXRpb24gPSBMb2NhdGlvbkxpZ2h0Q2hpbGQ7CiAKICAg
ICBpZiAocGFyZW50LT5pc0VsZW1lbnROb2RlKCkpIHsKLSAgICAgICAgbV92aXN1YWxQYXJlbnRT
aGFkb3dSb290ID0gdG9FbGVtZW50KHBhcmVudCktPnNoYWRvd1Jvb3QoKTsKKyAgICAgICAgaWYg
KHRvRWxlbWVudChwYXJlbnQpLT5oYXNTaGFkb3dSb290KCkpCisgICAgICAgICAgICBtX3Zpc3Vh
bFBhcmVudFNoYWRvd1Jvb3QgPSB0b0VsZW1lbnQocGFyZW50KS0+c2hhZG93Um9vdExpc3QoKS0+
eW91bmdlc3RTaGFkb3dSb290KCk7CiAKICAgICAgICAgaWYgKG1fdmlzdWFsUGFyZW50U2hhZG93
Um9vdCkgewogICAgICAgICAgICAgaWYgKChtX2luY2x1ZGVyID0gbV92aXN1YWxQYXJlbnRTaGFk
b3dSb290LT5pbmNsdWRlckZvcihtX25vZGUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCmlu
ZGV4IDQxNzVjMjJiN2I5MTcwMDRhMzY5ODI3MTE0YzBhZWM2NWVkMjE0ZDYuLjNjZjIwMzU5NmUx
YjFhZGYwYWM2MjU3ZWZkNjk3NGE2NTMxMGU5Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5j
cHAKQEAgLTk3LDcgKzk3LDcgQEAgUGFzc1JlZlB0cjxTaGFkb3dSb290PiBTaGFkb3dSb290Ojpj
cmVhdGUoRWxlbWVudCogZWxlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAKIFBhc3NSZWZQdHI8
U2hhZG93Um9vdD4gU2hhZG93Um9vdDo6Y3JlYXRlKEVsZW1lbnQqIGVsZW1lbnQsIFNoYWRvd1Jv
b3RDcmVhdGlvblB1cnBvc2UgcHVycG9zZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgaWYg
KCFlbGVtZW50IHx8IGVsZW1lbnQtPnNoYWRvd1Jvb3QoKSkgeworICAgIGlmICghZWxlbWVudCB8
fCBlbGVtZW50LT5oYXNTaGFkb3dSb290KCkpIHsKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVR
VUVTVF9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTEwOSw3ICsxMDksNyBAQCBQ
YXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IFNoYWRvd1Jvb3Q6OmNyZWF0ZShFbGVtZW50KiBlbGVtZW50
LCBTaGFkb3dSb290Q3JlYXRpb25QdQogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBB
U1NFUlQocHVycG9zZSAhPSBDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QgfHwgIWVsZW1lbnQt
PnNoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKHB1cnBvc2UgIT0gQ3JlYXRpbmdVc2VyQWdlbnRT
aGFkb3dSb290IHx8ICFlbGVtZW50LT5oYXNTaGFkb3dSb290KCkpOwogICAgIFJlZlB0cjxTaGFk
b3dSb290PiBzaGFkb3dSb290ID0gY3JlYXRlKGVsZW1lbnQtPmRvY3VtZW50KCkpOwogCiAgICAg
ZWMgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5jcHAKaW5kZXggODhlMGZiNWYx
MzcwOWEwODdhMmM0NWYyNTA2NzY0NDZhNDQzMzFmMC4uNTcwYjdkYzcxZTc2NjAwZWJhNWQxMzFj
MGI4ZTFlY2NkODU5YjBlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3RMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuY3BwCkBA
IC01OSw0ICs1OSw0NiBAQCBTaGFkb3dSb290KiBTaGFkb3dSb290TGlzdDo6cG9wU2hhZG93Um9v
dCgpCiAgICAgcmV0dXJuIG1fc2hhZG93Um9vdHMucmVtb3ZlSGVhZCgpOwogfQogCit2b2lkIFNo
YWRvd1Jvb3RMaXN0OjppbnNlcnRlZEludG9Eb2N1bWVudCgpCit7CisgICAgZm9yIChTaGFkb3dS
b290KiByb290ID0geW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRl
clNoYWRvd1Jvb3QoKSkKKyAgICAgICAgcm9vdC0+aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKK30K
Kwordm9pZCBTaGFkb3dSb290TGlzdDo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpCit7CisgICAgZm9y
IChTaGFkb3dSb290KiByb290ID0geW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSBy
b290LT5vbGRlclNoYWRvd1Jvb3QoKSkKKyAgICAgICAgcm9vdC0+cmVtb3ZlZEZyb21Eb2N1bWVu
dCgpOworfQorCit2b2lkIFNoYWRvd1Jvb3RMaXN0OjppbnNlcnRlZEludG9UcmVlKGJvb2wgZGVl
cCkKK3sKKyAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB5b3VuZ2VzdFNoYWRvd1Jvb3QoKTsg
cm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQorICAgICAgICByb290LT5pbnNl
cnRlZEludG9UcmVlKGRlZXApOworfQorCit2b2lkIFNoYWRvd1Jvb3RMaXN0OjpyZW1vdmVkRnJv
bVRyZWUoYm9vbCBkZWVwKQoreworICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0
U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCisgICAg
ICAgIHJvb3QtPnJlbW92ZWRGcm9tVHJlZShkZWVwKTsKK30KKwordm9pZCBTaGFkb3dSb290TGlz
dDo6aG9zdENoaWxkcmVuQ2hhbmdlZCgpCit7CisgICAgZm9yIChTaGFkb3dSb290KiByb290ID0g
eW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3Qo
KSkKKyAgICAgICAgcm9vdC0+aG9zdENoaWxkcmVuQ2hhbmdlZCgpOworfQorCit2b2lkIFNoYWRv
d1Jvb3RMaXN0OjphdHRhY2goKQoreworICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5n
ZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCisg
ICAgICAgIHJvb3QtPmF0dGFjaCgpOworfQorCit2b2lkIFNoYWRvd1Jvb3RMaXN0OjpkZXRhY2go
KQoreworICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hhZG93Um9vdCgpOyBy
b290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCisgICAgICAgIHJvb3QtPmRldGFj
aCgpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExp
c3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5oCmluZGV4IDA1NWJjYWE1
MWM4YjkxOThmYzQ1ZGQ3MzkzN2MyODg1NjU5ZWEwMzMuLmM3ZmM5OGNhYThhMjBiNDRkNTRjODM3
YWI3ODRlOGNlZmM0NWQwMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5oCkBAIC00
OCw2ICs0OCwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBwdXNoU2hhZG93Um9vdChTaGFkb3dSb290
Kik7CiAgICAgU2hhZG93Um9vdCogcG9wU2hhZG93Um9vdCgpOwogCisgICAgdm9pZCBpbnNlcnRl
ZEludG9Eb2N1bWVudCgpOworICAgIHZvaWQgcmVtb3ZlZEZyb21Eb2N1bWVudCgpOworICAgIHZv
aWQgaW5zZXJ0ZWRJbnRvVHJlZShib29sIGRlZXApOworICAgIHZvaWQgcmVtb3ZlZEZyb21UcmVl
KGJvb2wgZGVlcCk7CisKKyAgICB2b2lkIGhvc3RDaGlsZHJlbkNoYW5nZWQoKTsKKworICAgIHZv
aWQgYXR0YWNoKCk7CisgICAgdm9pZCBkZXRhY2goKTsKKwogcHJpdmF0ZToKICAgICBEb3VibHlM
aW5rZWRMaXN0PFNoYWRvd1Jvb3Q+IG1fc2hhZG93Um9vdHM7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoU2hhZG93Um9vdExpc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Ry
ZWVTY29wZUFkb3B0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIu
Y3BwCmluZGV4IDAwMzE3ZTMxYTA0YzI2ZGQ1MWQ2N2FhNzQwZGNmMmYwOGUxNzJkNmEuLmU3NjIw
OWNjODMxZjBiZGZiYWI5NzU1NTQ4NmNjNjU2NjI4ZDg0Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVNjb3BlQWRvcHRlci5jcHAKQEAgLTI4LDEyICsyOCwxMyBAQAogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiTm9kZVJhcmVEYXRhLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5o
IgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
c3RhdGljIGlubGluZSBTaGFkb3dSb290KiBzaGFkb3dSb290Rm9yKE5vZGUqIG5vZGUpCiB7Ci0g
ICAgcmV0dXJuIG5vZGUtPmlzRWxlbWVudE5vZGUoKSA/IHRvRWxlbWVudChub2RlKS0+c2hhZG93
Um9vdCgpIDogMDsKKyAgICByZXR1cm4gbm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVu
dChub2RlKS0+aGFzU2hhZG93Um9vdCgpID8gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3dSb290TGlz
dCgpLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKSA6IDA7CiB9CiAKIHZvaWQgVHJlZVNjb3BlQWRvcHRl
cjo6bW92ZVRyZWVUb05ld1Njb3BlKE5vZGUqIHJvb3QpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9G
aWxlSW5wdXRUeXBlLmNwcAppbmRleCBmYzFiZGMxMTUyOTNlZjE5YzM2ODE0MzkxMDZhZmJhN2Zj
ZTFmZTUyLi4xMjc0ZDM0NGU5Y2Y2OTczZTZmMmVmZjQ2Y2JlOTBlZWE2ZTJjZTFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRl
ICJSZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIK
ICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTI2NSwxNSArMjY2
LDE1IEBAIGJvb2wgRmlsZUlucHV0VHlwZTo6aXNGaWxlVXBsb2FkKCkgY29uc3QKIAogdm9pZCBG
aWxlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKLSAgICBBU1NFUlQoZWxlbWVu
dCgpLT5zaGFkb3dSb290KCkpOworICAgIEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3Qo
KSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgZWxlbWVudCgpLT5zaGFkb3dSb290
KCktPmFwcGVuZENoaWxkKGVsZW1lbnQoKS0+bXVsdGlwbGUoKSA/IFVwbG9hZEJ1dHRvbkVsZW1l
bnQ6OmNyZWF0ZUZvck11bHRpcGxlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSk6IFVwbG9hZEJ1dHRv
bkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCktPmRvY3VtZW50KCkpLCBlYyk7CisgICAgZWxlbWVu
dCgpLT5zaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKGVs
ZW1lbnQoKS0+bXVsdGlwbGUoKSA/IFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZUZvck11bHRp
cGxlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSk6IFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShl
bGVtZW50KCktPmRvY3VtZW50KCkpLCBlYyk7CiB9CiAKIHZvaWQgRmlsZUlucHV0VHlwZTo6bXVs
dGlwbGVBdHRyaWJ1dGVDaGFuZ2VkKCkKIHsKLSAgICBBU1NFUlQoZWxlbWVudCgpLT5zaGFkb3dS
b290KCkpOwotICAgIFVwbG9hZEJ1dHRvbkVsZW1lbnQqIGJ1dHRvbiA9IHN0YXRpY19jYXN0PFVw
bG9hZEJ1dHRvbkVsZW1lbnQqPihlbGVtZW50KCktPnNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgp
KTsKKyAgICBBU1NFUlQoZWxlbWVudCgpLT5oYXNTaGFkb3dSb290KCkpOworICAgIFVwbG9hZEJ1
dHRvbkVsZW1lbnQqIGJ1dHRvbiA9IHN0YXRpY19jYXN0PFVwbG9hZEJ1dHRvbkVsZW1lbnQqPihl
bGVtZW50KCktPnNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGls
ZCgpKTsKICAgICBpZiAoYnV0dG9uKQogICAgICAgICBidXR0b24tPnNldFZhbHVlKGVsZW1lbnQo
KS0+bXVsdGlwbGUoKSA/IGZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKSA6IGZp
bGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxE
ZXRhaWxzRWxlbWVudC5jcHAKaW5kZXggMDE1Y2Y2MWNlYjgzMzc2OTk4YjY4ZWI2YWIwOWVmNTYy
NjQ0YWI0My4uYWEyNjRjMjEyYTZjYzYxMzgwMjk2M2QwZWU2ZjFhOWQ4YTlkZjdmZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcApAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSZW5kZXJEZXRhaWxzLmgiCiAj
aW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5j
bHVkZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMDgsNyArMTA5LDcgQEAg
UmVuZGVyT2JqZWN0KiBIVE1MRGV0YWlsc0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFy
ZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUKIAogdm9pZCBIVE1MRGV0YWlsc0VsZW1lbnQ6OmNyZWF0
ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVCghc2hhZG93Um9vdCgpKTsKKyAgICBBU1NF
UlQoIWhhc1NoYWRvd1Jvb3QoKSk7CiAKICAgICBSZWZQdHI8U2hhZG93Um9vdD4gcm9vdCA9IFNo
YWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRv
d1Jvb3QpOwogICAgIHJvb3QtPmFwcGVuZENoaWxkKERldGFpbHNTdW1tYXJ5RWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0cnVlKTsKQEAgLTEyMiw3ICsx
MjMsNyBAQCBFbGVtZW50KiBIVE1MRGV0YWlsc0VsZW1lbnQ6OmZpbmRNYWluU3VtbWFyeSgpIGNv
bnN0CiAgICAgICAgICAgICByZXR1cm4gdG9FbGVtZW50KGNoaWxkKTsKICAgICB9CiAKLSAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8RGV0YWlsc1N1bW1hcnlFbGVtZW50Kj4oc2hhZG93Um9vdCgpLT5m
aXJzdENoaWxkKCkpLT5mYWxsYmFja1N1bW1hcnkoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
RGV0YWlsc1N1bW1hcnlFbGVtZW50Kj4oc2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9v
dCgpLT5maXJzdENoaWxkKCkpLT5mYWxsYmFja1N1bW1hcnkoKTsKIH0KIAogdm9pZCBIVE1MRGV0
YWlsc0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGM3NGUzNDBkMzE1Y2VhNDliNDA4N2Vi
YTNjNTc1NGFmNzIwNDEyOWMuLjczNjQ4YzM3ZGM4MDhlOGZkYTE4M2M2OTNiNmRmNzE1ZjUwNTQ0
NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTA5LDcg
KzEwOSw3IEBAIFBhc3NSZWZQdHI8SFRNTElucHV0RWxlbWVudD4gSFRNTElucHV0RWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hCiAKIHZvaWQgSFRNTElucHV0RWxlbWVu
dDo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJUKCFzaGFkb3dSb290KCkpOwor
ICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsKICAgICBTaGFkb3dSb290OjpjcmVhdGUodGhp
cywgU2hhZG93Um9vdDo6Q3JlYXRpbmdVc2VyQWdlbnRTaGFkb3dSb290LCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKIAogICAgIG1faW5wdXRUeXBlLT5jcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCmluZGV4IDg1MjUyODE5YWE1OGU3
MGMyZDAzNzE1MDcyNWQxN2M0ODk4OTAxMzUuLmUxMDA3OWY2NDY0ZTc4ZjVlZTA3NGQxNWY4YWIx
MmY2ZDc0MzJjMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3Bw
CkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKICNpbmNs
dWRlICJTU0xLZXlHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVk
ZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSA8d3RmL1N0
ZExpYkV4dHJhcy5oPgogCkBAIC04NSw3ICs4Niw3IEBAIGlubGluZSBIVE1MS2V5Z2VuRWxlbWVu
dDo6SFRNTEtleWdlbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
CiAgICAgICAgIG9wdGlvbi0+YXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKGRvY3VtZW50LCBrZXlz
W2ldKSwgZWMpOwogICAgIH0KIAotICAgIEFTU0VSVCghc2hhZG93Um9vdCgpKTsKKyAgICBBU1NF
UlQoIWhhc1NoYWRvd1Jvb3QoKSk7CiAgICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IHJvb3QgPSBTaGFk
b3dSb290OjpjcmVhdGUodGhpcywgU2hhZG93Um9vdDo6Q3JlYXRpbmdVc2VyQWdlbnRTaGFkb3dS
b290KTsKICAgICByb290LT5hcHBlbmRDaGlsZChzZWxlY3QsIGVjKTsKIH0KQEAgLTEzMCw4ICsx
MzEsOCBAQCB2b2lkIEhUTUxLZXlnZW5FbGVtZW50OjpyZXNldCgpCiAKIEhUTUxTZWxlY3RFbGVt
ZW50KiBIVE1MS2V5Z2VuRWxlbWVudDo6c2hhZG93U2VsZWN0KCkgY29uc3QKIHsKLSAgICBTaGFk
b3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290KCk7Ci0gICAgQVNTRVJUKHNoYWRvdyk7CisgICAg
QVNTRVJUKGhhc1NoYWRvd1Jvb3QoKSk7CisgICAgU2hhZG93Um9vdCogc2hhZG93ID0gc2hhZG93
Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpOwogICAgIHJldHVybiBzaGFkb3cgPyB0b0hU
TUxTZWxlY3RFbGVtZW50KHNoYWRvdy0+Zmlyc3RDaGlsZCgpKSA6IDA7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGU1ZmZjMDg1NjJlYzQyNTkwNDVl
MTlhYmIwOWQ0ODVmMjI3NzIyMGIuLjY3YWQxZDljNTFmY2I5MGFiM2YyYWQxMGEyMjg4YmZiYTlk
YWRjYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNzEs
NiArNzEsNyBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGlu
Z3MuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3Qu
aCIKICNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCiAjaW5jbHVkZSAiVVVJRC5oIgogI2luY2x1ZGUg
PGxpbWl0cz4KQEAgLTM1MTksMTUgKzM1MjAsMTUgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpw
cml2YXRlQnJvd3NpbmdTdGF0ZURpZENoYW5nZSgpCiAKIE1lZGlhQ29udHJvbHMqIEhUTUxNZWRp
YUVsZW1lbnQ6Om1lZGlhQ29udHJvbHMoKQogewotICAgIHJldHVybiB0b01lZGlhQ29udHJvbHMo
c2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCkpOworICAgIHJldHVybiB0b01lZGlhQ29udHJvbHMo
c2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCkpOwogfQog
CiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6Omhhc01lZGlhQ29udHJvbHMoKQogewotICAgIGlmICgh
c2hhZG93Um9vdCgpKQorICAgIGlmICghaGFzU2hhZG93Um9vdCgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBOb2RlKiBub2RlID0gc2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCk7Cisg
ICAgTm9kZSogbm9kZSA9IHNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmly
c3RDaGlsZCgpOwogICAgIHJldHVybiBub2RlICYmIG5vZGUtPmlzTWVkaWFDb250cm9scygpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcAppbmRleCBhMWZkYWY2
YzcyZDRiMDY1MTJlODQyMWRlODAwZTUyMGJjYWE3YTc5Li43YzgzOTk0NWJiYjU3MTFmZGY0MTg1
ZWM3ZTc2NzBlNjM2MDE2NDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZXRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVu
dC5jcHAKQEAgLTIzNCw3ICsyMzQsNyBAQCB2b2lkIEhUTUxNZXRlckVsZW1lbnQ6OmRpZEVsZW1l
bnRTdGF0ZUNoYW5nZSgpCiAKIHZvaWQgSFRNTE1ldGVyRWxlbWVudDo6Y3JlYXRlU2hhZG93U3Vi
dHJlZSgpCiB7Ci0gICAgQVNTRVJUKCFzaGFkb3dSb290KCkpOworICAgIEFTU0VSVCghaGFzU2hh
ZG93Um9vdCgpKTsKIAogICAgIFJlZlB0cjxNZXRlckJhckVsZW1lbnQ+IGJhciA9IE1ldGVyQmFy
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwogICAgIG1fdmFsdWUgPSBNZXRlclZhbHVlRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dy
ZXNzRWxlbWVudC5jcHAKaW5kZXggMGMyMzcyNTgxZjc5YWZmNGRhYzU0OGEwYmE3ZTQ0YzU2YWE5
YjVmMC4uZWQ2OTUwYzNmNzkyMDUzODViMTk0Mzk5NjFiMDc2YjFmZDA1MjNkZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCkBAIC0xNTMsNyArMTUzLDcg
QEAgdm9pZCBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpkaWRFbGVtZW50U3RhdGVDaGFuZ2UoKQogCiB2
b2lkIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFT
U0VSVCghc2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoIWhhc1NoYWRvd1Jvb3QoKSk7CiAKICAg
ICBSZWZQdHI8UHJvZ3Jlc3NCYXJFbGVtZW50PiBiYXIgPSBQcm9ncmVzc0JhckVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCgpKTsKICAgICBtX3ZhbHVlID0gUHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1
bW1hcnlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50
LmNwcAppbmRleCBmNTdhNWRiMjNmMzQxZWM0Mzk4YmZiNTcxZmEyOTUwZGU0NjZmMmJjLi41OGU1
OGM2MGE5ZGZjNzVmNmYwODI4MjRlZWVlMzk1NzFjZDE4ZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCkBAIC0zMCw4ICszMCw4IEBACiAjaW5jbHVkZSAi
TW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUg
IlJlbmRlclN1bW1hcnkuaCIKLQogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJT
aGFkb3dSb290TGlzdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTczLDcgKzczLDcg
QEAgUmVuZGVyT2JqZWN0KiBIVE1MU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRl
ckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUKIAogdm9pZCBIVE1MU3VtbWFyeUVsZW1lbnQ6OmNy
ZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVCghc2hhZG93Um9vdCgpKTsKKyAgICBB
U1NFUlQoIWhhc1NoYWRvd1Jvb3QoKSk7CiAgICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IHJvb3QgPSBT
aGFkb3dSb290OjpjcmVhdGUodGhpcywgU2hhZG93Um9vdDo6Q3JlYXRpbmdVc2VyQWdlbnRTaGFk
b3dSb290KTsKICAgICByb290LT5hcHBlbmRDaGlsZChEZXRhaWxzTWFya2VyQ29udHJvbDo6Y3Jl
YXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0cnVlKTsKICAgICByb290LT5h
cHBlbmRDaGlsZChTdW1tYXJ5Q29udGVudEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNT
RVJUX05PX0VYQ0VQVElPTiwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFy
ZWFFbGVtZW50LmNwcAppbmRleCAwMzk2ZjM5MGNlZDExZTljZTRiYWYxZWFjOWRhODM0YWNjZWVm
ZTBmLi43N2U5OTY0M2I1NmMxZDQ2NjdmMjMyNThlZjM2OWQ1YjljMzQ4OGI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKQEAgLTM4LDYgKzM4LDcgQEAK
ICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbE11bHRp
TGluZS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlz
dC5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0Q29udHJvbElubmVyRWxlbWVu
dHMuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKQEAgLTg0LDcgKzg1LDcgQEAgUGFzc1Jl
ZlB0cjxIVE1MVGV4dEFyZWFFbGVtZW50PiBIVE1MVGV4dEFyZWFFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYKIAogdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpjcmVhdGVTaGFk
b3dTdWJ0cmVlKCkKIHsKLSAgICBBU1NFUlQoIXNoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKCFo
YXNTaGFkb3dSb290KCkpOwogICAgIFJlZlB0cjxTaGFkb3dSb290PiByb290ID0gU2hhZG93Um9v
dDo6Y3JlYXRlKHRoaXMsIFNoYWRvd1Jvb3Q6OkNyZWF0aW5nVXNlckFnZW50U2hhZG93Um9vdCk7
CiAgICAgcm9vdC0+YXBwZW5kQ2hpbGQoVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04pOwogfQpAQCAtMjg1LDcgKzI4Niw3
IEBAIFN0cmluZyBIVE1MVGV4dEFyZWFFbGVtZW50OjpzYW5pdGl6ZVVzZXJJbnB1dFZhbHVlKGNv
bnN0IFN0cmluZyYgcHJvcG9zZWRWYWx1ZSwKIAogSFRNTEVsZW1lbnQqIEhUTUxUZXh0QXJlYUVs
ZW1lbnQ6OmlubmVyVGV4dEVsZW1lbnQoKSBjb25zdAogewotICAgIE5vZGUqIG5vZGUgPSBzaGFk
b3dSb290KCktPmZpcnN0Q2hpbGQoKTsKKyAgICBOb2RlKiBub2RlID0gc2hhZG93Um9vdExpc3Qo
KS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCk7CiAgICAgQVNTRVJUKCFub2RlIHx8
IG5vZGUtPmhhc1RhZ05hbWUoZGl2VGFnKSk7CiAgICAgcmV0dXJuIHRvSFRNTEVsZW1lbnQobm9k
ZSk7CiB9CkBAIC00NjIsNyArNDYzLDcgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50Ojp1cGRh
dGVQbGFjZWhvbGRlclRleHQoKQogICAgIFN0cmluZyBwbGFjZWhvbGRlclRleHQgPSBzdHJpcHBl
ZFBsYWNlaG9sZGVyKCk7CiAgICAgaWYgKHBsYWNlaG9sZGVyVGV4dC5pc0VtcHR5KCkpIHsKICAg
ICAgICAgaWYgKG1fcGxhY2Vob2xkZXIpIHsKLSAgICAgICAgICAgIHNoYWRvd1Jvb3QoKS0+cmVt
b3ZlQ2hpbGQobV9wbGFjZWhvbGRlci5nZXQoKSwgZWMpOworICAgICAgICAgICAgc2hhZG93Um9v
dExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZChtX3BsYWNlaG9sZGVyLmdl
dCgpLCBlYyk7CiAgICAgICAgICAgICBBU1NFUlQoIWVjKTsKICAgICAgICAgICAgIG1fcGxhY2Vo
b2xkZXIuY2xlYXIoKTsKICAgICAgICAgfQpAQCAtNDcxLDcgKzQ3Miw3IEBAIHZvaWQgSFRNTFRl
eHRBcmVhRWxlbWVudDo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkKICAgICBpZiAoIW1fcGxhY2Vo
b2xkZXIpIHsKICAgICAgICAgbV9wbGFjZWhvbGRlciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQoKSk7CiAgICAgICAgIG1fcGxhY2Vob2xkZXItPnNldFNoYWRvd1BzZXVkb0lkKCIt
d2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIik7Ci0gICAgICAgIHNoYWRvd1Jvb3QoKS0+aW5zZXJ0
QmVmb3JlKG1fcGxhY2Vob2xkZXIsIHNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpLT5uZXh0U2li
bGluZygpLCBlYyk7CisgICAgICAgIHNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3Qo
KS0+aW5zZXJ0QmVmb3JlKG1fcGxhY2Vob2xkZXIsIHNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNo
YWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpLT5uZXh0U2libGluZygpLCBlYyk7CiAgICAgICAgIEFT
U0VSVCghZWMpOwogICAgIH0KICAgICBtX3BsYWNlaG9sZGVyLT5zZXRJbm5lclRleHQocGxhY2Vo
b2xkZXJUZXh0LCBlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggN2NlYTA1OWMy
MWI2NGJmMGJiNjNlY2M2NTU5MmE4NTI5ZDMwOWU0Yy4uZDcyZjkxNjkzZWJiMDkxNDVkMjE1N2Rj
YjczZWM3Mjc5OGRjNWFhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtNTYsNiAr
NTYsNyBAQAogI2luY2x1ZGUgIlJlc2V0SW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiU2VhcmNoSW5w
dXRUeXBlLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RM
aXN0LmgiCiAjaW5jbHVkZSAiU3VibWl0SW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiVGVsZXBob25l
SW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiVGV4dElucHV0VHlwZS5oIgpAQCAtMzc4LDggKzM3OSwx
MyBAQCB2b2lkIElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAKIHZvaWQgSW5wdXRU
eXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgpCiB7Ci0gICAgaWYgKFNoYWRvd1Jvb3QqIHJvb3Qg
PSBlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSkKLSAgICAgICAgcm9vdC0+cmVtb3ZlQWxsQ2hpbGRy
ZW4oKTsKKyAgICBpZiAoIWVsZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IGVsZW1lbnQoKS0+c2hhZG93Um9vdExp
c3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpKSB7CisgICAgICAgIHdoaWxlIChyb290LT5oYXNDaGls
ZE5vZGVzKCkpCisgICAgICAgICAgICByb290LT5yZW1vdmVDaGlsZChyb290LT5maXJzdENoaWxk
KCkpOworICAgIH0KIH0KIAogZG91YmxlIElucHV0VHlwZTo6cGFyc2VUb0RvdWJsZShjb25zdCBT
dHJpbmcmLCBkb3VibGUgZGVmYXVsdFZhbHVlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jhbmdl
SW5wdXRUeXBlLmNwcAppbmRleCBmZTNjM2FhYjA2MjllZmFmZGM0NmY3YzJhMjkxNmE1NWIzODk1
ZmU4Li42MTJmOTU3N2JiZWI3MmMzOGE3MDNkMzI5OWNlYjRjZDcyNWJiNTY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUg
IlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlJlbmRlclNsaWRlci5oIgogI2luY2x1
ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUg
IlNsaWRlclRodW1iRWxlbWVudC5oIgogI2luY2x1ZGUgIlN0ZXBSYW5nZS5oIgogI2luY2x1ZGUg
PGxpbWl0cz4KQEAgLTE1Nyw3ICsxNTgsMTAgQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6aGFuZGxl
TW91c2VEb3duRXZlbnQoTW91c2VFdmVudCogZXZlbnQpCiAgICAgICAgIHJldHVybjsKIAogICAg
IE5vZGUqIHRhcmdldE5vZGUgPSBldmVudC0+dGFyZ2V0KCktPnRvTm9kZSgpOwotICAgIGlmIChl
dmVudC0+YnV0dG9uKCkgIT0gTGVmdEJ1dHRvbiB8fCAhdGFyZ2V0Tm9kZSB8fCAodGFyZ2V0Tm9k
ZSAhPSBlbGVtZW50KCkgJiYgIXRhcmdldE5vZGUtPmlzRGVzY2VuZGFudE9mKGVsZW1lbnQoKS0+
c2hhZG93Um9vdCgpKSkpCisgICAgaWYgKGV2ZW50LT5idXR0b24oKSAhPSBMZWZ0QnV0dG9uIHx8
ICF0YXJnZXROb2RlKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKGVsZW1lbnQoKS0+aGFz
U2hhZG93Um9vdCgpKTsKKyAgICBpZiAodGFyZ2V0Tm9kZSAhPSBlbGVtZW50KCkgJiYgIXRhcmdl
dE5vZGUtPmlzRGVzY2VuZGFudE9mKGVsZW1lbnQoKS0+c2hhZG93Um9vdExpc3QoKS0+b2xkZXN0
U2hhZG93Um9vdCgpKSkKICAgICAgICAgcmV0dXJuOwogICAgIFNsaWRlclRodW1iRWxlbWVudCog
dGh1bWIgPSBzbGlkZXJUaHVtYkVsZW1lbnRPZihlbGVtZW50KCkpOwogICAgIGlmICh0YXJnZXRO
b2RlID09IHRodW1iKQpAQCAtMjMzLDcgKzIzNyw3IEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6Omhh
bmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKIAogdm9pZCBSYW5nZUlucHV0
VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hh
ZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoZWxlbWVudCgpLT5oYXNTaGFkb3dSb290KCkpOwogCiAg
ICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZWxlbWVudCgpLT5kb2N1bWVudCgpOwogICAgIFJlZlB0
cjxIVE1MRGl2RWxlbWVudD4gdHJhY2sgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKQEAgLTI0Myw3ICsyNDcsNyBAQCB2b2lkIFJhbmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dT
dWJ0cmVlKCkKICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGNvbnRhaW5lciA9IFNsaWRlckNvbnRh
aW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udGFpbmVyLT5hcHBlbmRDaGls
ZCh0cmFjay5yZWxlYXNlKCksIGVjKTsKICAgICBjb250YWluZXItPmFwcGVuZENoaWxkKFRyYWNr
TGltaXRlckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCksIGVjKTsKLSAgICBlbGVtZW50KCktPnNo
YWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoY29udGFpbmVyLnJlbGVhc2UoKSwgZWMpOworICAgIGVs
ZW1lbnQoKS0+c2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5hcHBlbmRDaGls
ZChjb250YWluZXIucmVsZWFzZSgpLCBlYyk7CiB9CiAKIFJlbmRlck9iamVjdCogUmFuZ2VJbnB1
dFR5cGU6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCmluZGV4IGJi
Y2Y1NmM5MTg5MjE5YzYwMWYxM2VkZDkyMzA0MDhkZmYwMDIyNWIuLjEyOGEzNWJiYzQyMTA0MzE5
NGYzNjYyYTQxMjA1M2NmMzVlZDc2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGV4dEZpZWxkSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVs
ZElucHV0VHlwZS5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJSZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlNo
YWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlRleHRD
b250cm9sSW5uZXJFbGVtZW50cy5oIgogI2luY2x1ZGUgIlRleHRFdmVudC5oIgogI2luY2x1ZGUg
IlRleHRJdGVyYXRvci5oIgpAQCAtMTg5LDcgKzE5MCw3IEBAIGJvb2wgVGV4dEZpZWxkSW5wdXRU
eXBlOjpuZWVkc0NvbnRhaW5lcigpIGNvbnN0CiAKIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpj
cmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKLSAgICBBU1NFUlQoZWxlbWVudCgpLT5zaGFkb3dSb290
KCkpOworICAgIEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7CiAKICAgICBBU1NF
UlQoIW1faW5uZXJUZXh0KTsKICAgICBBU1NFUlQoIW1faW5uZXJCbG9jayk7CkBAIC0yMDMsMTEg
KzIwNCwxMSBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgp
CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgbV9pbm5lclRleHQgPSBUZXh0Q29udHJv
bElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgaWYgKCFjcmVhdGVzQ29u
dGFpbmVyKSB7Ci0gICAgICAgIGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZCht
X2lubmVyVGV4dCwgZWMpOworICAgICAgICBlbGVtZW50KCktPnNoYWRvd1Jvb3RMaXN0KCktPm9s
ZGVzdFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQobV9pbm5lclRleHQsIGVjKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSBlbGVtZW50KCkt
PnNoYWRvd1Jvb3QoKTsKKyAgICBTaGFkb3dSb290KiBzaGFkb3dSb290ID0gZWxlbWVudCgpLT5z
aGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCk7CiAgICAgbV9jb250YWluZXIgPSBI
VE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBtX2NvbnRhaW5lci0+c2V0U2hh
ZG93UHNldWRvSWQoIi13ZWJraXQtdGV4dGZpZWxkLWRlY29yYXRpb24tY29udGFpbmVyIik7CiAg
ICAgc2hhZG93Um9vdC0+YXBwZW5kQ2hpbGQobV9jb250YWluZXIsIGVjKTsKQEAgLTM2OSw3ICsz
NzAsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkK
ICAgICBpZiAoIW1fcGxhY2Vob2xkZXIpIHsKICAgICAgICAgbV9wbGFjZWhvbGRlciA9IEhUTUxE
aXZFbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLT5kb2N1bWVudCgpKTsKICAgICAgICAgbV9wbGFj
ZWhvbGRlci0+c2V0U2hhZG93UHNldWRvSWQoIi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIiKTsK
LSAgICAgICAgZWxlbWVudCgpLT5zaGFkb3dSb290KCktPmluc2VydEJlZm9yZShtX3BsYWNlaG9s
ZGVyLCBtX2NvbnRhaW5lciA/IG1fY29udGFpbmVyLT5uZXh0U2libGluZygpIDogaW5uZXJUZXh0
RWxlbWVudCgpLT5uZXh0U2libGluZygpLCBlYyk7CisgICAgICAgIGVsZW1lbnQoKS0+c2hhZG93
Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUobV9wbGFjZWhvbGRl
ciwgbV9jb250YWluZXIgPyBtX2NvbnRhaW5lci0+bmV4dFNpYmxpbmcoKSA6IGlubmVyVGV4dEVs
ZW1lbnQoKS0+bmV4dFNpYmxpbmcoKSwgZWMpOwogICAgICAgICBBU1NFUlQoIWVjKTsKICAgICB9
CiAgICAgbV9wbGFjZWhvbGRlci0+c2V0SW5uZXJUZXh0KHBsYWNlaG9sZGVyVGV4dCwgZWMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcAppbmRleCBiYzNjNDU0ODlk
ZmI4NjJhMTRiYjRlNTMwZTcwNGI5YThjZGM2NjhjLi5iYjhhMTk1Yjg0YzJiZTBmMTAyYmVjYTM3
M2VjNjVkZmE5MWIzZmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRp
b25NZXNzYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdl
LmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1
ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRv
d1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+CiAKQEAgLTE4Nyw3ICsxODgsNyBAQCB2b2lkIFZhbGlkYXRpb25NZXNzYWdlOjpkZWxldGVC
dWJibGVUcmVlKFRpbWVyPFZhbGlkYXRpb25NZXNzYWdlPiopCiAgICAgICAgIG1fbWVzc2FnZUJv
ZHkgPSAwOwogICAgICAgICBIVE1MRWxlbWVudCogaG9zdCA9IHRvSFRNTEVsZW1lbnQobV9lbGVt
ZW50KTsKICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYzsKLSAgICAgICAgaG9zdC0+c2hhZG93Um9v
dCgpLT5yZW1vdmVDaGlsZChtX2J1YmJsZS5nZXQoKSwgZWMpOworICAgICAgICBob3N0LT5zaGFk
b3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCktPnJlbW92ZUNoaWxkKG1fYnViYmxlLmdl
dCgpLCBlYyk7CiAgICAgICAgIG1fYnViYmxlID0gMDsKICAgICB9CiAgICAgbV9tZXNzYWdlID0g
U3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJU
aHVtYkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJF
bGVtZW50LmNwcAppbmRleCAzMTlhMTFlODAyNTJmYWMyODZiZTg0MGQyYmY3NjM1NDBmNThlZWI3
Li5hYmY1YjM1OGI1NTQ5OWRlYmI5MWU1NzI3MzkwYjQwOThkMzM3ZTc0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKQEAgLTQzLDYg
KzQzLDcgQEAKICNpbmNsdWRlICJSZW5kZXJTbGlkZXIuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVt
ZS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5o
IgogI2luY2x1ZGUgIlN0ZXBSYW5nZS5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAK
QEAgLTY2LDcgKzY3LDcgQEAgaW5saW5lIHN0YXRpYyBib29sIGhhc1ZlcnRpY2FsQXBwZWFyYW5j
ZShIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCkKIFNsaWRlclRodW1iRWxlbWVudCogc2xpZGVyVGh1
bWJFbGVtZW50T2YoTm9kZSogbm9kZSkKIHsKICAgICBBU1NFUlQobm9kZSk7Ci0gICAgU2hhZG93
Um9vdCogc2hhZG93ID0gbm9kZS0+dG9JbnB1dEVsZW1lbnQoKS0+c2hhZG93Um9vdCgpOworICAg
IFNoYWRvd1Jvb3QqIHNoYWRvdyA9IG5vZGUtPnRvSW5wdXRFbGVtZW50KCktPnNoYWRvd1Jvb3RM
aXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKICAgICBBU1NFUlQoc2hhZG93KTsKICAgICBOb2Rl
KiB0aHVtYiA9IHNoYWRvdy0+Zmlyc3RDaGlsZCgpLT5maXJzdENoaWxkKCktPmZpcnN0Q2hpbGQo
KTsKICAgICBBU1NFUlQodGh1bWIpOwpAQCAtMTQxLDcgKzE0Miw3IEBAIHZvaWQgUmVuZGVyU2xp
ZGVyQ29udGFpbmVyOjpsYXlvdXQoKQogICAgIExlbmd0aCBpbnB1dEhlaWdodCA9IGlucHV0LT5y
ZW5kZXJlcigpLT5zdHlsZSgpLT5oZWlnaHQoKTsKICAgICBSZW5kZXJPYmplY3QqIHRyYWNrUmVu
ZGVyZXIgPSBub2RlKCktPmZpcnN0Q2hpbGQoKS0+cmVuZGVyZXIoKTsKICAgICBpZiAoIWlzVmVy
dGljYWwgJiYgaW5wdXQtPnJlbmRlcmVyKCktPmlzU2xpZGVyKCkgJiYgIWlucHV0SGVpZ2h0Lmlz
Rml4ZWQoKSAmJiAhaW5wdXRIZWlnaHQuaXNQZXJjZW50KCkpIHsKLSAgICAgICAgUmVuZGVyT2Jq
ZWN0KiB0aHVtYlJlbmRlcmVyID0gaW5wdXQtPnNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpLT5m
aXJzdENoaWxkKCktPmZpcnN0Q2hpbGQoKS0+cmVuZGVyZXIoKTsKKyAgICAgICAgUmVuZGVyT2Jq
ZWN0KiB0aHVtYlJlbmRlcmVyID0gaW5wdXQtPnNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRv
d1Jvb3QoKS0+Zmlyc3RDaGlsZCgpLT5maXJzdENoaWxkKCktPmZpcnN0Q2hpbGQoKS0+cmVuZGVy
ZXIoKTsKICAgICAgICAgaWYgKHRodW1iUmVuZGVyZXIpIHsKICAgICAgICAgICAgIHN0eWxlKCkt
PnNldEhlaWdodCh0aHVtYlJlbmRlcmVyLT5zdHlsZSgpLT5oZWlnaHQoKSk7CiAgICAgICAgICAg
ICBpZiAodHJhY2tSZW5kZXJlcikKQEAgLTM1NSw3ICszNTYsOCBAQCBjb25zdCBBdG9taWNTdHJp
bmcmIFRyYWNrTGltaXRlckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIFRyYWNrTGlt
aXRlckVsZW1lbnQqIHRyYWNrTGltaXRlckVsZW1lbnRPZihOb2RlKiBub2RlKQogewogICAgIEFT
U0VSVChub2RlKTsKLSAgICBTaGFkb3dSb290KiBzaGFkb3cgPSBub2RlLT50b0lucHV0RWxlbWVu
dCgpLT5zaGFkb3dSb290KCk7CisgICAgQVNTRVJUKG5vZGUtPnRvSW5wdXRFbGVtZW50KCktPmhh
c1NoYWRvd1Jvb3QoKSk7CisgICAgU2hhZG93Um9vdCogc2hhZG93ID0gbm9kZS0+dG9JbnB1dEVs
ZW1lbnQoKS0+c2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpOwogICAgIEFTU0VS
VChzaGFkb3cpOwogICAgIE5vZGUqIGxpbWl0ZXIgPSBzaGFkb3ctPmZpcnN0Q2hpbGQoKS0+bGFz
dENoaWxkKCk7CiAgICAgQVNTRVJUKGxpbWl0ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0Nv
bnRyb2xsZXIuY3BwCmluZGV4IDUxNDI2YTMwODYyNGI5ODU4OGIwZTA2ZjkxY2I2ZDY0ODFhYzhm
OGEuLmFhOThjMDI0OWZiMDQ0OTQ0NzdkNTQxNjRjMzA5NWRlMjM2OTJmODkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKQEAgLTU0LDYgKzU0LDcgQEAKICNpbmNsdWRl
ICJTY3JvbGxBbmltYXRvci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSAiU3BhdGlh
bE5hdmlnYXRpb24uaCIKICNpbmNsdWRlICJXaWRnZXQuaCIKICNpbmNsdWRlICJodG1sZWRpdGlu
Zy5oIiAvLyBGb3IgZmlyc3RQb3NpdGlvbkluT3JCZWZvcmVOb2RlCkBAIC0xNTQsNyArMTU1LDcg
QEAgdm9pZCBGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWQoYm9vbCBmb2N1c2VkKQogCiBzdGF0
aWMgaW5saW5lIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QoTm9kZSogbm9kZSkKIHsKLSAgICByZXR1
cm4gbm9kZS0+aXNFbGVtZW50Tm9kZSgpID8gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3dSb290KCkg
OiAwOworICAgIHJldHVybiBub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KG5vZGUp
LT5oYXNTaGFkb3dSb290KCkgPyB0b0VsZW1lbnQobm9kZSktPnNoYWRvd1Jvb3RMaXN0KCktPnlv
dW5nZXN0U2hhZG93Um9vdCgpIDogMDsKIH0KIAogc3RhdGljIGlubGluZSBib29sIGlzVHJlZVNj
b3BlT3duZXIoTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCmluZGV4IGExYWUxNWI1YzljMDA1NDExZDMxNjIy
MTUyNjkwOTdkODk0ZTAwN2IuLjg0MzczMDMyZDlmYmJiNGQ4YjY0OGE3ZDg0MmNmMGFjMGU2MGE5
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2Fk
Q29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxv
YWRDb250cm9sLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIK
ICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNs
dWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlRleHRSdW4uaCIKICNpbmNsdWRlICJW
aXNpYmxlUG9zaXRpb24uaCIKICNpbmNsdWRlIDxtYXRoLmg+CkBAIC0yMTIsOSArMjEzLDkgQEAg
SFRNTElucHV0RWxlbWVudCogUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnVwbG9hZEJ1dHRvbigp
IGNvbnN0CiB7CiAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1M
SW5wdXRFbGVtZW50Kj4obm9kZSgpKTsKIAotICAgIEFTU0VSVChpbnB1dC0+c2hhZG93Um9vdCgp
KTsKKyAgICBBU1NFUlQoaW5wdXQtPmhhc1NoYWRvd1Jvb3QoKSk7CiAKLSAgICBOb2RlKiBidXR0
b25Ob2RlID0gaW5wdXQtPnNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpOworICAgIE5vZGUqIGJ1
dHRvbk5vZGUgPSBpbnB1dC0+c2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5m
aXJzdENoaWxkKCk7CiAgICAgcmV0dXJuIGJ1dHRvbk5vZGUgJiYgYnV0dG9uTm9kZS0+aXNIVE1M
RWxlbWVudCgpICYmIGJ1dHRvbk5vZGUtPmhhc1RhZ05hbWUoaW5wdXRUYWcpID8gc3RhdGljX2Nh
c3Q8SFRNTElucHV0RWxlbWVudCo+KGJ1dHRvbk5vZGUpIDogMDsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUUmVmRWxlbWVudC5jcHAKaW5kZXggOThiOGY5MTNmYTE2MzJiNzE3Mzk2NDIwZWQzZWU2
ZDgwZGMyYzljNC4uMTIyZDdjNDNjYzJkMGIxYTU0ZTdhYWFjNGI3MzVkNGFmMDg4ZDFkZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j
bHVkZSAiUmVuZGVyU1ZHSW5saW5lVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNl
LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0Lmgi
CiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTVkdFbGVtZW50SW5zdGFuY2Uu
aCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgpAQCAtMTU5LDEwICsxNjAsMTIgQEAgdm9pZCBTVkdU
UmVmRWxlbWVudDo6dXBkYXRlUmVmZXJlbmNlZFRleHQoKQogICAgIGlmICh0YXJnZXQtPnBhcmVu
dE5vZGUoKSkKICAgICAgICAgdGV4dENvbnRlbnQgPSB0YXJnZXQtPnRleHRDb250ZW50KCk7CiAK
LSAgICBpZiAoIXNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpKQotICAgICAgICBzaGFkb3dSb290
KCktPmFwcGVuZENoaWxkKFNWR1NoYWRvd1RleHQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0Q29u
dGVudCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIEFTU0VSVChoYXNTaGFkb3dSb290KCkp
OworICAgIFNoYWRvd1Jvb3QqIHJvb3QgPSBzaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dS
b290KCk7CisgICAgaWYgKCFyb290LT5maXJzdENoaWxkKCkpCisgICAgICAgIHJvb3QtPmFwcGVu
ZENoaWxkKFNWR1NoYWRvd1RleHQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0Q29udGVudCksIEFT
U0VSVF9OT19FWENFUFRJT04pOwogICAgIGVsc2UKLSAgICAgICAgc2hhZG93Um9vdCgpLT5maXJz
dENoaWxkKCktPnNldFRleHRDb250ZW50KHRleHRDb250ZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKKyAgICAgICAgcm9vdC0+Zmlyc3RDaGlsZCgpLT5zZXRUZXh0Q29udGVudCh0ZXh0Q29udGVu
dCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiB9CiAKIGJvb2wgU1ZHVFJlZkVsZW1lbnQ6OmlzU3Vw
cG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDA2ZTM0Y2QzY2JiYzBkZTE3OGIxMjE3ZmE0MDM4
OTliNzIwOTdiZjYuLmRhNDk3MWU5ZmUxNzUxNjBjMTA1N2FjMDg2N2Q2Y2ZhOTMzMTk1NGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNs
dWRlICJSZW5kZXJUcmVlQXNUZXh0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRl
ICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJT
cGVsbENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKIApAQCAtMTkzLDIwICsx
OTQsNDMgQEAgSW50ZXJuYWxzOjpTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBJ
bnRlcm5hbHM6OmVuc3VyZVNoYWRvd1Jvb3QoRWxlbWUKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
fQogCi0gICAgaWYgKFNoYWRvd1Jvb3QqIHJvb3QgPSBob3N0LT5zaGFkb3dSb290KCkpCi0gICAg
ICAgIHJldHVybiByb290OworICAgIGlmIChob3N0LT5oYXNTaGFkb3dSb290KCkpCisgICAgICAg
IHJldHVybiBob3N0LT5zaGFkb3dSb290TGlzdCgpLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsKIAog
ICAgIHJldHVybiBTaGFkb3dSb290OjpjcmVhdGUoaG9zdCwgZWMpLmdldCgpOwogfQogCiBJbnRl
cm5hbHM6OlNoYWRvd1Jvb3RJZlNoYWRvd0RPTUVuYWJsZWRPck5vZGUqIEludGVybmFsczo6c2hh
ZG93Um9vdChFbGVtZW50KiBob3N0LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKKyAgICAvLyBGSVhN
RTogSW50ZXJuYWxzOjpzaGFkb3dSb290KCkgaW4gdGVzdHMgc2hvdWxkIGJlIGNvbnZlcnRlZCB0
byB5b3VuZ2VzdFNoYWRvd1Jvb3QoKSBvciBvbGRlc3RTaGFkb3dSb290KCkuCisgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NDY1CisgICAgcmV0dXJuIHlv
dW5nZXN0U2hhZG93Um9vdChob3N0LCBlYyk7Cit9CisKK0ludGVybmFsczo6U2hhZG93Um9vdElm
U2hhZG93RE9NRW5hYmxlZE9yTm9kZSogSW50ZXJuYWxzOjp5b3VuZ2VzdFNoYWRvd1Jvb3QoRWxl
bWVudCogaG9zdCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CiAgICAgaWYgKCFob3N0KSB7CiAgICAg
ICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAK
LSAgICByZXR1cm4gaG9zdC0+c2hhZG93Um9vdCgpOworICAgIGlmICghaG9zdC0+aGFzU2hhZG93
Um9vdCgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBob3N0LT5zaGFkb3dSb290
TGlzdCgpLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsKK30KKworSW50ZXJuYWxzOjpTaGFkb3dSb290
SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBJbnRlcm5hbHM6Om9sZGVzdFNoYWRvd1Jvb3QoRWxl
bWVudCogaG9zdCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFob3N0KSB7CisgICAg
ICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisK
KyAgICBpZiAoIWhvc3QtPmhhc1NoYWRvd1Jvb3QoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAg
ICByZXR1cm4gaG9zdC0+c2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpOwogfQog
CiB2b2lkIEludGVybmFsczo6cmVtb3ZlU2hhZG93Um9vdChFbGVtZW50KiBob3N0LCBFeGNlcHRp
b25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDQzOWRjNzVjNmUx
NWZiY2FlODJjNjdjYWZlNzlmMGIyMWFmZGJlMGUuLmQzOGQ4ODBhMmY4M2I5ODliODk4MzNmY2Zl
MDQ0NTI1NzUxNzU4YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNjYsNiAr
NjYsOCBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICBTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVk
T3JOb2RlKiBlbnN1cmVTaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmKTsK
ICAgICBTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBzaGFkb3dSb290KEVsZW1l
bnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBTaGFkb3dSb290SWZTaGFkb3dET01FbmFi
bGVkT3JOb2RlKiB5b3VuZ2VzdFNoYWRvd1Jvb3QoRWxlbWVudCogaG9zdCwgRXhjZXB0aW9uQ29k
ZSYpOworICAgIFNoYWRvd1Jvb3RJZlNoYWRvd0RPTUVuYWJsZWRPck5vZGUqIG9sZGVzdFNoYWRv
d1Jvb3QoRWxlbWVudCogaG9zdCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgcmVtb3ZlU2hh
ZG93Um9vdChFbGVtZW50KiBob3N0LCBFeGNlcHRpb25Db2RlJik7CiAgICAgRWxlbWVudCogaW5j
bHVkZXJGb3IoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBTdHJpbmcgc2hhZG93UHNldWRv
SWQoRWxlbWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbAppbmRleCA5YmYwNTc1MWQ5YjZhMmY0YTgxZjA3MDk5YzkzYzdhNmQzYThhMDUzLi43NTY3
NmY2YWEyYjc5MmQ2NTBkYjViZjcxMWFlODQ5NDgxNmI3Nzk3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsCkBAIC0zNSw5ICszNSwxMyBAQCBtb2R1bGUgd2luZG93IHsKICNpZiBk
ZWZpbmVkKEVOQUJMRV9TSEFET1dfRE9NKQogICAgICAgICBTaGFkb3dSb290IGVuc3VyZVNoYWRv
d1Jvb3QoaW4gRWxlbWVudCBob3N0KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIFNo
YWRvd1Jvb3Qgc2hhZG93Um9vdChpbiBFbGVtZW50IGhvc3QpIHJhaXNlcyAoRE9NRXhjZXB0aW9u
KTsKKyAgICAgICAgU2hhZG93Um9vdCB5b3VuZ2VzdFNoYWRvd1Jvb3QoaW4gRWxlbWVudCBob3N0
KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFNoYWRvd1Jvb3Qgb2xkZXN0U2hhZG93
Um9vdChpbiBFbGVtZW50IGhvc3QpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICNlbHNlCiAgICAg
ICAgIE5vZGUgZW5zdXJlU2hhZG93Um9vdChpbiBFbGVtZW50IGhvc3QpIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKICAgICAgICAgTm9kZSBzaGFkb3dSb290KGluIEVsZW1lbnQgaG9zdCkgcmFpc2Vz
IChET01FeGNlcHRpb24pOworICAgICAgICBOb2RlIHlvdW5nZXN0U2hhZG93Um9vdChpbiBFbGVt
ZW50IGhvc3QpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgTm9kZSBvbGRlc3RTaGFk
b3dSb290KGluIEVsZW1lbnQgaG9zdCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogI2VuZGlmCiAg
ICAgICAgIEVsZW1lbnQgaW5jbHVkZXJGb3IoaW4gTm9kZSBub2RlKSByYWlzZXMgKERPTUV4Y2Vw
dGlvbik7CiAgICAgICAgIHZvaWQgcmVtb3ZlU2hhZG93Um9vdChpbiBFbGVtZW50IGhvc3QpIHJh
aXNlcyAoRE9NRXhjZXB0aW9uKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126884</attachid>
            <date>2012-02-13 18:43:27 -0800</date>
            <delta_ts>2012-02-13 20:07:39 -0800</delta_ts>
            <desc>Test</desc>
            <filename>bug-78455-20120214114325.patch</filename>
            <type>text/plain</type>
            <size>46244</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDg4MmQ3NmZkMzYwZTcw
YTM1Y2Q3ODY2ZWU1ZjFhMTRhNjQ3ODNhOS4uMjA4NzAyYmQ4YTQxNWI4YjliN2I0YTI3N2JkMmMz
ZTU5ZTc5YTI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwOCBAQAorMjAxMi0wMi0xMiAgU2hp
bnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgorCisgICAgICAgIFVzZSB5b3VuZ2Vz
dFNoYWRvd1Jvb3QgYW5kIG9sZGVzdFNoYWRvd1Jvb3QgaW5zdGVhZCBvZiBFbGVtZW50OjpzaGFk
b3dSb290KCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03ODQ1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEVsZW1lbnQ6OnNoYWRvd1Jvb3QoKSBpcyBhbWJpZ3VvdXMgYmVjYXVzZSBpdCBkb24ndCBzYXkg
dG8gdGFrZSB0aGUgeW91bmdlc3Qgc2hhZG93IHJvb3Qgb3IKKyAgICAgICAgdGhlIG9sZGVzdCBz
aGFkb3cgcm9vdC4KKworICAgICAgICBXZSBzaG91bGQgbWFrZSB0aGlzIGNsZWFyZXIuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBubyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmJ1aWxkQWNjZXNz
S2V5TWFwKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
OjpyZW1vdmVkRnJvbURvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6Omluc2Vy
dGVkSW50b1RyZWUpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVtb3ZlZEZyb21UcmVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmF0dGFjaCk6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjpkZXRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVjYWxjU3R5
bGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjplbnN1
cmVTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpmb2N1cyk6CisgICAgICAgICogZG9tL0Vs
ZW1lbnQuaDoKKyAgICAgICAgKEVsZW1lbnQpOgorICAgICAgICAqIGRvbS9FdmVudERpc3BhdGNo
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNTaGFkb3dIb3N0KToKKyAgICAgICAgKiBkb20v
Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzaGFkb3dSb290KToKKyAgICAgICAgKiBkb20v
Tm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmlu
Z0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0KToKKyAgICAgICAgKiBkb20vU2hhZG93Um9v
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpjcmVhdGUpOgorICAgICAgICAq
IGRvbS9TaGFkb3dSb290TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290TGlz
dDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTaGFkb3dSb290TGlzdDo6cmVtb3ZlZEZyb21Eb2N1bWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpTaGFkb3dSb290TGlzdDo6aW5zZXJ0ZWRJbnRvVHJlZSk6CisgICAgICAgIChXZWJD
b3JlOjpTaGFkb3dSb290TGlzdDo6cmVtb3ZlZEZyb21UcmVlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNoYWRvd1Jvb3RMaXN0Ojpob3N0Q2hpbGRyZW5DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNoYWRvd1Jvb3RMaXN0OjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdExp
c3Q6OmRldGFjaCk6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3RMaXN0Lmg6CisgICAgICAgIChT
aGFkb3dSb290TGlzdCk6CisgICAgICAgICogZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6c2hhZG93Um9vdEZvcik6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1
YnRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6bXVsdGlwbGVBdHRyaWJ1
dGVDaGFuZ2VkKToKKyAgICAgICAgKiBodG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MRGV0YWlsc0VsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTERldGFpbHNFbGVtZW50OjpmaW5kTWFpblN1bW1hcnkpOgor
ICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MSW5wdXRFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL0hU
TUxLZXlnZW5FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxLZXlnZW5FbGVtZW50
OjpIVE1MS2V5Z2VuRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MS2V5Z2VuRWxlbWVu
dDo6c2hhZG93U2VsZWN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFDb250cm9scyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpoYXNNZWRpYUNvbnRyb2xzKToKKyAgICAg
ICAgKiBodG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
dGVyRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9IVE1MUHJv
Z3Jlc3NFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6
OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvSFRNTFN1bW1hcnlFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlU2hhZG93
U3VidHJlZSk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6aW5uZXJUZXh0RWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Ojp1cGRhdGVQbGFjZWhvbGRl
clRleHQpOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklucHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvUmFuZ2VJ
bnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmhhbmRsZU1v
dXNlRG93bkV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5wdXRUeXBlOjpjcmVhdGVT
aGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUp
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjp1cGRhdGVQbGFjZWhvbGRl
clRleHQpOgorICAgICAgICAqIGh0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VmFsaWRhdGlvbk1lc3NhZ2U6OmRlbGV0ZUJ1YmJsZVRyZWUpOgorICAgICAgICAq
IGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpz
bGlkZXJUaHVtYkVsZW1lbnRPZik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXJDb250
YWluZXI6OmxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjp0cmFja0xpbWl0ZXJFbGVtZW50T2Yp
OgorICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnNoYWRvd1Jvb3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJv
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6dXBsb2Fk
QnV0dG9uKToKKyAgICAgICAgKiBzdmcvU1ZHVFJlZkVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVFJlZkVsZW1lbnQ6OnVwZGF0ZVJlZmVyZW5jZWRUZXh0KToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmVuc3Vy
ZVNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzaGFkb3dSb290KToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp5b3VuZ2Vz
dFNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpvbGRlc3RTaGFkb3dS
b290KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAoSW50ZXJuYWxz
KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTItMDItMTMgIFJhdWwg
SHVkZWEgIDxyaHVkZWFAYWRvYmUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBFbGVtZW50Lndl
YmtpdFJlZ2lvbk92ZXJmbG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDQ4Nzc5N2Q3ZGU3MmU3
NzVlNzIwOTNmMjYzOTAxZWM3OWYwMzE3YzguLmM3Yjc4MWI5Mjk1MGM5NGI4MWNkNmNiNjA5ZDNh
MDE0OWYyYzdhNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xNDM0LDcgKzE0MzQsNiBAQCBf
X1pOSzdXZWJDb3JlNldpZGdldDI1Y29udmVydFRvQ29udGFpbmluZ1dpbmRvd0VSS05TXzdJbnRS
ZWN0RQogX19aTks3V2ViQ29yZTZXaWRnZXQyNWNvbnZlcnRUb0NvbnRhaW5pbmdXaW5kb3dFUktO
U184SW50UG9pbnRFCiBfX1pOSzdXZWJDb3JlNldpZGdldDlmcmFtZVJlY3RFdgogX19aTks3V2Vi
Q29yZTdFbGVtZW50MTBzY3JlZW5SZWN0RXYKLV9fWk5LN1dlYkNvcmU3RWxlbWVudDEwc2hhZG93
Um9vdEV2CiBfX1pOSzdXZWJDb3JlN0VsZW1lbnQxMmdldEF0dHJpYnV0ZUVSS05TXzEzUXVhbGlm
aWVkTmFtZUUKIF9fWk5LN1dlYkNvcmU3SW50UmVjdDEwaW50ZXJzZWN0c0VSS1MwXwogX19aTks3
V2ViQ29yZTdJbnRSZWN0OGNvbnRhaW5zRVJLUzBfCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRl
eCA2MmVlZmY5Yjk5OWQ4Yjc5NWU0OTYyOWUzNDk3MDY4OTQxYzlmZDgzLi5jMGJiNDE0N2I4Mzcx
NzE5MGExYzBjNTBhYTVhYzEwMjY2YWQ1MTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAg
LTEzNyw2ICsxMzcsNyBAQAogI2luY2x1ZGUgIlNlZ21lbnRlZFN0cmluZy5oIgogI2luY2x1ZGUg
IlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jv
b3RMaXN0LmgiCiAjaW5jbHVkZSAiU3RhdGljSGFzaFNldE5vZGVMaXN0LmgiCiAjaW5jbHVkZSAi
U3R5bGVTaGVldExpc3QuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCkBAIC02
NjYsOCArNjY3LDExIEBAIHZvaWQgRG9jdW1lbnQ6OmJ1aWxkQWNjZXNzS2V5TWFwKFRyZWVTY29w
ZSogc2NvcGUpCiAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgYWNjZXNzS2V5ID0gZWxlbWVu
dC0+Z2V0QXR0cmlidXRlKGFjY2Vzc2tleUF0dHIpOwogICAgICAgICBpZiAoIWFjY2Vzc0tleS5p
c0VtcHR5KCkpCiAgICAgICAgICAgICBtX2VsZW1lbnRzQnlBY2Nlc3NLZXkuc2V0KGFjY2Vzc0tl
eS5pbXBsKCksIGVsZW1lbnQpOwotICAgICAgICBpZiAoU2hhZG93Um9vdCogc2hhZG93Um9vdCA9
IGVsZW1lbnQtPnNoYWRvd1Jvb3QoKSkKLSAgICAgICAgICAgIGJ1aWxkQWNjZXNzS2V5TWFwKHNo
YWRvd1Jvb3QpOworCisgICAgICAgIGlmIChlbGVtZW50LT5oYXNTaGFkb3dSb290KCkpIHsKKyAg
ICAgICAgICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IGVsZW1lbnQtPnNoYWRvd1Jvb3RMaXN0
KCktPnlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dS
b290KCkpCisgICAgICAgICAgICAgICAgYnVpbGRBY2Nlc3NLZXlNYXAocm9vdCk7CisgICAgICAg
IH0KICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA4Yzk0ZDdjNzgwZGQ4MTI3
YTI5NzQ3MjNlNWQwYjU5MmMwNzZlMmUwLi4wOWMzMDQ0MmE1NjAwMTE2NThlODU0M2Q3ODM4YTY3
NDhjZTQ1OTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC04NzMsOCArODczLDggQEAgdm9p
ZCBFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCgpCiAgICAgLy8gbmVlZCB0byBkbyBzdXBl
cmNsYXNzIHByb2Nlc3NpbmcgZmlyc3Qgc28gaW5Eb2N1bWVudCgpIGlzIHRydWUKICAgICAvLyBi
eSB0aGUgdGltZSB3ZSByZWFjaCB1cGRhdGVJZAogICAgIENvbnRhaW5lck5vZGU6Omluc2VydGVk
SW50b0RvY3VtZW50KCk7Ci0gICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRvdyA9IHNoYWRvd1Jvb3Qo
KSkKLSAgICAgICAgc2hhZG93LT5pbnNlcnRlZEludG9Eb2N1bWVudCgpOworICAgIGlmIChTaGFk
b3dSb290TGlzdCogc2hhZG93TGlzdCA9IHNoYWRvd1Jvb3RMaXN0KCkpCisgICAgICAgIHNoYWRv
d0xpc3QtPmluc2VydGVkSW50b0RvY3VtZW50KCk7CiAKICAgICBpZiAobV9hdHRyaWJ1dGVNYXAp
IHsKICAgICAgICAgaWYgKGhhc0lEKCkpIHsKQEAgLTkwNiw4ICs5MDYsOCBAQCB2b2lkIEVsZW1l
bnQ6OnJlbW92ZWRGcm9tRG9jdW1lbnQoKQogICAgIH0KIAogICAgIENvbnRhaW5lck5vZGU6OnJl
bW92ZWRGcm9tRG9jdW1lbnQoKTsKLSAgICBpZiAoU2hhZG93Um9vdCogc2hhZG93ID0gc2hhZG93
Um9vdCgpKQotICAgICAgICBzaGFkb3ctPnJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKKyAgICBpZiAo
U2hhZG93Um9vdExpc3QqIHNoYWRvd0xpc3QgPSBzaGFkb3dSb290TGlzdCgpKQorICAgICAgICBz
aGFkb3dMaXN0LT5yZW1vdmVkRnJvbURvY3VtZW50KCk7CiB9CiAKIHZvaWQgRWxlbWVudDo6aW5z
ZXJ0ZWRJbnRvVHJlZShib29sIGRlZXApCkBAIC05MTUsOCArOTE1LDggQEAgdm9pZCBFbGVtZW50
OjppbnNlcnRlZEludG9UcmVlKGJvb2wgZGVlcCkKICAgICBDb250YWluZXJOb2RlOjppbnNlcnRl
ZEludG9UcmVlKGRlZXApOwogICAgIGlmICghZGVlcCkKICAgICAgICAgcmV0dXJuOwotICAgIGlm
IChTaGFkb3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290KCkpCi0gICAgICAgIHNoYWRvdy0+aW5z
ZXJ0ZWRJbnRvVHJlZSh0cnVlKTsKKyAgICBpZiAoU2hhZG93Um9vdExpc3QqIHNoYWRvd0xpc3Qg
PSBzaGFkb3dSb290TGlzdCgpKQorICAgICAgICBzaGFkb3dMaXN0LT5pbnNlcnRlZEludG9UcmVl
KHRydWUpOwogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIGlmIChjb250YWluc0Z1
bGxTY3JlZW5FbGVtZW50KCkgJiYgcGFyZW50RWxlbWVudCgpICYmICFwYXJlbnRFbGVtZW50KCkt
PmNvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnQoKSkKQEAgLTkyOSw4ICs5MjksOCBAQCB2b2lkIEVs
ZW1lbnQ6OnJlbW92ZWRGcm9tVHJlZShib29sIGRlZXApCiAgICAgQ29udGFpbmVyTm9kZTo6cmVt
b3ZlZEZyb21UcmVlKGRlZXApOwogICAgIGlmICghZGVlcCkKICAgICAgICAgcmV0dXJuOwotICAg
IGlmIChTaGFkb3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290KCkpCi0gICAgICAgIHNoYWRvdy0+
cmVtb3ZlZEZyb21UcmVlKHRydWUpOworICAgIGlmIChTaGFkb3dSb290TGlzdCogc2hhZG93TGlz
dCA9IHNoYWRvd1Jvb3RMaXN0KCkpCisgICAgICAgIHNoYWRvd0xpc3QtPnJlbW92ZWRGcm9tVHJl
ZSh0cnVlKTsKIH0KIAogdm9pZCBFbGVtZW50OjphdHRhY2goKQpAQCAtOTQyLDEwICs5NDIsMTAg
QEAgdm9pZCBFbGVtZW50OjphdHRhY2goKQogICAgIFN0eWxlU2VsZWN0b3JQYXJlbnRQdXNoZXIg
cGFyZW50UHVzaGVyKHRoaXMpOwogCiAgICAgLy8gV2hlbiBhIHNoYWRvdyByb290IGV4aXN0cywg
aXQgZG9lcyB0aGUgd29yayBvZiBhdHRhY2hpbmcgdGhlIGNoaWxkcmVuLgotICAgIGlmIChTaGFk
b3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290KCkpIHsKKyAgICBpZiAoaGFzU2hhZG93Um9vdCgp
KSB7CiAgICAgICAgIHBhcmVudFB1c2hlci5wdXNoKCk7CiAgICAgICAgIE5vZGU6OmF0dGFjaCgp
OwotICAgICAgICBzaGFkb3ctPmF0dGFjaCgpOworICAgICAgICBzaGFkb3dSb290TGlzdCgpLT5h
dHRhY2goKTsKIAogICAgICAgICAvLyBJbiBhIHNoYWRvdyB0cmVlLCBzb21lIG9mIGxpZ2h0IGNo
aWxkcmVuIG1heSBiZSBhdHRhY2hlZCBieSAnY29udGVudCcgZWxlbWVudC4KICAgICAgICAgLy8g
SG93ZXZlciwgd2hlbiB0aGVyZSBpcyBubyBjb250ZW50IGVsZW1lbnQgb3IgY29udGVudCBlbGVt
ZW50IGRvZXMgbm90IHNlbGVjdApAQCAtOTgxLDggKzk4MSw4IEBAIHZvaWQgRWxlbWVudDo6ZGV0
YWNoKCkKICAgICBpZiAoaGFzUmFyZURhdGEoKSkKICAgICAgICAgcmFyZURhdGEoKS0+cmVzZXRD
b21wdXRlZFN0eWxlKCk7CiAgICAgQ29udGFpbmVyTm9kZTo6ZGV0YWNoKCk7Ci0gICAgaWYgKFNo
YWRvd1Jvb3QqIHNoYWRvdyA9IHNoYWRvd1Jvb3QoKSkKLSAgICAgICAgc2hhZG93LT5kZXRhY2go
KTsKKyAgICBpZiAoU2hhZG93Um9vdExpc3QqIHNoYWRvd0xpc3QgPSBzaGFkb3dSb290TGlzdCgp
KQorICAgICAgICBzaGFkb3dMaXN0LT5kZXRhY2goKTsKIAogICAgIFJlbmRlcldpZGdldDo6cmVz
dW1lV2lkZ2V0SGllcmFyY2h5VXBkYXRlcygpOwogfQpAQCAtMTE0MSw3ICsxMTQxLDggQEAgdm9p
ZCBFbGVtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAgICAgIGZvcmNl
Q2hlY2tPZkFueUVsZW1lbnRTaWJsaW5nID0gZm9yY2VDaGVja09mQW55RWxlbWVudFNpYmxpbmcg
fHwgKGNoaWxkUnVsZXNDaGFuZ2VkICYmIGhhc0luZGlyZWN0QWRqYWNlbnRSdWxlcyk7CiAgICAg
fQogICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgbm90IGNhcmUgYWJvdXQgc2libGluZyBjb21iaW5h
dG9ycy4gV2lsbCBiZSBuZWNlc3NhcnkgaW4gWEJMMiB3b3JsZC4KLSAgICBpZiAoU2hhZG93Um9v
dCogc2hhZG93ID0gc2hhZG93Um9vdCgpKSB7CisgICAgaWYgKGhhc1NoYWRvd1Jvb3QoKSkgewor
ICAgICAgICBTaGFkb3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290TGlzdCgpLT55b3VuZ2VzdFNo
YWRvd1Jvb3QoKTsKICAgICAgICAgaWYgKGNoYW5nZSA+PSBJbmhlcml0IHx8IHNoYWRvdy0+Y2hp
bGROZWVkc1N0eWxlUmVjYWxjKCkgfHwgc2hhZG93LT5uZWVkc1N0eWxlUmVjYWxjKCkpIHsKICAg
ICAgICAgICAgIHBhcmVudFB1c2hlci5wdXNoKCk7CiAgICAgICAgICAgICBzaGFkb3ctPnJlY2Fs
Y1NoYWRvd1RyZWVTdHlsZShjaGFuZ2UpOwpAQCAtMTE3MCwxMiArMTE3MSwxNCBAQCBTaGFkb3dS
b290TGlzdCogRWxlbWVudDo6c2hhZG93Um9vdExpc3QoKSBjb25zdAogICAgIHJldHVybiAmcmFy
ZURhdGEoKS0+bV9zaGFkb3dSb290TGlzdDsKIH0KIAorI2lmIDAKIFNoYWRvd1Jvb3QqIEVsZW1l
bnQ6OnNoYWRvd1Jvb3QoKSBjb25zdAogewogICAgIGlmIChTaGFkb3dSb290TGlzdCogbGlzdCA9
IHNoYWRvd1Jvb3RMaXN0KCkpCiAgICAgICAgIHJldHVybiBsaXN0LT55b3VuZ2VzdFNoYWRvd1Jv
b3QoKTsKICAgICByZXR1cm4gMDsKIH0KKyNlbmRpZgogCiBzdGF0aWMgYm9vbCB2YWxpZGF0ZVNo
YWRvd1Jvb3QoRG9jdW1lbnQqIGRvY3VtZW50LCBTaGFkb3dSb290KiBzaGFkb3dSb290LCBFeGNl
cHRpb25Db2RlJiBlYykKIHsKQEAgLTEyMTksOCArMTIyMiw4IEBAIHZvaWQgRWxlbWVudDo6c2V0
U2hhZG93Um9vdChQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IHNoYWRvd1Jvb3QsIEV4Y2VwdGlvbkNv
ZGUmIGVjCiAKIFNoYWRvd1Jvb3QqIEVsZW1lbnQ6OmVuc3VyZVNoYWRvd1Jvb3QoKQogewotICAg
IGlmIChTaGFkb3dSb290KiBleGlzdGluZ1Jvb3QgPSBzaGFkb3dSb290KCkpCi0gICAgICAgIHJl
dHVybiBleGlzdGluZ1Jvb3Q7CisgICAgaWYgKGhhc1NoYWRvd1Jvb3QoKSkKKyAgICAgICAgcmV0
dXJuIHNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKIAogICAgIHJldHVybiBT
aGFkb3dSb290OjpjcmVhdGUodGhpcywgU2hhZG93Um9vdDo6Q3JlYXRpbmdVc2VyQWdlbnRTaGFk
b3dSb290KS5nZXQoKTsKIH0KQEAgLTEzODIsOCArMTM4NSw4IEBAIHZvaWQgRWxlbWVudDo6Y2hp
bGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyLCBOb2RlKiBiZWZvcmVDaGFuZ2UsIE5v
ZGUqIGFmCiAgICAgICAgIGNoZWNrRm9yU2libGluZ1N0eWxlQ2hhbmdlcyh0aGlzLCByZW5kZXJT
dHlsZSgpLCBmYWxzZSwgYmVmb3JlQ2hhbmdlLCBhZnRlckNoYW5nZSwgY2hpbGRDb3VudERlbHRh
KTsKIAogICAgIGlmIChoYXNSYXJlRGF0YSgpKSB7Ci0gICAgICAgIGlmIChTaGFkb3dSb290KiBy
b290ID0gc2hhZG93Um9vdCgpKQotICAgICAgICAgICAgcm9vdC0+aG9zdENoaWxkcmVuQ2hhbmdl
ZCgpOworICAgICAgICBpZiAoU2hhZG93Um9vdExpc3QqIGxpc3QgPSBzaGFkb3dSb290TGlzdCgp
KQorICAgICAgICAgICAgbGlzdC0+aG9zdENoaWxkcmVuQ2hhbmdlZCgpOwogICAgIH0KIH0KIApA
QCAtMTU4MCw3ICsxNTgzLDcgQEAgdm9pZCBFbGVtZW50Ojpmb2N1cyhib29sIHJlc3RvcmVQcmV2
aW91c1NlbGVjdGlvbikKICAgICAgICAgLy8gSWYgYSBmb2N1cyBldmVudCBoYW5kbGVyIGNoYW5n
ZXMgdGhlIGZvY3VzIHRvIGEgZGlmZmVyZW50IG5vZGUgaXQKICAgICAgICAgLy8gZG9lcyBub3Qg
bWFrZSBzZW5zZSB0byBjb250aW51ZSBhbmQgdXBkYXRlIGFwcGVhcmVuY2UuCiAgICAgICAgIHBy
b3RlY3QgPSB0aGlzOwotICAgICAgICBpZiAoc2hhZG93Um9vdCgpICYmIHBhZ2UtPmZvY3VzQ29u
dHJvbGxlcigpLT50cmFuc2ZlckZvY3VzVG9FbGVtZW50SW5TaGFkb3dSb290KHRoaXMsIHJlc3Rv
cmVQcmV2aW91c1NlbGVjdGlvbikpCisgICAgICAgIGlmIChoYXNTaGFkb3dSb290KCkgJiYgcGFn
ZS0+Zm9jdXNDb250cm9sbGVyKCktPnRyYW5zZmVyRm9jdXNUb0VsZW1lbnRJblNoYWRvd1Jvb3Qo
dGhpcywgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uKSkKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgaWYgKCFwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+c2V0Rm9jdXNlZE5vZGUodGhpcywg
ZG9jLT5mcmFtZSgpKSkKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4
IGU5ZTRkOGI4OTM4YTQzNWUzOTBmNWJjMWE0ZWI4MzYwNGJlZjRlY2UuLmRkMjcwMjk1MjU3NzIy
OGFjY2Y4NGM4ZTcxYmY1M2U2YjE2ODlmYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMjU4LDcg
KzI1OCw2IEBAIHB1YmxpYzoKIAogICAgIC8vIEZJWE1FOiBUaGVzZSBBUEkgd2lsbCBiZSBtb3Zl
ZCB0byBTaGFkb3dSb290TGlzdC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzgzMTMKLSAgICBTaGFkb3dSb290KiBzaGFkb3dSb290KCkgY29uc3Q7CiAg
ICAgdm9pZCBzZXRTaGFkb3dSb290KFBhc3NSZWZQdHI8U2hhZG93Um9vdD4sIEV4Y2VwdGlvbkNv
ZGUmKTsKICAgICBTaGFkb3dSb290KiBlbnN1cmVTaGFkb3dSb290KCk7CiAgICAgdm9pZCByZW1v
dmVTaGFkb3dSb290KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNw
YXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwCmluZGV4
IDc1NzM4MzJiYTMzNTBkMGZjYjMzZjEzMmQ3OTliZTYyYzdiMWFiMTcuLjNlZTUyODViY2ExMmU0
NGQ0NTFhMmYyY2FkMTliZmJlNzQ3MTBmMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3Bh
dGNoZXIuY3BwCkBAIC0xMjcsNyArMTI3LDcgQEAgc3RhdGljIGlubGluZSBib29sIGlzU2hhZG93
Um9vdE9yU1ZHU2hhZG93Um9vdChjb25zdCBOb2RlKiBub2RlKQogCiBzdGF0aWMgaW5saW5lIGJv
b2wgaXNTaGFkb3dIb3N0KE5vZGUqIG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGUtPmlzRWxlbWVu
dE5vZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPnNoYWRvd1Jvb3QoKTsKKyAgICByZXR1cm4gbm9k
ZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+aGFzU2hhZG93Um9vdCgpOwog
fQogCiBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0PiBFdmVudERpc3BhdGNoZXI6OmFkanVzdFRvU2hh
ZG93Qm91bmRhcmllcyhQYXNzUmVmUHRyPE5vZGU+IHJlbGF0ZWRUYXJnZXQsIGNvbnN0IFZlY3Rv
cjxOb2RlKj4gcmVsYXRlZFRhcmdldEFuY2VzdG9ycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCBkOTQ1
OTNiMjc2OTBhYjM0YTlmYzVlMWY3MTcyMDc0MGFhYzUxZGRmLi44MWRlZGY3N2ViODkzYjVlNDU1
MzI2Y2I2NjUyMWM2ODk5ODk0NTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC04Niw2ICs4Niw3IEBA
CiAjaW5jbHVkZSAiU2NvcGVkRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIlNlbGVjdG9yUXVlcnku
aCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIK
ICNpbmNsdWRlICJTdGF0aWNOb2RlTGlzdC5oIgogI2luY2x1ZGUgIlN0b3JhZ2VFdmVudC5oIgog
I2luY2x1ZGUgIlRhZ05vZGVMaXN0LmgiCkBAIC04MDksNyArODEwLDcgQEAgYm9vbCBOb2RlOjpo
YXNOb25FbXB0eUJvdW5kaW5nQm94KCkgY29uc3QKIAogaW5saW5lIHN0YXRpYyBTaGFkb3dSb290
KiBzaGFkb3dSb290KE5vZGUqIG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGUtPmlzRWxlbWVudE5v
ZGUoKSA/IHRvRWxlbWVudChub2RlKS0+c2hhZG93Um9vdCgpIDogMDsKKyAgICByZXR1cm4gbm9k
ZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+aGFzU2hhZG93Um9vdCgpID8g
dG9FbGVtZW50KG5vZGUpLT5zaGFkb3dSb290TGlzdCgpLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKSA6
IDA7CiB9CiAKIGlubGluZSB2b2lkIE5vZGU6OnNldFN0eWxlQ2hhbmdlKFN0eWxlQ2hhbmdlVHlw
ZSBjaGFuZ2VUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJp
bmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5j
cHAKaW5kZXggNmZhOTg4YTdkZDgyOWNjMWVhOGZjZjFmZmI4YTIzZmUyYWE4YzcyZi4uNDEzZTgz
Nzc3ODVjZWRmY2M3N2MzNWI0MmNhNzAwZWQwNTQzNTE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAi
UmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNoYWRv
d1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogCiAjaWYgRU5BQkxFKFNWRykK
ICNpbmNsdWRlICJTVkdOYW1lcy5oIgpAQCAtNjUsNyArNjYsOCBAQCBOb2RlUmVuZGVyaW5nQ29u
dGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQoTm9kZSogbm9kZSkKICAgICBtX2xvY2F0aW9uID0g
TG9jYXRpb25MaWdodENoaWxkOwogCiAgICAgaWYgKHBhcmVudC0+aXNFbGVtZW50Tm9kZSgpKSB7
Ci0gICAgICAgIG1fdmlzdWFsUGFyZW50U2hhZG93Um9vdCA9IHRvRWxlbWVudChwYXJlbnQpLT5z
aGFkb3dSb290KCk7CisgICAgICAgIGlmICh0b0VsZW1lbnQocGFyZW50KS0+aGFzU2hhZG93Um9v
dCgpKQorICAgICAgICAgICAgbV92aXN1YWxQYXJlbnRTaGFkb3dSb290ID0gdG9FbGVtZW50KHBh
cmVudCktPnNoYWRvd1Jvb3RMaXN0KCktPnlvdW5nZXN0U2hhZG93Um9vdCgpOwogCiAgICAgICAg
IGlmIChtX3Zpc3VhbFBhcmVudFNoYWRvd1Jvb3QpIHsKICAgICAgICAgICAgIGlmICgobV9pbnNl
cnRpb25Qb2ludCA9IG1fdmlzdWFsUGFyZW50U2hhZG93Um9vdC0+aW5zZXJ0aW9uUG9pbnRGb3Io
bV9ub2RlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCA3MmUxZWY3NWFjMGVkM2Zk
ZmI5NjQ3ZjU0ZGY1OTFhYzIyZjNmZGQ5Li4xNTYzOWI3YmEwMThiZTNmMDE0Y2QyZjZlNDlkY2Rk
YTdmZGU5YjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC05Nyw3ICs5Nyw3IEBA
IFBhc3NSZWZQdHI8U2hhZG93Um9vdD4gU2hhZG93Um9vdDo6Y3JlYXRlKEVsZW1lbnQqIGVsZW1l
bnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogCiBQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IFNoYWRvd1Jv
b3Q6OmNyZWF0ZShFbGVtZW50KiBlbGVtZW50LCBTaGFkb3dSb290Q3JlYXRpb25QdXJwb3NlIHB1
cnBvc2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGlmICghZWxlbWVudCB8fCBlbGVtZW50
LT5zaGFkb3dSb290KCkpIHsKKyAgICBpZiAoIWVsZW1lbnQgfHwgZWxlbWVudC0+aGFzU2hhZG93
Um9vdCgpKSB7CiAgICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogICAgICAgICBy
ZXR1cm4gMDsKICAgICB9CkBAIC0xMDksNyArMTA5LDcgQEAgUGFzc1JlZlB0cjxTaGFkb3dSb290
PiBTaGFkb3dSb290OjpjcmVhdGUoRWxlbWVudCogZWxlbWVudCwgU2hhZG93Um9vdENyZWF0aW9u
UHUKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgQVNTRVJUKHB1cnBvc2UgIT0gQ3Jl
YXRpbmdVc2VyQWdlbnRTaGFkb3dSb290IHx8ICFlbGVtZW50LT5zaGFkb3dSb290KCkpOworICAg
IEFTU0VSVChwdXJwb3NlICE9IENyZWF0aW5nVXNlckFnZW50U2hhZG93Um9vdCB8fCAhZWxlbWVu
dC0+aGFzU2hhZG93Um9vdCgpKTsKICAgICBSZWZQdHI8U2hhZG93Um9vdD4gc2hhZG93Um9vdCA9
IGNyZWF0ZShlbGVtZW50LT5kb2N1bWVudCgpKTsKIAogICAgIGVjID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdExpc3QuY3BwCmluZGV4IDg4ZTBmYjVmMTM3MDlhMDg3YTJjNDVmMjUwNjc2
NDQ2YTQ0MzMxZjAuLjU3MGI3ZGM3MWU3NjYwMGViYTVkMTMxYzBiOGUxZWNjZDg1OWIwZTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmNwcApAQCAtNTksNCArNTksNDYgQEAgU2hh
ZG93Um9vdCogU2hhZG93Um9vdExpc3Q6OnBvcFNoYWRvd1Jvb3QoKQogICAgIHJldHVybiBtX3No
YWRvd1Jvb3RzLnJlbW92ZUhlYWQoKTsKIH0KIAordm9pZCBTaGFkb3dSb290TGlzdDo6aW5zZXJ0
ZWRJbnRvRG9jdW1lbnQoKQoreworICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0
U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCisgICAg
ICAgIHJvb3QtPmluc2VydGVkSW50b0RvY3VtZW50KCk7Cit9CisKK3ZvaWQgU2hhZG93Um9vdExp
c3Q6OnJlbW92ZWRGcm9tRG9jdW1lbnQoKQoreworICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9
IHlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290
KCkpCisgICAgICAgIHJvb3QtPnJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKK30KKwordm9pZCBTaGFk
b3dSb290TGlzdDo6aW5zZXJ0ZWRJbnRvVHJlZShib29sIGRlZXApCit7CisgICAgZm9yIChTaGFk
b3dSb290KiByb290ID0geW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5v
bGRlclNoYWRvd1Jvb3QoKSkKKyAgICAgICAgcm9vdC0+aW5zZXJ0ZWRJbnRvVHJlZShkZWVwKTsK
K30KKwordm9pZCBTaGFkb3dSb290TGlzdDo6cmVtb3ZlZEZyb21UcmVlKGJvb2wgZGVlcCkKK3sK
KyAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB5b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsg
cm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQorICAgICAgICByb290LT5yZW1vdmVkRnJv
bVRyZWUoZGVlcCk7Cit9CisKK3ZvaWQgU2hhZG93Um9vdExpc3Q6Omhvc3RDaGlsZHJlbkNoYW5n
ZWQoKQoreworICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hhZG93Um9vdCgp
OyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCisgICAgICAgIHJvb3QtPmhv
c3RDaGlsZHJlbkNoYW5nZWQoKTsKK30KKwordm9pZCBTaGFkb3dSb290TGlzdDo6YXR0YWNoKCkK
K3sKKyAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB5b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9v
dDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQorICAgICAgICByb290LT5hdHRhY2go
KTsKK30KKwordm9pZCBTaGFkb3dSb290TGlzdDo6ZGV0YWNoKCkKK3sKKyAgICBmb3IgKFNoYWRv
d1Jvb3QqIHJvb3QgPSB5b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9s
ZGVyU2hhZG93Um9vdCgpKQorICAgICAgICByb290LT5kZXRhY2goKTsKK30KKwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdExpc3QuaAppbmRleCAwNTViY2FhNTFjOGI5MTk4ZmM0NWRkNzM5Mzdj
Mjg4NTY1OWVhMDMzLi5jN2ZjOThjYWE4YTIwYjQ0ZDU0YzgzN2FiNzg0ZThjZWZjNDVkMDA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuaApAQCAtNDgsNiArNDgsMTYgQEAgcHVibGlj
OgogICAgIHZvaWQgcHVzaFNoYWRvd1Jvb3QoU2hhZG93Um9vdCopOwogICAgIFNoYWRvd1Jvb3Qq
IHBvcFNoYWRvd1Jvb3QoKTsKIAorICAgIHZvaWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKKyAg
ICB2b2lkIHJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKKyAgICB2b2lkIGluc2VydGVkSW50b1RyZWUo
Ym9vbCBkZWVwKTsKKyAgICB2b2lkIHJlbW92ZWRGcm9tVHJlZShib29sIGRlZXApOworCisgICAg
dm9pZCBob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7CisKKyAgICB2b2lkIGF0dGFjaCgpOworICAgIHZv
aWQgZGV0YWNoKCk7CisKIHByaXZhdGU6CiAgICAgRG91Ymx5TGlua2VkTGlzdDxTaGFkb3dSb290
PiBtX3NoYWRvd1Jvb3RzOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNoYWRvd1Jvb3RMaXN0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcAppbmRleCAwMDMxN2UzMWEw
NGMyNmRkNTFkNjdhYTc0MGRjZjJmMDhlMTcyZDZhLi5lNzYyMDljYzgzMWYwYmRmYmFiOTc1NTU0
ODZjYzY1NjYyOGQ4NGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3Bl
QWRvcHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3Bw
CkBAIC0yOCwxMiArMjgsMTMgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIk5v
ZGVSYXJlRGF0YS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dS
b290TGlzdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBpbmxpbmUgU2hhZG93
Um9vdCogc2hhZG93Um9vdEZvcihOb2RlKiBub2RlKQogewotICAgIHJldHVybiBub2RlLT5pc0Vs
ZW1lbnROb2RlKCkgPyB0b0VsZW1lbnQobm9kZSktPnNoYWRvd1Jvb3QoKSA6IDA7CisgICAgcmV0
dXJuIG5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jv
b3QoKSA/IHRvRWxlbWVudChub2RlKS0+c2hhZG93Um9vdExpc3QoKS0+eW91bmdlc3RTaGFkb3dS
b290KCkgOiAwOwogfQogCiB2b2lkIFRyZWVTY29wZUFkb3B0ZXI6Om1vdmVUcmVlVG9OZXdTY29w
ZShOb2RlKiByb290KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5k
ZXggZGZiYmRmN2NkNzA0OGJjYmMzYWY1OGU3MDI5MTQ2NzRjNTRiZjlkNi4uNTc1OWY2NzQxNWNk
MzgyZTUwMGZiZTY1NThkMGMzNDM1N2Q5NzcwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1
dFR5cGUuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2wuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2hhZG93
Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0yNjUsMTUgKzI2NiwxNSBAQCBib29sIEZpbGVJbnB1
dFR5cGU6OmlzRmlsZVVwbG9hZCgpIGNvbnN0CiAKIHZvaWQgRmlsZUlucHV0VHlwZTo6Y3JlYXRl
U2hhZG93U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKTsK
KyAgICBBU1NFUlQoZWxlbWVudCgpLT5oYXNTaGFkb3dSb290KCkpOwogICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwotICAgIGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChlbGVt
ZW50KCktPm11bHRpcGxlKCkgPyBVcGxvYWRCdXR0b25FbGVtZW50OjpjcmVhdGVGb3JNdWx0aXBs
ZShlbGVtZW50KCktPmRvY3VtZW50KCkpOiBVcGxvYWRCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxl
bWVudCgpLT5kb2N1bWVudCgpKSwgZWMpOworICAgIGVsZW1lbnQoKS0+c2hhZG93Um9vdExpc3Qo
KS0+b2xkZXN0U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChlbGVtZW50KCktPm11bHRpcGxlKCkg
PyBVcGxvYWRCdXR0b25FbGVtZW50OjpjcmVhdGVGb3JNdWx0aXBsZShlbGVtZW50KCktPmRvY3Vt
ZW50KCkpOiBVcGxvYWRCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLT5kb2N1bWVudCgp
KSwgZWMpOwogfQogCiB2b2lkIEZpbGVJbnB1dFR5cGU6Om11bHRpcGxlQXR0cmlidXRlQ2hhbmdl
ZCgpCiB7Ci0gICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKTsKLSAgICBVcGxvYWRC
dXR0b25FbGVtZW50KiBidXR0b24gPSBzdGF0aWNfY2FzdDxVcGxvYWRCdXR0b25FbGVtZW50Kj4o
ZWxlbWVudCgpLT5zaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSk7CisgICAgQVNTRVJUKGVsZW1l
bnQoKS0+aGFzU2hhZG93Um9vdCgpKTsKKyAgICBVcGxvYWRCdXR0b25FbGVtZW50KiBidXR0b24g
PSBzdGF0aWNfY2FzdDxVcGxvYWRCdXR0b25FbGVtZW50Kj4oZWxlbWVudCgpLT5zaGFkb3dSb290
TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSk7CiAgICAgaWYgKGJ1dHRv
bikKICAgICAgICAgYnV0dG9uLT5zZXRWYWx1ZShlbGVtZW50KCktPm11bHRpcGxlKCkgPyBmaWxl
QnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCkgOiBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxh
YmVsKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCmlu
ZGV4IDAxNWNmNjFjZWI4MzM3Njk5OGI2OGViNmFiMDllZjU2MjY0NGFiNDMuLmFhMjY0YzIxMmE2
Y2M2MTM4MDI5NjNkMGVlNmYxYTlkOGE5ZGY3ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxEZXRhaWxzRWxlbWVudC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJNb3VzZUV2
ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyRGV0YWlscy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3Qu
aCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlRleHQuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtMTA4LDcgKzEwOSw3IEBAIFJlbmRlck9iamVjdCogSFRNTERl
dGFpbHNFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0
eWxlCiAKIHZvaWQgSFRNTERldGFpbHNFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsK
LSAgICBBU1NFUlQoIXNoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkp
OwogCiAgICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IHJvb3QgPSBTaGFkb3dSb290OjpjcmVhdGUodGhp
cywgU2hhZG93Um9vdDo6Q3JlYXRpbmdVc2VyQWdlbnRTaGFkb3dSb290KTsKICAgICByb290LT5h
cHBlbmRDaGlsZChEZXRhaWxzU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNT
RVJUX05PX0VYQ0VQVElPTiwgdHJ1ZSk7CkBAIC0xMjIsNyArMTIzLDcgQEAgRWxlbWVudCogSFRN
TERldGFpbHNFbGVtZW50OjpmaW5kTWFpblN1bW1hcnkoKSBjb25zdAogICAgICAgICAgICAgcmV0
dXJuIHRvRWxlbWVudChjaGlsZCk7CiAgICAgfQogCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PERl
dGFpbHNTdW1tYXJ5RWxlbWVudCo+KHNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpKS0+ZmFsbGJh
Y2tTdW1tYXJ5KCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERldGFpbHNTdW1tYXJ5RWxlbWVu
dCo+KHNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpKS0+
ZmFsbGJhY2tTdW1tYXJ5KCk7CiB9CiAKIHZvaWQgSFRNTERldGFpbHNFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcAppbmRleCBkMjk3NGYwMTI5M2JlNWYzYjNlNmYwNjc0YTk4NzY1YTQ4YWJlMjZjLi45
MWVlZDU1ZGFmYTM2Mjg1NTQ4MzY2ZWMzNWFlNTI5MTY3ZTIxNjIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBQYXNzUmVmUHRy
PEhUTUxJbnB1dEVsZW1lbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYQogCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRy
ZWUoKQogewotICAgIEFTU0VSVCghc2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoIWhhc1NoYWRv
d1Jvb3QoKSk7CiAgICAgU2hhZG93Um9vdDo6Y3JlYXRlKHRoaXMsIFNoYWRvd1Jvb3Q6OkNyZWF0
aW5nVXNlckFnZW50U2hhZG93Um9vdCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKICAgICBtX2lu
cHV0VHlwZS0+Y3JlYXRlU2hhZG93U3VidHJlZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxL
ZXlnZW5FbGVtZW50LmNwcAppbmRleCA4NTI1MjgxOWFhNThlNzBjMmQwMzcxNTA3MjVkMTdjNDg5
ODkwMTM1Li5lMTAwNzlmNjQ2NGU3OGY1ZWUwNzRkMTVmOGFiMTJmNmQ3NDMyYzIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcApAQCAtMzMsNiArMzMsNyBAQAog
I2luY2x1ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiU1NMS2V5R2VuZXJhdG9y
LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0Lmgi
CiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIApAQCAt
ODUsNyArODYsNyBAQCBpbmxpbmUgSFRNTEtleWdlbkVsZW1lbnQ6OkhUTUxLZXlnZW5FbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZQogICAgICAgICBvcHRpb24tPmFw
cGVuZENoaWxkKFRleHQ6OmNyZWF0ZShkb2N1bWVudCwga2V5c1tpXSksIGVjKTsKICAgICB9CiAK
LSAgICBBU1NFUlQoIXNoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkp
OwogICAgIFJlZlB0cjxTaGFkb3dSb290PiByb290ID0gU2hhZG93Um9vdDo6Y3JlYXRlKHRoaXMs
IFNoYWRvd1Jvb3Q6OkNyZWF0aW5nVXNlckFnZW50U2hhZG93Um9vdCk7CiAgICAgcm9vdC0+YXBw
ZW5kQ2hpbGQoc2VsZWN0LCBlYyk7CiB9CkBAIC0xMzAsOCArMTMxLDggQEAgdm9pZCBIVE1MS2V5
Z2VuRWxlbWVudDo6cmVzZXQoKQogCiBIVE1MU2VsZWN0RWxlbWVudCogSFRNTEtleWdlbkVsZW1l
bnQ6OnNoYWRvd1NlbGVjdCgpIGNvbnN0CiB7Ci0gICAgU2hhZG93Um9vdCogc2hhZG93ID0gc2hh
ZG93Um9vdCgpOwotICAgIEFTU0VSVChzaGFkb3cpOworICAgIEFTU0VSVChoYXNTaGFkb3dSb290
KCkpOworICAgIFNoYWRvd1Jvb3QqIHNoYWRvdyA9IHNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNo
YWRvd1Jvb3QoKTsKICAgICByZXR1cm4gc2hhZG93ID8gdG9IVE1MU2VsZWN0RWxlbWVudChzaGFk
b3ctPmZpcnN0Q2hpbGQoKSkgOiAwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcAppbmRleCBlNWZmYzA4NTYyZWM0MjU5MDQ1ZTE5YWJiMDlkNDg1ZjIyNzcyMjBi
Li42N2FkMWQ5YzUxZmNiOTBhYjNmMmFkMTBhMjI4OGJmYmE5ZGFkY2FkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTcxLDYgKzcxLDcgQEAKICNpbmNsdWRl
ICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSAiVGltZVJh
bmdlcy5oIgogI2luY2x1ZGUgIlVVSUQuaCIKICNpbmNsdWRlIDxsaW1pdHM+CkBAIC0zNTE5LDE1
ICszNTIwLDE1IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cHJpdmF0ZUJyb3dzaW5nU3RhdGVE
aWRDaGFuZ2UoKQogCiBNZWRpYUNvbnRyb2xzKiBIVE1MTWVkaWFFbGVtZW50OjptZWRpYUNvbnRy
b2xzKCkKIHsKLSAgICByZXR1cm4gdG9NZWRpYUNvbnRyb2xzKHNoYWRvd1Jvb3QoKS0+Zmlyc3RD
aGlsZCgpKTsKKyAgICByZXR1cm4gdG9NZWRpYUNvbnRyb2xzKHNoYWRvd1Jvb3RMaXN0KCktPm9s
ZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpKTsKIH0KIAogYm9vbCBIVE1MTWVkaWFFbGVt
ZW50OjpoYXNNZWRpYUNvbnRyb2xzKCkKIHsKLSAgICBpZiAoIXNoYWRvd1Jvb3QoKSkKKyAgICBp
ZiAoIWhhc1NoYWRvd1Jvb3QoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgTm9kZSog
bm9kZSA9IHNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpOworICAgIE5vZGUqIG5vZGUgPSBzaGFk
b3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsKICAgICByZXR1
cm4gbm9kZSAmJiBub2RlLT5pc01lZGlhQ29udHJvbHMoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKaW5kZXggYTFmZGFmNmM3MmQ0YjA2NTEyZTg0MjFkZTgw
MGU1MjBiY2FhN2E3OS4uN2M4Mzk5NDViYmI1NzExZmRmNDE4NWVjN2U3NjcwZTYzNjAxNjQzZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCkBAIC0yMzQsNyArMjM0
LDcgQEAgdm9pZCBIVE1MTWV0ZXJFbGVtZW50OjpkaWRFbGVtZW50U3RhdGVDaGFuZ2UoKQogCiB2
b2lkIEhUTUxNZXRlckVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VS
VCghc2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoIWhhc1NoYWRvd1Jvb3QoKSk7CiAKICAgICBS
ZWZQdHI8TWV0ZXJCYXJFbGVtZW50PiBiYXIgPSBNZXRlckJhckVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCgpKTsKICAgICBtX3ZhbHVlID0gTWV0ZXJWYWx1ZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCmluZGV4
IDBjMjM3MjU4MWY3OWFmZjRkYWM1NDhhMGJhN2U0NGM1NmFhOWI1ZjAuLmVkNjk1MGMzZjc5MjA1
Mzg1YjE5NDM5OTYxYjA3NmIxZmQwNTIzZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UHJvZ3Jlc3NFbGVtZW50LmNwcApAQCAtMTUzLDcgKzE1Myw3IEBAIHZvaWQgSFRNTFByb2dyZXNz
RWxlbWVudDo6ZGlkRWxlbWVudFN0YXRlQ2hhbmdlKCkKIAogdm9pZCBIVE1MUHJvZ3Jlc3NFbGVt
ZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKLSAgICBBU1NFUlQoIXNoYWRvd1Jvb3QoKSk7
CisgICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkpOwogCiAgICAgUmVmUHRyPFByb2dyZXNzQmFy
RWxlbWVudD4gYmFyID0gUHJvZ3Jlc3NCYXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAg
ICAgbV92YWx1ZSA9IFByb2dyZXNzVmFsdWVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAKaW5kZXggNmJjNmVhYzY2
MDU3MWY1NmU5NzUwYzc2Y2QxN2I5ZWQ2NTU5MGI4Ni4uZTI5NTdiMjFlY2VlZmU0NjkzYmY5ZGFj
NGE2YzdhMDNjMGVhMGYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3Vt
bWFyeUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVt
ZW50LmNwcApAQCAtMzEsOCArMzEsOCBAQAogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSZW5kZXJTdW1tYXJ5LmgiCi0K
ICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03NCw3ICs3NCw3IEBAIFJlbmRlck9iamVjdCogSFRN
TFN1bW1hcnlFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRl
clN0eWxlCiAKIHZvaWQgSFRNTFN1bW1hcnlFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkK
IHsKLSAgICBBU1NFUlQoIXNoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKCFoYXNTaGFkb3dSb290
KCkpOwogICAgIFJlZlB0cjxTaGFkb3dSb290PiByb290ID0gU2hhZG93Um9vdDo6Y3JlYXRlKHRo
aXMsIFNoYWRvd1Jvb3Q6OkNyZWF0aW5nVXNlckFnZW50U2hhZG93Um9vdCk7CiAgICAgcm9vdC0+
YXBwZW5kQ2hpbGQoRGV0YWlsc01hcmtlckNvbnRyb2w6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNT
RVJUX05PX0VYQ0VQVElPTiwgdHJ1ZSk7CiAgICAgcm9vdC0+YXBwZW5kQ2hpbGQoU3VtbWFyeUNv
bnRlbnRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04sIHRy
dWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKaW5kZXgg
MTNjYjNlYzM4NmRhOWVlN2RiOGM2OTg0OWQ0NzQzNGFjZWM2NGUxZC4uNTljZTgwZTI5ZTgxMGFk
NDA4YzE1ODJiMTdkZTUyMGZhNjViMWI5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaCIKICNpbmNsdWRlICJT
aGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJUZXh0
LmgiCiAjaW5jbHVkZSAiVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgiCiAjaW5jbHVkZSAiVGV4
dEl0ZXJhdG9yLmgiCkBAIC04NCw3ICs4NSw3IEBAIFBhc3NSZWZQdHI8SFRNTFRleHRBcmVhRWxl
bWVudD4gSFRNTFRleHRBcmVhRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmCiAK
IHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0gICAg
QVNTRVJUKCFzaGFkb3dSb290KCkpOworICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsKICAg
ICBSZWZQdHI8U2hhZG93Um9vdD4gcm9vdCA9IFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFk
b3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QpOwogICAgIHJvb3QtPmFwcGVuZENo
aWxkKFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKIH0KQEAgLTI5Myw3ICsyOTQsNyBAQCBTdHJpbmcgSFRNTFRleHRB
cmVhRWxlbWVudDo6c2FuaXRpemVVc2VySW5wdXRWYWx1ZShjb25zdCBTdHJpbmcmIHByb3Bvc2Vk
VmFsdWUsCiAKIEhUTUxFbGVtZW50KiBIVE1MVGV4dEFyZWFFbGVtZW50Ojppbm5lclRleHRFbGVt
ZW50KCkgY29uc3QKIHsKLSAgICBOb2RlKiBub2RlID0gc2hhZG93Um9vdCgpLT5maXJzdENoaWxk
KCk7CisgICAgTm9kZSogbm9kZSA9IHNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3Qo
KS0+Zmlyc3RDaGlsZCgpOwogICAgIEFTU0VSVCghbm9kZSB8fCBub2RlLT5oYXNUYWdOYW1lKGRp
dlRhZykpOwogICAgIHJldHVybiB0b0hUTUxFbGVtZW50KG5vZGUpOwogfQpAQCAtNDcwLDcgKzQ3
MSw3IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkK
ICAgICBTdHJpbmcgcGxhY2Vob2xkZXJUZXh0ID0gc3RyaXBwZWRQbGFjZWhvbGRlcigpOwogICAg
IGlmIChwbGFjZWhvbGRlclRleHQuaXNFbXB0eSgpKSB7CiAgICAgICAgIGlmIChtX3BsYWNlaG9s
ZGVyKSB7Ci0gICAgICAgICAgICBzaGFkb3dSb290KCktPnJlbW92ZUNoaWxkKG1fcGxhY2Vob2xk
ZXIuZ2V0KCksIGVjKTsKKyAgICAgICAgICAgIHNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRv
d1Jvb3QoKS0+cmVtb3ZlQ2hpbGQobV9wbGFjZWhvbGRlci5nZXQoKSwgZWMpOwogICAgICAgICAg
ICAgQVNTRVJUKCFlYyk7CiAgICAgICAgICAgICBtX3BsYWNlaG9sZGVyLmNsZWFyKCk7CiAgICAg
ICAgIH0KQEAgLTQ3OSw3ICs0ODAsNyBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnVwZGF0
ZVBsYWNlaG9sZGVyVGV4dCgpCiAgICAgaWYgKCFtX3BsYWNlaG9sZGVyKSB7CiAgICAgICAgIG1f
cGxhY2Vob2xkZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwogICAgICAg
ICBtX3BsYWNlaG9sZGVyLT5zZXRTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC1pbnB1dC1wbGFjZWhv
bGRlciIpOwotICAgICAgICBzaGFkb3dSb290KCktPmluc2VydEJlZm9yZShtX3BsYWNlaG9sZGVy
LCBzaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKS0+bmV4dFNpYmxpbmcoKSwgZWMpOworICAgICAg
ICBzaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCktPmluc2VydEJlZm9yZShtX3Bs
YWNlaG9sZGVyLCBzaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hp
bGQoKS0+bmV4dFNpYmxpbmcoKSwgZWMpOwogICAgICAgICBBU1NFUlQoIWVjKTsKICAgICB9CiAg
ICAgbV9wbGFjZWhvbGRlci0+c2V0SW5uZXJUZXh0KHBsYWNlaG9sZGVyVGV4dCwgZWMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuY3BwCmluZGV4IDgwMGMyMWNmZjg5MjljMDdiM2U2OWRkZDIwMGUw
MDg0MzAyOTU1NjcuLjE1MmVmNzRlM2U5NjY2MzAyZmE4NGRhMjRkOTgyNWU3ZDAxMTdkM2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJS
ZXNldElucHV0VHlwZS5oIgogI2luY2x1ZGUgIlNlYXJjaElucHV0VHlwZS5oIgogI2luY2x1ZGUg
IlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlN1
Ym1pdElucHV0VHlwZS5oIgogI2luY2x1ZGUgIlRlbGVwaG9uZUlucHV0VHlwZS5oIgogI2luY2x1
ZGUgIlRleHRJbnB1dFR5cGUuaCIKQEAgLTM3OCw4ICszNzksMTMgQEAgdm9pZCBJbnB1dFR5cGU6
OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogCiB2b2lkIElucHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1
YnRyZWUoKQogewotICAgIGlmIChTaGFkb3dSb290KiByb290ID0gZWxlbWVudCgpLT5zaGFkb3dS
b290KCkpCi0gICAgICAgIHJvb3QtPnJlbW92ZUFsbENoaWxkcmVuKCk7CisgICAgaWYgKCFlbGVt
ZW50KCktPmhhc1NoYWRvd1Jvb3QoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKFNoYWRv
d1Jvb3QqIHJvb3QgPSBlbGVtZW50KCktPnNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jv
b3QoKSkgeworICAgICAgICB3aGlsZSAocm9vdC0+aGFzQ2hpbGROb2RlcygpKQorICAgICAgICAg
ICAgcm9vdC0+cmVtb3ZlQ2hpbGQocm9vdC0+Zmlyc3RDaGlsZCgpKTsKKyAgICB9CiB9CiAKIGRv
dWJsZSBJbnB1dFR5cGU6OnBhcnNlVG9Eb3VibGUoY29uc3QgU3RyaW5nJiwgZG91YmxlIGRlZmF1
bHRWYWx1ZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1
dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKaW5kZXgg
MTQ3NDE4NTYyYjZiMmRmMGVkNzU5YzQwYjViNmU1ZWI0MWRlMzZjOS4uYTE3NGNlN2FmMzFlOTcz
ZTc0ZDRjMjk4NmUwNGRhZmRhMjU2ODg4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9SYW5nZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0
VHlwZS5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQu
aCIKICNpbmNsdWRlICJSZW5kZXJTbGlkZXIuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisj
aW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJTbGlkZXJUaHVtYkVsZW1lbnQu
aCIKICNpbmNsdWRlICJTdGVwUmFuZ2UuaCIKICNpbmNsdWRlIDxsaW1pdHM+CkBAIC0xNTcsNyAr
MTU4LDEwIEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmhhbmRsZU1vdXNlRG93bkV2ZW50KE1vdXNl
RXZlbnQqIGV2ZW50KQogICAgICAgICByZXR1cm47CiAKICAgICBOb2RlKiB0YXJnZXROb2RlID0g
ZXZlbnQtPnRhcmdldCgpLT50b05vZGUoKTsKLSAgICBpZiAoZXZlbnQtPmJ1dHRvbigpICE9IExl
ZnRCdXR0b24gfHwgIXRhcmdldE5vZGUgfHwgKHRhcmdldE5vZGUgIT0gZWxlbWVudCgpICYmICF0
YXJnZXROb2RlLT5pc0Rlc2NlbmRhbnRPZihlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSkpKQorICAg
IGlmIChldmVudC0+YnV0dG9uKCkgIT0gTGVmdEJ1dHRvbiB8fCAhdGFyZ2V0Tm9kZSkKKyAgICAg
ICAgcmV0dXJuOworICAgIEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7CisgICAg
aWYgKHRhcmdldE5vZGUgIT0gZWxlbWVudCgpICYmICF0YXJnZXROb2RlLT5pc0Rlc2NlbmRhbnRP
ZihlbGVtZW50KCktPnNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKSkpCiAgICAg
ICAgIHJldHVybjsKICAgICBTbGlkZXJUaHVtYkVsZW1lbnQqIHRodW1iID0gc2xpZGVyVGh1bWJF
bGVtZW50T2YoZWxlbWVudCgpKTsKICAgICBpZiAodGFyZ2V0Tm9kZSA9PSB0aHVtYikKQEAgLTIz
Myw3ICsyMzcsNyBAQCB2b2lkIFJhbmdlSW5wdXRUeXBlOjpoYW5kbGVLZXlkb3duRXZlbnQoS2V5
Ym9hcmRFdmVudCogZXZlbnQpCiAKIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1
YnRyZWUoKQogewotICAgIEFTU0VSVChlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7CisgICAgQVNT
RVJUKGVsZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKTsKIAogICAgIERvY3VtZW50KiBkb2N1bWVu
dCA9IGVsZW1lbnQoKS0+ZG9jdW1lbnQoKTsKICAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHRy
YWNrID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CkBAIC0yNDMsNyArMjQ3LDcg
QEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgUmVmUHRy
PEhUTUxFbGVtZW50PiBjb250YWluZXIgPSBTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOwogICAgIGNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodHJhY2sucmVsZWFzZSgpLCBl
Yyk7CiAgICAgY29udGFpbmVyLT5hcHBlbmRDaGlsZChUcmFja0xpbWl0ZXJFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpLCBlYyk7Ci0gICAgZWxlbWVudCgpLT5zaGFkb3dSb290KCktPmFwcGVuZENo
aWxkKGNvbnRhaW5lci5yZWxlYXNlKCksIGVjKTsKKyAgICBlbGVtZW50KCktPnNoYWRvd1Jvb3RM
aXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoY29udGFpbmVyLnJlbGVhc2Uo
KSwgZWMpOwogfQogCiBSZW5kZXJPYmplY3QqIFJhbmdlSW5wdXRUeXBlOjpjcmVhdGVSZW5kZXJl
cihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRleCA1NmU1NWQzODhlMzc3OGY2ZDUzOTYy
MWIyMThiMmJmOTRmYzM3NTk0Li5hOGMwOTQ2ZTVjY2EyZWVmOWVhNTAwMGQyYjZkMmU4ZjY5ZDlh
NDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBAIC00
Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgiCiAj
aW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVk
ZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJUZXh0Q29udHJvbElubmVyRWxlbWVudHMu
aCIKICNpbmNsdWRlICJUZXh0RXZlbnQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKQEAg
LTE4OSw3ICsxOTAsNyBAQCBib29sIFRleHRGaWVsZElucHV0VHlwZTo6bmVlZHNDb250YWluZXIo
KSBjb25zdAogCiB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgp
CiB7Ci0gICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoZWxl
bWVudCgpLT5oYXNTaGFkb3dSb290KCkpOwogCiAgICAgQVNTRVJUKCFtX2lubmVyVGV4dCk7CiAg
ICAgQVNTRVJUKCFtX2lubmVyQmxvY2spOwpAQCAtMjAzLDExICsyMDQsMTEgQEAgdm9pZCBUZXh0
RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOwogICAgIG1faW5uZXJUZXh0ID0gVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQpOwogICAgIGlmICghY3JlYXRlc0NvbnRhaW5lcikgewotICAgICAgICBl
bGVtZW50KCktPnNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQobV9pbm5lclRleHQsIGVjKTsKKyAg
ICAgICAgZWxlbWVudCgpLT5zaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCktPmFw
cGVuZENoaWxkKG1faW5uZXJUZXh0LCBlYyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBTaGFkb3dSb290KiBzaGFkb3dSb290ID0gZWxlbWVudCgpLT5zaGFkb3dSb290KCk7CisgICAg
U2hhZG93Um9vdCogc2hhZG93Um9vdCA9IGVsZW1lbnQoKS0+c2hhZG93Um9vdExpc3QoKS0+b2xk
ZXN0U2hhZG93Um9vdCgpOwogICAgIG1fY29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCk7CiAgICAgbV9jb250YWluZXItPnNldFNoYWRvd1BzZXVkb0lkKCItd2Via2l0
LXRleHRmaWVsZC1kZWNvcmF0aW9uLWNvbnRhaW5lciIpOwogICAgIHNoYWRvd1Jvb3QtPmFwcGVu
ZENoaWxkKG1fY29udGFpbmVyLCBlYyk7CkBAIC0zNjksNyArMzcwLDcgQEAgdm9pZCBUZXh0Rmll
bGRJbnB1dFR5cGU6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpCiAgICAgaWYgKCFtX3BsYWNlaG9s
ZGVyKSB7CiAgICAgICAgIG1fcGxhY2Vob2xkZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGVs
ZW1lbnQoKS0+ZG9jdW1lbnQoKSk7CiAgICAgICAgIG1fcGxhY2Vob2xkZXItPnNldFNoYWRvd1Bz
ZXVkb0lkKCItd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIik7Ci0gICAgICAgIGVsZW1lbnQoKS0+
c2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUobV9wbGFjZWhvbGRlciwgbV9jb250YWluZXIgPyBt
X2NvbnRhaW5lci0+bmV4dFNpYmxpbmcoKSA6IGlubmVyVGV4dEVsZW1lbnQoKS0+bmV4dFNpYmxp
bmcoKSwgZWMpOworICAgICAgICBlbGVtZW50KCktPnNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNo
YWRvd1Jvb3QoKS0+aW5zZXJ0QmVmb3JlKG1fcGxhY2Vob2xkZXIsIG1fY29udGFpbmVyID8gbV9j
b250YWluZXItPm5leHRTaWJsaW5nKCkgOiBpbm5lclRleHRFbGVtZW50KCktPm5leHRTaWJsaW5n
KCksIGVjKTsKICAgICAgICAgQVNTRVJUKCFlYyk7CiAgICAgfQogICAgIG1fcGxhY2Vob2xkZXIt
PnNldElubmVyVGV4dChwbGFjZWhvbGRlclRleHQsIGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9W
YWxpZGF0aW9uTWVzc2FnZS5jcHAKaW5kZXggYmMzYzQ1NDg5ZGZiODYyYTE0YmI0ZTUzMGU3MDRi
OWE4Y2RjNjY4Yy4uYmI4YTE5NWI4NGMyYmUwZjEwMmJlY2EzNzNlYzY1ZGZhOTFiM2ZjYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKQEAgLTQ0LDYgKzQ0LDcg
QEAKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2lu
Y2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1
ZGUgIlRleHQuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCkBAIC0xODcsNyArMTg4
LDcgQEAgdm9pZCBWYWxpZGF0aW9uTWVzc2FnZTo6ZGVsZXRlQnViYmxlVHJlZShUaW1lcjxWYWxp
ZGF0aW9uTWVzc2FnZT4qKQogICAgICAgICBtX21lc3NhZ2VCb2R5ID0gMDsKICAgICAgICAgSFRN
TEVsZW1lbnQqIGhvc3QgPSB0b0hUTUxFbGVtZW50KG1fZWxlbWVudCk7CiAgICAgICAgIEV4Y2Vw
dGlvbkNvZGUgZWM7Ci0gICAgICAgIGhvc3QtPnNoYWRvd1Jvb3QoKS0+cmVtb3ZlQ2hpbGQobV9i
dWJibGUuZ2V0KCksIGVjKTsKKyAgICAgICAgaG9zdC0+c2hhZG93Um9vdExpc3QoKS0+b2xkZXN0
U2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZChtX2J1YmJsZS5nZXQoKSwgZWMpOwogICAgICAgICBt
X2J1YmJsZSA9IDA7CiAgICAgfQogICAgIG1fbWVzc2FnZSA9IFN0cmluZygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKaW5kZXggMzE5
YTExZTgwMjUyZmFjMjg2YmU4NDBkMmJmNzYzNTQwZjU4ZWViNy4uYWJmNWIzNThiNTU0OTlkZWJi
OTFlNTcyNzM5MGI0MDk4ZDMzN2U3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAi
UmVuZGVyU2xpZGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJTaGFk
b3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJTdGVwUmFu
Z2UuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCkBAIC02Niw3ICs2Nyw3IEBAIGlu
bGluZSBzdGF0aWMgYm9vbCBoYXNWZXJ0aWNhbEFwcGVhcmFuY2UoSFRNTElucHV0RWxlbWVudCog
aW5wdXQpCiBTbGlkZXJUaHVtYkVsZW1lbnQqIHNsaWRlclRodW1iRWxlbWVudE9mKE5vZGUqIG5v
ZGUpCiB7CiAgICAgQVNTRVJUKG5vZGUpOwotICAgIFNoYWRvd1Jvb3QqIHNoYWRvdyA9IG5vZGUt
PnRvSW5wdXRFbGVtZW50KCktPnNoYWRvd1Jvb3QoKTsKKyAgICBTaGFkb3dSb290KiBzaGFkb3cg
PSBub2RlLT50b0lucHV0RWxlbWVudCgpLT5zaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dS
b290KCk7CiAgICAgQVNTRVJUKHNoYWRvdyk7CiAgICAgTm9kZSogdGh1bWIgPSBzaGFkb3ctPmZp
cnN0Q2hpbGQoKS0+Zmlyc3RDaGlsZCgpLT5maXJzdENoaWxkKCk7CiAgICAgQVNTRVJUKHRodW1i
KTsKQEAgLTE0MSw3ICsxNDIsNyBAQCB2b2lkIFJlbmRlclNsaWRlckNvbnRhaW5lcjo6bGF5b3V0
KCkKICAgICBMZW5ndGggaW5wdXRIZWlnaHQgPSBpbnB1dC0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+
aGVpZ2h0KCk7CiAgICAgUmVuZGVyT2JqZWN0KiB0cmFja1JlbmRlcmVyID0gbm9kZSgpLT5maXJz
dENoaWxkKCktPnJlbmRlcmVyKCk7CiAgICAgaWYgKCFpc1ZlcnRpY2FsICYmIGlucHV0LT5yZW5k
ZXJlcigpLT5pc1NsaWRlcigpICYmICFpbnB1dEhlaWdodC5pc0ZpeGVkKCkgJiYgIWlucHV0SGVp
Z2h0LmlzUGVyY2VudCgpKSB7Ci0gICAgICAgIFJlbmRlck9iamVjdCogdGh1bWJSZW5kZXJlciA9
IGlucHV0LT5zaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKS0+Zmlyc3RDaGlsZCgpLT5maXJzdENo
aWxkKCktPnJlbmRlcmVyKCk7CisgICAgICAgIFJlbmRlck9iamVjdCogdGh1bWJSZW5kZXJlciA9
IGlucHV0LT5zaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQo
KS0+Zmlyc3RDaGlsZCgpLT5maXJzdENoaWxkKCktPnJlbmRlcmVyKCk7CiAgICAgICAgIGlmICh0
aHVtYlJlbmRlcmVyKSB7CiAgICAgICAgICAgICBzdHlsZSgpLT5zZXRIZWlnaHQodGh1bWJSZW5k
ZXJlci0+c3R5bGUoKS0+aGVpZ2h0KCkpOwogICAgICAgICAgICAgaWYgKHRyYWNrUmVuZGVyZXIp
CkBAIC0zNTUsNyArMzU2LDggQEAgY29uc3QgQXRvbWljU3RyaW5nJiBUcmFja0xpbWl0ZXJFbGVt
ZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiBUcmFja0xpbWl0ZXJFbGVtZW50KiB0cmFja0xp
bWl0ZXJFbGVtZW50T2YoTm9kZSogbm9kZSkKIHsKICAgICBBU1NFUlQobm9kZSk7Ci0gICAgU2hh
ZG93Um9vdCogc2hhZG93ID0gbm9kZS0+dG9JbnB1dEVsZW1lbnQoKS0+c2hhZG93Um9vdCgpOwor
ICAgIEFTU0VSVChub2RlLT50b0lucHV0RWxlbWVudCgpLT5oYXNTaGFkb3dSb290KCkpOworICAg
IFNoYWRvd1Jvb3QqIHNoYWRvdyA9IG5vZGUtPnRvSW5wdXRFbGVtZW50KCktPnNoYWRvd1Jvb3RM
aXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKICAgICBBU1NFUlQoc2hhZG93KTsKICAgICBOb2Rl
KiBsaW1pdGVyID0gc2hhZG93LT5maXJzdENoaWxkKCktPmxhc3RDaGlsZCgpOwogICAgIEFTU0VS
VChsaW1pdGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA1
MTQyNmEzMDg2MjRiOTg1ODhiMGUwNmY5MWNiNmQ2NDgxYWM4ZjhhLi5hYTk4YzAyNDlmYjA0NDk0
NDc3ZDU0MTY0YzMwOTVkZTIzNjkyZjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZvY3VzQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRy
b2xsZXIuY3BwCkBAIC01NCw2ICs1NCw3IEBACiAjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0b3IuaCIK
ICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRl
ICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlNwYXRpYWxOYXZpZ2F0aW9uLmgiCiAjaW5j
bHVkZSAiV2lkZ2V0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIgLy8gRm9yIGZpcnN0UG9z
aXRpb25Jbk9yQmVmb3JlTm9kZQpAQCAtMTU0LDcgKzE1NSw3IEBAIHZvaWQgRm9jdXNDb250cm9s
bGVyOjpzZXRGb2N1c2VkKGJvb2wgZm9jdXNlZCkKIAogc3RhdGljIGlubGluZSBTaGFkb3dSb290
KiBzaGFkb3dSb290KE5vZGUqIG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGUtPmlzRWxlbWVudE5v
ZGUoKSA/IHRvRWxlbWVudChub2RlKS0+c2hhZG93Um9vdCgpIDogMDsKKyAgICByZXR1cm4gbm9k
ZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+aGFzU2hhZG93Um9vdCgpID8g
dG9FbGVtZW50KG5vZGUpLT5zaGFkb3dSb290TGlzdCgpLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKSA6
IDA7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1RyZWVTY29wZU93bmVyKE5vZGUqIG5vZGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250
cm9sLmNwcAppbmRleCBhMWFlMTViNWM5YzAwNTQxMWQzMTYyMjE1MjY5MDk3ZDg5NGUwMDdiLi44
NDM3MzAzMmQ5ZmJiYjRkOGI2NDhhN2Q4NDJjZjBhYzBlNjBhOTNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKQEAgLTMy
LDYgKzMyLDcgQEAKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhl
bWUuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3Qu
aCIKICNpbmNsdWRlICJUZXh0UnVuLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVBvc2l0aW9uLmgiCiAj
aW5jbHVkZSA8bWF0aC5oPgpAQCAtMjEyLDkgKzIxMyw5IEBAIEhUTUxJbnB1dEVsZW1lbnQqIFJl
bmRlckZpbGVVcGxvYWRDb250cm9sOjp1cGxvYWRCdXR0b24oKSBjb25zdAogewogICAgIEhUTUxJ
bnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUo
KSk7CiAKLSAgICBBU1NFUlQoaW5wdXQtPnNoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKGlucHV0
LT5oYXNTaGFkb3dSb290KCkpOwogCi0gICAgTm9kZSogYnV0dG9uTm9kZSA9IGlucHV0LT5zaGFk
b3dSb290KCktPmZpcnN0Q2hpbGQoKTsKKyAgICBOb2RlKiBidXR0b25Ob2RlID0gaW5wdXQtPnNo
YWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpOwogICAgIHJl
dHVybiBidXR0b25Ob2RlICYmIGJ1dHRvbk5vZGUtPmlzSFRNTEVsZW1lbnQoKSAmJiBidXR0b25O
b2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSA/IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQq
PihidXR0b25Ob2RlKSA6IDA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUUmVmRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3Bw
CmluZGV4IDk4YjhmOTEzZmExNjMyYjcxNzM5NjQyMGVkM2VlNmQ4MGRjMmM5YzQuLjEyMmQ3YzQz
Y2MyZDBiMWE1NGU3YWFhYzRiNzM1ZDRhZjA4OGQxZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RS
ZWZFbGVtZW50LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlJlbmRlclNWR0lubGlu
ZVRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIlNoYWRv
d1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlNWR0RvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudEluc3RhbmNlLmgiCiAjaW5jbHVkZSAiU1ZHTmFt
ZXMuaCIKQEAgLTE1OSwxMCArMTYwLDEyIEBAIHZvaWQgU1ZHVFJlZkVsZW1lbnQ6OnVwZGF0ZVJl
ZmVyZW5jZWRUZXh0KCkKICAgICBpZiAodGFyZ2V0LT5wYXJlbnROb2RlKCkpCiAgICAgICAgIHRl
eHRDb250ZW50ID0gdGFyZ2V0LT50ZXh0Q29udGVudCgpOwogCi0gICAgaWYgKCFzaGFkb3dSb290
KCktPmZpcnN0Q2hpbGQoKSkKLSAgICAgICAgc2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChTVkdT
aGFkb3dUZXh0OjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dENvbnRlbnQpLCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKKyAgICBBU1NFUlQoaGFzU2hhZG93Um9vdCgpKTsKKyAgICBTaGFkb3dSb290KiBy
b290ID0gc2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpOworICAgIGlmICghcm9v
dC0+Zmlyc3RDaGlsZCgpKQorICAgICAgICByb290LT5hcHBlbmRDaGlsZChTVkdTaGFkb3dUZXh0
OjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dENvbnRlbnQpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
ICAgICBlbHNlCi0gICAgICAgIHNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpLT5zZXRUZXh0Q29u
dGVudCh0ZXh0Q29udGVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgIHJvb3QtPmZp
cnN0Q2hpbGQoKS0+c2V0VGV4dENvbnRlbnQodGV4dENvbnRlbnQsIEFTU0VSVF9OT19FWENFUFRJ
T04pOwogfQogCiBib29sIFNWR1RSZWZFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAppbmRleCAxMjY0N2RmZTMxNzkzNjgzOWY5MTMzNGM4ODY1ZDc0Yzc3NmNlZWU4Li5lYjNhNWI3
YjA1MzE5MTQ0ZGU0NDcxZGZhMGZiNWYwZWQ4ZTg3ZGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVHJlZUFzVGV4
dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2lu
Y2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSAiU3BlbGxDaGVja2VyLmgiCiAjaW5j
bHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAKQEAgLTE5MywyMCArMTk0LDQzIEBAIEludGVybmFsczo6
U2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogSW50ZXJuYWxzOjplbnN1cmVTaGFk
b3dSb290KEVsZW1lCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIGlmIChTaGFkb3dS
b290KiByb290ID0gaG9zdC0+c2hhZG93Um9vdCgpKQotICAgICAgICByZXR1cm4gcm9vdDsKKyAg
ICBpZiAoaG9zdC0+aGFzU2hhZG93Um9vdCgpKQorICAgICAgICByZXR1cm4gaG9zdC0+c2hhZG93
Um9vdExpc3QoKS0+eW91bmdlc3RTaGFkb3dSb290KCk7CiAKICAgICByZXR1cm4gU2hhZG93Um9v
dDo6Y3JlYXRlKGhvc3QsIGVjKS5nZXQoKTsKIH0KIAogSW50ZXJuYWxzOjpTaGFkb3dSb290SWZT
aGFkb3dET01FbmFibGVkT3JOb2RlKiBJbnRlcm5hbHM6OnNoYWRvd1Jvb3QoRWxlbWVudCogaG9z
dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgLy8gRklYTUU6IEludGVybmFsczo6c2hhZG93
Um9vdCgpIGluIHRlc3RzIHNob3VsZCBiZSBjb252ZXJ0ZWQgdG8geW91bmdlc3RTaGFkb3dSb290
KCkgb3Igb2xkZXN0U2hhZG93Um9vdCgpLgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03ODQ2NQorICAgIHJldHVybiB5b3VuZ2VzdFNoYWRvd1Jvb3QoaG9z
dCwgZWMpOworfQorCitJbnRlcm5hbHM6OlNoYWRvd1Jvb3RJZlNoYWRvd0RPTUVuYWJsZWRPck5v
ZGUqIEludGVybmFsczo6eW91bmdlc3RTaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlv
bkNvZGUmIGVjKQorewogICAgIGlmICghaG9zdCkgewogICAgICAgICBlYyA9IElOVkFMSURfQUND
RVNTX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgcmV0dXJuIGhvc3QtPnNo
YWRvd1Jvb3QoKTsKKyAgICBpZiAoIWhvc3QtPmhhc1NoYWRvd1Jvb3QoKSkKKyAgICAgICAgcmV0
dXJuIDA7CisKKyAgICByZXR1cm4gaG9zdC0+c2hhZG93Um9vdExpc3QoKS0+eW91bmdlc3RTaGFk
b3dSb290KCk7Cit9CisKK0ludGVybmFsczo6U2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9y
Tm9kZSogSW50ZXJuYWxzOjpvbGRlc3RTaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlv
bkNvZGUmIGVjKQoreworICAgIGlmICghaG9zdCkgeworICAgICAgICBlYyA9IElOVkFMSURfQUND
RVNTX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgaWYgKCFob3N0LT5oYXNT
aGFkb3dSb290KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIGhvc3QtPnNoYWRv
d1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6OnJl
bW92ZVNoYWRvd1Jvb3QoRWxlbWVudCogaG9zdCwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCA0MzlkYzc1YzZlMTVmYmNhZTgyYzY3Y2FmZTc5ZjBi
MjFhZmRiZTBlLi5kMzhkODgwYTJmODNiOTg5Yjg5ODMzZmNmZTA0NDUyNTc1MTc1OGFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTY2LDYgKzY2LDggQEAgcHVibGljOgogI2Vu
ZGlmCiAgICAgU2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogZW5zdXJlU2hhZG93
Um9vdChFbGVtZW50KiBob3N0LCBFeGNlcHRpb25Db2RlJik7CiAgICAgU2hhZG93Um9vdElmU2hh
ZG93RE9NRW5hYmxlZE9yTm9kZSogc2hhZG93Um9vdChFbGVtZW50KiBob3N0LCBFeGNlcHRpb25D
b2RlJik7CisgICAgU2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogeW91bmdlc3RT
aGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBTaGFkb3dSb290
SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBvbGRlc3RTaGFkb3dSb290KEVsZW1lbnQqIGhvc3Qs
IEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHJlbW92ZVNoYWRvd1Jvb3QoRWxlbWVudCogaG9z
dCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIEVsZW1lbnQqIGluY2x1ZGVyRm9yKE5vZGUqLCBFeGNl
cHRpb25Db2RlJik7CiAgICAgU3RyaW5nIHNoYWRvd1BzZXVkb0lkKEVsZW1lbnQqLCBFeGNlcHRp
b25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggOWJmMDU3NTFk
OWI2YTJmNGE4MWYwNzA5OWM5M2M3YTZkM2E4YTA1My4uNzU2NzZmNmFhMmI3OTJkNjUwZGI1YmY3
MTFhZTg0OTQ4MTZiNzc5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAt
MzUsOSArMzUsMTMgQEAgbW9kdWxlIHdpbmRvdyB7CiAjaWYgZGVmaW5lZChFTkFCTEVfU0hBRE9X
X0RPTSkKICAgICAgICAgU2hhZG93Um9vdCBlbnN1cmVTaGFkb3dSb290KGluIEVsZW1lbnQgaG9z
dCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAgICBTaGFkb3dSb290IHNoYWRvd1Jvb3Qo
aW4gRWxlbWVudCBob3N0KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFNoYWRvd1Jv
b3QgeW91bmdlc3RTaGFkb3dSb290KGluIEVsZW1lbnQgaG9zdCkgcmFpc2VzIChET01FeGNlcHRp
b24pOworICAgICAgICBTaGFkb3dSb290IG9sZGVzdFNoYWRvd1Jvb3QoaW4gRWxlbWVudCBob3N0
KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAjZWxzZQogICAgICAgICBOb2RlIGVuc3VyZVNoYWRv
d1Jvb3QoaW4gRWxlbWVudCBob3N0KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIE5v
ZGUgc2hhZG93Um9vdChpbiBFbGVtZW50IGhvc3QpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAg
ICAgICAgTm9kZSB5b3VuZ2VzdFNoYWRvd1Jvb3QoaW4gRWxlbWVudCBob3N0KSByYWlzZXMgKERP
TUV4Y2VwdGlvbik7CisgICAgICAgIE5vZGUgb2xkZXN0U2hhZG93Um9vdChpbiBFbGVtZW50IGhv
c3QpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgogICAgICAgICBFbGVtZW50IGluY2x1
ZGVyRm9yKGluIE5vZGUgbm9kZSkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAgICB2b2lk
IHJlbW92ZVNoYWRvd1Jvb3QoaW4gRWxlbWVudCBob3N0KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2Vi
S2l0Mi93aW4vV2ViS2l0Mi5kZWYKaW5kZXggNzY4MzBlMDFjOWRjNDM2MTU1ZjIyY2RjZmI1YjYz
ODU4MGE5YWYzOC4uYWVkOTRlOTNkN2Y5MDQzOWFkZmI0YTM4ZWI3NGE0ZTNlOTYzNjI5NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1NvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyLmRlZgpAQCAtMTg3LDcgKzE4Nyw2IEBAIEVYUE9SVFMKICAgICAgICAg
P3NldHRpbmdzQERvY3VtZW50QFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJAWFoKICAgICAgICAg
P3NldHRpbmdzQEZyYW1lQFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJAWFoKICAgICAgICAgP3Nl
dEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWVAU2V0dGluZ3NAV2ViQ29yZUBAUUFF
WF9OQFoKLSAgICAgICAgP3NoYWRvd1Jvb3RARWxlbWVudEBXZWJDb3JlQEBRQkVQQVZTaGFkb3dS
b290QDJAWFoKICAgICAgICAgP3N1Z2dlc3RlZFZhbHVlQEhUTUxJbnB1dEVsZW1lbnRAV2ViQ29y
ZUBAUUJFQUJWU3RyaW5nQFdURkBAWFoKICAgICAgICAgP3RvRG9jdW1lbnRAV2ViQ29yZUBAWUFQ
QVZEb2N1bWVudEAxQFZKU1ZhbHVlQEpTQ0BAQFoKICAgICAgICAgP3RvRWxlbWVudEBXZWJDb3Jl
QEBZQVBBVkVsZW1lbnRAMUBWSlNWYWx1ZUBKU0NAQEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNG
TGl0ZS5kZWYKaW5kZXggM2E5MjdjMjdjZWU2OWZjYWMyYTQ2Njg2ZDg3MTQwZDIxM2MzMjMwNS4u
NjY4ZDc1ZmU3NWI2OGQ3MmQwZjBmOGJmODkwODAyODQyZmI2MzNhZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dp
bi9XZWJLaXQyQ0ZMaXRlLmRlZgpAQCAtMSwzICsxLDQgQEAKKwogRVhQT1JUUwogICAgICAgICBE
bGxHZXRDbGFzc09iamVjdCAgIFBSSVZBVEUKICAgICAgICAgRGxsQ2FuVW5sb2FkTm93ICAgICBQ
UklWQVRFCkBAIC0xODEsNyArMTgyLDYgQEAgRVhQT1JUUwogICAgICAgICA/c2V0dGluZ3NARG9j
dW1lbnRAV2ViQ29yZUBAUUJFUEFWU2V0dGluZ3NAMkBYWgogICAgICAgICA/c2V0dGluZ3NARnJh
bWVAV2ViQ29yZUBAUUJFUEFWU2V0dGluZ3NAMkBYWgogICAgICAgICA/c2V0Rml4ZWRFbGVtZW50
c0xheW91dFJlbGF0aXZlVG9GcmFtZUBTZXR0aW5nc0BXZWJDb3JlQEBRQUVYX05AWgotICAgICAg
ICA/c2hhZG93Um9vdEBFbGVtZW50QFdlYkNvcmVAQFFCRVBBVlNoYWRvd1Jvb3RAMkBYWgogICAg
ICAgICA/c3VnZ2VzdGVkVmFsdWVASFRNTElucHV0RWxlbWVudEBXZWJDb3JlQEBRQkVBQlZTdHJp
bmdAV1RGQEBYWgogICAgICAgICA/dG9Eb2N1bWVudEBXZWJDb3JlQEBZQVBBVkRvY3VtZW50QDFA
VkpTVmFsdWVASlNDQEBAWgogICAgICAgICA/dG9FbGVtZW50QFdlYkNvcmVAQFlBUEFWRWxlbWVu
dEAxQFZKU1ZhbHVlQEpTQ0BAQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9s
cy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IDVlOWViMzRj
ZTU0NzIxMTgyMTYzODQ5ODRkZjA0ZGFjM2QxNWYwOGUuLjg1ZjE3NzQ4N2RiZmM1MDZmMzhjNDY2
ZmVkZjYwY2Y1MWU5NDliMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5m
aWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtNzgsNyArNzgs
NiBAQCBfWk5LN1dlYkNvcmUyMENhY2hlZFJlc291cmNlTG9hZGVyMTFpc1ByZWxvYWRlZEVSS04z
V1RGNlN0cmluZ0U7CiBfWk5LN1dlYkNvcmUyNkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50MjFs
YXN0Q2hhbmdlV2FzVXNlckVkaXRFdjsKIF9aTks3V2ViQ29yZTVGcmFtZThzZXR0aW5nc0V2Owog
X1pOSzdXZWJDb3JlNkpTTm9kZTIxcHVzaEV2ZW50SGFuZGxlclNjb3BlRVBOM0pTQzlFeGVjU3Rh
dGVFUE5TMV8xNFNjb3BlQ2hhaW5Ob2RlRTsKLV9aTks3V2ViQ29yZTdFbGVtZW50MTBzaGFkb3dS
b290RXY7CiBfWk5LN1dlYkNvcmU3RWxlbWVudDMxbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGls
ZHJlbkV2OwogX1pOSzdXZWJDb3JlOERvY3VtZW50NHBhZ2VFdjsKIF9aTks3V2ViQ29yZThEb2N1
bWVudDhzZXR0aW5nc0V2Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126896</attachid>
            <date>2012-02-13 20:07:46 -0800</date>
            <delta_ts>2012-02-14 00:09:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78455-20120214130744.patch</filename>
            <type>text/plain</type>
            <size>48035</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDg4MmQ3NmZkMzYwZTcw
YTM1Y2Q3ODY2ZWU1ZjFhMTRhNjQ3ODNhOS4uMjA4NzAyYmQ4YTQxNWI4YjliN2I0YTI3N2JkMmMz
ZTU5ZTc5YTI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwOCBAQAorMjAxMi0wMi0xMiAgU2hp
bnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgorCisgICAgICAgIFVzZSB5b3VuZ2Vz
dFNoYWRvd1Jvb3QgYW5kIG9sZGVzdFNoYWRvd1Jvb3QgaW5zdGVhZCBvZiBFbGVtZW50OjpzaGFk
b3dSb290KCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03ODQ1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEVsZW1lbnQ6OnNoYWRvd1Jvb3QoKSBpcyBhbWJpZ3VvdXMgYmVjYXVzZSBpdCBkb24ndCBzYXkg
dG8gdGFrZSB0aGUgeW91bmdlc3Qgc2hhZG93IHJvb3Qgb3IKKyAgICAgICAgdGhlIG9sZGVzdCBz
aGFkb3cgcm9vdC4KKworICAgICAgICBXZSBzaG91bGQgbWFrZSB0aGlzIGNsZWFyZXIuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBubyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmJ1aWxkQWNjZXNz
S2V5TWFwKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
OjpyZW1vdmVkRnJvbURvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6Omluc2Vy
dGVkSW50b1RyZWUpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVtb3ZlZEZyb21UcmVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmF0dGFjaCk6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjpkZXRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVjYWxjU3R5
bGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjplbnN1
cmVTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpmb2N1cyk6CisgICAgICAgICogZG9tL0Vs
ZW1lbnQuaDoKKyAgICAgICAgKEVsZW1lbnQpOgorICAgICAgICAqIGRvbS9FdmVudERpc3BhdGNo
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNTaGFkb3dIb3N0KToKKyAgICAgICAgKiBkb20v
Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzaGFkb3dSb290KToKKyAgICAgICAgKiBkb20v
Tm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmlu
Z0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0KToKKyAgICAgICAgKiBkb20vU2hhZG93Um9v
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpjcmVhdGUpOgorICAgICAgICAq
IGRvbS9TaGFkb3dSb290TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290TGlz
dDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTaGFkb3dSb290TGlzdDo6cmVtb3ZlZEZyb21Eb2N1bWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpTaGFkb3dSb290TGlzdDo6aW5zZXJ0ZWRJbnRvVHJlZSk6CisgICAgICAgIChXZWJD
b3JlOjpTaGFkb3dSb290TGlzdDo6cmVtb3ZlZEZyb21UcmVlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNoYWRvd1Jvb3RMaXN0Ojpob3N0Q2hpbGRyZW5DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNoYWRvd1Jvb3RMaXN0OjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdExp
c3Q6OmRldGFjaCk6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3RMaXN0Lmg6CisgICAgICAgIChT
aGFkb3dSb290TGlzdCk6CisgICAgICAgICogZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6c2hhZG93Um9vdEZvcik6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1
YnRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6bXVsdGlwbGVBdHRyaWJ1
dGVDaGFuZ2VkKToKKyAgICAgICAgKiBodG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MRGV0YWlsc0VsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTERldGFpbHNFbGVtZW50OjpmaW5kTWFpblN1bW1hcnkpOgor
ICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MSW5wdXRFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL0hU
TUxLZXlnZW5FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxLZXlnZW5FbGVtZW50
OjpIVE1MS2V5Z2VuRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MS2V5Z2VuRWxlbWVu
dDo6c2hhZG93U2VsZWN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFDb250cm9scyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpoYXNNZWRpYUNvbnRyb2xzKToKKyAgICAg
ICAgKiBodG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
dGVyRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9IVE1MUHJv
Z3Jlc3NFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6
OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvSFRNTFN1bW1hcnlFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlU2hhZG93
U3VidHJlZSk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6aW5uZXJUZXh0RWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Ojp1cGRhdGVQbGFjZWhvbGRl
clRleHQpOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklucHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvUmFuZ2VJ
bnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmhhbmRsZU1v
dXNlRG93bkV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5wdXRUeXBlOjpjcmVhdGVT
aGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUp
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjp1cGRhdGVQbGFjZWhvbGRl
clRleHQpOgorICAgICAgICAqIGh0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VmFsaWRhdGlvbk1lc3NhZ2U6OmRlbGV0ZUJ1YmJsZVRyZWUpOgorICAgICAgICAq
IGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpz
bGlkZXJUaHVtYkVsZW1lbnRPZik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXJDb250
YWluZXI6OmxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjp0cmFja0xpbWl0ZXJFbGVtZW50T2Yp
OgorICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnNoYWRvd1Jvb3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJv
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6dXBsb2Fk
QnV0dG9uKToKKyAgICAgICAgKiBzdmcvU1ZHVFJlZkVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVFJlZkVsZW1lbnQ6OnVwZGF0ZVJlZmVyZW5jZWRUZXh0KToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmVuc3Vy
ZVNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzaGFkb3dSb290KToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp5b3VuZ2Vz
dFNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpvbGRlc3RTaGFkb3dS
b290KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAoSW50ZXJuYWxz
KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTItMDItMTMgIFJhdWwg
SHVkZWEgIDxyaHVkZWFAYWRvYmUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBFbGVtZW50Lndl
YmtpdFJlZ2lvbk92ZXJmbG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDQ4Nzc5N2Q3ZGU3MmU3
NzVlNzIwOTNmMjYzOTAxZWM3OWYwMzE3YzguLjQzOWZhMTlkMzU5MTlmOTM4ZTQwZmE0MmUyNjg1
MjQyODk3YmQ4M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xNDM0LDggKzE0MzQsOSBAQCBf
X1pOSzdXZWJDb3JlNldpZGdldDI1Y29udmVydFRvQ29udGFpbmluZ1dpbmRvd0VSS05TXzdJbnRS
ZWN0RQogX19aTks3V2ViQ29yZTZXaWRnZXQyNWNvbnZlcnRUb0NvbnRhaW5pbmdXaW5kb3dFUktO
U184SW50UG9pbnRFCiBfX1pOSzdXZWJDb3JlNldpZGdldDlmcmFtZVJlY3RFdgogX19aTks3V2Vi
Q29yZTdFbGVtZW50MTBzY3JlZW5SZWN0RXYKLV9fWk5LN1dlYkNvcmU3RWxlbWVudDEwc2hhZG93
Um9vdEV2CiBfX1pOSzdXZWJDb3JlN0VsZW1lbnQxMmdldEF0dHJpYnV0ZUVSS05TXzEzUXVhbGlm
aWVkTmFtZUUKK19fWk5LN1dlYkNvcmU3RWxlbWVudDEzaGFzU2hhZG93Um9vdEV2CitfX1pOSzdX
ZWJDb3JlN0VsZW1lbnQxNHNoYWRvd1Jvb3RMaXN0RXYKIF9fWk5LN1dlYkNvcmU3SW50UmVjdDEw
aW50ZXJzZWN0c0VSS1MwXwogX19aTks3V2ViQ29yZTdJbnRSZWN0OGNvbnRhaW5zRVJLUzBfCiBf
X1pOSzdXZWJDb3JlN0ludFJlY3RjdjZDR1JlY3RFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5k
ZXggNjJlZWZmOWI5OTlkOGI3OTVlNDk2MjllMzQ5NzA2ODk0MWM5ZmQ4My4uYzBiYjQxNDdiODM3
MTcxOTBhMWMwYzUwYWE1YWMxMDI2NmFkNTExNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBA
IC0xMzcsNiArMTM3LDcgQEAKICNpbmNsdWRlICJTZWdtZW50ZWRTdHJpbmcuaCIKICNpbmNsdWRl
ICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dS
b290TGlzdC5oIgogI2luY2x1ZGUgIlN0YXRpY0hhc2hTZXROb2RlTGlzdC5oIgogI2luY2x1ZGUg
IlN0eWxlU2hlZXRMaXN0LmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgpAQCAt
NjY2LDggKzY2NywxMSBAQCB2b2lkIERvY3VtZW50OjpidWlsZEFjY2Vzc0tleU1hcChUcmVlU2Nv
cGUqIHNjb3BlKQogICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGFjY2Vzc0tleSA9IGVsZW1l
bnQtPmdldEF0dHJpYnV0ZShhY2Nlc3NrZXlBdHRyKTsKICAgICAgICAgaWYgKCFhY2Nlc3NLZXku
aXNFbXB0eSgpKQogICAgICAgICAgICAgbV9lbGVtZW50c0J5QWNjZXNzS2V5LnNldChhY2Nlc3NL
ZXkuaW1wbCgpLCBlbGVtZW50KTsKLSAgICAgICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3Qg
PSBlbGVtZW50LT5zaGFkb3dSb290KCkpCi0gICAgICAgICAgICBidWlsZEFjY2Vzc0tleU1hcChz
aGFkb3dSb290KTsKKworICAgICAgICBpZiAoZWxlbWVudC0+aGFzU2hhZG93Um9vdCgpKSB7Cisg
ICAgICAgICAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSBlbGVtZW50LT5zaGFkb3dSb290TGlz
dCgpLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93
Um9vdCgpKQorICAgICAgICAgICAgICAgIGJ1aWxkQWNjZXNzS2V5TWFwKHJvb3QpOworICAgICAg
ICB9CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggOGM5NGQ3Yzc4MGRkODEy
N2EyOTc0NzIzZTVkMGI1OTJjMDc2ZTJlMC4uMDljMzA0NDJhNTYwMDExNjU4ZTg1NDNkNzgzOGE2
NzQ4Y2U0NTkwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtODczLDggKzg3Myw4IEBAIHZv
aWQgRWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKQogICAgIC8vIG5lZWQgdG8gZG8gc3Vw
ZXJjbGFzcyBwcm9jZXNzaW5nIGZpcnN0IHNvIGluRG9jdW1lbnQoKSBpcyB0cnVlCiAgICAgLy8g
YnkgdGhlIHRpbWUgd2UgcmVhY2ggdXBkYXRlSWQKICAgICBDb250YWluZXJOb2RlOjppbnNlcnRl
ZEludG9Eb2N1bWVudCgpOwotICAgIGlmIChTaGFkb3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290
KCkpCi0gICAgICAgIHNoYWRvdy0+aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKKyAgICBpZiAoU2hh
ZG93Um9vdExpc3QqIHNoYWRvd0xpc3QgPSBzaGFkb3dSb290TGlzdCgpKQorICAgICAgICBzaGFk
b3dMaXN0LT5pbnNlcnRlZEludG9Eb2N1bWVudCgpOwogCiAgICAgaWYgKG1fYXR0cmlidXRlTWFw
KSB7CiAgICAgICAgIGlmIChoYXNJRCgpKSB7CkBAIC05MDYsOCArOTA2LDggQEAgdm9pZCBFbGVt
ZW50OjpyZW1vdmVkRnJvbURvY3VtZW50KCkKICAgICB9CiAKICAgICBDb250YWluZXJOb2RlOjpy
ZW1vdmVkRnJvbURvY3VtZW50KCk7Ci0gICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRvdyA9IHNoYWRv
d1Jvb3QoKSkKLSAgICAgICAgc2hhZG93LT5yZW1vdmVkRnJvbURvY3VtZW50KCk7CisgICAgaWYg
KFNoYWRvd1Jvb3RMaXN0KiBzaGFkb3dMaXN0ID0gc2hhZG93Um9vdExpc3QoKSkKKyAgICAgICAg
c2hhZG93TGlzdC0+cmVtb3ZlZEZyb21Eb2N1bWVudCgpOwogfQogCiB2b2lkIEVsZW1lbnQ6Omlu
c2VydGVkSW50b1RyZWUoYm9vbCBkZWVwKQpAQCAtOTE1LDggKzkxNSw4IEBAIHZvaWQgRWxlbWVu
dDo6aW5zZXJ0ZWRJbnRvVHJlZShib29sIGRlZXApCiAgICAgQ29udGFpbmVyTm9kZTo6aW5zZXJ0
ZWRJbnRvVHJlZShkZWVwKTsKICAgICBpZiAoIWRlZXApCiAgICAgICAgIHJldHVybjsKLSAgICBp
ZiAoU2hhZG93Um9vdCogc2hhZG93ID0gc2hhZG93Um9vdCgpKQotICAgICAgICBzaGFkb3ctPmlu
c2VydGVkSW50b1RyZWUodHJ1ZSk7CisgICAgaWYgKFNoYWRvd1Jvb3RMaXN0KiBzaGFkb3dMaXN0
ID0gc2hhZG93Um9vdExpc3QoKSkKKyAgICAgICAgc2hhZG93TGlzdC0+aW5zZXJ0ZWRJbnRvVHJl
ZSh0cnVlKTsKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBpZiAoY29udGFpbnNG
dWxsU2NyZWVuRWxlbWVudCgpICYmIHBhcmVudEVsZW1lbnQoKSAmJiAhcGFyZW50RWxlbWVudCgp
LT5jb250YWluc0Z1bGxTY3JlZW5FbGVtZW50KCkpCkBAIC05MjksOCArOTI5LDggQEAgdm9pZCBF
bGVtZW50OjpyZW1vdmVkRnJvbVRyZWUoYm9vbCBkZWVwKQogICAgIENvbnRhaW5lck5vZGU6OnJl
bW92ZWRGcm9tVHJlZShkZWVwKTsKICAgICBpZiAoIWRlZXApCiAgICAgICAgIHJldHVybjsKLSAg
ICBpZiAoU2hhZG93Um9vdCogc2hhZG93ID0gc2hhZG93Um9vdCgpKQotICAgICAgICBzaGFkb3ct
PnJlbW92ZWRGcm9tVHJlZSh0cnVlKTsKKyAgICBpZiAoU2hhZG93Um9vdExpc3QqIHNoYWRvd0xp
c3QgPSBzaGFkb3dSb290TGlzdCgpKQorICAgICAgICBzaGFkb3dMaXN0LT5yZW1vdmVkRnJvbVRy
ZWUodHJ1ZSk7CiB9CiAKIHZvaWQgRWxlbWVudDo6YXR0YWNoKCkKQEAgLTk0MiwxMCArOTQyLDEw
IEBAIHZvaWQgRWxlbWVudDo6YXR0YWNoKCkKICAgICBTdHlsZVNlbGVjdG9yUGFyZW50UHVzaGVy
IHBhcmVudFB1c2hlcih0aGlzKTsKIAogICAgIC8vIFdoZW4gYSBzaGFkb3cgcm9vdCBleGlzdHMs
IGl0IGRvZXMgdGhlIHdvcmsgb2YgYXR0YWNoaW5nIHRoZSBjaGlsZHJlbi4KLSAgICBpZiAoU2hh
ZG93Um9vdCogc2hhZG93ID0gc2hhZG93Um9vdCgpKSB7CisgICAgaWYgKGhhc1NoYWRvd1Jvb3Qo
KSkgewogICAgICAgICBwYXJlbnRQdXNoZXIucHVzaCgpOwogICAgICAgICBOb2RlOjphdHRhY2go
KTsKLSAgICAgICAgc2hhZG93LT5hdHRhY2goKTsKKyAgICAgICAgc2hhZG93Um9vdExpc3QoKS0+
YXR0YWNoKCk7CiAKICAgICAgICAgLy8gSW4gYSBzaGFkb3cgdHJlZSwgc29tZSBvZiBsaWdodCBj
aGlsZHJlbiBtYXkgYmUgYXR0YWNoZWQgYnkgJ2NvbnRlbnQnIGVsZW1lbnQuCiAgICAgICAgIC8v
IEhvd2V2ZXIsIHdoZW4gdGhlcmUgaXMgbm8gY29udGVudCBlbGVtZW50IG9yIGNvbnRlbnQgZWxl
bWVudCBkb2VzIG5vdCBzZWxlY3QKQEAgLTk4MSw4ICs5ODEsOCBAQCB2b2lkIEVsZW1lbnQ6OmRl
dGFjaCgpCiAgICAgaWYgKGhhc1JhcmVEYXRhKCkpCiAgICAgICAgIHJhcmVEYXRhKCktPnJlc2V0
Q29tcHV0ZWRTdHlsZSgpOwogICAgIENvbnRhaW5lck5vZGU6OmRldGFjaCgpOwotICAgIGlmIChT
aGFkb3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290KCkpCi0gICAgICAgIHNoYWRvdy0+ZGV0YWNo
KCk7CisgICAgaWYgKFNoYWRvd1Jvb3RMaXN0KiBzaGFkb3dMaXN0ID0gc2hhZG93Um9vdExpc3Qo
KSkKKyAgICAgICAgc2hhZG93TGlzdC0+ZGV0YWNoKCk7CiAKICAgICBSZW5kZXJXaWRnZXQ6OnJl
c3VtZVdpZGdldEhpZXJhcmNoeVVwZGF0ZXMoKTsKIH0KQEAgLTExNDEsNyArMTE0MSw4IEBAIHZv
aWQgRWxlbWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogICAgICAgICBmb3Jj
ZUNoZWNrT2ZBbnlFbGVtZW50U2libGluZyA9IGZvcmNlQ2hlY2tPZkFueUVsZW1lbnRTaWJsaW5n
IHx8IChjaGlsZFJ1bGVzQ2hhbmdlZCAmJiBoYXNJbmRpcmVjdEFkamFjZW50UnVsZXMpOwogICAg
IH0KICAgICAvLyBGSVhNRTogVGhpcyBkb2VzIG5vdCBjYXJlIGFib3V0IHNpYmxpbmcgY29tYmlu
YXRvcnMuIFdpbGwgYmUgbmVjZXNzYXJ5IGluIFhCTDIgd29ybGQuCi0gICAgaWYgKFNoYWRvd1Jv
b3QqIHNoYWRvdyA9IHNoYWRvd1Jvb3QoKSkgeworICAgIGlmIChoYXNTaGFkb3dSb290KCkpIHsK
KyAgICAgICAgU2hhZG93Um9vdCogc2hhZG93ID0gc2hhZG93Um9vdExpc3QoKS0+eW91bmdlc3RT
aGFkb3dSb290KCk7CiAgICAgICAgIGlmIChjaGFuZ2UgPj0gSW5oZXJpdCB8fCBzaGFkb3ctPmNo
aWxkTmVlZHNTdHlsZVJlY2FsYygpIHx8IHNoYWRvdy0+bmVlZHNTdHlsZVJlY2FsYygpKSB7CiAg
ICAgICAgICAgICBwYXJlbnRQdXNoZXIucHVzaCgpOwogICAgICAgICAgICAgc2hhZG93LT5yZWNh
bGNTaGFkb3dUcmVlU3R5bGUoY2hhbmdlKTsKQEAgLTExNzAsMTIgKzExNzEsMTQgQEAgU2hhZG93
Um9vdExpc3QqIEVsZW1lbnQ6OnNoYWRvd1Jvb3RMaXN0KCkgY29uc3QKICAgICByZXR1cm4gJnJh
cmVEYXRhKCktPm1fc2hhZG93Um9vdExpc3Q7CiB9CiAKKyNpZiAwCiBTaGFkb3dSb290KiBFbGVt
ZW50OjpzaGFkb3dSb290KCkgY29uc3QKIHsKICAgICBpZiAoU2hhZG93Um9vdExpc3QqIGxpc3Qg
PSBzaGFkb3dSb290TGlzdCgpKQogICAgICAgICByZXR1cm4gbGlzdC0+eW91bmdlc3RTaGFkb3dS
b290KCk7CiAgICAgcmV0dXJuIDA7CiB9CisjZW5kaWYKIAogc3RhdGljIGJvb2wgdmFsaWRhdGVT
aGFkb3dSb290KERvY3VtZW50KiBkb2N1bWVudCwgU2hhZG93Um9vdCogc2hhZG93Um9vdCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7CkBAIC0xMjE5LDggKzEyMjIsOCBAQCB2b2lkIEVsZW1lbnQ6OnNl
dFNoYWRvd1Jvb3QoUGFzc1JlZlB0cjxTaGFkb3dSb290PiBzaGFkb3dSb290LCBFeGNlcHRpb25D
b2RlJiBlYwogCiBTaGFkb3dSb290KiBFbGVtZW50OjplbnN1cmVTaGFkb3dSb290KCkKIHsKLSAg
ICBpZiAoU2hhZG93Um9vdCogZXhpc3RpbmdSb290ID0gc2hhZG93Um9vdCgpKQotICAgICAgICBy
ZXR1cm4gZXhpc3RpbmdSb290OworICAgIGlmIChoYXNTaGFkb3dSb290KCkpCisgICAgICAgIHJl
dHVybiBzaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCk7CiAKICAgICByZXR1cm4g
U2hhZG93Um9vdDo6Y3JlYXRlKHRoaXMsIFNoYWRvd1Jvb3Q6OkNyZWF0aW5nVXNlckFnZW50U2hh
ZG93Um9vdCkuZ2V0KCk7CiB9CkBAIC0xMzgyLDggKzEzODUsOCBAQCB2b2lkIEVsZW1lbnQ6OmNo
aWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRCeVBhcnNlciwgTm9kZSogYmVmb3JlQ2hhbmdlLCBO
b2RlKiBhZgogICAgICAgICBjaGVja0ZvclNpYmxpbmdTdHlsZUNoYW5nZXModGhpcywgcmVuZGVy
U3R5bGUoKSwgZmFsc2UsIGJlZm9yZUNoYW5nZSwgYWZ0ZXJDaGFuZ2UsIGNoaWxkQ291bnREZWx0
YSk7CiAKICAgICBpZiAoaGFzUmFyZURhdGEoKSkgewotICAgICAgICBpZiAoU2hhZG93Um9vdCog
cm9vdCA9IHNoYWRvd1Jvb3QoKSkKLSAgICAgICAgICAgIHJvb3QtPmhvc3RDaGlsZHJlbkNoYW5n
ZWQoKTsKKyAgICAgICAgaWYgKFNoYWRvd1Jvb3RMaXN0KiBsaXN0ID0gc2hhZG93Um9vdExpc3Qo
KSkKKyAgICAgICAgICAgIGxpc3QtPmhvc3RDaGlsZHJlbkNoYW5nZWQoKTsKICAgICB9CiB9CiAK
QEAgLTE1ODAsNyArMTU4Myw3IEBAIHZvaWQgRWxlbWVudDo6Zm9jdXMoYm9vbCByZXN0b3JlUHJl
dmlvdXNTZWxlY3Rpb24pCiAgICAgICAgIC8vIElmIGEgZm9jdXMgZXZlbnQgaGFuZGxlciBjaGFu
Z2VzIHRoZSBmb2N1cyB0byBhIGRpZmZlcmVudCBub2RlIGl0CiAgICAgICAgIC8vIGRvZXMgbm90
IG1ha2Ugc2Vuc2UgdG8gY29udGludWUgYW5kIHVwZGF0ZSBhcHBlYXJlbmNlLgogICAgICAgICBw
cm90ZWN0ID0gdGhpczsKLSAgICAgICAgaWYgKHNoYWRvd1Jvb3QoKSAmJiBwYWdlLT5mb2N1c0Nv
bnRyb2xsZXIoKS0+dHJhbnNmZXJGb2N1c1RvRWxlbWVudEluU2hhZG93Um9vdCh0aGlzLCByZXN0
b3JlUHJldmlvdXNTZWxlY3Rpb24pKQorICAgICAgICBpZiAoaGFzU2hhZG93Um9vdCgpICYmIHBh
Z2UtPmZvY3VzQ29udHJvbGxlcigpLT50cmFuc2ZlckZvY3VzVG9FbGVtZW50SW5TaGFkb3dSb290
KHRoaXMsIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbikpCiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIGlmICghcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPnNldEZvY3VzZWROb2RlKHRoaXMs
IGRvYy0+ZnJhbWUoKSkpCiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRl
eCBlOWU0ZDhiODkzOGE0MzVlMzkwZjViYzFhNGViODM2MDRiZWY0ZWNlLi5kZDI3MDI5NTI1Nzcy
MjhhY2NmODRjOGU3MWJmNTNlNmIxNjg5ZmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTI1OCw3
ICsyNTgsNiBAQCBwdWJsaWM6CiAKICAgICAvLyBGSVhNRTogVGhlc2UgQVBJIHdpbGwgYmUgbW92
ZWQgdG8gU2hhZG93Um9vdExpc3QuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTc4MzEzCi0gICAgU2hhZG93Um9vdCogc2hhZG93Um9vdCgpIGNvbnN0Owog
ICAgIHZvaWQgc2V0U2hhZG93Um9vdChQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+LCBFeGNlcHRpb25D
b2RlJik7CiAgICAgU2hhZG93Um9vdCogZW5zdXJlU2hhZG93Um9vdCgpOwogICAgIHZvaWQgcmVt
b3ZlU2hhZG93Um9vdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlz
cGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcAppbmRl
eCA3NTczODMyYmEzMzUwZDBmY2IzM2YxMzJkNzk5YmU2MmM3YjFhYjE3Li4zZWU1Mjg1YmNhMTJl
NDRkNDUxYTJmMmNhZDE5YmZiZTc0NzEwZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNw
YXRjaGVyLmNwcApAQCAtMTI3LDcgKzEyNyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NoYWRv
d1Jvb3RPclNWR1NoYWRvd1Jvb3QoY29uc3QgTm9kZSogbm9kZSkKIAogc3RhdGljIGlubGluZSBi
b29sIGlzU2hhZG93SG9zdChOb2RlKiBub2RlKQogewotICAgIHJldHVybiBub2RlLT5pc0VsZW1l
bnROb2RlKCkgJiYgdG9FbGVtZW50KG5vZGUpLT5zaGFkb3dSb290KCk7CisgICAgcmV0dXJuIG5v
ZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jvb3QoKTsK
IH0KIAogUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gRXZlbnREaXNwYXRjaGVyOjphZGp1c3RUb1No
YWRvd0JvdW5kYXJpZXMoUGFzc1JlZlB0cjxOb2RlPiByZWxhdGVkVGFyZ2V0LCBjb25zdCBWZWN0
b3I8Tm9kZSo+IHJlbGF0ZWRUYXJnZXRBbmNlc3RvcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggZDk0
NTkzYjI3NjkwYWIzNGE5ZmM1ZTFmNzE3MjA3NDBhYWM1MWRkZi4uODFkZWRmNzdlYjg5M2I1ZTQ1
NTMyNmNiNjY1MjFjNjg5OTg5NDU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtODYsNiArODYsNyBA
QAogI2luY2x1ZGUgIlNjb3BlZEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJTZWxlY3RvclF1ZXJ5
LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0Lmgi
CiAjaW5jbHVkZSAiU3RhdGljTm9kZUxpc3QuaCIKICNpbmNsdWRlICJTdG9yYWdlRXZlbnQuaCIK
ICNpbmNsdWRlICJUYWdOb2RlTGlzdC5oIgpAQCAtODA5LDcgKzgxMCw3IEBAIGJvb2wgTm9kZTo6
aGFzTm9uRW1wdHlCb3VuZGluZ0JveCgpIGNvbnN0CiAKIGlubGluZSBzdGF0aWMgU2hhZG93Um9v
dCogc2hhZG93Um9vdChOb2RlKiBub2RlKQogewotICAgIHJldHVybiBub2RlLT5pc0VsZW1lbnRO
b2RlKCkgPyB0b0VsZW1lbnQobm9kZSktPnNoYWRvd1Jvb3QoKSA6IDA7CisgICAgcmV0dXJuIG5v
ZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jvb3QoKSA/
IHRvRWxlbWVudChub2RlKS0+c2hhZG93Um9vdExpc3QoKS0+eW91bmdlc3RTaGFkb3dSb290KCkg
OiAwOwogfQogCiBpbmxpbmUgdm9pZCBOb2RlOjpzZXRTdHlsZUNoYW5nZShTdHlsZUNoYW5nZVR5
cGUgY2hhbmdlVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVy
aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQu
Y3BwCmluZGV4IDZmYTk4OGE3ZGQ4MjljYzFlYThmY2YxZmZiOGEyM2ZlMmFhOGM3MmYuLjQxM2U4
Mzc3Nzg1Y2VkZmNjNzdjMzViNDJjYTcwMGVkMDU0MzUxNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUg
IlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTaGFk
b3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKIAogI2lmIEVOQUJMRShTVkcp
CiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKQEAgLTY1LDcgKzY2LDggQEAgTm9kZVJlbmRlcmluZ0Nv
bnRleHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0KE5vZGUqIG5vZGUpCiAgICAgbV9sb2NhdGlvbiA9
IExvY2F0aW9uTGlnaHRDaGlsZDsKIAogICAgIGlmIChwYXJlbnQtPmlzRWxlbWVudE5vZGUoKSkg
ewotICAgICAgICBtX3Zpc3VhbFBhcmVudFNoYWRvd1Jvb3QgPSB0b0VsZW1lbnQocGFyZW50KS0+
c2hhZG93Um9vdCgpOworICAgICAgICBpZiAodG9FbGVtZW50KHBhcmVudCktPmhhc1NoYWRvd1Jv
b3QoKSkKKyAgICAgICAgICAgIG1fdmlzdWFsUGFyZW50U2hhZG93Um9vdCA9IHRvRWxlbWVudChw
YXJlbnQpLT5zaGFkb3dSb290TGlzdCgpLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsKIAogICAgICAg
ICBpZiAobV92aXN1YWxQYXJlbnRTaGFkb3dSb290KSB7CiAgICAgICAgICAgICBpZiAoKG1faW5z
ZXJ0aW9uUG9pbnQgPSBtX3Zpc3VhbFBhcmVudFNoYWRvd1Jvb3QtPmluc2VydGlvblBvaW50Rm9y
KG1fbm9kZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXggNzJlMWVmNzVhYzBlZDNm
ZGZiOTY0N2Y1NGRmNTkxYWMyMmYzZmRkOS4uMTU2MzliN2JhMDE4YmUzZjAxNGNkMmY2ZTQ5ZGNk
ZGE3ZmRlOWI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtOTcsNyArOTcsNyBA
QCBQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IFNoYWRvd1Jvb3Q6OmNyZWF0ZShFbGVtZW50KiBlbGVt
ZW50LCBFeGNlcHRpb25Db2RlJiBlYykKIAogUGFzc1JlZlB0cjxTaGFkb3dSb290PiBTaGFkb3dS
b290OjpjcmVhdGUoRWxlbWVudCogZWxlbWVudCwgU2hhZG93Um9vdENyZWF0aW9uUHVycG9zZSBw
dXJwb3NlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAoIWVsZW1lbnQgfHwgZWxlbWVu
dC0+c2hhZG93Um9vdCgpKSB7CisgICAgaWYgKCFlbGVtZW50IHx8IGVsZW1lbnQtPmhhc1NoYWRv
d1Jvb3QoKSkgewogICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKICAgICAgICAg
cmV0dXJuIDA7CiAgICAgfQpAQCAtMTA5LDcgKzEwOSw3IEBAIFBhc3NSZWZQdHI8U2hhZG93Um9v
dD4gU2hhZG93Um9vdDo6Y3JlYXRlKEVsZW1lbnQqIGVsZW1lbnQsIFNoYWRvd1Jvb3RDcmVhdGlv
blB1CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIEFTU0VSVChwdXJwb3NlICE9IENy
ZWF0aW5nVXNlckFnZW50U2hhZG93Um9vdCB8fCAhZWxlbWVudC0+c2hhZG93Um9vdCgpKTsKKyAg
ICBBU1NFUlQocHVycG9zZSAhPSBDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QgfHwgIWVsZW1l
bnQtPmhhc1NoYWRvd1Jvb3QoKSk7CiAgICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IHNoYWRvd1Jvb3Qg
PSBjcmVhdGUoZWxlbWVudC0+ZG9jdW1lbnQoKSk7CiAKICAgICBlYyA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd1Jvb3RMaXN0LmNwcAppbmRleCA4OGUwZmI1ZjEzNzA5YTA4N2EyYzQ1ZjI1MDY3
NjQ0NmE0NDMzMWYwLi41NzBiN2RjNzFlNzY2MDBlYmE1ZDEzMWMwYjhlMWVjY2Q4NTliMGUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5jcHAKQEAgLTU5LDQgKzU5LDQ2IEBAIFNo
YWRvd1Jvb3QqIFNoYWRvd1Jvb3RMaXN0Ojpwb3BTaGFkb3dSb290KCkKICAgICByZXR1cm4gbV9z
aGFkb3dSb290cy5yZW1vdmVIZWFkKCk7CiB9CiAKK3ZvaWQgU2hhZG93Um9vdExpc3Q6Omluc2Vy
dGVkSW50b0RvY3VtZW50KCkKK3sKKyAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB5b3VuZ2Vz
dFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQorICAg
ICAgICByb290LT5pbnNlcnRlZEludG9Eb2N1bWVudCgpOworfQorCit2b2lkIFNoYWRvd1Jvb3RM
aXN0OjpyZW1vdmVkRnJvbURvY3VtZW50KCkKK3sKKyAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3Qg
PSB5b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9v
dCgpKQorICAgICAgICByb290LT5yZW1vdmVkRnJvbURvY3VtZW50KCk7Cit9CisKK3ZvaWQgU2hh
ZG93Um9vdExpc3Q6Omluc2VydGVkSW50b1RyZWUoYm9vbCBkZWVwKQoreworICAgIGZvciAoU2hh
ZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+
b2xkZXJTaGFkb3dSb290KCkpCisgICAgICAgIHJvb3QtPmluc2VydGVkSW50b1RyZWUoZGVlcCk7
Cit9CisKK3ZvaWQgU2hhZG93Um9vdExpc3Q6OnJlbW92ZWRGcm9tVHJlZShib29sIGRlZXApCit7
CisgICAgZm9yIChTaGFkb3dSb290KiByb290ID0geW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7
IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKKyAgICAgICAgcm9vdC0+cmVtb3ZlZEZy
b21UcmVlKGRlZXApOworfQorCit2b2lkIFNoYWRvd1Jvb3RMaXN0Ojpob3N0Q2hpbGRyZW5DaGFu
Z2VkKCkKK3sKKyAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB5b3VuZ2VzdFNoYWRvd1Jvb3Qo
KTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQorICAgICAgICByb290LT5o
b3N0Q2hpbGRyZW5DaGFuZ2VkKCk7Cit9CisKK3ZvaWQgU2hhZG93Um9vdExpc3Q6OmF0dGFjaCgp
Cit7CisgICAgZm9yIChTaGFkb3dSb290KiByb290ID0geW91bmdlc3RTaGFkb3dSb290KCk7IHJv
b3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKKyAgICAgICAgcm9vdC0+YXR0YWNo
KCk7Cit9CisKK3ZvaWQgU2hhZG93Um9vdExpc3Q6OmRldGFjaCgpCit7CisgICAgZm9yIChTaGFk
b3dSb290KiByb290ID0geW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5v
bGRlclNoYWRvd1Jvb3QoKSkKKyAgICAgICAgcm9vdC0+ZGV0YWNoKCk7Cit9CisKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmgKaW5kZXggMDU1YmNhYTUxYzhiOTE5OGZjNDVkZDczOTM3
YzI4ODU2NTllYTAzMy4uYzdmYzk4Y2FhOGEyMGI0NGQ1NGM4MzdhYjc4NGU4Y2VmYzQ1ZDAwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmgKQEAgLTQ4LDYgKzQ4LDE2IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHB1c2hTaGFkb3dSb290KFNoYWRvd1Jvb3QqKTsKICAgICBTaGFkb3dSb290
KiBwb3BTaGFkb3dSb290KCk7CiAKKyAgICB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7Cisg
ICAgdm9pZCByZW1vdmVkRnJvbURvY3VtZW50KCk7CisgICAgdm9pZCBpbnNlcnRlZEludG9UcmVl
KGJvb2wgZGVlcCk7CisgICAgdm9pZCByZW1vdmVkRnJvbVRyZWUoYm9vbCBkZWVwKTsKKworICAg
IHZvaWQgaG9zdENoaWxkcmVuQ2hhbmdlZCgpOworCisgICAgdm9pZCBhdHRhY2goKTsKKyAgICB2
b2lkIGRldGFjaCgpOworCiBwcml2YXRlOgogICAgIERvdWJseUxpbmtlZExpc3Q8U2hhZG93Um9v
dD4gbV9zaGFkb3dSb290czsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTaGFkb3dSb290TGlz
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRvcHRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRvcHRlci5jcHAKaW5kZXggMDAzMTdlMzFh
MDRjMjZkZDUxZDY3YWE3NDBkY2YyZjA4ZTE3MmQ2YS4uZTc2MjA5Y2M4MzFmMGJkZmJhYjk3NTU1
NDg2Y2M2NTY2MjhkODRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29w
ZUFkb3B0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmNw
cApAQCAtMjgsMTIgKzI4LDEzIEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJO
b2RlUmFyZURhdGEuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93
Um9vdExpc3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgaW5saW5lIFNoYWRv
d1Jvb3QqIHNoYWRvd1Jvb3RGb3IoTm9kZSogbm9kZSkKIHsKLSAgICByZXR1cm4gbm9kZS0+aXNF
bGVtZW50Tm9kZSgpID8gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3dSb290KCkgOiAwOworICAgIHJl
dHVybiBub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KG5vZGUpLT5oYXNTaGFkb3dS
b290KCkgPyB0b0VsZW1lbnQobm9kZSktPnNoYWRvd1Jvb3RMaXN0KCktPnlvdW5nZXN0U2hhZG93
Um9vdCgpIDogMDsKIH0KIAogdm9pZCBUcmVlU2NvcGVBZG9wdGVyOjptb3ZlVHJlZVRvTmV3U2Nv
cGUoTm9kZSogcm9vdCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmls
ZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmlu
ZGV4IGRmYmJkZjdjZDcwNDhiY2JjM2FmNThlNzAyOTE0Njc0YzU0YmY5ZDYuLjU3NTlmNjc0MTVj
ZDM4MmU1MDBmYmU2NTU4ZDBjMzQzNTdkOTc3MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5w
dXRUeXBlLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIlJlbmRlckZpbGVVcGxvYWRD
b250cm9sLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNoYWRv
d1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9QYXNz
T3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMjY1LDE1ICsyNjYsMTUgQEAgYm9vbCBGaWxlSW5w
dXRUeXBlOjppc0ZpbGVVcGxvYWQoKSBjb25zdAogCiB2b2lkIEZpbGVJbnB1dFR5cGU6OmNyZWF0
ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVChlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7
CisgICAgQVNTRVJUKGVsZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKTsKICAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDsKLSAgICBlbGVtZW50KCktPnNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoZWxl
bWVudCgpLT5tdWx0aXBsZSgpID8gVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlRm9yTXVsdGlw
bGUoZWxlbWVudCgpLT5kb2N1bWVudCgpKTogVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVs
ZW1lbnQoKS0+ZG9jdW1lbnQoKSksIGVjKTsKKyAgICBlbGVtZW50KCktPnNoYWRvd1Jvb3RMaXN0
KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoZWxlbWVudCgpLT5tdWx0aXBsZSgp
ID8gVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlRm9yTXVsdGlwbGUoZWxlbWVudCgpLT5kb2N1
bWVudCgpKTogVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQo
KSksIGVjKTsKIH0KIAogdm9pZCBGaWxlSW5wdXRUeXBlOjptdWx0aXBsZUF0dHJpYnV0ZUNoYW5n
ZWQoKQogewotICAgIEFTU0VSVChlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7Ci0gICAgVXBsb2Fk
QnV0dG9uRWxlbWVudCogYnV0dG9uID0gc3RhdGljX2Nhc3Q8VXBsb2FkQnV0dG9uRWxlbWVudCo+
KGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCkpOworICAgIEFTU0VSVChlbGVt
ZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7CisgICAgVXBsb2FkQnV0dG9uRWxlbWVudCogYnV0dG9u
ID0gc3RhdGljX2Nhc3Q8VXBsb2FkQnV0dG9uRWxlbWVudCo+KGVsZW1lbnQoKS0+c2hhZG93Um9v
dExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCkpOwogICAgIGlmIChidXR0
b24pCiAgICAgICAgIGJ1dHRvbi0+c2V0VmFsdWUoZWxlbWVudCgpLT5tdWx0aXBsZSgpID8gZmls
ZUJ1dHRvbkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpIDogZmlsZUJ1dHRvbkNob29zZUZpbGVM
YWJlbCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcApp
bmRleCAwMTVjZjYxY2ViODMzNzY5OThiNjhlYjZhYjA5ZWY1NjI2NDRhYjQzLi5hYTI2NGMyMTJh
NmNjNjEzODAyOTYzZDBlZTZmMWE5ZDhhOWRmN2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiTW91c2VF
dmVudC5oIgogI2luY2x1ZGUgIlJlbmRlckRldGFpbHMuaCIKICNpbmNsdWRlICJTaGFkb3dSb290
LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEwOCw3ICsxMDksNyBAQCBSZW5kZXJPYmplY3QqIEhUTUxE
ZXRhaWxzRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJT
dHlsZQogCiB2b2lkIEhUTUxEZXRhaWxzRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7
Ci0gICAgQVNTRVJUKCFzaGFkb3dSb290KCkpOworICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgp
KTsKIAogICAgIFJlZlB0cjxTaGFkb3dSb290PiByb290ID0gU2hhZG93Um9vdDo6Y3JlYXRlKHRo
aXMsIFNoYWRvd1Jvb3Q6OkNyZWF0aW5nVXNlckFnZW50U2hhZG93Um9vdCk7CiAgICAgcm9vdC0+
YXBwZW5kQ2hpbGQoRGV0YWlsc1N1bW1hcnlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSksIEFT
U0VSVF9OT19FWENFUFRJT04sIHRydWUpOwpAQCAtMTIyLDcgKzEyMyw3IEBAIEVsZW1lbnQqIEhU
TUxEZXRhaWxzRWxlbWVudDo6ZmluZE1haW5TdW1tYXJ5KCkgY29uc3QKICAgICAgICAgICAgIHJl
dHVybiB0b0VsZW1lbnQoY2hpbGQpOwogICAgIH0KIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxE
ZXRhaWxzU3VtbWFyeUVsZW1lbnQqPihzaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSktPmZhbGxi
YWNrU3VtbWFyeSgpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxEZXRhaWxzU3VtbWFyeUVsZW1l
bnQqPihzaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSkt
PmZhbGxiYWNrU3VtbWFyeSgpOwogfQogCiB2b2lkIEhUTUxEZXRhaWxzRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5jcHAKaW5kZXggZDI5NzRmMDEyOTNiZTVmM2IzZTZmMDY3NGE5ODc2NWE0OGFiZTI2Yy4u
OTFlZWQ1NWRhZmEzNjI4NTU0ODM2NmVjMzVhZTUyOTE2N2UyMTYyMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0xMDksNyArMTA5LDcgQEAgUGFzc1JlZlB0
cjxIVE1MSW5wdXRFbGVtZW50PiBIVE1MSW5wdXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmEKIAogdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0
cmVlKCkKIHsKLSAgICBBU1NFUlQoIXNoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKCFoYXNTaGFk
b3dSb290KCkpOwogICAgIFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290OjpDcmVh
dGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QsIEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgbV9p
bnB1dFR5cGUtPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
S2V5Z2VuRWxlbWVudC5jcHAKaW5kZXggODUyNTI4MTlhYTU4ZTcwYzJkMDM3MTUwNzI1ZDE3YzQ4
OTg5MDEzNS4uZTEwMDc5ZjY0NjRlNzhmNWVlMDc0ZDE1ZjhhYjEyZjZkNzQzMmMyMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAK
ICNpbmNsdWRlICJIVE1MT3B0aW9uRWxlbWVudC5oIgogI2luY2x1ZGUgIlNTTEtleUdlbmVyYXRv
ci5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5o
IgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKQEAg
LTg1LDcgKzg2LDcgQEAgaW5saW5lIEhUTUxLZXlnZW5FbGVtZW50OjpIVE1MS2V5Z2VuRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWUKICAgICAgICAgb3B0aW9uLT5h
cHBlbmRDaGlsZChUZXh0OjpjcmVhdGUoZG9jdW1lbnQsIGtleXNbaV0pLCBlYyk7CiAgICAgfQog
Ci0gICAgQVNTRVJUKCFzaGFkb3dSb290KCkpOworICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgp
KTsKICAgICBSZWZQdHI8U2hhZG93Um9vdD4gcm9vdCA9IFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlz
LCBTaGFkb3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QpOwogICAgIHJvb3QtPmFw
cGVuZENoaWxkKHNlbGVjdCwgZWMpOwogfQpAQCAtMTMwLDggKzEzMSw4IEBAIHZvaWQgSFRNTEtl
eWdlbkVsZW1lbnQ6OnJlc2V0KCkKIAogSFRNTFNlbGVjdEVsZW1lbnQqIEhUTUxLZXlnZW5FbGVt
ZW50OjpzaGFkb3dTZWxlY3QoKSBjb25zdAogewotICAgIFNoYWRvd1Jvb3QqIHNoYWRvdyA9IHNo
YWRvd1Jvb3QoKTsKLSAgICBBU1NFUlQoc2hhZG93KTsKKyAgICBBU1NFUlQoaGFzU2hhZG93Um9v
dCgpKTsKKyAgICBTaGFkb3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290TGlzdCgpLT5vbGRlc3RT
aGFkb3dSb290KCk7CiAgICAgcmV0dXJuIHNoYWRvdyA/IHRvSFRNTFNlbGVjdEVsZW1lbnQoc2hh
ZG93LT5maXJzdENoaWxkKCkpIDogMDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKaW5kZXggZTVmZmMwODU2MmVjNDI1OTA0NWUxOWFiYjA5ZDQ4NWYyMjc3MjIw
Yi4uNjdhZDFkOWM1MWZjYjkwYWIzZjJhZDEwYTIyODhiZmJhOWRhZGNhZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC03MSw2ICs3MSw3IEBACiAjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNo
YWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlRpbWVS
YW5nZXMuaCIKICNpbmNsdWRlICJVVUlELmgiCiAjaW5jbHVkZSA8bGltaXRzPgpAQCAtMzUxOSwx
NSArMzUyMCwxNSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnByaXZhdGVCcm93c2luZ1N0YXRl
RGlkQ2hhbmdlKCkKIAogTWVkaWFDb250cm9scyogSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFDb250
cm9scygpCiB7Ci0gICAgcmV0dXJuIHRvTWVkaWFDb250cm9scyhzaGFkb3dSb290KCktPmZpcnN0
Q2hpbGQoKSk7CisgICAgcmV0dXJuIHRvTWVkaWFDb250cm9scyhzaGFkb3dSb290TGlzdCgpLT5v
bGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSk7CiB9CiAKIGJvb2wgSFRNTE1lZGlhRWxl
bWVudDo6aGFzTWVkaWFDb250cm9scygpCiB7Ci0gICAgaWYgKCFzaGFkb3dSb290KCkpCisgICAg
aWYgKCFoYXNTaGFkb3dSb290KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIE5vZGUq
IG5vZGUgPSBzaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsKKyAgICBOb2RlKiBub2RlID0gc2hh
ZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCk7CiAgICAgcmV0
dXJuIG5vZGUgJiYgbm9kZS0+aXNNZWRpYUNvbnRyb2xzKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCmluZGV4IGExZmRhZjZjNzJkNGIwNjUxMmU4NDIxZGU4
MDBlNTIwYmNhYTdhNzkuLjdjODM5OTQ1YmJiNTcxMWZkZjQxODVlYzdlNzY3MGU2MzYwMTY0M2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcApAQCAtMjM0LDcgKzIz
NCw3IEBAIHZvaWQgSFRNTE1ldGVyRWxlbWVudDo6ZGlkRWxlbWVudFN0YXRlQ2hhbmdlKCkKIAog
dm9pZCBIVE1MTWV0ZXJFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKLSAgICBBU1NF
UlQoIXNoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkpOwogCiAgICAg
UmVmUHRyPE1ldGVyQmFyRWxlbWVudD4gYmFyID0gTWV0ZXJCYXJFbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQoKSk7CiAgICAgbV92YWx1ZSA9IE1ldGVyVmFsdWVFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAppbmRl
eCAwYzIzNzI1ODFmNzlhZmY0ZGFjNTQ4YTBiYTdlNDRjNTZhYTliNWYwLi5lZDY5NTBjM2Y3OTIw
NTM4NWIxOTQzOTk2MWIwNzZiMWZkMDUyM2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFByb2dyZXNzRWxlbWVudC5jcHAKQEAgLTE1Myw3ICsxNTMsNyBAQCB2b2lkIEhUTUxQcm9ncmVz
c0VsZW1lbnQ6OmRpZEVsZW1lbnRTdGF0ZUNoYW5nZSgpCiAKIHZvaWQgSFRNTFByb2dyZXNzRWxl
bWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJUKCFzaGFkb3dSb290KCkp
OworICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsKIAogICAgIFJlZlB0cjxQcm9ncmVzc0Jh
ckVsZW1lbnQ+IGJhciA9IFByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwog
ICAgIG1fdmFsdWUgPSBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCmluZGV4IDZiYzZlYWM2
NjA1NzFmNTZlOTc1MGM3NmNkMTdiOWVkNjU1OTBiODYuLmUyOTU3YjIxZWNlZWZlNDY5M2JmOWRh
YzRhNmM3YTAzYzBlYTBmMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1
bW1hcnlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxl
bWVudC5jcHAKQEAgLTMxLDggKzMxLDggQEAKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyU3VtbWFyeS5oIgot
CiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzQsNyArNzQsNyBAQCBSZW5kZXJPYmplY3QqIEhU
TUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5k
ZXJTdHlsZQogCiB2b2lkIEhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSgp
CiB7Ci0gICAgQVNTRVJUKCFzaGFkb3dSb290KCkpOworICAgIEFTU0VSVCghaGFzU2hhZG93Um9v
dCgpKTsKICAgICBSZWZQdHI8U2hhZG93Um9vdD4gcm9vdCA9IFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0
aGlzLCBTaGFkb3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QpOwogICAgIHJvb3Qt
PmFwcGVuZENoaWxkKERldGFpbHNNYXJrZXJDb250cm9sOjpjcmVhdGUoZG9jdW1lbnQoKSksIEFT
U0VSVF9OT19FWENFUFRJT04sIHRydWUpOwogICAgIHJvb3QtPmFwcGVuZENoaWxkKFN1bW1hcnlD
b250ZW50RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0
cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCmluZGV4
IDEzY2IzZWMzODZkYTllZTdkYjhjNjk4NDlkNDc0MzRhY2VjNjRlMWQuLjU5Y2U4MGUyOWU4MTBh
ZDQwOGMxNTgyYjE3ZGU1MjBmYTY1YjFiOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEFyZWFFbGVtZW50LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmgiCiAjaW5jbHVkZSAi
U2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSAiVGV4
dC5oIgogI2luY2x1ZGUgIlRleHRDb250cm9sSW5uZXJFbGVtZW50cy5oIgogI2luY2x1ZGUgIlRl
eHRJdGVyYXRvci5oIgpAQCAtODQsNyArODUsNyBAQCBQYXNzUmVmUHRyPEhUTUxUZXh0QXJlYUVs
ZW1lbnQ+IEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJgog
CiB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAg
IEFTU0VSVCghc2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoIWhhc1NoYWRvd1Jvb3QoKSk7CiAg
ICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IHJvb3QgPSBTaGFkb3dSb290OjpjcmVhdGUodGhpcywgU2hh
ZG93Um9vdDo6Q3JlYXRpbmdVc2VyQWdlbnRTaGFkb3dSb290KTsKICAgICByb290LT5hcHBlbmRD
aGlsZChUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNT
RVJUX05PX0VYQ0VQVElPTik7CiB9CkBAIC0yOTMsNyArMjk0LDcgQEAgU3RyaW5nIEhUTUxUZXh0
QXJlYUVsZW1lbnQ6OnNhbml0aXplVXNlcklucHV0VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wb3Nl
ZFZhbHVlLAogCiBIVE1MRWxlbWVudCogSFRNTFRleHRBcmVhRWxlbWVudDo6aW5uZXJUZXh0RWxl
bWVudCgpIGNvbnN0CiB7Ci0gICAgTm9kZSogbm9kZSA9IHNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGls
ZCgpOworICAgIE5vZGUqIG5vZGUgPSBzaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290
KCktPmZpcnN0Q2hpbGQoKTsKICAgICBBU1NFUlQoIW5vZGUgfHwgbm9kZS0+aGFzVGFnTmFtZShk
aXZUYWcpKTsKICAgICByZXR1cm4gdG9IVE1MRWxlbWVudChub2RlKTsKIH0KQEAgLTQ3MCw3ICs0
NzEsNyBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgp
CiAgICAgU3RyaW5nIHBsYWNlaG9sZGVyVGV4dCA9IHN0cmlwcGVkUGxhY2Vob2xkZXIoKTsKICAg
ICBpZiAocGxhY2Vob2xkZXJUZXh0LmlzRW1wdHkoKSkgewogICAgICAgICBpZiAobV9wbGFjZWhv
bGRlcikgewotICAgICAgICAgICAgc2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZChtX3BsYWNlaG9s
ZGVyLmdldCgpLCBlYyk7CisgICAgICAgICAgICBzaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFk
b3dSb290KCktPnJlbW92ZUNoaWxkKG1fcGxhY2Vob2xkZXIuZ2V0KCksIGVjKTsKICAgICAgICAg
ICAgIEFTU0VSVCghZWMpOwogICAgICAgICAgICAgbV9wbGFjZWhvbGRlci5jbGVhcigpOwogICAg
ICAgICB9CkBAIC00NzksNyArNDgwLDcgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50Ojp1cGRh
dGVQbGFjZWhvbGRlclRleHQoKQogICAgIGlmICghbV9wbGFjZWhvbGRlcikgewogICAgICAgICBt
X3BsYWNlaG9sZGVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKICAgICAg
ICAgbV9wbGFjZWhvbGRlci0+c2V0U2hhZG93UHNldWRvSWQoIi13ZWJraXQtaW5wdXQtcGxhY2Vo
b2xkZXIiKTsKLSAgICAgICAgc2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUobV9wbGFjZWhvbGRl
ciwgc2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCktPm5leHRTaWJsaW5nKCksIGVjKTsKKyAgICAg
ICAgc2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUobV9w
bGFjZWhvbGRlciwgc2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENo
aWxkKCktPm5leHRTaWJsaW5nKCksIGVjKTsKICAgICAgICAgQVNTRVJUKCFlYyk7CiAgICAgfQog
ICAgIG1fcGxhY2Vob2xkZXItPnNldElubmVyVGV4dChwbGFjZWhvbGRlclRleHQsIGVjKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRUeXBlLmNwcAppbmRleCA4MDBjMjFjZmY4OTI5YzA3YjNlNjlkZGQyMDBl
MDA4NDMwMjk1NTY3Li4xNTJlZjc0ZTNlOTY2NjMwMmZhODRkYTI0ZDk4MjVlN2QwMTE3ZDNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC01Niw2ICs1Niw3IEBACiAjaW5jbHVkZSAi
UmVzZXRJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJTZWFyY2hJbnB1dFR5cGUuaCIKICNpbmNsdWRl
ICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJT
dWJtaXRJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJUZWxlcGhvbmVJbnB1dFR5cGUuaCIKICNpbmNs
dWRlICJUZXh0SW5wdXRUeXBlLmgiCkBAIC0zNzgsOCArMzc5LDEzIEBAIHZvaWQgSW5wdXRUeXBl
OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIAogdm9pZCBJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dT
dWJ0cmVlKCkKIHsKLSAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IGVsZW1lbnQoKS0+c2hhZG93
Um9vdCgpKQotICAgICAgICByb290LT5yZW1vdmVBbGxDaGlsZHJlbigpOworICAgIGlmICghZWxl
bWVudCgpLT5oYXNTaGFkb3dSb290KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChTaGFk
b3dSb290KiByb290ID0gZWxlbWVudCgpLT5zaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dS
b290KCkpIHsKKyAgICAgICAgd2hpbGUgKHJvb3QtPmhhc0NoaWxkTm9kZXMoKSkKKyAgICAgICAg
ICAgIHJvb3QtPnJlbW92ZUNoaWxkKHJvb3QtPmZpcnN0Q2hpbGQoKSk7CisgICAgfQogfQogCiBk
b3VibGUgSW5wdXRUeXBlOjpwYXJzZVRvRG91YmxlKGNvbnN0IFN0cmluZyYsIGRvdWJsZSBkZWZh
dWx0VmFsdWUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5w
dXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCmluZGV4
IDE0NzQxODU2MmI2YjJkZjBlZDc1OWM0MGI1YjZlNWViNDFkZTM2YzkuLmExNzRjZTdhZjMxZTk3
M2U3NGQ0YzI5ODZlMDRkYWZkYTI1Njg4ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1
dFR5cGUuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50
LmgiCiAjaW5jbHVkZSAiUmVuZGVyU2xpZGVyLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgor
I2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSAiU2xpZGVyVGh1bWJFbGVtZW50
LmgiCiAjaW5jbHVkZSAiU3RlcFJhbmdlLmgiCiAjaW5jbHVkZSA8bGltaXRzPgpAQCAtMTU3LDcg
KzE1OCwxMCBAQCB2b2lkIFJhbmdlSW5wdXRUeXBlOjpoYW5kbGVNb3VzZURvd25FdmVudChNb3Vz
ZUV2ZW50KiBldmVudCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgTm9kZSogdGFyZ2V0Tm9kZSA9
IGV2ZW50LT50YXJnZXQoKS0+dG9Ob2RlKCk7Ci0gICAgaWYgKGV2ZW50LT5idXR0b24oKSAhPSBM
ZWZ0QnV0dG9uIHx8ICF0YXJnZXROb2RlIHx8ICh0YXJnZXROb2RlICE9IGVsZW1lbnQoKSAmJiAh
dGFyZ2V0Tm9kZS0+aXNEZXNjZW5kYW50T2YoZWxlbWVudCgpLT5zaGFkb3dSb290KCkpKSkKKyAg
ICBpZiAoZXZlbnQtPmJ1dHRvbigpICE9IExlZnRCdXR0b24gfHwgIXRhcmdldE5vZGUpCisgICAg
ICAgIHJldHVybjsKKyAgICBBU1NFUlQoZWxlbWVudCgpLT5oYXNTaGFkb3dSb290KCkpOworICAg
IGlmICh0YXJnZXROb2RlICE9IGVsZW1lbnQoKSAmJiAhdGFyZ2V0Tm9kZS0+aXNEZXNjZW5kYW50
T2YoZWxlbWVudCgpLT5zaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCkpKQogICAg
ICAgICByZXR1cm47CiAgICAgU2xpZGVyVGh1bWJFbGVtZW50KiB0aHVtYiA9IHNsaWRlclRodW1i
RWxlbWVudE9mKGVsZW1lbnQoKSk7CiAgICAgaWYgKHRhcmdldE5vZGUgPT0gdGh1bWIpCkBAIC0y
MzMsNyArMjM3LDcgQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50KEtl
eWJvYXJkRXZlbnQqIGV2ZW50KQogCiB2b2lkIFJhbmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dT
dWJ0cmVlKCkKIHsKLSAgICBBU1NFUlQoZWxlbWVudCgpLT5zaGFkb3dSb290KCkpOworICAgIEFT
U0VSVChlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7CiAKICAgICBEb2N1bWVudCogZG9jdW1l
bnQgPSBlbGVtZW50KCktPmRvY3VtZW50KCk7CiAgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiB0
cmFjayA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwpAQCAtMjQzLDcgKzI0Nyw3
IEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIFJlZlB0
cjxIVE1MRWxlbWVudD4gY29udGFpbmVyID0gU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKICAgICBjb250YWluZXItPmFwcGVuZENoaWxkKHRyYWNrLnJlbGVhc2UoKSwg
ZWMpOwogICAgIGNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoVHJhY2tMaW1pdGVyRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KSwgZWMpOwotICAgIGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpLT5hcHBlbmRD
aGlsZChjb250YWluZXIucmVsZWFzZSgpLCBlYyk7CisgICAgZWxlbWVudCgpLT5zaGFkb3dSb290
TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKGNvbnRhaW5lci5yZWxlYXNl
KCksIGVjKTsKIH0KIAogUmVuZGVyT2JqZWN0KiBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlUmVuZGVy
ZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSopIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKaW5kZXggNTZlNTVkMzg4ZTM3NzhmNmQ1Mzk2
MjFiMjE4YjJiZjk0ZmMzNzU5NC4uYThjMDk0NmU1Y2NhMmVlZjllYTUwMDBkMmI2ZDJlOGY2OWQ5
YTQ3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcApAQCAt
NDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oIgog
I2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1
ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSAiVGV4dENvbnRyb2xJbm5lckVsZW1lbnRz
LmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCkBA
IC0xODksNyArMTkwLDcgQEAgYm9vbCBUZXh0RmllbGRJbnB1dFR5cGU6Om5lZWRzQ29udGFpbmVy
KCkgY29uc3QKIAogdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUo
KQogewotICAgIEFTU0VSVChlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKGVs
ZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKTsKIAogICAgIEFTU0VSVCghbV9pbm5lclRleHQpOwog
ICAgIEFTU0VSVCghbV9pbm5lckJsb2NrKTsKQEAgLTIwMywxMSArMjA0LDExIEBAIHZvaWQgVGV4
dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKICAgICBtX2lubmVyVGV4dCA9IFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KTsKICAgICBpZiAoIWNyZWF0ZXNDb250YWluZXIpIHsKLSAgICAgICAg
ZWxlbWVudCgpLT5zaGFkb3dSb290KCktPmFwcGVuZENoaWxkKG1faW5uZXJUZXh0LCBlYyk7Cisg
ICAgICAgIGVsZW1lbnQoKS0+c2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5h
cHBlbmRDaGlsZChtX2lubmVyVGV4dCwgZWMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgU2hhZG93Um9vdCogc2hhZG93Um9vdCA9IGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpOworICAg
IFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSBlbGVtZW50KCktPnNoYWRvd1Jvb3RMaXN0KCktPm9s
ZGVzdFNoYWRvd1Jvb3QoKTsKICAgICBtX2NvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOwogICAgIG1fY29udGFpbmVyLT5zZXRTaGFkb3dQc2V1ZG9JZCgiLXdlYmtp
dC10ZXh0ZmllbGQtZGVjb3JhdGlvbi1jb250YWluZXIiKTsKICAgICBzaGFkb3dSb290LT5hcHBl
bmRDaGlsZChtX2NvbnRhaW5lciwgZWMpOwpAQCAtMzY5LDcgKzM3MCw3IEBAIHZvaWQgVGV4dEZp
ZWxkSW5wdXRUeXBlOjp1cGRhdGVQbGFjZWhvbGRlclRleHQoKQogICAgIGlmICghbV9wbGFjZWhv
bGRlcikgewogICAgICAgICBtX3BsYWNlaG9sZGVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShl
bGVtZW50KCktPmRvY3VtZW50KCkpOwogICAgICAgICBtX3BsYWNlaG9sZGVyLT5zZXRTaGFkb3dQ
c2V1ZG9JZCgiLXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciIpOwotICAgICAgICBlbGVtZW50KCkt
PnNoYWRvd1Jvb3QoKS0+aW5zZXJ0QmVmb3JlKG1fcGxhY2Vob2xkZXIsIG1fY29udGFpbmVyID8g
bV9jb250YWluZXItPm5leHRTaWJsaW5nKCkgOiBpbm5lclRleHRFbGVtZW50KCktPm5leHRTaWJs
aW5nKCksIGVjKTsKKyAgICAgICAgZWxlbWVudCgpLT5zaGFkb3dSb290TGlzdCgpLT5vbGRlc3RT
aGFkb3dSb290KCktPmluc2VydEJlZm9yZShtX3BsYWNlaG9sZGVyLCBtX2NvbnRhaW5lciA/IG1f
Y29udGFpbmVyLT5uZXh0U2libGluZygpIDogaW5uZXJUZXh0RWxlbWVudCgpLT5uZXh0U2libGlu
ZygpLCBlYyk7CiAgICAgICAgIEFTU0VSVCghZWMpOwogICAgIH0KICAgICBtX3BsYWNlaG9sZGVy
LT5zZXRJbm5lclRleHQocGxhY2Vob2xkZXJUZXh0LCBlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VmFsaWRhdGlvbk1lc3NhZ2UuY3BwCmluZGV4IGJjM2M0NTQ4OWRmYjg2MmExNGJiNGU1MzBlNzA0
YjlhOGNkYzY2OGMuLmJiOGExOTViODRjMmJlMGYxMDJiZWNhMzczZWM2NWRmYTkxYjNmY2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCkBAIC00NCw2ICs0NCw3
IEBACiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNp
bmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNs
dWRlICJUZXh0LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIApAQCAtMTg3LDcgKzE4
OCw3IEBAIHZvaWQgVmFsaWRhdGlvbk1lc3NhZ2U6OmRlbGV0ZUJ1YmJsZVRyZWUoVGltZXI8VmFs
aWRhdGlvbk1lc3NhZ2U+KikKICAgICAgICAgbV9tZXNzYWdlQm9keSA9IDA7CiAgICAgICAgIEhU
TUxFbGVtZW50KiBob3N0ID0gdG9IVE1MRWxlbWVudChtX2VsZW1lbnQpOwogICAgICAgICBFeGNl
cHRpb25Db2RlIGVjOwotICAgICAgICBob3N0LT5zaGFkb3dSb290KCktPnJlbW92ZUNoaWxkKG1f
YnViYmxlLmdldCgpLCBlYyk7CisgICAgICAgIGhvc3QtPnNoYWRvd1Jvb3RMaXN0KCktPm9sZGVz
dFNoYWRvd1Jvb3QoKS0+cmVtb3ZlQ2hpbGQobV9idWJibGUuZ2V0KCksIGVjKTsKICAgICAgICAg
bV9idWJibGUgPSAwOwogICAgIH0KICAgICBtX21lc3NhZ2UgPSBTdHJpbmcoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCmluZGV4IDMx
OWExMWU4MDI1MmZhYzI4NmJlODQwZDJiZjc2MzU0MGY1OGVlYjcuLmFiZjViMzU4YjU1NDk5ZGVi
YjkxZTU3MjczOTBiNDA5OGQzMzdlNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUg
IlJlbmRlclNsaWRlci5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSAiU3RlcFJh
bmdlLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIApAQCAtNjYsNyArNjcsNyBAQCBp
bmxpbmUgc3RhdGljIGJvb2wgaGFzVmVydGljYWxBcHBlYXJhbmNlKEhUTUxJbnB1dEVsZW1lbnQq
IGlucHV0KQogU2xpZGVyVGh1bWJFbGVtZW50KiBzbGlkZXJUaHVtYkVsZW1lbnRPZihOb2RlKiBu
b2RlKQogewogICAgIEFTU0VSVChub2RlKTsKLSAgICBTaGFkb3dSb290KiBzaGFkb3cgPSBub2Rl
LT50b0lucHV0RWxlbWVudCgpLT5zaGFkb3dSb290KCk7CisgICAgU2hhZG93Um9vdCogc2hhZG93
ID0gbm9kZS0+dG9JbnB1dEVsZW1lbnQoKS0+c2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93
Um9vdCgpOwogICAgIEFTU0VSVChzaGFkb3cpOwogICAgIE5vZGUqIHRodW1iID0gc2hhZG93LT5m
aXJzdENoaWxkKCktPmZpcnN0Q2hpbGQoKS0+Zmlyc3RDaGlsZCgpOwogICAgIEFTU0VSVCh0aHVt
Yik7CkBAIC0xNDEsNyArMTQyLDcgQEAgdm9pZCBSZW5kZXJTbGlkZXJDb250YWluZXI6OmxheW91
dCgpCiAgICAgTGVuZ3RoIGlucHV0SGVpZ2h0ID0gaW5wdXQtPnJlbmRlcmVyKCktPnN0eWxlKCkt
PmhlaWdodCgpOwogICAgIFJlbmRlck9iamVjdCogdHJhY2tSZW5kZXJlciA9IG5vZGUoKS0+Zmly
c3RDaGlsZCgpLT5yZW5kZXJlcigpOwogICAgIGlmICghaXNWZXJ0aWNhbCAmJiBpbnB1dC0+cmVu
ZGVyZXIoKS0+aXNTbGlkZXIoKSAmJiAhaW5wdXRIZWlnaHQuaXNGaXhlZCgpICYmICFpbnB1dEhl
aWdodC5pc1BlcmNlbnQoKSkgewotICAgICAgICBSZW5kZXJPYmplY3QqIHRodW1iUmVuZGVyZXIg
PSBpbnB1dC0+c2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCktPmZpcnN0Q2hpbGQoKS0+Zmlyc3RD
aGlsZCgpLT5yZW5kZXJlcigpOworICAgICAgICBSZW5kZXJPYmplY3QqIHRodW1iUmVuZGVyZXIg
PSBpbnB1dC0+c2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxk
KCktPmZpcnN0Q2hpbGQoKS0+Zmlyc3RDaGlsZCgpLT5yZW5kZXJlcigpOwogICAgICAgICBpZiAo
dGh1bWJSZW5kZXJlcikgewogICAgICAgICAgICAgc3R5bGUoKS0+c2V0SGVpZ2h0KHRodW1iUmVu
ZGVyZXItPnN0eWxlKCktPmhlaWdodCgpKTsKICAgICAgICAgICAgIGlmICh0cmFja1JlbmRlcmVy
KQpAQCAtMzU1LDcgKzM1Niw4IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgVHJhY2tMaW1pdGVyRWxl
bWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogVHJhY2tMaW1pdGVyRWxlbWVudCogdHJhY2tM
aW1pdGVyRWxlbWVudE9mKE5vZGUqIG5vZGUpCiB7CiAgICAgQVNTRVJUKG5vZGUpOwotICAgIFNo
YWRvd1Jvb3QqIHNoYWRvdyA9IG5vZGUtPnRvSW5wdXRFbGVtZW50KCktPnNoYWRvd1Jvb3QoKTsK
KyAgICBBU1NFUlQobm9kZS0+dG9JbnB1dEVsZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKTsKKyAg
ICBTaGFkb3dSb290KiBzaGFkb3cgPSBub2RlLT50b0lucHV0RWxlbWVudCgpLT5zaGFkb3dSb290
TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCk7CiAgICAgQVNTRVJUKHNoYWRvdyk7CiAgICAgTm9k
ZSogbGltaXRlciA9IHNoYWRvdy0+Zmlyc3RDaGlsZCgpLT5sYXN0Q2hpbGQoKTsKICAgICBBU1NF
UlQobGltaXRlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKaW5kZXgg
NTE0MjZhMzA4NjI0Yjk4NTg4YjBlMDZmOTFjYjZkNjQ4MWFjOGY4YS4uYWE5OGMwMjQ5ZmIwNDQ5
NDQ3N2Q1NDE2NGMzMDk1ZGUyMzY5MmY4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250
cm9sbGVyLmNwcApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgIlNjcm9sbEFuaW1hdG9yLmgi
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVk
ZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJTcGF0aWFsTmF2aWdhdGlvbi5oIgogI2lu
Y2x1ZGUgIldpZGdldC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiIC8vIEZvciBmaXJzdFBv
c2l0aW9uSW5PckJlZm9yZU5vZGUKQEAgLTE1NCw3ICsxNTUsNyBAQCB2b2lkIEZvY3VzQ29udHJv
bGxlcjo6c2V0Rm9jdXNlZChib29sIGZvY3VzZWQpCiAKIHN0YXRpYyBpbmxpbmUgU2hhZG93Um9v
dCogc2hhZG93Um9vdChOb2RlKiBub2RlKQogewotICAgIHJldHVybiBub2RlLT5pc0VsZW1lbnRO
b2RlKCkgPyB0b0VsZW1lbnQobm9kZSktPnNoYWRvd1Jvb3QoKSA6IDA7CisgICAgcmV0dXJuIG5v
ZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jvb3QoKSA/
IHRvRWxlbWVudChub2RlKS0+c2hhZG93Um9vdExpc3QoKS0+eW91bmdlc3RTaGFkb3dSb290KCkg
OiAwOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgaXNUcmVlU2NvcGVPd25lcihOb2RlKiBub2Rl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRD
b250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29u
dHJvbC5jcHAKaW5kZXggYTFhZTE1YjVjOWMwMDU0MTFkMzE2MjIxNTI2OTA5N2Q4OTRlMDA3Yi4u
ODQzNzMwMzJkOWZiYmI0ZDhiNjQ4YTdkODQyY2YwYWMwZTYwYTkzZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCkBAIC0z
Miw2ICszMiw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclRo
ZW1lLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0
LmgiCiAjaW5jbHVkZSAiVGV4dFJ1bi5oIgogI2luY2x1ZGUgIlZpc2libGVQb3NpdGlvbi5oIgog
I2luY2x1ZGUgPG1hdGguaD4KQEAgLTIxMiw5ICsyMTMsOSBAQCBIVE1MSW5wdXRFbGVtZW50KiBS
ZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6dXBsb2FkQnV0dG9uKCkgY29uc3QKIHsKICAgICBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2Rl
KCkpOwogCi0gICAgQVNTRVJUKGlucHV0LT5zaGFkb3dSb290KCkpOworICAgIEFTU0VSVChpbnB1
dC0+aGFzU2hhZG93Um9vdCgpKTsKIAotICAgIE5vZGUqIGJ1dHRvbk5vZGUgPSBpbnB1dC0+c2hh
ZG93Um9vdCgpLT5maXJzdENoaWxkKCk7CisgICAgTm9kZSogYnV0dG9uTm9kZSA9IGlucHV0LT5z
aGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsKICAgICBy
ZXR1cm4gYnV0dG9uTm9kZSAmJiBidXR0b25Ob2RlLT5pc0hUTUxFbGVtZW50KCkgJiYgYnV0dG9u
Tm9kZS0+aGFzVGFnTmFtZShpbnB1dFRhZykgPyBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50
Kj4oYnV0dG9uTm9kZSkgOiAwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVFJlZkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNw
cAppbmRleCA5OGI4ZjkxM2ZhMTYzMmI3MTczOTY0MjBlZDNlZTZkODBkYzJjOWM0Li4xMjJkN2M0
M2NjMmQwYjFhNTRlN2FhYWM0YjczNWQ0YWYwODhkMWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
UmVmRWxlbWVudC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJSZW5kZXJTVkdJbmxp
bmVUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3VyY2UuaCIKICNpbmNsdWRlICJTaGFk
b3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJTVkdEb2N1
bWVudC5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnRJbnN0YW5jZS5oIgogI2luY2x1ZGUgIlNWR05h
bWVzLmgiCkBAIC0xNTksMTAgKzE2MCwxMiBAQCB2b2lkIFNWR1RSZWZFbGVtZW50Ojp1cGRhdGVS
ZWZlcmVuY2VkVGV4dCgpCiAgICAgaWYgKHRhcmdldC0+cGFyZW50Tm9kZSgpKQogICAgICAgICB0
ZXh0Q29udGVudCA9IHRhcmdldC0+dGV4dENvbnRlbnQoKTsKIAotICAgIGlmICghc2hhZG93Um9v
dCgpLT5maXJzdENoaWxkKCkpCi0gICAgICAgIHNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoU1ZH
U2hhZG93VGV4dDo6Y3JlYXRlKGRvY3VtZW50KCksIHRleHRDb250ZW50KSwgQVNTRVJUX05PX0VY
Q0VQVElPTik7CisgICAgQVNTRVJUKGhhc1NoYWRvd1Jvb3QoKSk7CisgICAgU2hhZG93Um9vdCog
cm9vdCA9IHNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKKyAgICBpZiAoIXJv
b3QtPmZpcnN0Q2hpbGQoKSkKKyAgICAgICAgcm9vdC0+YXBwZW5kQ2hpbGQoU1ZHU2hhZG93VGV4
dDo6Y3JlYXRlKGRvY3VtZW50KCksIHRleHRDb250ZW50KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7
CiAgICAgZWxzZQotICAgICAgICBzaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKS0+c2V0VGV4dENv
bnRlbnQodGV4dENvbnRlbnQsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICByb290LT5m
aXJzdENoaWxkKCktPnNldFRleHRDb250ZW50KHRleHRDb250ZW50LCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKIH0KIAogYm9vbCBTVkdUUmVmRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKaW5kZXggMTI2NDdkZmUzMTc5MzY4MzlmOTEzMzRjODg2NWQ3NGM3NzZjZWVlOC4uZWIzYTVi
N2IwNTMxOTE0NGRlNDQ3MWRmYTBmYjVmMGVkOGU4N2RmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgIlJlbmRlclRyZWVBc1Rl
eHQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNp
bmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlNwZWxsQ2hlY2tlci5oIgogI2lu
Y2x1ZGUgIlRleHRJdGVyYXRvci5oIgogCkBAIC0xOTMsMjAgKzE5NCw0MyBAQCBJbnRlcm5hbHM6
OlNoYWRvd1Jvb3RJZlNoYWRvd0RPTUVuYWJsZWRPck5vZGUqIEludGVybmFsczo6ZW5zdXJlU2hh
ZG93Um9vdChFbGVtZQogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBpZiAoU2hhZG93
Um9vdCogcm9vdCA9IGhvc3QtPnNoYWRvd1Jvb3QoKSkKLSAgICAgICAgcmV0dXJuIHJvb3Q7Cisg
ICAgaWYgKGhvc3QtPmhhc1NoYWRvd1Jvb3QoKSkKKyAgICAgICAgcmV0dXJuIGhvc3QtPnNoYWRv
d1Jvb3RMaXN0KCktPnlvdW5nZXN0U2hhZG93Um9vdCgpOwogCiAgICAgcmV0dXJuIFNoYWRvd1Jv
b3Q6OmNyZWF0ZShob3N0LCBlYykuZ2V0KCk7CiB9CiAKIEludGVybmFsczo6U2hhZG93Um9vdElm
U2hhZG93RE9NRW5hYmxlZE9yTm9kZSogSW50ZXJuYWxzOjpzaGFkb3dSb290KEVsZW1lbnQqIGhv
c3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQogeworICAgIC8vIEZJWE1FOiBJbnRlcm5hbHM6OnNoYWRv
d1Jvb3QoKSBpbiB0ZXN0cyBzaG91bGQgYmUgY29udmVydGVkIHRvIHlvdW5nZXN0U2hhZG93Um9v
dCgpIG9yIG9sZGVzdFNoYWRvd1Jvb3QoKS4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Nzg0NjUKKyAgICByZXR1cm4geW91bmdlc3RTaGFkb3dSb290KGhv
c3QsIGVjKTsKK30KKworSW50ZXJuYWxzOjpTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JO
b2RlKiBJbnRlcm5hbHM6OnlvdW5nZXN0U2hhZG93Um9vdChFbGVtZW50KiBob3N0LCBFeGNlcHRp
b25Db2RlJiBlYykKK3sKICAgICBpZiAoIWhvc3QpIHsKICAgICAgICAgZWMgPSBJTlZBTElEX0FD
Q0VTU19FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIHJldHVybiBob3N0LT5z
aGFkb3dSb290KCk7CisgICAgaWYgKCFob3N0LT5oYXNTaGFkb3dSb290KCkpCisgICAgICAgIHJl
dHVybiAwOworCisgICAgcmV0dXJuIGhvc3QtPnNoYWRvd1Jvb3RMaXN0KCktPnlvdW5nZXN0U2hh
ZG93Um9vdCgpOworfQorCitJbnRlcm5hbHM6OlNoYWRvd1Jvb3RJZlNoYWRvd0RPTUVuYWJsZWRP
ck5vZGUqIEludGVybmFsczo6b2xkZXN0U2hhZG93Um9vdChFbGVtZW50KiBob3N0LCBFeGNlcHRp
b25Db2RlJiBlYykKK3sKKyAgICBpZiAoIWhvc3QpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FD
Q0VTU19FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIGlmICghaG9zdC0+aGFz
U2hhZG93Um9vdCgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBob3N0LT5zaGFk
b3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCk7CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjpy
ZW1vdmVTaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggNDM5ZGM3NWM2ZTE1ZmJjYWU4MmM2N2NhZmU3OWYw
YjIxYWZkYmUwZS4uZDM4ZDg4MGEyZjgzYjk4OWI4OTgzM2ZjZmUwNDQ1MjU3NTE3NThhYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC02Niw2ICs2Niw4IEBAIHB1YmxpYzoKICNl
bmRpZgogICAgIFNoYWRvd1Jvb3RJZlNoYWRvd0RPTUVuYWJsZWRPck5vZGUqIGVuc3VyZVNoYWRv
d1Jvb3QoRWxlbWVudCogaG9zdCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFNoYWRvd1Jvb3RJZlNo
YWRvd0RPTUVuYWJsZWRPck5vZGUqIHNoYWRvd1Jvb3QoRWxlbWVudCogaG9zdCwgRXhjZXB0aW9u
Q29kZSYpOworICAgIFNoYWRvd1Jvb3RJZlNoYWRvd0RPTUVuYWJsZWRPck5vZGUqIHlvdW5nZXN0
U2hhZG93Um9vdChFbGVtZW50KiBob3N0LCBFeGNlcHRpb25Db2RlJik7CisgICAgU2hhZG93Um9v
dElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogb2xkZXN0U2hhZG93Um9vdChFbGVtZW50KiBob3N0
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCByZW1vdmVTaGFkb3dSb290KEVsZW1lbnQqIGhv
c3QsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBFbGVtZW50KiBpbmNsdWRlckZvcihOb2RlKiwgRXhj
ZXB0aW9uQ29kZSYpOwogICAgIFN0cmluZyBzaGFkb3dQc2V1ZG9JZChFbGVtZW50KiwgRXhjZXB0
aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDliZjA1NzUx
ZDliNmEyZjRhODFmMDcwOTljOTNjN2E2ZDNhOGEwNTMuLjc1Njc2ZjZhYTJiNzkyZDY1MGRiNWJm
NzExYWU4NDk0ODE2Yjc3OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAg
LTM1LDkgKzM1LDEzIEBAIG1vZHVsZSB3aW5kb3cgewogI2lmIGRlZmluZWQoRU5BQkxFX1NIQURP
V19ET00pCiAgICAgICAgIFNoYWRvd1Jvb3QgZW5zdXJlU2hhZG93Um9vdChpbiBFbGVtZW50IGhv
c3QpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgU2hhZG93Um9vdCBzaGFkb3dSb290
KGluIEVsZW1lbnQgaG9zdCkgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBTaGFkb3dS
b290IHlvdW5nZXN0U2hhZG93Um9vdChpbiBFbGVtZW50IGhvc3QpIHJhaXNlcyAoRE9NRXhjZXB0
aW9uKTsKKyAgICAgICAgU2hhZG93Um9vdCBvbGRlc3RTaGFkb3dSb290KGluIEVsZW1lbnQgaG9z
dCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogI2Vsc2UKICAgICAgICAgTm9kZSBlbnN1cmVTaGFk
b3dSb290KGluIEVsZW1lbnQgaG9zdCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAgICBO
b2RlIHNoYWRvd1Jvb3QoaW4gRWxlbWVudCBob3N0KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Cisg
ICAgICAgIE5vZGUgeW91bmdlc3RTaGFkb3dSb290KGluIEVsZW1lbnQgaG9zdCkgcmFpc2VzIChE
T01FeGNlcHRpb24pOworICAgICAgICBOb2RlIG9sZGVzdFNoYWRvd1Jvb3QoaW4gRWxlbWVudCBo
b3N0KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAjZW5kaWYKICAgICAgICAgRWxlbWVudCBpbmNs
dWRlckZvcihpbiBOb2RlIG5vZGUpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9p
ZCByZW1vdmVTaGFkb3dSb290KGluIEVsZW1lbnQgaG9zdCkgcmFpc2VzIChET01FeGNlcHRpb24p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmIGIvU291cmNlL1dl
YktpdDIvd2luL1dlYktpdDIuZGVmCmluZGV4IDc2ODMwZTAxYzlkYzQzNjE1NWYyMmNkY2ZiNWI2
Mzg1ODBhOWFmMzguLmZmZDhlZDk1MWY0Y2NmMWY5ZjFiNWFhNmIyNTBlZDJjMDZlMjA5YzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi93aW4vV2ViS2l0Mi5kZWYKQEAgLTE2Myw2ICsxNjMsNyBAQCBFWFBPUlRTCiAgICAgICAg
ID9nZXREYXRhMTZTbG93Q2FzZUBTdHJpbmdJbXBsQFdURkBAQUJFUEJfV1haCiAgICAgICAgID9n
ZXRFbGVtZW50QnlJZEBUcmVlU2NvcGVAV2ViQ29yZUBAUUJFUEFWRWxlbWVudEAyQEFCVkF0b21p
Y1N0cmluZ0BXVEZAQEBaCiAgICAgICAgID9nZXRMb2NhdGlvbkFuZExlbmd0aEZyb21SYW5nZUBU
ZXh0SXRlcmF0b3JAV2ViQ29yZUBAU0FfTlBBVkVsZW1lbnRAMkBQQlZSYW5nZUAyQEFBSTJAWgor
ICAgICAgICA/aGFzU2hhZG93Um9vdEBFbGVtZW50QFdlYkNvcmVAQFFCRV9OWFoKICAgICAgICAg
P2lzUHJlbG9hZGVkQENhY2hlZFJlc291cmNlTG9hZGVyQFdlYkNvcmVAQFFCRV9OQUJWU3RyaW5n
QFdURkBAQFoKICAgICAgICAgP2pzU3RyaW5nU2xvd0Nhc2VAV2ViQ29yZUBAWUE/QVZKU1ZhbHVl
QEpTQ0BAUEFWRXhlY1N0YXRlQDNAQUFWPyRIYXNoTWFwQFBBVlN0cmluZ0ltcGxAV1RGQEBWPyRX
ZWFrQFZKU1N0cmluZ0BKU0NAQEBKU0NAQFVTdHJpbmdIYXNoQDJAVT8kSGFzaFRyYWl0c0BQQVZT
dHJpbmdJbXBsQFdURkBAQDJAVT8kSGFzaFRyYWl0c0BWPyRXZWFrQFZKU1N0cmluZ0BKU0NAQEBK
U0NAQEAyQEBXVEZAQFBBVlN0cmluZ0ltcGxANkBAWgogICAgICAgICA/bGFzdENoYW5nZVdhc1Vz
ZXJFZGl0QEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50QFdlYkNvcmVAQFFCRV9OWFoKQEAgLTE4
Nyw3ICsxODgsNyBAQCBFWFBPUlRTCiAgICAgICAgID9zZXR0aW5nc0BEb2N1bWVudEBXZWJDb3Jl
QEBRQkVQQVZTZXR0aW5nc0AyQFhaCiAgICAgICAgID9zZXR0aW5nc0BGcmFtZUBXZWJDb3JlQEBR
QkVQQVZTZXR0aW5nc0AyQFhaCiAgICAgICAgID9zZXRGaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRp
dmVUb0ZyYW1lQFNldHRpbmdzQFdlYkNvcmVAQFFBRVhfTkBaCi0gICAgICAgID9zaGFkb3dSb290
QEVsZW1lbnRAV2ViQ29yZUBAUUJFUEFWU2hhZG93Um9vdEAyQFhaCisgICAgICAgID9zaGFkb3dS
b290TGlzdEBFbGVtZW50QFdlYkNvcmVAQFFCRVBBVlNoYWRvd1Jvb3RMaXN0QDJAWFoKICAgICAg
ICAgP3N1Z2dlc3RlZFZhbHVlQEhUTUxJbnB1dEVsZW1lbnRAV2ViQ29yZUBAUUJFQUJWU3RyaW5n
QFdURkBAWFoKICAgICAgICAgP3RvRG9jdW1lbnRAV2ViQ29yZUBAWUFQQVZEb2N1bWVudEAxQFZK
U1ZhbHVlQEpTQ0BAQFoKICAgICAgICAgP3RvRWxlbWVudEBXZWJDb3JlQEBZQVBBVkVsZW1lbnRA
MUBWSlNWYWx1ZUBKU0NAQEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
MkNGTGl0ZS5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKaW5kZXgg
M2E5MjdjMjdjZWU2OWZjYWMyYTQ2Njg2ZDg3MTQwZDIxM2MzMjMwNS4uNTVlY2EzMDZkZDNhMjYy
NGE3NzExZjVkMzhjMTJjNTVjNGUwNDczMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDJDRkxpdGUuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRl
LmRlZgpAQCAtMSwzICsxLDQgQEAKKwogRVhQT1JUUwogICAgICAgICBEbGxHZXRDbGFzc09iamVj
dCAgIFBSSVZBVEUKICAgICAgICAgRGxsQ2FuVW5sb2FkTm93ICAgICBQUklWQVRFCkBAIC0xNTcs
NiArMTU4LDcgQEAgRVhQT1JUUwogICAgICAgICA/Z2V0RGF0YTE2U2xvd0Nhc2VAU3RyaW5nSW1w
bEBXVEZAQEFCRVBCX1dYWgogICAgICAgICA/Z2V0RWxlbWVudEJ5SWRAVHJlZVNjb3BlQFdlYkNv
cmVAQFFCRVBBVkVsZW1lbnRAMkBBQlZBdG9taWNTdHJpbmdAV1RGQEBAWgogICAgICAgICA/Z2V0
TG9jYXRpb25BbmRMZW5ndGhGcm9tUmFuZ2VAVGV4dEl0ZXJhdG9yQFdlYkNvcmVAQFNBX05QQVZF
bGVtZW50QDJAUEJWUmFuZ2VAMkBBQUkyQFoKKyAgICAgICAgP2hhc1NoYWRvd1Jvb3RARWxlbWVu
dEBXZWJDb3JlQEBRQkVfTlhaCiAgICAgICAgID9pc1ByZWxvYWRlZEBDYWNoZWRSZXNvdXJjZUxv
YWRlckBXZWJDb3JlQEBRQkVfTkFCVlN0cmluZ0BXVEZAQEBaCiAgICAgICAgID9qc1N0cmluZ1Ns
b3dDYXNlQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBBVkV4ZWNTdGF0ZUAzQEFBVj8kSGFz
aE1hcEBQQVZTdHJpbmdJbXBsQFdURkBAVj8kV2Vha0BWSlNTdHJpbmdASlNDQEBASlNDQEBVU3Ry
aW5nSGFzaEAyQFU/JEhhc2hUcmFpdHNAUEFWU3RyaW5nSW1wbEBXVEZAQEAyQFU/JEhhc2hUcmFp
dHNAVj8kV2Vha0BWSlNTdHJpbmdASlNDQEBASlNDQEBAMkBAV1RGQEBQQVZTdHJpbmdJbXBsQDZA
QFoKICAgICAgICAgP2xhc3RDaGFuZ2VXYXNVc2VyRWRpdEBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudEBXZWJDb3JlQEBRQkVfTlhaCkBAIC0xODEsNyArMTgzLDcgQEAgRVhQT1JUUwogICAgICAg
ICA/c2V0dGluZ3NARG9jdW1lbnRAV2ViQ29yZUBAUUJFUEFWU2V0dGluZ3NAMkBYWgogICAgICAg
ICA/c2V0dGluZ3NARnJhbWVAV2ViQ29yZUBAUUJFUEFWU2V0dGluZ3NAMkBYWgogICAgICAgICA/
c2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZUBTZXR0aW5nc0BXZWJDb3JlQEBR
QUVYX05AWgotICAgICAgICA/c2hhZG93Um9vdEBFbGVtZW50QFdlYkNvcmVAQFFCRVBBVlNoYWRv
d1Jvb3RAMkBYWgorICAgICAgICA/c2hhZG93Um9vdExpc3RARWxlbWVudEBXZWJDb3JlQEBRQkVQ
QVZTaGFkb3dSb290TGlzdEAyQFhaCiAgICAgICAgID9zdWdnZXN0ZWRWYWx1ZUBIVE1MSW5wdXRF
bGVtZW50QFdlYkNvcmVAQFFCRUFCVlN0cmluZ0BXVEZAQFhaCiAgICAgICAgID90b0RvY3VtZW50
QFdlYkNvcmVAQFlBUEFWRG9jdW1lbnRAMUBWSlNWYWx1ZUBKU0NAQEBaCiAgICAgICAgID90b0Vs
ZW1lbnRAV2ViQ29yZUBAWUFQQVZFbGVtZW50QDFAVkpTVmFsdWVASlNDQEBAWgpkaWZmIC0tZ2l0
IGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlciBiL1NvdXJjZS9hdXRvdG9vbHMvc3lt
Ym9scy5maWx0ZXIKaW5kZXggNWU5ZWIzNGNlNTQ3MjExODIxNjM4NDk4NGRmMDRkYWMzZDE1ZjA4
ZS4uNDI2NDM0OTUzZDBjMDk4NzJlOWQ0MzdmY2Y4Zjk5NDZjYzc1ZTE1ZSAxMDA2NDQKLS0tIGEv
U291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgorKysgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5
bWJvbHMuZmlsdGVyCkBAIC03OCw4ICs3OCw5IEBAIF9aTks3V2ViQ29yZTIwQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIxMWlzUHJlbG9hZGVkRVJLTjNXVEY2U3RyaW5nRTsKIF9aTks3V2ViQ29yZTI2SFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQyMWxhc3RDaGFuZ2VXYXNVc2VyRWRpdEV2OwogX1pOSzdX
ZWJDb3JlNUZyYW1lOHNldHRpbmdzRXY7CiBfWk5LN1dlYkNvcmU2SlNOb2RlMjFwdXNoRXZlbnRI
YW5kbGVyU2NvcGVFUE4zSlNDOUV4ZWNTdGF0ZUVQTlMxXzE0U2NvcGVDaGFpbk5vZGVFOwotX1pO
SzdXZWJDb3JlN0VsZW1lbnQxMHNoYWRvd1Jvb3RFdjsKIF9aTks3V2ViQ29yZTdFbGVtZW50MzFu
dW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuRXY7CitfWk5LN1dlYkNvcmU3RWxlbWVudDEz
aGFzU2hhZG93Um9vdEV2OworX1pOSzdXZWJDb3JlN0VsZW1lbnQxNHNoYWRvd1Jvb3RMaXN0RXY7
CiBfWk5LN1dlYkNvcmU4RG9jdW1lbnQ0cGFnZUV2OwogX1pOSzdXZWJDb3JlOERvY3VtZW50OHNl
dHRpbmdzRXY7CiBfWk5LN1dlYkNvcmU4RG9jdW1lbnQ0dmlld0V2Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126921</attachid>
            <date>2012-02-14 00:09:12 -0800</date>
            <delta_ts>2012-02-14 00:50:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78455-20120214170911.patch</filename>
            <type>text/plain</type>
            <size>49527</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzAzYTAxNDQ1N2Q2MDdh
MjcxYzM1Zjc2MzFjNDcwZDk4M2NjNTc3YS4uNzQwZTY4YzVjNmIyZWQyMWVmZmZhOWU1OTgwZDA2
Yzg3MjI0NWYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMyBAQAorMjAxMi0wMi0xNCAgU2hp
bnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgorCisgICAgICAgIFVzZSB5b3VuZ2Vz
dFNoYWRvd1Jvb3QgYW5kIG9sZGVzdFNoYWRvd1Jvb3QgaW5zdGVhZCBvZiBFbGVtZW50OjpzaGFk
b3dSb290KCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03ODQ1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEVsZW1lbnQ6OnNoYWRvd1Jvb3QoKSB3YXMgdXNlZCBmb3IgdGhlc2UgMyBwdXJwb3Nlcy4KKyAg
ICAgICAgMS4gY2hlY2tzIGEgc2hhZG93IHJvb3QgZXhpc3RzLgorICAgICAgICAyLiBnZXRzIGF1
dGhvciBzaGFkb3cgcm9vdC4KKyAgICAgICAgMy4gZ2V0cyB1c2VyIGFnZW50IHNoYWRvdyByb290
LgorCisgICAgICAgIFdlIGhhdmUgdG8gZGlzdGluZ3Vpc2ggdGhlbSB3aGVuIGltcGxlbWVudGlu
ZyBtdWx0aXBsZSBzaGFkb3cgc3VidHJlZXMuCisKKyAgICAgICAgQ2FsbGluZyBmb3IgKDEpLCAo
MiksIGFuZCAoMykgYXJlIGNvbnZlcmVkIHRvIGhhc1NoYWRvd1Jvb3QoKS4KKyAgICAgICAgU2hh
ZG93Um9vdExpc3QoKS0+eW91bmdlc3RTaGFkb3dSb290KCksIGFuZCBTaGFkb3dSb290TGlzdCgp
LT5vbGRlc3RTaGFkb3dSb290KCkgcmVzcGVjdGl2ZWx5LgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cywgbm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpi
dWlsZEFjY2Vzc0tleU1hcCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjppbnNlcnRlZEludG9UcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJlbW92
ZWRGcm9tVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjphdHRhY2gpOgorICAgICAg
ICAoV2ViQ29yZTo6RWxlbWVudDo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6
OnJlY2FsY1N0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmVuc3VyZVNoYWRvd1Jv
b3QpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmZvY3VzKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgor
ICAgICAgICAoRWxlbWVudCk6CisgICAgICAgICogZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjppc1NoYWRvd0hvc3QpOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnNoYWRvd1Jvb3QpOgorICAgICAgICAqIGRvbS9Ob2RlUmVuZGVy
aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmVuZGVyaW5nQ29udGV4dDo6
Tm9kZVJlbmRlcmluZ0NvbnRleHQpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL1NoYWRv
d1Jvb3RMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3RMaXN0OjppbnNlcnRl
ZEludG9Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3RMaXN0OjpyZW1vdmVkRnJvbURvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3RMaXN0OjppbnNlcnRlZEludG9UcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d1Jvb3RMaXN0OjpyZW1vdmVkRnJvbVRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9v
dExpc3Q6Omhvc3RDaGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9v
dExpc3Q6OmF0dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290TGlzdDo6ZGV0YWNo
KToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdExpc3QuaDoKKyAgICAgICAgKFNoYWRvd1Jvb3RM
aXN0KToKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlQWRvcHRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpzaGFkb3dSb290Rm9yKToKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjptdWx0aXBsZUF0dHJpYnV0ZUNoYW5nZWQp
OgorICAgICAgICAqIGh0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxEZXRhaWxzRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRGV0YWlsc0VsZW1lbnQ6OmZpbmRNYWluU3VtbWFyeSk6CisgICAgICAgICog
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVs
ZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvSFRNTEtleWdlbkVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEtleWdlbkVsZW1lbnQ6OkhUTUxLZXln
ZW5FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxLZXlnZW5FbGVtZW50OjpzaGFkb3dT
ZWxlY3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6Omhhc01lZGlhQ29udHJvbHMpOgorICAgICAgICAqIGh0bWwv
SFRNTE1ldGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0ZXJFbGVtZW50
OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL0hUTUxQcm9ncmVzc0VsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb2dyZXNzRWxlbWVudDo6Y3JlYXRlU2hh
ZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFN1bW1hcnlFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToK
KyAgICAgICAgKiBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Ojppbm5lclRleHRFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCk6Cisg
ICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBl
OjpkZXN0cm95U2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9SYW5nZUlucHV0VHlwZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6aGFuZGxlTW91c2VEb3duRXZl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRy
ZWUpOgorICAgICAgICAqIGh0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCk6Cisg
ICAgICAgICogaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpW
YWxpZGF0aW9uTWVzc2FnZTo6ZGVsZXRlQnViYmxlVHJlZSk6CisgICAgICAgICogaHRtbC9zaGFk
b3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNsaWRlclRodW1i
RWxlbWVudE9mKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlckNvbnRhaW5lcjo6bGF5
b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OnRyYWNrTGltaXRlckVsZW1lbnRPZik6CisgICAgICAg
ICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hhZG93Um9v
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckZpbGVVcGxvYWRDb250cm9sOjp1cGxvYWRCdXR0b24pOgor
ICAgICAgICAqIHN2Zy9TVkdUUmVmRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdU
UmVmRWxlbWVudDo6dXBkYXRlUmVmZXJlbmNlZFRleHQpOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZW5zdXJlU2hhZG93Um9v
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNoYWRvd1Jvb3QpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnlvdW5nZXN0U2hhZG93Um9v
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om9sZGVzdFNoYWRvd1Jvb3QpOgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgIChJbnRlcm5hbHMpOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMi0wMi0xMyAgU2hpbnlhIEthd2FuYWth
ICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1JlZ3Jlc3Npb25dIHIxMDc2NTAg
YnJva2UgdGhlIHdpbmRvd3MgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmFiZjA4MDUzN2EzMDA5ODMx
OWVlMDI3ZjBlNTFjZDFmY2NhMGI2My4uZmMyZGY5YmY2ZjA0YjA0NDFlOGM1ZTVmMGVjZTNmY2Vl
N2Q5YzA3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAyLTE0ICBTaGlueWEg
S2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgVXNlIHlvdW5nZXN0U2hh
ZG93Um9vdCBhbmQgb2xkZXN0U2hhZG93Um9vdCBpbnN0ZWFkIG9mIEVsZW1lbnQ6OnNoYWRvd1Jv
b3QoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4
NDU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhw
b3J0cyBuZWNlc2Fycnkgc3ltYm9scy4KKworICAgICAgICAqIHdpbi9XZWJLaXQyLmRlZjoKKyAg
ICAgICAgKiB3aW4vV2ViS2l0MkNGTGl0ZS5kZWY6CisKIDIwMTItMDItMTMgIEVucmljYSBDYXN1
Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3RvciBNYWMgcGxhdGZvcm0g
aW1wbGVtZW50YXRpb24gb2YgdGhlIFBhc3RlYm9hcmQgY2xhc3MgdG8gdXNlIFBsYXRmb3JtIFN0
cmF0ZWdpZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDQ4Nzc5N2Q3ZGU3MmU3NzVlNzIwOTNm
MjYzOTAxZWM3OWYwMzE3YzguLjQzOWZhMTlkMzU5MTlmOTM4ZTQwZmE0MmUyNjg1MjQyODk3YmQ4
M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xNDM0LDggKzE0MzQsOSBAQCBfX1pOSzdXZWJD
b3JlNldpZGdldDI1Y29udmVydFRvQ29udGFpbmluZ1dpbmRvd0VSS05TXzdJbnRSZWN0RQogX19a
Tks3V2ViQ29yZTZXaWRnZXQyNWNvbnZlcnRUb0NvbnRhaW5pbmdXaW5kb3dFUktOU184SW50UG9p
bnRFCiBfX1pOSzdXZWJDb3JlNldpZGdldDlmcmFtZVJlY3RFdgogX19aTks3V2ViQ29yZTdFbGVt
ZW50MTBzY3JlZW5SZWN0RXYKLV9fWk5LN1dlYkNvcmU3RWxlbWVudDEwc2hhZG93Um9vdEV2CiBf
X1pOSzdXZWJDb3JlN0VsZW1lbnQxMmdldEF0dHJpYnV0ZUVSS05TXzEzUXVhbGlmaWVkTmFtZUUK
K19fWk5LN1dlYkNvcmU3RWxlbWVudDEzaGFzU2hhZG93Um9vdEV2CitfX1pOSzdXZWJDb3JlN0Vs
ZW1lbnQxNHNoYWRvd1Jvb3RMaXN0RXYKIF9fWk5LN1dlYkNvcmU3SW50UmVjdDEwaW50ZXJzZWN0
c0VSS1MwXwogX19aTks3V2ViQ29yZTdJbnRSZWN0OGNvbnRhaW5zRVJLUzBfCiBfX1pOSzdXZWJD
b3JlN0ludFJlY3RjdjZDR1JlY3RFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYTE1YmVj
ZjdkOGZiMmQzY2ZlNjhmMjZhZGEyMjk0OThmMDNhMzlmMC4uMzBiZjViZmNiMWNmMTYyYzVlYTNi
NjNhZjZkMzQ1NDk5MmFhOTdjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMzcsNiAr
MTM3LDcgQEAKICNpbmNsdWRlICJTZWdtZW50ZWRTdHJpbmcuaCIKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5o
IgogI2luY2x1ZGUgIlN0YXRpY0hhc2hTZXROb2RlTGlzdC5oIgogI2luY2x1ZGUgIlN0eWxlU2hl
ZXRMaXN0LmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgpAQCAtNjY2LDggKzY2
NywxMSBAQCB2b2lkIERvY3VtZW50OjpidWlsZEFjY2Vzc0tleU1hcChUcmVlU2NvcGUqIHNjb3Bl
KQogICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGFjY2Vzc0tleSA9IGVsZW1lbnQtPmdldEF0
dHJpYnV0ZShhY2Nlc3NrZXlBdHRyKTsKICAgICAgICAgaWYgKCFhY2Nlc3NLZXkuaXNFbXB0eSgp
KQogICAgICAgICAgICAgbV9lbGVtZW50c0J5QWNjZXNzS2V5LnNldChhY2Nlc3NLZXkuaW1wbCgp
LCBlbGVtZW50KTsKLSAgICAgICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSBlbGVtZW50
LT5zaGFkb3dSb290KCkpCi0gICAgICAgICAgICBidWlsZEFjY2Vzc0tleU1hcChzaGFkb3dSb290
KTsKKworICAgICAgICBpZiAoZWxlbWVudC0+aGFzU2hhZG93Um9vdCgpKSB7CisgICAgICAgICAg
ICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSBlbGVtZW50LT5zaGFkb3dSb290TGlzdCgpLT55b3Vu
Z2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQor
ICAgICAgICAgICAgICAgIGJ1aWxkQWNjZXNzS2V5TWFwKHJvb3QpOworICAgICAgICB9CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggY2Y5M2M2Mjc2MDk1OTc5NzgyMzg2YTUw
N2EyMGFhZGY5YjMzMzBlZi4uMTM3MDE1MzFkMmE5NmI0NDkxYzgzYTRmZDRhN2EzOTBmOTNiY2Q5
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtODczLDggKzg3Myw4IEBAIHZvaWQgRWxlbWVu
dDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKQogICAgIC8vIG5lZWQgdG8gZG8gc3VwZXJjbGFzcyBw
cm9jZXNzaW5nIGZpcnN0IHNvIGluRG9jdW1lbnQoKSBpcyB0cnVlCiAgICAgLy8gYnkgdGhlIHRp
bWUgd2UgcmVhY2ggdXBkYXRlSWQKICAgICBDb250YWluZXJOb2RlOjppbnNlcnRlZEludG9Eb2N1
bWVudCgpOwotICAgIGlmIChTaGFkb3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290KCkpCi0gICAg
ICAgIHNoYWRvdy0+aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKKyAgICBpZiAoU2hhZG93Um9vdExp
c3QqIHNoYWRvd0xpc3QgPSBzaGFkb3dSb290TGlzdCgpKQorICAgICAgICBzaGFkb3dMaXN0LT5p
bnNlcnRlZEludG9Eb2N1bWVudCgpOwogCiAgICAgaWYgKG1fYXR0cmlidXRlTWFwKSB7CiAgICAg
ICAgIGlmIChoYXNJRCgpKSB7CkBAIC05MDYsOCArOTA2LDggQEAgdm9pZCBFbGVtZW50OjpyZW1v
dmVkRnJvbURvY3VtZW50KCkKICAgICB9CiAKICAgICBDb250YWluZXJOb2RlOjpyZW1vdmVkRnJv
bURvY3VtZW50KCk7Ci0gICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRvdyA9IHNoYWRvd1Jvb3QoKSkK
LSAgICAgICAgc2hhZG93LT5yZW1vdmVkRnJvbURvY3VtZW50KCk7CisgICAgaWYgKFNoYWRvd1Jv
b3RMaXN0KiBzaGFkb3dMaXN0ID0gc2hhZG93Um9vdExpc3QoKSkKKyAgICAgICAgc2hhZG93TGlz
dC0+cmVtb3ZlZEZyb21Eb2N1bWVudCgpOwogfQogCiB2b2lkIEVsZW1lbnQ6Omluc2VydGVkSW50
b1RyZWUoYm9vbCBkZWVwKQpAQCAtOTE1LDggKzkxNSw4IEBAIHZvaWQgRWxlbWVudDo6aW5zZXJ0
ZWRJbnRvVHJlZShib29sIGRlZXApCiAgICAgQ29udGFpbmVyTm9kZTo6aW5zZXJ0ZWRJbnRvVHJl
ZShkZWVwKTsKICAgICBpZiAoIWRlZXApCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoU2hhZG93
Um9vdCogc2hhZG93ID0gc2hhZG93Um9vdCgpKQotICAgICAgICBzaGFkb3ctPmluc2VydGVkSW50
b1RyZWUodHJ1ZSk7CisgICAgaWYgKFNoYWRvd1Jvb3RMaXN0KiBzaGFkb3dMaXN0ID0gc2hhZG93
Um9vdExpc3QoKSkKKyAgICAgICAgc2hhZG93TGlzdC0+aW5zZXJ0ZWRJbnRvVHJlZSh0cnVlKTsK
IAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBpZiAoY29udGFpbnNGdWxsU2NyZWVu
RWxlbWVudCgpICYmIHBhcmVudEVsZW1lbnQoKSAmJiAhcGFyZW50RWxlbWVudCgpLT5jb250YWlu
c0Z1bGxTY3JlZW5FbGVtZW50KCkpCkBAIC05MjksOCArOTI5LDggQEAgdm9pZCBFbGVtZW50Ojpy
ZW1vdmVkRnJvbVRyZWUoYm9vbCBkZWVwKQogICAgIENvbnRhaW5lck5vZGU6OnJlbW92ZWRGcm9t
VHJlZShkZWVwKTsKICAgICBpZiAoIWRlZXApCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoU2hh
ZG93Um9vdCogc2hhZG93ID0gc2hhZG93Um9vdCgpKQotICAgICAgICBzaGFkb3ctPnJlbW92ZWRG
cm9tVHJlZSh0cnVlKTsKKyAgICBpZiAoU2hhZG93Um9vdExpc3QqIHNoYWRvd0xpc3QgPSBzaGFk
b3dSb290TGlzdCgpKQorICAgICAgICBzaGFkb3dMaXN0LT5yZW1vdmVkRnJvbVRyZWUodHJ1ZSk7
CiB9CiAKIHZvaWQgRWxlbWVudDo6YXR0YWNoKCkKQEAgLTk0MiwxMCArOTQyLDEwIEBAIHZvaWQg
RWxlbWVudDo6YXR0YWNoKCkKICAgICBTdHlsZVNlbGVjdG9yUGFyZW50UHVzaGVyIHBhcmVudFB1
c2hlcih0aGlzKTsKIAogICAgIC8vIFdoZW4gYSBzaGFkb3cgcm9vdCBleGlzdHMsIGl0IGRvZXMg
dGhlIHdvcmsgb2YgYXR0YWNoaW5nIHRoZSBjaGlsZHJlbi4KLSAgICBpZiAoU2hhZG93Um9vdCog
c2hhZG93ID0gc2hhZG93Um9vdCgpKSB7CisgICAgaWYgKGhhc1NoYWRvd1Jvb3QoKSkgewogICAg
ICAgICBwYXJlbnRQdXNoZXIucHVzaCgpOwogICAgICAgICBOb2RlOjphdHRhY2goKTsKLSAgICAg
ICAgc2hhZG93LT5hdHRhY2goKTsKKyAgICAgICAgc2hhZG93Um9vdExpc3QoKS0+YXR0YWNoKCk7
CiAKICAgICAgICAgLy8gSW4gYSBzaGFkb3cgdHJlZSwgc29tZSBvZiBsaWdodCBjaGlsZHJlbiBt
YXkgYmUgYXR0YWNoZWQgYnkgJ2NvbnRlbnQnIGVsZW1lbnQuCiAgICAgICAgIC8vIEhvd2V2ZXIs
IHdoZW4gdGhlcmUgaXMgbm8gY29udGVudCBlbGVtZW50IG9yIGNvbnRlbnQgZWxlbWVudCBkb2Vz
IG5vdCBzZWxlY3QKQEAgLTk4MSw4ICs5ODEsOCBAQCB2b2lkIEVsZW1lbnQ6OmRldGFjaCgpCiAg
ICAgaWYgKGhhc1JhcmVEYXRhKCkpCiAgICAgICAgIHJhcmVEYXRhKCktPnJlc2V0Q29tcHV0ZWRT
dHlsZSgpOwogICAgIENvbnRhaW5lck5vZGU6OmRldGFjaCgpOwotICAgIGlmIChTaGFkb3dSb290
KiBzaGFkb3cgPSBzaGFkb3dSb290KCkpCi0gICAgICAgIHNoYWRvdy0+ZGV0YWNoKCk7CisgICAg
aWYgKFNoYWRvd1Jvb3RMaXN0KiBzaGFkb3dMaXN0ID0gc2hhZG93Um9vdExpc3QoKSkKKyAgICAg
ICAgc2hhZG93TGlzdC0+ZGV0YWNoKCk7CiAKICAgICBSZW5kZXJXaWRnZXQ6OnJlc3VtZVdpZGdl
dEhpZXJhcmNoeVVwZGF0ZXMoKTsKIH0KQEAgLTExNDEsNyArMTE0MSw4IEBAIHZvaWQgRWxlbWVu
dDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogICAgICAgICBmb3JjZUNoZWNrT2ZB
bnlFbGVtZW50U2libGluZyA9IGZvcmNlQ2hlY2tPZkFueUVsZW1lbnRTaWJsaW5nIHx8IChjaGls
ZFJ1bGVzQ2hhbmdlZCAmJiBoYXNJbmRpcmVjdEFkamFjZW50UnVsZXMpOwogICAgIH0KICAgICAv
LyBGSVhNRTogVGhpcyBkb2VzIG5vdCBjYXJlIGFib3V0IHNpYmxpbmcgY29tYmluYXRvcnMuIFdp
bGwgYmUgbmVjZXNzYXJ5IGluIFhCTDIgd29ybGQuCi0gICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRv
dyA9IHNoYWRvd1Jvb3QoKSkgeworICAgIGlmIChoYXNTaGFkb3dSb290KCkpIHsKKyAgICAgICAg
U2hhZG93Um9vdCogc2hhZG93ID0gc2hhZG93Um9vdExpc3QoKS0+eW91bmdlc3RTaGFkb3dSb290
KCk7CiAgICAgICAgIGlmIChjaGFuZ2UgPj0gSW5oZXJpdCB8fCBzaGFkb3ctPmNoaWxkTmVlZHNT
dHlsZVJlY2FsYygpIHx8IHNoYWRvdy0+bmVlZHNTdHlsZVJlY2FsYygpKSB7CiAgICAgICAgICAg
ICBwYXJlbnRQdXNoZXIucHVzaCgpOwogICAgICAgICAgICAgc2hhZG93LT5yZWNhbGNTaGFkb3dU
cmVlU3R5bGUoY2hhbmdlKTsKQEAgLTExNzAsMTMgKzExNzEsNiBAQCBTaGFkb3dSb290TGlzdCog
RWxlbWVudDo6c2hhZG93Um9vdExpc3QoKSBjb25zdAogICAgIHJldHVybiAmcmFyZURhdGEoKS0+
bV9zaGFkb3dSb290TGlzdDsKIH0KIAotU2hhZG93Um9vdCogRWxlbWVudDo6c2hhZG93Um9vdCgp
IGNvbnN0Ci17Ci0gICAgaWYgKFNoYWRvd1Jvb3RMaXN0KiBsaXN0ID0gc2hhZG93Um9vdExpc3Qo
KSkKLSAgICAgICAgcmV0dXJuIGxpc3QtPnlvdW5nZXN0U2hhZG93Um9vdCgpOwotICAgIHJldHVy
biAwOwotfQotCiBzdGF0aWMgYm9vbCB2YWxpZGF0ZVNoYWRvd1Jvb3QoRG9jdW1lbnQqIGRvY3Vt
ZW50LCBTaGFkb3dSb290KiBzaGFkb3dSb290LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBp
ZiAoIXNoYWRvd1Jvb3QpCkBAIC0xMjE5LDggKzEyMTMsOCBAQCB2b2lkIEVsZW1lbnQ6OnNldFNo
YWRvd1Jvb3QoUGFzc1JlZlB0cjxTaGFkb3dSb290PiBzaGFkb3dSb290LCBFeGNlcHRpb25Db2Rl
JiBlYwogCiBTaGFkb3dSb290KiBFbGVtZW50OjplbnN1cmVTaGFkb3dSb290KCkKIHsKLSAgICBp
ZiAoU2hhZG93Um9vdCogZXhpc3RpbmdSb290ID0gc2hhZG93Um9vdCgpKQotICAgICAgICByZXR1
cm4gZXhpc3RpbmdSb290OworICAgIGlmIChoYXNTaGFkb3dSb290KCkpCisgICAgICAgIHJldHVy
biBzaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCk7CiAKICAgICByZXR1cm4gU2hh
ZG93Um9vdDo6Y3JlYXRlKHRoaXMsIFNoYWRvd1Jvb3Q6OkNyZWF0aW5nVXNlckFnZW50U2hhZG93
Um9vdCkuZ2V0KCk7CiB9CkBAIC0xMzgyLDggKzEzNzYsOCBAQCB2b2lkIEVsZW1lbnQ6OmNoaWxk
cmVuQ2hhbmdlZChib29sIGNoYW5nZWRCeVBhcnNlciwgTm9kZSogYmVmb3JlQ2hhbmdlLCBOb2Rl
KiBhZgogICAgICAgICBjaGVja0ZvclNpYmxpbmdTdHlsZUNoYW5nZXModGhpcywgcmVuZGVyU3R5
bGUoKSwgZmFsc2UsIGJlZm9yZUNoYW5nZSwgYWZ0ZXJDaGFuZ2UsIGNoaWxkQ291bnREZWx0YSk7
CiAKICAgICBpZiAoaGFzUmFyZURhdGEoKSkgewotICAgICAgICBpZiAoU2hhZG93Um9vdCogcm9v
dCA9IHNoYWRvd1Jvb3QoKSkKLSAgICAgICAgICAgIHJvb3QtPmhvc3RDaGlsZHJlbkNoYW5nZWQo
KTsKKyAgICAgICAgaWYgKFNoYWRvd1Jvb3RMaXN0KiBsaXN0ID0gc2hhZG93Um9vdExpc3QoKSkK
KyAgICAgICAgICAgIGxpc3QtPmhvc3RDaGlsZHJlbkNoYW5nZWQoKTsKICAgICB9CiB9CiAKQEAg
LTE1ODAsNyArMTU3NCw3IEBAIHZvaWQgRWxlbWVudDo6Zm9jdXMoYm9vbCByZXN0b3JlUHJldmlv
dXNTZWxlY3Rpb24pCiAgICAgICAgIC8vIElmIGEgZm9jdXMgZXZlbnQgaGFuZGxlciBjaGFuZ2Vz
IHRoZSBmb2N1cyB0byBhIGRpZmZlcmVudCBub2RlIGl0CiAgICAgICAgIC8vIGRvZXMgbm90IG1h
a2Ugc2Vuc2UgdG8gY29udGludWUgYW5kIHVwZGF0ZSBhcHBlYXJlbmNlLgogICAgICAgICBwcm90
ZWN0ID0gdGhpczsKLSAgICAgICAgaWYgKHNoYWRvd1Jvb3QoKSAmJiBwYWdlLT5mb2N1c0NvbnRy
b2xsZXIoKS0+dHJhbnNmZXJGb2N1c1RvRWxlbWVudEluU2hhZG93Um9vdCh0aGlzLCByZXN0b3Jl
UHJldmlvdXNTZWxlY3Rpb24pKQorICAgICAgICBpZiAoaGFzU2hhZG93Um9vdCgpICYmIHBhZ2Ut
PmZvY3VzQ29udHJvbGxlcigpLT50cmFuc2ZlckZvY3VzVG9FbGVtZW50SW5TaGFkb3dSb290KHRo
aXMsIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbikpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIGlmICghcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPnNldEZvY3VzZWROb2RlKHRoaXMsIGRv
Yy0+ZnJhbWUoKSkpCiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCBl
OWU0ZDhiODkzOGE0MzVlMzkwZjViYzFhNGViODM2MDRiZWY0ZWNlLi5kZDI3MDI5NTI1NzcyMjhh
Y2NmODRjOGU3MWJmNTNlNmIxNjg5ZmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTI1OCw3ICsy
NTgsNiBAQCBwdWJsaWM6CiAKICAgICAvLyBGSVhNRTogVGhlc2UgQVBJIHdpbGwgYmUgbW92ZWQg
dG8gU2hhZG93Um9vdExpc3QuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc4MzEzCi0gICAgU2hhZG93Um9vdCogc2hhZG93Um9vdCgpIGNvbnN0OwogICAg
IHZvaWQgc2V0U2hhZG93Um9vdChQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+LCBFeGNlcHRpb25Db2Rl
Jik7CiAgICAgU2hhZG93Um9vdCogZW5zdXJlU2hhZG93Um9vdCgpOwogICAgIHZvaWQgcmVtb3Zl
U2hhZG93Um9vdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0
Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCA3
NTczODMyYmEzMzUwZDBmY2IzM2YxMzJkNzk5YmU2MmM3YjFhYjE3Li4zZWU1Mjg1YmNhMTJlNDRk
NDUxYTJmMmNhZDE5YmZiZTc0NzEwZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRj
aGVyLmNwcApAQCAtMTI3LDcgKzEyNyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NoYWRvd1Jv
b3RPclNWR1NoYWRvd1Jvb3QoY29uc3QgTm9kZSogbm9kZSkKIAogc3RhdGljIGlubGluZSBib29s
IGlzU2hhZG93SG9zdChOb2RlKiBub2RlKQogewotICAgIHJldHVybiBub2RlLT5pc0VsZW1lbnRO
b2RlKCkgJiYgdG9FbGVtZW50KG5vZGUpLT5zaGFkb3dSb290KCk7CisgICAgcmV0dXJuIG5vZGUt
PmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jvb3QoKTsKIH0K
IAogUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gRXZlbnREaXNwYXRjaGVyOjphZGp1c3RUb1NoYWRv
d0JvdW5kYXJpZXMoUGFzc1JlZlB0cjxOb2RlPiByZWxhdGVkVGFyZ2V0LCBjb25zdCBWZWN0b3I8
Tm9kZSo+IHJlbGF0ZWRUYXJnZXRBbmNlc3RvcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggMDc0Y2Zh
NDY4ZjA0ZTUxM2Y5ZWEwYTg1YmNjOWY0NDI3OTZkNDU5NS4uM2Q5YWMzZTViMGExYTIxMjc3NGIy
ZjJlOWY1MGZiOGNhNmJiYzAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtODYsNiArODYsNyBAQAog
I2luY2x1ZGUgIlNjb3BlZEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJTZWxlY3RvclF1ZXJ5Lmgi
CiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAj
aW5jbHVkZSAiU3RhdGljTm9kZUxpc3QuaCIKICNpbmNsdWRlICJTdG9yYWdlRXZlbnQuaCIKICNp
bmNsdWRlICJUYWdOb2RlTGlzdC5oIgpAQCAtODA4LDcgKzgwOSw3IEBAIGJvb2wgTm9kZTo6aGFz
Tm9uRW1wdHlCb3VuZGluZ0JveCgpIGNvbnN0CiAKIGlubGluZSBzdGF0aWMgU2hhZG93Um9vdCog
c2hhZG93Um9vdChOb2RlKiBub2RlKQogewotICAgIHJldHVybiBub2RlLT5pc0VsZW1lbnROb2Rl
KCkgPyB0b0VsZW1lbnQobm9kZSktPnNoYWRvd1Jvb3QoKSA6IDA7CisgICAgcmV0dXJuIG5vZGUt
PmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jvb3QoKSA/IHRv
RWxlbWVudChub2RlKS0+c2hhZG93Um9vdExpc3QoKS0+eW91bmdlc3RTaGFkb3dSb290KCkgOiAw
OwogfQogCiBpbmxpbmUgdm9pZCBOb2RlOjpzZXRTdHlsZUNoYW5nZShTdHlsZUNoYW5nZVR5cGUg
Y2hhbmdlVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5n
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3Bw
CmluZGV4IDZmYTk4OGE3ZGQ4MjljYzFlYThmY2YxZmZiOGEyM2ZlMmFhOGM3MmYuLjQxM2U4Mzc3
Nzg1Y2VkZmNjNzdjMzViNDJjYTcwMGVkMDU0MzUxNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIlJl
bmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTaGFkb3dS
b290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKIAogI2lmIEVOQUJMRShTVkcpCiAj
aW5jbHVkZSAiU1ZHTmFtZXMuaCIKQEAgLTY1LDcgKzY2LDggQEAgTm9kZVJlbmRlcmluZ0NvbnRl
eHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0KE5vZGUqIG5vZGUpCiAgICAgbV9sb2NhdGlvbiA9IExv
Y2F0aW9uTGlnaHRDaGlsZDsKIAogICAgIGlmIChwYXJlbnQtPmlzRWxlbWVudE5vZGUoKSkgewot
ICAgICAgICBtX3Zpc3VhbFBhcmVudFNoYWRvd1Jvb3QgPSB0b0VsZW1lbnQocGFyZW50KS0+c2hh
ZG93Um9vdCgpOworICAgICAgICBpZiAodG9FbGVtZW50KHBhcmVudCktPmhhc1NoYWRvd1Jvb3Qo
KSkKKyAgICAgICAgICAgIG1fdmlzdWFsUGFyZW50U2hhZG93Um9vdCA9IHRvRWxlbWVudChwYXJl
bnQpLT5zaGFkb3dSb290TGlzdCgpLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsKIAogICAgICAgICBp
ZiAobV92aXN1YWxQYXJlbnRTaGFkb3dSb290KSB7CiAgICAgICAgICAgICBpZiAoKG1faW5zZXJ0
aW9uUG9pbnQgPSBtX3Zpc3VhbFBhcmVudFNoYWRvd1Jvb3QtPmluc2VydGlvblBvaW50Rm9yKG1f
bm9kZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXggNWE1YzlkZjAzZDlhOGY0ZGMw
MTc1OWFjNzAzMjM4ZjdkYTQ1ZGQyNS4uNTM5OWE0ZmRmYTY2NzBmNzI2ODFhNTNjZjRiODYyMDRh
ZTkxMjc2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtOTcsNyArOTcsNyBAQCBQ
YXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IFNoYWRvd1Jvb3Q6OmNyZWF0ZShFbGVtZW50KiBlbGVtZW50
LCBFeGNlcHRpb25Db2RlJiBlYykKIAogUGFzc1JlZlB0cjxTaGFkb3dSb290PiBTaGFkb3dSb290
OjpjcmVhdGUoRWxlbWVudCogZWxlbWVudCwgU2hhZG93Um9vdENyZWF0aW9uUHVycG9zZSBwdXJw
b3NlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAoIWVsZW1lbnQgfHwgZWxlbWVudC0+
c2hhZG93Um9vdCgpKSB7CisgICAgaWYgKCFlbGVtZW50IHx8IGVsZW1lbnQtPmhhc1NoYWRvd1Jv
b3QoKSkgewogICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgfQpAQCAtMTA5LDcgKzEwOSw3IEBAIFBhc3NSZWZQdHI8U2hhZG93Um9vdD4g
U2hhZG93Um9vdDo6Y3JlYXRlKEVsZW1lbnQqIGVsZW1lbnQsIFNoYWRvd1Jvb3RDcmVhdGlvblB1
CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIEFTU0VSVChwdXJwb3NlICE9IENyZWF0
aW5nVXNlckFnZW50U2hhZG93Um9vdCB8fCAhZWxlbWVudC0+c2hhZG93Um9vdCgpKTsKKyAgICBB
U1NFUlQocHVycG9zZSAhPSBDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QgfHwgIWVsZW1lbnQt
Pmhhc1NoYWRvd1Jvb3QoKSk7CiAgICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IHNoYWRvd1Jvb3QgPSBj
cmVhdGUoZWxlbWVudC0+ZG9jdW1lbnQoKSk7CiAKICAgICBlYyA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NoYWRvd1Jvb3RMaXN0LmNwcAppbmRleCA4OGUwZmI1ZjEzNzA5YTA4N2EyYzQ1ZjI1MDY3NjQ0
NmE0NDMzMWYwLi41NzBiN2RjNzFlNzY2MDBlYmE1ZDEzMWMwYjhlMWVjY2Q4NTliMGUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5jcHAKQEAgLTU5LDQgKzU5LDQ2IEBAIFNoYWRv
d1Jvb3QqIFNoYWRvd1Jvb3RMaXN0Ojpwb3BTaGFkb3dSb290KCkKICAgICByZXR1cm4gbV9zaGFk
b3dSb290cy5yZW1vdmVIZWFkKCk7CiB9CiAKK3ZvaWQgU2hhZG93Um9vdExpc3Q6Omluc2VydGVk
SW50b0RvY3VtZW50KCkKK3sKKyAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB5b3VuZ2VzdFNo
YWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQorICAgICAg
ICByb290LT5pbnNlcnRlZEludG9Eb2N1bWVudCgpOworfQorCit2b2lkIFNoYWRvd1Jvb3RMaXN0
OjpyZW1vdmVkRnJvbURvY3VtZW50KCkKK3sKKyAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB5
b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgp
KQorICAgICAgICByb290LT5yZW1vdmVkRnJvbURvY3VtZW50KCk7Cit9CisKK3ZvaWQgU2hhZG93
Um9vdExpc3Q6Omluc2VydGVkSW50b1RyZWUoYm9vbCBkZWVwKQoreworICAgIGZvciAoU2hhZG93
Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xk
ZXJTaGFkb3dSb290KCkpCisgICAgICAgIHJvb3QtPmluc2VydGVkSW50b1RyZWUoZGVlcCk7Cit9
CisKK3ZvaWQgU2hhZG93Um9vdExpc3Q6OnJlbW92ZWRGcm9tVHJlZShib29sIGRlZXApCit7Cisg
ICAgZm9yIChTaGFkb3dSb290KiByb290ID0geW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJv
b3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKKyAgICAgICAgcm9vdC0+cmVtb3ZlZEZyb21U
cmVlKGRlZXApOworfQorCit2b2lkIFNoYWRvd1Jvb3RMaXN0Ojpob3N0Q2hpbGRyZW5DaGFuZ2Vk
KCkKK3sKKyAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB5b3VuZ2VzdFNoYWRvd1Jvb3QoKTsg
cm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQorICAgICAgICByb290LT5ob3N0
Q2hpbGRyZW5DaGFuZ2VkKCk7Cit9CisKK3ZvaWQgU2hhZG93Um9vdExpc3Q6OmF0dGFjaCgpCit7
CisgICAgZm9yIChTaGFkb3dSb290KiByb290ID0geW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7
IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKKyAgICAgICAgcm9vdC0+YXR0YWNoKCk7
Cit9CisKK3ZvaWQgU2hhZG93Um9vdExpc3Q6OmRldGFjaCgpCit7CisgICAgZm9yIChTaGFkb3dS
b290KiByb290ID0geW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRl
clNoYWRvd1Jvb3QoKSkKKyAgICAgICAgcm9vdC0+ZGV0YWNoKCk7Cit9CisKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd1Jvb3RMaXN0LmgKaW5kZXggMDU1YmNhYTUxYzhiOTE5OGZjNDVkZDczOTM3YzI4
ODU2NTllYTAzMy4uYzdmYzk4Y2FhOGEyMGI0NGQ1NGM4MzdhYjc4NGU4Y2VmYzQ1ZDAwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmgKQEAgLTQ4LDYgKzQ4LDE2IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHB1c2hTaGFkb3dSb290KFNoYWRvd1Jvb3QqKTsKICAgICBTaGFkb3dSb290KiBw
b3BTaGFkb3dSb290KCk7CiAKKyAgICB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7CisgICAg
dm9pZCByZW1vdmVkRnJvbURvY3VtZW50KCk7CisgICAgdm9pZCBpbnNlcnRlZEludG9UcmVlKGJv
b2wgZGVlcCk7CisgICAgdm9pZCByZW1vdmVkRnJvbVRyZWUoYm9vbCBkZWVwKTsKKworICAgIHZv
aWQgaG9zdENoaWxkcmVuQ2hhbmdlZCgpOworCisgICAgdm9pZCBhdHRhY2goKTsKKyAgICB2b2lk
IGRldGFjaCgpOworCiBwcml2YXRlOgogICAgIERvdWJseUxpbmtlZExpc3Q8U2hhZG93Um9vdD4g
bV9zaGFkb3dSb290czsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTaGFkb3dSb290TGlzdCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRvcHRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRvcHRlci5jcHAKaW5kZXggMDAzMTdlMzFhMDRj
MjZkZDUxZDY3YWE3NDBkY2YyZjA4ZTE3MmQ2YS4uZTc2MjA5Y2M4MzFmMGJkZmJhYjk3NTU1NDg2
Y2M2NTY2MjhkODRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFk
b3B0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcApA
QCAtMjgsMTIgKzI4LDEzIEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJOb2Rl
UmFyZURhdGEuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9v
dExpc3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgaW5saW5lIFNoYWRvd1Jv
b3QqIHNoYWRvd1Jvb3RGb3IoTm9kZSogbm9kZSkKIHsKLSAgICByZXR1cm4gbm9kZS0+aXNFbGVt
ZW50Tm9kZSgpID8gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3dSb290KCkgOiAwOworICAgIHJldHVy
biBub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KG5vZGUpLT5oYXNTaGFkb3dSb290
KCkgPyB0b0VsZW1lbnQobm9kZSktPnNoYWRvd1Jvb3RMaXN0KCktPnlvdW5nZXN0U2hhZG93Um9v
dCgpIDogMDsKIH0KIAogdm9pZCBUcmVlU2NvcGVBZG9wdGVyOjptb3ZlVHJlZVRvTmV3U2NvcGUo
Tm9kZSogcm9vdCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4
IGRmYmJkZjdjZDcwNDhiY2JjM2FmNThlNzAyOTE0Njc0YzU0YmY5ZDYuLjU3NTlmNjc0MTVjZDM4
MmU1MDBmYmU2NTU4ZDBjMzQzNTdkOTc3MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRU
eXBlLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIlJlbmRlckZpbGVVcGxvYWRDb250
cm9sLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNoYWRvd1Jv
b3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMjY1LDE1ICsyNjYsMTUgQEAgYm9vbCBGaWxlSW5wdXRU
eXBlOjppc0ZpbGVVcGxvYWQoKSBjb25zdAogCiB2b2lkIEZpbGVJbnB1dFR5cGU6OmNyZWF0ZVNo
YWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVChlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7Cisg
ICAgQVNTRVJUKGVsZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKTsKICAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKLSAgICBlbGVtZW50KCktPnNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoZWxlbWVu
dCgpLT5tdWx0aXBsZSgpID8gVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlRm9yTXVsdGlwbGUo
ZWxlbWVudCgpLT5kb2N1bWVudCgpKTogVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVsZW1l
bnQoKS0+ZG9jdW1lbnQoKSksIGVjKTsKKyAgICBlbGVtZW50KCktPnNoYWRvd1Jvb3RMaXN0KCkt
Pm9sZGVzdFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoZWxlbWVudCgpLT5tdWx0aXBsZSgpID8g
VXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlRm9yTXVsdGlwbGUoZWxlbWVudCgpLT5kb2N1bWVu
dCgpKTogVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSks
IGVjKTsKIH0KIAogdm9pZCBGaWxlSW5wdXRUeXBlOjptdWx0aXBsZUF0dHJpYnV0ZUNoYW5nZWQo
KQogewotICAgIEFTU0VSVChlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7Ci0gICAgVXBsb2FkQnV0
dG9uRWxlbWVudCogYnV0dG9uID0gc3RhdGljX2Nhc3Q8VXBsb2FkQnV0dG9uRWxlbWVudCo+KGVs
ZW1lbnQoKS0+c2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCkpOworICAgIEFTU0VSVChlbGVtZW50
KCktPmhhc1NoYWRvd1Jvb3QoKSk7CisgICAgVXBsb2FkQnV0dG9uRWxlbWVudCogYnV0dG9uID0g
c3RhdGljX2Nhc3Q8VXBsb2FkQnV0dG9uRWxlbWVudCo+KGVsZW1lbnQoKS0+c2hhZG93Um9vdExp
c3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCkpOwogICAgIGlmIChidXR0b24p
CiAgICAgICAgIGJ1dHRvbi0+c2V0VmFsdWUoZWxlbWVudCgpLT5tdWx0aXBsZSgpID8gZmlsZUJ1
dHRvbkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpIDogZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJl
bCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAppbmRl
eCAwMTVjZjYxY2ViODMzNzY5OThiNjhlYjZhYjA5ZWY1NjI2NDRhYjQzLi5hYTI2NGMyMTJhNmNj
NjEzODAyOTYzZDBlZTZmMWE5ZDhhOWRmN2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RGV0YWlsc0VsZW1lbnQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiTW91c2VFdmVu
dC5oIgogI2luY2x1ZGUgIlJlbmRlckRldGFpbHMuaCIKICNpbmNsdWRlICJTaGFkb3dSb290Lmgi
CisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTEwOCw3ICsxMDksNyBAQCBSZW5kZXJPYmplY3QqIEhUTUxEZXRh
aWxzRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHls
ZQogCiB2b2lkIEhUTUxEZXRhaWxzRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0g
ICAgQVNTRVJUKCFzaGFkb3dSb290KCkpOworICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsK
IAogICAgIFJlZlB0cjxTaGFkb3dSb290PiByb290ID0gU2hhZG93Um9vdDo6Y3JlYXRlKHRoaXMs
IFNoYWRvd1Jvb3Q6OkNyZWF0aW5nVXNlckFnZW50U2hhZG93Um9vdCk7CiAgICAgcm9vdC0+YXBw
ZW5kQ2hpbGQoRGV0YWlsc1N1bW1hcnlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSksIEFTU0VS
VF9OT19FWENFUFRJT04sIHRydWUpOwpAQCAtMTIyLDcgKzEyMyw3IEBAIEVsZW1lbnQqIEhUTUxE
ZXRhaWxzRWxlbWVudDo6ZmluZE1haW5TdW1tYXJ5KCkgY29uc3QKICAgICAgICAgICAgIHJldHVy
biB0b0VsZW1lbnQoY2hpbGQpOwogICAgIH0KIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxEZXRh
aWxzU3VtbWFyeUVsZW1lbnQqPihzaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSktPmZhbGxiYWNr
U3VtbWFyeSgpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxEZXRhaWxzU3VtbWFyeUVsZW1lbnQq
PihzaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSktPmZh
bGxiYWNrU3VtbWFyeSgpOwogfQogCiB2b2lkIEhUTUxEZXRhaWxzRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5jcHAKaW5kZXggZDI5NzRmMDEyOTNiZTVmM2IzZTZmMDY3NGE5ODc2NWE0OGFiZTI2Yy4uOTFl
ZWQ1NWRhZmEzNjI4NTU0ODM2NmVjMzVhZTUyOTE2N2UyMTYyMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0xMDksNyArMTA5LDcgQEAgUGFzc1JlZlB0cjxI
VE1MSW5wdXRFbGVtZW50PiBIVE1MSW5wdXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmEKIAogdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVl
KCkKIHsKLSAgICBBU1NFUlQoIXNoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKCFoYXNTaGFkb3dS
b290KCkpOwogICAgIFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290OjpDcmVhdGlu
Z1VzZXJBZ2VudFNoYWRvd1Jvb3QsIEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgbV9pbnB1
dFR5cGUtPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5
Z2VuRWxlbWVudC5jcHAKaW5kZXggODUyNTI4MTlhYTU4ZTcwYzJkMDM3MTUwNzI1ZDE3YzQ4OTg5
MDEzNS4uZTEwMDc5ZjY0NjRlNzhmNWVlMDc0ZDE1ZjhhYjEyZjZkNzQzMmMyMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNp
bmNsdWRlICJIVE1MT3B0aW9uRWxlbWVudC5oIgogI2luY2x1ZGUgIlNTTEtleUdlbmVyYXRvci5o
IgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgog
I2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKQEAgLTg1
LDcgKzg2LDcgQEAgaW5saW5lIEhUTUxLZXlnZW5FbGVtZW50OjpIVE1MS2V5Z2VuRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWUKICAgICAgICAgb3B0aW9uLT5hcHBl
bmRDaGlsZChUZXh0OjpjcmVhdGUoZG9jdW1lbnQsIGtleXNbaV0pLCBlYyk7CiAgICAgfQogCi0g
ICAgQVNTRVJUKCFzaGFkb3dSb290KCkpOworICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsK
ICAgICBSZWZQdHI8U2hhZG93Um9vdD4gcm9vdCA9IFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBT
aGFkb3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QpOwogICAgIHJvb3QtPmFwcGVu
ZENoaWxkKHNlbGVjdCwgZWMpOwogfQpAQCAtMTMwLDggKzEzMSw4IEBAIHZvaWQgSFRNTEtleWdl
bkVsZW1lbnQ6OnJlc2V0KCkKIAogSFRNTFNlbGVjdEVsZW1lbnQqIEhUTUxLZXlnZW5FbGVtZW50
OjpzaGFkb3dTZWxlY3QoKSBjb25zdAogewotICAgIFNoYWRvd1Jvb3QqIHNoYWRvdyA9IHNoYWRv
d1Jvb3QoKTsKLSAgICBBU1NFUlQoc2hhZG93KTsKKyAgICBBU1NFUlQoaGFzU2hhZG93Um9vdCgp
KTsKKyAgICBTaGFkb3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFk
b3dSb290KCk7CiAgICAgcmV0dXJuIHNoYWRvdyA/IHRvSFRNTFNlbGVjdEVsZW1lbnQoc2hhZG93
LT5maXJzdENoaWxkKCkpIDogMDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKaW5kZXggZTVmZmMwODU2MmVjNDI1OTA0NWUxOWFiYjA5ZDQ4NWYyMjc3MjIwYi4u
NjdhZDFkOWM1MWZjYjkwYWIzZjJhZDEwYTIyODhiZmJhOWRhZGNhZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC03MSw2ICs3MSw3IEBACiAjaW5jbHVkZSAi
U2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRv
d1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlRpbWVSYW5n
ZXMuaCIKICNpbmNsdWRlICJVVUlELmgiCiAjaW5jbHVkZSA8bGltaXRzPgpAQCAtMzUxOSwxNSAr
MzUyMCwxNSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnByaXZhdGVCcm93c2luZ1N0YXRlRGlk
Q2hhbmdlKCkKIAogTWVkaWFDb250cm9scyogSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFDb250cm9s
cygpCiB7Ci0gICAgcmV0dXJuIHRvTWVkaWFDb250cm9scyhzaGFkb3dSb290KCktPmZpcnN0Q2hp
bGQoKSk7CisgICAgcmV0dXJuIHRvTWVkaWFDb250cm9scyhzaGFkb3dSb290TGlzdCgpLT5vbGRl
c3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSk7CiB9CiAKIGJvb2wgSFRNTE1lZGlhRWxlbWVu
dDo6aGFzTWVkaWFDb250cm9scygpCiB7Ci0gICAgaWYgKCFzaGFkb3dSb290KCkpCisgICAgaWYg
KCFoYXNTaGFkb3dSb290KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIE5vZGUqIG5v
ZGUgPSBzaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsKKyAgICBOb2RlKiBub2RlID0gc2hhZG93
Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCk7CiAgICAgcmV0dXJu
IG5vZGUgJiYgbm9kZS0+aXNNZWRpYUNvbnRyb2xzKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZXRlckVsZW1lbnQuY3BwCmluZGV4IGExZmRhZjZjNzJkNGIwNjUxMmU4NDIxZGU4MDBl
NTIwYmNhYTdhNzkuLjdjODM5OTQ1YmJiNTcxMWZkZjQxODVlYzdlNzY3MGU2MzYwMTY0M2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcApAQCAtMjM0LDcgKzIzNCw3
IEBAIHZvaWQgSFRNTE1ldGVyRWxlbWVudDo6ZGlkRWxlbWVudFN0YXRlQ2hhbmdlKCkKIAogdm9p
ZCBIVE1MTWV0ZXJFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKLSAgICBBU1NFUlQo
IXNoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkpOwogCiAgICAgUmVm
UHRyPE1ldGVyQmFyRWxlbWVudD4gYmFyID0gTWV0ZXJCYXJFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQoKSk7CiAgICAgbV92YWx1ZSA9IE1ldGVyVmFsdWVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAppbmRleCAw
YzIzNzI1ODFmNzlhZmY0ZGFjNTQ4YTBiYTdlNDRjNTZhYTliNWYwLi5lZDY5NTBjM2Y3OTIwNTM4
NWIxOTQzOTk2MWIwNzZiMWZkMDUyM2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBy
b2dyZXNzRWxlbWVudC5jcHAKQEAgLTE1Myw3ICsxNTMsNyBAQCB2b2lkIEhUTUxQcm9ncmVzc0Vs
ZW1lbnQ6OmRpZEVsZW1lbnRTdGF0ZUNoYW5nZSgpCiAKIHZvaWQgSFRNTFByb2dyZXNzRWxlbWVu
dDo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJUKCFzaGFkb3dSb290KCkpOwor
ICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsKIAogICAgIFJlZlB0cjxQcm9ncmVzc0JhckVs
ZW1lbnQ+IGJhciA9IFByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwogICAg
IG1fdmFsdWUgPSBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCmluZGV4IDZiYzZlYWM2NjA1
NzFmNTZlOTc1MGM3NmNkMTdiOWVkNjU1OTBiODYuLmUyOTU3YjIxZWNlZWZlNDY5M2JmOWRhYzRh
NmM3YTAzYzBlYTBmMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1h
cnlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVu
dC5jcHAKQEAgLTMxLDggKzMxLDggQEAKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyU3VtbWFyeS5oIgotCiAj
aW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzQsNyArNzQsNyBAQCBSZW5kZXJPYmplY3QqIEhUTUxT
dW1tYXJ5RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJT
dHlsZQogCiB2b2lkIEhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7
Ci0gICAgQVNTRVJUKCFzaGFkb3dSb290KCkpOworICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgp
KTsKICAgICBSZWZQdHI8U2hhZG93Um9vdD4gcm9vdCA9IFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlz
LCBTaGFkb3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QpOwogICAgIHJvb3QtPmFw
cGVuZENoaWxkKERldGFpbHNNYXJrZXJDb250cm9sOjpjcmVhdGUoZG9jdW1lbnQoKSksIEFTU0VS
VF9OT19FWENFUFRJT04sIHRydWUpOwogICAgIHJvb3QtPmFwcGVuZENoaWxkKFN1bW1hcnlDb250
ZW50RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0cnVl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCmluZGV4IDEz
Y2IzZWMzODZkYTllZTdkYjhjNjk4NDlkNDc0MzRhY2VjNjRlMWQuLjU5Y2U4MGUyOWU4MTBhZDQw
OGMxNTgyYjE3ZGU1MjBmYTY1YjFiOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRleHRBcmVhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4
dEFyZWFFbGVtZW50LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5o
IgogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmgiCiAjaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSAiVGV4dC5o
IgogI2luY2x1ZGUgIlRleHRDb250cm9sSW5uZXJFbGVtZW50cy5oIgogI2luY2x1ZGUgIlRleHRJ
dGVyYXRvci5oIgpAQCAtODQsNyArODUsNyBAQCBQYXNzUmVmUHRyPEhUTUxUZXh0QXJlYUVsZW1l
bnQ+IEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJgogCiB2
b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFT
U0VSVCghc2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoIWhhc1NoYWRvd1Jvb3QoKSk7CiAgICAg
UmVmUHRyPFNoYWRvd1Jvb3Q+IHJvb3QgPSBTaGFkb3dSb290OjpjcmVhdGUodGhpcywgU2hhZG93
Um9vdDo6Q3JlYXRpbmdVc2VyQWdlbnRTaGFkb3dSb290KTsKICAgICByb290LT5hcHBlbmRDaGls
ZChUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CiB9CkBAIC0yOTMsNyArMjk0LDcgQEAgU3RyaW5nIEhUTUxUZXh0QXJl
YUVsZW1lbnQ6OnNhbml0aXplVXNlcklucHV0VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wb3NlZFZh
bHVlLAogCiBIVE1MRWxlbWVudCogSFRNTFRleHRBcmVhRWxlbWVudDo6aW5uZXJUZXh0RWxlbWVu
dCgpIGNvbnN0CiB7Ci0gICAgTm9kZSogbm9kZSA9IHNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgp
OworICAgIE5vZGUqIG5vZGUgPSBzaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCkt
PmZpcnN0Q2hpbGQoKTsKICAgICBBU1NFUlQoIW5vZGUgfHwgbm9kZS0+aGFzVGFnTmFtZShkaXZU
YWcpKTsKICAgICByZXR1cm4gdG9IVE1MRWxlbWVudChub2RlKTsKIH0KQEAgLTQ3MCw3ICs0NzEs
NyBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpCiAg
ICAgU3RyaW5nIHBsYWNlaG9sZGVyVGV4dCA9IHN0cmlwcGVkUGxhY2Vob2xkZXIoKTsKICAgICBp
ZiAocGxhY2Vob2xkZXJUZXh0LmlzRW1wdHkoKSkgewogICAgICAgICBpZiAobV9wbGFjZWhvbGRl
cikgewotICAgICAgICAgICAgc2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZChtX3BsYWNlaG9sZGVy
LmdldCgpLCBlYyk7CisgICAgICAgICAgICBzaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dS
b290KCktPnJlbW92ZUNoaWxkKG1fcGxhY2Vob2xkZXIuZ2V0KCksIGVjKTsKICAgICAgICAgICAg
IEFTU0VSVCghZWMpOwogICAgICAgICAgICAgbV9wbGFjZWhvbGRlci5jbGVhcigpOwogICAgICAg
ICB9CkBAIC00NzksNyArNDgwLDcgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50Ojp1cGRhdGVQ
bGFjZWhvbGRlclRleHQoKQogICAgIGlmICghbV9wbGFjZWhvbGRlcikgewogICAgICAgICBtX3Bs
YWNlaG9sZGVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKICAgICAgICAg
bV9wbGFjZWhvbGRlci0+c2V0U2hhZG93UHNldWRvSWQoIi13ZWJraXQtaW5wdXQtcGxhY2Vob2xk
ZXIiKTsKLSAgICAgICAgc2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUobV9wbGFjZWhvbGRlciwg
c2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCktPm5leHRTaWJsaW5nKCksIGVjKTsKKyAgICAgICAg
c2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUobV9wbGFj
ZWhvbGRlciwgc2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxk
KCktPm5leHRTaWJsaW5nKCksIGVjKTsKICAgICAgICAgQVNTRVJUKCFlYyk7CiAgICAgfQogICAg
IG1fcGxhY2Vob2xkZXItPnNldElubmVyVGV4dChwbGFjZWhvbGRlclRleHQsIGVjKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW5wdXRUeXBlLmNwcAppbmRleCA4MDBjMjFjZmY4OTI5YzA3YjNlNjlkZGQyMDBlMDA4
NDMwMjk1NTY3Li5iMTQzMjA3YWVkNjZiMWY3Mzg5M2IyZTI1YWQ3M2RkNmZjMTVjMmY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC01Niw2ICs1Niw3IEBACiAjaW5jbHVkZSAiUmVz
ZXRJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJTZWFyY2hJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJT
aGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJTdWJt
aXRJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJUZWxlcGhvbmVJbnB1dFR5cGUuaCIKICNpbmNsdWRl
ICJUZXh0SW5wdXRUeXBlLmgiCkBAIC0zNzgsNyArMzc5LDEwIEBAIHZvaWQgSW5wdXRUeXBlOjpj
cmVhdGVTaGFkb3dTdWJ0cmVlKCkKIAogdm9pZCBJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0
cmVlKCkKIHsKLSAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IGVsZW1lbnQoKS0+c2hhZG93Um9v
dCgpKQorICAgIGlmICghZWxlbWVudCgpLT5oYXNTaGFkb3dSb290KCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmIChTaGFkb3dSb290KiByb290ID0gZWxlbWVudCgpLT5zaGFkb3dSb290TGlz
dCgpLT5vbGRlc3RTaGFkb3dSb290KCkpCiAgICAgICAgIHJvb3QtPnJlbW92ZUFsbENoaWxkcmVu
KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKaW5kZXggMTQ3NDE4
NTYyYjZiMmRmMGVkNzU5YzQwYjViNmU1ZWI0MWRlMzZjOS4uYTE3NGNlN2FmMzFlOTczZTc0ZDRj
Mjk4NmUwNGRhZmRhMjU2ODg4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5n
ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5j
cHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNp
bmNsdWRlICJSZW5kZXJTbGlkZXIuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVk
ZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJTbGlkZXJUaHVtYkVsZW1lbnQuaCIKICNp
bmNsdWRlICJTdGVwUmFuZ2UuaCIKICNpbmNsdWRlIDxsaW1pdHM+CkBAIC0xNTcsNyArMTU4LDEw
IEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmhhbmRsZU1vdXNlRG93bkV2ZW50KE1vdXNlRXZlbnQq
IGV2ZW50KQogICAgICAgICByZXR1cm47CiAKICAgICBOb2RlKiB0YXJnZXROb2RlID0gZXZlbnQt
PnRhcmdldCgpLT50b05vZGUoKTsKLSAgICBpZiAoZXZlbnQtPmJ1dHRvbigpICE9IExlZnRCdXR0
b24gfHwgIXRhcmdldE5vZGUgfHwgKHRhcmdldE5vZGUgIT0gZWxlbWVudCgpICYmICF0YXJnZXRO
b2RlLT5pc0Rlc2NlbmRhbnRPZihlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSkpKQorICAgIGlmIChl
dmVudC0+YnV0dG9uKCkgIT0gTGVmdEJ1dHRvbiB8fCAhdGFyZ2V0Tm9kZSkKKyAgICAgICAgcmV0
dXJuOworICAgIEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7CisgICAgaWYgKHRh
cmdldE5vZGUgIT0gZWxlbWVudCgpICYmICF0YXJnZXROb2RlLT5pc0Rlc2NlbmRhbnRPZihlbGVt
ZW50KCktPnNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKSkpCiAgICAgICAgIHJl
dHVybjsKICAgICBTbGlkZXJUaHVtYkVsZW1lbnQqIHRodW1iID0gc2xpZGVyVGh1bWJFbGVtZW50
T2YoZWxlbWVudCgpKTsKICAgICBpZiAodGFyZ2V0Tm9kZSA9PSB0aHVtYikKQEAgLTIzMyw3ICsy
MzcsNyBAQCB2b2lkIFJhbmdlSW5wdXRUeXBlOjpoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRF
dmVudCogZXZlbnQpCiAKIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUo
KQogewotICAgIEFTU0VSVChlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKGVs
ZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKTsKIAogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGVs
ZW1lbnQoKS0+ZG9jdW1lbnQoKTsKICAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHRyYWNrID0g
SFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CkBAIC0yNDMsNyArMjQ3LDcgQEAgdm9p
ZCBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgUmVmUHRyPEhUTUxF
bGVtZW50PiBjb250YWluZXIgPSBTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQpOwogICAgIGNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodHJhY2sucmVsZWFzZSgpLCBlYyk7CiAg
ICAgY29udGFpbmVyLT5hcHBlbmRDaGlsZChUcmFja0xpbWl0ZXJFbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpLCBlYyk7Ci0gICAgZWxlbWVudCgpLT5zaGFkb3dSb290KCktPmFwcGVuZENoaWxkKGNv
bnRhaW5lci5yZWxlYXNlKCksIGVjKTsKKyAgICBlbGVtZW50KCktPnNoYWRvd1Jvb3RMaXN0KCkt
Pm9sZGVzdFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoY29udGFpbmVyLnJlbGVhc2UoKSwgZWMp
OwogfQogCiBSZW5kZXJPYmplY3QqIFJhbmdlSW5wdXRUeXBlOjpjcmVhdGVSZW5kZXJlcihSZW5k
ZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGV4dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRleCA1NmU1NWQzODhlMzc3OGY2ZDUzOTYyMWIyMThi
MmJmOTRmYzM3NTk0Li5hOGMwOTQ2ZTVjY2EyZWVmOWVhNTAwMGQyYjZkMmU4ZjY5ZDlhNDc1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBAIC00Myw2ICs0
Myw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hh
ZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJUZXh0Q29udHJvbElubmVyRWxlbWVudHMuaCIKICNp
bmNsdWRlICJUZXh0RXZlbnQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKQEAgLTE4OSw3
ICsxOTAsNyBAQCBib29sIFRleHRGaWVsZElucHV0VHlwZTo6bmVlZHNDb250YWluZXIoKSBjb25z
dAogCiB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0g
ICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoZWxlbWVudCgp
LT5oYXNTaGFkb3dSb290KCkpOwogCiAgICAgQVNTRVJUKCFtX2lubmVyVGV4dCk7CiAgICAgQVNT
RVJUKCFtX2lubmVyQmxvY2spOwpAQCAtMjAzLDExICsyMDQsMTEgQEAgdm9pZCBUZXh0RmllbGRJ
bnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwogICAgIG1faW5uZXJUZXh0ID0gVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOwogICAgIGlmICghY3JlYXRlc0NvbnRhaW5lcikgewotICAgICAgICBlbGVtZW50
KCktPnNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQobV9pbm5lclRleHQsIGVjKTsKKyAgICAgICAg
ZWxlbWVudCgpLT5zaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCktPmFwcGVuZENo
aWxkKG1faW5uZXJUZXh0LCBlYyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTaGFk
b3dSb290KiBzaGFkb3dSb290ID0gZWxlbWVudCgpLT5zaGFkb3dSb290KCk7CisgICAgU2hhZG93
Um9vdCogc2hhZG93Um9vdCA9IGVsZW1lbnQoKS0+c2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hh
ZG93Um9vdCgpOwogICAgIG1fY29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCk7CiAgICAgbV9jb250YWluZXItPnNldFNoYWRvd1BzZXVkb0lkKCItd2Via2l0LXRleHRm
aWVsZC1kZWNvcmF0aW9uLWNvbnRhaW5lciIpOwogICAgIHNoYWRvd1Jvb3QtPmFwcGVuZENoaWxk
KG1fY29udGFpbmVyLCBlYyk7CkBAIC0zNjksNyArMzcwLDcgQEAgdm9pZCBUZXh0RmllbGRJbnB1
dFR5cGU6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpCiAgICAgaWYgKCFtX3BsYWNlaG9sZGVyKSB7
CiAgICAgICAgIG1fcGxhY2Vob2xkZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQo
KS0+ZG9jdW1lbnQoKSk7CiAgICAgICAgIG1fcGxhY2Vob2xkZXItPnNldFNoYWRvd1BzZXVkb0lk
KCItd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIik7Ci0gICAgICAgIGVsZW1lbnQoKS0+c2hhZG93
Um9vdCgpLT5pbnNlcnRCZWZvcmUobV9wbGFjZWhvbGRlciwgbV9jb250YWluZXIgPyBtX2NvbnRh
aW5lci0+bmV4dFNpYmxpbmcoKSA6IGlubmVyVGV4dEVsZW1lbnQoKS0+bmV4dFNpYmxpbmcoKSwg
ZWMpOworICAgICAgICBlbGVtZW50KCktPnNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jv
b3QoKS0+aW5zZXJ0QmVmb3JlKG1fcGxhY2Vob2xkZXIsIG1fY29udGFpbmVyID8gbV9jb250YWlu
ZXItPm5leHRTaWJsaW5nKCkgOiBpbm5lclRleHRFbGVtZW50KCktPm5leHRTaWJsaW5nKCksIGVj
KTsKICAgICAgICAgQVNTRVJUKCFlYyk7CiAgICAgfQogICAgIG1fcGxhY2Vob2xkZXItPnNldElu
bmVyVGV4dChwbGFjZWhvbGRlclRleHQsIGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0
aW9uTWVzc2FnZS5jcHAKaW5kZXggYmMzYzQ1NDg5ZGZiODYyYTE0YmI0ZTUzMGU3MDRiOWE4Y2Rj
NjY4Yy4uYmI4YTE5NWI4NGMyYmUwZjEwMmJlY2EzNzNlYzY1ZGZhOTFiM2ZjYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNp
bmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUg
IlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlRl
eHQuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCkBAIC0xODcsNyArMTg4LDcgQEAg
dm9pZCBWYWxpZGF0aW9uTWVzc2FnZTo6ZGVsZXRlQnViYmxlVHJlZShUaW1lcjxWYWxpZGF0aW9u
TWVzc2FnZT4qKQogICAgICAgICBtX21lc3NhZ2VCb2R5ID0gMDsKICAgICAgICAgSFRNTEVsZW1l
bnQqIGhvc3QgPSB0b0hUTUxFbGVtZW50KG1fZWxlbWVudCk7CiAgICAgICAgIEV4Y2VwdGlvbkNv
ZGUgZWM7Ci0gICAgICAgIGhvc3QtPnNoYWRvd1Jvb3QoKS0+cmVtb3ZlQ2hpbGQobV9idWJibGUu
Z2V0KCksIGVjKTsKKyAgICAgICAgaG9zdC0+c2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93
Um9vdCgpLT5yZW1vdmVDaGlsZChtX2J1YmJsZS5nZXQoKSwgZWMpOwogICAgICAgICBtX2J1YmJs
ZSA9IDA7CiAgICAgfQogICAgIG1fbWVzc2FnZSA9IFN0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKaW5kZXggMzE5YTExZTgw
MjUyZmFjMjg2YmU4NDBkMmJmNzYzNTQwZjU4ZWViNy4uYWJmNWIzNThiNTU0OTlkZWJiOTFlNTcy
NzM5MGI0MDk4ZDMzN2U3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
U2xpZGVyVGh1bWJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9T
bGlkZXJUaHVtYkVsZW1lbnQuY3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiUmVuZGVy
U2xpZGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJTaGFkb3dSb290
LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJTdGVwUmFuZ2UuaCIK
ICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCkBAIC02Niw3ICs2Nyw3IEBAIGlubGluZSBz
dGF0aWMgYm9vbCBoYXNWZXJ0aWNhbEFwcGVhcmFuY2UoSFRNTElucHV0RWxlbWVudCogaW5wdXQp
CiBTbGlkZXJUaHVtYkVsZW1lbnQqIHNsaWRlclRodW1iRWxlbWVudE9mKE5vZGUqIG5vZGUpCiB7
CiAgICAgQVNTRVJUKG5vZGUpOwotICAgIFNoYWRvd1Jvb3QqIHNoYWRvdyA9IG5vZGUtPnRvSW5w
dXRFbGVtZW50KCktPnNoYWRvd1Jvb3QoKTsKKyAgICBTaGFkb3dSb290KiBzaGFkb3cgPSBub2Rl
LT50b0lucHV0RWxlbWVudCgpLT5zaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCk7
CiAgICAgQVNTRVJUKHNoYWRvdyk7CiAgICAgTm9kZSogdGh1bWIgPSBzaGFkb3ctPmZpcnN0Q2hp
bGQoKS0+Zmlyc3RDaGlsZCgpLT5maXJzdENoaWxkKCk7CiAgICAgQVNTRVJUKHRodW1iKTsKQEAg
LTE0MSw3ICsxNDIsNyBAQCB2b2lkIFJlbmRlclNsaWRlckNvbnRhaW5lcjo6bGF5b3V0KCkKICAg
ICBMZW5ndGggaW5wdXRIZWlnaHQgPSBpbnB1dC0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+aGVpZ2h0
KCk7CiAgICAgUmVuZGVyT2JqZWN0KiB0cmFja1JlbmRlcmVyID0gbm9kZSgpLT5maXJzdENoaWxk
KCktPnJlbmRlcmVyKCk7CiAgICAgaWYgKCFpc1ZlcnRpY2FsICYmIGlucHV0LT5yZW5kZXJlcigp
LT5pc1NsaWRlcigpICYmICFpbnB1dEhlaWdodC5pc0ZpeGVkKCkgJiYgIWlucHV0SGVpZ2h0Lmlz
UGVyY2VudCgpKSB7Ci0gICAgICAgIFJlbmRlck9iamVjdCogdGh1bWJSZW5kZXJlciA9IGlucHV0
LT5zaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKS0+Zmlyc3RDaGlsZCgpLT5maXJzdENoaWxkKCkt
PnJlbmRlcmVyKCk7CisgICAgICAgIFJlbmRlck9iamVjdCogdGh1bWJSZW5kZXJlciA9IGlucHV0
LT5zaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKS0+Zmly
c3RDaGlsZCgpLT5maXJzdENoaWxkKCktPnJlbmRlcmVyKCk7CiAgICAgICAgIGlmICh0aHVtYlJl
bmRlcmVyKSB7CiAgICAgICAgICAgICBzdHlsZSgpLT5zZXRIZWlnaHQodGh1bWJSZW5kZXJlci0+
c3R5bGUoKS0+aGVpZ2h0KCkpOwogICAgICAgICAgICAgaWYgKHRyYWNrUmVuZGVyZXIpCkBAIC0z
NTUsNyArMzU2LDggQEAgY29uc3QgQXRvbWljU3RyaW5nJiBUcmFja0xpbWl0ZXJFbGVtZW50Ojpz
aGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiBUcmFja0xpbWl0ZXJFbGVtZW50KiB0cmFja0xpbWl0ZXJF
bGVtZW50T2YoTm9kZSogbm9kZSkKIHsKICAgICBBU1NFUlQobm9kZSk7Ci0gICAgU2hhZG93Um9v
dCogc2hhZG93ID0gbm9kZS0+dG9JbnB1dEVsZW1lbnQoKS0+c2hhZG93Um9vdCgpOworICAgIEFT
U0VSVChub2RlLT50b0lucHV0RWxlbWVudCgpLT5oYXNTaGFkb3dSb290KCkpOworICAgIFNoYWRv
d1Jvb3QqIHNoYWRvdyA9IG5vZGUtPnRvSW5wdXRFbGVtZW50KCktPnNoYWRvd1Jvb3RMaXN0KCkt
Pm9sZGVzdFNoYWRvd1Jvb3QoKTsKICAgICBBU1NFUlQoc2hhZG93KTsKICAgICBOb2RlKiBsaW1p
dGVyID0gc2hhZG93LT5maXJzdENoaWxkKCktPmxhc3RDaGlsZCgpOwogICAgIEFTU0VSVChsaW1p
dGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA1MTQyNmEz
MDg2MjRiOTg1ODhiMGUwNmY5MWNiNmQ2NDgxYWM4ZjhhLi5hYTk4YzAyNDlmYjA0NDk0NDc3ZDU0
MTY0YzMwOTVkZTIzNjkyZjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3Vz
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIu
Y3BwCkBAIC01NCw2ICs1NCw3IEBACiAjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0b3IuaCIKICNpbmNs
dWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFk
b3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlNwYXRpYWxOYXZpZ2F0aW9uLmgiCiAjaW5jbHVkZSAi
V2lkZ2V0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIgLy8gRm9yIGZpcnN0UG9zaXRpb25J
bk9yQmVmb3JlTm9kZQpAQCAtMTU0LDcgKzE1NSw3IEBAIHZvaWQgRm9jdXNDb250cm9sbGVyOjpz
ZXRGb2N1c2VkKGJvb2wgZm9jdXNlZCkKIAogc3RhdGljIGlubGluZSBTaGFkb3dSb290KiBzaGFk
b3dSb290KE5vZGUqIG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGUtPmlzRWxlbWVudE5vZGUoKSA/
IHRvRWxlbWVudChub2RlKS0+c2hhZG93Um9vdCgpIDogMDsKKyAgICByZXR1cm4gbm9kZS0+aXNF
bGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+aGFzU2hhZG93Um9vdCgpID8gdG9FbGVt
ZW50KG5vZGUpLT5zaGFkb3dSb290TGlzdCgpLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKSA6IDA7CiB9
CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1RyZWVTY29wZU93bmVyKE5vZGUqIG5vZGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNw
cAppbmRleCBhMWFlMTViNWM5YzAwNTQxMWQzMTYyMjE1MjY5MDk3ZDg5NGUwMDdiLi44NDM3MzAz
MmQ5ZmJiYjRkOGI2NDhhN2Q4NDJjZjBhYzBlNjBhOTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKQEAgLTMyLDYgKzMy
LDcgQEAKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIK
ICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNp
bmNsdWRlICJUZXh0UnVuLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVBvc2l0aW9uLmgiCiAjaW5jbHVk
ZSA8bWF0aC5oPgpAQCAtMjEyLDkgKzIxMyw5IEBAIEhUTUxJbnB1dEVsZW1lbnQqIFJlbmRlckZp
bGVVcGxvYWRDb250cm9sOjp1cGxvYWRCdXR0b24oKSBjb25zdAogewogICAgIEhUTUxJbnB1dEVs
ZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUoKSk7CiAK
LSAgICBBU1NFUlQoaW5wdXQtPnNoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKGlucHV0LT5oYXNT
aGFkb3dSb290KCkpOwogCi0gICAgTm9kZSogYnV0dG9uTm9kZSA9IGlucHV0LT5zaGFkb3dSb290
KCktPmZpcnN0Q2hpbGQoKTsKKyAgICBOb2RlKiBidXR0b25Ob2RlID0gaW5wdXQtPnNoYWRvd1Jv
b3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpOwogICAgIHJldHVybiBi
dXR0b25Ob2RlICYmIGJ1dHRvbk5vZGUtPmlzSFRNTEVsZW1lbnQoKSAmJiBidXR0b25Ob2RlLT5o
YXNUYWdOYW1lKGlucHV0VGFnKSA/IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihidXR0
b25Ob2RlKSA6IDA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVm
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCmluZGV4
IDk4YjhmOTEzZmExNjMyYjcxNzM5NjQyMGVkM2VlNmQ4MGRjMmM5YzQuLjEyMmQ3YzQzY2MyZDBi
MWE1NGU3YWFhYzRiNzM1ZDRhZjA4OGQxZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUUmVmRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVt
ZW50LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlJlbmRlclNWR0lubGluZVRleHQu
aCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3Qu
aCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlNWR0RvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiU1ZHRWxlbWVudEluc3RhbmNlLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIK
QEAgLTE1OSwxMCArMTYwLDEyIEBAIHZvaWQgU1ZHVFJlZkVsZW1lbnQ6OnVwZGF0ZVJlZmVyZW5j
ZWRUZXh0KCkKICAgICBpZiAodGFyZ2V0LT5wYXJlbnROb2RlKCkpCiAgICAgICAgIHRleHRDb250
ZW50ID0gdGFyZ2V0LT50ZXh0Q29udGVudCgpOwogCi0gICAgaWYgKCFzaGFkb3dSb290KCktPmZp
cnN0Q2hpbGQoKSkKLSAgICAgICAgc2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChTVkdTaGFkb3dU
ZXh0OjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dENvbnRlbnQpLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKKyAgICBBU1NFUlQoaGFzU2hhZG93Um9vdCgpKTsKKyAgICBTaGFkb3dSb290KiByb290ID0g
c2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpOworICAgIGlmICghcm9vdC0+Zmly
c3RDaGlsZCgpKQorICAgICAgICByb290LT5hcHBlbmRDaGlsZChTVkdTaGFkb3dUZXh0OjpjcmVh
dGUoZG9jdW1lbnQoKSwgdGV4dENvbnRlbnQpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBl
bHNlCi0gICAgICAgIHNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpLT5zZXRUZXh0Q29udGVudCh0
ZXh0Q29udGVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgIHJvb3QtPmZpcnN0Q2hp
bGQoKS0+c2V0VGV4dENvbnRlbnQodGV4dENvbnRlbnQsIEFTU0VSVF9OT19FWENFUFRJT04pOwog
fQogCiBib29sIFNWR1RSZWZFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRl
eCAxMjY0N2RmZTMxNzkzNjgzOWY5MTMzNGM4ODY1ZDc0Yzc3NmNlZWU4Li5lYjNhNWI3YjA1MzE5
MTQ0ZGU0NDcxZGZhMGZiNWYwZWQ4ZTg3ZGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVHJlZUFzVGV4dC5oIgog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUg
IlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSAiU3BlbGxDaGVja2VyLmgiCiAjaW5jbHVkZSAi
VGV4dEl0ZXJhdG9yLmgiCiAKQEAgLTE5MywyMCArMTk0LDQzIEBAIEludGVybmFsczo6U2hhZG93
Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogSW50ZXJuYWxzOjplbnN1cmVTaGFkb3dSb290
KEVsZW1lCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIGlmIChTaGFkb3dSb290KiBy
b290ID0gaG9zdC0+c2hhZG93Um9vdCgpKQotICAgICAgICByZXR1cm4gcm9vdDsKKyAgICBpZiAo
aG9zdC0+aGFzU2hhZG93Um9vdCgpKQorICAgICAgICByZXR1cm4gaG9zdC0+c2hhZG93Um9vdExp
c3QoKS0+eW91bmdlc3RTaGFkb3dSb290KCk7CiAKICAgICByZXR1cm4gU2hhZG93Um9vdDo6Y3Jl
YXRlKGhvc3QsIGVjKS5nZXQoKTsKIH0KIAogSW50ZXJuYWxzOjpTaGFkb3dSb290SWZTaGFkb3dE
T01FbmFibGVkT3JOb2RlKiBJbnRlcm5hbHM6OnNoYWRvd1Jvb3QoRWxlbWVudCogaG9zdCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgLy8gRklYTUU6IEludGVybmFsczo6c2hhZG93Um9vdCgp
IGluIHRlc3RzIHNob3VsZCBiZSBjb252ZXJ0ZWQgdG8geW91bmdlc3RTaGFkb3dSb290KCkgb3Ig
b2xkZXN0U2hhZG93Um9vdCgpLgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03ODQ2NQorICAgIHJldHVybiB5b3VuZ2VzdFNoYWRvd1Jvb3QoaG9zdCwgZWMp
OworfQorCitJbnRlcm5hbHM6OlNoYWRvd1Jvb3RJZlNoYWRvd0RPTUVuYWJsZWRPck5vZGUqIElu
dGVybmFsczo6eW91bmdlc3RTaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUm
IGVjKQorewogICAgIGlmICghaG9zdCkgewogICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VS
UjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgcmV0dXJuIGhvc3QtPnNoYWRvd1Jv
b3QoKTsKKyAgICBpZiAoIWhvc3QtPmhhc1NoYWRvd1Jvb3QoKSkKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICByZXR1cm4gaG9zdC0+c2hhZG93Um9vdExpc3QoKS0+eW91bmdlc3RTaGFkb3dSb290
KCk7Cit9CisKK0ludGVybmFsczo6U2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSog
SW50ZXJuYWxzOjpvbGRlc3RTaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUm
IGVjKQoreworICAgIGlmICghaG9zdCkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VS
UjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgaWYgKCFob3N0LT5oYXNTaGFkb3dS
b290KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIGhvc3QtPnNoYWRvd1Jvb3RM
aXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6OnJlbW92ZVNo
YWRvd1Jvb3QoRWxlbWVudCogaG9zdCwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaAppbmRleCA0MzlkYzc1YzZlMTVmYmNhZTgyYzY3Y2FmZTc5ZjBiMjFhZmRi
ZTBlLi5kMzhkODgwYTJmODNiOTg5Yjg5ODMzZmNmZTA0NDUyNTc1MTc1OGFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTY2LDYgKzY2LDggQEAgcHVibGljOgogI2VuZGlmCiAg
ICAgU2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogZW5zdXJlU2hhZG93Um9vdChF
bGVtZW50KiBob3N0LCBFeGNlcHRpb25Db2RlJik7CiAgICAgU2hhZG93Um9vdElmU2hhZG93RE9N
RW5hYmxlZE9yTm9kZSogc2hhZG93Um9vdChFbGVtZW50KiBob3N0LCBFeGNlcHRpb25Db2RlJik7
CisgICAgU2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogeW91bmdlc3RTaGFkb3dS
b290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBTaGFkb3dSb290SWZTaGFk
b3dET01FbmFibGVkT3JOb2RlKiBvbGRlc3RTaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICB2b2lkIHJlbW92ZVNoYWRvd1Jvb3QoRWxlbWVudCogaG9zdCwgRXhj
ZXB0aW9uQ29kZSYpOwogICAgIEVsZW1lbnQqIGluY2x1ZGVyRm9yKE5vZGUqLCBFeGNlcHRpb25D
b2RlJik7CiAgICAgU3RyaW5nIHNoYWRvd1BzZXVkb0lkKEVsZW1lbnQqLCBFeGNlcHRpb25Db2Rl
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggOWJmMDU3NTFkOWI2YTJm
NGE4MWYwNzA5OWM5M2M3YTZkM2E4YTA1My4uNzU2NzZmNmFhMmI3OTJkNjUwZGI1YmY3MTFhZTg0
OTQ4MTZiNzc5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMzUsOSAr
MzUsMTMgQEAgbW9kdWxlIHdpbmRvdyB7CiAjaWYgZGVmaW5lZChFTkFCTEVfU0hBRE9XX0RPTSkK
ICAgICAgICAgU2hhZG93Um9vdCBlbnN1cmVTaGFkb3dSb290KGluIEVsZW1lbnQgaG9zdCkgcmFp
c2VzIChET01FeGNlcHRpb24pOwogICAgICAgICBTaGFkb3dSb290IHNoYWRvd1Jvb3QoaW4gRWxl
bWVudCBob3N0KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFNoYWRvd1Jvb3QgeW91
bmdlc3RTaGFkb3dSb290KGluIEVsZW1lbnQgaG9zdCkgcmFpc2VzIChET01FeGNlcHRpb24pOwor
ICAgICAgICBTaGFkb3dSb290IG9sZGVzdFNoYWRvd1Jvb3QoaW4gRWxlbWVudCBob3N0KSByYWlz
ZXMgKERPTUV4Y2VwdGlvbik7CiAjZWxzZQogICAgICAgICBOb2RlIGVuc3VyZVNoYWRvd1Jvb3Qo
aW4gRWxlbWVudCBob3N0KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIE5vZGUgc2hh
ZG93Um9vdChpbiBFbGVtZW50IGhvc3QpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAg
Tm9kZSB5b3VuZ2VzdFNoYWRvd1Jvb3QoaW4gRWxlbWVudCBob3N0KSByYWlzZXMgKERPTUV4Y2Vw
dGlvbik7CisgICAgICAgIE5vZGUgb2xkZXN0U2hhZG93Um9vdChpbiBFbGVtZW50IGhvc3QpIHJh
aXNlcyAoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgogICAgICAgICBFbGVtZW50IGluY2x1ZGVyRm9y
KGluIE5vZGUgbm9kZSkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHJlbW92
ZVNoYWRvd1Jvb3QoaW4gRWxlbWVudCBob3N0KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0Mi5kZWYKaW5kZXggNzY4MzBlMDFjOWRjNDM2MTU1ZjIyY2RjZmI1YjYzODU4MGE5
YWYzOC4uZmZkOGVkOTUxZjRjY2YxZjlmMWI1YWE2YjI1MGVkMmMwNmUyMDljOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dp
bi9XZWJLaXQyLmRlZgpAQCAtMTYzLDYgKzE2Myw3IEBAIEVYUE9SVFMKICAgICAgICAgP2dldERh
dGExNlNsb3dDYXNlQFN0cmluZ0ltcGxAV1RGQEBBQkVQQl9XWFoKICAgICAgICAgP2dldEVsZW1l
bnRCeUlkQFRyZWVTY29wZUBXZWJDb3JlQEBRQkVQQVZFbGVtZW50QDJAQUJWQXRvbWljU3RyaW5n
QFdURkBAQFoKICAgICAgICAgP2dldExvY2F0aW9uQW5kTGVuZ3RoRnJvbVJhbmdlQFRleHRJdGVy
YXRvckBXZWJDb3JlQEBTQV9OUEFWRWxlbWVudEAyQFBCVlJhbmdlQDJAQUFJMkBaCisgICAgICAg
ID9oYXNTaGFkb3dSb290QEVsZW1lbnRAV2ViQ29yZUBAUUJFX05YWgogICAgICAgICA/aXNQcmVs
b2FkZWRAQ2FjaGVkUmVzb3VyY2VMb2FkZXJAV2ViQ29yZUBAUUJFX05BQlZTdHJpbmdAV1RGQEBA
WgogICAgICAgICA/anNTdHJpbmdTbG93Q2FzZUBXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQ
QVZFeGVjU3RhdGVAM0BBQVY/JEhhc2hNYXBAUEFWU3RyaW5nSW1wbEBXVEZAQFY/JFdlYWtAVkpT
U3RyaW5nQEpTQ0BAQEpTQ0BAVVN0cmluZ0hhc2hAMkBVPyRIYXNoVHJhaXRzQFBBVlN0cmluZ0lt
cGxAV1RGQEBAMkBVPyRIYXNoVHJhaXRzQFY/JFdlYWtAVkpTU3RyaW5nQEpTQ0BAQEpTQ0BAQDJA
QFdURkBAUEFWU3RyaW5nSW1wbEA2QEBaCiAgICAgICAgID9sYXN0Q2hhbmdlV2FzVXNlckVkaXRA
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnRAV2ViQ29yZUBAUUJFX05YWgpAQCAtMTg3LDcgKzE4
OCw3IEBAIEVYUE9SVFMKICAgICAgICAgP3NldHRpbmdzQERvY3VtZW50QFdlYkNvcmVAQFFCRVBB
VlNldHRpbmdzQDJAWFoKICAgICAgICAgP3NldHRpbmdzQEZyYW1lQFdlYkNvcmVAQFFCRVBBVlNl
dHRpbmdzQDJAWFoKICAgICAgICAgP3NldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJh
bWVAU2V0dGluZ3NAV2ViQ29yZUBAUUFFWF9OQFoKLSAgICAgICAgP3NoYWRvd1Jvb3RARWxlbWVu
dEBXZWJDb3JlQEBRQkVQQVZTaGFkb3dSb290QDJAWFoKKyAgICAgICAgP3NoYWRvd1Jvb3RMaXN0
QEVsZW1lbnRAV2ViQ29yZUBAUUJFUEFWU2hhZG93Um9vdExpc3RAMkBYWgogICAgICAgICA/c3Vn
Z2VzdGVkVmFsdWVASFRNTElucHV0RWxlbWVudEBXZWJDb3JlQEBRQkVBQlZTdHJpbmdAV1RGQEBY
WgogICAgICAgICA/dG9Eb2N1bWVudEBXZWJDb3JlQEBZQVBBVkRvY3VtZW50QDFAVkpTVmFsdWVA
SlNDQEBAWgogICAgICAgICA/dG9FbGVtZW50QFdlYkNvcmVAQFlBUEFWRWxlbWVudEAxQFZKU1Zh
bHVlQEpTQ0BAQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRl
LmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgppbmRleCAzYTkyN2My
N2NlZTY5ZmNhYzJhNDY2ODZkODcxNDBkMjEzYzMyMzA1Li41NWVjYTMwNmRkM2EyNjI0YTc3MTFm
NWQzOGMxMmM1NWM0ZTA0NzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
MkNGTGl0ZS5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCkBA
IC0xLDMgKzEsNCBAQAorCiBFWFBPUlRTCiAgICAgICAgIERsbEdldENsYXNzT2JqZWN0ICAgUFJJ
VkFURQogICAgICAgICBEbGxDYW5VbmxvYWROb3cgICAgIFBSSVZBVEUKQEAgLTE1Nyw2ICsxNTgs
NyBAQCBFWFBPUlRTCiAgICAgICAgID9nZXREYXRhMTZTbG93Q2FzZUBTdHJpbmdJbXBsQFdURkBA
QUJFUEJfV1haCiAgICAgICAgID9nZXRFbGVtZW50QnlJZEBUcmVlU2NvcGVAV2ViQ29yZUBAUUJF
UEFWRWxlbWVudEAyQEFCVkF0b21pY1N0cmluZ0BXVEZAQEBaCiAgICAgICAgID9nZXRMb2NhdGlv
bkFuZExlbmd0aEZyb21SYW5nZUBUZXh0SXRlcmF0b3JAV2ViQ29yZUBAU0FfTlBBVkVsZW1lbnRA
MkBQQlZSYW5nZUAyQEFBSTJAWgorICAgICAgICA/aGFzU2hhZG93Um9vdEBFbGVtZW50QFdlYkNv
cmVAQFFCRV9OWFoKICAgICAgICAgP2lzUHJlbG9hZGVkQENhY2hlZFJlc291cmNlTG9hZGVyQFdl
YkNvcmVAQFFCRV9OQUJWU3RyaW5nQFdURkBAQFoKICAgICAgICAgP2pzU3RyaW5nU2xvd0Nhc2VA
V2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAQUFWPyRIYXNoTWFwQFBB
VlN0cmluZ0ltcGxAV1RGQEBWPyRXZWFrQFZKU1N0cmluZ0BKU0NAQEBKU0NAQFVTdHJpbmdIYXNo
QDJAVT8kSGFzaFRyYWl0c0BQQVZTdHJpbmdJbXBsQFdURkBAQDJAVT8kSGFzaFRyYWl0c0BWPyRX
ZWFrQFZKU1N0cmluZ0BKU0NAQEBKU0NAQEAyQEBXVEZAQFBBVlN0cmluZ0ltcGxANkBAWgogICAg
ICAgICA/bGFzdENoYW5nZVdhc1VzZXJFZGl0QEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50QFdl
YkNvcmVAQFFCRV9OWFoKQEAgLTE4MSw3ICsxODMsNyBAQCBFWFBPUlRTCiAgICAgICAgID9zZXR0
aW5nc0BEb2N1bWVudEBXZWJDb3JlQEBRQkVQQVZTZXR0aW5nc0AyQFhaCiAgICAgICAgID9zZXR0
aW5nc0BGcmFtZUBXZWJDb3JlQEBRQkVQQVZTZXR0aW5nc0AyQFhaCiAgICAgICAgID9zZXRGaXhl
ZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lQFNldHRpbmdzQFdlYkNvcmVAQFFBRVhfTkBa
Ci0gICAgICAgID9zaGFkb3dSb290QEVsZW1lbnRAV2ViQ29yZUBAUUJFUEFWU2hhZG93Um9vdEAy
QFhaCisgICAgICAgID9zaGFkb3dSb290TGlzdEBFbGVtZW50QFdlYkNvcmVAQFFCRVBBVlNoYWRv
d1Jvb3RMaXN0QDJAWFoKICAgICAgICAgP3N1Z2dlc3RlZFZhbHVlQEhUTUxJbnB1dEVsZW1lbnRA
V2ViQ29yZUBAUUJFQUJWU3RyaW5nQFdURkBAWFoKICAgICAgICAgP3RvRG9jdW1lbnRAV2ViQ29y
ZUBAWUFQQVZEb2N1bWVudEAxQFZKU1ZhbHVlQEpTQ0BAQFoKICAgICAgICAgP3RvRWxlbWVudEBX
ZWJDb3JlQEBZQVBBVkVsZW1lbnRAMUBWSlNWYWx1ZUBKU0NAQEBaCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZp
bHRlcgppbmRleCA1ZTllYjM0Y2U1NDcyMTE4MjE2Mzg0OTg0ZGYwNGRhYzNkMTVmMDhlLi40MjY0
MzQ5NTNkMGMwOTg3MmU5ZDQzN2ZjZjhmOTk0NmNjNzVlMTVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
YXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCisrKyBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5m
aWx0ZXIKQEAgLTc4LDggKzc4LDkgQEAgX1pOSzdXZWJDb3JlMjBDYWNoZWRSZXNvdXJjZUxvYWRl
cjExaXNQcmVsb2FkZWRFUktOM1dURjZTdHJpbmdFOwogX1pOSzdXZWJDb3JlMjZIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudDIxbGFzdENoYW5nZVdhc1VzZXJFZGl0RXY7CiBfWk5LN1dlYkNvcmU1
RnJhbWU4c2V0dGluZ3NFdjsKIF9aTks3V2ViQ29yZTZKU05vZGUyMXB1c2hFdmVudEhhbmRsZXJT
Y29wZUVQTjNKU0M5RXhlY1N0YXRlRVBOUzFfMTRTY29wZUNoYWluTm9kZUU7Ci1fWk5LN1dlYkNv
cmU3RWxlbWVudDEwc2hhZG93Um9vdEV2OwogX1pOSzdXZWJDb3JlN0VsZW1lbnQzMW51bWJlck9m
U2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW5FdjsKK19aTks3V2ViQ29yZTdFbGVtZW50MTNoYXNTaGFk
b3dSb290RXY7CitfWk5LN1dlYkNvcmU3RWxlbWVudDE0c2hhZG93Um9vdExpc3RFdjsKIF9aTks3
V2ViQ29yZThEb2N1bWVudDRwYWdlRXY7CiBfWk5LN1dlYkNvcmU4RG9jdW1lbnQ4c2V0dGluZ3NF
djsKIF9aTks3V2ViQ29yZThEb2N1bWVudDR2aWV3RXY7CmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cg
Yi9DaGFuZ2VMb2cKaW5kZXggM2U2YTcwOTM2OGI1NTVmYjQ3MGQxN2IyOTgwMTg3YTVkMzFkOWE1
My4uNjViNzNlODQzZGQzZDBmNWQxN2NkYWQ0MWEwOTBlYzY4ZmE0ODJhMyAxMDA2NDQKLS0tIGEv
Q2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTAyLTE0ICBT
aGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgVXNlIHlvdW5n
ZXN0U2hhZG93Um9vdCBhbmQgb2xkZXN0U2hhZG93Um9vdCBpbnN0ZWFkIG9mIEVsZW1lbnQ6OnNo
YWRvd1Jvb3QoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc4NDU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRXhwb3J0cyBuZWNlc3Nhcnkgc3ltYm9scy4KKworICAgICAgICAqIFNvdXJjZS9hdXRvdG9v
bHMvc3ltYm9scy5maWx0ZXI6CisKIDIwMTItMDItMTMgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgWWV0IGFub3RoZXIgcGVyZi1vLW1hdGljIGJ1aWxkIGZpeC4g
SXQgdHVybnMgb3V0IHRoYXQgYSB0YXNrIG9mIHRoZSBzYW1lIG5hbWUgY2FuJ3QgYmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126926</attachid>
            <date>2012-02-14 00:50:39 -0800</date>
            <delta_ts>2012-02-14 01:12:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78455-20120214175038.patch</filename>
            <type>text/plain</type>
            <size>50055</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzAzYTAxNDQ1N2Q2MDdh
MjcxYzM1Zjc2MzFjNDcwZDk4M2NjNTc3YS4uNzQwZTY4YzVjNmIyZWQyMWVmZmZhOWU1OTgwZDA2
Yzg3MjI0NWYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMyBAQAorMjAxMi0wMi0xNCAgU2hp
bnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgorCisgICAgICAgIFVzZSB5b3VuZ2Vz
dFNoYWRvd1Jvb3QgYW5kIG9sZGVzdFNoYWRvd1Jvb3QgaW5zdGVhZCBvZiBFbGVtZW50OjpzaGFk
b3dSb290KCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03ODQ1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEVsZW1lbnQ6OnNoYWRvd1Jvb3QoKSB3YXMgdXNlZCBmb3IgdGhlc2UgMyBwdXJwb3Nlcy4KKyAg
ICAgICAgMS4gY2hlY2tzIGEgc2hhZG93IHJvb3QgZXhpc3RzLgorICAgICAgICAyLiBnZXRzIGF1
dGhvciBzaGFkb3cgcm9vdC4KKyAgICAgICAgMy4gZ2V0cyB1c2VyIGFnZW50IHNoYWRvdyByb290
LgorCisgICAgICAgIFdlIGhhdmUgdG8gZGlzdGluZ3Vpc2ggdGhlbSB3aGVuIGltcGxlbWVudGlu
ZyBtdWx0aXBsZSBzaGFkb3cgc3VidHJlZXMuCisKKyAgICAgICAgQ2FsbGluZyBmb3IgKDEpLCAo
MiksIGFuZCAoMykgYXJlIGNvbnZlcmVkIHRvIGhhc1NoYWRvd1Jvb3QoKS4KKyAgICAgICAgU2hh
ZG93Um9vdExpc3QoKS0+eW91bmdlc3RTaGFkb3dSb290KCksIGFuZCBTaGFkb3dSb290TGlzdCgp
LT5vbGRlc3RTaGFkb3dSb290KCkgcmVzcGVjdGl2ZWx5LgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cywgbm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpi
dWlsZEFjY2Vzc0tleU1hcCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjppbnNlcnRlZEludG9UcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJlbW92
ZWRGcm9tVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjphdHRhY2gpOgorICAgICAg
ICAoV2ViQ29yZTo6RWxlbWVudDo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6
OnJlY2FsY1N0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmVuc3VyZVNoYWRvd1Jv
b3QpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmZvY3VzKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgor
ICAgICAgICAoRWxlbWVudCk6CisgICAgICAgICogZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjppc1NoYWRvd0hvc3QpOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnNoYWRvd1Jvb3QpOgorICAgICAgICAqIGRvbS9Ob2RlUmVuZGVy
aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmVuZGVyaW5nQ29udGV4dDo6
Tm9kZVJlbmRlcmluZ0NvbnRleHQpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL1NoYWRv
d1Jvb3RMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3RMaXN0OjppbnNlcnRl
ZEludG9Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3RMaXN0OjpyZW1vdmVkRnJvbURvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3RMaXN0OjppbnNlcnRlZEludG9UcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d1Jvb3RMaXN0OjpyZW1vdmVkRnJvbVRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9v
dExpc3Q6Omhvc3RDaGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9v
dExpc3Q6OmF0dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290TGlzdDo6ZGV0YWNo
KToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdExpc3QuaDoKKyAgICAgICAgKFNoYWRvd1Jvb3RM
aXN0KToKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlQWRvcHRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpzaGFkb3dSb290Rm9yKToKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjptdWx0aXBsZUF0dHJpYnV0ZUNoYW5nZWQp
OgorICAgICAgICAqIGh0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxEZXRhaWxzRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRGV0YWlsc0VsZW1lbnQ6OmZpbmRNYWluU3VtbWFyeSk6CisgICAgICAgICog
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVs
ZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvSFRNTEtleWdlbkVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEtleWdlbkVsZW1lbnQ6OkhUTUxLZXln
ZW5FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxLZXlnZW5FbGVtZW50OjpzaGFkb3dT
ZWxlY3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6Omhhc01lZGlhQ29udHJvbHMpOgorICAgICAgICAqIGh0bWwv
SFRNTE1ldGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0ZXJFbGVtZW50
OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL0hUTUxQcm9ncmVzc0VsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb2dyZXNzRWxlbWVudDo6Y3JlYXRlU2hh
ZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFN1bW1hcnlFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToK
KyAgICAgICAgKiBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Ojppbm5lclRleHRFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCk6Cisg
ICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBl
OjpkZXN0cm95U2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9SYW5nZUlucHV0VHlwZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6aGFuZGxlTW91c2VEb3duRXZl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRy
ZWUpOgorICAgICAgICAqIGh0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCk6Cisg
ICAgICAgICogaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpW
YWxpZGF0aW9uTWVzc2FnZTo6ZGVsZXRlQnViYmxlVHJlZSk6CisgICAgICAgICogaHRtbC9zaGFk
b3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNsaWRlclRodW1i
RWxlbWVudE9mKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlckNvbnRhaW5lcjo6bGF5
b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OnRyYWNrTGltaXRlckVsZW1lbnRPZik6CisgICAgICAg
ICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hhZG93Um9v
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckZpbGVVcGxvYWRDb250cm9sOjp1cGxvYWRCdXR0b24pOgor
ICAgICAgICAqIHN2Zy9TVkdUUmVmRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdU
UmVmRWxlbWVudDo6dXBkYXRlUmVmZXJlbmNlZFRleHQpOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZW5zdXJlU2hhZG93Um9v
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNoYWRvd1Jvb3QpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnlvdW5nZXN0U2hhZG93Um9v
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om9sZGVzdFNoYWRvd1Jvb3QpOgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgIChJbnRlcm5hbHMpOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMi0wMi0xMyAgU2hpbnlhIEthd2FuYWth
ICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1JlZ3Jlc3Npb25dIHIxMDc2NTAg
YnJva2UgdGhlIHdpbmRvd3MgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmFiZjA4MDUzN2EzMDA5ODMx
OWVlMDI3ZjBlNTFjZDFmY2NhMGI2My4uZmMyZGY5YmY2ZjA0YjA0NDFlOGM1ZTVmMGVjZTNmY2Vl
N2Q5YzA3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAyLTE0ICBTaGlueWEg
S2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgVXNlIHlvdW5nZXN0U2hh
ZG93Um9vdCBhbmQgb2xkZXN0U2hhZG93Um9vdCBpbnN0ZWFkIG9mIEVsZW1lbnQ6OnNoYWRvd1Jv
b3QoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4
NDU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhw
b3J0cyBuZWNlc2Fycnkgc3ltYm9scy4KKworICAgICAgICAqIHdpbi9XZWJLaXQyLmRlZjoKKyAg
ICAgICAgKiB3aW4vV2ViS2l0MkNGTGl0ZS5kZWY6CisKIDIwMTItMDItMTMgIEVucmljYSBDYXN1
Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3RvciBNYWMgcGxhdGZvcm0g
aW1wbGVtZW50YXRpb24gb2YgdGhlIFBhc3RlYm9hcmQgY2xhc3MgdG8gdXNlIFBsYXRmb3JtIFN0
cmF0ZWdpZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDQ4Nzc5N2Q3ZGU3MmU3NzVlNzIwOTNm
MjYzOTAxZWM3OWYwMzE3YzguLjQzOWZhMTlkMzU5MTlmOTM4ZTQwZmE0MmUyNjg1MjQyODk3YmQ4
M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xNDM0LDggKzE0MzQsOSBAQCBfX1pOSzdXZWJD
b3JlNldpZGdldDI1Y29udmVydFRvQ29udGFpbmluZ1dpbmRvd0VSS05TXzdJbnRSZWN0RQogX19a
Tks3V2ViQ29yZTZXaWRnZXQyNWNvbnZlcnRUb0NvbnRhaW5pbmdXaW5kb3dFUktOU184SW50UG9p
bnRFCiBfX1pOSzdXZWJDb3JlNldpZGdldDlmcmFtZVJlY3RFdgogX19aTks3V2ViQ29yZTdFbGVt
ZW50MTBzY3JlZW5SZWN0RXYKLV9fWk5LN1dlYkNvcmU3RWxlbWVudDEwc2hhZG93Um9vdEV2CiBf
X1pOSzdXZWJDb3JlN0VsZW1lbnQxMmdldEF0dHJpYnV0ZUVSS05TXzEzUXVhbGlmaWVkTmFtZUUK
K19fWk5LN1dlYkNvcmU3RWxlbWVudDEzaGFzU2hhZG93Um9vdEV2CitfX1pOSzdXZWJDb3JlN0Vs
ZW1lbnQxNHNoYWRvd1Jvb3RMaXN0RXYKIF9fWk5LN1dlYkNvcmU3SW50UmVjdDEwaW50ZXJzZWN0
c0VSS1MwXwogX19aTks3V2ViQ29yZTdJbnRSZWN0OGNvbnRhaW5zRVJLUzBfCiBfX1pOSzdXZWJD
b3JlN0ludFJlY3RjdjZDR1JlY3RFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYTE1YmVj
ZjdkOGZiMmQzY2ZlNjhmMjZhZGEyMjk0OThmMDNhMzlmMC4uMzBiZjViZmNiMWNmMTYyYzVlYTNi
NjNhZjZkMzQ1NDk5MmFhOTdjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMzcsNiAr
MTM3LDcgQEAKICNpbmNsdWRlICJTZWdtZW50ZWRTdHJpbmcuaCIKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5o
IgogI2luY2x1ZGUgIlN0YXRpY0hhc2hTZXROb2RlTGlzdC5oIgogI2luY2x1ZGUgIlN0eWxlU2hl
ZXRMaXN0LmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgpAQCAtNjY2LDggKzY2
NywxMSBAQCB2b2lkIERvY3VtZW50OjpidWlsZEFjY2Vzc0tleU1hcChUcmVlU2NvcGUqIHNjb3Bl
KQogICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGFjY2Vzc0tleSA9IGVsZW1lbnQtPmdldEF0
dHJpYnV0ZShhY2Nlc3NrZXlBdHRyKTsKICAgICAgICAgaWYgKCFhY2Nlc3NLZXkuaXNFbXB0eSgp
KQogICAgICAgICAgICAgbV9lbGVtZW50c0J5QWNjZXNzS2V5LnNldChhY2Nlc3NLZXkuaW1wbCgp
LCBlbGVtZW50KTsKLSAgICAgICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSBlbGVtZW50
LT5zaGFkb3dSb290KCkpCi0gICAgICAgICAgICBidWlsZEFjY2Vzc0tleU1hcChzaGFkb3dSb290
KTsKKworICAgICAgICBpZiAoZWxlbWVudC0+aGFzU2hhZG93Um9vdCgpKSB7CisgICAgICAgICAg
ICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSBlbGVtZW50LT5zaGFkb3dSb290TGlzdCgpLT55b3Vu
Z2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQor
ICAgICAgICAgICAgICAgIGJ1aWxkQWNjZXNzS2V5TWFwKHJvb3QpOworICAgICAgICB9CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggY2Y5M2M2Mjc2MDk1OTc5NzgyMzg2YTUw
N2EyMGFhZGY5YjMzMzBlZi4uMTM3MDE1MzFkMmE5NmI0NDkxYzgzYTRmZDRhN2EzOTBmOTNiY2Q5
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtODczLDggKzg3Myw4IEBAIHZvaWQgRWxlbWVu
dDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKQogICAgIC8vIG5lZWQgdG8gZG8gc3VwZXJjbGFzcyBw
cm9jZXNzaW5nIGZpcnN0IHNvIGluRG9jdW1lbnQoKSBpcyB0cnVlCiAgICAgLy8gYnkgdGhlIHRp
bWUgd2UgcmVhY2ggdXBkYXRlSWQKICAgICBDb250YWluZXJOb2RlOjppbnNlcnRlZEludG9Eb2N1
bWVudCgpOwotICAgIGlmIChTaGFkb3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290KCkpCi0gICAg
ICAgIHNoYWRvdy0+aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKKyAgICBpZiAoU2hhZG93Um9vdExp
c3QqIHNoYWRvd0xpc3QgPSBzaGFkb3dSb290TGlzdCgpKQorICAgICAgICBzaGFkb3dMaXN0LT5p
bnNlcnRlZEludG9Eb2N1bWVudCgpOwogCiAgICAgaWYgKG1fYXR0cmlidXRlTWFwKSB7CiAgICAg
ICAgIGlmIChoYXNJRCgpKSB7CkBAIC05MDYsOCArOTA2LDggQEAgdm9pZCBFbGVtZW50OjpyZW1v
dmVkRnJvbURvY3VtZW50KCkKICAgICB9CiAKICAgICBDb250YWluZXJOb2RlOjpyZW1vdmVkRnJv
bURvY3VtZW50KCk7Ci0gICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRvdyA9IHNoYWRvd1Jvb3QoKSkK
LSAgICAgICAgc2hhZG93LT5yZW1vdmVkRnJvbURvY3VtZW50KCk7CisgICAgaWYgKFNoYWRvd1Jv
b3RMaXN0KiBzaGFkb3dMaXN0ID0gc2hhZG93Um9vdExpc3QoKSkKKyAgICAgICAgc2hhZG93TGlz
dC0+cmVtb3ZlZEZyb21Eb2N1bWVudCgpOwogfQogCiB2b2lkIEVsZW1lbnQ6Omluc2VydGVkSW50
b1RyZWUoYm9vbCBkZWVwKQpAQCAtOTE1LDggKzkxNSw4IEBAIHZvaWQgRWxlbWVudDo6aW5zZXJ0
ZWRJbnRvVHJlZShib29sIGRlZXApCiAgICAgQ29udGFpbmVyTm9kZTo6aW5zZXJ0ZWRJbnRvVHJl
ZShkZWVwKTsKICAgICBpZiAoIWRlZXApCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoU2hhZG93
Um9vdCogc2hhZG93ID0gc2hhZG93Um9vdCgpKQotICAgICAgICBzaGFkb3ctPmluc2VydGVkSW50
b1RyZWUodHJ1ZSk7CisgICAgaWYgKFNoYWRvd1Jvb3RMaXN0KiBzaGFkb3dMaXN0ID0gc2hhZG93
Um9vdExpc3QoKSkKKyAgICAgICAgc2hhZG93TGlzdC0+aW5zZXJ0ZWRJbnRvVHJlZSh0cnVlKTsK
IAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBpZiAoY29udGFpbnNGdWxsU2NyZWVu
RWxlbWVudCgpICYmIHBhcmVudEVsZW1lbnQoKSAmJiAhcGFyZW50RWxlbWVudCgpLT5jb250YWlu
c0Z1bGxTY3JlZW5FbGVtZW50KCkpCkBAIC05MjksOCArOTI5LDggQEAgdm9pZCBFbGVtZW50Ojpy
ZW1vdmVkRnJvbVRyZWUoYm9vbCBkZWVwKQogICAgIENvbnRhaW5lck5vZGU6OnJlbW92ZWRGcm9t
VHJlZShkZWVwKTsKICAgICBpZiAoIWRlZXApCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoU2hh
ZG93Um9vdCogc2hhZG93ID0gc2hhZG93Um9vdCgpKQotICAgICAgICBzaGFkb3ctPnJlbW92ZWRG
cm9tVHJlZSh0cnVlKTsKKyAgICBpZiAoU2hhZG93Um9vdExpc3QqIHNoYWRvd0xpc3QgPSBzaGFk
b3dSb290TGlzdCgpKQorICAgICAgICBzaGFkb3dMaXN0LT5yZW1vdmVkRnJvbVRyZWUodHJ1ZSk7
CiB9CiAKIHZvaWQgRWxlbWVudDo6YXR0YWNoKCkKQEAgLTk0MiwxMCArOTQyLDEwIEBAIHZvaWQg
RWxlbWVudDo6YXR0YWNoKCkKICAgICBTdHlsZVNlbGVjdG9yUGFyZW50UHVzaGVyIHBhcmVudFB1
c2hlcih0aGlzKTsKIAogICAgIC8vIFdoZW4gYSBzaGFkb3cgcm9vdCBleGlzdHMsIGl0IGRvZXMg
dGhlIHdvcmsgb2YgYXR0YWNoaW5nIHRoZSBjaGlsZHJlbi4KLSAgICBpZiAoU2hhZG93Um9vdCog
c2hhZG93ID0gc2hhZG93Um9vdCgpKSB7CisgICAgaWYgKGhhc1NoYWRvd1Jvb3QoKSkgewogICAg
ICAgICBwYXJlbnRQdXNoZXIucHVzaCgpOwogICAgICAgICBOb2RlOjphdHRhY2goKTsKLSAgICAg
ICAgc2hhZG93LT5hdHRhY2goKTsKKyAgICAgICAgc2hhZG93Um9vdExpc3QoKS0+YXR0YWNoKCk7
CiAKICAgICAgICAgLy8gSW4gYSBzaGFkb3cgdHJlZSwgc29tZSBvZiBsaWdodCBjaGlsZHJlbiBt
YXkgYmUgYXR0YWNoZWQgYnkgJ2NvbnRlbnQnIGVsZW1lbnQuCiAgICAgICAgIC8vIEhvd2V2ZXIs
IHdoZW4gdGhlcmUgaXMgbm8gY29udGVudCBlbGVtZW50IG9yIGNvbnRlbnQgZWxlbWVudCBkb2Vz
IG5vdCBzZWxlY3QKQEAgLTk4MSw4ICs5ODEsOCBAQCB2b2lkIEVsZW1lbnQ6OmRldGFjaCgpCiAg
ICAgaWYgKGhhc1JhcmVEYXRhKCkpCiAgICAgICAgIHJhcmVEYXRhKCktPnJlc2V0Q29tcHV0ZWRT
dHlsZSgpOwogICAgIENvbnRhaW5lck5vZGU6OmRldGFjaCgpOwotICAgIGlmIChTaGFkb3dSb290
KiBzaGFkb3cgPSBzaGFkb3dSb290KCkpCi0gICAgICAgIHNoYWRvdy0+ZGV0YWNoKCk7CisgICAg
aWYgKFNoYWRvd1Jvb3RMaXN0KiBzaGFkb3dMaXN0ID0gc2hhZG93Um9vdExpc3QoKSkKKyAgICAg
ICAgc2hhZG93TGlzdC0+ZGV0YWNoKCk7CiAKICAgICBSZW5kZXJXaWRnZXQ6OnJlc3VtZVdpZGdl
dEhpZXJhcmNoeVVwZGF0ZXMoKTsKIH0KQEAgLTExNDEsNyArMTE0MSw4IEBAIHZvaWQgRWxlbWVu
dDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogICAgICAgICBmb3JjZUNoZWNrT2ZB
bnlFbGVtZW50U2libGluZyA9IGZvcmNlQ2hlY2tPZkFueUVsZW1lbnRTaWJsaW5nIHx8IChjaGls
ZFJ1bGVzQ2hhbmdlZCAmJiBoYXNJbmRpcmVjdEFkamFjZW50UnVsZXMpOwogICAgIH0KICAgICAv
LyBGSVhNRTogVGhpcyBkb2VzIG5vdCBjYXJlIGFib3V0IHNpYmxpbmcgY29tYmluYXRvcnMuIFdp
bGwgYmUgbmVjZXNzYXJ5IGluIFhCTDIgd29ybGQuCi0gICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRv
dyA9IHNoYWRvd1Jvb3QoKSkgeworICAgIGlmIChoYXNTaGFkb3dSb290KCkpIHsKKyAgICAgICAg
U2hhZG93Um9vdCogc2hhZG93ID0gc2hhZG93Um9vdExpc3QoKS0+eW91bmdlc3RTaGFkb3dSb290
KCk7CiAgICAgICAgIGlmIChjaGFuZ2UgPj0gSW5oZXJpdCB8fCBzaGFkb3ctPmNoaWxkTmVlZHNT
dHlsZVJlY2FsYygpIHx8IHNoYWRvdy0+bmVlZHNTdHlsZVJlY2FsYygpKSB7CiAgICAgICAgICAg
ICBwYXJlbnRQdXNoZXIucHVzaCgpOwogICAgICAgICAgICAgc2hhZG93LT5yZWNhbGNTaGFkb3dU
cmVlU3R5bGUoY2hhbmdlKTsKQEAgLTExNzAsMTMgKzExNzEsNiBAQCBTaGFkb3dSb290TGlzdCog
RWxlbWVudDo6c2hhZG93Um9vdExpc3QoKSBjb25zdAogICAgIHJldHVybiAmcmFyZURhdGEoKS0+
bV9zaGFkb3dSb290TGlzdDsKIH0KIAotU2hhZG93Um9vdCogRWxlbWVudDo6c2hhZG93Um9vdCgp
IGNvbnN0Ci17Ci0gICAgaWYgKFNoYWRvd1Jvb3RMaXN0KiBsaXN0ID0gc2hhZG93Um9vdExpc3Qo
KSkKLSAgICAgICAgcmV0dXJuIGxpc3QtPnlvdW5nZXN0U2hhZG93Um9vdCgpOwotICAgIHJldHVy
biAwOwotfQotCiBzdGF0aWMgYm9vbCB2YWxpZGF0ZVNoYWRvd1Jvb3QoRG9jdW1lbnQqIGRvY3Vt
ZW50LCBTaGFkb3dSb290KiBzaGFkb3dSb290LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBp
ZiAoIXNoYWRvd1Jvb3QpCkBAIC0xMjE5LDggKzEyMTMsOCBAQCB2b2lkIEVsZW1lbnQ6OnNldFNo
YWRvd1Jvb3QoUGFzc1JlZlB0cjxTaGFkb3dSb290PiBzaGFkb3dSb290LCBFeGNlcHRpb25Db2Rl
JiBlYwogCiBTaGFkb3dSb290KiBFbGVtZW50OjplbnN1cmVTaGFkb3dSb290KCkKIHsKLSAgICBp
ZiAoU2hhZG93Um9vdCogZXhpc3RpbmdSb290ID0gc2hhZG93Um9vdCgpKQotICAgICAgICByZXR1
cm4gZXhpc3RpbmdSb290OworICAgIGlmIChoYXNTaGFkb3dSb290KCkpCisgICAgICAgIHJldHVy
biBzaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCk7CiAKICAgICByZXR1cm4gU2hh
ZG93Um9vdDo6Y3JlYXRlKHRoaXMsIFNoYWRvd1Jvb3Q6OkNyZWF0aW5nVXNlckFnZW50U2hhZG93
Um9vdCkuZ2V0KCk7CiB9CkBAIC0xMzgyLDggKzEzNzYsOCBAQCB2b2lkIEVsZW1lbnQ6OmNoaWxk
cmVuQ2hhbmdlZChib29sIGNoYW5nZWRCeVBhcnNlciwgTm9kZSogYmVmb3JlQ2hhbmdlLCBOb2Rl
KiBhZgogICAgICAgICBjaGVja0ZvclNpYmxpbmdTdHlsZUNoYW5nZXModGhpcywgcmVuZGVyU3R5
bGUoKSwgZmFsc2UsIGJlZm9yZUNoYW5nZSwgYWZ0ZXJDaGFuZ2UsIGNoaWxkQ291bnREZWx0YSk7
CiAKICAgICBpZiAoaGFzUmFyZURhdGEoKSkgewotICAgICAgICBpZiAoU2hhZG93Um9vdCogcm9v
dCA9IHNoYWRvd1Jvb3QoKSkKLSAgICAgICAgICAgIHJvb3QtPmhvc3RDaGlsZHJlbkNoYW5nZWQo
KTsKKyAgICAgICAgaWYgKFNoYWRvd1Jvb3RMaXN0KiBsaXN0ID0gc2hhZG93Um9vdExpc3QoKSkK
KyAgICAgICAgICAgIGxpc3QtPmhvc3RDaGlsZHJlbkNoYW5nZWQoKTsKICAgICB9CiB9CiAKQEAg
LTE1ODAsNyArMTU3NCw3IEBAIHZvaWQgRWxlbWVudDo6Zm9jdXMoYm9vbCByZXN0b3JlUHJldmlv
dXNTZWxlY3Rpb24pCiAgICAgICAgIC8vIElmIGEgZm9jdXMgZXZlbnQgaGFuZGxlciBjaGFuZ2Vz
IHRoZSBmb2N1cyB0byBhIGRpZmZlcmVudCBub2RlIGl0CiAgICAgICAgIC8vIGRvZXMgbm90IG1h
a2Ugc2Vuc2UgdG8gY29udGludWUgYW5kIHVwZGF0ZSBhcHBlYXJlbmNlLgogICAgICAgICBwcm90
ZWN0ID0gdGhpczsKLSAgICAgICAgaWYgKHNoYWRvd1Jvb3QoKSAmJiBwYWdlLT5mb2N1c0NvbnRy
b2xsZXIoKS0+dHJhbnNmZXJGb2N1c1RvRWxlbWVudEluU2hhZG93Um9vdCh0aGlzLCByZXN0b3Jl
UHJldmlvdXNTZWxlY3Rpb24pKQorICAgICAgICBpZiAoaGFzU2hhZG93Um9vdCgpICYmIHBhZ2Ut
PmZvY3VzQ29udHJvbGxlcigpLT50cmFuc2ZlckZvY3VzVG9FbGVtZW50SW5TaGFkb3dSb290KHRo
aXMsIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbikpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIGlmICghcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPnNldEZvY3VzZWROb2RlKHRoaXMsIGRv
Yy0+ZnJhbWUoKSkpCiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCBl
OWU0ZDhiODkzOGE0MzVlMzkwZjViYzFhNGViODM2MDRiZWY0ZWNlLi5kZDI3MDI5NTI1NzcyMjhh
Y2NmODRjOGU3MWJmNTNlNmIxNjg5ZmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTI1OCw3ICsy
NTgsNiBAQCBwdWJsaWM6CiAKICAgICAvLyBGSVhNRTogVGhlc2UgQVBJIHdpbGwgYmUgbW92ZWQg
dG8gU2hhZG93Um9vdExpc3QuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc4MzEzCi0gICAgU2hhZG93Um9vdCogc2hhZG93Um9vdCgpIGNvbnN0OwogICAg
IHZvaWQgc2V0U2hhZG93Um9vdChQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+LCBFeGNlcHRpb25Db2Rl
Jik7CiAgICAgU2hhZG93Um9vdCogZW5zdXJlU2hhZG93Um9vdCgpOwogICAgIHZvaWQgcmVtb3Zl
U2hhZG93Um9vdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0
Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCA3
NTczODMyYmEzMzUwZDBmY2IzM2YxMzJkNzk5YmU2MmM3YjFhYjE3Li4zZWU1Mjg1YmNhMTJlNDRk
NDUxYTJmMmNhZDE5YmZiZTc0NzEwZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRj
aGVyLmNwcApAQCAtMTI3LDcgKzEyNyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NoYWRvd1Jv
b3RPclNWR1NoYWRvd1Jvb3QoY29uc3QgTm9kZSogbm9kZSkKIAogc3RhdGljIGlubGluZSBib29s
IGlzU2hhZG93SG9zdChOb2RlKiBub2RlKQogewotICAgIHJldHVybiBub2RlLT5pc0VsZW1lbnRO
b2RlKCkgJiYgdG9FbGVtZW50KG5vZGUpLT5zaGFkb3dSb290KCk7CisgICAgcmV0dXJuIG5vZGUt
PmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jvb3QoKTsKIH0K
IAogUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gRXZlbnREaXNwYXRjaGVyOjphZGp1c3RUb1NoYWRv
d0JvdW5kYXJpZXMoUGFzc1JlZlB0cjxOb2RlPiByZWxhdGVkVGFyZ2V0LCBjb25zdCBWZWN0b3I8
Tm9kZSo+IHJlbGF0ZWRUYXJnZXRBbmNlc3RvcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggMDc0Y2Zh
NDY4ZjA0ZTUxM2Y5ZWEwYTg1YmNjOWY0NDI3OTZkNDU5NS4uM2Q5YWMzZTViMGExYTIxMjc3NGIy
ZjJlOWY1MGZiOGNhNmJiYzAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtODYsNiArODYsNyBAQAog
I2luY2x1ZGUgIlNjb3BlZEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJTZWxlY3RvclF1ZXJ5Lmgi
CiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAj
aW5jbHVkZSAiU3RhdGljTm9kZUxpc3QuaCIKICNpbmNsdWRlICJTdG9yYWdlRXZlbnQuaCIKICNp
bmNsdWRlICJUYWdOb2RlTGlzdC5oIgpAQCAtODA4LDcgKzgwOSw3IEBAIGJvb2wgTm9kZTo6aGFz
Tm9uRW1wdHlCb3VuZGluZ0JveCgpIGNvbnN0CiAKIGlubGluZSBzdGF0aWMgU2hhZG93Um9vdCog
c2hhZG93Um9vdChOb2RlKiBub2RlKQogewotICAgIHJldHVybiBub2RlLT5pc0VsZW1lbnROb2Rl
KCkgPyB0b0VsZW1lbnQobm9kZSktPnNoYWRvd1Jvb3QoKSA6IDA7CisgICAgcmV0dXJuIG5vZGUt
PmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jvb3QoKSA/IHRv
RWxlbWVudChub2RlKS0+c2hhZG93Um9vdExpc3QoKS0+eW91bmdlc3RTaGFkb3dSb290KCkgOiAw
OwogfQogCiBpbmxpbmUgdm9pZCBOb2RlOjpzZXRTdHlsZUNoYW5nZShTdHlsZUNoYW5nZVR5cGUg
Y2hhbmdlVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5n
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3Bw
CmluZGV4IDZmYTk4OGE3ZGQ4MjljYzFlYThmY2YxZmZiOGEyM2ZlMmFhOGM3MmYuLjQxM2U4Mzc3
Nzg1Y2VkZmNjNzdjMzViNDJjYTcwMGVkMDU0MzUxNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIlJl
bmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTaGFkb3dS
b290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKIAogI2lmIEVOQUJMRShTVkcpCiAj
aW5jbHVkZSAiU1ZHTmFtZXMuaCIKQEAgLTY1LDcgKzY2LDggQEAgTm9kZVJlbmRlcmluZ0NvbnRl
eHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0KE5vZGUqIG5vZGUpCiAgICAgbV9sb2NhdGlvbiA9IExv
Y2F0aW9uTGlnaHRDaGlsZDsKIAogICAgIGlmIChwYXJlbnQtPmlzRWxlbWVudE5vZGUoKSkgewot
ICAgICAgICBtX3Zpc3VhbFBhcmVudFNoYWRvd1Jvb3QgPSB0b0VsZW1lbnQocGFyZW50KS0+c2hh
ZG93Um9vdCgpOworICAgICAgICBpZiAodG9FbGVtZW50KHBhcmVudCktPmhhc1NoYWRvd1Jvb3Qo
KSkKKyAgICAgICAgICAgIG1fdmlzdWFsUGFyZW50U2hhZG93Um9vdCA9IHRvRWxlbWVudChwYXJl
bnQpLT5zaGFkb3dSb290TGlzdCgpLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsKIAogICAgICAgICBp
ZiAobV92aXN1YWxQYXJlbnRTaGFkb3dSb290KSB7CiAgICAgICAgICAgICBpZiAoKG1faW5zZXJ0
aW9uUG9pbnQgPSBtX3Zpc3VhbFBhcmVudFNoYWRvd1Jvb3QtPmluc2VydGlvblBvaW50Rm9yKG1f
bm9kZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXggNWE1YzlkZjAzZDlhOGY0ZGMw
MTc1OWFjNzAzMjM4ZjdkYTQ1ZGQyNS4uNTM5OWE0ZmRmYTY2NzBmNzI2ODFhNTNjZjRiODYyMDRh
ZTkxMjc2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtOTcsNyArOTcsNyBAQCBQ
YXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IFNoYWRvd1Jvb3Q6OmNyZWF0ZShFbGVtZW50KiBlbGVtZW50
LCBFeGNlcHRpb25Db2RlJiBlYykKIAogUGFzc1JlZlB0cjxTaGFkb3dSb290PiBTaGFkb3dSb290
OjpjcmVhdGUoRWxlbWVudCogZWxlbWVudCwgU2hhZG93Um9vdENyZWF0aW9uUHVycG9zZSBwdXJw
b3NlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAoIWVsZW1lbnQgfHwgZWxlbWVudC0+
c2hhZG93Um9vdCgpKSB7CisgICAgaWYgKCFlbGVtZW50IHx8IGVsZW1lbnQtPmhhc1NoYWRvd1Jv
b3QoKSkgewogICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgfQpAQCAtMTA5LDcgKzEwOSw3IEBAIFBhc3NSZWZQdHI8U2hhZG93Um9vdD4g
U2hhZG93Um9vdDo6Y3JlYXRlKEVsZW1lbnQqIGVsZW1lbnQsIFNoYWRvd1Jvb3RDcmVhdGlvblB1
CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIEFTU0VSVChwdXJwb3NlICE9IENyZWF0
aW5nVXNlckFnZW50U2hhZG93Um9vdCB8fCAhZWxlbWVudC0+c2hhZG93Um9vdCgpKTsKKyAgICBB
U1NFUlQocHVycG9zZSAhPSBDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QgfHwgIWVsZW1lbnQt
Pmhhc1NoYWRvd1Jvb3QoKSk7CiAgICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IHNoYWRvd1Jvb3QgPSBj
cmVhdGUoZWxlbWVudC0+ZG9jdW1lbnQoKSk7CiAKICAgICBlYyA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NoYWRvd1Jvb3RMaXN0LmNwcAppbmRleCA4OGUwZmI1ZjEzNzA5YTA4N2EyYzQ1ZjI1MDY3NjQ0
NmE0NDMzMWYwLi5iNDExZWI3OGFhOTcxYzJlNjVhYjU2ZGUyYzg3NzgzNDg4ZmIwNTczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5jcHAKQEAgLTU5LDQgKzU5LDU4IEBAIFNoYWRv
d1Jvb3QqIFNoYWRvd1Jvb3RMaXN0Ojpwb3BTaGFkb3dSb290KCkKICAgICByZXR1cm4gbV9zaGFk
b3dSb290cy5yZW1vdmVIZWFkKCk7CiB9CiAKK3ZvaWQgU2hhZG93Um9vdExpc3Q6Omluc2VydGVk
SW50b0RvY3VtZW50KCkKK3sKKyAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB5b3VuZ2VzdFNo
YWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQorICAgICAg
ICByb290LT5pbnNlcnRlZEludG9Eb2N1bWVudCgpOworfQorCit2b2lkIFNoYWRvd1Jvb3RMaXN0
OjpyZW1vdmVkRnJvbURvY3VtZW50KCkKK3sKKyAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB5
b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgp
KQorICAgICAgICByb290LT5yZW1vdmVkRnJvbURvY3VtZW50KCk7Cit9CisKK3ZvaWQgU2hhZG93
Um9vdExpc3Q6Omluc2VydGVkSW50b1RyZWUoYm9vbCBkZWVwKQoreworICAgIGZvciAoU2hhZG93
Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xk
ZXJTaGFkb3dSb290KCkpCisgICAgICAgIHJvb3QtPmluc2VydGVkSW50b1RyZWUoZGVlcCk7Cit9
CisKK3ZvaWQgU2hhZG93Um9vdExpc3Q6OnJlbW92ZWRGcm9tVHJlZShib29sIGRlZXApCit7Cisg
ICAgZm9yIChTaGFkb3dSb290KiByb290ID0geW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJv
b3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKKyAgICAgICAgcm9vdC0+cmVtb3ZlZEZyb21U
cmVlKGRlZXApOworfQorCit2b2lkIFNoYWRvd1Jvb3RMaXN0Ojpob3N0Q2hpbGRyZW5DaGFuZ2Vk
KCkKK3sKKyAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB5b3VuZ2VzdFNoYWRvd1Jvb3QoKTsg
cm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQorICAgICAgICByb290LT5ob3N0
Q2hpbGRyZW5DaGFuZ2VkKCk7Cit9CisKK3ZvaWQgU2hhZG93Um9vdExpc3Q6OmF0dGFjaCgpCit7
CisgICAgLy8gRklYTUU6IEN1cnJlbnRseSB3ZSBvbmx5IHN1cHBvcnQgdGhlIGNhc2UgdGhhdCB0
aGUgc2hhZG93IHJvb3QgbGlzdCBoYXMgYXQgbW9zdCBvbmUgc2hhZG93IHJvb3QuCisgICAgLy8g
U2VlIGFsc28gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTAzIGFu
ZCBpdHMgZGVwZW5kZW50IGJ1Z3MuCisgICAgQVNTRVJUKHNpemUoKSA8PSAxKTsKKworICAgIGZv
ciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0g
cm9vdC0+b2xkZXJTaGFkb3dSb290KCkpIHsKKyAgICAgICAgaWYgKHJvb3QtPmF0dGFjaGVkKCkp
CisgICAgICAgICAgICByb290LT5hdHRhY2goKTsKKyAgICB9Cit9CisKK3ZvaWQgU2hhZG93Um9v
dExpc3Q6OmRldGFjaCgpCit7CisgICAgLy8gRklYTUU6IEN1cnJlbnRseSB3ZSBvbmx5IHN1cHBv
cnQgdGhlIGNhc2UgdGhhdCB0aGUgc2hhZG93IHJvb3QgbGlzdCBoYXMgYXQgbW9zdCBvbmUgc2hh
ZG93IHJvb3QuCisgICAgLy8gU2VlIGFsc28gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc3NTAzIGFuZCBpdHMgZGVwZW5kZW50IGJ1Z3MuCisgICAgQVNTRVJUKHNpemUo
KSA8PSAxKTsKKworICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hhZG93Um9v
dCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpIHsKKyAgICAgICAgaWYg
KHJvb3QtPmF0dGFjaGVkKCkpCisgICAgICAgICAgICByb290LT5kZXRhY2goKTsKKyAgICB9Cit9
CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmgKaW5kZXggMDU1YmNhYTUxYzhiOTE5
OGZjNDVkZDczOTM3YzI4ODU2NTllYTAzMy4uYzdmYzk4Y2FhOGEyMGI0NGQ1NGM4MzdhYjc4NGU4
Y2VmYzQ1ZDAwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmgKQEAgLTQ4LDYgKzQ4
LDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIHB1c2hTaGFkb3dSb290KFNoYWRvd1Jvb3QqKTsKICAg
ICBTaGFkb3dSb290KiBwb3BTaGFkb3dSb290KCk7CiAKKyAgICB2b2lkIGluc2VydGVkSW50b0Rv
Y3VtZW50KCk7CisgICAgdm9pZCByZW1vdmVkRnJvbURvY3VtZW50KCk7CisgICAgdm9pZCBpbnNl
cnRlZEludG9UcmVlKGJvb2wgZGVlcCk7CisgICAgdm9pZCByZW1vdmVkRnJvbVRyZWUoYm9vbCBk
ZWVwKTsKKworICAgIHZvaWQgaG9zdENoaWxkcmVuQ2hhbmdlZCgpOworCisgICAgdm9pZCBhdHRh
Y2goKTsKKyAgICB2b2lkIGRldGFjaCgpOworCiBwcml2YXRlOgogICAgIERvdWJseUxpbmtlZExp
c3Q8U2hhZG93Um9vdD4gbV9zaGFkb3dSb290czsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShT
aGFkb3dSb290TGlzdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3Bl
QWRvcHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRvcHRlci5jcHAKaW5k
ZXggMDAzMTdlMzFhMDRjMjZkZDUxZDY3YWE3NDBkY2YyZjA4ZTE3MmQ2YS4uZTc2MjA5Y2M4MzFm
MGJkZmJhYjk3NTU1NDg2Y2M2NTY2MjhkODRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2Nv
cGVBZG9wdGVyLmNwcApAQCAtMjgsMTIgKzI4LDEzIEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
ICNpbmNsdWRlICJOb2RlUmFyZURhdGEuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5j
bHVkZSAiU2hhZG93Um9vdExpc3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMg
aW5saW5lIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3RGb3IoTm9kZSogbm9kZSkKIHsKLSAgICByZXR1
cm4gbm9kZS0+aXNFbGVtZW50Tm9kZSgpID8gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3dSb290KCkg
OiAwOworICAgIHJldHVybiBub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KG5vZGUp
LT5oYXNTaGFkb3dSb290KCkgPyB0b0VsZW1lbnQobm9kZSktPnNoYWRvd1Jvb3RMaXN0KCktPnlv
dW5nZXN0U2hhZG93Um9vdCgpIDogMDsKIH0KIAogdm9pZCBUcmVlU2NvcGVBZG9wdGVyOjptb3Zl
VHJlZVRvTmV3U2NvcGUoTm9kZSogcm9vdCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1
dFR5cGUuY3BwCmluZGV4IGRmYmJkZjdjZDcwNDhiY2JjM2FmNThlNzAyOTE0Njc0YzU0YmY5ZDYu
LjU3NTlmNjc0MTVjZDM4MmU1MDBmYmU2NTU4ZDBjMzQzNTdkOTc3MGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIlJlbmRl
ckZpbGVVcGxvYWRDb250cm9sLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMjY1LDE1ICsyNjYsMTUgQEAg
Ym9vbCBGaWxlSW5wdXRUeXBlOjppc0ZpbGVVcGxvYWQoKSBjb25zdAogCiB2b2lkIEZpbGVJbnB1
dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVChlbGVtZW50KCktPnNo
YWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKGVsZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKTsKICAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBlbGVtZW50KCktPnNoYWRvd1Jvb3QoKS0+YXBw
ZW5kQ2hpbGQoZWxlbWVudCgpLT5tdWx0aXBsZSgpID8gVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3Jl
YXRlRm9yTXVsdGlwbGUoZWxlbWVudCgpLT5kb2N1bWVudCgpKTogVXBsb2FkQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSksIGVjKTsKKyAgICBlbGVtZW50KCktPnNo
YWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoZWxlbWVudCgp
LT5tdWx0aXBsZSgpID8gVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlRm9yTXVsdGlwbGUoZWxl
bWVudCgpLT5kb2N1bWVudCgpKTogVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQo
KS0+ZG9jdW1lbnQoKSksIGVjKTsKIH0KIAogdm9pZCBGaWxlSW5wdXRUeXBlOjptdWx0aXBsZUF0
dHJpYnV0ZUNoYW5nZWQoKQogewotICAgIEFTU0VSVChlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7
Ci0gICAgVXBsb2FkQnV0dG9uRWxlbWVudCogYnV0dG9uID0gc3RhdGljX2Nhc3Q8VXBsb2FkQnV0
dG9uRWxlbWVudCo+KGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCkpOworICAg
IEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7CisgICAgVXBsb2FkQnV0dG9uRWxl
bWVudCogYnV0dG9uID0gc3RhdGljX2Nhc3Q8VXBsb2FkQnV0dG9uRWxlbWVudCo+KGVsZW1lbnQo
KS0+c2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCkpOwog
ICAgIGlmIChidXR0b24pCiAgICAgICAgIGJ1dHRvbi0+c2V0VmFsdWUoZWxlbWVudCgpLT5tdWx0
aXBsZSgpID8gZmlsZUJ1dHRvbkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpIDogZmlsZUJ1dHRv
bkNob29zZUZpbGVMYWJlbCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTERldGFpbHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNF
bGVtZW50LmNwcAppbmRleCAwMTVjZjYxY2ViODMzNzY5OThiNjhlYjZhYjA5ZWY1NjI2NDRhYjQz
Li5hYTI2NGMyMTJhNmNjNjEzODAyOTYzZDBlZTZmMWE5ZDhhOWRmN2ZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5j
bHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlJlbmRlckRldGFpbHMuaCIKICNpbmNsdWRl
ICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJU
ZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEwOCw3ICsxMDksNyBAQCBSZW5kZXJP
YmplY3QqIEhUTUxEZXRhaWxzRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFy
ZW5hLCBSZW5kZXJTdHlsZQogCiB2b2lkIEhUTUxEZXRhaWxzRWxlbWVudDo6Y3JlYXRlU2hhZG93
U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJUKCFzaGFkb3dSb290KCkpOworICAgIEFTU0VSVCghaGFz
U2hhZG93Um9vdCgpKTsKIAogICAgIFJlZlB0cjxTaGFkb3dSb290PiByb290ID0gU2hhZG93Um9v
dDo6Y3JlYXRlKHRoaXMsIFNoYWRvd1Jvb3Q6OkNyZWF0aW5nVXNlckFnZW50U2hhZG93Um9vdCk7
CiAgICAgcm9vdC0+YXBwZW5kQ2hpbGQoRGV0YWlsc1N1bW1hcnlFbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04sIHRydWUpOwpAQCAtMTIyLDcgKzEyMyw3IEBA
IEVsZW1lbnQqIEhUTUxEZXRhaWxzRWxlbWVudDo6ZmluZE1haW5TdW1tYXJ5KCkgY29uc3QKICAg
ICAgICAgICAgIHJldHVybiB0b0VsZW1lbnQoY2hpbGQpOwogICAgIH0KIAotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxEZXRhaWxzU3VtbWFyeUVsZW1lbnQqPihzaGFkb3dSb290KCktPmZpcnN0Q2hp
bGQoKSktPmZhbGxiYWNrU3VtbWFyeSgpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxEZXRhaWxz
U3VtbWFyeUVsZW1lbnQqPihzaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCktPmZp
cnN0Q2hpbGQoKSktPmZhbGxiYWNrU3VtbWFyeSgpOwogfQogCiB2b2lkIEhUTUxEZXRhaWxzRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggZDI5NzRmMDEyOTNiZTVmM2IzZTZmMDY3NGE5ODc2
NWE0OGFiZTI2Yy4uOTFlZWQ1NWRhZmEzNjI4NTU0ODM2NmVjMzVhZTUyOTE2N2UyMTYyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0xMDksNyArMTA5LDcg
QEAgUGFzc1JlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBIVE1MSW5wdXRFbGVtZW50OjpjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmEKIAogdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpjcmVh
dGVTaGFkb3dTdWJ0cmVlKCkKIHsKLSAgICBBU1NFUlQoIXNoYWRvd1Jvb3QoKSk7CisgICAgQVNT
RVJUKCFoYXNTaGFkb3dSb290KCkpOwogICAgIFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFk
b3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QsIEFTU0VSVF9OT19FWENFUFRJT04p
OwogCiAgICAgbV9pbnB1dFR5cGUtPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKaW5kZXggODUyNTI4MTlhYTU4ZTcwYzJkMDM3
MTUwNzI1ZDE3YzQ4OTg5MDEzNS4uZTEwMDc5ZjY0NjRlNzhmNWVlMDc0ZDE1ZjhhYjEyZjZkNzQz
MmMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKQEAgLTMz
LDYgKzMzLDcgQEAKICNpbmNsdWRlICJIVE1MT3B0aW9uRWxlbWVudC5oIgogI2luY2x1ZGUgIlNT
TEtleUdlbmVyYXRvci5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFk
b3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0
cmFzLmg+CiAKQEAgLTg1LDcgKzg2LDcgQEAgaW5saW5lIEhUTUxLZXlnZW5FbGVtZW50OjpIVE1M
S2V5Z2VuRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWUKICAgICAg
ICAgb3B0aW9uLT5hcHBlbmRDaGlsZChUZXh0OjpjcmVhdGUoZG9jdW1lbnQsIGtleXNbaV0pLCBl
Yyk7CiAgICAgfQogCi0gICAgQVNTRVJUKCFzaGFkb3dSb290KCkpOworICAgIEFTU0VSVCghaGFz
U2hhZG93Um9vdCgpKTsKICAgICBSZWZQdHI8U2hhZG93Um9vdD4gcm9vdCA9IFNoYWRvd1Jvb3Q6
OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QpOwog
ICAgIHJvb3QtPmFwcGVuZENoaWxkKHNlbGVjdCwgZWMpOwogfQpAQCAtMTMwLDggKzEzMSw4IEBA
IHZvaWQgSFRNTEtleWdlbkVsZW1lbnQ6OnJlc2V0KCkKIAogSFRNTFNlbGVjdEVsZW1lbnQqIEhU
TUxLZXlnZW5FbGVtZW50OjpzaGFkb3dTZWxlY3QoKSBjb25zdAogewotICAgIFNoYWRvd1Jvb3Qq
IHNoYWRvdyA9IHNoYWRvd1Jvb3QoKTsKLSAgICBBU1NFUlQoc2hhZG93KTsKKyAgICBBU1NFUlQo
aGFzU2hhZG93Um9vdCgpKTsKKyAgICBTaGFkb3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290TGlz
dCgpLT5vbGRlc3RTaGFkb3dSb290KCk7CiAgICAgcmV0dXJuIHNoYWRvdyA/IHRvSFRNTFNlbGVj
dEVsZW1lbnQoc2hhZG93LT5maXJzdENoaWxkKCkpIDogMDsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggZTVmZmMwODU2MmVjNDI1OTA0NWUxOWFiYjA5
ZDQ4NWYyMjc3MjIwYi4uNjdhZDFkOWM1MWZjYjkwYWIzZjJhZDEwYTIyODhiZmJhOWRhZGNhZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC03MSw2ICs3MSw3
IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgog
I2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2lu
Y2x1ZGUgIlRpbWVSYW5nZXMuaCIKICNpbmNsdWRlICJVVUlELmgiCiAjaW5jbHVkZSA8bGltaXRz
PgpAQCAtMzUxOSwxNSArMzUyMCwxNSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnByaXZhdGVC
cm93c2luZ1N0YXRlRGlkQ2hhbmdlKCkKIAogTWVkaWFDb250cm9scyogSFRNTE1lZGlhRWxlbWVu
dDo6bWVkaWFDb250cm9scygpCiB7Ci0gICAgcmV0dXJuIHRvTWVkaWFDb250cm9scyhzaGFkb3dS
b290KCktPmZpcnN0Q2hpbGQoKSk7CisgICAgcmV0dXJuIHRvTWVkaWFDb250cm9scyhzaGFkb3dS
b290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSk7CiB9CiAKIGJvb2wg
SFRNTE1lZGlhRWxlbWVudDo6aGFzTWVkaWFDb250cm9scygpCiB7Ci0gICAgaWYgKCFzaGFkb3dS
b290KCkpCisgICAgaWYgKCFoYXNTaGFkb3dSb290KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIE5vZGUqIG5vZGUgPSBzaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsKKyAgICBOb2Rl
KiBub2RlID0gc2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxk
KCk7CiAgICAgcmV0dXJuIG5vZGUgJiYgbm9kZS0+aXNNZWRpYUNvbnRyb2xzKCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCmluZGV4IGExZmRhZjZjNzJkNGIw
NjUxMmU4NDIxZGU4MDBlNTIwYmNhYTdhNzkuLjdjODM5OTQ1YmJiNTcxMWZkZjQxODVlYzdlNzY3
MGU2MzYwMTY0M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcApA
QCAtMjM0LDcgKzIzNCw3IEBAIHZvaWQgSFRNTE1ldGVyRWxlbWVudDo6ZGlkRWxlbWVudFN0YXRl
Q2hhbmdlKCkKIAogdm9pZCBIVE1MTWV0ZXJFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkK
IHsKLSAgICBBU1NFUlQoIXNoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKCFoYXNTaGFkb3dSb290
KCkpOwogCiAgICAgUmVmUHRyPE1ldGVyQmFyRWxlbWVudD4gYmFyID0gTWV0ZXJCYXJFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgbV92YWx1ZSA9IE1ldGVyVmFsdWVFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
cm9ncmVzc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVt
ZW50LmNwcAppbmRleCAwYzIzNzI1ODFmNzlhZmY0ZGFjNTQ4YTBiYTdlNDRjNTZhYTliNWYwLi5l
ZDY5NTBjM2Y3OTIwNTM4NWIxOTQzOTk2MWIwNzZiMWZkMDUyM2RmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKQEAgLTE1Myw3ICsxNTMsNyBAQCB2b2lk
IEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmRpZEVsZW1lbnRTdGF0ZUNoYW5nZSgpCiAKIHZvaWQgSFRN
TFByb2dyZXNzRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJUKCFz
aGFkb3dSb290KCkpOworICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsKIAogICAgIFJlZlB0
cjxQcm9ncmVzc0JhckVsZW1lbnQ+IGJhciA9IFByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KCkpOwogICAgIG1fdmFsdWUgPSBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCmlu
ZGV4IDZiYzZlYWM2NjA1NzFmNTZlOTc1MGM3NmNkMTdiOWVkNjU1OTBiODYuLmUyOTU3YjIxZWNl
ZWZlNDY5M2JmOWRhYzRhNmM3YTAzYzBlYTBmMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTdW1tYXJ5RWxlbWVudC5jcHAKQEAgLTMxLDggKzMxLDggQEAKICNpbmNsdWRlICJNb3VzZUV2
ZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVy
U3VtbWFyeS5oIgotCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jv
b3RMaXN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzQsNyArNzQsNyBAQCBSZW5k
ZXJPYmplY3QqIEhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEq
IGFyZW5hLCBSZW5kZXJTdHlsZQogCiB2b2lkIEhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlU2hh
ZG93U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJUKCFzaGFkb3dSb290KCkpOworICAgIEFTU0VSVCgh
aGFzU2hhZG93Um9vdCgpKTsKICAgICBSZWZQdHI8U2hhZG93Um9vdD4gcm9vdCA9IFNoYWRvd1Jv
b3Q6OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3Qp
OwogICAgIHJvb3QtPmFwcGVuZENoaWxkKERldGFpbHNNYXJrZXJDb250cm9sOjpjcmVhdGUoZG9j
dW1lbnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04sIHRydWUpOwogICAgIHJvb3QtPmFwcGVuZENo
aWxkKFN1bW1hcnlDb250ZW50RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9f
RVhDRVBUSU9OLCB0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRl
eHRBcmVhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1l
bnQuY3BwCmluZGV4IDEzY2IzZWMzODZkYTllZTdkYjhjNjk4NDlkNDc0MzRhY2VjNjRlMWQuLjU5
Y2U4MGUyOWU4MTBhZDQwOGMxNTgyYjE3ZGU1MjBmYTY1YjFiOWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1
ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmgi
CiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAj
aW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlRleHRDb250cm9sSW5uZXJFbGVtZW50cy5oIgog
I2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgpAQCAtODQsNyArODUsNyBAQCBQYXNzUmVmUHRyPEhU
TUxUZXh0QXJlYUVsZW1lbnQ+IEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJgogCiB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRy
ZWUoKQogewotICAgIEFTU0VSVCghc2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoIWhhc1NoYWRv
d1Jvb3QoKSk7CiAgICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IHJvb3QgPSBTaGFkb3dSb290OjpjcmVh
dGUodGhpcywgU2hhZG93Um9vdDo6Q3JlYXRpbmdVc2VyQWdlbnRTaGFkb3dSb290KTsKICAgICBy
b290LT5hcHBlbmRDaGlsZChUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiB9CkBAIC0yOTMsNyArMjk0LDcgQEAgU3Ry
aW5nIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNhbml0aXplVXNlcklucHV0VmFsdWUoY29uc3QgU3Ry
aW5nJiBwcm9wb3NlZFZhbHVlLAogCiBIVE1MRWxlbWVudCogSFRNTFRleHRBcmVhRWxlbWVudDo6
aW5uZXJUZXh0RWxlbWVudCgpIGNvbnN0CiB7Ci0gICAgTm9kZSogbm9kZSA9IHNoYWRvd1Jvb3Qo
KS0+Zmlyc3RDaGlsZCgpOworICAgIE5vZGUqIG5vZGUgPSBzaGFkb3dSb290TGlzdCgpLT5vbGRl
c3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsKICAgICBBU1NFUlQoIW5vZGUgfHwgbm9kZS0+
aGFzVGFnTmFtZShkaXZUYWcpKTsKICAgICByZXR1cm4gdG9IVE1MRWxlbWVudChub2RlKTsKIH0K
QEAgLTQ3MCw3ICs0NzEsNyBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnVwZGF0ZVBsYWNl
aG9sZGVyVGV4dCgpCiAgICAgU3RyaW5nIHBsYWNlaG9sZGVyVGV4dCA9IHN0cmlwcGVkUGxhY2Vo
b2xkZXIoKTsKICAgICBpZiAocGxhY2Vob2xkZXJUZXh0LmlzRW1wdHkoKSkgewogICAgICAgICBp
ZiAobV9wbGFjZWhvbGRlcikgewotICAgICAgICAgICAgc2hhZG93Um9vdCgpLT5yZW1vdmVDaGls
ZChtX3BsYWNlaG9sZGVyLmdldCgpLCBlYyk7CisgICAgICAgICAgICBzaGFkb3dSb290TGlzdCgp
LT5vbGRlc3RTaGFkb3dSb290KCktPnJlbW92ZUNoaWxkKG1fcGxhY2Vob2xkZXIuZ2V0KCksIGVj
KTsKICAgICAgICAgICAgIEFTU0VSVCghZWMpOwogICAgICAgICAgICAgbV9wbGFjZWhvbGRlci5j
bGVhcigpOwogICAgICAgICB9CkBAIC00NzksNyArNDgwLDcgQEAgdm9pZCBIVE1MVGV4dEFyZWFF
bGVtZW50Ojp1cGRhdGVQbGFjZWhvbGRlclRleHQoKQogICAgIGlmICghbV9wbGFjZWhvbGRlcikg
ewogICAgICAgICBtX3BsYWNlaG9sZGVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCgpKTsKICAgICAgICAgbV9wbGFjZWhvbGRlci0+c2V0U2hhZG93UHNldWRvSWQoIi13ZWJraXQt
aW5wdXQtcGxhY2Vob2xkZXIiKTsKLSAgICAgICAgc2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUo
bV9wbGFjZWhvbGRlciwgc2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCktPm5leHRTaWJsaW5nKCks
IGVjKTsKKyAgICAgICAgc2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5pbnNl
cnRCZWZvcmUobV9wbGFjZWhvbGRlciwgc2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9v
dCgpLT5maXJzdENoaWxkKCktPm5leHRTaWJsaW5nKCksIGVjKTsKICAgICAgICAgQVNTRVJUKCFl
Yyk7CiAgICAgfQogICAgIG1fcGxhY2Vob2xkZXItPnNldElubmVyVGV4dChwbGFjZWhvbGRlclRl
eHQsIGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAppbmRleCA4MDBjMjFjZmY4OTI5YzA3
YjNlNjlkZGQyMDBlMDA4NDMwMjk1NTY3Li5iMTQzMjA3YWVkNjZiMWY3Mzg5M2IyZTI1YWQ3M2Rk
NmZjMTVjMmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC01Niw2ICs1Niw3IEBA
CiAjaW5jbHVkZSAiUmVzZXRJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJTZWFyY2hJbnB1dFR5cGUu
aCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIK
ICNpbmNsdWRlICJTdWJtaXRJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJUZWxlcGhvbmVJbnB1dFR5
cGUuaCIKICNpbmNsdWRlICJUZXh0SW5wdXRUeXBlLmgiCkBAIC0zNzgsNyArMzc5LDEwIEBAIHZv
aWQgSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIAogdm9pZCBJbnB1dFR5cGU6OmRl
c3Ryb3lTaGFkb3dTdWJ0cmVlKCkKIHsKLSAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IGVsZW1l
bnQoKS0+c2hhZG93Um9vdCgpKQorICAgIGlmICghZWxlbWVudCgpLT5oYXNTaGFkb3dSb290KCkp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmIChTaGFkb3dSb290KiByb290ID0gZWxlbWVudCgp
LT5zaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCkpCiAgICAgICAgIHJvb3QtPnJl
bW92ZUFsbENoaWxkcmVuKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UmFuZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5j
cHAKaW5kZXggMTQ3NDE4NTYyYjZiMmRmMGVkNzU5YzQwYjViNmU1ZWI0MWRlMzZjOS4uYTE3NGNl
N2FmMzFlOTczZTc0ZDRjMjk4NmUwNGRhZmRhMjU2ODg4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9S
YW5nZUlucHV0VHlwZS5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybU1v
dXNlRXZlbnQuaCIKICNpbmNsdWRlICJSZW5kZXJTbGlkZXIuaCIKICNpbmNsdWRlICJTaGFkb3dS
b290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJTbGlkZXJUaHVt
YkVsZW1lbnQuaCIKICNpbmNsdWRlICJTdGVwUmFuZ2UuaCIKICNpbmNsdWRlIDxsaW1pdHM+CkBA
IC0xNTcsNyArMTU4LDEwIEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmhhbmRsZU1vdXNlRG93bkV2
ZW50KE1vdXNlRXZlbnQqIGV2ZW50KQogICAgICAgICByZXR1cm47CiAKICAgICBOb2RlKiB0YXJn
ZXROb2RlID0gZXZlbnQtPnRhcmdldCgpLT50b05vZGUoKTsKLSAgICBpZiAoZXZlbnQtPmJ1dHRv
bigpICE9IExlZnRCdXR0b24gfHwgIXRhcmdldE5vZGUgfHwgKHRhcmdldE5vZGUgIT0gZWxlbWVu
dCgpICYmICF0YXJnZXROb2RlLT5pc0Rlc2NlbmRhbnRPZihlbGVtZW50KCktPnNoYWRvd1Jvb3Qo
KSkpKQorICAgIGlmIChldmVudC0+YnV0dG9uKCkgIT0gTGVmdEJ1dHRvbiB8fCAhdGFyZ2V0Tm9k
ZSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3Qo
KSk7CisgICAgaWYgKHRhcmdldE5vZGUgIT0gZWxlbWVudCgpICYmICF0YXJnZXROb2RlLT5pc0Rl
c2NlbmRhbnRPZihlbGVtZW50KCktPnNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3Qo
KSkpCiAgICAgICAgIHJldHVybjsKICAgICBTbGlkZXJUaHVtYkVsZW1lbnQqIHRodW1iID0gc2xp
ZGVyVGh1bWJFbGVtZW50T2YoZWxlbWVudCgpKTsKICAgICBpZiAodGFyZ2V0Tm9kZSA9PSB0aHVt
YikKQEAgLTIzMyw3ICsyMzcsNyBAQCB2b2lkIFJhbmdlSW5wdXRUeXBlOjpoYW5kbGVLZXlkb3du
RXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAKIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmNyZWF0
ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVChlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7
CisgICAgQVNTRVJUKGVsZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKTsKIAogICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IGVsZW1lbnQoKS0+ZG9jdW1lbnQoKTsKICAgICBSZWZQdHI8SFRNTERpdkVs
ZW1lbnQ+IHRyYWNrID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CkBAIC0yNDMs
NyArMjQ3LDcgQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAg
ICAgUmVmUHRyPEhUTUxFbGVtZW50PiBjb250YWluZXIgPSBTbGlkZXJDb250YWluZXJFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodHJhY2sucmVs
ZWFzZSgpLCBlYyk7CiAgICAgY29udGFpbmVyLT5hcHBlbmRDaGlsZChUcmFja0xpbWl0ZXJFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpLCBlYyk7Ci0gICAgZWxlbWVudCgpLT5zaGFkb3dSb290KCkt
PmFwcGVuZENoaWxkKGNvbnRhaW5lci5yZWxlYXNlKCksIGVjKTsKKyAgICBlbGVtZW50KCktPnNo
YWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoY29udGFpbmVy
LnJlbGVhc2UoKSwgZWMpOwogfQogCiBSZW5kZXJPYmplY3QqIFJhbmdlSW5wdXRUeXBlOjpjcmVh
dGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRleCA1NmU1NWQzODhlMzc3
OGY2ZDUzOTYyMWIyMThiMmJmOTRmYzM3NTk0Li5hOGMwOTQ2ZTVjY2EyZWVmOWVhNTAwMGQyYjZk
MmU4ZjY5ZDlhNDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElu
cHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUu
Y3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJTaGFkb3dSb290Lmgi
CisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJUZXh0Q29udHJvbElubmVy
RWxlbWVudHMuaCIKICNpbmNsdWRlICJUZXh0RXZlbnQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0
b3IuaCIKQEAgLTE4OSw3ICsxOTAsNyBAQCBib29sIFRleHRGaWVsZElucHV0VHlwZTo6bmVlZHND
b250YWluZXIoKSBjb25zdAogCiB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93
U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKTsKKyAgICBB
U1NFUlQoZWxlbWVudCgpLT5oYXNTaGFkb3dSb290KCkpOwogCiAgICAgQVNTRVJUKCFtX2lubmVy
VGV4dCk7CiAgICAgQVNTRVJUKCFtX2lubmVyQmxvY2spOwpAQCAtMjAzLDExICsyMDQsMTEgQEAg
dm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIEV4Y2Vw
dGlvbkNvZGUgZWMgPSAwOwogICAgIG1faW5uZXJUZXh0ID0gVGV4dENvbnRyb2xJbm5lclRleHRF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGlmICghY3JlYXRlc0NvbnRhaW5lcikgewot
ICAgICAgICBlbGVtZW50KCktPnNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQobV9pbm5lclRleHQs
IGVjKTsKKyAgICAgICAgZWxlbWVudCgpLT5zaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dS
b290KCktPmFwcGVuZENoaWxkKG1faW5uZXJUZXh0LCBlYyk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBTaGFkb3dSb290KiBzaGFkb3dSb290ID0gZWxlbWVudCgpLT5zaGFkb3dSb290
KCk7CisgICAgU2hhZG93Um9vdCogc2hhZG93Um9vdCA9IGVsZW1lbnQoKS0+c2hhZG93Um9vdExp
c3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpOwogICAgIG1fY29udGFpbmVyID0gSFRNTERpdkVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgbV9jb250YWluZXItPnNldFNoYWRvd1BzZXVkb0lk
KCItd2Via2l0LXRleHRmaWVsZC1kZWNvcmF0aW9uLWNvbnRhaW5lciIpOwogICAgIHNoYWRvd1Jv
b3QtPmFwcGVuZENoaWxkKG1fY29udGFpbmVyLCBlYyk7CkBAIC0zNjksNyArMzcwLDcgQEAgdm9p
ZCBUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpCiAgICAgaWYgKCFt
X3BsYWNlaG9sZGVyKSB7CiAgICAgICAgIG1fcGxhY2Vob2xkZXIgPSBIVE1MRGl2RWxlbWVudDo6
Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSk7CiAgICAgICAgIG1fcGxhY2Vob2xkZXItPnNl
dFNoYWRvd1BzZXVkb0lkKCItd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIik7Ci0gICAgICAgIGVs
ZW1lbnQoKS0+c2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUobV9wbGFjZWhvbGRlciwgbV9jb250
YWluZXIgPyBtX2NvbnRhaW5lci0+bmV4dFNpYmxpbmcoKSA6IGlubmVyVGV4dEVsZW1lbnQoKS0+
bmV4dFNpYmxpbmcoKSwgZWMpOworICAgICAgICBlbGVtZW50KCktPnNoYWRvd1Jvb3RMaXN0KCkt
Pm9sZGVzdFNoYWRvd1Jvb3QoKS0+aW5zZXJ0QmVmb3JlKG1fcGxhY2Vob2xkZXIsIG1fY29udGFp
bmVyID8gbV9jb250YWluZXItPm5leHRTaWJsaW5nKCkgOiBpbm5lclRleHRFbGVtZW50KCktPm5l
eHRTaWJsaW5nKCksIGVjKTsKICAgICAgICAgQVNTRVJUKCFlYyk7CiAgICAgfQogICAgIG1fcGxh
Y2Vob2xkZXItPnNldElubmVyVGV4dChwbGFjZWhvbGRlclRleHQsIGVjKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKaW5kZXggYmMzYzQ1NDg5ZGZiODYyYTE0YmI0
ZTUzMGU3MDRiOWE4Y2RjNjY4Yy4uYmI4YTE5NWI4NGMyYmUwZjEwMmJlY2EzNzNlYzY1ZGZhOTFi
M2ZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKQEAgLTQ0
LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5o
IgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCkBAIC0x
ODcsNyArMTg4LDcgQEAgdm9pZCBWYWxpZGF0aW9uTWVzc2FnZTo6ZGVsZXRlQnViYmxlVHJlZShU
aW1lcjxWYWxpZGF0aW9uTWVzc2FnZT4qKQogICAgICAgICBtX21lc3NhZ2VCb2R5ID0gMDsKICAg
ICAgICAgSFRNTEVsZW1lbnQqIGhvc3QgPSB0b0hUTUxFbGVtZW50KG1fZWxlbWVudCk7CiAgICAg
ICAgIEV4Y2VwdGlvbkNvZGUgZWM7Ci0gICAgICAgIGhvc3QtPnNoYWRvd1Jvb3QoKS0+cmVtb3Zl
Q2hpbGQobV9idWJibGUuZ2V0KCksIGVjKTsKKyAgICAgICAgaG9zdC0+c2hhZG93Um9vdExpc3Qo
KS0+b2xkZXN0U2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZChtX2J1YmJsZS5nZXQoKSwgZWMpOwog
ICAgICAgICBtX2J1YmJsZSA9IDA7CiAgICAgfQogICAgIG1fbWVzc2FnZSA9IFN0cmluZygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAK
aW5kZXggMzE5YTExZTgwMjUyZmFjMjg2YmU4NDBkMmJmNzYzNTQwZjU4ZWViNy4uYWJmNWIzNThi
NTU0OTlkZWJiOTFlNTcyNzM5MGI0MDk4ZDMzN2U3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCkBAIC00Myw2ICs0Myw3IEBACiAj
aW5jbHVkZSAiUmVuZGVyU2xpZGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNs
dWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRl
ICJTdGVwUmFuZ2UuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCkBAIC02Niw3ICs2
Nyw3IEBAIGlubGluZSBzdGF0aWMgYm9vbCBoYXNWZXJ0aWNhbEFwcGVhcmFuY2UoSFRNTElucHV0
RWxlbWVudCogaW5wdXQpCiBTbGlkZXJUaHVtYkVsZW1lbnQqIHNsaWRlclRodW1iRWxlbWVudE9m
KE5vZGUqIG5vZGUpCiB7CiAgICAgQVNTRVJUKG5vZGUpOwotICAgIFNoYWRvd1Jvb3QqIHNoYWRv
dyA9IG5vZGUtPnRvSW5wdXRFbGVtZW50KCktPnNoYWRvd1Jvb3QoKTsKKyAgICBTaGFkb3dSb290
KiBzaGFkb3cgPSBub2RlLT50b0lucHV0RWxlbWVudCgpLT5zaGFkb3dSb290TGlzdCgpLT5vbGRl
c3RTaGFkb3dSb290KCk7CiAgICAgQVNTRVJUKHNoYWRvdyk7CiAgICAgTm9kZSogdGh1bWIgPSBz
aGFkb3ctPmZpcnN0Q2hpbGQoKS0+Zmlyc3RDaGlsZCgpLT5maXJzdENoaWxkKCk7CiAgICAgQVNT
RVJUKHRodW1iKTsKQEAgLTE0MSw3ICsxNDIsNyBAQCB2b2lkIFJlbmRlclNsaWRlckNvbnRhaW5l
cjo6bGF5b3V0KCkKICAgICBMZW5ndGggaW5wdXRIZWlnaHQgPSBpbnB1dC0+cmVuZGVyZXIoKS0+
c3R5bGUoKS0+aGVpZ2h0KCk7CiAgICAgUmVuZGVyT2JqZWN0KiB0cmFja1JlbmRlcmVyID0gbm9k
ZSgpLT5maXJzdENoaWxkKCktPnJlbmRlcmVyKCk7CiAgICAgaWYgKCFpc1ZlcnRpY2FsICYmIGlu
cHV0LT5yZW5kZXJlcigpLT5pc1NsaWRlcigpICYmICFpbnB1dEhlaWdodC5pc0ZpeGVkKCkgJiYg
IWlucHV0SGVpZ2h0LmlzUGVyY2VudCgpKSB7Ci0gICAgICAgIFJlbmRlck9iamVjdCogdGh1bWJS
ZW5kZXJlciA9IGlucHV0LT5zaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKS0+Zmlyc3RDaGlsZCgp
LT5maXJzdENoaWxkKCktPnJlbmRlcmVyKCk7CisgICAgICAgIFJlbmRlck9iamVjdCogdGh1bWJS
ZW5kZXJlciA9IGlucHV0LT5zaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCktPmZp
cnN0Q2hpbGQoKS0+Zmlyc3RDaGlsZCgpLT5maXJzdENoaWxkKCktPnJlbmRlcmVyKCk7CiAgICAg
ICAgIGlmICh0aHVtYlJlbmRlcmVyKSB7CiAgICAgICAgICAgICBzdHlsZSgpLT5zZXRIZWlnaHQo
dGh1bWJSZW5kZXJlci0+c3R5bGUoKS0+aGVpZ2h0KCkpOwogICAgICAgICAgICAgaWYgKHRyYWNr
UmVuZGVyZXIpCkBAIC0zNTUsNyArMzU2LDggQEAgY29uc3QgQXRvbWljU3RyaW5nJiBUcmFja0xp
bWl0ZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiBUcmFja0xpbWl0ZXJFbGVtZW50
KiB0cmFja0xpbWl0ZXJFbGVtZW50T2YoTm9kZSogbm9kZSkKIHsKICAgICBBU1NFUlQobm9kZSk7
Ci0gICAgU2hhZG93Um9vdCogc2hhZG93ID0gbm9kZS0+dG9JbnB1dEVsZW1lbnQoKS0+c2hhZG93
Um9vdCgpOworICAgIEFTU0VSVChub2RlLT50b0lucHV0RWxlbWVudCgpLT5oYXNTaGFkb3dSb290
KCkpOworICAgIFNoYWRvd1Jvb3QqIHNoYWRvdyA9IG5vZGUtPnRvSW5wdXRFbGVtZW50KCktPnNo
YWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKICAgICBBU1NFUlQoc2hhZG93KTsK
ICAgICBOb2RlKiBsaW1pdGVyID0gc2hhZG93LT5maXJzdENoaWxkKCktPmxhc3RDaGlsZCgpOwog
ICAgIEFTU0VSVChsaW1pdGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9j
dXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNw
cAppbmRleCA1MTQyNmEzMDg2MjRiOTg1ODhiMGUwNmY5MWNiNmQ2NDgxYWM4ZjhhLi5hYTk4YzAy
NDlmYjA0NDk0NDc3ZDU0MTY0YzMwOTVkZTIzNjkyZjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
b2N1c0NvbnRyb2xsZXIuY3BwCkBAIC01NCw2ICs1NCw3IEBACiAjaW5jbHVkZSAiU2Nyb2xsQW5p
bWF0b3IuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIK
KyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlNwYXRpYWxOYXZpZ2F0aW9u
LmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIgLy8gRm9y
IGZpcnN0UG9zaXRpb25Jbk9yQmVmb3JlTm9kZQpAQCAtMTU0LDcgKzE1NSw3IEBAIHZvaWQgRm9j
dXNDb250cm9sbGVyOjpzZXRGb2N1c2VkKGJvb2wgZm9jdXNlZCkKIAogc3RhdGljIGlubGluZSBT
aGFkb3dSb290KiBzaGFkb3dSb290KE5vZGUqIG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGUtPmlz
RWxlbWVudE5vZGUoKSA/IHRvRWxlbWVudChub2RlKS0+c2hhZG93Um9vdCgpIDogMDsKKyAgICBy
ZXR1cm4gbm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+aGFzU2hhZG93
Um9vdCgpID8gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3dSb290TGlzdCgpLT55b3VuZ2VzdFNoYWRv
d1Jvb3QoKSA6IDA7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1RyZWVTY29wZU93bmVyKE5v
ZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmls
ZVVwbG9hZENvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVV
cGxvYWRDb250cm9sLmNwcAppbmRleCBhMWFlMTViNWM5YzAwNTQxMWQzMTYyMjE1MjY5MDk3ZDg5
NGUwMDdiLi44NDM3MzAzMmQ5ZmJiYjRkOGI2NDhhN2Q4NDJjZjBhYzBlNjBhOTNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5j
cHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAi
UmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93
Um9vdExpc3QuaCIKICNpbmNsdWRlICJUZXh0UnVuLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVBvc2l0
aW9uLmgiCiAjaW5jbHVkZSA8bWF0aC5oPgpAQCAtMjEyLDkgKzIxMyw5IEBAIEhUTUxJbnB1dEVs
ZW1lbnQqIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjp1cGxvYWRCdXR0b24oKSBjb25zdAogewog
ICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVu
dCo+KG5vZGUoKSk7CiAKLSAgICBBU1NFUlQoaW5wdXQtPnNoYWRvd1Jvb3QoKSk7CisgICAgQVNT
RVJUKGlucHV0LT5oYXNTaGFkb3dSb290KCkpOwogCi0gICAgTm9kZSogYnV0dG9uTm9kZSA9IGlu
cHV0LT5zaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsKKyAgICBOb2RlKiBidXR0b25Ob2RlID0g
aW5wdXQtPnNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgp
OwogICAgIHJldHVybiBidXR0b25Ob2RlICYmIGJ1dHRvbk5vZGUtPmlzSFRNTEVsZW1lbnQoKSAm
JiBidXR0b25Ob2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSA/IHN0YXRpY19jYXN0PEhUTUxJbnB1
dEVsZW1lbnQqPihidXR0b25Ob2RlKSA6IDA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVs
ZW1lbnQuY3BwCmluZGV4IDk4YjhmOTEzZmExNjMyYjcxNzM5NjQyMGVkM2VlNmQ4MGRjMmM5YzQu
LjEyMmQ3YzQzY2MyZDBiMWE1NGU3YWFhYzRiNzM1ZDRhZjA4OGQxZGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RSZWZFbGVtZW50LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlJlbmRl
clNWR0lubGluZVRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZS5oIgogI2luY2x1
ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUg
IlNWR0RvY3VtZW50LmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudEluc3RhbmNlLmgiCiAjaW5jbHVk
ZSAiU1ZHTmFtZXMuaCIKQEAgLTE1OSwxMCArMTYwLDEyIEBAIHZvaWQgU1ZHVFJlZkVsZW1lbnQ6
OnVwZGF0ZVJlZmVyZW5jZWRUZXh0KCkKICAgICBpZiAodGFyZ2V0LT5wYXJlbnROb2RlKCkpCiAg
ICAgICAgIHRleHRDb250ZW50ID0gdGFyZ2V0LT50ZXh0Q29udGVudCgpOwogCi0gICAgaWYgKCFz
aGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSkKLSAgICAgICAgc2hhZG93Um9vdCgpLT5hcHBlbmRD
aGlsZChTVkdTaGFkb3dUZXh0OjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dENvbnRlbnQpLCBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKKyAgICBBU1NFUlQoaGFzU2hhZG93Um9vdCgpKTsKKyAgICBTaGFk
b3dSb290KiByb290ID0gc2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpOworICAg
IGlmICghcm9vdC0+Zmlyc3RDaGlsZCgpKQorICAgICAgICByb290LT5hcHBlbmRDaGlsZChTVkdT
aGFkb3dUZXh0OjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dENvbnRlbnQpLCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKICAgICBlbHNlCi0gICAgICAgIHNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpLT5z
ZXRUZXh0Q29udGVudCh0ZXh0Q29udGVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAg
IHJvb3QtPmZpcnN0Q2hpbGQoKS0+c2V0VGV4dENvbnRlbnQodGV4dENvbnRlbnQsIEFTU0VSVF9O
T19FWENFUFRJT04pOwogfQogCiBib29sIFNWR1RSZWZFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAppbmRleCAxMjY0N2RmZTMxNzkzNjgzOWY5MTMzNGM4ODY1ZDc0Yzc3NmNlZWU4
Li5lYjNhNWI3YjA1MzE5MTQ0ZGU0NDcxZGZhMGZiNWYwZWQ4ZTg3ZGY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiUmVuZGVy
VHJlZUFzVGV4dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9v
dC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSAiU3BlbGxDaGVja2Vy
LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAKQEAgLTE5MywyMCArMTk0LDQzIEBAIElu
dGVybmFsczo6U2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogSW50ZXJuYWxzOjpl
bnN1cmVTaGFkb3dSb290KEVsZW1lCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIGlm
IChTaGFkb3dSb290KiByb290ID0gaG9zdC0+c2hhZG93Um9vdCgpKQotICAgICAgICByZXR1cm4g
cm9vdDsKKyAgICBpZiAoaG9zdC0+aGFzU2hhZG93Um9vdCgpKQorICAgICAgICByZXR1cm4gaG9z
dC0+c2hhZG93Um9vdExpc3QoKS0+eW91bmdlc3RTaGFkb3dSb290KCk7CiAKICAgICByZXR1cm4g
U2hhZG93Um9vdDo6Y3JlYXRlKGhvc3QsIGVjKS5nZXQoKTsKIH0KIAogSW50ZXJuYWxzOjpTaGFk
b3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBJbnRlcm5hbHM6OnNoYWRvd1Jvb3QoRWxl
bWVudCogaG9zdCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgLy8gRklYTUU6IEludGVybmFs
czo6c2hhZG93Um9vdCgpIGluIHRlc3RzIHNob3VsZCBiZSBjb252ZXJ0ZWQgdG8geW91bmdlc3RT
aGFkb3dSb290KCkgb3Igb2xkZXN0U2hhZG93Um9vdCgpLgorICAgIC8vIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODQ2NQorICAgIHJldHVybiB5b3VuZ2VzdFNoYWRv
d1Jvb3QoaG9zdCwgZWMpOworfQorCitJbnRlcm5hbHM6OlNoYWRvd1Jvb3RJZlNoYWRvd0RPTUVu
YWJsZWRPck5vZGUqIEludGVybmFsczo6eW91bmdlc3RTaGFkb3dSb290KEVsZW1lbnQqIGhvc3Qs
IEV4Y2VwdGlvbkNvZGUmIGVjKQorewogICAgIGlmICghaG9zdCkgewogICAgICAgICBlYyA9IElO
VkFMSURfQUNDRVNTX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgcmV0dXJu
IGhvc3QtPnNoYWRvd1Jvb3QoKTsKKyAgICBpZiAoIWhvc3QtPmhhc1NoYWRvd1Jvb3QoKSkKKyAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gaG9zdC0+c2hhZG93Um9vdExpc3QoKS0+eW91
bmdlc3RTaGFkb3dSb290KCk7Cit9CisKK0ludGVybmFsczo6U2hhZG93Um9vdElmU2hhZG93RE9N
RW5hYmxlZE9yTm9kZSogSW50ZXJuYWxzOjpvbGRlc3RTaGFkb3dSb290KEVsZW1lbnQqIGhvc3Qs
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghaG9zdCkgeworICAgICAgICBlYyA9IElO
VkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgaWYgKCFo
b3N0LT5oYXNTaGFkb3dSb290KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIGhv
c3QtPnNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKIH0KIAogdm9pZCBJbnRl
cm5hbHM6OnJlbW92ZVNoYWRvd1Jvb3QoRWxlbWVudCogaG9zdCwgRXhjZXB0aW9uQ29kZSYgZWMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCA0MzlkYzc1YzZlMTVmYmNhZTgyYzY3
Y2FmZTc5ZjBiMjFhZmRiZTBlLi5kMzhkODgwYTJmODNiOTg5Yjg5ODMzZmNmZTA0NDUyNTc1MTc1
OGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTY2LDYgKzY2LDggQEAgcHVi
bGljOgogI2VuZGlmCiAgICAgU2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogZW5z
dXJlU2hhZG93Um9vdChFbGVtZW50KiBob3N0LCBFeGNlcHRpb25Db2RlJik7CiAgICAgU2hhZG93
Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogc2hhZG93Um9vdChFbGVtZW50KiBob3N0LCBF
eGNlcHRpb25Db2RlJik7CisgICAgU2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSog
eW91bmdlc3RTaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBT
aGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBvbGRlc3RTaGFkb3dSb290KEVsZW1l
bnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHJlbW92ZVNoYWRvd1Jvb3QoRWxl
bWVudCogaG9zdCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIEVsZW1lbnQqIGluY2x1ZGVyRm9yKE5v
ZGUqLCBFeGNlcHRpb25Db2RlJik7CiAgICAgU3RyaW5nIHNoYWRvd1BzZXVkb0lkKEVsZW1lbnQq
LCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXgg
OWJmMDU3NTFkOWI2YTJmNGE4MWYwNzA5OWM5M2M3YTZkM2E4YTA1My4uNzU2NzZmNmFhMmI3OTJk
NjUwZGI1YmY3MTFhZTg0OTQ4MTZiNzc5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbApAQCAtMzUsOSArMzUsMTMgQEAgbW9kdWxlIHdpbmRvdyB7CiAjaWYgZGVmaW5lZChFTkFC
TEVfU0hBRE9XX0RPTSkKICAgICAgICAgU2hhZG93Um9vdCBlbnN1cmVTaGFkb3dSb290KGluIEVs
ZW1lbnQgaG9zdCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAgICBTaGFkb3dSb290IHNo
YWRvd1Jvb3QoaW4gRWxlbWVudCBob3N0KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAg
IFNoYWRvd1Jvb3QgeW91bmdlc3RTaGFkb3dSb290KGluIEVsZW1lbnQgaG9zdCkgcmFpc2VzIChE
T01FeGNlcHRpb24pOworICAgICAgICBTaGFkb3dSb290IG9sZGVzdFNoYWRvd1Jvb3QoaW4gRWxl
bWVudCBob3N0KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAjZWxzZQogICAgICAgICBOb2RlIGVu
c3VyZVNoYWRvd1Jvb3QoaW4gRWxlbWVudCBob3N0KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAg
ICAgICAgIE5vZGUgc2hhZG93Um9vdChpbiBFbGVtZW50IGhvc3QpIHJhaXNlcyAoRE9NRXhjZXB0
aW9uKTsKKyAgICAgICAgTm9kZSB5b3VuZ2VzdFNoYWRvd1Jvb3QoaW4gRWxlbWVudCBob3N0KSBy
YWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIE5vZGUgb2xkZXN0U2hhZG93Um9vdChpbiBF
bGVtZW50IGhvc3QpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgogICAgICAgICBFbGVt
ZW50IGluY2x1ZGVyRm9yKGluIE5vZGUgbm9kZSkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAg
ICAgICB2b2lkIHJlbW92ZVNoYWRvd1Jvb3QoaW4gRWxlbWVudCBob3N0KSByYWlzZXMgKERPTUV4
Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKaW5kZXggNzY4MzBlMDFjOWRjNDM2MTU1ZjIy
Y2RjZmI1YjYzODU4MGE5YWYzOC4uZmZkOGVkOTUxZjRjY2YxZjlmMWI1YWE2YjI1MGVkMmMwNmUy
MDljOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgpAQCAtMTYzLDYgKzE2Myw3IEBAIEVYUE9SVFMK
ICAgICAgICAgP2dldERhdGExNlNsb3dDYXNlQFN0cmluZ0ltcGxAV1RGQEBBQkVQQl9XWFoKICAg
ICAgICAgP2dldEVsZW1lbnRCeUlkQFRyZWVTY29wZUBXZWJDb3JlQEBRQkVQQVZFbGVtZW50QDJA
QUJWQXRvbWljU3RyaW5nQFdURkBAQFoKICAgICAgICAgP2dldExvY2F0aW9uQW5kTGVuZ3RoRnJv
bVJhbmdlQFRleHRJdGVyYXRvckBXZWJDb3JlQEBTQV9OUEFWRWxlbWVudEAyQFBCVlJhbmdlQDJA
QUFJMkBaCisgICAgICAgID9oYXNTaGFkb3dSb290QEVsZW1lbnRAV2ViQ29yZUBAUUJFX05YWgog
ICAgICAgICA/aXNQcmVsb2FkZWRAQ2FjaGVkUmVzb3VyY2VMb2FkZXJAV2ViQ29yZUBAUUJFX05B
QlZTdHJpbmdAV1RGQEBAWgogICAgICAgICA/anNTdHJpbmdTbG93Q2FzZUBXZWJDb3JlQEBZQT9B
VkpTVmFsdWVASlNDQEBQQVZFeGVjU3RhdGVAM0BBQVY/JEhhc2hNYXBAUEFWU3RyaW5nSW1wbEBX
VEZAQFY/JFdlYWtAVkpTU3RyaW5nQEpTQ0BAQEpTQ0BAVVN0cmluZ0hhc2hAMkBVPyRIYXNoVHJh
aXRzQFBBVlN0cmluZ0ltcGxAV1RGQEBAMkBVPyRIYXNoVHJhaXRzQFY/JFdlYWtAVkpTU3RyaW5n
QEpTQ0BAQEpTQ0BAQDJAQFdURkBAUEFWU3RyaW5nSW1wbEA2QEBaCiAgICAgICAgID9sYXN0Q2hh
bmdlV2FzVXNlckVkaXRASFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnRAV2ViQ29yZUBAUUJFX05Y
WgpAQCAtMTg3LDcgKzE4OCw3IEBAIEVYUE9SVFMKICAgICAgICAgP3NldHRpbmdzQERvY3VtZW50
QFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJAWFoKICAgICAgICAgP3NldHRpbmdzQEZyYW1lQFdl
YkNvcmVAQFFCRVBBVlNldHRpbmdzQDJAWFoKICAgICAgICAgP3NldEZpeGVkRWxlbWVudHNMYXlv
dXRSZWxhdGl2ZVRvRnJhbWVAU2V0dGluZ3NAV2ViQ29yZUBAUUFFWF9OQFoKLSAgICAgICAgP3No
YWRvd1Jvb3RARWxlbWVudEBXZWJDb3JlQEBRQkVQQVZTaGFkb3dSb290QDJAWFoKKyAgICAgICAg
P3NoYWRvd1Jvb3RMaXN0QEVsZW1lbnRAV2ViQ29yZUBAUUJFUEFWU2hhZG93Um9vdExpc3RAMkBY
WgogICAgICAgICA/c3VnZ2VzdGVkVmFsdWVASFRNTElucHV0RWxlbWVudEBXZWJDb3JlQEBRQkVB
QlZTdHJpbmdAV1RGQEBYWgogICAgICAgICA/dG9Eb2N1bWVudEBXZWJDb3JlQEBZQVBBVkRvY3Vt
ZW50QDFAVkpTVmFsdWVASlNDQEBAWgogICAgICAgICA/dG9FbGVtZW50QFdlYkNvcmVAQFlBUEFW
RWxlbWVudEAxQFZKU1ZhbHVlQEpTQ0BAQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dp
bi9XZWJLaXQyQ0ZMaXRlLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRl
ZgppbmRleCAzYTkyN2MyN2NlZTY5ZmNhYzJhNDY2ODZkODcxNDBkMjEzYzMyMzA1Li41NWVjYTMw
NmRkM2EyNjI0YTc3MTFmNWQzOGMxMmM1NWM0ZTA0NzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktp
dDJDRkxpdGUuZGVmCkBAIC0xLDMgKzEsNCBAQAorCiBFWFBPUlRTCiAgICAgICAgIERsbEdldENs
YXNzT2JqZWN0ICAgUFJJVkFURQogICAgICAgICBEbGxDYW5VbmxvYWROb3cgICAgIFBSSVZBVEUK
QEAgLTE1Nyw2ICsxNTgsNyBAQCBFWFBPUlRTCiAgICAgICAgID9nZXREYXRhMTZTbG93Q2FzZUBT
dHJpbmdJbXBsQFdURkBAQUJFUEJfV1haCiAgICAgICAgID9nZXRFbGVtZW50QnlJZEBUcmVlU2Nv
cGVAV2ViQ29yZUBAUUJFUEFWRWxlbWVudEAyQEFCVkF0b21pY1N0cmluZ0BXVEZAQEBaCiAgICAg
ICAgID9nZXRMb2NhdGlvbkFuZExlbmd0aEZyb21SYW5nZUBUZXh0SXRlcmF0b3JAV2ViQ29yZUBA
U0FfTlBBVkVsZW1lbnRAMkBQQlZSYW5nZUAyQEFBSTJAWgorICAgICAgICA/aGFzU2hhZG93Um9v
dEBFbGVtZW50QFdlYkNvcmVAQFFCRV9OWFoKICAgICAgICAgP2lzUHJlbG9hZGVkQENhY2hlZFJl
c291cmNlTG9hZGVyQFdlYkNvcmVAQFFCRV9OQUJWU3RyaW5nQFdURkBAQFoKICAgICAgICAgP2pz
U3RyaW5nU2xvd0Nhc2VAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNA
QUFWPyRIYXNoTWFwQFBBVlN0cmluZ0ltcGxAV1RGQEBWPyRXZWFrQFZKU1N0cmluZ0BKU0NAQEBK
U0NAQFVTdHJpbmdIYXNoQDJAVT8kSGFzaFRyYWl0c0BQQVZTdHJpbmdJbXBsQFdURkBAQDJAVT8k
SGFzaFRyYWl0c0BWPyRXZWFrQFZKU1N0cmluZ0BKU0NAQEBKU0NAQEAyQEBXVEZAQFBBVlN0cmlu
Z0ltcGxANkBAWgogICAgICAgICA/bGFzdENoYW5nZVdhc1VzZXJFZGl0QEhUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50QFdlYkNvcmVAQFFCRV9OWFoKQEAgLTE4MSw3ICsxODMsNyBAQCBFWFBPUlRT
CiAgICAgICAgID9zZXR0aW5nc0BEb2N1bWVudEBXZWJDb3JlQEBRQkVQQVZTZXR0aW5nc0AyQFha
CiAgICAgICAgID9zZXR0aW5nc0BGcmFtZUBXZWJDb3JlQEBRQkVQQVZTZXR0aW5nc0AyQFhaCiAg
ICAgICAgID9zZXRGaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lQFNldHRpbmdzQFdl
YkNvcmVAQFFBRVhfTkBaCi0gICAgICAgID9zaGFkb3dSb290QEVsZW1lbnRAV2ViQ29yZUBAUUJF
UEFWU2hhZG93Um9vdEAyQFhaCisgICAgICAgID9zaGFkb3dSb290TGlzdEBFbGVtZW50QFdlYkNv
cmVAQFFCRVBBVlNoYWRvd1Jvb3RMaXN0QDJAWFoKICAgICAgICAgP3N1Z2dlc3RlZFZhbHVlQEhU
TUxJbnB1dEVsZW1lbnRAV2ViQ29yZUBAUUJFQUJWU3RyaW5nQFdURkBAWFoKICAgICAgICAgP3Rv
RG9jdW1lbnRAV2ViQ29yZUBAWUFQQVZEb2N1bWVudEAxQFZKU1ZhbHVlQEpTQ0BAQFoKICAgICAg
ICAgP3RvRWxlbWVudEBXZWJDb3JlQEBZQVBBVkVsZW1lbnRAMUBWSlNWYWx1ZUBKU0NAQEBaCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyIGIvU291cmNlL2F1dG90
b29scy9zeW1ib2xzLmZpbHRlcgppbmRleCA1ZTllYjM0Y2U1NDcyMTE4MjE2Mzg0OTg0ZGYwNGRh
YzNkMTVmMDhlLi40MjY0MzQ5NTNkMGMwOTg3MmU5ZDQzN2ZjZjhmOTk0NmNjNzVlMTVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCisrKyBiL1NvdXJjZS9hdXRv
dG9vbHMvc3ltYm9scy5maWx0ZXIKQEAgLTc4LDggKzc4LDkgQEAgX1pOSzdXZWJDb3JlMjBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjExaXNQcmVsb2FkZWRFUktOM1dURjZTdHJpbmdFOwogX1pOSzdXZWJD
b3JlMjZIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDIxbGFzdENoYW5nZVdhc1VzZXJFZGl0RXY7
CiBfWk5LN1dlYkNvcmU1RnJhbWU4c2V0dGluZ3NFdjsKIF9aTks3V2ViQ29yZTZKU05vZGUyMXB1
c2hFdmVudEhhbmRsZXJTY29wZUVQTjNKU0M5RXhlY1N0YXRlRVBOUzFfMTRTY29wZUNoYWluTm9k
ZUU7Ci1fWk5LN1dlYkNvcmU3RWxlbWVudDEwc2hhZG93Um9vdEV2OwogX1pOSzdXZWJDb3JlN0Vs
ZW1lbnQzMW51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW5FdjsKK19aTks3V2ViQ29yZTdF
bGVtZW50MTNoYXNTaGFkb3dSb290RXY7CitfWk5LN1dlYkNvcmU3RWxlbWVudDE0c2hhZG93Um9v
dExpc3RFdjsKIF9aTks3V2ViQ29yZThEb2N1bWVudDRwYWdlRXY7CiBfWk5LN1dlYkNvcmU4RG9j
dW1lbnQ4c2V0dGluZ3NFdjsKIF9aTks3V2ViQ29yZThEb2N1bWVudDR2aWV3RXY7CmRpZmYgLS1n
aXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggM2U2YTcwOTM2OGI1NTVmYjQ3MGQxN2Iy
OTgwMTg3YTVkMzFkOWE1My4uNjViNzNlODQzZGQzZDBmNWQxN2NkYWQ0MWEwOTBlYzY4ZmE0ODJh
MyAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDEyLTAyLTE0ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgVXNlIHlvdW5nZXN0U2hhZG93Um9vdCBhbmQgb2xkZXN0U2hhZG93Um9vdCBpbnN0ZWFk
IG9mIEVsZW1lbnQ6OnNoYWRvd1Jvb3QoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc4NDU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRXhwb3J0cyBuZWNlc3Nhcnkgc3ltYm9scy4KKworICAgICAgICAq
IFNvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXI6CisKIDIwMTItMDItMTMgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgWWV0IGFub3RoZXIgcGVyZi1vLW1h
dGljIGJ1aWxkIGZpeC4gSXQgdHVybnMgb3V0IHRoYXQgYSB0YXNrIG9mIHRoZSBzYW1lIG5hbWUg
Y2FuJ3QgYmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126929</attachid>
            <date>2012-02-14 01:12:29 -0800</date>
            <delta_ts>2012-02-14 01:33:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78455-20120214181227.patch</filename>
            <type>text/plain</type>
            <size>50093</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzAzYTAxNDQ1N2Q2MDdh
MjcxYzM1Zjc2MzFjNDcwZDk4M2NjNTc3YS4uNzQwZTY4YzVjNmIyZWQyMWVmZmZhOWU1OTgwZDA2
Yzg3MjI0NWYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMyBAQAorMjAxMi0wMi0xNCAgU2hp
bnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgorCisgICAgICAgIFVzZSB5b3VuZ2Vz
dFNoYWRvd1Jvb3QgYW5kIG9sZGVzdFNoYWRvd1Jvb3QgaW5zdGVhZCBvZiBFbGVtZW50OjpzaGFk
b3dSb290KCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03ODQ1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEVsZW1lbnQ6OnNoYWRvd1Jvb3QoKSB3YXMgdXNlZCBmb3IgdGhlc2UgMyBwdXJwb3Nlcy4KKyAg
ICAgICAgMS4gY2hlY2tzIGEgc2hhZG93IHJvb3QgZXhpc3RzLgorICAgICAgICAyLiBnZXRzIGF1
dGhvciBzaGFkb3cgcm9vdC4KKyAgICAgICAgMy4gZ2V0cyB1c2VyIGFnZW50IHNoYWRvdyByb290
LgorCisgICAgICAgIFdlIGhhdmUgdG8gZGlzdGluZ3Vpc2ggdGhlbSB3aGVuIGltcGxlbWVudGlu
ZyBtdWx0aXBsZSBzaGFkb3cgc3VidHJlZXMuCisKKyAgICAgICAgQ2FsbGluZyBmb3IgKDEpLCAo
MiksIGFuZCAoMykgYXJlIGNvbnZlcmVkIHRvIGhhc1NoYWRvd1Jvb3QoKS4KKyAgICAgICAgU2hh
ZG93Um9vdExpc3QoKS0+eW91bmdlc3RTaGFkb3dSb290KCksIGFuZCBTaGFkb3dSb290TGlzdCgp
LT5vbGRlc3RTaGFkb3dSb290KCkgcmVzcGVjdGl2ZWx5LgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cywgbm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpi
dWlsZEFjY2Vzc0tleU1hcCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjppbnNlcnRlZEludG9UcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJlbW92
ZWRGcm9tVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjphdHRhY2gpOgorICAgICAg
ICAoV2ViQ29yZTo6RWxlbWVudDo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6
OnJlY2FsY1N0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmVuc3VyZVNoYWRvd1Jv
b3QpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmZvY3VzKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgor
ICAgICAgICAoRWxlbWVudCk6CisgICAgICAgICogZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjppc1NoYWRvd0hvc3QpOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnNoYWRvd1Jvb3QpOgorICAgICAgICAqIGRvbS9Ob2RlUmVuZGVy
aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmVuZGVyaW5nQ29udGV4dDo6
Tm9kZVJlbmRlcmluZ0NvbnRleHQpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL1NoYWRv
d1Jvb3RMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3RMaXN0OjppbnNlcnRl
ZEludG9Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3RMaXN0OjpyZW1vdmVkRnJvbURvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3RMaXN0OjppbnNlcnRlZEludG9UcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d1Jvb3RMaXN0OjpyZW1vdmVkRnJvbVRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9v
dExpc3Q6Omhvc3RDaGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9v
dExpc3Q6OmF0dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290TGlzdDo6ZGV0YWNo
KToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdExpc3QuaDoKKyAgICAgICAgKFNoYWRvd1Jvb3RM
aXN0KToKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlQWRvcHRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpzaGFkb3dSb290Rm9yKToKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjptdWx0aXBsZUF0dHJpYnV0ZUNoYW5nZWQp
OgorICAgICAgICAqIGh0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxEZXRhaWxzRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRGV0YWlsc0VsZW1lbnQ6OmZpbmRNYWluU3VtbWFyeSk6CisgICAgICAgICog
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVs
ZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvSFRNTEtleWdlbkVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEtleWdlbkVsZW1lbnQ6OkhUTUxLZXln
ZW5FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxLZXlnZW5FbGVtZW50OjpzaGFkb3dT
ZWxlY3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6Omhhc01lZGlhQ29udHJvbHMpOgorICAgICAgICAqIGh0bWwv
SFRNTE1ldGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0ZXJFbGVtZW50
OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL0hUTUxQcm9ncmVzc0VsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb2dyZXNzRWxlbWVudDo6Y3JlYXRlU2hh
ZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFN1bW1hcnlFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToK
KyAgICAgICAgKiBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Ojppbm5lclRleHRFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCk6Cisg
ICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBl
OjpkZXN0cm95U2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9SYW5nZUlucHV0VHlwZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6aGFuZGxlTW91c2VEb3duRXZl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRy
ZWUpOgorICAgICAgICAqIGh0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCk6Cisg
ICAgICAgICogaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpW
YWxpZGF0aW9uTWVzc2FnZTo6ZGVsZXRlQnViYmxlVHJlZSk6CisgICAgICAgICogaHRtbC9zaGFk
b3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNsaWRlclRodW1i
RWxlbWVudE9mKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlckNvbnRhaW5lcjo6bGF5
b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OnRyYWNrTGltaXRlckVsZW1lbnRPZik6CisgICAgICAg
ICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hhZG93Um9v
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckZpbGVVcGxvYWRDb250cm9sOjp1cGxvYWRCdXR0b24pOgor
ICAgICAgICAqIHN2Zy9TVkdUUmVmRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdU
UmVmRWxlbWVudDo6dXBkYXRlUmVmZXJlbmNlZFRleHQpOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZW5zdXJlU2hhZG93Um9v
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNoYWRvd1Jvb3QpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnlvdW5nZXN0U2hhZG93Um9v
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om9sZGVzdFNoYWRvd1Jvb3QpOgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgIChJbnRlcm5hbHMpOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMi0wMi0xMyAgU2hpbnlhIEthd2FuYWth
ICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1JlZ3Jlc3Npb25dIHIxMDc2NTAg
YnJva2UgdGhlIHdpbmRvd3MgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmFiZjA4MDUzN2EzMDA5ODMx
OWVlMDI3ZjBlNTFjZDFmY2NhMGI2My4uZmMyZGY5YmY2ZjA0YjA0NDFlOGM1ZTVmMGVjZTNmY2Vl
N2Q5YzA3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAyLTE0ICBTaGlueWEg
S2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgVXNlIHlvdW5nZXN0U2hh
ZG93Um9vdCBhbmQgb2xkZXN0U2hhZG93Um9vdCBpbnN0ZWFkIG9mIEVsZW1lbnQ6OnNoYWRvd1Jv
b3QoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4
NDU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhw
b3J0cyBuZWNlc2Fycnkgc3ltYm9scy4KKworICAgICAgICAqIHdpbi9XZWJLaXQyLmRlZjoKKyAg
ICAgICAgKiB3aW4vV2ViS2l0MkNGTGl0ZS5kZWY6CisKIDIwMTItMDItMTMgIEVucmljYSBDYXN1
Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3RvciBNYWMgcGxhdGZvcm0g
aW1wbGVtZW50YXRpb24gb2YgdGhlIFBhc3RlYm9hcmQgY2xhc3MgdG8gdXNlIFBsYXRmb3JtIFN0
cmF0ZWdpZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDQ4Nzc5N2Q3ZGU3MmU3NzVlNzIwOTNm
MjYzOTAxZWM3OWYwMzE3YzguLjQzOWZhMTlkMzU5MTlmOTM4ZTQwZmE0MmUyNjg1MjQyODk3YmQ4
M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xNDM0LDggKzE0MzQsOSBAQCBfX1pOSzdXZWJD
b3JlNldpZGdldDI1Y29udmVydFRvQ29udGFpbmluZ1dpbmRvd0VSS05TXzdJbnRSZWN0RQogX19a
Tks3V2ViQ29yZTZXaWRnZXQyNWNvbnZlcnRUb0NvbnRhaW5pbmdXaW5kb3dFUktOU184SW50UG9p
bnRFCiBfX1pOSzdXZWJDb3JlNldpZGdldDlmcmFtZVJlY3RFdgogX19aTks3V2ViQ29yZTdFbGVt
ZW50MTBzY3JlZW5SZWN0RXYKLV9fWk5LN1dlYkNvcmU3RWxlbWVudDEwc2hhZG93Um9vdEV2CiBf
X1pOSzdXZWJDb3JlN0VsZW1lbnQxMmdldEF0dHJpYnV0ZUVSS05TXzEzUXVhbGlmaWVkTmFtZUUK
K19fWk5LN1dlYkNvcmU3RWxlbWVudDEzaGFzU2hhZG93Um9vdEV2CitfX1pOSzdXZWJDb3JlN0Vs
ZW1lbnQxNHNoYWRvd1Jvb3RMaXN0RXYKIF9fWk5LN1dlYkNvcmU3SW50UmVjdDEwaW50ZXJzZWN0
c0VSS1MwXwogX19aTks3V2ViQ29yZTdJbnRSZWN0OGNvbnRhaW5zRVJLUzBfCiBfX1pOSzdXZWJD
b3JlN0ludFJlY3RjdjZDR1JlY3RFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYTE1YmVj
ZjdkOGZiMmQzY2ZlNjhmMjZhZGEyMjk0OThmMDNhMzlmMC4uMzBiZjViZmNiMWNmMTYyYzVlYTNi
NjNhZjZkMzQ1NDk5MmFhOTdjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMzcsNiAr
MTM3LDcgQEAKICNpbmNsdWRlICJTZWdtZW50ZWRTdHJpbmcuaCIKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5o
IgogI2luY2x1ZGUgIlN0YXRpY0hhc2hTZXROb2RlTGlzdC5oIgogI2luY2x1ZGUgIlN0eWxlU2hl
ZXRMaXN0LmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgpAQCAtNjY2LDggKzY2
NywxMSBAQCB2b2lkIERvY3VtZW50OjpidWlsZEFjY2Vzc0tleU1hcChUcmVlU2NvcGUqIHNjb3Bl
KQogICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGFjY2Vzc0tleSA9IGVsZW1lbnQtPmdldEF0
dHJpYnV0ZShhY2Nlc3NrZXlBdHRyKTsKICAgICAgICAgaWYgKCFhY2Nlc3NLZXkuaXNFbXB0eSgp
KQogICAgICAgICAgICAgbV9lbGVtZW50c0J5QWNjZXNzS2V5LnNldChhY2Nlc3NLZXkuaW1wbCgp
LCBlbGVtZW50KTsKLSAgICAgICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSBlbGVtZW50
LT5zaGFkb3dSb290KCkpCi0gICAgICAgICAgICBidWlsZEFjY2Vzc0tleU1hcChzaGFkb3dSb290
KTsKKworICAgICAgICBpZiAoZWxlbWVudC0+aGFzU2hhZG93Um9vdCgpKSB7CisgICAgICAgICAg
ICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSBlbGVtZW50LT5zaGFkb3dSb290TGlzdCgpLT55b3Vu
Z2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQor
ICAgICAgICAgICAgICAgIGJ1aWxkQWNjZXNzS2V5TWFwKHJvb3QpOworICAgICAgICB9CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggY2Y5M2M2Mjc2MDk1OTc5NzgyMzg2YTUw
N2EyMGFhZGY5YjMzMzBlZi4uYmJjODgyMTk3MDQyMjI2NTI2MDBmODYxN2E3NzFmOGM4MTZmZmY1
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtODczLDggKzg3Myw4IEBAIHZvaWQgRWxlbWVu
dDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKQogICAgIC8vIG5lZWQgdG8gZG8gc3VwZXJjbGFzcyBw
cm9jZXNzaW5nIGZpcnN0IHNvIGluRG9jdW1lbnQoKSBpcyB0cnVlCiAgICAgLy8gYnkgdGhlIHRp
bWUgd2UgcmVhY2ggdXBkYXRlSWQKICAgICBDb250YWluZXJOb2RlOjppbnNlcnRlZEludG9Eb2N1
bWVudCgpOwotICAgIGlmIChTaGFkb3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290KCkpCi0gICAg
ICAgIHNoYWRvdy0+aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKKyAgICBpZiAoU2hhZG93Um9vdExp
c3QqIHNoYWRvd1Jvb3RzID0gc2hhZG93Um9vdExpc3QoKSkKKyAgICAgICAgc2hhZG93Um9vdHMt
Pmluc2VydGVkSW50b0RvY3VtZW50KCk7CiAKICAgICBpZiAobV9hdHRyaWJ1dGVNYXApIHsKICAg
ICAgICAgaWYgKGhhc0lEKCkpIHsKQEAgLTkwNiw4ICs5MDYsOCBAQCB2b2lkIEVsZW1lbnQ6OnJl
bW92ZWRGcm9tRG9jdW1lbnQoKQogICAgIH0KIAogICAgIENvbnRhaW5lck5vZGU6OnJlbW92ZWRG
cm9tRG9jdW1lbnQoKTsKLSAgICBpZiAoU2hhZG93Um9vdCogc2hhZG93ID0gc2hhZG93Um9vdCgp
KQotICAgICAgICBzaGFkb3ctPnJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKKyAgICBpZiAoU2hhZG93
Um9vdExpc3QqIHNoYWRvd1Jvb3RzID0gc2hhZG93Um9vdExpc3QoKSkKKyAgICAgICAgc2hhZG93
Um9vdHMtPnJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKIH0KIAogdm9pZCBFbGVtZW50OjppbnNlcnRl
ZEludG9UcmVlKGJvb2wgZGVlcCkKQEAgLTkxNSw4ICs5MTUsOCBAQCB2b2lkIEVsZW1lbnQ6Omlu
c2VydGVkSW50b1RyZWUoYm9vbCBkZWVwKQogICAgIENvbnRhaW5lck5vZGU6Omluc2VydGVkSW50
b1RyZWUoZGVlcCk7CiAgICAgaWYgKCFkZWVwKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKFNo
YWRvd1Jvb3QqIHNoYWRvdyA9IHNoYWRvd1Jvb3QoKSkKLSAgICAgICAgc2hhZG93LT5pbnNlcnRl
ZEludG9UcmVlKHRydWUpOworICAgIGlmIChTaGFkb3dSb290TGlzdCogc2hhZG93Um9vdHMgPSBz
aGFkb3dSb290TGlzdCgpKQorICAgICAgICBzaGFkb3dSb290cy0+aW5zZXJ0ZWRJbnRvVHJlZSh0
cnVlKTsKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBpZiAoY29udGFpbnNGdWxs
U2NyZWVuRWxlbWVudCgpICYmIHBhcmVudEVsZW1lbnQoKSAmJiAhcGFyZW50RWxlbWVudCgpLT5j
b250YWluc0Z1bGxTY3JlZW5FbGVtZW50KCkpCkBAIC05MjksOCArOTI5LDggQEAgdm9pZCBFbGVt
ZW50OjpyZW1vdmVkRnJvbVRyZWUoYm9vbCBkZWVwKQogICAgIENvbnRhaW5lck5vZGU6OnJlbW92
ZWRGcm9tVHJlZShkZWVwKTsKICAgICBpZiAoIWRlZXApCiAgICAgICAgIHJldHVybjsKLSAgICBp
ZiAoU2hhZG93Um9vdCogc2hhZG93ID0gc2hhZG93Um9vdCgpKQotICAgICAgICBzaGFkb3ctPnJl
bW92ZWRGcm9tVHJlZSh0cnVlKTsKKyAgICBpZiAoU2hhZG93Um9vdExpc3QqIHNoYWRvd1Jvb3Rz
ID0gc2hhZG93Um9vdExpc3QoKSkKKyAgICAgICAgc2hhZG93Um9vdHMtPnJlbW92ZWRGcm9tVHJl
ZSh0cnVlKTsKIH0KIAogdm9pZCBFbGVtZW50OjphdHRhY2goKQpAQCAtOTQyLDEwICs5NDIsMTAg
QEAgdm9pZCBFbGVtZW50OjphdHRhY2goKQogICAgIFN0eWxlU2VsZWN0b3JQYXJlbnRQdXNoZXIg
cGFyZW50UHVzaGVyKHRoaXMpOwogCiAgICAgLy8gV2hlbiBhIHNoYWRvdyByb290IGV4aXN0cywg
aXQgZG9lcyB0aGUgd29yayBvZiBhdHRhY2hpbmcgdGhlIGNoaWxkcmVuLgotICAgIGlmIChTaGFk
b3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290KCkpIHsKKyAgICBpZiAoaGFzU2hhZG93Um9vdCgp
KSB7CiAgICAgICAgIHBhcmVudFB1c2hlci5wdXNoKCk7CiAgICAgICAgIE5vZGU6OmF0dGFjaCgp
OwotICAgICAgICBzaGFkb3ctPmF0dGFjaCgpOworICAgICAgICBzaGFkb3dSb290TGlzdCgpLT5h
dHRhY2goKTsKIAogICAgICAgICAvLyBJbiBhIHNoYWRvdyB0cmVlLCBzb21lIG9mIGxpZ2h0IGNo
aWxkcmVuIG1heSBiZSBhdHRhY2hlZCBieSAnY29udGVudCcgZWxlbWVudC4KICAgICAgICAgLy8g
SG93ZXZlciwgd2hlbiB0aGVyZSBpcyBubyBjb250ZW50IGVsZW1lbnQgb3IgY29udGVudCBlbGVt
ZW50IGRvZXMgbm90IHNlbGVjdApAQCAtOTgxLDggKzk4MSw4IEBAIHZvaWQgRWxlbWVudDo6ZGV0
YWNoKCkKICAgICBpZiAoaGFzUmFyZURhdGEoKSkKICAgICAgICAgcmFyZURhdGEoKS0+cmVzZXRD
b21wdXRlZFN0eWxlKCk7CiAgICAgQ29udGFpbmVyTm9kZTo6ZGV0YWNoKCk7Ci0gICAgaWYgKFNo
YWRvd1Jvb3QqIHNoYWRvdyA9IHNoYWRvd1Jvb3QoKSkKLSAgICAgICAgc2hhZG93LT5kZXRhY2go
KTsKKyAgICBpZiAoU2hhZG93Um9vdExpc3QqIHNoYWRvd1Jvb3RzID0gc2hhZG93Um9vdExpc3Qo
KSkKKyAgICAgICAgc2hhZG93Um9vdHMtPmRldGFjaCgpOwogCiAgICAgUmVuZGVyV2lkZ2V0Ojpy
ZXN1bWVXaWRnZXRIaWVyYXJjaHlVcGRhdGVzKCk7CiB9CkBAIC0xMTQxLDcgKzExNDEsOCBAQCB2
b2lkIEVsZW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKICAgICAgICAgZm9y
Y2VDaGVja09mQW55RWxlbWVudFNpYmxpbmcgPSBmb3JjZUNoZWNrT2ZBbnlFbGVtZW50U2libGlu
ZyB8fCAoY2hpbGRSdWxlc0NoYW5nZWQgJiYgaGFzSW5kaXJlY3RBZGphY2VudFJ1bGVzKTsKICAg
ICB9CiAgICAgLy8gRklYTUU6IFRoaXMgZG9lcyBub3QgY2FyZSBhYm91dCBzaWJsaW5nIGNvbWJp
bmF0b3JzLiBXaWxsIGJlIG5lY2Vzc2FyeSBpbiBYQkwyIHdvcmxkLgotICAgIGlmIChTaGFkb3dS
b290KiBzaGFkb3cgPSBzaGFkb3dSb290KCkpIHsKKyAgICBpZiAoaGFzU2hhZG93Um9vdCgpKSB7
CisgICAgICAgIFNoYWRvd1Jvb3QqIHNoYWRvdyA9IHNoYWRvd1Jvb3RMaXN0KCktPnlvdW5nZXN0
U2hhZG93Um9vdCgpOwogICAgICAgICBpZiAoY2hhbmdlID49IEluaGVyaXQgfHwgc2hhZG93LT5j
aGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB8fCBzaGFkb3ctPm5lZWRzU3R5bGVSZWNhbGMoKSkgewog
ICAgICAgICAgICAgcGFyZW50UHVzaGVyLnB1c2goKTsKICAgICAgICAgICAgIHNoYWRvdy0+cmVj
YWxjU2hhZG93VHJlZVN0eWxlKGNoYW5nZSk7CkBAIC0xMTcwLDEzICsxMTcxLDYgQEAgU2hhZG93
Um9vdExpc3QqIEVsZW1lbnQ6OnNoYWRvd1Jvb3RMaXN0KCkgY29uc3QKICAgICByZXR1cm4gJnJh
cmVEYXRhKCktPm1fc2hhZG93Um9vdExpc3Q7CiB9CiAKLVNoYWRvd1Jvb3QqIEVsZW1lbnQ6OnNo
YWRvd1Jvb3QoKSBjb25zdAotewotICAgIGlmIChTaGFkb3dSb290TGlzdCogbGlzdCA9IHNoYWRv
d1Jvb3RMaXN0KCkpCi0gICAgICAgIHJldHVybiBsaXN0LT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsK
LSAgICByZXR1cm4gMDsKLX0KLQogc3RhdGljIGJvb2wgdmFsaWRhdGVTaGFkb3dSb290KERvY3Vt
ZW50KiBkb2N1bWVudCwgU2hhZG93Um9vdCogc2hhZG93Um9vdCwgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7CiAgICAgaWYgKCFzaGFkb3dSb290KQpAQCAtMTIxOSw4ICsxMjEzLDggQEAgdm9pZCBFbGVt
ZW50OjpzZXRTaGFkb3dSb290KFBhc3NSZWZQdHI8U2hhZG93Um9vdD4gc2hhZG93Um9vdCwgRXhj
ZXB0aW9uQ29kZSYgZWMKIAogU2hhZG93Um9vdCogRWxlbWVudDo6ZW5zdXJlU2hhZG93Um9vdCgp
CiB7Ci0gICAgaWYgKFNoYWRvd1Jvb3QqIGV4aXN0aW5nUm9vdCA9IHNoYWRvd1Jvb3QoKSkKLSAg
ICAgICAgcmV0dXJuIGV4aXN0aW5nUm9vdDsKKyAgICBpZiAoaGFzU2hhZG93Um9vdCgpKQorICAg
ICAgICByZXR1cm4gc2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpOwogCiAgICAg
cmV0dXJuIFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290OjpDcmVhdGluZ1VzZXJB
Z2VudFNoYWRvd1Jvb3QpLmdldCgpOwogfQpAQCAtMTM4Miw4ICsxMzc2LDggQEAgdm9pZCBFbGVt
ZW50OjpjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIsIE5vZGUqIGJlZm9yZUNo
YW5nZSwgTm9kZSogYWYKICAgICAgICAgY2hlY2tGb3JTaWJsaW5nU3R5bGVDaGFuZ2VzKHRoaXMs
IHJlbmRlclN0eWxlKCksIGZhbHNlLCBiZWZvcmVDaGFuZ2UsIGFmdGVyQ2hhbmdlLCBjaGlsZENv
dW50RGVsdGEpOwogCiAgICAgaWYgKGhhc1JhcmVEYXRhKCkpIHsKLSAgICAgICAgaWYgKFNoYWRv
d1Jvb3QqIHJvb3QgPSBzaGFkb3dSb290KCkpCi0gICAgICAgICAgICByb290LT5ob3N0Q2hpbGRy
ZW5DaGFuZ2VkKCk7CisgICAgICAgIGlmIChTaGFkb3dSb290TGlzdCogbGlzdCA9IHNoYWRvd1Jv
b3RMaXN0KCkpCisgICAgICAgICAgICBsaXN0LT5ob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7CiAgICAg
fQogfQogCkBAIC0xNTgwLDcgKzE1NzQsNyBAQCB2b2lkIEVsZW1lbnQ6OmZvY3VzKGJvb2wgcmVz
dG9yZVByZXZpb3VzU2VsZWN0aW9uKQogICAgICAgICAvLyBJZiBhIGZvY3VzIGV2ZW50IGhhbmRs
ZXIgY2hhbmdlcyB0aGUgZm9jdXMgdG8gYSBkaWZmZXJlbnQgbm9kZSBpdAogICAgICAgICAvLyBk
b2VzIG5vdCBtYWtlIHNlbnNlIHRvIGNvbnRpbnVlIGFuZCB1cGRhdGUgYXBwZWFyZW5jZS4KICAg
ICAgICAgcHJvdGVjdCA9IHRoaXM7Ci0gICAgICAgIGlmIChzaGFkb3dSb290KCkgJiYgcGFnZS0+
Zm9jdXNDb250cm9sbGVyKCktPnRyYW5zZmVyRm9jdXNUb0VsZW1lbnRJblNoYWRvd1Jvb3QodGhp
cywgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uKSkKKyAgICAgICAgaWYgKGhhc1NoYWRvd1Jvb3Qo
KSAmJiBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+dHJhbnNmZXJGb2N1c1RvRWxlbWVudEluU2hh
ZG93Um9vdCh0aGlzLCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pKQogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICBpZiAoIXBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5zZXRGb2N1c2VkTm9k
ZSh0aGlzLCBkb2MtPmZyYW1lKCkpKQogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmgKaW5kZXggZTllNGQ4Yjg5MzhhNDM1ZTM5MGY1YmMxYTRlYjgzNjA0YmVmNGVjZS4uZGQyNzAy
OTUyNTc3MjI4YWNjZjg0YzhlNzFiZjUzZTZiMTY4OWZjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBA
IC0yNTgsNyArMjU4LDYgQEAgcHVibGljOgogCiAgICAgLy8gRklYTUU6IFRoZXNlIEFQSSB3aWxs
IGJlIG1vdmVkIHRvIFNoYWRvd1Jvb3RMaXN0LgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03ODMxMwotICAgIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QoKSBj
b25zdDsKICAgICB2b2lkIHNldFNoYWRvd1Jvb3QoUGFzc1JlZlB0cjxTaGFkb3dSb290PiwgRXhj
ZXB0aW9uQ29kZSYpOwogICAgIFNoYWRvd1Jvb3QqIGVuc3VyZVNoYWRvd1Jvb3QoKTsKICAgICB2
b2lkIHJlbW92ZVNoYWRvd1Jvb3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5j
cHAKaW5kZXggNzU3MzgzMmJhMzM1MGQwZmNiMzNmMTMyZDc5OWJlNjJjN2IxYWIxNy4uM2VlNTI4
NWJjYTEyZTQ0ZDQ1MWEyZjJjYWQxOWJmYmU3NDcxMGYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTEyNyw3ICsxMjcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
aXNTaGFkb3dSb290T3JTVkdTaGFkb3dSb290KGNvbnN0IE5vZGUqIG5vZGUpCiAKIHN0YXRpYyBp
bmxpbmUgYm9vbCBpc1NoYWRvd0hvc3QoTm9kZSogbm9kZSkKIHsKLSAgICByZXR1cm4gbm9kZS0+
aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+c2hhZG93Um9vdCgpOworICAgIHJl
dHVybiBub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KG5vZGUpLT5oYXNTaGFkb3dS
b290KCk7CiB9CiAKIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+IEV2ZW50RGlzcGF0Y2hlcjo6YWRq
dXN0VG9TaGFkb3dCb3VuZGFyaWVzKFBhc3NSZWZQdHI8Tm9kZT4gcmVsYXRlZFRhcmdldCwgY29u
c3QgVmVjdG9yPE5vZGUqPiByZWxhdGVkVGFyZ2V0QW5jZXN0b3JzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmlu
ZGV4IDA3NGNmYTQ2OGYwNGU1MTNmOWVhMGE4NWJjYzlmNDQyNzk2ZDQ1OTUuLjNkOWFjM2U1YjBh
MWEyMTI3NzRiMmYyZTlmNTBmYjhjYTZiYmMwMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTg2LDYg
Kzg2LDcgQEAKICNpbmNsdWRlICJTY29wZWRFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiU2VsZWN0
b3JRdWVyeS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290
TGlzdC5oIgogI2luY2x1ZGUgIlN0YXRpY05vZGVMaXN0LmgiCiAjaW5jbHVkZSAiU3RvcmFnZUV2
ZW50LmgiCiAjaW5jbHVkZSAiVGFnTm9kZUxpc3QuaCIKQEAgLTgwOCw3ICs4MDksNyBAQCBib29s
IE5vZGU6Omhhc05vbkVtcHR5Qm91bmRpbmdCb3goKSBjb25zdAogCiBpbmxpbmUgc3RhdGljIFNo
YWRvd1Jvb3QqIHNoYWRvd1Jvb3QoTm9kZSogbm9kZSkKIHsKLSAgICByZXR1cm4gbm9kZS0+aXNF
bGVtZW50Tm9kZSgpID8gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3dSb290KCkgOiAwOworICAgIHJl
dHVybiBub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KG5vZGUpLT5oYXNTaGFkb3dS
b290KCkgPyB0b0VsZW1lbnQobm9kZSktPnNoYWRvd1Jvb3RMaXN0KCktPnlvdW5nZXN0U2hhZG93
Um9vdCgpIDogMDsKIH0KIAogaW5saW5lIHZvaWQgTm9kZTo6c2V0U3R5bGVDaGFuZ2UoU3R5bGVD
aGFuZ2VUeXBlIGNoYW5nZVR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZVJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdD
b250ZXh0LmNwcAppbmRleCA2ZmE5ODhhN2RkODI5Y2MxZWE4ZmNmMWZmYjhhMjNmZTJhYThjNzJm
Li40MTNlODM3Nzc4NWNlZGZjYzc3YzM1YjQyY2E3MDBlZDA1NDM1MTRkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNp
bmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVk
ZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAKICNpZiBFTkFC
TEUoU1ZHKQogI2luY2x1ZGUgIlNWR05hbWVzLmgiCkBAIC02NSw3ICs2Niw4IEBAIE5vZGVSZW5k
ZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dChOb2RlKiBub2RlKQogICAgIG1fbG9j
YXRpb24gPSBMb2NhdGlvbkxpZ2h0Q2hpbGQ7CiAKICAgICBpZiAocGFyZW50LT5pc0VsZW1lbnRO
b2RlKCkpIHsKLSAgICAgICAgbV92aXN1YWxQYXJlbnRTaGFkb3dSb290ID0gdG9FbGVtZW50KHBh
cmVudCktPnNoYWRvd1Jvb3QoKTsKKyAgICAgICAgaWYgKHRvRWxlbWVudChwYXJlbnQpLT5oYXNT
aGFkb3dSb290KCkpCisgICAgICAgICAgICBtX3Zpc3VhbFBhcmVudFNoYWRvd1Jvb3QgPSB0b0Vs
ZW1lbnQocGFyZW50KS0+c2hhZG93Um9vdExpc3QoKS0+eW91bmdlc3RTaGFkb3dSb290KCk7CiAK
ICAgICAgICAgaWYgKG1fdmlzdWFsUGFyZW50U2hhZG93Um9vdCkgewogICAgICAgICAgICAgaWYg
KChtX2luc2VydGlvblBvaW50ID0gbV92aXN1YWxQYXJlbnRTaGFkb3dSb290LT5pbnNlcnRpb25Q
b2ludEZvcihtX25vZGUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCmluZGV4IDVhNWM5ZGYw
M2Q5YThmNGRjMDE3NTlhYzcwMzIzOGY3ZGE0NWRkMjUuLjUzOTlhNGZkZmE2NjcwZjcyNjgxYTUz
Y2Y0Yjg2MjA0YWU5MTI3NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKQEAgLTk3LDcg
Kzk3LDcgQEAgUGFzc1JlZlB0cjxTaGFkb3dSb290PiBTaGFkb3dSb290OjpjcmVhdGUoRWxlbWVu
dCogZWxlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAKIFBhc3NSZWZQdHI8U2hhZG93Um9vdD4g
U2hhZG93Um9vdDo6Y3JlYXRlKEVsZW1lbnQqIGVsZW1lbnQsIFNoYWRvd1Jvb3RDcmVhdGlvblB1
cnBvc2UgcHVycG9zZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgaWYgKCFlbGVtZW50IHx8
IGVsZW1lbnQtPnNoYWRvd1Jvb3QoKSkgeworICAgIGlmICghZWxlbWVudCB8fCBlbGVtZW50LT5o
YXNTaGFkb3dSb290KCkpIHsKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAg
ICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTEwOSw3ICsxMDksNyBAQCBQYXNzUmVmUHRyPFNo
YWRvd1Jvb3Q+IFNoYWRvd1Jvb3Q6OmNyZWF0ZShFbGVtZW50KiBlbGVtZW50LCBTaGFkb3dSb290
Q3JlYXRpb25QdQogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBBU1NFUlQocHVycG9z
ZSAhPSBDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QgfHwgIWVsZW1lbnQtPnNoYWRvd1Jvb3Qo
KSk7CisgICAgQVNTRVJUKHB1cnBvc2UgIT0gQ3JlYXRpbmdVc2VyQWdlbnRTaGFkb3dSb290IHx8
ICFlbGVtZW50LT5oYXNTaGFkb3dSb290KCkpOwogICAgIFJlZlB0cjxTaGFkb3dSb290PiBzaGFk
b3dSb290ID0gY3JlYXRlKGVsZW1lbnQtPmRvY3VtZW50KCkpOwogCiAgICAgZWMgPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5jcHAKaW5kZXggODhlMGZiNWYxMzcwOWEwODdhMmM0
NWYyNTA2NzY0NDZhNDQzMzFmMC4uZTllMTlhZDUzZjQwNjg1Njg1MTU4OGQyN2VjOGZkMGViNzAz
NzcyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuY3BwCkBAIC01OSw0ICs1OSw1
OCBAQCBTaGFkb3dSb290KiBTaGFkb3dSb290TGlzdDo6cG9wU2hhZG93Um9vdCgpCiAgICAgcmV0
dXJuIG1fc2hhZG93Um9vdHMucmVtb3ZlSGVhZCgpOwogfQogCit2b2lkIFNoYWRvd1Jvb3RMaXN0
OjppbnNlcnRlZEludG9Eb2N1bWVudCgpCit7CisgICAgZm9yIChTaGFkb3dSb290KiByb290ID0g
eW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3Qo
KSkKKyAgICAgICAgcm9vdC0+aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKK30KKwordm9pZCBTaGFk
b3dSb290TGlzdDo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpCit7CisgICAgZm9yIChTaGFkb3dSb290
KiByb290ID0geW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNo
YWRvd1Jvb3QoKSkKKyAgICAgICAgcm9vdC0+cmVtb3ZlZEZyb21Eb2N1bWVudCgpOworfQorCit2
b2lkIFNoYWRvd1Jvb3RMaXN0OjppbnNlcnRlZEludG9UcmVlKGJvb2wgZGVlcCkKK3sKKyAgICBm
b3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB5b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9
IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQorICAgICAgICByb290LT5pbnNlcnRlZEludG9UcmVl
KGRlZXApOworfQorCit2b2lkIFNoYWRvd1Jvb3RMaXN0OjpyZW1vdmVkRnJvbVRyZWUoYm9vbCBk
ZWVwKQoreworICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hhZG93Um9vdCgp
OyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCisgICAgICAgIHJvb3QtPnJl
bW92ZWRGcm9tVHJlZShkZWVwKTsKK30KKwordm9pZCBTaGFkb3dSb290TGlzdDo6aG9zdENoaWxk
cmVuQ2hhbmdlZCgpCit7CisgICAgZm9yIChTaGFkb3dSb290KiByb290ID0geW91bmdlc3RTaGFk
b3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKKyAgICAgICAg
cm9vdC0+aG9zdENoaWxkcmVuQ2hhbmdlZCgpOworfQorCit2b2lkIFNoYWRvd1Jvb3RMaXN0Ojph
dHRhY2goKQoreworICAgIC8vIEZJWE1FOiBDdXJyZW50bHkgd2Ugb25seSBzdXBwb3J0IHRoZSBj
YXNlIHRoYXQgdGhlIHNoYWRvdyByb290IGxpc3QgaGFzIGF0IG1vc3Qgb25lIHNoYWRvdyByb290
LgorICAgIC8vIFNlZSBhbHNvIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03NzUwMyBhbmQgaXRzIGRlcGVuZGVudCBidWdzLgorICAgIEFTU0VSVChtX3NoYWRvd1Jvb3Rz
LnNpemUoKSA8PSAxKTsKKworICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hh
ZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpIHsKKyAgICAg
ICAgaWYgKHJvb3QtPmF0dGFjaGVkKCkpCisgICAgICAgICAgICByb290LT5hdHRhY2goKTsKKyAg
ICB9Cit9CisKK3ZvaWQgU2hhZG93Um9vdExpc3Q6OmRldGFjaCgpCit7CisgICAgLy8gRklYTUU6
IEN1cnJlbnRseSB3ZSBvbmx5IHN1cHBvcnQgdGhlIGNhc2UgdGhhdCB0aGUgc2hhZG93IHJvb3Qg
bGlzdCBoYXMgYXQgbW9zdCBvbmUgc2hhZG93IHJvb3QuCisgICAgLy8gU2VlIGFsc28gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTAzIGFuZCBpdHMgZGVwZW5kZW50
IGJ1Z3MuCisgICAgQVNTRVJUKG1fc2hhZG93Um9vdHMuc2l6ZSgpIDw9IDEpOworCisgICAgZm9y
IChTaGFkb3dSb290KiByb290ID0geW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSBy
b290LT5vbGRlclNoYWRvd1Jvb3QoKSkgeworICAgICAgICBpZiAocm9vdC0+YXR0YWNoZWQoKSkK
KyAgICAgICAgICAgIHJvb3QtPmRldGFjaCgpOworICAgIH0KK30KKwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdExpc3QuaAppbmRleCAwNTViY2FhNTFjOGI5MTk4ZmM0NWRkNzM5MzdjMjg4NTY1
OWVhMDMzLi5jN2ZjOThjYWE4YTIwYjQ0ZDU0YzgzN2FiNzg0ZThjZWZjNDVkMDA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93Um9vdExpc3QuaApAQCAtNDgsNiArNDgsMTYgQEAgcHVibGljOgogICAg
IHZvaWQgcHVzaFNoYWRvd1Jvb3QoU2hhZG93Um9vdCopOwogICAgIFNoYWRvd1Jvb3QqIHBvcFNo
YWRvd1Jvb3QoKTsKIAorICAgIHZvaWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKKyAgICB2b2lk
IHJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKKyAgICB2b2lkIGluc2VydGVkSW50b1RyZWUoYm9vbCBk
ZWVwKTsKKyAgICB2b2lkIHJlbW92ZWRGcm9tVHJlZShib29sIGRlZXApOworCisgICAgdm9pZCBo
b3N0Q2hpbGRyZW5DaGFuZ2VkKCk7CisKKyAgICB2b2lkIGF0dGFjaCgpOworICAgIHZvaWQgZGV0
YWNoKCk7CisKIHByaXZhdGU6CiAgICAgRG91Ymx5TGlua2VkTGlzdDxTaGFkb3dSb290PiBtX3No
YWRvd1Jvb3RzOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNoYWRvd1Jvb3RMaXN0KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcAppbmRleCAwMDMxN2UzMWEwNGMyNmRk
NTFkNjdhYTc0MGRjZjJmMDhlMTcyZDZhLi5lNzYyMDljYzgzMWYwYmRmYmFiOTc1NTU0ODZjYzY1
NjYyOGQ4NGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRvcHRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwCkBAIC0y
OCwxMiArMjgsMTMgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIk5vZGVSYXJl
RGF0YS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlz
dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBpbmxpbmUgU2hhZG93Um9vdCog
c2hhZG93Um9vdEZvcihOb2RlKiBub2RlKQogewotICAgIHJldHVybiBub2RlLT5pc0VsZW1lbnRO
b2RlKCkgPyB0b0VsZW1lbnQobm9kZSktPnNoYWRvd1Jvb3QoKSA6IDA7CisgICAgcmV0dXJuIG5v
ZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jvb3QoKSA/
IHRvRWxlbWVudChub2RlKS0+c2hhZG93Um9vdExpc3QoKS0+eW91bmdlc3RTaGFkb3dSb290KCkg
OiAwOwogfQogCiB2b2lkIFRyZWVTY29wZUFkb3B0ZXI6Om1vdmVUcmVlVG9OZXdTY29wZShOb2Rl
KiByb290KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRU
eXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5kZXggZGZi
YmRmN2NkNzA0OGJjYmMzYWY1OGU3MDI5MTQ2NzRjNTRiZjlkNi4uNTc1OWY2NzQxNWNkMzgyZTUw
MGZiZTY1NThkMGMzNDM1N2Q5NzcwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9G
aWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUu
Y3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wu
aCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5o
IgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CkBAIC0yNjUsMTUgKzI2NiwxNSBAQCBib29sIEZpbGVJbnB1dFR5cGU6
OmlzRmlsZVVwbG9hZCgpIGNvbnN0CiAKIHZvaWQgRmlsZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93
U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKTsKKyAgICBB
U1NFUlQoZWxlbWVudCgpLT5oYXNTaGFkb3dSb290KCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMg
PSAwOwotICAgIGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChlbGVtZW50KCkt
Pm11bHRpcGxlKCkgPyBVcGxvYWRCdXR0b25FbGVtZW50OjpjcmVhdGVGb3JNdWx0aXBsZShlbGVt
ZW50KCktPmRvY3VtZW50KCkpOiBVcGxvYWRCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgp
LT5kb2N1bWVudCgpKSwgZWMpOworICAgIGVsZW1lbnQoKS0+c2hhZG93Um9vdExpc3QoKS0+b2xk
ZXN0U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChlbGVtZW50KCktPm11bHRpcGxlKCkgPyBVcGxv
YWRCdXR0b25FbGVtZW50OjpjcmVhdGVGb3JNdWx0aXBsZShlbGVtZW50KCktPmRvY3VtZW50KCkp
OiBVcGxvYWRCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLT5kb2N1bWVudCgpKSwgZWMp
OwogfQogCiB2b2lkIEZpbGVJbnB1dFR5cGU6Om11bHRpcGxlQXR0cmlidXRlQ2hhbmdlZCgpCiB7
Ci0gICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKTsKLSAgICBVcGxvYWRCdXR0b25F
bGVtZW50KiBidXR0b24gPSBzdGF0aWNfY2FzdDxVcGxvYWRCdXR0b25FbGVtZW50Kj4oZWxlbWVu
dCgpLT5zaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSk7CisgICAgQVNTRVJUKGVsZW1lbnQoKS0+
aGFzU2hhZG93Um9vdCgpKTsKKyAgICBVcGxvYWRCdXR0b25FbGVtZW50KiBidXR0b24gPSBzdGF0
aWNfY2FzdDxVcGxvYWRCdXR0b25FbGVtZW50Kj4oZWxlbWVudCgpLT5zaGFkb3dSb290TGlzdCgp
LT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSk7CiAgICAgaWYgKGJ1dHRvbikKICAg
ICAgICAgYnV0dG9uLT5zZXRWYWx1ZShlbGVtZW50KCktPm11bHRpcGxlKCkgPyBmaWxlQnV0dG9u
Q2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCkgOiBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCmluZGV4IDAx
NWNmNjFjZWI4MzM3Njk5OGI2OGViNmFiMDllZjU2MjY0NGFiNDMuLmFhMjY0YzIxMmE2Y2M2MTM4
MDI5NjNkMGVlNmYxYTlkOGE5ZGY3ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTERldGFpbHNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRh
aWxzRWxlbWVudC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJNb3VzZUV2ZW50Lmgi
CiAjaW5jbHVkZSAiUmVuZGVyRGV0YWlscy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNp
bmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlRleHQuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtMTA4LDcgKzEwOSw3IEBAIFJlbmRlck9iamVjdCogSFRNTERldGFpbHNF
bGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlCiAK
IHZvaWQgSFRNTERldGFpbHNFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKLSAgICBB
U1NFUlQoIXNoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkpOwogCiAg
ICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IHJvb3QgPSBTaGFkb3dSb290OjpjcmVhdGUodGhpcywgU2hh
ZG93Um9vdDo6Q3JlYXRpbmdVc2VyQWdlbnRTaGFkb3dSb290KTsKICAgICByb290LT5hcHBlbmRD
aGlsZChEZXRhaWxzU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05P
X0VYQ0VQVElPTiwgdHJ1ZSk7CkBAIC0xMjIsNyArMTIzLDcgQEAgRWxlbWVudCogSFRNTERldGFp
bHNFbGVtZW50OjpmaW5kTWFpblN1bW1hcnkoKSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIHRv
RWxlbWVudChjaGlsZCk7CiAgICAgfQogCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PERldGFpbHNT
dW1tYXJ5RWxlbWVudCo+KHNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpKS0+ZmFsbGJhY2tTdW1t
YXJ5KCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERldGFpbHNTdW1tYXJ5RWxlbWVudCo+KHNo
YWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpKS0+ZmFsbGJh
Y2tTdW1tYXJ5KCk7CiB9CiAKIHZvaWQgSFRNTERldGFpbHNFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShBdHRyaWJ1dGUqIGF0dHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNw
cAppbmRleCBkMjk3NGYwMTI5M2JlNWYzYjNlNmYwNjc0YTk4NzY1YTQ4YWJlMjZjLi45MWVlZDU1
ZGFmYTM2Mjg1NTQ4MzY2ZWMzNWFlNTI5MTY3ZTIxNjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBQYXNzUmVmUHRyPEhUTUxJ
bnB1dEVsZW1lbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYQogCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQog
ewotICAgIEFTU0VSVCghc2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoIWhhc1NoYWRvd1Jvb3Qo
KSk7CiAgICAgU2hhZG93Um9vdDo6Y3JlYXRlKHRoaXMsIFNoYWRvd1Jvb3Q6OkNyZWF0aW5nVXNl
ckFnZW50U2hhZG93Um9vdCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKICAgICBtX2lucHV0VHlw
ZS0+Y3JlYXRlU2hhZG93U3VidHJlZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5F
bGVtZW50LmNwcAppbmRleCA4NTI1MjgxOWFhNThlNzBjMmQwMzcxNTA3MjVkMTdjNDg5ODkwMTM1
Li5lMTAwNzlmNjQ2NGU3OGY1ZWUwNzRkMTVmOGFiMTJmNmQ3NDMyYzIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1
ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiU1NMS2V5R2VuZXJhdG9yLmgiCiAj
aW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5j
bHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIApAQCAtODUsNyAr
ODYsNyBAQCBpbmxpbmUgSFRNTEtleWdlbkVsZW1lbnQ6OkhUTUxLZXlnZW5FbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZQogICAgICAgICBvcHRpb24tPmFwcGVuZENo
aWxkKFRleHQ6OmNyZWF0ZShkb2N1bWVudCwga2V5c1tpXSksIGVjKTsKICAgICB9CiAKLSAgICBB
U1NFUlQoIXNoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkpOwogICAg
IFJlZlB0cjxTaGFkb3dSb290PiByb290ID0gU2hhZG93Um9vdDo6Y3JlYXRlKHRoaXMsIFNoYWRv
d1Jvb3Q6OkNyZWF0aW5nVXNlckFnZW50U2hhZG93Um9vdCk7CiAgICAgcm9vdC0+YXBwZW5kQ2hp
bGQoc2VsZWN0LCBlYyk7CiB9CkBAIC0xMzAsOCArMTMxLDggQEAgdm9pZCBIVE1MS2V5Z2VuRWxl
bWVudDo6cmVzZXQoKQogCiBIVE1MU2VsZWN0RWxlbWVudCogSFRNTEtleWdlbkVsZW1lbnQ6OnNo
YWRvd1NlbGVjdCgpIGNvbnN0CiB7Ci0gICAgU2hhZG93Um9vdCogc2hhZG93ID0gc2hhZG93Um9v
dCgpOwotICAgIEFTU0VSVChzaGFkb3cpOworICAgIEFTU0VSVChoYXNTaGFkb3dSb290KCkpOwor
ICAgIFNoYWRvd1Jvb3QqIHNoYWRvdyA9IHNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jv
b3QoKTsKICAgICByZXR1cm4gc2hhZG93ID8gdG9IVE1MU2VsZWN0RWxlbWVudChzaGFkb3ctPmZp
cnN0Q2hpbGQoKSkgOiAwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcAppbmRleCBlNWZmYzA4NTYyZWM0MjU5MDQ1ZTE5YWJiMDlkNDg1ZjIyNzcyMjBiLi42N2Fk
MWQ5YzUxZmNiOTBhYjNmMmFkMTBhMjI4OGJmYmE5ZGFkY2FkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTcxLDYgKzcxLDcgQEAKICNpbmNsdWRlICJTZWN1
cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9v
dC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSAiVGltZVJhbmdlcy5o
IgogI2luY2x1ZGUgIlVVSUQuaCIKICNpbmNsdWRlIDxsaW1pdHM+CkBAIC0zNTE5LDE1ICszNTIw
LDE1IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cHJpdmF0ZUJyb3dzaW5nU3RhdGVEaWRDaGFu
Z2UoKQogCiBNZWRpYUNvbnRyb2xzKiBIVE1MTWVkaWFFbGVtZW50OjptZWRpYUNvbnRyb2xzKCkK
IHsKLSAgICByZXR1cm4gdG9NZWRpYUNvbnRyb2xzKHNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgp
KTsKKyAgICByZXR1cm4gdG9NZWRpYUNvbnRyb2xzKHNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNo
YWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpKTsKIH0KIAogYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojpo
YXNNZWRpYUNvbnRyb2xzKCkKIHsKLSAgICBpZiAoIXNoYWRvd1Jvb3QoKSkKKyAgICBpZiAoIWhh
c1NoYWRvd1Jvb3QoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgTm9kZSogbm9kZSA9
IHNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpOworICAgIE5vZGUqIG5vZGUgPSBzaGFkb3dSb290
TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsKICAgICByZXR1cm4gbm9k
ZSAmJiBub2RlLT5pc01lZGlhQ29udHJvbHMoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1ldGVyRWxlbWVudC5jcHAKaW5kZXggYTFmZGFmNmM3MmQ0YjA2NTEyZTg0MjFkZTgwMGU1MjBi
Y2FhN2E3OS4uN2M4Mzk5NDViYmI1NzExZmRmNDE4NWVjN2U3NjcwZTYzNjAxNjQzZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCkBAIC0yMzQsNyArMjM0LDcgQEAg
dm9pZCBIVE1MTWV0ZXJFbGVtZW50OjpkaWRFbGVtZW50U3RhdGVDaGFuZ2UoKQogCiB2b2lkIEhU
TUxNZXRlckVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVCghc2hh
ZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoIWhhc1NoYWRvd1Jvb3QoKSk7CiAKICAgICBSZWZQdHI8
TWV0ZXJCYXJFbGVtZW50PiBiYXIgPSBNZXRlckJhckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgp
KTsKICAgICBtX3ZhbHVlID0gTWV0ZXJWYWx1ZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCmluZGV4IDBjMjM3
MjU4MWY3OWFmZjRkYWM1NDhhMGJhN2U0NGM1NmFhOWI1ZjAuLmVkNjk1MGMzZjc5MjA1Mzg1YjE5
NDM5OTYxYjA3NmIxZmQwNTIzZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFByb2dyZXNzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jl
c3NFbGVtZW50LmNwcApAQCAtMTUzLDcgKzE1Myw3IEBAIHZvaWQgSFRNTFByb2dyZXNzRWxlbWVu
dDo6ZGlkRWxlbWVudFN0YXRlQ2hhbmdlKCkKIAogdm9pZCBIVE1MUHJvZ3Jlc3NFbGVtZW50Ojpj
cmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKLSAgICBBU1NFUlQoIXNoYWRvd1Jvb3QoKSk7CisgICAg
QVNTRVJUKCFoYXNTaGFkb3dSb290KCkpOwogCiAgICAgUmVmUHRyPFByb2dyZXNzQmFyRWxlbWVu
dD4gYmFyID0gUHJvZ3Jlc3NCYXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgbV92
YWx1ZSA9IFByb2dyZXNzVmFsdWVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAKaW5kZXggNmJjNmVhYzY2MDU3MWY1
NmU5NzUwYzc2Y2QxN2I5ZWQ2NTU5MGI4Ni4uZTI5NTdiMjFlY2VlZmU0NjkzYmY5ZGFjNGE2Yzdh
MDNjMGVhMGYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNw
cApAQCAtMzEsOCArMzEsOCBAQAogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSZW5kZXJTdW1tYXJ5LmgiCi0KICNpbmNs
dWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC03NCw3ICs3NCw3IEBAIFJlbmRlck9iamVjdCogSFRNTFN1bW1h
cnlFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxl
CiAKIHZvaWQgSFRNTFN1bW1hcnlFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKLSAg
ICBBU1NFUlQoIXNoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkpOwog
ICAgIFJlZlB0cjxTaGFkb3dSb290PiByb290ID0gU2hhZG93Um9vdDo6Y3JlYXRlKHRoaXMsIFNo
YWRvd1Jvb3Q6OkNyZWF0aW5nVXNlckFnZW50U2hhZG93Um9vdCk7CiAgICAgcm9vdC0+YXBwZW5k
Q2hpbGQoRGV0YWlsc01hcmtlckNvbnRyb2w6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05P
X0VYQ0VQVElPTiwgdHJ1ZSk7CiAgICAgcm9vdC0+YXBwZW5kQ2hpbGQoU3VtbWFyeUNvbnRlbnRF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04sIHRydWUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKaW5kZXggMTNjYjNl
YzM4NmRhOWVlN2RiOGM2OTg0OWQ0NzQzNGFjZWM2NGUxZC4uNTljZTgwZTI5ZTgxMGFkNDA4YzE1
ODJiMTdkZTUyMGZhNjViMWI5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEFyZWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJl
YUVsZW1lbnQuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAj
aW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaCIKICNpbmNsdWRlICJTaGFkb3dS
b290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAj
aW5jbHVkZSAiVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJh
dG9yLmgiCkBAIC04NCw3ICs4NSw3IEBAIFBhc3NSZWZQdHI8SFRNTFRleHRBcmVhRWxlbWVudD4g
SFRNTFRleHRBcmVhRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmCiAKIHZvaWQg
SFRNTFRleHRBcmVhRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJU
KCFzaGFkb3dSb290KCkpOworICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsKICAgICBSZWZQ
dHI8U2hhZG93Um9vdD4gcm9vdCA9IFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290
OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QpOwogICAgIHJvb3QtPmFwcGVuZENoaWxkKFRl
eHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKIH0KQEAgLTI5Myw3ICsyOTQsNyBAQCBTdHJpbmcgSFRNTFRleHRBcmVhRWxl
bWVudDo6c2FuaXRpemVVc2VySW5wdXRWYWx1ZShjb25zdCBTdHJpbmcmIHByb3Bvc2VkVmFsdWUs
CiAKIEhUTUxFbGVtZW50KiBIVE1MVGV4dEFyZWFFbGVtZW50Ojppbm5lclRleHRFbGVtZW50KCkg
Y29uc3QKIHsKLSAgICBOb2RlKiBub2RlID0gc2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCk7Cisg
ICAgTm9kZSogbm9kZSA9IHNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmly
c3RDaGlsZCgpOwogICAgIEFTU0VSVCghbm9kZSB8fCBub2RlLT5oYXNUYWdOYW1lKGRpdlRhZykp
OwogICAgIHJldHVybiB0b0hUTUxFbGVtZW50KG5vZGUpOwogfQpAQCAtNDcwLDcgKzQ3MSw3IEBA
IHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkKICAgICBT
dHJpbmcgcGxhY2Vob2xkZXJUZXh0ID0gc3RyaXBwZWRQbGFjZWhvbGRlcigpOwogICAgIGlmIChw
bGFjZWhvbGRlclRleHQuaXNFbXB0eSgpKSB7CiAgICAgICAgIGlmIChtX3BsYWNlaG9sZGVyKSB7
Ci0gICAgICAgICAgICBzaGFkb3dSb290KCktPnJlbW92ZUNoaWxkKG1fcGxhY2Vob2xkZXIuZ2V0
KCksIGVjKTsKKyAgICAgICAgICAgIHNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3Qo
KS0+cmVtb3ZlQ2hpbGQobV9wbGFjZWhvbGRlci5nZXQoKSwgZWMpOwogICAgICAgICAgICAgQVNT
RVJUKCFlYyk7CiAgICAgICAgICAgICBtX3BsYWNlaG9sZGVyLmNsZWFyKCk7CiAgICAgICAgIH0K
QEAgLTQ3OSw3ICs0ODAsNyBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnVwZGF0ZVBsYWNl
aG9sZGVyVGV4dCgpCiAgICAgaWYgKCFtX3BsYWNlaG9sZGVyKSB7CiAgICAgICAgIG1fcGxhY2Vo
b2xkZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwogICAgICAgICBtX3Bs
YWNlaG9sZGVyLT5zZXRTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciIp
OwotICAgICAgICBzaGFkb3dSb290KCktPmluc2VydEJlZm9yZShtX3BsYWNlaG9sZGVyLCBzaGFk
b3dSb290KCktPmZpcnN0Q2hpbGQoKS0+bmV4dFNpYmxpbmcoKSwgZWMpOworICAgICAgICBzaGFk
b3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCktPmluc2VydEJlZm9yZShtX3BsYWNlaG9s
ZGVyLCBzaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKS0+
bmV4dFNpYmxpbmcoKSwgZWMpOwogICAgICAgICBBU1NFUlQoIWVjKTsKICAgICB9CiAgICAgbV9w
bGFjZWhvbGRlci0+c2V0SW5uZXJUZXh0KHBsYWNlaG9sZGVyVGV4dCwgZWMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9JbnB1dFR5cGUuY3BwCmluZGV4IDgwMGMyMWNmZjg5MjljMDdiM2U2OWRkZDIwMGUwMDg0MzAy
OTU1NjcuLmIxNDMyMDdhZWQ2NmIxZjczODkzYjJlMjVhZDczZGQ2ZmMxNWMyZjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJSZXNldElu
cHV0VHlwZS5oIgogI2luY2x1ZGUgIlNlYXJjaElucHV0VHlwZS5oIgogI2luY2x1ZGUgIlNoYWRv
d1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlN1Ym1pdElu
cHV0VHlwZS5oIgogI2luY2x1ZGUgIlRlbGVwaG9uZUlucHV0VHlwZS5oIgogI2luY2x1ZGUgIlRl
eHRJbnB1dFR5cGUuaCIKQEAgLTM3OCw3ICszNzksMTAgQEAgdm9pZCBJbnB1dFR5cGU6OmNyZWF0
ZVNoYWRvd1N1YnRyZWUoKQogCiB2b2lkIElucHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1YnRyZWUo
KQogewotICAgIGlmIChTaGFkb3dSb290KiByb290ID0gZWxlbWVudCgpLT5zaGFkb3dSb290KCkp
CisgICAgaWYgKCFlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKFNoYWRvd1Jvb3QqIHJvb3QgPSBlbGVtZW50KCktPnNoYWRvd1Jvb3RMaXN0KCkt
Pm9sZGVzdFNoYWRvd1Jvb3QoKSkKICAgICAgICAgcm9vdC0+cmVtb3ZlQWxsQ2hpbGRyZW4oKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRleCAxNDc0MTg1NjJi
NmIyZGYwZWQ3NTljNDBiNWI2ZTVlYjQxZGUzNmM5Li5hMTc0Y2U3YWYzMWU5NzNlNzRkNGMyOTg2
ZTA0ZGFmZGEyNTY4ODg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5w
dXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcApA
QCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1
ZGUgIlJlbmRlclNsaWRlci5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJT
aGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlNsaWRlclRodW1iRWxlbWVudC5oIgogI2luY2x1
ZGUgIlN0ZXBSYW5nZS5oIgogI2luY2x1ZGUgPGxpbWl0cz4KQEAgLTE1Nyw3ICsxNTgsMTAgQEAg
dm9pZCBSYW5nZUlucHV0VHlwZTo6aGFuZGxlTW91c2VEb3duRXZlbnQoTW91c2VFdmVudCogZXZl
bnQpCiAgICAgICAgIHJldHVybjsKIAogICAgIE5vZGUqIHRhcmdldE5vZGUgPSBldmVudC0+dGFy
Z2V0KCktPnRvTm9kZSgpOwotICAgIGlmIChldmVudC0+YnV0dG9uKCkgIT0gTGVmdEJ1dHRvbiB8
fCAhdGFyZ2V0Tm9kZSB8fCAodGFyZ2V0Tm9kZSAhPSBlbGVtZW50KCkgJiYgIXRhcmdldE5vZGUt
PmlzRGVzY2VuZGFudE9mKGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKSkpCisgICAgaWYgKGV2ZW50
LT5idXR0b24oKSAhPSBMZWZ0QnV0dG9uIHx8ICF0YXJnZXROb2RlKQorICAgICAgICByZXR1cm47
CisgICAgQVNTRVJUKGVsZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKTsKKyAgICBpZiAodGFyZ2V0
Tm9kZSAhPSBlbGVtZW50KCkgJiYgIXRhcmdldE5vZGUtPmlzRGVzY2VuZGFudE9mKGVsZW1lbnQo
KS0+c2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpKSkKICAgICAgICAgcmV0dXJu
OwogICAgIFNsaWRlclRodW1iRWxlbWVudCogdGh1bWIgPSBzbGlkZXJUaHVtYkVsZW1lbnRPZihl
bGVtZW50KCkpOwogICAgIGlmICh0YXJnZXROb2RlID09IHRodW1iKQpAQCAtMjMzLDcgKzIzNyw3
IEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50
KiBldmVudCkKIAogdm9pZCBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7
Ci0gICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoZWxlbWVu
dCgpLT5oYXNTaGFkb3dSb290KCkpOwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZWxlbWVu
dCgpLT5kb2N1bWVudCgpOwogICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gdHJhY2sgPSBIVE1M
RGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKQEAgLTI0Myw3ICsyNDcsNyBAQCB2b2lkIFJh
bmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICBSZWZQdHI8SFRNTEVsZW1l
bnQ+IGNvbnRhaW5lciA9IFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CiAgICAgY29udGFpbmVyLT5hcHBlbmRDaGlsZCh0cmFjay5yZWxlYXNlKCksIGVjKTsKICAgICBj
b250YWluZXItPmFwcGVuZENoaWxkKFRyYWNrTGltaXRlckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCksIGVjKTsKLSAgICBlbGVtZW50KCktPnNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoY29udGFp
bmVyLnJlbGVhc2UoKSwgZWMpOworICAgIGVsZW1lbnQoKS0+c2hhZG93Um9vdExpc3QoKS0+b2xk
ZXN0U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChjb250YWluZXIucmVsZWFzZSgpLCBlYyk7CiB9
CiAKIFJlbmRlck9iamVjdCogUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFy
ZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
RmllbGRJbnB1dFR5cGUuY3BwCmluZGV4IDU2ZTU1ZDM4OGUzNzc4ZjZkNTM5NjIxYjIxOGIyYmY5
NGZjMzc1OTQuLmE4YzA5NDZlNWNjYTJlZWY5ZWE1MDAwZDJiNmQyZThmNjlkOWE0NzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKQEAgLTQzLDYgKzQzLDcg
QEAKICNpbmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCIKICNpbmNsdWRlICJS
ZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dS
b290TGlzdC5oIgogI2luY2x1ZGUgIlRleHRDb250cm9sSW5uZXJFbGVtZW50cy5oIgogI2luY2x1
ZGUgIlRleHRFdmVudC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgpAQCAtMTg5LDcgKzE5
MCw3IEBAIGJvb2wgVGV4dEZpZWxkSW5wdXRUeXBlOjpuZWVkc0NvbnRhaW5lcigpIGNvbnN0CiAK
IHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKLSAgICBB
U1NFUlQoZWxlbWVudCgpLT5zaGFkb3dSb290KCkpOworICAgIEFTU0VSVChlbGVtZW50KCktPmhh
c1NoYWRvd1Jvb3QoKSk7CiAKICAgICBBU1NFUlQoIW1faW5uZXJUZXh0KTsKICAgICBBU1NFUlQo
IW1faW5uZXJCbG9jayk7CkBAIC0yMDMsMTEgKzIwNCwxMSBAQCB2b2lkIFRleHRGaWVsZElucHV0
VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAg
ICAgbV9pbm5lclRleHQgPSBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCk7CiAgICAgaWYgKCFjcmVhdGVzQ29udGFpbmVyKSB7Ci0gICAgICAgIGVsZW1lbnQoKS0+
c2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChtX2lubmVyVGV4dCwgZWMpOworICAgICAgICBlbGVt
ZW50KCktPnNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQo
bV9pbm5lclRleHQsIGVjKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNoYWRvd1Jv
b3QqIHNoYWRvd1Jvb3QgPSBlbGVtZW50KCktPnNoYWRvd1Jvb3QoKTsKKyAgICBTaGFkb3dSb290
KiBzaGFkb3dSb290ID0gZWxlbWVudCgpLT5zaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dS
b290KCk7CiAgICAgbV9jb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKICAgICBtX2NvbnRhaW5lci0+c2V0U2hhZG93UHNldWRvSWQoIi13ZWJraXQtdGV4dGZpZWxk
LWRlY29yYXRpb24tY29udGFpbmVyIik7CiAgICAgc2hhZG93Um9vdC0+YXBwZW5kQ2hpbGQobV9j
b250YWluZXIsIGVjKTsKQEAgLTM2OSw3ICszNzAsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlw
ZTo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkKICAgICBpZiAoIW1fcGxhY2Vob2xkZXIpIHsKICAg
ICAgICAgbV9wbGFjZWhvbGRlciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLT5k
b2N1bWVudCgpKTsKICAgICAgICAgbV9wbGFjZWhvbGRlci0+c2V0U2hhZG93UHNldWRvSWQoIi13
ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIiKTsKLSAgICAgICAgZWxlbWVudCgpLT5zaGFkb3dSb290
KCktPmluc2VydEJlZm9yZShtX3BsYWNlaG9sZGVyLCBtX2NvbnRhaW5lciA/IG1fY29udGFpbmVy
LT5uZXh0U2libGluZygpIDogaW5uZXJUZXh0RWxlbWVudCgpLT5uZXh0U2libGluZygpLCBlYyk7
CisgICAgICAgIGVsZW1lbnQoKS0+c2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgp
LT5pbnNlcnRCZWZvcmUobV9wbGFjZWhvbGRlciwgbV9jb250YWluZXIgPyBtX2NvbnRhaW5lci0+
bmV4dFNpYmxpbmcoKSA6IGlubmVyVGV4dEVsZW1lbnQoKS0+bmV4dFNpYmxpbmcoKSwgZWMpOwog
ICAgICAgICBBU1NFUlQoIWVjKTsKICAgICB9CiAgICAgbV9wbGFjZWhvbGRlci0+c2V0SW5uZXJU
ZXh0KHBsYWNlaG9sZGVyVGV4dCwgZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25N
ZXNzYWdlLmNwcAppbmRleCBiYzNjNDU0ODlkZmI4NjJhMTRiYjRlNTMwZTcwNGI5YThjZGM2Njhj
Li5iYjhhMTk1Yjg0YzJiZTBmMTAyYmVjYTM3M2VjNjVkZmE5MWIzZmNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1
ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSAiVGV4dC5o
IgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKQEAgLTE4Nyw3ICsxODgsNyBAQCB2b2lk
IFZhbGlkYXRpb25NZXNzYWdlOjpkZWxldGVCdWJibGVUcmVlKFRpbWVyPFZhbGlkYXRpb25NZXNz
YWdlPiopCiAgICAgICAgIG1fbWVzc2FnZUJvZHkgPSAwOwogICAgICAgICBIVE1MRWxlbWVudCog
aG9zdCA9IHRvSFRNTEVsZW1lbnQobV9lbGVtZW50KTsKICAgICAgICAgRXhjZXB0aW9uQ29kZSBl
YzsKLSAgICAgICAgaG9zdC0+c2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZChtX2J1YmJsZS5nZXQo
KSwgZWMpOworICAgICAgICBob3N0LT5zaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290
KCktPnJlbW92ZUNoaWxkKG1fYnViYmxlLmdldCgpLCBlYyk7CiAgICAgICAgIG1fYnViYmxlID0g
MDsKICAgICB9CiAgICAgbV9tZXNzYWdlID0gU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAppbmRleCAzMTlhMTFlODAyNTJm
YWMyODZiZTg0MGQyYmY3NjM1NDBmNThlZWI3Li5hYmY1YjM1OGI1NTQ5OWRlYmI5MWU1NzI3Mzkw
YjQwOThkMzM3ZTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlk
ZXJUaHVtYkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRl
clRodW1iRWxlbWVudC5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJSZW5kZXJTbGlk
ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIK
KyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlN0ZXBSYW5nZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKQEAgLTY2LDcgKzY3LDcgQEAgaW5saW5lIHN0YXRp
YyBib29sIGhhc1ZlcnRpY2FsQXBwZWFyYW5jZShIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCkKIFNs
aWRlclRodW1iRWxlbWVudCogc2xpZGVyVGh1bWJFbGVtZW50T2YoTm9kZSogbm9kZSkKIHsKICAg
ICBBU1NFUlQobm9kZSk7Ci0gICAgU2hhZG93Um9vdCogc2hhZG93ID0gbm9kZS0+dG9JbnB1dEVs
ZW1lbnQoKS0+c2hhZG93Um9vdCgpOworICAgIFNoYWRvd1Jvb3QqIHNoYWRvdyA9IG5vZGUtPnRv
SW5wdXRFbGVtZW50KCktPnNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKICAg
ICBBU1NFUlQoc2hhZG93KTsKICAgICBOb2RlKiB0aHVtYiA9IHNoYWRvdy0+Zmlyc3RDaGlsZCgp
LT5maXJzdENoaWxkKCktPmZpcnN0Q2hpbGQoKTsKICAgICBBU1NFUlQodGh1bWIpOwpAQCAtMTQx
LDcgKzE0Miw3IEBAIHZvaWQgUmVuZGVyU2xpZGVyQ29udGFpbmVyOjpsYXlvdXQoKQogICAgIExl
bmd0aCBpbnB1dEhlaWdodCA9IGlucHV0LT5yZW5kZXJlcigpLT5zdHlsZSgpLT5oZWlnaHQoKTsK
ICAgICBSZW5kZXJPYmplY3QqIHRyYWNrUmVuZGVyZXIgPSBub2RlKCktPmZpcnN0Q2hpbGQoKS0+
cmVuZGVyZXIoKTsKICAgICBpZiAoIWlzVmVydGljYWwgJiYgaW5wdXQtPnJlbmRlcmVyKCktPmlz
U2xpZGVyKCkgJiYgIWlucHV0SGVpZ2h0LmlzRml4ZWQoKSAmJiAhaW5wdXRIZWlnaHQuaXNQZXJj
ZW50KCkpIHsKLSAgICAgICAgUmVuZGVyT2JqZWN0KiB0aHVtYlJlbmRlcmVyID0gaW5wdXQtPnNo
YWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpLT5maXJzdENoaWxkKCktPmZpcnN0Q2hpbGQoKS0+cmVu
ZGVyZXIoKTsKKyAgICAgICAgUmVuZGVyT2JqZWN0KiB0aHVtYlJlbmRlcmVyID0gaW5wdXQtPnNo
YWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpLT5maXJzdENo
aWxkKCktPmZpcnN0Q2hpbGQoKS0+cmVuZGVyZXIoKTsKICAgICAgICAgaWYgKHRodW1iUmVuZGVy
ZXIpIHsKICAgICAgICAgICAgIHN0eWxlKCktPnNldEhlaWdodCh0aHVtYlJlbmRlcmVyLT5zdHls
ZSgpLT5oZWlnaHQoKSk7CiAgICAgICAgICAgICBpZiAodHJhY2tSZW5kZXJlcikKQEAgLTM1NSw3
ICszNTYsOCBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFRyYWNrTGltaXRlckVsZW1lbnQ6OnNoYWRv
d1BzZXVkb0lkKCkgY29uc3QKIFRyYWNrTGltaXRlckVsZW1lbnQqIHRyYWNrTGltaXRlckVsZW1l
bnRPZihOb2RlKiBub2RlKQogewogICAgIEFTU0VSVChub2RlKTsKLSAgICBTaGFkb3dSb290KiBz
aGFkb3cgPSBub2RlLT50b0lucHV0RWxlbWVudCgpLT5zaGFkb3dSb290KCk7CisgICAgQVNTRVJU
KG5vZGUtPnRvSW5wdXRFbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7CisgICAgU2hhZG93Um9v
dCogc2hhZG93ID0gbm9kZS0+dG9JbnB1dEVsZW1lbnQoKS0+c2hhZG93Um9vdExpc3QoKS0+b2xk
ZXN0U2hhZG93Um9vdCgpOwogICAgIEFTU0VSVChzaGFkb3cpOwogICAgIE5vZGUqIGxpbWl0ZXIg
PSBzaGFkb3ctPmZpcnN0Q2hpbGQoKS0+bGFzdENoaWxkKCk7CiAgICAgQVNTRVJUKGxpbWl0ZXIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4IDUxNDI2YTMwODYy
NGI5ODU4OGIwZTA2ZjkxY2I2ZDY0ODFhYzhmOGEuLmFhOThjMDI0OWZiMDQ0OTQ0NzdkNTQxNjRj
MzA5NWRlMjM2OTJmODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAK
QEAgLTU0LDYgKzU0LDcgQEAKICNpbmNsdWRlICJTY3JvbGxBbmltYXRvci5oIgogI2luY2x1ZGUg
IlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jv
b3RMaXN0LmgiCiAjaW5jbHVkZSAiU3BhdGlhbE5hdmlnYXRpb24uaCIKICNpbmNsdWRlICJXaWRn
ZXQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIiAvLyBGb3IgZmlyc3RQb3NpdGlvbkluT3JC
ZWZvcmVOb2RlCkBAIC0xNTQsNyArMTU1LDcgQEAgdm9pZCBGb2N1c0NvbnRyb2xsZXI6OnNldEZv
Y3VzZWQoYm9vbCBmb2N1c2VkKQogCiBzdGF0aWMgaW5saW5lIFNoYWRvd1Jvb3QqIHNoYWRvd1Jv
b3QoTm9kZSogbm9kZSkKIHsKLSAgICByZXR1cm4gbm9kZS0+aXNFbGVtZW50Tm9kZSgpID8gdG9F
bGVtZW50KG5vZGUpLT5zaGFkb3dSb290KCkgOiAwOworICAgIHJldHVybiBub2RlLT5pc0VsZW1l
bnROb2RlKCkgJiYgdG9FbGVtZW50KG5vZGUpLT5oYXNTaGFkb3dSb290KCkgPyB0b0VsZW1lbnQo
bm9kZSktPnNoYWRvd1Jvb3RMaXN0KCktPnlvdW5nZXN0U2hhZG93Um9vdCgpIDogMDsKIH0KIAog
c3RhdGljIGlubGluZSBib29sIGlzVHJlZVNjb3BlT3duZXIoTm9kZSogbm9kZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCmlu
ZGV4IGExYWUxNWI1YzljMDA1NDExZDMxNjIyMTUyNjkwOTdkODk0ZTAwN2IuLjg0MzczMDMyZDlm
YmJiNGQ4YjY0OGE3ZDg0MmNmMGFjMGU2MGE5M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcApAQCAtMzIsNiArMzIsNyBA
QAogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2lu
Y2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1
ZGUgIlRleHRSdW4uaCIKICNpbmNsdWRlICJWaXNpYmxlUG9zaXRpb24uaCIKICNpbmNsdWRlIDxt
YXRoLmg+CkBAIC0yMTIsOSArMjEzLDkgQEAgSFRNTElucHV0RWxlbWVudCogUmVuZGVyRmlsZVVw
bG9hZENvbnRyb2w6OnVwbG9hZEJ1dHRvbigpIGNvbnN0CiB7CiAgICAgSFRNTElucHV0RWxlbWVu
dCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obm9kZSgpKTsKIAotICAg
IEFTU0VSVChpbnB1dC0+c2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoaW5wdXQtPmhhc1NoYWRv
d1Jvb3QoKSk7CiAKLSAgICBOb2RlKiBidXR0b25Ob2RlID0gaW5wdXQtPnNoYWRvd1Jvb3QoKS0+
Zmlyc3RDaGlsZCgpOworICAgIE5vZGUqIGJ1dHRvbk5vZGUgPSBpbnB1dC0+c2hhZG93Um9vdExp
c3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCk7CiAgICAgcmV0dXJuIGJ1dHRv
bk5vZGUgJiYgYnV0dG9uTm9kZS0+aXNIVE1MRWxlbWVudCgpICYmIGJ1dHRvbk5vZGUtPmhhc1Rh
Z05hbWUoaW5wdXRUYWcpID8gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGJ1dHRvbk5v
ZGUpIDogMDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKaW5kZXggOThi
OGY5MTNmYTE2MzJiNzE3Mzk2NDIwZWQzZWU2ZDgwZGMyYzljNC4uMTIyZDdjNDNjYzJkMGIxYTU0
ZTdhYWFjNGI3MzVkNGFmMDg4ZDFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RSZWZFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQu
Y3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyU1ZHSW5saW5lVGV4dC5oIgog
I2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgor
I2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJTVkdFbGVtZW50SW5zdGFuY2UuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgpAQCAt
MTU5LDEwICsxNjAsMTIgQEAgdm9pZCBTVkdUUmVmRWxlbWVudDo6dXBkYXRlUmVmZXJlbmNlZFRl
eHQoKQogICAgIGlmICh0YXJnZXQtPnBhcmVudE5vZGUoKSkKICAgICAgICAgdGV4dENvbnRlbnQg
PSB0YXJnZXQtPnRleHRDb250ZW50KCk7CiAKLSAgICBpZiAoIXNoYWRvd1Jvb3QoKS0+Zmlyc3RD
aGlsZCgpKQotICAgICAgICBzaGFkb3dSb290KCktPmFwcGVuZENoaWxkKFNWR1NoYWRvd1RleHQ6
OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0Q29udGVudCksIEFTU0VSVF9OT19FWENFUFRJT04pOwor
ICAgIEFTU0VSVChoYXNTaGFkb3dSb290KCkpOworICAgIFNoYWRvd1Jvb3QqIHJvb3QgPSBzaGFk
b3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCk7CisgICAgaWYgKCFyb290LT5maXJzdENo
aWxkKCkpCisgICAgICAgIHJvb3QtPmFwcGVuZENoaWxkKFNWR1NoYWRvd1RleHQ6OmNyZWF0ZShk
b2N1bWVudCgpLCB0ZXh0Q29udGVudCksIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIGVsc2UK
LSAgICAgICAgc2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCktPnNldFRleHRDb250ZW50KHRleHRD
b250ZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgcm9vdC0+Zmlyc3RDaGlsZCgp
LT5zZXRUZXh0Q29udGVudCh0ZXh0Q29udGVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiB9CiAK
IGJvb2wgU1ZHVFJlZkVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDEy
NjQ3ZGZlMzE3OTM2ODM5ZjkxMzM0Yzg4NjVkNzRjNzc2Y2VlZTguLmViM2E1YjdiMDUzMTkxNDRk
ZTQ0NzFkZmEwZmI1ZjBlZDhlODdkZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJSZW5kZXJUcmVlQXNUZXh0LmgiCiAjaW5j
bHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hh
ZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJTcGVsbENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0
SXRlcmF0b3IuaCIKIApAQCAtMTkzLDIwICsxOTQsNDMgQEAgSW50ZXJuYWxzOjpTaGFkb3dSb290
SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBJbnRlcm5hbHM6OmVuc3VyZVNoYWRvd1Jvb3QoRWxl
bWUKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgaWYgKFNoYWRvd1Jvb3QqIHJvb3Qg
PSBob3N0LT5zaGFkb3dSb290KCkpCi0gICAgICAgIHJldHVybiByb290OworICAgIGlmIChob3N0
LT5oYXNTaGFkb3dSb290KCkpCisgICAgICAgIHJldHVybiBob3N0LT5zaGFkb3dSb290TGlzdCgp
LT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsKIAogICAgIHJldHVybiBTaGFkb3dSb290OjpjcmVhdGUo
aG9zdCwgZWMpLmdldCgpOwogfQogCiBJbnRlcm5hbHM6OlNoYWRvd1Jvb3RJZlNoYWRvd0RPTUVu
YWJsZWRPck5vZGUqIEludGVybmFsczo6c2hhZG93Um9vdChFbGVtZW50KiBob3N0LCBFeGNlcHRp
b25Db2RlJiBlYykKIHsKKyAgICAvLyBGSVhNRTogSW50ZXJuYWxzOjpzaGFkb3dSb290KCkgaW4g
dGVzdHMgc2hvdWxkIGJlIGNvbnZlcnRlZCB0byB5b3VuZ2VzdFNoYWRvd1Jvb3QoKSBvciBvbGRl
c3RTaGFkb3dSb290KCkuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc4NDY1CisgICAgcmV0dXJuIHlvdW5nZXN0U2hhZG93Um9vdChob3N0LCBlYyk7Cit9
CisKK0ludGVybmFsczo6U2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogSW50ZXJu
YWxzOjp5b3VuZ2VzdFNoYWRvd1Jvb3QoRWxlbWVudCogaG9zdCwgRXhjZXB0aW9uQ29kZSYgZWMp
Cit7CiAgICAgaWYgKCFob3N0KSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwog
ICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICByZXR1cm4gaG9zdC0+c2hhZG93Um9vdCgp
OworICAgIGlmICghaG9zdC0+aGFzU2hhZG93Um9vdCgpKQorICAgICAgICByZXR1cm4gMDsKKwor
ICAgIHJldHVybiBob3N0LT5zaGFkb3dSb290TGlzdCgpLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsK
K30KKworSW50ZXJuYWxzOjpTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBJbnRl
cm5hbHM6Om9sZGVzdFNoYWRvd1Jvb3QoRWxlbWVudCogaG9zdCwgRXhjZXB0aW9uQ29kZSYgZWMp
Cit7CisgICAgaWYgKCFob3N0KSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwor
ICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBpZiAoIWhvc3QtPmhhc1NoYWRvd1Jvb3Qo
KSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gaG9zdC0+c2hhZG93Um9vdExpc3Qo
KS0+b2xkZXN0U2hhZG93Um9vdCgpOwogfQogCiB2b2lkIEludGVybmFsczo6cmVtb3ZlU2hhZG93
Um9vdChFbGVtZW50KiBob3N0LCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oCmluZGV4IDQzOWRjNzVjNmUxNWZiY2FlODJjNjdjYWZlNzlmMGIyMWFmZGJlMGUu
LmQzOGQ4ODBhMmY4M2I5ODliODk4MzNmY2ZlMDQ0NTI1NzUxNzU4YWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaApAQCAtNjYsNiArNjYsOCBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICBT
aGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBlbnN1cmVTaGFkb3dSb290KEVsZW1l
bnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBTaGFkb3dSb290SWZTaGFkb3dET01FbmFi
bGVkT3JOb2RlKiBzaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmKTsKKyAg
ICBTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiB5b3VuZ2VzdFNoYWRvd1Jvb3Qo
RWxlbWVudCogaG9zdCwgRXhjZXB0aW9uQ29kZSYpOworICAgIFNoYWRvd1Jvb3RJZlNoYWRvd0RP
TUVuYWJsZWRPck5vZGUqIG9sZGVzdFNoYWRvd1Jvb3QoRWxlbWVudCogaG9zdCwgRXhjZXB0aW9u
Q29kZSYpOwogICAgIHZvaWQgcmVtb3ZlU2hhZG93Um9vdChFbGVtZW50KiBob3N0LCBFeGNlcHRp
b25Db2RlJik7CiAgICAgRWxlbWVudCogaW5jbHVkZXJGb3IoTm9kZSosIEV4Y2VwdGlvbkNvZGUm
KTsKICAgICBTdHJpbmcgc2hhZG93UHNldWRvSWQoRWxlbWVudCosIEV4Y2VwdGlvbkNvZGUmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA5YmYwNTc1MWQ5YjZhMmY0YTgx
ZjA3MDk5YzkzYzdhNmQzYThhMDUzLi43NTY3NmY2YWEyYjc5MmQ2NTBkYjViZjcxMWFlODQ5NDgx
NmI3Nzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0zNSw5ICszNSwx
MyBAQCBtb2R1bGUgd2luZG93IHsKICNpZiBkZWZpbmVkKEVOQUJMRV9TSEFET1dfRE9NKQogICAg
ICAgICBTaGFkb3dSb290IGVuc3VyZVNoYWRvd1Jvb3QoaW4gRWxlbWVudCBob3N0KSByYWlzZXMg
KERPTUV4Y2VwdGlvbik7CiAgICAgICAgIFNoYWRvd1Jvb3Qgc2hhZG93Um9vdChpbiBFbGVtZW50
IGhvc3QpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgU2hhZG93Um9vdCB5b3VuZ2Vz
dFNoYWRvd1Jvb3QoaW4gRWxlbWVudCBob3N0KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAg
ICAgIFNoYWRvd1Jvb3Qgb2xkZXN0U2hhZG93Um9vdChpbiBFbGVtZW50IGhvc3QpIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKICNlbHNlCiAgICAgICAgIE5vZGUgZW5zdXJlU2hhZG93Um9vdChpbiBF
bGVtZW50IGhvc3QpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgTm9kZSBzaGFkb3dS
b290KGluIEVsZW1lbnQgaG9zdCkgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBOb2Rl
IHlvdW5nZXN0U2hhZG93Um9vdChpbiBFbGVtZW50IGhvc3QpIHJhaXNlcyAoRE9NRXhjZXB0aW9u
KTsKKyAgICAgICAgTm9kZSBvbGRlc3RTaGFkb3dSb290KGluIEVsZW1lbnQgaG9zdCkgcmFpc2Vz
IChET01FeGNlcHRpb24pOwogI2VuZGlmCiAgICAgICAgIEVsZW1lbnQgaW5jbHVkZXJGb3IoaW4g
Tm9kZSBub2RlKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgcmVtb3ZlU2hh
ZG93Um9vdChpbiBFbGVtZW50IGhvc3QpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9X
ZWJLaXQyLmRlZgppbmRleCA3NjgzMGUwMWM5ZGM0MzYxNTVmMjJjZGNmYjViNjM4NTgwYTlhZjM4
Li5mZmQ4ZWQ5NTFmNGNjZjFmOWYxYjVhYTZiMjUwZWQyYzA2ZTIwOWM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dl
YktpdDIuZGVmCkBAIC0xNjMsNiArMTYzLDcgQEAgRVhQT1JUUwogICAgICAgICA/Z2V0RGF0YTE2
U2xvd0Nhc2VAU3RyaW5nSW1wbEBXVEZAQEFCRVBCX1dYWgogICAgICAgICA/Z2V0RWxlbWVudEJ5
SWRAVHJlZVNjb3BlQFdlYkNvcmVAQFFCRVBBVkVsZW1lbnRAMkBBQlZBdG9taWNTdHJpbmdAV1RG
QEBAWgogICAgICAgICA/Z2V0TG9jYXRpb25BbmRMZW5ndGhGcm9tUmFuZ2VAVGV4dEl0ZXJhdG9y
QFdlYkNvcmVAQFNBX05QQVZFbGVtZW50QDJAUEJWUmFuZ2VAMkBBQUkyQFoKKyAgICAgICAgP2hh
c1NoYWRvd1Jvb3RARWxlbWVudEBXZWJDb3JlQEBRQkVfTlhaCiAgICAgICAgID9pc1ByZWxvYWRl
ZEBDYWNoZWRSZXNvdXJjZUxvYWRlckBXZWJDb3JlQEBRQkVfTkFCVlN0cmluZ0BXVEZAQEBaCiAg
ICAgICAgID9qc1N0cmluZ1Nsb3dDYXNlQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBBVkV4
ZWNTdGF0ZUAzQEFBVj8kSGFzaE1hcEBQQVZTdHJpbmdJbXBsQFdURkBAVj8kV2Vha0BWSlNTdHJp
bmdASlNDQEBASlNDQEBVU3RyaW5nSGFzaEAyQFU/JEhhc2hUcmFpdHNAUEFWU3RyaW5nSW1wbEBX
VEZAQEAyQFU/JEhhc2hUcmFpdHNAVj8kV2Vha0BWSlNTdHJpbmdASlNDQEBASlNDQEBAMkBAV1RG
QEBQQVZTdHJpbmdJbXBsQDZAQFoKICAgICAgICAgP2xhc3RDaGFuZ2VXYXNVc2VyRWRpdEBIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudEBXZWJDb3JlQEBRQkVfTlhaCkBAIC0xODcsNyArMTg4LDcg
QEAgRVhQT1JUUwogICAgICAgICA/c2V0dGluZ3NARG9jdW1lbnRAV2ViQ29yZUBAUUJFUEFWU2V0
dGluZ3NAMkBYWgogICAgICAgICA/c2V0dGluZ3NARnJhbWVAV2ViQ29yZUBAUUJFUEFWU2V0dGlu
Z3NAMkBYWgogICAgICAgICA/c2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZUBT
ZXR0aW5nc0BXZWJDb3JlQEBRQUVYX05AWgotICAgICAgICA/c2hhZG93Um9vdEBFbGVtZW50QFdl
YkNvcmVAQFFCRVBBVlNoYWRvd1Jvb3RAMkBYWgorICAgICAgICA/c2hhZG93Um9vdExpc3RARWxl
bWVudEBXZWJDb3JlQEBRQkVQQVZTaGFkb3dSb290TGlzdEAyQFhaCiAgICAgICAgID9zdWdnZXN0
ZWRWYWx1ZUBIVE1MSW5wdXRFbGVtZW50QFdlYkNvcmVAQFFCRUFCVlN0cmluZ0BXVEZAQFhaCiAg
ICAgICAgID90b0RvY3VtZW50QFdlYkNvcmVAQFlBUEFWRG9jdW1lbnRAMUBWSlNWYWx1ZUBKU0NA
QEBaCiAgICAgICAgID90b0VsZW1lbnRAV2ViQ29yZUBAWUFQQVZFbGVtZW50QDFAVkpTVmFsdWVA
SlNDQEBAWgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVm
IGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCmluZGV4IDNhOTI3YzI3Y2Vl
NjlmY2FjMmE0NjY4NmQ4NzE0MGQyMTNjMzIzMDUuLjU1ZWNhMzA2ZGQzYTI2MjRhNzcxMWY1ZDM4
YzEyYzU1YzRlMDQ3MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZM
aXRlLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKQEAgLTEs
MyArMSw0IEBACisKIEVYUE9SVFMKICAgICAgICAgRGxsR2V0Q2xhc3NPYmplY3QgICBQUklWQVRF
CiAgICAgICAgIERsbENhblVubG9hZE5vdyAgICAgUFJJVkFURQpAQCAtMTU3LDYgKzE1OCw3IEBA
IEVYUE9SVFMKICAgICAgICAgP2dldERhdGExNlNsb3dDYXNlQFN0cmluZ0ltcGxAV1RGQEBBQkVQ
Ql9XWFoKICAgICAgICAgP2dldEVsZW1lbnRCeUlkQFRyZWVTY29wZUBXZWJDb3JlQEBRQkVQQVZF
bGVtZW50QDJAQUJWQXRvbWljU3RyaW5nQFdURkBAQFoKICAgICAgICAgP2dldExvY2F0aW9uQW5k
TGVuZ3RoRnJvbVJhbmdlQFRleHRJdGVyYXRvckBXZWJDb3JlQEBTQV9OUEFWRWxlbWVudEAyQFBC
VlJhbmdlQDJAQUFJMkBaCisgICAgICAgID9oYXNTaGFkb3dSb290QEVsZW1lbnRAV2ViQ29yZUBA
UUJFX05YWgogICAgICAgICA/aXNQcmVsb2FkZWRAQ2FjaGVkUmVzb3VyY2VMb2FkZXJAV2ViQ29y
ZUBAUUJFX05BQlZTdHJpbmdAV1RGQEBAWgogICAgICAgICA/anNTdHJpbmdTbG93Q2FzZUBXZWJD
b3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQQVZFeGVjU3RhdGVAM0BBQVY/JEhhc2hNYXBAUEFWU3Ry
aW5nSW1wbEBXVEZAQFY/JFdlYWtAVkpTU3RyaW5nQEpTQ0BAQEpTQ0BAVVN0cmluZ0hhc2hAMkBV
PyRIYXNoVHJhaXRzQFBBVlN0cmluZ0ltcGxAV1RGQEBAMkBVPyRIYXNoVHJhaXRzQFY/JFdlYWtA
VkpTU3RyaW5nQEpTQ0BAQEpTQ0BAQDJAQFdURkBAUEFWU3RyaW5nSW1wbEA2QEBaCiAgICAgICAg
ID9sYXN0Q2hhbmdlV2FzVXNlckVkaXRASFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnRAV2ViQ29y
ZUBAUUJFX05YWgpAQCAtMTgxLDcgKzE4Myw3IEBAIEVYUE9SVFMKICAgICAgICAgP3NldHRpbmdz
QERvY3VtZW50QFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJAWFoKICAgICAgICAgP3NldHRpbmdz
QEZyYW1lQFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJAWFoKICAgICAgICAgP3NldEZpeGVkRWxl
bWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWVAU2V0dGluZ3NAV2ViQ29yZUBAUUFFWF9OQFoKLSAg
ICAgICAgP3NoYWRvd1Jvb3RARWxlbWVudEBXZWJDb3JlQEBRQkVQQVZTaGFkb3dSb290QDJAWFoK
KyAgICAgICAgP3NoYWRvd1Jvb3RMaXN0QEVsZW1lbnRAV2ViQ29yZUBAUUJFUEFWU2hhZG93Um9v
dExpc3RAMkBYWgogICAgICAgICA/c3VnZ2VzdGVkVmFsdWVASFRNTElucHV0RWxlbWVudEBXZWJD
b3JlQEBRQkVBQlZTdHJpbmdAV1RGQEBYWgogICAgICAgICA/dG9Eb2N1bWVudEBXZWJDb3JlQEBZ
QVBBVkRvY3VtZW50QDFAVkpTVmFsdWVASlNDQEBAWgogICAgICAgICA/dG9FbGVtZW50QFdlYkNv
cmVAQFlBUEFWRWxlbWVudEAxQFZKU1ZhbHVlQEpTQ0BAQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9h
dXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVy
CmluZGV4IDVlOWViMzRjZTU0NzIxMTgyMTYzODQ5ODRkZjA0ZGFjM2QxNWYwOGUuLjQyNjQzNDk1
M2QwYzA5ODcyZTlkNDM3ZmNmOGY5OTQ2Y2M3NWUxNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRv
dG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRl
cgpAQCAtNzgsOCArNzgsOSBAQCBfWk5LN1dlYkNvcmUyMENhY2hlZFJlc291cmNlTG9hZGVyMTFp
c1ByZWxvYWRlZEVSS04zV1RGNlN0cmluZ0U7CiBfWk5LN1dlYkNvcmUyNkhUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50MjFsYXN0Q2hhbmdlV2FzVXNlckVkaXRFdjsKIF9aTks3V2ViQ29yZTVGcmFt
ZThzZXR0aW5nc0V2OwogX1pOSzdXZWJDb3JlNkpTTm9kZTIxcHVzaEV2ZW50SGFuZGxlclNjb3Bl
RVBOM0pTQzlFeGVjU3RhdGVFUE5TMV8xNFNjb3BlQ2hhaW5Ob2RlRTsKLV9aTks3V2ViQ29yZTdF
bGVtZW50MTBzaGFkb3dSb290RXY7CiBfWk5LN1dlYkNvcmU3RWxlbWVudDMxbnVtYmVyT2ZTY29w
ZWRIVE1MU3R5bGVDaGlsZHJlbkV2OworX1pOSzdXZWJDb3JlN0VsZW1lbnQxM2hhc1NoYWRvd1Jv
b3RFdjsKK19aTks3V2ViQ29yZTdFbGVtZW50MTRzaGFkb3dSb290TGlzdEV2OwogX1pOSzdXZWJD
b3JlOERvY3VtZW50NHBhZ2VFdjsKIF9aTks3V2ViQ29yZThEb2N1bWVudDhzZXR0aW5nc0V2Owog
X1pOSzdXZWJDb3JlOERvY3VtZW50NHZpZXdFdjsKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0No
YW5nZUxvZwppbmRleCAzZTZhNzA5MzY4YjU1NWZiNDcwZDE3YjI5ODAxODdhNWQzMWQ5YTUzLi42
NWI3M2U4NDNkZDNkMGY1ZDE3Y2RhZDQxYTA5MGVjNjhmYTQ4MmEzIDEwMDY0NAotLS0gYS9DaGFu
Z2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDItMTQgIFNoaW55
YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBVc2UgeW91bmdlc3RT
aGFkb3dSb290IGFuZCBvbGRlc3RTaGFkb3dSb290IGluc3RlYWQgb2YgRWxlbWVudDo6c2hhZG93
Um9vdCgpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Nzg0NTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBF
eHBvcnRzIG5lY2Vzc2FyeSBzeW1ib2xzLgorCisgICAgICAgICogU291cmNlL2F1dG90b29scy9z
eW1ib2xzLmZpbHRlcjoKKwogMjAxMi0wMi0xMyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0
Lm9yZz4KIAogICAgICAgICBZZXQgYW5vdGhlciBwZXJmLW8tbWF0aWMgYnVpbGQgZml4LiBJdCB0
dXJucyBvdXQgdGhhdCBhIHRhc2sgb2YgdGhlIHNhbWUgbmFtZSBjYW4ndCBiZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126932</attachid>
            <date>2012-02-14 01:34:00 -0800</date>
            <delta_ts>2012-02-14 04:48:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78455-20120214183358.patch</filename>
            <type>text/plain</type>
            <size>50094</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzAzYTAxNDQ1N2Q2MDdh
MjcxYzM1Zjc2MzFjNDcwZDk4M2NjNTc3YS4uYTI0YjEyNmEzNjlmZGFiYmJmYWQzN2YxMzcwOTA5
MWFhNTBkZmUzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMyBAQAorMjAxMi0wMi0xNCAgU2hp
bnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgorCisgICAgICAgIFVzZSB5b3VuZ2Vz
dFNoYWRvd1Jvb3QgYW5kIG9sZGVzdFNoYWRvd1Jvb3QgaW5zdGVhZCBvZiBFbGVtZW50OjpzaGFk
b3dSb290KCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03ODQ1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEVsZW1lbnQ6OnNoYWRvd1Jvb3QoKSB3YXMgdXNlZCBmb3IgdGhlc2UgMyBwdXJwb3Nlcy4KKyAg
ICAgICAgMS4gY2hlY2tzIGEgc2hhZG93IHJvb3QgZXhpc3RzLgorICAgICAgICAyLiBnZXRzIGF1
dGhvciBzaGFkb3cgcm9vdC4KKyAgICAgICAgMy4gZ2V0cyB1c2VyIGFnZW50IHNoYWRvdyByb290
LgorCisgICAgICAgIFdlIGhhdmUgdG8gZGlzdGluZ3Vpc2ggdGhlbSB3aGVuIGltcGxlbWVudGlu
ZyBtdWx0aXBsZSBzaGFkb3cgc3VidHJlZXMuCisKKyAgICAgICAgQ2FsbGluZyBmb3IgKDEpLCAo
MiksIGFuZCAoMykgYXJlIGNvbnZlcmVkIHRvIGhhc1NoYWRvd1Jvb3QoKSwKKyAgICAgICAgU2hh
ZG93Um9vdExpc3QoKS0+eW91bmdlc3RTaGFkb3dSb290KCksIGFuZCBTaGFkb3dSb290TGlzdCgp
LT5vbGRlc3RTaGFkb3dSb290KCkgcmVzcGVjdGl2ZWx5LgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cywgbm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpi
dWlsZEFjY2Vzc0tleU1hcCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjppbnNlcnRlZEludG9UcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJlbW92
ZWRGcm9tVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjphdHRhY2gpOgorICAgICAg
ICAoV2ViQ29yZTo6RWxlbWVudDo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6
OnJlY2FsY1N0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmVuc3VyZVNoYWRvd1Jv
b3QpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmZvY3VzKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgor
ICAgICAgICAoRWxlbWVudCk6CisgICAgICAgICogZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjppc1NoYWRvd0hvc3QpOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnNoYWRvd1Jvb3QpOgorICAgICAgICAqIGRvbS9Ob2RlUmVuZGVy
aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmVuZGVyaW5nQ29udGV4dDo6
Tm9kZVJlbmRlcmluZ0NvbnRleHQpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL1NoYWRv
d1Jvb3RMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3RMaXN0OjppbnNlcnRl
ZEludG9Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3RMaXN0OjpyZW1vdmVkRnJvbURvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3RMaXN0OjppbnNlcnRlZEludG9UcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d1Jvb3RMaXN0OjpyZW1vdmVkRnJvbVRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9v
dExpc3Q6Omhvc3RDaGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9v
dExpc3Q6OmF0dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290TGlzdDo6ZGV0YWNo
KToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdExpc3QuaDoKKyAgICAgICAgKFNoYWRvd1Jvb3RM
aXN0KToKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlQWRvcHRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpzaGFkb3dSb290Rm9yKToKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjptdWx0aXBsZUF0dHJpYnV0ZUNoYW5nZWQp
OgorICAgICAgICAqIGh0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxEZXRhaWxzRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRGV0YWlsc0VsZW1lbnQ6OmZpbmRNYWluU3VtbWFyeSk6CisgICAgICAgICog
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVs
ZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvSFRNTEtleWdlbkVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEtleWdlbkVsZW1lbnQ6OkhUTUxLZXln
ZW5FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxLZXlnZW5FbGVtZW50OjpzaGFkb3dT
ZWxlY3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6Omhhc01lZGlhQ29udHJvbHMpOgorICAgICAgICAqIGh0bWwv
SFRNTE1ldGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0ZXJFbGVtZW50
OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL0hUTUxQcm9ncmVzc0VsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb2dyZXNzRWxlbWVudDo6Y3JlYXRlU2hh
ZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFN1bW1hcnlFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToK
KyAgICAgICAgKiBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Ojppbm5lclRleHRFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCk6Cisg
ICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBl
OjpkZXN0cm95U2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9SYW5nZUlucHV0VHlwZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6aGFuZGxlTW91c2VEb3duRXZl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRy
ZWUpOgorICAgICAgICAqIGh0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCk6Cisg
ICAgICAgICogaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpW
YWxpZGF0aW9uTWVzc2FnZTo6ZGVsZXRlQnViYmxlVHJlZSk6CisgICAgICAgICogaHRtbC9zaGFk
b3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNsaWRlclRodW1i
RWxlbWVudE9mKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlckNvbnRhaW5lcjo6bGF5
b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OnRyYWNrTGltaXRlckVsZW1lbnRPZik6CisgICAgICAg
ICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hhZG93Um9v
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckZpbGVVcGxvYWRDb250cm9sOjp1cGxvYWRCdXR0b24pOgor
ICAgICAgICAqIHN2Zy9TVkdUUmVmRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdU
UmVmRWxlbWVudDo6dXBkYXRlUmVmZXJlbmNlZFRleHQpOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZW5zdXJlU2hhZG93Um9v
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNoYWRvd1Jvb3QpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnlvdW5nZXN0U2hhZG93Um9v
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om9sZGVzdFNoYWRvd1Jvb3QpOgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgIChJbnRlcm5hbHMpOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMi0wMi0xMyAgU2hpbnlhIEthd2FuYWth
ICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1JlZ3Jlc3Npb25dIHIxMDc2NTAg
YnJva2UgdGhlIHdpbmRvd3MgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmFiZjA4MDUzN2EzMDA5ODMx
OWVlMDI3ZjBlNTFjZDFmY2NhMGI2My4uZmMyZGY5YmY2ZjA0YjA0NDFlOGM1ZTVmMGVjZTNmY2Vl
N2Q5YzA3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAyLTE0ICBTaGlueWEg
S2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgVXNlIHlvdW5nZXN0U2hh
ZG93Um9vdCBhbmQgb2xkZXN0U2hhZG93Um9vdCBpbnN0ZWFkIG9mIEVsZW1lbnQ6OnNoYWRvd1Jv
b3QoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4
NDU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhw
b3J0cyBuZWNlc2Fycnkgc3ltYm9scy4KKworICAgICAgICAqIHdpbi9XZWJLaXQyLmRlZjoKKyAg
ICAgICAgKiB3aW4vV2ViS2l0MkNGTGl0ZS5kZWY6CisKIDIwMTItMDItMTMgIEVucmljYSBDYXN1
Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3RvciBNYWMgcGxhdGZvcm0g
aW1wbGVtZW50YXRpb24gb2YgdGhlIFBhc3RlYm9hcmQgY2xhc3MgdG8gdXNlIFBsYXRmb3JtIFN0
cmF0ZWdpZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDQ4Nzc5N2Q3ZGU3MmU3NzVlNzIwOTNm
MjYzOTAxZWM3OWYwMzE3YzguLjQzOWZhMTlkMzU5MTlmOTM4ZTQwZmE0MmUyNjg1MjQyODk3YmQ4
M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xNDM0LDggKzE0MzQsOSBAQCBfX1pOSzdXZWJD
b3JlNldpZGdldDI1Y29udmVydFRvQ29udGFpbmluZ1dpbmRvd0VSS05TXzdJbnRSZWN0RQogX19a
Tks3V2ViQ29yZTZXaWRnZXQyNWNvbnZlcnRUb0NvbnRhaW5pbmdXaW5kb3dFUktOU184SW50UG9p
bnRFCiBfX1pOSzdXZWJDb3JlNldpZGdldDlmcmFtZVJlY3RFdgogX19aTks3V2ViQ29yZTdFbGVt
ZW50MTBzY3JlZW5SZWN0RXYKLV9fWk5LN1dlYkNvcmU3RWxlbWVudDEwc2hhZG93Um9vdEV2CiBf
X1pOSzdXZWJDb3JlN0VsZW1lbnQxMmdldEF0dHJpYnV0ZUVSS05TXzEzUXVhbGlmaWVkTmFtZUUK
K19fWk5LN1dlYkNvcmU3RWxlbWVudDEzaGFzU2hhZG93Um9vdEV2CitfX1pOSzdXZWJDb3JlN0Vs
ZW1lbnQxNHNoYWRvd1Jvb3RMaXN0RXYKIF9fWk5LN1dlYkNvcmU3SW50UmVjdDEwaW50ZXJzZWN0
c0VSS1MwXwogX19aTks3V2ViQ29yZTdJbnRSZWN0OGNvbnRhaW5zRVJLUzBfCiBfX1pOSzdXZWJD
b3JlN0ludFJlY3RjdjZDR1JlY3RFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYTE1YmVj
ZjdkOGZiMmQzY2ZlNjhmMjZhZGEyMjk0OThmMDNhMzlmMC4uMzBiZjViZmNiMWNmMTYyYzVlYTNi
NjNhZjZkMzQ1NDk5MmFhOTdjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMzcsNiAr
MTM3LDcgQEAKICNpbmNsdWRlICJTZWdtZW50ZWRTdHJpbmcuaCIKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5o
IgogI2luY2x1ZGUgIlN0YXRpY0hhc2hTZXROb2RlTGlzdC5oIgogI2luY2x1ZGUgIlN0eWxlU2hl
ZXRMaXN0LmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgpAQCAtNjY2LDggKzY2
NywxMSBAQCB2b2lkIERvY3VtZW50OjpidWlsZEFjY2Vzc0tleU1hcChUcmVlU2NvcGUqIHNjb3Bl
KQogICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGFjY2Vzc0tleSA9IGVsZW1lbnQtPmdldEF0
dHJpYnV0ZShhY2Nlc3NrZXlBdHRyKTsKICAgICAgICAgaWYgKCFhY2Nlc3NLZXkuaXNFbXB0eSgp
KQogICAgICAgICAgICAgbV9lbGVtZW50c0J5QWNjZXNzS2V5LnNldChhY2Nlc3NLZXkuaW1wbCgp
LCBlbGVtZW50KTsKLSAgICAgICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSBlbGVtZW50
LT5zaGFkb3dSb290KCkpCi0gICAgICAgICAgICBidWlsZEFjY2Vzc0tleU1hcChzaGFkb3dSb290
KTsKKworICAgICAgICBpZiAoZWxlbWVudC0+aGFzU2hhZG93Um9vdCgpKSB7CisgICAgICAgICAg
ICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSBlbGVtZW50LT5zaGFkb3dSb290TGlzdCgpLT55b3Vu
Z2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQor
ICAgICAgICAgICAgICAgIGJ1aWxkQWNjZXNzS2V5TWFwKHJvb3QpOworICAgICAgICB9CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggY2Y5M2M2Mjc2MDk1OTc5NzgyMzg2YTUw
N2EyMGFhZGY5YjMzMzBlZi4uYmJjODgyMTk3MDQyMjI2NTI2MDBmODYxN2E3NzFmOGM4MTZmZmY1
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtODczLDggKzg3Myw4IEBAIHZvaWQgRWxlbWVu
dDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKQogICAgIC8vIG5lZWQgdG8gZG8gc3VwZXJjbGFzcyBw
cm9jZXNzaW5nIGZpcnN0IHNvIGluRG9jdW1lbnQoKSBpcyB0cnVlCiAgICAgLy8gYnkgdGhlIHRp
bWUgd2UgcmVhY2ggdXBkYXRlSWQKICAgICBDb250YWluZXJOb2RlOjppbnNlcnRlZEludG9Eb2N1
bWVudCgpOwotICAgIGlmIChTaGFkb3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290KCkpCi0gICAg
ICAgIHNoYWRvdy0+aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKKyAgICBpZiAoU2hhZG93Um9vdExp
c3QqIHNoYWRvd1Jvb3RzID0gc2hhZG93Um9vdExpc3QoKSkKKyAgICAgICAgc2hhZG93Um9vdHMt
Pmluc2VydGVkSW50b0RvY3VtZW50KCk7CiAKICAgICBpZiAobV9hdHRyaWJ1dGVNYXApIHsKICAg
ICAgICAgaWYgKGhhc0lEKCkpIHsKQEAgLTkwNiw4ICs5MDYsOCBAQCB2b2lkIEVsZW1lbnQ6OnJl
bW92ZWRGcm9tRG9jdW1lbnQoKQogICAgIH0KIAogICAgIENvbnRhaW5lck5vZGU6OnJlbW92ZWRG
cm9tRG9jdW1lbnQoKTsKLSAgICBpZiAoU2hhZG93Um9vdCogc2hhZG93ID0gc2hhZG93Um9vdCgp
KQotICAgICAgICBzaGFkb3ctPnJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKKyAgICBpZiAoU2hhZG93
Um9vdExpc3QqIHNoYWRvd1Jvb3RzID0gc2hhZG93Um9vdExpc3QoKSkKKyAgICAgICAgc2hhZG93
Um9vdHMtPnJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKIH0KIAogdm9pZCBFbGVtZW50OjppbnNlcnRl
ZEludG9UcmVlKGJvb2wgZGVlcCkKQEAgLTkxNSw4ICs5MTUsOCBAQCB2b2lkIEVsZW1lbnQ6Omlu
c2VydGVkSW50b1RyZWUoYm9vbCBkZWVwKQogICAgIENvbnRhaW5lck5vZGU6Omluc2VydGVkSW50
b1RyZWUoZGVlcCk7CiAgICAgaWYgKCFkZWVwKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKFNo
YWRvd1Jvb3QqIHNoYWRvdyA9IHNoYWRvd1Jvb3QoKSkKLSAgICAgICAgc2hhZG93LT5pbnNlcnRl
ZEludG9UcmVlKHRydWUpOworICAgIGlmIChTaGFkb3dSb290TGlzdCogc2hhZG93Um9vdHMgPSBz
aGFkb3dSb290TGlzdCgpKQorICAgICAgICBzaGFkb3dSb290cy0+aW5zZXJ0ZWRJbnRvVHJlZSh0
cnVlKTsKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBpZiAoY29udGFpbnNGdWxs
U2NyZWVuRWxlbWVudCgpICYmIHBhcmVudEVsZW1lbnQoKSAmJiAhcGFyZW50RWxlbWVudCgpLT5j
b250YWluc0Z1bGxTY3JlZW5FbGVtZW50KCkpCkBAIC05MjksOCArOTI5LDggQEAgdm9pZCBFbGVt
ZW50OjpyZW1vdmVkRnJvbVRyZWUoYm9vbCBkZWVwKQogICAgIENvbnRhaW5lck5vZGU6OnJlbW92
ZWRGcm9tVHJlZShkZWVwKTsKICAgICBpZiAoIWRlZXApCiAgICAgICAgIHJldHVybjsKLSAgICBp
ZiAoU2hhZG93Um9vdCogc2hhZG93ID0gc2hhZG93Um9vdCgpKQotICAgICAgICBzaGFkb3ctPnJl
bW92ZWRGcm9tVHJlZSh0cnVlKTsKKyAgICBpZiAoU2hhZG93Um9vdExpc3QqIHNoYWRvd1Jvb3Rz
ID0gc2hhZG93Um9vdExpc3QoKSkKKyAgICAgICAgc2hhZG93Um9vdHMtPnJlbW92ZWRGcm9tVHJl
ZSh0cnVlKTsKIH0KIAogdm9pZCBFbGVtZW50OjphdHRhY2goKQpAQCAtOTQyLDEwICs5NDIsMTAg
QEAgdm9pZCBFbGVtZW50OjphdHRhY2goKQogICAgIFN0eWxlU2VsZWN0b3JQYXJlbnRQdXNoZXIg
cGFyZW50UHVzaGVyKHRoaXMpOwogCiAgICAgLy8gV2hlbiBhIHNoYWRvdyByb290IGV4aXN0cywg
aXQgZG9lcyB0aGUgd29yayBvZiBhdHRhY2hpbmcgdGhlIGNoaWxkcmVuLgotICAgIGlmIChTaGFk
b3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290KCkpIHsKKyAgICBpZiAoaGFzU2hhZG93Um9vdCgp
KSB7CiAgICAgICAgIHBhcmVudFB1c2hlci5wdXNoKCk7CiAgICAgICAgIE5vZGU6OmF0dGFjaCgp
OwotICAgICAgICBzaGFkb3ctPmF0dGFjaCgpOworICAgICAgICBzaGFkb3dSb290TGlzdCgpLT5h
dHRhY2goKTsKIAogICAgICAgICAvLyBJbiBhIHNoYWRvdyB0cmVlLCBzb21lIG9mIGxpZ2h0IGNo
aWxkcmVuIG1heSBiZSBhdHRhY2hlZCBieSAnY29udGVudCcgZWxlbWVudC4KICAgICAgICAgLy8g
SG93ZXZlciwgd2hlbiB0aGVyZSBpcyBubyBjb250ZW50IGVsZW1lbnQgb3IgY29udGVudCBlbGVt
ZW50IGRvZXMgbm90IHNlbGVjdApAQCAtOTgxLDggKzk4MSw4IEBAIHZvaWQgRWxlbWVudDo6ZGV0
YWNoKCkKICAgICBpZiAoaGFzUmFyZURhdGEoKSkKICAgICAgICAgcmFyZURhdGEoKS0+cmVzZXRD
b21wdXRlZFN0eWxlKCk7CiAgICAgQ29udGFpbmVyTm9kZTo6ZGV0YWNoKCk7Ci0gICAgaWYgKFNo
YWRvd1Jvb3QqIHNoYWRvdyA9IHNoYWRvd1Jvb3QoKSkKLSAgICAgICAgc2hhZG93LT5kZXRhY2go
KTsKKyAgICBpZiAoU2hhZG93Um9vdExpc3QqIHNoYWRvd1Jvb3RzID0gc2hhZG93Um9vdExpc3Qo
KSkKKyAgICAgICAgc2hhZG93Um9vdHMtPmRldGFjaCgpOwogCiAgICAgUmVuZGVyV2lkZ2V0Ojpy
ZXN1bWVXaWRnZXRIaWVyYXJjaHlVcGRhdGVzKCk7CiB9CkBAIC0xMTQxLDcgKzExNDEsOCBAQCB2
b2lkIEVsZW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKICAgICAgICAgZm9y
Y2VDaGVja09mQW55RWxlbWVudFNpYmxpbmcgPSBmb3JjZUNoZWNrT2ZBbnlFbGVtZW50U2libGlu
ZyB8fCAoY2hpbGRSdWxlc0NoYW5nZWQgJiYgaGFzSW5kaXJlY3RBZGphY2VudFJ1bGVzKTsKICAg
ICB9CiAgICAgLy8gRklYTUU6IFRoaXMgZG9lcyBub3QgY2FyZSBhYm91dCBzaWJsaW5nIGNvbWJp
bmF0b3JzLiBXaWxsIGJlIG5lY2Vzc2FyeSBpbiBYQkwyIHdvcmxkLgotICAgIGlmIChTaGFkb3dS
b290KiBzaGFkb3cgPSBzaGFkb3dSb290KCkpIHsKKyAgICBpZiAoaGFzU2hhZG93Um9vdCgpKSB7
CisgICAgICAgIFNoYWRvd1Jvb3QqIHNoYWRvdyA9IHNoYWRvd1Jvb3RMaXN0KCktPnlvdW5nZXN0
U2hhZG93Um9vdCgpOwogICAgICAgICBpZiAoY2hhbmdlID49IEluaGVyaXQgfHwgc2hhZG93LT5j
aGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB8fCBzaGFkb3ctPm5lZWRzU3R5bGVSZWNhbGMoKSkgewog
ICAgICAgICAgICAgcGFyZW50UHVzaGVyLnB1c2goKTsKICAgICAgICAgICAgIHNoYWRvdy0+cmVj
YWxjU2hhZG93VHJlZVN0eWxlKGNoYW5nZSk7CkBAIC0xMTcwLDEzICsxMTcxLDYgQEAgU2hhZG93
Um9vdExpc3QqIEVsZW1lbnQ6OnNoYWRvd1Jvb3RMaXN0KCkgY29uc3QKICAgICByZXR1cm4gJnJh
cmVEYXRhKCktPm1fc2hhZG93Um9vdExpc3Q7CiB9CiAKLVNoYWRvd1Jvb3QqIEVsZW1lbnQ6OnNo
YWRvd1Jvb3QoKSBjb25zdAotewotICAgIGlmIChTaGFkb3dSb290TGlzdCogbGlzdCA9IHNoYWRv
d1Jvb3RMaXN0KCkpCi0gICAgICAgIHJldHVybiBsaXN0LT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsK
LSAgICByZXR1cm4gMDsKLX0KLQogc3RhdGljIGJvb2wgdmFsaWRhdGVTaGFkb3dSb290KERvY3Vt
ZW50KiBkb2N1bWVudCwgU2hhZG93Um9vdCogc2hhZG93Um9vdCwgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7CiAgICAgaWYgKCFzaGFkb3dSb290KQpAQCAtMTIxOSw4ICsxMjEzLDggQEAgdm9pZCBFbGVt
ZW50OjpzZXRTaGFkb3dSb290KFBhc3NSZWZQdHI8U2hhZG93Um9vdD4gc2hhZG93Um9vdCwgRXhj
ZXB0aW9uQ29kZSYgZWMKIAogU2hhZG93Um9vdCogRWxlbWVudDo6ZW5zdXJlU2hhZG93Um9vdCgp
CiB7Ci0gICAgaWYgKFNoYWRvd1Jvb3QqIGV4aXN0aW5nUm9vdCA9IHNoYWRvd1Jvb3QoKSkKLSAg
ICAgICAgcmV0dXJuIGV4aXN0aW5nUm9vdDsKKyAgICBpZiAoaGFzU2hhZG93Um9vdCgpKQorICAg
ICAgICByZXR1cm4gc2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpOwogCiAgICAg
cmV0dXJuIFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290OjpDcmVhdGluZ1VzZXJB
Z2VudFNoYWRvd1Jvb3QpLmdldCgpOwogfQpAQCAtMTM4Miw4ICsxMzc2LDggQEAgdm9pZCBFbGVt
ZW50OjpjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIsIE5vZGUqIGJlZm9yZUNo
YW5nZSwgTm9kZSogYWYKICAgICAgICAgY2hlY2tGb3JTaWJsaW5nU3R5bGVDaGFuZ2VzKHRoaXMs
IHJlbmRlclN0eWxlKCksIGZhbHNlLCBiZWZvcmVDaGFuZ2UsIGFmdGVyQ2hhbmdlLCBjaGlsZENv
dW50RGVsdGEpOwogCiAgICAgaWYgKGhhc1JhcmVEYXRhKCkpIHsKLSAgICAgICAgaWYgKFNoYWRv
d1Jvb3QqIHJvb3QgPSBzaGFkb3dSb290KCkpCi0gICAgICAgICAgICByb290LT5ob3N0Q2hpbGRy
ZW5DaGFuZ2VkKCk7CisgICAgICAgIGlmIChTaGFkb3dSb290TGlzdCogbGlzdCA9IHNoYWRvd1Jv
b3RMaXN0KCkpCisgICAgICAgICAgICBsaXN0LT5ob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7CiAgICAg
fQogfQogCkBAIC0xNTgwLDcgKzE1NzQsNyBAQCB2b2lkIEVsZW1lbnQ6OmZvY3VzKGJvb2wgcmVz
dG9yZVByZXZpb3VzU2VsZWN0aW9uKQogICAgICAgICAvLyBJZiBhIGZvY3VzIGV2ZW50IGhhbmRs
ZXIgY2hhbmdlcyB0aGUgZm9jdXMgdG8gYSBkaWZmZXJlbnQgbm9kZSBpdAogICAgICAgICAvLyBk
b2VzIG5vdCBtYWtlIHNlbnNlIHRvIGNvbnRpbnVlIGFuZCB1cGRhdGUgYXBwZWFyZW5jZS4KICAg
ICAgICAgcHJvdGVjdCA9IHRoaXM7Ci0gICAgICAgIGlmIChzaGFkb3dSb290KCkgJiYgcGFnZS0+
Zm9jdXNDb250cm9sbGVyKCktPnRyYW5zZmVyRm9jdXNUb0VsZW1lbnRJblNoYWRvd1Jvb3QodGhp
cywgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uKSkKKyAgICAgICAgaWYgKGhhc1NoYWRvd1Jvb3Qo
KSAmJiBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+dHJhbnNmZXJGb2N1c1RvRWxlbWVudEluU2hh
ZG93Um9vdCh0aGlzLCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pKQogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICBpZiAoIXBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5zZXRGb2N1c2VkTm9k
ZSh0aGlzLCBkb2MtPmZyYW1lKCkpKQogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmgKaW5kZXggZTllNGQ4Yjg5MzhhNDM1ZTM5MGY1YmMxYTRlYjgzNjA0YmVmNGVjZS4uZGQyNzAy
OTUyNTc3MjI4YWNjZjg0YzhlNzFiZjUzZTZiMTY4OWZjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBA
IC0yNTgsNyArMjU4LDYgQEAgcHVibGljOgogCiAgICAgLy8gRklYTUU6IFRoZXNlIEFQSSB3aWxs
IGJlIG1vdmVkIHRvIFNoYWRvd1Jvb3RMaXN0LgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03ODMxMwotICAgIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QoKSBj
b25zdDsKICAgICB2b2lkIHNldFNoYWRvd1Jvb3QoUGFzc1JlZlB0cjxTaGFkb3dSb290PiwgRXhj
ZXB0aW9uQ29kZSYpOwogICAgIFNoYWRvd1Jvb3QqIGVuc3VyZVNoYWRvd1Jvb3QoKTsKICAgICB2
b2lkIHJlbW92ZVNoYWRvd1Jvb3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5j
cHAKaW5kZXggNzU3MzgzMmJhMzM1MGQwZmNiMzNmMTMyZDc5OWJlNjJjN2IxYWIxNy4uM2VlNTI4
NWJjYTEyZTQ0ZDQ1MWEyZjJjYWQxOWJmYmU3NDcxMGYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTEyNyw3ICsxMjcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
aXNTaGFkb3dSb290T3JTVkdTaGFkb3dSb290KGNvbnN0IE5vZGUqIG5vZGUpCiAKIHN0YXRpYyBp
bmxpbmUgYm9vbCBpc1NoYWRvd0hvc3QoTm9kZSogbm9kZSkKIHsKLSAgICByZXR1cm4gbm9kZS0+
aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+c2hhZG93Um9vdCgpOworICAgIHJl
dHVybiBub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KG5vZGUpLT5oYXNTaGFkb3dS
b290KCk7CiB9CiAKIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+IEV2ZW50RGlzcGF0Y2hlcjo6YWRq
dXN0VG9TaGFkb3dCb3VuZGFyaWVzKFBhc3NSZWZQdHI8Tm9kZT4gcmVsYXRlZFRhcmdldCwgY29u
c3QgVmVjdG9yPE5vZGUqPiByZWxhdGVkVGFyZ2V0QW5jZXN0b3JzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmlu
ZGV4IDA3NGNmYTQ2OGYwNGU1MTNmOWVhMGE4NWJjYzlmNDQyNzk2ZDQ1OTUuLjNkOWFjM2U1YjBh
MWEyMTI3NzRiMmYyZTlmNTBmYjhjYTZiYmMwMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTg2LDYg
Kzg2LDcgQEAKICNpbmNsdWRlICJTY29wZWRFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiU2VsZWN0
b3JRdWVyeS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290
TGlzdC5oIgogI2luY2x1ZGUgIlN0YXRpY05vZGVMaXN0LmgiCiAjaW5jbHVkZSAiU3RvcmFnZUV2
ZW50LmgiCiAjaW5jbHVkZSAiVGFnTm9kZUxpc3QuaCIKQEAgLTgwOCw3ICs4MDksNyBAQCBib29s
IE5vZGU6Omhhc05vbkVtcHR5Qm91bmRpbmdCb3goKSBjb25zdAogCiBpbmxpbmUgc3RhdGljIFNo
YWRvd1Jvb3QqIHNoYWRvd1Jvb3QoTm9kZSogbm9kZSkKIHsKLSAgICByZXR1cm4gbm9kZS0+aXNF
bGVtZW50Tm9kZSgpID8gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3dSb290KCkgOiAwOworICAgIHJl
dHVybiBub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KG5vZGUpLT5oYXNTaGFkb3dS
b290KCkgPyB0b0VsZW1lbnQobm9kZSktPnNoYWRvd1Jvb3RMaXN0KCktPnlvdW5nZXN0U2hhZG93
Um9vdCgpIDogMDsKIH0KIAogaW5saW5lIHZvaWQgTm9kZTo6c2V0U3R5bGVDaGFuZ2UoU3R5bGVD
aGFuZ2VUeXBlIGNoYW5nZVR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZVJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdD
b250ZXh0LmNwcAppbmRleCA2ZmE5ODhhN2RkODI5Y2MxZWE4ZmNmMWZmYjhhMjNmZTJhYThjNzJm
Li40MTNlODM3Nzc4NWNlZGZjYzc3YzM1YjQyY2E3MDBlZDA1NDM1MTRkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNp
bmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVk
ZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAKICNpZiBFTkFC
TEUoU1ZHKQogI2luY2x1ZGUgIlNWR05hbWVzLmgiCkBAIC02NSw3ICs2Niw4IEBAIE5vZGVSZW5k
ZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dChOb2RlKiBub2RlKQogICAgIG1fbG9j
YXRpb24gPSBMb2NhdGlvbkxpZ2h0Q2hpbGQ7CiAKICAgICBpZiAocGFyZW50LT5pc0VsZW1lbnRO
b2RlKCkpIHsKLSAgICAgICAgbV92aXN1YWxQYXJlbnRTaGFkb3dSb290ID0gdG9FbGVtZW50KHBh
cmVudCktPnNoYWRvd1Jvb3QoKTsKKyAgICAgICAgaWYgKHRvRWxlbWVudChwYXJlbnQpLT5oYXNT
aGFkb3dSb290KCkpCisgICAgICAgICAgICBtX3Zpc3VhbFBhcmVudFNoYWRvd1Jvb3QgPSB0b0Vs
ZW1lbnQocGFyZW50KS0+c2hhZG93Um9vdExpc3QoKS0+eW91bmdlc3RTaGFkb3dSb290KCk7CiAK
ICAgICAgICAgaWYgKG1fdmlzdWFsUGFyZW50U2hhZG93Um9vdCkgewogICAgICAgICAgICAgaWYg
KChtX2luc2VydGlvblBvaW50ID0gbV92aXN1YWxQYXJlbnRTaGFkb3dSb290LT5pbnNlcnRpb25Q
b2ludEZvcihtX25vZGUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCmluZGV4IDVhNWM5ZGYw
M2Q5YThmNGRjMDE3NTlhYzcwMzIzOGY3ZGE0NWRkMjUuLjUzOTlhNGZkZmE2NjcwZjcyNjgxYTUz
Y2Y0Yjg2MjA0YWU5MTI3NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKQEAgLTk3LDcg
Kzk3LDcgQEAgUGFzc1JlZlB0cjxTaGFkb3dSb290PiBTaGFkb3dSb290OjpjcmVhdGUoRWxlbWVu
dCogZWxlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAKIFBhc3NSZWZQdHI8U2hhZG93Um9vdD4g
U2hhZG93Um9vdDo6Y3JlYXRlKEVsZW1lbnQqIGVsZW1lbnQsIFNoYWRvd1Jvb3RDcmVhdGlvblB1
cnBvc2UgcHVycG9zZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgaWYgKCFlbGVtZW50IHx8
IGVsZW1lbnQtPnNoYWRvd1Jvb3QoKSkgeworICAgIGlmICghZWxlbWVudCB8fCBlbGVtZW50LT5o
YXNTaGFkb3dSb290KCkpIHsKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAg
ICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTEwOSw3ICsxMDksNyBAQCBQYXNzUmVmUHRyPFNo
YWRvd1Jvb3Q+IFNoYWRvd1Jvb3Q6OmNyZWF0ZShFbGVtZW50KiBlbGVtZW50LCBTaGFkb3dSb290
Q3JlYXRpb25QdQogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBBU1NFUlQocHVycG9z
ZSAhPSBDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QgfHwgIWVsZW1lbnQtPnNoYWRvd1Jvb3Qo
KSk7CisgICAgQVNTRVJUKHB1cnBvc2UgIT0gQ3JlYXRpbmdVc2VyQWdlbnRTaGFkb3dSb290IHx8
ICFlbGVtZW50LT5oYXNTaGFkb3dSb290KCkpOwogICAgIFJlZlB0cjxTaGFkb3dSb290PiBzaGFk
b3dSb290ID0gY3JlYXRlKGVsZW1lbnQtPmRvY3VtZW50KCkpOwogCiAgICAgZWMgPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5jcHAKaW5kZXggODhlMGZiNWYxMzcwOWEwODdhMmM0
NWYyNTA2NzY0NDZhNDQzMzFmMC4uZjk3NzZkNWIzNzZmNzY2YTE1YmQyMjRmZmM2OTkzNzBhZjdl
N2FhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuY3BwCkBAIC01OSw0ICs1OSw1
OCBAQCBTaGFkb3dSb290KiBTaGFkb3dSb290TGlzdDo6cG9wU2hhZG93Um9vdCgpCiAgICAgcmV0
dXJuIG1fc2hhZG93Um9vdHMucmVtb3ZlSGVhZCgpOwogfQogCit2b2lkIFNoYWRvd1Jvb3RMaXN0
OjppbnNlcnRlZEludG9Eb2N1bWVudCgpCit7CisgICAgZm9yIChTaGFkb3dSb290KiByb290ID0g
eW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3Qo
KSkKKyAgICAgICAgcm9vdC0+aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKK30KKwordm9pZCBTaGFk
b3dSb290TGlzdDo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpCit7CisgICAgZm9yIChTaGFkb3dSb290
KiByb290ID0geW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNo
YWRvd1Jvb3QoKSkKKyAgICAgICAgcm9vdC0+cmVtb3ZlZEZyb21Eb2N1bWVudCgpOworfQorCit2
b2lkIFNoYWRvd1Jvb3RMaXN0OjppbnNlcnRlZEludG9UcmVlKGJvb2wgZGVlcCkKK3sKKyAgICBm
b3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB5b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9
IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQorICAgICAgICByb290LT5pbnNlcnRlZEludG9UcmVl
KGRlZXApOworfQorCit2b2lkIFNoYWRvd1Jvb3RMaXN0OjpyZW1vdmVkRnJvbVRyZWUoYm9vbCBk
ZWVwKQoreworICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hhZG93Um9vdCgp
OyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCisgICAgICAgIHJvb3QtPnJl
bW92ZWRGcm9tVHJlZShkZWVwKTsKK30KKwordm9pZCBTaGFkb3dSb290TGlzdDo6aG9zdENoaWxk
cmVuQ2hhbmdlZCgpCit7CisgICAgZm9yIChTaGFkb3dSb290KiByb290ID0geW91bmdlc3RTaGFk
b3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKKyAgICAgICAg
cm9vdC0+aG9zdENoaWxkcmVuQ2hhbmdlZCgpOworfQorCit2b2lkIFNoYWRvd1Jvb3RMaXN0Ojph
dHRhY2goKQoreworICAgIC8vIEZJWE1FOiBDdXJyZW50bHkgd2Ugb25seSBzdXBwb3J0IHRoZSBj
YXNlIHRoYXQgdGhlIHNoYWRvdyByb290IGxpc3QgaGFzIGF0IG1vc3Qgb25lIHNoYWRvdyByb290
LgorICAgIC8vIFNlZSBhbHNvIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03NzUwMyBhbmQgaXRzIGRlcGVuZGVudCBidWdzLgorICAgIEFTU0VSVChtX3NoYWRvd1Jvb3Rz
LnNpemUoKSA8PSAxKTsKKworICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hh
ZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpIHsKKyAgICAg
ICAgaWYgKCFyb290LT5hdHRhY2hlZCgpKQorICAgICAgICAgICAgcm9vdC0+YXR0YWNoKCk7Cisg
ICAgfQorfQorCit2b2lkIFNoYWRvd1Jvb3RMaXN0OjpkZXRhY2goKQoreworICAgIC8vIEZJWE1F
OiBDdXJyZW50bHkgd2Ugb25seSBzdXBwb3J0IHRoZSBjYXNlIHRoYXQgdGhlIHNoYWRvdyByb290
IGxpc3QgaGFzIGF0IG1vc3Qgb25lIHNoYWRvdyByb290LgorICAgIC8vIFNlZSBhbHNvIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzUwMyBhbmQgaXRzIGRlcGVuZGVu
dCBidWdzLgorICAgIEFTU0VSVChtX3NoYWRvd1Jvb3RzLnNpemUoKSA8PSAxKTsKKworICAgIGZv
ciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0g
cm9vdC0+b2xkZXJTaGFkb3dSb290KCkpIHsKKyAgICAgICAgaWYgKHJvb3QtPmF0dGFjaGVkKCkp
CisgICAgICAgICAgICByb290LT5kZXRhY2goKTsKKyAgICB9Cit9CisKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NoYWRvd1Jvb3RMaXN0LmgKaW5kZXggMDU1YmNhYTUxYzhiOTE5OGZjNDVkZDczOTM3YzI4ODU2
NTllYTAzMy4uYzdmYzk4Y2FhOGEyMGI0NGQ1NGM4MzdhYjc4NGU4Y2VmYzQ1ZDAwNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmgKQEAgLTQ4LDYgKzQ4LDE2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHB1c2hTaGFkb3dSb290KFNoYWRvd1Jvb3QqKTsKICAgICBTaGFkb3dSb290KiBwb3BT
aGFkb3dSb290KCk7CiAKKyAgICB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7CisgICAgdm9p
ZCByZW1vdmVkRnJvbURvY3VtZW50KCk7CisgICAgdm9pZCBpbnNlcnRlZEludG9UcmVlKGJvb2wg
ZGVlcCk7CisgICAgdm9pZCByZW1vdmVkRnJvbVRyZWUoYm9vbCBkZWVwKTsKKworICAgIHZvaWQg
aG9zdENoaWxkcmVuQ2hhbmdlZCgpOworCisgICAgdm9pZCBhdHRhY2goKTsKKyAgICB2b2lkIGRl
dGFjaCgpOworCiBwcml2YXRlOgogICAgIERvdWJseUxpbmtlZExpc3Q8U2hhZG93Um9vdD4gbV9z
aGFkb3dSb290czsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTaGFkb3dSb290TGlzdCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRvcHRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRvcHRlci5jcHAKaW5kZXggMDAzMTdlMzFhMDRjMjZk
ZDUxZDY3YWE3NDBkY2YyZjA4ZTE3MmQ2YS4uZTc2MjA5Y2M4MzFmMGJkZmJhYjk3NTU1NDg2Y2M2
NTY2MjhkODRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcApAQCAt
MjgsMTIgKzI4LDEzIEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJOb2RlUmFy
ZURhdGEuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExp
c3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgaW5saW5lIFNoYWRvd1Jvb3Qq
IHNoYWRvd1Jvb3RGb3IoTm9kZSogbm9kZSkKIHsKLSAgICByZXR1cm4gbm9kZS0+aXNFbGVtZW50
Tm9kZSgpID8gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3dSb290KCkgOiAwOworICAgIHJldHVybiBu
b2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KG5vZGUpLT5oYXNTaGFkb3dSb290KCkg
PyB0b0VsZW1lbnQobm9kZSktPnNoYWRvd1Jvb3RMaXN0KCktPnlvdW5nZXN0U2hhZG93Um9vdCgp
IDogMDsKIH0KIAogdm9pZCBUcmVlU2NvcGVBZG9wdGVyOjptb3ZlVHJlZVRvTmV3U2NvcGUoTm9k
ZSogcm9vdCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IGRm
YmJkZjdjZDcwNDhiY2JjM2FmNThlNzAyOTE0Njc0YzU0YmY5ZDYuLjU3NTlmNjc0MTVjZDM4MmU1
MDBmYmU2NTU4ZDBjMzQzNTdkOTc3MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBl
LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIlJlbmRlckZpbGVVcGxvYWRDb250cm9s
LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3Qu
aCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgpAQCAtMjY1LDE1ICsyNjYsMTUgQEAgYm9vbCBGaWxlSW5wdXRUeXBl
Ojppc0ZpbGVVcGxvYWQoKSBjb25zdAogCiB2b2lkIEZpbGVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRv
d1N1YnRyZWUoKQogewotICAgIEFTU0VSVChlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7CisgICAg
QVNTRVJUKGVsZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKTsKICAgICBFeGNlcHRpb25Db2RlIGVj
ID0gMDsKLSAgICBlbGVtZW50KCktPnNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoZWxlbWVudCgp
LT5tdWx0aXBsZSgpID8gVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlRm9yTXVsdGlwbGUoZWxl
bWVudCgpLT5kb2N1bWVudCgpKTogVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQo
KS0+ZG9jdW1lbnQoKSksIGVjKTsKKyAgICBlbGVtZW50KCktPnNoYWRvd1Jvb3RMaXN0KCktPm9s
ZGVzdFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoZWxlbWVudCgpLT5tdWx0aXBsZSgpID8gVXBs
b2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlRm9yTXVsdGlwbGUoZWxlbWVudCgpLT5kb2N1bWVudCgp
KTogVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSksIGVj
KTsKIH0KIAogdm9pZCBGaWxlSW5wdXRUeXBlOjptdWx0aXBsZUF0dHJpYnV0ZUNoYW5nZWQoKQog
ewotICAgIEFTU0VSVChlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7Ci0gICAgVXBsb2FkQnV0dG9u
RWxlbWVudCogYnV0dG9uID0gc3RhdGljX2Nhc3Q8VXBsb2FkQnV0dG9uRWxlbWVudCo+KGVsZW1l
bnQoKS0+c2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCkpOworICAgIEFTU0VSVChlbGVtZW50KCkt
Pmhhc1NoYWRvd1Jvb3QoKSk7CisgICAgVXBsb2FkQnV0dG9uRWxlbWVudCogYnV0dG9uID0gc3Rh
dGljX2Nhc3Q8VXBsb2FkQnV0dG9uRWxlbWVudCo+KGVsZW1lbnQoKS0+c2hhZG93Um9vdExpc3Qo
KS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCkpOwogICAgIGlmIChidXR0b24pCiAg
ICAgICAgIGJ1dHRvbi0+c2V0VmFsdWUoZWxlbWVudCgpLT5tdWx0aXBsZSgpID8gZmlsZUJ1dHRv
bkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpIDogZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCgp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAppbmRleCAw
MTVjZjYxY2ViODMzNzY5OThiNjhlYjZhYjA5ZWY1NjI2NDRhYjQzLi5hYTI2NGMyMTJhNmNjNjEz
ODAyOTYzZDBlZTZmMWE5ZDhhOWRmN2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0
YWlsc0VsZW1lbnQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiTW91c2VFdmVudC5o
IgogI2luY2x1ZGUgIlJlbmRlckRldGFpbHMuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisj
aW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTEwOCw3ICsxMDksNyBAQCBSZW5kZXJPYmplY3QqIEhUTUxEZXRhaWxz
RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZQog
CiB2b2lkIEhUTUxEZXRhaWxzRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0gICAg
QVNTRVJUKCFzaGFkb3dSb290KCkpOworICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsKIAog
ICAgIFJlZlB0cjxTaGFkb3dSb290PiByb290ID0gU2hhZG93Um9vdDo6Y3JlYXRlKHRoaXMsIFNo
YWRvd1Jvb3Q6OkNyZWF0aW5nVXNlckFnZW50U2hhZG93Um9vdCk7CiAgICAgcm9vdC0+YXBwZW5k
Q2hpbGQoRGV0YWlsc1N1bW1hcnlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSksIEFTU0VSVF9O
T19FWENFUFRJT04sIHRydWUpOwpAQCAtMTIyLDcgKzEyMyw3IEBAIEVsZW1lbnQqIEhUTUxEZXRh
aWxzRWxlbWVudDo6ZmluZE1haW5TdW1tYXJ5KCkgY29uc3QKICAgICAgICAgICAgIHJldHVybiB0
b0VsZW1lbnQoY2hpbGQpOwogICAgIH0KIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxEZXRhaWxz
U3VtbWFyeUVsZW1lbnQqPihzaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSktPmZhbGxiYWNrU3Vt
bWFyeSgpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxEZXRhaWxzU3VtbWFyeUVsZW1lbnQqPihz
aGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSktPmZhbGxi
YWNrU3VtbWFyeSgpOwogfQogCiB2b2lkIEhUTUxEZXRhaWxzRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAKaW5kZXggZDI5NzRmMDEyOTNiZTVmM2IzZTZmMDY3NGE5ODc2NWE0OGFiZTI2Yy4uOTFlZWQ1
NWRhZmEzNjI4NTU0ODM2NmVjMzVhZTUyOTE2N2UyMTYyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0xMDksNyArMTA5LDcgQEAgUGFzc1JlZlB0cjxIVE1M
SW5wdXRFbGVtZW50PiBIVE1MSW5wdXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmEKIAogdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkK
IHsKLSAgICBBU1NFUlQoIXNoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKCFoYXNTaGFkb3dSb290
KCkpOwogICAgIFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290OjpDcmVhdGluZ1Vz
ZXJBZ2VudFNoYWRvd1Jvb3QsIEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgbV9pbnB1dFR5
cGUtPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2Vu
RWxlbWVudC5jcHAKaW5kZXggODUyNTI4MTlhYTU4ZTcwYzJkMDM3MTUwNzI1ZDE3YzQ4OTg5MDEz
NS4uZTEwMDc5ZjY0NjRlNzhmNWVlMDc0ZDE1ZjhhYjEyZjZkNzQzMmMyMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNs
dWRlICJIVE1MT3B0aW9uRWxlbWVudC5oIgogI2luY2x1ZGUgIlNTTEtleUdlbmVyYXRvci5oIgog
I2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2lu
Y2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKQEAgLTg1LDcg
Kzg2LDcgQEAgaW5saW5lIEhUTUxLZXlnZW5FbGVtZW50OjpIVE1MS2V5Z2VuRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWUKICAgICAgICAgb3B0aW9uLT5hcHBlbmRD
aGlsZChUZXh0OjpjcmVhdGUoZG9jdW1lbnQsIGtleXNbaV0pLCBlYyk7CiAgICAgfQogCi0gICAg
QVNTRVJUKCFzaGFkb3dSb290KCkpOworICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsKICAg
ICBSZWZQdHI8U2hhZG93Um9vdD4gcm9vdCA9IFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFk
b3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QpOwogICAgIHJvb3QtPmFwcGVuZENo
aWxkKHNlbGVjdCwgZWMpOwogfQpAQCAtMTMwLDggKzEzMSw4IEBAIHZvaWQgSFRNTEtleWdlbkVs
ZW1lbnQ6OnJlc2V0KCkKIAogSFRNTFNlbGVjdEVsZW1lbnQqIEhUTUxLZXlnZW5FbGVtZW50Ojpz
aGFkb3dTZWxlY3QoKSBjb25zdAogewotICAgIFNoYWRvd1Jvb3QqIHNoYWRvdyA9IHNoYWRvd1Jv
b3QoKTsKLSAgICBBU1NFUlQoc2hhZG93KTsKKyAgICBBU1NFUlQoaGFzU2hhZG93Um9vdCgpKTsK
KyAgICBTaGFkb3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dS
b290KCk7CiAgICAgcmV0dXJuIHNoYWRvdyA/IHRvSFRNTFNlbGVjdEVsZW1lbnQoc2hhZG93LT5m
aXJzdENoaWxkKCkpIDogMDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKaW5kZXggZTVmZmMwODU2MmVjNDI1OTA0NWUxOWFiYjA5ZDQ4NWYyMjc3MjIwYi4uNjdh
ZDFkOWM1MWZjYjkwYWIzZjJhZDEwYTIyODhiZmJhOWRhZGNhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC03MSw2ICs3MSw3IEBACiAjaW5jbHVkZSAiU2Vj
dXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jv
b3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlRpbWVSYW5nZXMu
aCIKICNpbmNsdWRlICJVVUlELmgiCiAjaW5jbHVkZSA8bGltaXRzPgpAQCAtMzUxOSwxNSArMzUy
MCwxNSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnByaXZhdGVCcm93c2luZ1N0YXRlRGlkQ2hh
bmdlKCkKIAogTWVkaWFDb250cm9scyogSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFDb250cm9scygp
CiB7Ci0gICAgcmV0dXJuIHRvTWVkaWFDb250cm9scyhzaGFkb3dSb290KCktPmZpcnN0Q2hpbGQo
KSk7CisgICAgcmV0dXJuIHRvTWVkaWFDb250cm9scyhzaGFkb3dSb290TGlzdCgpLT5vbGRlc3RT
aGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSk7CiB9CiAKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6
aGFzTWVkaWFDb250cm9scygpCiB7Ci0gICAgaWYgKCFzaGFkb3dSb290KCkpCisgICAgaWYgKCFo
YXNTaGFkb3dSb290KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIE5vZGUqIG5vZGUg
PSBzaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsKKyAgICBOb2RlKiBub2RlID0gc2hhZG93Um9v
dExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCk7CiAgICAgcmV0dXJuIG5v
ZGUgJiYgbm9kZS0+aXNNZWRpYUNvbnRyb2xzKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZXRlckVsZW1lbnQuY3BwCmluZGV4IGExZmRhZjZjNzJkNGIwNjUxMmU4NDIxZGU4MDBlNTIw
YmNhYTdhNzkuLjdjODM5OTQ1YmJiNTcxMWZkZjQxODVlYzdlNzY3MGU2MzYwMTY0M2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcApAQCAtMjM0LDcgKzIzNCw3IEBA
IHZvaWQgSFRNTE1ldGVyRWxlbWVudDo6ZGlkRWxlbWVudFN0YXRlQ2hhbmdlKCkKIAogdm9pZCBI
VE1MTWV0ZXJFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKLSAgICBBU1NFUlQoIXNo
YWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkpOwogCiAgICAgUmVmUHRy
PE1ldGVyQmFyRWxlbWVudD4gYmFyID0gTWV0ZXJCYXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQo
KSk7CiAgICAgbV92YWx1ZSA9IE1ldGVyVmFsdWVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAppbmRleCAwYzIz
NzI1ODFmNzlhZmY0ZGFjNTQ4YTBiYTdlNDRjNTZhYTliNWYwLi5lZDY5NTBjM2Y3OTIwNTM4NWIx
OTQzOTk2MWIwNzZiMWZkMDUyM2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQcm9ncmVzc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dy
ZXNzRWxlbWVudC5jcHAKQEAgLTE1Myw3ICsxNTMsNyBAQCB2b2lkIEhUTUxQcm9ncmVzc0VsZW1l
bnQ6OmRpZEVsZW1lbnRTdGF0ZUNoYW5nZSgpCiAKIHZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6
Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJUKCFzaGFkb3dSb290KCkpOworICAg
IEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsKIAogICAgIFJlZlB0cjxQcm9ncmVzc0JhckVsZW1l
bnQ+IGJhciA9IFByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwogICAgIG1f
dmFsdWUgPSBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCmluZGV4IDZiYzZlYWM2NjA1NzFm
NTZlOTc1MGM3NmNkMTdiOWVkNjU1OTBiODYuLmUyOTU3YjIxZWNlZWZlNDY5M2JmOWRhYzRhNmM3
YTAzYzBlYTBmMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5j
cHAKQEAgLTMxLDggKzMxLDggQEAKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyU3VtbWFyeS5oIgotCiAjaW5j
bHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtNzQsNyArNzQsNyBAQCBSZW5kZXJPYmplY3QqIEhUTUxTdW1t
YXJ5RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHls
ZQogCiB2b2lkIEhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0g
ICAgQVNTRVJUKCFzaGFkb3dSb290KCkpOworICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsK
ICAgICBSZWZQdHI8U2hhZG93Um9vdD4gcm9vdCA9IFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBT
aGFkb3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QpOwogICAgIHJvb3QtPmFwcGVu
ZENoaWxkKERldGFpbHNNYXJrZXJDb250cm9sOjpjcmVhdGUoZG9jdW1lbnQoKSksIEFTU0VSVF9O
T19FWENFUFRJT04sIHRydWUpOwogICAgIHJvb3QtPmFwcGVuZENoaWxkKFN1bW1hcnlDb250ZW50
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0cnVlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCmluZGV4IDEzY2Iz
ZWMzODZkYTllZTdkYjhjNjk4NDlkNDc0MzRhY2VjNjRlMWQuLjU5Y2U4MGUyOWU4MTBhZDQwOGMx
NTgyYjE3ZGU1MjBmYTY1YjFiOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFy
ZWFFbGVtZW50LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgog
I2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmgiCiAjaW5jbHVkZSAiU2hhZG93
Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSAiVGV4dC5oIgog
I2luY2x1ZGUgIlRleHRDb250cm9sSW5uZXJFbGVtZW50cy5oIgogI2luY2x1ZGUgIlRleHRJdGVy
YXRvci5oIgpAQCAtODQsNyArODUsNyBAQCBQYXNzUmVmUHRyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+
IEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJgogCiB2b2lk
IEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VS
VCghc2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoIWhhc1NoYWRvd1Jvb3QoKSk7CiAgICAgUmVm
UHRyPFNoYWRvd1Jvb3Q+IHJvb3QgPSBTaGFkb3dSb290OjpjcmVhdGUodGhpcywgU2hhZG93Um9v
dDo6Q3JlYXRpbmdVc2VyQWdlbnRTaGFkb3dSb290KTsKICAgICByb290LT5hcHBlbmRDaGlsZChU
ZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05P
X0VYQ0VQVElPTik7CiB9CkBAIC0yOTMsNyArMjk0LDcgQEAgU3RyaW5nIEhUTUxUZXh0QXJlYUVs
ZW1lbnQ6OnNhbml0aXplVXNlcklucHV0VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVl
LAogCiBIVE1MRWxlbWVudCogSFRNTFRleHRBcmVhRWxlbWVudDo6aW5uZXJUZXh0RWxlbWVudCgp
IGNvbnN0CiB7Ci0gICAgTm9kZSogbm9kZSA9IHNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpOwor
ICAgIE5vZGUqIG5vZGUgPSBzaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCktPmZp
cnN0Q2hpbGQoKTsKICAgICBBU1NFUlQoIW5vZGUgfHwgbm9kZS0+aGFzVGFnTmFtZShkaXZUYWcp
KTsKICAgICByZXR1cm4gdG9IVE1MRWxlbWVudChub2RlKTsKIH0KQEAgLTQ3MCw3ICs0NzEsNyBA
QCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpCiAgICAg
U3RyaW5nIHBsYWNlaG9sZGVyVGV4dCA9IHN0cmlwcGVkUGxhY2Vob2xkZXIoKTsKICAgICBpZiAo
cGxhY2Vob2xkZXJUZXh0LmlzRW1wdHkoKSkgewogICAgICAgICBpZiAobV9wbGFjZWhvbGRlcikg
ewotICAgICAgICAgICAgc2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZChtX3BsYWNlaG9sZGVyLmdl
dCgpLCBlYyk7CisgICAgICAgICAgICBzaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290
KCktPnJlbW92ZUNoaWxkKG1fcGxhY2Vob2xkZXIuZ2V0KCksIGVjKTsKICAgICAgICAgICAgIEFT
U0VSVCghZWMpOwogICAgICAgICAgICAgbV9wbGFjZWhvbGRlci5jbGVhcigpOwogICAgICAgICB9
CkBAIC00NzksNyArNDgwLDcgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50Ojp1cGRhdGVQbGFj
ZWhvbGRlclRleHQoKQogICAgIGlmICghbV9wbGFjZWhvbGRlcikgewogICAgICAgICBtX3BsYWNl
aG9sZGVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKICAgICAgICAgbV9w
bGFjZWhvbGRlci0+c2V0U2hhZG93UHNldWRvSWQoIi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIi
KTsKLSAgICAgICAgc2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUobV9wbGFjZWhvbGRlciwgc2hh
ZG93Um9vdCgpLT5maXJzdENoaWxkKCktPm5leHRTaWJsaW5nKCksIGVjKTsKKyAgICAgICAgc2hh
ZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUobV9wbGFjZWhv
bGRlciwgc2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCkt
Pm5leHRTaWJsaW5nKCksIGVjKTsKICAgICAgICAgQVNTRVJUKCFlYyk7CiAgICAgfQogICAgIG1f
cGxhY2Vob2xkZXItPnNldElubmVyVGV4dChwbGFjZWhvbGRlclRleHQsIGVjKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW5wdXRUeXBlLmNwcAppbmRleCA4MDBjMjFjZmY4OTI5YzA3YjNlNjlkZGQyMDBlMDA4NDMw
Mjk1NTY3Li5iMTQzMjA3YWVkNjZiMWY3Mzg5M2IyZTI1YWQ3M2RkNmZjMTVjMmY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC01Niw2ICs1Niw3IEBACiAjaW5jbHVkZSAiUmVzZXRJ
bnB1dFR5cGUuaCIKICNpbmNsdWRlICJTZWFyY2hJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJTaGFk
b3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJTdWJtaXRJ
bnB1dFR5cGUuaCIKICNpbmNsdWRlICJUZWxlcGhvbmVJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJU
ZXh0SW5wdXRUeXBlLmgiCkBAIC0zNzgsNyArMzc5LDEwIEBAIHZvaWQgSW5wdXRUeXBlOjpjcmVh
dGVTaGFkb3dTdWJ0cmVlKCkKIAogdm9pZCBJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVl
KCkKIHsKLSAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IGVsZW1lbnQoKS0+c2hhZG93Um9vdCgp
KQorICAgIGlmICghZWxlbWVudCgpLT5oYXNTaGFkb3dSb290KCkpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmIChTaGFkb3dSb290KiByb290ID0gZWxlbWVudCgpLT5zaGFkb3dSb290TGlzdCgp
LT5vbGRlc3RTaGFkb3dSb290KCkpCiAgICAgICAgIHJvb3QtPnJlbW92ZUFsbENoaWxkcmVuKCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKaW5kZXggMTQ3NDE4NTYy
YjZiMmRmMGVkNzU5YzQwYjViNmU1ZWI0MWRlMzZjOS4uYTE3NGNlN2FmMzFlOTczZTc0ZDRjMjk4
NmUwNGRhZmRhMjU2ODg4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlu
cHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAK
QEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNs
dWRlICJSZW5kZXJTbGlkZXIuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAi
U2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJTbGlkZXJUaHVtYkVsZW1lbnQuaCIKICNpbmNs
dWRlICJTdGVwUmFuZ2UuaCIKICNpbmNsdWRlIDxsaW1pdHM+CkBAIC0xNTcsNyArMTU4LDEwIEBA
IHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmhhbmRsZU1vdXNlRG93bkV2ZW50KE1vdXNlRXZlbnQqIGV2
ZW50KQogICAgICAgICByZXR1cm47CiAKICAgICBOb2RlKiB0YXJnZXROb2RlID0gZXZlbnQtPnRh
cmdldCgpLT50b05vZGUoKTsKLSAgICBpZiAoZXZlbnQtPmJ1dHRvbigpICE9IExlZnRCdXR0b24g
fHwgIXRhcmdldE5vZGUgfHwgKHRhcmdldE5vZGUgIT0gZWxlbWVudCgpICYmICF0YXJnZXROb2Rl
LT5pc0Rlc2NlbmRhbnRPZihlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSkpKQorICAgIGlmIChldmVu
dC0+YnV0dG9uKCkgIT0gTGVmdEJ1dHRvbiB8fCAhdGFyZ2V0Tm9kZSkKKyAgICAgICAgcmV0dXJu
OworICAgIEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7CisgICAgaWYgKHRhcmdl
dE5vZGUgIT0gZWxlbWVudCgpICYmICF0YXJnZXROb2RlLT5pc0Rlc2NlbmRhbnRPZihlbGVtZW50
KCktPnNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKSkpCiAgICAgICAgIHJldHVy
bjsKICAgICBTbGlkZXJUaHVtYkVsZW1lbnQqIHRodW1iID0gc2xpZGVyVGh1bWJFbGVtZW50T2Yo
ZWxlbWVudCgpKTsKICAgICBpZiAodGFyZ2V0Tm9kZSA9PSB0aHVtYikKQEAgLTIzMyw3ICsyMzcs
NyBAQCB2b2lkIFJhbmdlSW5wdXRUeXBlOjpoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVu
dCogZXZlbnQpCiAKIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQog
ewotICAgIEFTU0VSVChlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKGVsZW1l
bnQoKS0+aGFzU2hhZG93Um9vdCgpKTsKIAogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGVsZW1l
bnQoKS0+ZG9jdW1lbnQoKTsKICAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHRyYWNrID0gSFRN
TERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CkBAIC0yNDMsNyArMjQ3LDcgQEAgdm9pZCBS
YW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgUmVmUHRyPEhUTUxFbGVt
ZW50PiBjb250YWluZXIgPSBTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQp
OwogICAgIGNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodHJhY2sucmVsZWFzZSgpLCBlYyk7CiAgICAg
Y29udGFpbmVyLT5hcHBlbmRDaGlsZChUcmFja0xpbWl0ZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQpLCBlYyk7Ci0gICAgZWxlbWVudCgpLT5zaGFkb3dSb290KCktPmFwcGVuZENoaWxkKGNvbnRh
aW5lci5yZWxlYXNlKCksIGVjKTsKKyAgICBlbGVtZW50KCktPnNoYWRvd1Jvb3RMaXN0KCktPm9s
ZGVzdFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoY29udGFpbmVyLnJlbGVhc2UoKSwgZWMpOwog
fQogCiBSZW5kZXJPYmplY3QqIFJhbmdlSW5wdXRUeXBlOjpjcmVhdGVSZW5kZXJlcihSZW5kZXJB
cmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4
dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRleCA1NmU1NWQzODhlMzc3OGY2ZDUzOTYyMWIyMThiMmJm
OTRmYzM3NTk0Li5hOGMwOTQ2ZTVjY2EyZWVmOWVhNTAwMGQyYjZkMmU4ZjY5ZDlhNDc1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBAIC00Myw2ICs0Myw3
IEBACiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgiCiAjaW5jbHVkZSAi
UmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93
Um9vdExpc3QuaCIKICNpbmNsdWRlICJUZXh0Q29udHJvbElubmVyRWxlbWVudHMuaCIKICNpbmNs
dWRlICJUZXh0RXZlbnQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKQEAgLTE4OSw3ICsx
OTAsNyBAQCBib29sIFRleHRGaWVsZElucHV0VHlwZTo6bmVlZHNDb250YWluZXIoKSBjb25zdAog
CiB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0gICAg
QVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoZWxlbWVudCgpLT5o
YXNTaGFkb3dSb290KCkpOwogCiAgICAgQVNTRVJUKCFtX2lubmVyVGV4dCk7CiAgICAgQVNTRVJU
KCFtX2lubmVyQmxvY2spOwpAQCAtMjAzLDExICsyMDQsMTEgQEAgdm9pZCBUZXh0RmllbGRJbnB1
dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwog
ICAgIG1faW5uZXJUZXh0ID0gVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOwogICAgIGlmICghY3JlYXRlc0NvbnRhaW5lcikgewotICAgICAgICBlbGVtZW50KCkt
PnNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQobV9pbm5lclRleHQsIGVjKTsKKyAgICAgICAgZWxl
bWVudCgpLT5zaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCktPmFwcGVuZENoaWxk
KG1faW5uZXJUZXh0LCBlYyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTaGFkb3dS
b290KiBzaGFkb3dSb290ID0gZWxlbWVudCgpLT5zaGFkb3dSb290KCk7CisgICAgU2hhZG93Um9v
dCogc2hhZG93Um9vdCA9IGVsZW1lbnQoKS0+c2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93
Um9vdCgpOwogICAgIG1fY29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCk7CiAgICAgbV9jb250YWluZXItPnNldFNoYWRvd1BzZXVkb0lkKCItd2Via2l0LXRleHRmaWVs
ZC1kZWNvcmF0aW9uLWNvbnRhaW5lciIpOwogICAgIHNoYWRvd1Jvb3QtPmFwcGVuZENoaWxkKG1f
Y29udGFpbmVyLCBlYyk7CkBAIC0zNjksNyArMzcwLDcgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5
cGU6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpCiAgICAgaWYgKCFtX3BsYWNlaG9sZGVyKSB7CiAg
ICAgICAgIG1fcGxhY2Vob2xkZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+
ZG9jdW1lbnQoKSk7CiAgICAgICAgIG1fcGxhY2Vob2xkZXItPnNldFNoYWRvd1BzZXVkb0lkKCIt
d2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIik7Ci0gICAgICAgIGVsZW1lbnQoKS0+c2hhZG93Um9v
dCgpLT5pbnNlcnRCZWZvcmUobV9wbGFjZWhvbGRlciwgbV9jb250YWluZXIgPyBtX2NvbnRhaW5l
ci0+bmV4dFNpYmxpbmcoKSA6IGlubmVyVGV4dEVsZW1lbnQoKS0+bmV4dFNpYmxpbmcoKSwgZWMp
OworICAgICAgICBlbGVtZW50KCktPnNoYWRvd1Jvb3RMaXN0KCktPm9sZGVzdFNoYWRvd1Jvb3Qo
KS0+aW5zZXJ0QmVmb3JlKG1fcGxhY2Vob2xkZXIsIG1fY29udGFpbmVyID8gbV9jb250YWluZXIt
Pm5leHRTaWJsaW5nKCkgOiBpbm5lclRleHRFbGVtZW50KCktPm5leHRTaWJsaW5nKCksIGVjKTsK
ICAgICAgICAgQVNTRVJUKCFlYyk7CiAgICAgfQogICAgIG1fcGxhY2Vob2xkZXItPnNldElubmVy
VGV4dChwbGFjZWhvbGRlclRleHQsIGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9u
TWVzc2FnZS5jcHAKaW5kZXggYmMzYzQ1NDg5ZGZiODYyYTE0YmI0ZTUzMGU3MDRiOWE4Y2RjNjY4
Yy4uYmI4YTE5NWI4NGMyYmUwZjEwMmJlY2EzNzNlYzY1ZGZhOTFiM2ZjYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNs
dWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNo
YWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlRleHQu
aCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCkBAIC0xODcsNyArMTg4LDcgQEAgdm9p
ZCBWYWxpZGF0aW9uTWVzc2FnZTo6ZGVsZXRlQnViYmxlVHJlZShUaW1lcjxWYWxpZGF0aW9uTWVz
c2FnZT4qKQogICAgICAgICBtX21lc3NhZ2VCb2R5ID0gMDsKICAgICAgICAgSFRNTEVsZW1lbnQq
IGhvc3QgPSB0b0hUTUxFbGVtZW50KG1fZWxlbWVudCk7CiAgICAgICAgIEV4Y2VwdGlvbkNvZGUg
ZWM7Ci0gICAgICAgIGhvc3QtPnNoYWRvd1Jvb3QoKS0+cmVtb3ZlQ2hpbGQobV9idWJibGUuZ2V0
KCksIGVjKTsKKyAgICAgICAgaG9zdC0+c2hhZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9v
dCgpLT5yZW1vdmVDaGlsZChtX2J1YmJsZS5nZXQoKSwgZWMpOwogICAgICAgICBtX2J1YmJsZSA9
IDA7CiAgICAgfQogICAgIG1fbWVzc2FnZSA9IFN0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKaW5kZXggMzE5YTExZTgwMjUy
ZmFjMjg2YmU4NDBkMmJmNzYzNTQwZjU4ZWViNy4uYWJmNWIzNThiNTU0OTlkZWJiOTFlNTcyNzM5
MGI0MDk4ZDMzN2U3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xp
ZGVyVGh1bWJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlk
ZXJUaHVtYkVsZW1lbnQuY3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiUmVuZGVyU2xp
ZGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJTaGFkb3dSb290Lmgi
CisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJTdGVwUmFuZ2UuaCIKICNp
bmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCkBAIC02Niw3ICs2Nyw3IEBAIGlubGluZSBzdGF0
aWMgYm9vbCBoYXNWZXJ0aWNhbEFwcGVhcmFuY2UoSFRNTElucHV0RWxlbWVudCogaW5wdXQpCiBT
bGlkZXJUaHVtYkVsZW1lbnQqIHNsaWRlclRodW1iRWxlbWVudE9mKE5vZGUqIG5vZGUpCiB7CiAg
ICAgQVNTRVJUKG5vZGUpOwotICAgIFNoYWRvd1Jvb3QqIHNoYWRvdyA9IG5vZGUtPnRvSW5wdXRF
bGVtZW50KCktPnNoYWRvd1Jvb3QoKTsKKyAgICBTaGFkb3dSb290KiBzaGFkb3cgPSBub2RlLT50
b0lucHV0RWxlbWVudCgpLT5zaGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCk7CiAg
ICAgQVNTRVJUKHNoYWRvdyk7CiAgICAgTm9kZSogdGh1bWIgPSBzaGFkb3ctPmZpcnN0Q2hpbGQo
KS0+Zmlyc3RDaGlsZCgpLT5maXJzdENoaWxkKCk7CiAgICAgQVNTRVJUKHRodW1iKTsKQEAgLTE0
MSw3ICsxNDIsNyBAQCB2b2lkIFJlbmRlclNsaWRlckNvbnRhaW5lcjo6bGF5b3V0KCkKICAgICBM
ZW5ndGggaW5wdXRIZWlnaHQgPSBpbnB1dC0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+aGVpZ2h0KCk7
CiAgICAgUmVuZGVyT2JqZWN0KiB0cmFja1JlbmRlcmVyID0gbm9kZSgpLT5maXJzdENoaWxkKCkt
PnJlbmRlcmVyKCk7CiAgICAgaWYgKCFpc1ZlcnRpY2FsICYmIGlucHV0LT5yZW5kZXJlcigpLT5p
c1NsaWRlcigpICYmICFpbnB1dEhlaWdodC5pc0ZpeGVkKCkgJiYgIWlucHV0SGVpZ2h0LmlzUGVy
Y2VudCgpKSB7Ci0gICAgICAgIFJlbmRlck9iamVjdCogdGh1bWJSZW5kZXJlciA9IGlucHV0LT5z
aGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKS0+Zmlyc3RDaGlsZCgpLT5maXJzdENoaWxkKCktPnJl
bmRlcmVyKCk7CisgICAgICAgIFJlbmRlck9iamVjdCogdGh1bWJSZW5kZXJlciA9IGlucHV0LT5z
aGFkb3dSb290TGlzdCgpLT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKS0+Zmlyc3RD
aGlsZCgpLT5maXJzdENoaWxkKCktPnJlbmRlcmVyKCk7CiAgICAgICAgIGlmICh0aHVtYlJlbmRl
cmVyKSB7CiAgICAgICAgICAgICBzdHlsZSgpLT5zZXRIZWlnaHQodGh1bWJSZW5kZXJlci0+c3R5
bGUoKS0+aGVpZ2h0KCkpOwogICAgICAgICAgICAgaWYgKHRyYWNrUmVuZGVyZXIpCkBAIC0zNTUs
NyArMzU2LDggQEAgY29uc3QgQXRvbWljU3RyaW5nJiBUcmFja0xpbWl0ZXJFbGVtZW50OjpzaGFk
b3dQc2V1ZG9JZCgpIGNvbnN0CiBUcmFja0xpbWl0ZXJFbGVtZW50KiB0cmFja0xpbWl0ZXJFbGVt
ZW50T2YoTm9kZSogbm9kZSkKIHsKICAgICBBU1NFUlQobm9kZSk7Ci0gICAgU2hhZG93Um9vdCog
c2hhZG93ID0gbm9kZS0+dG9JbnB1dEVsZW1lbnQoKS0+c2hhZG93Um9vdCgpOworICAgIEFTU0VS
VChub2RlLT50b0lucHV0RWxlbWVudCgpLT5oYXNTaGFkb3dSb290KCkpOworICAgIFNoYWRvd1Jv
b3QqIHNoYWRvdyA9IG5vZGUtPnRvSW5wdXRFbGVtZW50KCktPnNoYWRvd1Jvb3RMaXN0KCktPm9s
ZGVzdFNoYWRvd1Jvb3QoKTsKICAgICBBU1NFUlQoc2hhZG93KTsKICAgICBOb2RlKiBsaW1pdGVy
ID0gc2hhZG93LT5maXJzdENoaWxkKCktPmxhc3RDaGlsZCgpOwogICAgIEFTU0VSVChsaW1pdGVy
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA1MTQyNmEzMDg2
MjRiOTg1ODhiMGUwNmY5MWNiNmQ2NDgxYWM4ZjhhLi5hYTk4YzAyNDlmYjA0NDk0NDc3ZDU0MTY0
YzMwOTVkZTIzNjkyZjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29u
dHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3Bw
CkBAIC01NCw2ICs1NCw3IEBACiAjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0b3IuaCIKICNpbmNsdWRl
ICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dS
b290TGlzdC5oIgogI2luY2x1ZGUgIlNwYXRpYWxOYXZpZ2F0aW9uLmgiCiAjaW5jbHVkZSAiV2lk
Z2V0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIgLy8gRm9yIGZpcnN0UG9zaXRpb25Jbk9y
QmVmb3JlTm9kZQpAQCAtMTU0LDcgKzE1NSw3IEBAIHZvaWQgRm9jdXNDb250cm9sbGVyOjpzZXRG
b2N1c2VkKGJvb2wgZm9jdXNlZCkKIAogc3RhdGljIGlubGluZSBTaGFkb3dSb290KiBzaGFkb3dS
b290KE5vZGUqIG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGUtPmlzRWxlbWVudE5vZGUoKSA/IHRv
RWxlbWVudChub2RlKS0+c2hhZG93Um9vdCgpIDogMDsKKyAgICByZXR1cm4gbm9kZS0+aXNFbGVt
ZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+aGFzU2hhZG93Um9vdCgpID8gdG9FbGVtZW50
KG5vZGUpLT5zaGFkb3dSb290TGlzdCgpLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKSA6IDA7CiB9CiAK
IHN0YXRpYyBpbmxpbmUgYm9vbCBpc1RyZWVTY29wZU93bmVyKE5vZGUqIG5vZGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcApp
bmRleCBhMWFlMTViNWM5YzAwNTQxMWQzMTYyMjE1MjY5MDk3ZDg5NGUwMDdiLi44NDM3MzAzMmQ5
ZmJiYjRkOGI2NDhhN2Q4NDJjZjBhYzBlNjBhOTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKQEAgLTMyLDYgKzMyLDcg
QEAKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNp
bmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNs
dWRlICJUZXh0UnVuLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVBvc2l0aW9uLmgiCiAjaW5jbHVkZSA8
bWF0aC5oPgpAQCAtMjEyLDkgKzIxMyw5IEBAIEhUTUxJbnB1dEVsZW1lbnQqIFJlbmRlckZpbGVV
cGxvYWRDb250cm9sOjp1cGxvYWRCdXR0b24oKSBjb25zdAogewogICAgIEhUTUxJbnB1dEVsZW1l
bnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUoKSk7CiAKLSAg
ICBBU1NFUlQoaW5wdXQtPnNoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKGlucHV0LT5oYXNTaGFk
b3dSb290KCkpOwogCi0gICAgTm9kZSogYnV0dG9uTm9kZSA9IGlucHV0LT5zaGFkb3dSb290KCkt
PmZpcnN0Q2hpbGQoKTsKKyAgICBOb2RlKiBidXR0b25Ob2RlID0gaW5wdXQtPnNoYWRvd1Jvb3RM
aXN0KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpOwogICAgIHJldHVybiBidXR0
b25Ob2RlICYmIGJ1dHRvbk5vZGUtPmlzSFRNTEVsZW1lbnQoKSAmJiBidXR0b25Ob2RlLT5oYXNU
YWdOYW1lKGlucHV0VGFnKSA/IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihidXR0b25O
b2RlKSA6IDA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCmluZGV4IDk4
YjhmOTEzZmExNjMyYjcxNzM5NjQyMGVkM2VlNmQ4MGRjMmM5YzQuLjEyMmQ3YzQzY2MyZDBiMWE1
NGU3YWFhYzRiNzM1ZDRhZjA4OGQxZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUUmVmRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50
LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlJlbmRlclNWR0lubGluZVRleHQuaCIK
ICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIK
KyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1ZGUgIlNWR0RvY3VtZW50LmgiCiAj
aW5jbHVkZSAiU1ZHRWxlbWVudEluc3RhbmNlLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKQEAg
LTE1OSwxMCArMTYwLDEyIEBAIHZvaWQgU1ZHVFJlZkVsZW1lbnQ6OnVwZGF0ZVJlZmVyZW5jZWRU
ZXh0KCkKICAgICBpZiAodGFyZ2V0LT5wYXJlbnROb2RlKCkpCiAgICAgICAgIHRleHRDb250ZW50
ID0gdGFyZ2V0LT50ZXh0Q29udGVudCgpOwogCi0gICAgaWYgKCFzaGFkb3dSb290KCktPmZpcnN0
Q2hpbGQoKSkKLSAgICAgICAgc2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChTVkdTaGFkb3dUZXh0
OjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dENvbnRlbnQpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
KyAgICBBU1NFUlQoaGFzU2hhZG93Um9vdCgpKTsKKyAgICBTaGFkb3dSb290KiByb290ID0gc2hh
ZG93Um9vdExpc3QoKS0+b2xkZXN0U2hhZG93Um9vdCgpOworICAgIGlmICghcm9vdC0+Zmlyc3RD
aGlsZCgpKQorICAgICAgICByb290LT5hcHBlbmRDaGlsZChTVkdTaGFkb3dUZXh0OjpjcmVhdGUo
ZG9jdW1lbnQoKSwgdGV4dENvbnRlbnQpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBlbHNl
Ci0gICAgICAgIHNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpLT5zZXRUZXh0Q29udGVudCh0ZXh0
Q29udGVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgIHJvb3QtPmZpcnN0Q2hpbGQo
KS0+c2V0VGV4dENvbnRlbnQodGV4dENvbnRlbnQsIEFTU0VSVF9OT19FWENFUFRJT04pOwogfQog
CiBib29sIFNWR1RSZWZFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAx
MjY0N2RmZTMxNzkzNjgzOWY5MTMzNGM4ODY1ZDc0Yzc3NmNlZWU4Li5lYjNhNWI3YjA1MzE5MTQ0
ZGU0NDcxZGZhMGZiNWYwZWQ4ZTg3ZGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVHJlZUFzVGV4dC5oIgogI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNo
YWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSAiU3BlbGxDaGVja2VyLmgiCiAjaW5jbHVkZSAiVGV4
dEl0ZXJhdG9yLmgiCiAKQEAgLTE5MywyMCArMTk0LDQzIEBAIEludGVybmFsczo6U2hhZG93Um9v
dElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogSW50ZXJuYWxzOjplbnN1cmVTaGFkb3dSb290KEVs
ZW1lCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIGlmIChTaGFkb3dSb290KiByb290
ID0gaG9zdC0+c2hhZG93Um9vdCgpKQotICAgICAgICByZXR1cm4gcm9vdDsKKyAgICBpZiAoaG9z
dC0+aGFzU2hhZG93Um9vdCgpKQorICAgICAgICByZXR1cm4gaG9zdC0+c2hhZG93Um9vdExpc3Qo
KS0+eW91bmdlc3RTaGFkb3dSb290KCk7CiAKICAgICByZXR1cm4gU2hhZG93Um9vdDo6Y3JlYXRl
KGhvc3QsIGVjKS5nZXQoKTsKIH0KIAogSW50ZXJuYWxzOjpTaGFkb3dSb290SWZTaGFkb3dET01F
bmFibGVkT3JOb2RlKiBJbnRlcm5hbHM6OnNoYWRvd1Jvb3QoRWxlbWVudCogaG9zdCwgRXhjZXB0
aW9uQ29kZSYgZWMpCiB7CisgICAgLy8gRklYTUU6IEludGVybmFsczo6c2hhZG93Um9vdCgpIGlu
IHRlc3RzIHNob3VsZCBiZSBjb252ZXJ0ZWQgdG8geW91bmdlc3RTaGFkb3dSb290KCkgb3Igb2xk
ZXN0U2hhZG93Um9vdCgpLgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03ODQ2NQorICAgIHJldHVybiB5b3VuZ2VzdFNoYWRvd1Jvb3QoaG9zdCwgZWMpOwor
fQorCitJbnRlcm5hbHM6OlNoYWRvd1Jvb3RJZlNoYWRvd0RPTUVuYWJsZWRPck5vZGUqIEludGVy
bmFsczo6eW91bmdlc3RTaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmIGVj
KQorewogICAgIGlmICghaG9zdCkgewogICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsK
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgcmV0dXJuIGhvc3QtPnNoYWRvd1Jvb3Qo
KTsKKyAgICBpZiAoIWhvc3QtPmhhc1NoYWRvd1Jvb3QoKSkKKyAgICAgICAgcmV0dXJuIDA7CisK
KyAgICByZXR1cm4gaG9zdC0+c2hhZG93Um9vdExpc3QoKS0+eW91bmdlc3RTaGFkb3dSb290KCk7
Cit9CisKK0ludGVybmFsczo6U2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogSW50
ZXJuYWxzOjpvbGRlc3RTaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmIGVj
KQoreworICAgIGlmICghaG9zdCkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsK
KyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgaWYgKCFob3N0LT5oYXNTaGFkb3dSb290
KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIGhvc3QtPnNoYWRvd1Jvb3RMaXN0
KCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6OnJlbW92ZVNoYWRv
d1Jvb3QoRWxlbWVudCogaG9zdCwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaAppbmRleCA0MzlkYzc1YzZlMTVmYmNhZTgyYzY3Y2FmZTc5ZjBiMjFhZmRiZTBl
Li5kMzhkODgwYTJmODNiOTg5Yjg5ODMzZmNmZTA0NDUyNTc1MTc1OGFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmgKQEAgLTY2LDYgKzY2LDggQEAgcHVibGljOgogI2VuZGlmCiAgICAg
U2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogZW5zdXJlU2hhZG93Um9vdChFbGVt
ZW50KiBob3N0LCBFeGNlcHRpb25Db2RlJik7CiAgICAgU2hhZG93Um9vdElmU2hhZG93RE9NRW5h
YmxlZE9yTm9kZSogc2hhZG93Um9vdChFbGVtZW50KiBob3N0LCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgU2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogeW91bmdlc3RTaGFkb3dSb290
KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBTaGFkb3dSb290SWZTaGFkb3dE
T01FbmFibGVkT3JOb2RlKiBvbGRlc3RTaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICB2b2lkIHJlbW92ZVNoYWRvd1Jvb3QoRWxlbWVudCogaG9zdCwgRXhjZXB0
aW9uQ29kZSYpOwogICAgIEVsZW1lbnQqIGluY2x1ZGVyRm9yKE5vZGUqLCBFeGNlcHRpb25Db2Rl
Jik7CiAgICAgU3RyaW5nIHNoYWRvd1BzZXVkb0lkKEVsZW1lbnQqLCBFeGNlcHRpb25Db2RlJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggOWJmMDU3NTFkOWI2YTJmNGE4
MWYwNzA5OWM5M2M3YTZkM2E4YTA1My4uNzU2NzZmNmFhMmI3OTJkNjUwZGI1YmY3MTFhZTg0OTQ4
MTZiNzc5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMzUsOSArMzUs
MTMgQEAgbW9kdWxlIHdpbmRvdyB7CiAjaWYgZGVmaW5lZChFTkFCTEVfU0hBRE9XX0RPTSkKICAg
ICAgICAgU2hhZG93Um9vdCBlbnN1cmVTaGFkb3dSb290KGluIEVsZW1lbnQgaG9zdCkgcmFpc2Vz
IChET01FeGNlcHRpb24pOwogICAgICAgICBTaGFkb3dSb290IHNoYWRvd1Jvb3QoaW4gRWxlbWVu
dCBob3N0KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFNoYWRvd1Jvb3QgeW91bmdl
c3RTaGFkb3dSb290KGluIEVsZW1lbnQgaG9zdCkgcmFpc2VzIChET01FeGNlcHRpb24pOworICAg
ICAgICBTaGFkb3dSb290IG9sZGVzdFNoYWRvd1Jvb3QoaW4gRWxlbWVudCBob3N0KSByYWlzZXMg
KERPTUV4Y2VwdGlvbik7CiAjZWxzZQogICAgICAgICBOb2RlIGVuc3VyZVNoYWRvd1Jvb3QoaW4g
RWxlbWVudCBob3N0KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIE5vZGUgc2hhZG93
Um9vdChpbiBFbGVtZW50IGhvc3QpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgTm9k
ZSB5b3VuZ2VzdFNoYWRvd1Jvb3QoaW4gRWxlbWVudCBob3N0KSByYWlzZXMgKERPTUV4Y2VwdGlv
bik7CisgICAgICAgIE5vZGUgb2xkZXN0U2hhZG93Um9vdChpbiBFbGVtZW50IGhvc3QpIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgogICAgICAgICBFbGVtZW50IGluY2x1ZGVyRm9yKGlu
IE5vZGUgbm9kZSkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHJlbW92ZVNo
YWRvd1Jvb3QoaW4gRWxlbWVudCBob3N0KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4v
V2ViS2l0Mi5kZWYKaW5kZXggNzY4MzBlMDFjOWRjNDM2MTU1ZjIyY2RjZmI1YjYzODU4MGE5YWYz
OC4uZmZkOGVkOTUxZjRjY2YxZjlmMWI1YWE2YjI1MGVkMmMwNmUyMDljOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9X
ZWJLaXQyLmRlZgpAQCAtMTYzLDYgKzE2Myw3IEBAIEVYUE9SVFMKICAgICAgICAgP2dldERhdGEx
NlNsb3dDYXNlQFN0cmluZ0ltcGxAV1RGQEBBQkVQQl9XWFoKICAgICAgICAgP2dldEVsZW1lbnRC
eUlkQFRyZWVTY29wZUBXZWJDb3JlQEBRQkVQQVZFbGVtZW50QDJAQUJWQXRvbWljU3RyaW5nQFdU
RkBAQFoKICAgICAgICAgP2dldExvY2F0aW9uQW5kTGVuZ3RoRnJvbVJhbmdlQFRleHRJdGVyYXRv
ckBXZWJDb3JlQEBTQV9OUEFWRWxlbWVudEAyQFBCVlJhbmdlQDJAQUFJMkBaCisgICAgICAgID9o
YXNTaGFkb3dSb290QEVsZW1lbnRAV2ViQ29yZUBAUUJFX05YWgogICAgICAgICA/aXNQcmVsb2Fk
ZWRAQ2FjaGVkUmVzb3VyY2VMb2FkZXJAV2ViQ29yZUBAUUJFX05BQlZTdHJpbmdAV1RGQEBAWgog
ICAgICAgICA/anNTdHJpbmdTbG93Q2FzZUBXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQQVZF
eGVjU3RhdGVAM0BBQVY/JEhhc2hNYXBAUEFWU3RyaW5nSW1wbEBXVEZAQFY/JFdlYWtAVkpTU3Ry
aW5nQEpTQ0BAQEpTQ0BAVVN0cmluZ0hhc2hAMkBVPyRIYXNoVHJhaXRzQFBBVlN0cmluZ0ltcGxA
V1RGQEBAMkBVPyRIYXNoVHJhaXRzQFY/JFdlYWtAVkpTU3RyaW5nQEpTQ0BAQEpTQ0BAQDJAQFdU
RkBAUEFWU3RyaW5nSW1wbEA2QEBaCiAgICAgICAgID9sYXN0Q2hhbmdlV2FzVXNlckVkaXRASFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnRAV2ViQ29yZUBAUUJFX05YWgpAQCAtMTg3LDcgKzE4OCw3
IEBAIEVYUE9SVFMKICAgICAgICAgP3NldHRpbmdzQERvY3VtZW50QFdlYkNvcmVAQFFCRVBBVlNl
dHRpbmdzQDJAWFoKICAgICAgICAgP3NldHRpbmdzQEZyYW1lQFdlYkNvcmVAQFFCRVBBVlNldHRp
bmdzQDJAWFoKICAgICAgICAgP3NldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWVA
U2V0dGluZ3NAV2ViQ29yZUBAUUFFWF9OQFoKLSAgICAgICAgP3NoYWRvd1Jvb3RARWxlbWVudEBX
ZWJDb3JlQEBRQkVQQVZTaGFkb3dSb290QDJAWFoKKyAgICAgICAgP3NoYWRvd1Jvb3RMaXN0QEVs
ZW1lbnRAV2ViQ29yZUBAUUJFUEFWU2hhZG93Um9vdExpc3RAMkBYWgogICAgICAgICA/c3VnZ2Vz
dGVkVmFsdWVASFRNTElucHV0RWxlbWVudEBXZWJDb3JlQEBRQkVBQlZTdHJpbmdAV1RGQEBYWgog
ICAgICAgICA/dG9Eb2N1bWVudEBXZWJDb3JlQEBZQVBBVkRvY3VtZW50QDFAVkpTVmFsdWVASlND
QEBAWgogICAgICAgICA/dG9FbGVtZW50QFdlYkNvcmVAQFlBUEFWRWxlbWVudEAxQFZKU1ZhbHVl
QEpTQ0BAQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRl
ZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgppbmRleCAzYTkyN2MyN2Nl
ZTY5ZmNhYzJhNDY2ODZkODcxNDBkMjEzYzMyMzA1Li41NWVjYTMwNmRkM2EyNjI0YTc3MTFmNWQz
OGMxMmM1NWM0ZTA0NzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNG
TGl0ZS5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCkBAIC0x
LDMgKzEsNCBAQAorCiBFWFBPUlRTCiAgICAgICAgIERsbEdldENsYXNzT2JqZWN0ICAgUFJJVkFU
RQogICAgICAgICBEbGxDYW5VbmxvYWROb3cgICAgIFBSSVZBVEUKQEAgLTE1Nyw2ICsxNTgsNyBA
QCBFWFBPUlRTCiAgICAgICAgID9nZXREYXRhMTZTbG93Q2FzZUBTdHJpbmdJbXBsQFdURkBAQUJF
UEJfV1haCiAgICAgICAgID9nZXRFbGVtZW50QnlJZEBUcmVlU2NvcGVAV2ViQ29yZUBAUUJFUEFW
RWxlbWVudEAyQEFCVkF0b21pY1N0cmluZ0BXVEZAQEBaCiAgICAgICAgID9nZXRMb2NhdGlvbkFu
ZExlbmd0aEZyb21SYW5nZUBUZXh0SXRlcmF0b3JAV2ViQ29yZUBAU0FfTlBBVkVsZW1lbnRAMkBQ
QlZSYW5nZUAyQEFBSTJAWgorICAgICAgICA/aGFzU2hhZG93Um9vdEBFbGVtZW50QFdlYkNvcmVA
QFFCRV9OWFoKICAgICAgICAgP2lzUHJlbG9hZGVkQENhY2hlZFJlc291cmNlTG9hZGVyQFdlYkNv
cmVAQFFCRV9OQUJWU3RyaW5nQFdURkBAQFoKICAgICAgICAgP2pzU3RyaW5nU2xvd0Nhc2VAV2Vi
Q29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAQUFWPyRIYXNoTWFwQFBBVlN0
cmluZ0ltcGxAV1RGQEBWPyRXZWFrQFZKU1N0cmluZ0BKU0NAQEBKU0NAQFVTdHJpbmdIYXNoQDJA
VT8kSGFzaFRyYWl0c0BQQVZTdHJpbmdJbXBsQFdURkBAQDJAVT8kSGFzaFRyYWl0c0BWPyRXZWFr
QFZKU1N0cmluZ0BKU0NAQEBKU0NAQEAyQEBXVEZAQFBBVlN0cmluZ0ltcGxANkBAWgogICAgICAg
ICA/bGFzdENoYW5nZVdhc1VzZXJFZGl0QEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50QFdlYkNv
cmVAQFFCRV9OWFoKQEAgLTE4MSw3ICsxODMsNyBAQCBFWFBPUlRTCiAgICAgICAgID9zZXR0aW5n
c0BEb2N1bWVudEBXZWJDb3JlQEBRQkVQQVZTZXR0aW5nc0AyQFhaCiAgICAgICAgID9zZXR0aW5n
c0BGcmFtZUBXZWJDb3JlQEBRQkVQQVZTZXR0aW5nc0AyQFhaCiAgICAgICAgID9zZXRGaXhlZEVs
ZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lQFNldHRpbmdzQFdlYkNvcmVAQFFBRVhfTkBaCi0g
ICAgICAgID9zaGFkb3dSb290QEVsZW1lbnRAV2ViQ29yZUBAUUJFUEFWU2hhZG93Um9vdEAyQFha
CisgICAgICAgID9zaGFkb3dSb290TGlzdEBFbGVtZW50QFdlYkNvcmVAQFFCRVBBVlNoYWRvd1Jv
b3RMaXN0QDJAWFoKICAgICAgICAgP3N1Z2dlc3RlZFZhbHVlQEhUTUxJbnB1dEVsZW1lbnRAV2Vi
Q29yZUBAUUJFQUJWU3RyaW5nQFdURkBAWFoKICAgICAgICAgP3RvRG9jdW1lbnRAV2ViQ29yZUBA
WUFQQVZEb2N1bWVudEAxQFZKU1ZhbHVlQEpTQ0BAQFoKICAgICAgICAgP3RvRWxlbWVudEBXZWJD
b3JlQEBZQVBBVkVsZW1lbnRAMUBWSlNWYWx1ZUBKU0NAQEBaCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
YXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRl
cgppbmRleCA1ZTllYjM0Y2U1NDcyMTE4MjE2Mzg0OTg0ZGYwNGRhYzNkMTVmMDhlLi40MjY0MzQ5
NTNkMGMwOTg3MmU5ZDQzN2ZjZjhmOTk0NmNjNzVlMTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvYXV0
b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCisrKyBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0
ZXIKQEAgLTc4LDggKzc4LDkgQEAgX1pOSzdXZWJDb3JlMjBDYWNoZWRSZXNvdXJjZUxvYWRlcjEx
aXNQcmVsb2FkZWRFUktOM1dURjZTdHJpbmdFOwogX1pOSzdXZWJDb3JlMjZIVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudDIxbGFzdENoYW5nZVdhc1VzZXJFZGl0RXY7CiBfWk5LN1dlYkNvcmU1RnJh
bWU4c2V0dGluZ3NFdjsKIF9aTks3V2ViQ29yZTZKU05vZGUyMXB1c2hFdmVudEhhbmRsZXJTY29w
ZUVQTjNKU0M5RXhlY1N0YXRlRVBOUzFfMTRTY29wZUNoYWluTm9kZUU7Ci1fWk5LN1dlYkNvcmU3
RWxlbWVudDEwc2hhZG93Um9vdEV2OwogX1pOSzdXZWJDb3JlN0VsZW1lbnQzMW51bWJlck9mU2Nv
cGVkSFRNTFN0eWxlQ2hpbGRyZW5FdjsKK19aTks3V2ViQ29yZTdFbGVtZW50MTNoYXNTaGFkb3dS
b290RXY7CitfWk5LN1dlYkNvcmU3RWxlbWVudDE0c2hhZG93Um9vdExpc3RFdjsKIF9aTks3V2Vi
Q29yZThEb2N1bWVudDRwYWdlRXY7CiBfWk5LN1dlYkNvcmU4RG9jdW1lbnQ4c2V0dGluZ3NFdjsK
IF9aTks3V2ViQ29yZThEb2N1bWVudDR2aWV3RXY7CmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9D
aGFuZ2VMb2cKaW5kZXggM2U2YTcwOTM2OGI1NTVmYjQ3MGQxN2IyOTgwMTg3YTVkMzFkOWE1My4u
NjViNzNlODQzZGQzZDBmNWQxN2NkYWQ0MWEwOTBlYzY4ZmE0ODJhMyAxMDA2NDQKLS0tIGEvQ2hh
bmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTAyLTE0ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgVXNlIHlvdW5nZXN0
U2hhZG93Um9vdCBhbmQgb2xkZXN0U2hhZG93Um9vdCBpbnN0ZWFkIG9mIEVsZW1lbnQ6OnNoYWRv
d1Jvb3QoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc4NDU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
RXhwb3J0cyBuZWNlc3Nhcnkgc3ltYm9scy4KKworICAgICAgICAqIFNvdXJjZS9hdXRvdG9vbHMv
c3ltYm9scy5maWx0ZXI6CisKIDIwMTItMDItMTMgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgWWV0IGFub3RoZXIgcGVyZi1vLW1hdGljIGJ1aWxkIGZpeC4gSXQg
dHVybnMgb3V0IHRoYXQgYSB0YXNrIG9mIHRoZSBzYW1lIG5hbWUgY2FuJ3QgYmUK
</data>

          </attachment>
      

    </bug>

</bugzilla>