<?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>101180</bug_id>
          
          <creation_ts>2012-11-04 22:18:55 -0800</creation_ts>
          <short_desc>[Shadow] ElementShadow should have RuleFeatureSet for select attribute selectors.</short_desc>
          <delta_ts>2012-11-11 19:40:40 -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>
          <dependson>101543</dependson>
    
    <dependson>101692</dependson>
          <blocked>100451</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Shinya Kawanaka">shinyak</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>gustavo</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>philn</cc>
    
    <cc>webcomponents-bugzilla</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>758236</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-04 22:18:55 -0800</bug_when>
    <thetext>This is a preparation for https://bugs.webkit.org/show_bug.cgi?id=100451

When attribute is changed, we would like to consult with FeatureRuleSet whether we have to invalidate distribution or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760504</commentid>
    <comment_count>1</comment_count>
      <attachid>172753</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-07 03:42:04 -0800</bug_when>
    <thetext>Created attachment 172753
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760511</commentid>
    <comment_count>2</comment_count>
      <attachid>172753</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-07 03:52:51 -0800</bug_when>
    <thetext>Comment on attachment 172753
WIP

Attachment 172753 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14763153</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760569</commentid>
    <comment_count>3</comment_count>
      <attachid>172753</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-07 05:31:54 -0800</bug_when>
    <thetext>Comment on attachment 172753
WIP

Attachment 172753 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14757360</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760751</commentid>
    <comment_count>4</comment_count>
      <attachid>172753</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-11-07 09:04:03 -0800</bug_when>
    <thetext>Comment on attachment 172753
WIP

Really excited about this direction. Being smart about when to redistribute is awesome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761465</commentid>
    <comment_count>5</comment_count>
      <attachid>172957</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-08 01:36:15 -0800</bug_when>
    <thetext>Created attachment 172957
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761470</commentid>
    <comment_count>6</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-08 01:37:33 -0800</bug_when>
    <thetext>This is almost reviewable, though it contains a patch for Bug 101543.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761477</commentid>
    <comment_count>7</comment_count>
      <attachid>172961</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-08 01:41:22 -0800</bug_when>
    <thetext>Created attachment 172961
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761493</commentid>
    <comment_count>8</comment_count>
      <attachid>172961</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-08 02:03:50 -0800</bug_when>
    <thetext>Comment on attachment 172961
WIP

Attachment 172961 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14763482</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761499</commentid>
    <comment_count>9</comment_count>
      <attachid>172961</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-08 02:23:33 -0800</bug_when>
    <thetext>Comment on attachment 172961
WIP

Attachment 172961 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14771088</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761503</commentid>
    <comment_count>10</comment_count>
      <attachid>172967</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-08 02:25:29 -0800</bug_when>
    <thetext>Created attachment 172967
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761689</commentid>
    <comment_count>11</comment_count>
      <attachid>172967</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-08 05:34:08 -0800</bug_when>
    <thetext>Comment on attachment 172967
WIP

Attachment 172967 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14757769</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761837</commentid>
    <comment_count>12</comment_count>
      <attachid>172967</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-11-08 08:47:39 -0800</bug_when>
    <thetext>Comment on attachment 172967
WIP

This looks great! May I suggest 3 patches?
1) refactor RuleFeature/RuleSet to expose collectFeaturesFromSelector
2) refactor HTMLContentElement to move in selector validation
3) everything else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762484</commentid>
    <comment_count>13</comment_count>
      <attachid>173185</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-08 20:18:09 -0800</bug_when>
    <thetext>Created attachment 173185
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762485</commentid>
    <comment_count>14</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-08 20:19:19 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 172967 [details])
&gt; This looks great! May I suggest 3 patches?
&gt; 1) refactor RuleFeature/RuleSet to expose collectFeaturesFromSelector
&gt; 2) refactor HTMLContentElement to move in selector validation
&gt; 3) everything else.

Yes.
(1) will be done in Bug 101692
(2) has been done in Bug 100738
(3) is here!

The previous WIP patch contains (1) and (3).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762608</commentid>
    <comment_count>15</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-08 23:06:21 -0800</bug_when>
    <thetext>not Bug 100738 but Bug 101543.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762611</commentid>
    <comment_count>16</comment_count>
      <attachid>173213</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-08 23:11:16 -0800</bug_when>
    <thetext>Created attachment 173213
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763067</commentid>
    <comment_count>17</comment_count>
      <attachid>173213</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-11-09 09:10:45 -0800</bug_when>
    <thetext>Comment on attachment 173213
Patch

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

&gt; Source/WebCore/dom/ElementShadow.cpp:237
&gt; +        for (Node* node = root-&gt;firstChild(); node; node = node-&gt;traverseNextNode()) {

Should this not only collect from children, not all descendants?

&gt; Source/WebCore/dom/ElementShadow.cpp:246
&gt; +        for (Node* node = root-&gt;firstChild(); node; node = node-&gt;traverseNextNode()) {

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763615</commentid>
    <comment_count>18</comment_count>
      <attachid>173213</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-10 00:27:16 -0800</bug_when>
    <thetext>Comment on attachment 173213
Patch

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

&gt;&gt; Source/WebCore/dom/ElementShadow.cpp:237
&gt;&gt; +        for (Node* node = root-&gt;firstChild(); node; node = node-&gt;traverseNextNode()) {
&gt; 
&gt; Should this not only collect from children, not all descendants?

It should collect all descendants, right? 
I&apos;m using traverseNextNode() instead of nextSibling()...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763625</commentid>
    <comment_count>19</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-10 01:59:08 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 173213 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=173213&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/dom/ElementShadow.cpp:237
&gt; &gt;&gt; +        for (Node* node = root-&gt;firstChild(); node; node = node-&gt;traverseNextNode()) {
&gt; &gt; 
&gt; &gt; Should this not only collect from children, not all descendants?
&gt; 
&gt; It should collect all descendants, right? 
&gt; I&apos;m using traverseNextNode() instead of nextSibling()...

Ah, I see.. We don&apos;t need collect all descendants. Only direct children are required.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763945</commentid>
    <comment_count>20</comment_count>
      <attachid>173213</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-11 17:56:37 -0800</bug_when>
    <thetext>Comment on attachment 173213
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/dom/ElementShadow.cpp:237
&gt;&gt;&gt;&gt; +        for (Node* node = root-&gt;firstChild(); node; node = node-&gt;traverseNextNode()) {
&gt;&gt;&gt; 
&gt;&gt;&gt; Should this not only collect from children, not all descendants?
&gt;&gt; 
&gt;&gt; It should collect all descendants, right? 
&gt;&gt; I&apos;m using traverseNextNode() instead of nextSibling()...
&gt; 
&gt; Ah, I see.. We don&apos;t need collect all descendants. Only direct children are required.

Oops. This is not correct. We should collect all elements having ElementShadow. So this code should be right...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763950</commentid>
    <comment_count>21</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-11 18:11:00 -0800</bug_when>
    <thetext>Example:

When className of div[class=&quot;foo&quot;] is changed, we have to invalidate distribution.

div -------------------------- ShadowRoot
 | - div[class=&quot;foo&quot;]              |- div ------------------------------ ShadowRoot
                                   |- div
                                       |- div ----- ShadowRoot
                                       |- shadow        |-content[select=&quot;.foo&quot;]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763987</commentid>
    <comment_count>22</comment_count>
      <attachid>173213</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-11 19:40:35 -0800</bug_when>
    <thetext>Comment on attachment 173213
Patch

Clearing flags on attachment: 173213

Committed r134184: &lt;http://trac.webkit.org/changeset/134184&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763988</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-11 19:40:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172753</attachid>
            <date>2012-11-07 03:42:04 -0800</date>
            <delta_ts>2012-11-08 01:36:12 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-101180-20121107204015.patch</filename>
            <type>text/plain</type>
            <size>18023</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTE2YWU5MzQ5NmQzNjA0
YmVkMGNmYjEwNTBhNzk2ZDk5OTNhYzExMi4uMGIxYmE1N2ZkZThhMjQzZTUxMmJjNDU2ODM0MmQ1
YWJjZDFlOGVjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTExLTA3ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbU2hhZG93XSBT
aGFkb3dSb290IHNob3VsZCBoYXZlIFJ1bGVGZWF0dXJlU2V0IGZvciBzZWxlY3QgYXR0cmlidXRl
IHNlbGVjdG9ycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMTE4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFdJUC4KKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXNlbGVjdC1h
dHRyaWJ1dGUtZmVhdHVyZXNldC5odG1sCisKKyAgICAgICAgKiBkb20vRWxlbWVudFNoYWRvdy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjb2xsZWN0RmVhdHVyZXNGcm9tU2VsZWN0b3IpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hhZG93OjpFbGVtZW50
U2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFkb3c6OmVuc3VyZVNlbGVjdEZl
YXR1cmVTZXRDb2xsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6Y29s
bGVjdFNlbGVjdEZlYXR1cmVTZXRGcm9tKToKKyAgICAgICAgKiBkb20vRWxlbWVudFNoYWRvdy5o
OgorICAgICAgICAoRWxlbWVudFNoYWRvdyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hh
ZG93OjpzZXRTaG91bGRDb2xsZWN0U2VsZWN0RmVhdHVyZVNldCk6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50U2hhZG93OjpoYXNTZWxlY3RvckZvcklkKToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6aGFzU2VsZWN0b3JGb3JDbGFzcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hhZG93OjpoYXNTZWxlY3RvckZvckF0dHJpYnV0ZSk6
CisgICAgICAgICogaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6SFRNTENvbnRlbnRFbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6c2V0U2VsZWN0KToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRFbGVtZW50OjpwYXJzZVNlbGVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6aW5zZXJ0ZWRJbnRvKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6cmVtb3ZlZEZyb20pOgorICAg
ICAgICAqIGh0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oOgorICAgICAgICAoSFRNTENv
bnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6c2Vs
ZWN0U2VsZWN0b3JMaXN0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
dG9IVE1MQ29udGVudEVsZW1lbnQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpoYXNTZWxl
Y3RvckZvckNsYXNzSW5TaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpoYXNT
ZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
cy5oOgorICAgICAgICAoSW50ZXJuYWxzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5p
ZGw6CisKIDIwMTItMTEtMDYgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAK
ICAgICAgICAgQ2xlYW4gdXAgd2hpY2ggc3RvcmFnZSBjb29raWUgamFyIGZ1bmN0aW9ucyB1c2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmNwcAppbmRleCA2Zjg3ZjE2NDRhZmI5NGJmYmZl
NWViNzhjZWIzMWZlZTQ1MTYyZjFiLi40YmY1YjE4MzZlYzZiNWRkMWE5NTQ4MzViZTE0NmU4YTkw
Zjk3OTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuY3BwCkBAIC0yNyw5ICsyNywx
MiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKIAor
I2luY2x1ZGUgIkNTU1BhcnNlci5oIgorI2luY2x1ZGUgIkNTU1NlbGVjdG9yTGlzdC5oIgogI2lu
Y2x1ZGUgIkNvbnRhaW5lck5vZGVBbGdvcml0aG1zLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
ICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCiAj
aW5jbHVkZSAiSFRNTFNoYWRvd0VsZW1lbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCkBAIC0zOCw3ICs0MSwyMCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBjb2xsZWN0RmVhdHVy
ZXNGcm9tU2VsZWN0b3IoUnVsZUZlYXR1cmVTZXQmIGZlYXR1cmVzLCBjb25zdCBDU1NTZWxlY3Rv
ciogc2VsZWN0b3IpCit7CisgICAgLy8gVE9ETzogbWVyZ2Ugd2l0aCBSdWxlU2V0LmNwcAorCisg
ICAgaWYgKHNlbGVjdG9yLT5tX21hdGNoID09IENTU1NlbGVjdG9yOjpJZCkKKyAgICAgICAgZmVh
dHVyZXMuaWRzSW5SdWxlcy5hZGQoc2VsZWN0b3ItPnZhbHVlKCkuaW1wbCgpKTsKKyAgICBpZiAo
c2VsZWN0b3ItPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OkNsYXNzKQorICAgICAgICBmZWF0dXJl
cy5jbGFzc2VzSW5SdWxlcy5hZGQoc2VsZWN0b3ItPnZhbHVlKCkuaW1wbCgpKTsKKyAgICBpZiAo
c2VsZWN0b3ItPmlzQXR0cmlidXRlU2VsZWN0b3IoKSkKKyAgICAgICAgZmVhdHVyZXMuYXR0cnNJ
blJ1bGVzLmFkZChzZWxlY3Rvci0+YXR0cmlidXRlKCkubG9jYWxOYW1lKCkuaW1wbCgpKTsKK30K
KwogRWxlbWVudFNoYWRvdzo6RWxlbWVudFNoYWRvdygpCisgICAgOiBtX3Nob3VsZENvbGxlY3RT
ZWxlY3RGZWF0dXJlU2V0KGZhbHNlKQogewogfQogCkBAIC0yMDMsNiArMjE5LDM0IEBAIHZvaWQg
RWxlbWVudFNoYWRvdzo6aW52YWxpZGF0ZURpc3RyaWJ1dGlvbihFbGVtZW50KiBob3N0KQogICAg
ICAgICBtX2Rpc3RyaWJ1dG9yLmZpbmlzaEluaXZhbGlkYXRpb24oKTsKIH0KIAordm9pZCBFbGVt
ZW50U2hhZG93OjplbnN1cmVTZWxlY3RGZWF0dXJlU2V0Q29sbGVjdGVkKCkKK3sKKyAgICBpZiAo
IW1fc2hvdWxkQ29sbGVjdFNlbGVjdEZlYXR1cmVTZXQpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fc2VsZWN0RmVhdHVyZXMuY2xlYXIoKTsKKyAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSBv
bGRlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT55b3VuZ2VyU2hhZG93Um9vdCgp
KQorICAgICAgICBjb2xsZWN0U2VsZWN0RmVhdHVyZVNldEZyb20ocm9vdCk7CisgICAgbV9zaG91
bGRDb2xsZWN0U2VsZWN0RmVhdHVyZVNldCA9IGZhbHNlOworfQorCit2b2lkIEVsZW1lbnRTaGFk
b3c6OmNvbGxlY3RTZWxlY3RGZWF0dXJlU2V0RnJvbShTaGFkb3dSb290KiByb290KQoreworICAg
IGlmICghcm9vdC0+aGFzQ29udGVudEVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Q1NTUGFyc2VyIHBhcnNlcihyb290LT5kb2N1bWVudCgpKTsKKyAgICBmb3IgKE5vZGUqIG5vZGUg
PSByb290LT5maXJzdENoaWxkKCk7IG5vZGU7IG5vZGUgPSBub2RlLT50cmF2ZXJzZU5leHROb2Rl
KCkpIHsKKyAgICAgICAgaWYgKCFpc0hUTUxDb250ZW50RWxlbWVudChub2RlKSkKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworCisgICAgICAgIC8vIEZJWE1FOiBUaGlzIGJyZWFrcyBtZW1vcnkuCisg
ICAgICAgIGNvbnN0IENTU1NlbGVjdG9yTGlzdCYgbGlzdCA9IHRvSFRNTENvbnRlbnRFbGVtZW50
KG5vZGUpLT5zZWxlY3RTZWxlY3Rvckxpc3QoKTsKKyAgICAgICAgZm9yIChDU1NTZWxlY3Rvciog
c2VsZWN0b3IgPSBsaXN0LmZpcnN0KCk7IHNlbGVjdG9yOyBzZWxlY3RvciA9IGxpc3QubmV4dChz
ZWxlY3RvcikpCisgICAgICAgICAgICBjb2xsZWN0RmVhdHVyZXNGcm9tU2VsZWN0b3IobV9zZWxl
Y3RGZWF0dXJlcywgc2VsZWN0b3IpOworICAgIH0KK30KKwogdm9pZCBFbGVtZW50U2hhZG93Ojpy
ZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25z
dAogewogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdl
YkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50U2hhZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5oCmluZGV4
IDJmNmY1NmM3NGY2NjkyY2VlMzQ0ODZhOWE3ZjliMDIxYzcwZTkyODUuLmNhNDA2MDRiY2U0MzAz
NmU4NDM0ODRlNWY2OTU1OTA2OTNlYWE3ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50U2hhZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cu
aApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQ29udGVudERpc3RyaWJ1dG9yLmgiCiAj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIlJ1bGVGZWF0dXJlLmgiCiAjaW5j
bHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgPHd0Zi9Eb3VibHlMaW5rZWRMaXN0Lmg+CiAj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC02OSwxMyArNzAsMjQgQEAgcHVibGljOgog
ICAgIENvbnRlbnREaXN0cmlidXRvciYgZGlzdHJpYnV0b3IoKTsKICAgICBjb25zdCBDb250ZW50
RGlzdHJpYnV0b3ImIGRpc3RyaWJ1dG9yKCkgY29uc3Q7CiAKKyAgICB2b2lkIGVuc3VyZVNlbGVj
dEZlYXR1cmVTZXRDb2xsZWN0ZWQoKTsKKyAgICB2b2lkIHNldFNob3VsZENvbGxlY3RTZWxlY3RG
ZWF0dXJlU2V0KGJvb2wgZmxhZykgeyBtX3Nob3VsZENvbGxlY3RTZWxlY3RGZWF0dXJlU2V0ID0g
ZmxhZzsgfQorCisgICAgYm9vbCBoYXNTZWxlY3RvckZvcklkKGNvbnN0IEF0b21pY1N0cmluZyYp
IGNvbnN0OworICAgIGJvb2wgaGFzU2VsZWN0b3JGb3JDbGFzcyhjb25zdCBBdG9taWNTdHJpbmcm
KSBjb25zdDsKKyAgICBib29sIGhhc1NlbGVjdG9yRm9yQXR0cmlidXRlKGNvbnN0IEF0b21pY1N0
cmluZyYpIGNvbnN0OworCiAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBpbnZhbGlkYXRlRGlzdHJpYnV0aW9u
KEVsZW1lbnQqIGhvc3QpOwogCisgICAgdm9pZCBjb2xsZWN0U2VsZWN0RmVhdHVyZVNldEZyb20o
U2hhZG93Um9vdCopOworCiAgICAgRG91Ymx5TGlua2VkTGlzdDxTaGFkb3dSb290PiBtX3NoYWRv
d1Jvb3RzOwogICAgIENvbnRlbnREaXN0cmlidXRvciBtX2Rpc3RyaWJ1dG9yOworICAgIFJ1bGVG
ZWF0dXJlU2V0IG1fc2VsZWN0RmVhdHVyZXM7CisgICAgYm9vbCBtX3Nob3VsZENvbGxlY3RTZWxl
Y3RGZWF0dXJlU2V0IDogMTsKIH07CiAKIGlubGluZSBTaGFkb3dSb290KiBFbGVtZW50U2hhZG93
Ojp5b3VuZ2VzdFNoYWRvd1Jvb3QoKSBjb25zdApAQCAtMTEzLDYgKzEyNSwyNCBAQCBpbmxpbmUg
U2hhZG93Um9vdCogTm9kZTo6eW91bmdlc3RTaGFkb3dSb290KCkgY29uc3QKICAgICByZXR1cm4g
MDsKIH0KIAoraW5saW5lIGJvb2wgRWxlbWVudFNoYWRvdzo6aGFzU2VsZWN0b3JGb3JJZChjb25z
dCBBdG9taWNTdHJpbmcmIGlkVmFsdWUpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFpZFZhbHVlLmlz
RW1wdHkoKSk7CisgICAgcmV0dXJuIG1fc2VsZWN0RmVhdHVyZXMuaWRzSW5SdWxlcy5jb250YWlu
cyhpZFZhbHVlLmltcGwoKSk7Cit9CisKK2lubGluZSBib29sIEVsZW1lbnRTaGFkb3c6Omhhc1Nl
bGVjdG9yRm9yQ2xhc3MoY29uc3QgQXRvbWljU3RyaW5nJiBjbGFzc1ZhbHVlKSBjb25zdAorewor
ICAgIEFTU0VSVCghY2xhc3NWYWx1ZS5pc0VtcHR5KCkpOworICAgIHJldHVybiBtX3NlbGVjdEZl
YXR1cmVzLmNsYXNzZXNJblJ1bGVzLmNvbnRhaW5zKGNsYXNzVmFsdWUuaW1wbCgpKTsKK30KKwor
aW5saW5lIGJvb2wgRWxlbWVudFNoYWRvdzo6aGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGUoY29uc3Qg
QXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVOYW1lKSBjb25zdAoreworICAgIEFTU0VSVCghYXR0cmli
dXRlTmFtZS5pc0VtcHR5KCkpOworICAgIHJldHVybiBtX3NlbGVjdEZlYXR1cmVzLmF0dHJzSW5S
dWxlcy5jb250YWlucyhhdHRyaWJ1dGVOYW1lLmltcGwoKSk7Cit9CisKIGNsYXNzIFNoYWRvd1Jv
b3RWZWN0b3IgOiBwdWJsaWMgVmVjdG9yPFJlZlB0cjxTaGFkb3dSb290PiA+IHsKIHB1YmxpYzoK
ICAgICBleHBsaWNpdCBTaGFkb3dSb290VmVjdG9yKEVsZW1lbnRTaGFkb3cqIHRyZWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcAppbmRl
eCA1MDQwZTllYjhkNjA2Mjc1NmVlYWY5YmU0NDM3NGQ2NmE1ZTEyNWUwLi45ZWM2MDYxMDZjMDdj
NWRkNjgwNjI1MDQ3MjM3OTNiODAzMTM4YTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIKIAorI2luY2x1
ZGUgIkNTU1BhcnNlci5oIgogI2luY2x1ZGUgIkNvbnRlbnREaXN0cmlidXRvci5oIgogI2luY2x1
ZGUgIkNvbnRlbnRTZWxlY3RvclF1ZXJ5LmgiCiAjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVzLmgi
CkBAIC02NSw2ICs2Niw3IEBAIFBhc3NSZWZQdHI8SFRNTENvbnRlbnRFbGVtZW50PiBIVE1MQ29u
dGVudEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0CiBIVE1MQ29udGVudEVs
ZW1lbnQ6OkhUTUxDb250ZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBEb2N1
bWVudCogZG9jdW1lbnQpCiAgICAgOiBJbnNlcnRpb25Qb2ludChuYW1lLCBkb2N1bWVudCkKICAg
ICAsIG1fcmVnaXN0ZXJlZFdpdGhTaGFkb3dSb290KGZhbHNlKQorICAgICwgbV9zaG91bGRQYXJz
ZVNlbGVjdG9yTGlzdChmYWxzZSkKIHsKIH0KIApAQCAtODUsMTQgKzg3LDIzIEBAIGJvb2wgSFRN
TENvbnRlbnRFbGVtZW50Ojppc1NlbGVjdFZhbGlkKCkgY29uc3QKIAogdm9pZCBIVE1MQ29udGVu
dEVsZW1lbnQ6OnNldFNlbGVjdChjb25zdCBBdG9taWNTdHJpbmcmIHNlbGVjdFZhbHVlKQogewot
ICAgIHNldEF0dHJpYnV0ZShzZWxlY3RBdHRyLCBzZWxlY3RWYWx1ZSk7CisgICAgc2V0QXR0cmli
dXRlKHNlbGVjdEF0dHIsIHNlbGVjdFZhbHVlKTsgICAgCit9CisKK3ZvaWQgSFRNTENvbnRlbnRF
bGVtZW50OjpwYXJzZVNlbGVjdCgpCit7CisgICAgQ1NTUGFyc2VyIHBhcnNlcihkb2N1bWVudCgp
KTsKKyAgICBwYXJzZXIucGFyc2VTZWxlY3RvcihzZWxlY3QoKSwgbV9zZWxlY3Rvckxpc3QpOwog
fQogCiB2b2lkIEhUTUxDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgQXR0cmli
dXRlJiBhdHRyaWJ1dGUpCiB7CiAgICAgaWYgKGF0dHJpYnV0ZS5uYW1lKCkgPT0gc2VsZWN0QXR0
cikgewotICAgICAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IHNoYWRvd1Jvb3QoKSkKKyAgICAg
ICAgaWYgKFNoYWRvd1Jvb3QqIHJvb3QgPSBzaGFkb3dSb290KCkpIHsKKyAgICAgICAgICAgIHJv
b3QtPm93bmVyKCktPnNldFNob3VsZENvbGxlY3RTZWxlY3RGZWF0dXJlU2V0KHRydWUpOwogICAg
ICAgICAgICAgcm9vdC0+b3duZXIoKS0+aW52YWxpZGF0ZURpc3RyaWJ1dGlvbigpOworICAgICAg
ICB9CisgICAgICAgIG1fc2hvdWxkUGFyc2VTZWxlY3Rvckxpc3QgPSB0cnVlOwogICAgIH0gZWxz
ZQogICAgICAgICBJbnNlcnRpb25Qb2ludDo6cGFyc2VBdHRyaWJ1dGUoYXR0cmlidXRlKTsKIH0K
QEAgLTEwMiw3ICsxMTMsOSBAQCBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IEhU
TUxDb250ZW50RWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZAogICAgIEluc2VydGlv
blBvaW50OjppbnNlcnRlZEludG8oaW5zZXJ0aW9uUG9pbnQpOwogCiAgICAgaWYgKGluc2VydGlv
blBvaW50LT5pbkRvY3VtZW50KCkgJiYgaXNBY3RpdmUoKSkgewotICAgICAgICBzaGFkb3dSb290
KCktPnJlZ2lzdGVyQ29udGVudEVsZW1lbnQoKTsKKyAgICAgICAgU2hhZG93Um9vdCogcm9vdCA9
IHNoYWRvd1Jvb3QoKTsKKyAgICAgICAgcm9vdC0+cmVnaXN0ZXJDb250ZW50RWxlbWVudCgpOwor
ICAgICAgICByb290LT5vd25lcigpLT5zZXRTaG91bGRDb2xsZWN0U2VsZWN0RmVhdHVyZVNldCh0
cnVlKTsKICAgICAgICAgbV9yZWdpc3RlcmVkV2l0aFNoYWRvd1Jvb3QgPSB0cnVlOwogICAgIH0K
IApAQCAtMTE4LDYgKzEzMSw5IEBAIHZvaWQgSFRNTENvbnRlbnRFbGVtZW50OjpyZW1vdmVkRnJv
bShDb250YWluZXJOb2RlKiBpbnNlcnRpb25Qb2ludCkKICAgICAgICAgaWYgKHJvb3QpCiAgICAg
ICAgICAgICByb290LT51bnJlZ2lzdGVyQ29udGVudEVsZW1lbnQoKTsKICAgICAgICAgbV9yZWdp
c3RlcmVkV2l0aFNoYWRvd1Jvb3QgPSBmYWxzZTsKKworICAgICAgICBpZiAoRWxlbWVudFNoYWRv
dyogZWxlbWVudFNoYWRvdyA9IHJvb3QgPyByb290LT5vd25lcigpIDogMCkKKyAgICAgICAgICAg
IGVsZW1lbnRTaGFkb3ctPnNldFNob3VsZENvbGxlY3RTZWxlY3RGZWF0dXJlU2V0KHRydWUpOwog
ICAgIH0KICAgICBJbnNlcnRpb25Qb2ludDo6cmVtb3ZlZEZyb20oaW5zZXJ0aW9uUG9pbnQpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaApp
bmRleCAyYTNhMzJjZWE1NTkyOWU4N2NlNzFiYWM3M2I3ODY0Yzc5MGYwZmY2Li44NjM0YzNjNWI5
Y2Q5YzhjMmQ1ZWQzMzJjYWI1ZDAzNzFhODI3NjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaApAQCAtMzEsNiArMzEsNyBAQAogI2lmbmRl
ZiBIVE1MQ29udGVudEVsZW1lbnRfaAogI2RlZmluZSBIVE1MQ29udGVudEVsZW1lbnRfaAogCisj
aW5jbHVkZSAiQ1NTU2VsZWN0b3JMaXN0LmgiCiAjaW5jbHVkZSAiSW5zZXJ0aW9uUG9pbnQuaCIK
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCkBAIC00Nyw2ICs0OCw3IEBAIHB1YmxpYzoKICAg
ICBjb25zdCBBdG9taWNTdHJpbmcmIHNlbGVjdCgpIGNvbnN0OwogICAgIHZvaWQgc2V0U2VsZWN0
KGNvbnN0IEF0b21pY1N0cmluZyYpOwogICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFZhbGlkKCkg
Y29uc3Q7CisgICAgY29uc3QgQ1NTU2VsZWN0b3JMaXN0JiBzZWxlY3RTZWxlY3Rvckxpc3QoKTsK
IAogcHJvdGVjdGVkOgogICAgIEhUTUxDb250ZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQqKTsKQEAgLTU2LDE2ICs1OCwzNSBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIE9WRVJS
SURFOworICAgIHZvaWQgcGFyc2VTZWxlY3QoKTsKIAogICAgIGJvb2wgbV9yZWdpc3RlcmVkV2l0
aFNoYWRvd1Jvb3Q7CisgICAgYm9vbCBtX3Nob3VsZFBhcnNlU2VsZWN0b3JMaXN0OworICAgIENT
U1NlbGVjdG9yTGlzdCBtX3NlbGVjdG9yTGlzdDsKIH07CiAKK2lubGluZSBjb25zdCBDU1NTZWxl
Y3Rvckxpc3QmIEhUTUxDb250ZW50RWxlbWVudDo6c2VsZWN0U2VsZWN0b3JMaXN0KCkKK3sKKyAg
ICBpZiAobV9zaG91bGRQYXJzZVNlbGVjdG9yTGlzdCkgeworICAgICAgICBwYXJzZVNlbGVjdCgp
OworICAgICAgICBtX3Nob3VsZFBhcnNlU2VsZWN0b3JMaXN0ID0gZmFsc2U7CisgICAgfQorCisg
ICAgcmV0dXJuIG1fc2VsZWN0b3JMaXN0OworfQorCiBpbmxpbmUgYm9vbCBpc0hUTUxDb250ZW50
RWxlbWVudChjb25zdCBOb2RlKiBub2RlKQogewogICAgIEFTU0VSVChub2RlKTsKICAgICByZXR1
cm4gbm9kZS0+aGFzVGFnTmFtZShIVE1MQ29udGVudEVsZW1lbnQ6OmNvbnRlbnRUYWdOYW1lKG5v
ZGUtPmRvY3VtZW50KCkpKTsKIH0KIAoraW5saW5lIEhUTUxDb250ZW50RWxlbWVudCogdG9IVE1M
Q29udGVudEVsZW1lbnQoTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQoIW5vZGUgfHwgaXNIVE1M
Q29udGVudEVsZW1lbnQobm9kZSkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MQ29udGVu
dEVsZW1lbnQqPihub2RlKTsKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAppbmRleCBiNDUzZmI3ZTNmYjE4ODllY2MwNGZiMzgzMDA4MjA3ZmRiM2I5YzQy
Li5lMDgyYmI0MDBjNTc0ZWUxMTA5YzRhYjEwY2E1MzgwODdiMGNiY2VkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zMDYsNiArMzA2LDM5IEBAIE5vZGUqIEludGVybmFs
czo6cGFyZW50VHJlZVNjb3BlKE5vZGUqIG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHJl
dHVybiBwYXJlbnRUcmVlU2NvcGUgPyBwYXJlbnRUcmVlU2NvcGUtPnJvb3ROb2RlKCkgOiAwOwog
fQogCitib29sIEludGVybmFsczo6aGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KEVsZW1lbnQqIGhv
c3QsIGNvbnN0IFN0cmluZyYgaWRWYWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYg
KCFob3N0IHx8ICFob3N0LT5zaGFkb3coKSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNT
X0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgaG9zdC0+c2hhZG93KCktPmVu
c3VyZVNlbGVjdEZlYXR1cmVTZXRDb2xsZWN0ZWQoKTsKKyAgICByZXR1cm4gaG9zdC0+c2hhZG93
KCktPmhhc1NlbGVjdG9yRm9ySWQoaWRWYWx1ZSk7Cit9CisKK2Jvb2wgSW50ZXJuYWxzOjpoYXNT
ZWxlY3RvckZvckNsYXNzSW5TaGFkb3coRWxlbWVudCogaG9zdCwgY29uc3QgU3RyaW5nJiBjbGFz
c05hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghaG9zdCB8fCAhaG9zdC0+c2hh
ZG93KCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVy
biAwOworICAgIH0KKworICAgIGhvc3QtPnNoYWRvdygpLT5lbnN1cmVTZWxlY3RGZWF0dXJlU2V0
Q29sbGVjdGVkKCk7CisgICAgcmV0dXJuIGhvc3QtPnNoYWRvdygpLT5oYXNTZWxlY3RvckZvckNs
YXNzKGNsYXNzTmFtZSk7Cit9CisKK2Jvb2wgSW50ZXJuYWxzOjpoYXNTZWxlY3RvckZvckF0dHJp
YnV0ZUluU2hhZG93KEVsZW1lbnQqIGhvc3QsIGNvbnN0IFN0cmluZyYgYXR0cmlidXRlTmFtZSwg
RXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFob3N0IHx8ICFob3N0LT5zaGFkb3coKSkg
eworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7Cisg
ICAgfQorCisgICAgaG9zdC0+c2hhZG93KCktPmVuc3VyZVNlbGVjdEZlYXR1cmVTZXRDb2xsZWN0
ZWQoKTsKKyAgICByZXR1cm4gaG9zdC0+c2hhZG93KCktPmhhc1NlbGVjdG9yRm9yQXR0cmlidXRl
KGF0dHJpYnV0ZU5hbWUpOworfQorCiBib29sIEludGVybmFsczo6aGFzU2hhZG93SW5zZXJ0aW9u
UG9pbnQoY29uc3QgTm9kZSogcm9vdCwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7CiAgICAg
aWYgKHJvb3QgJiYgcm9vdC0+aXNTaGFkb3dSb290KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaAppbmRleCAyMTExNzM5N2M4MTFjODU4ZjNiMWY0OWZjNTdkMTZhYzI1YTcxMTIxLi41NDRk
MzFlODg5NDUwZTU1MWQ3YzhiZDI5MTM2YzdjNzEyYTA0ZWU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmgKQEAgLTk2LDYgKzk2LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNWYWxpZENv
bnRlbnRTZWxlY3QoRWxlbWVudCogaW5zZXJ0aW9uUG9pbnQsIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICBOb2RlKiB0cmVlU2NvcGVSb290Tm9kZShOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIE5v
ZGUqIHBhcmVudFRyZWVTY29wZShOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOworICAgIGJvb2wgaGFz
U2VsZWN0b3JGb3JJZEluU2hhZG93KEVsZW1lbnQqIGhvc3QsIGNvbnN0IFN0cmluZyYgaWRWYWx1
ZSwgRXhjZXB0aW9uQ29kZSYpOworICAgIGJvb2wgaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93
KEVsZW1lbnQqIGhvc3QsIGNvbnN0IFN0cmluZyYgY2xhc3NOYW1lLCBFeGNlcHRpb25Db2RlJik7
CisgICAgYm9vbCBoYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KEVsZW1lbnQqIGhvc3Qs
IGNvbnN0IFN0cmluZyYgYXR0cmlidXRlTmFtZSwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgYm9v
bCBhdHRhY2hlZChOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwKaW5kZXggN2E1YWI3YjkwZWRiNjRiNjUwZGMzNDM3YjQzYTFkNjk5NzFiMDFh
ZC4uMzA0ZTY0YzhlZWNkMDBmNTMyM2VkYzYyYTBhZWY4ZWY4MzE3YmVkNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNTksNiArNTksOSBAQAogICAgIGJvb2xlYW4gaXNW
YWxpZENvbnRlbnRTZWxlY3QoaW4gRWxlbWVudCBjb250ZW50RWxlbWVudCkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgTm9kZSB0cmVlU2NvcGVSb290Tm9kZShpbiBOb2RlIG5vZGUpIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKICAgICBOb2RlIHBhcmVudFRyZWVTY29wZShpbiBOb2RlIG5vZGUp
IHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICBib29sZWFuIGhhc1NlbGVjdG9yRm9ySWRJblNo
YWRvdyhpbiBFbGVtZW50IGhvc3QsIGluIERPTVN0cmluZyBpZCkgcmFpc2VzIChET01FeGNlcHRp
b24pOworICAgIGJvb2xlYW4gaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGluIEVsZW1lbnQg
aG9zdCwgaW4gRE9NU3RyaW5nIGNsYXNzTmFtZSkgcmFpc2VzIChET01FeGNlcHRpb24pOworICAg
IGJvb2xlYW4gaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhpbiBFbGVtZW50IGhvc3Qs
IGluIERPTVN0cmluZyBhdHRyaWJ1dGVOYW1lKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKICAg
ICBOb2RlIG5leHRTaWJsaW5nQnlXYWxrZXIoaW4gTm9kZSBub2RlKSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKICAgICBOb2RlIGZpcnN0Q2hpbGRCeVdhbGtlcihpbiBOb2RlIG5vZGUpIHJhaXNlcyhE
T01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGE5ZjIxMDc1OTJiMmE3ODkyNjgwNGFiNDFjM2Y3YzQ0ZWI4
NTc2NjEuLjdiZDE0NTk4NmJmYTAyM2JjNDMxNDRhZWZlZGM4Nzc1MjZmNDg1NjQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAxMi0xMS0wNyAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW1NoYWRvd10gU2hhZG93Um9vdCBzaG91bGQgaGF2ZSBSdWxl
RmVhdHVyZVNldCBmb3Igc2VsZWN0IGF0dHJpYnV0ZSBzZWxlY3RvcnMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExODAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctc2VsZWN0LWF0dHJpYnV0ZS1mZWF0dXJlc2V0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1zZWxlY3QtYXR0cmlidXRlLWZlYXR1cmVzZXQu
aHRtbDogQWRkZWQuCisKIDIwMTItMTEtMDYgIEpvc2h1YSBCZWxsICA8anNiZWxsQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBmYXN0L2Zvcm1zL3NlbGVjdC1zZXQtbGVuZ3RoLXdpdGgtbXV0YXRp
b24tcmVtb3ZlIGlzIHNsb3cgb24gY2hyb21pdW0gZGVidWcgYnVpbGRzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXNlbGVjdC1hdHRyaWJ1dGUtZmVhdHVy
ZXNldC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXNl
bGVjdC1hdHRyaWJ1dGUtZmVhdHVyZXNldC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZhYjky
OTM3ODk0NDY3MGJiYWUxNzk5MzdkNTkxZTllZDczN2NkNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctc2VsZWN0LWF0dHJpYnV0ZS1mZWF0dXJl
c2V0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitJZCBzaG91bGQgYmUgY29sbGVjdGVk
LgorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJmb28iKSBp
cyB0cnVlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJh
ciIpIGlzIGZhbHNlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9z
dCwgImhvc3QiKSBpcyBmYWxzZQorCitjbGFzcyBzaG91bGQgYmUgY29sbGVjdGVkLgorUEFTUyBp
bnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJmb28iKSBpcyB0cnVl
CitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImhvc3Qi
KSBpcyBmYWxzZQorCithdHRyaWJ1dGUgc2hvdWxkIGJlIGNvbGxlY3RlZC4KK1BBU1MgaW50ZXJu
YWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIHRydWUK
K1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImhv
c3QiKSBpcyBmYWxzZQorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1zZWxlY3QtYXR0cmlidXRlLWZlYXR1cmVzZXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctc2VsZWN0LWF0dHJpYnV0ZS1mZWF0dXJlc2V0Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjVhYzZmZGI4ZDdmYzc2ZGJmOGNkMzAzM2JkM2I0N2RjODZhZjBkNgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctc2VsZWN0LWF0dHJpYnV0
ZS1mZWF0dXJlc2V0Lmh0bWwKQEAgLTAsMCArMSw2MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKworPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KKzxwcmUgaWQ9ImNvbnNv
bGUiPjwvcHJlPgorCis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdENhc2UoZikKK3sKKyAgICBjb250
YWluZXIuaW5uZXJIVE1MID0gJyc7CisgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZURP
TSgnZGl2JywgeydpZCc6ICdob3N0J30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVTaGFkb3dSb290KCkpKTsKKyAgICBzaGFkb3dSb290ID0gaW50ZXJuYWxzLnNo
YWRvd1Jvb3QoaG9zdCk7CisKKyAgICBmKCk7CisgICAgZGVidWcoJycpOworfQorCit0ZXN0Q2Fz
ZShmdW5jdGlvbigpCit7CisgICAgZGVidWcoJ0lkIHNob3VsZCBiZSBjb2xsZWN0ZWQuJyk7CisK
KyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9IiNmb28iPjwvY29u
dGVudD4nOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93
KGhvc3QsICJmb28iKScsICd0cnVlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxl
Y3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIpJywgJ2ZhbHNlJyk7CisgICAgc2hvdWxkQmUo
J2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImhvc3QiKScsICdmYWxz
ZScpOworfSk7CisKK3Rlc3RDYXNlKGZ1bmN0aW9uKCkKK3sKKyAgICBkZWJ1ZygnY2xhc3Mgc2hv
dWxkIGJlIGNvbGxlY3RlZC4nKTsKKworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxjb250
ZW50IHNlbGVjdD0iLmZvbyI+PC9jb250ZW50Pic7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5o
YXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImZvbyIpJywgJ3RydWUnKTsKKyAgICBz
aG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0LCAiaG9z
dCIpJywgJ2ZhbHNlJyk7Cit9KTsKKwordGVzdENhc2UoZnVuY3Rpb24oKQoreworICAgIGRlYnVn
KCdhdHRyaWJ1dGUgc2hvdWxkIGJlIGNvbGxlY3RlZC4nKTsKKworICAgIHNoYWRvd1Jvb3QuaW5u
ZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iZGl2W2Zvb10iPjwvY29udGVudD4nOworICAgIHNo
b3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAi
Zm9vIiknLCAndHJ1ZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JB
dHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiaG9zdCIpJywgJ2ZhbHNlJyk7Cit9KTsKKworZmluaXNo
SlNUZXN0KCk7CisKKy8vIEZJWE1FOiBtb3JlIGNvbXBsZXggY2FzZS4KKy8vIEZJWE1FOiBzaG91
bGQgaGF2ZSAnbmVzdGVkIHNoYWRvdyByb290IGNhc2UnCisKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172957</attachid>
            <date>2012-11-08 01:36:15 -0800</date>
            <delta_ts>2012-11-08 01:41:18 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-101180-20121108183424.patch</filename>
            <type>text/plain</type>
            <size>47126</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzODM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzhhY2IwY2FkOWY2ZmJm
MTk0NzJkMjdlNTlhNmIwOWIyOTRkNmVhNi4uMTQ5NWRkYzBlMWYxZDIxNmM0ZWNlYjczYTMxMDY0
MTRjZWE0ZDkzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMCBAQAorMjAxMi0xMS0wOCAgU2hp
bnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1NoYWRvd10g
RWxlbWVudFNoYWRvdyBzaG91bGQgaGF2ZSBSdWxlRmVhdHVyZVNldCBmb3Igc2VsZWN0IGF0dHJp
YnV0ZSBzZWxlY3RvcnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDExODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGlzIGlzIGEgcHJlcGFyYXRpb24gcGF0Y2ggZm9yIEJ1ZyAxMDA0NTEuCisKKyAg
ICAgICAgV2UgcHJlc2VydmUgUnVsZUZlYXR1cmVTZXQgY29sbGVjdGVkIGZyb20gc2VsZWN0IGF0
dHJpYnV0ZXMgaW4gU2hhZG93RE9NLgorICAgICAgICBXaGVuIGFuIGVsZW1lbnQgYXR0cmlidXRl
IGlzIGNoYW5nZWQsIHdlIG1pZ2h0IGhhdmUgdG8gaW52YWxpZGF0ZSBjb250ZW50IGRpc3RyaWJ1
dGlvbiwKKyAgICAgICAgaG93ZXZlciBpdCdzIGhpZ2ggY29zdCBvcGVyYXRpb24uIFNvIHdlIHdv
dWxkIGxpa2UgdG8gY2hlY2sgUnVsZUZlYXR1cmVTZXQgdXNlZCBpbgorICAgICAgICBzZWxlY3Qg
YXR0cmlidXRlcyB0byBkZXRlcm1pbmUgd2UgcmVhbGx5IG5lZWQgdG8gaW52YWxpZGF0ZSBkaXN0
cmlidXRpb24uCisKKyAgICAgICAgTGlrZSBTdHlsZVJlc29sdmVyLCBFbGVtZW50U2hhZG93IGhh
cyBzZXZlcmFsIHJ1bGUgZmVhdHVyZXMuIFdoZW4gbmVzdGVkIFNoYWRvd0RPTSBpcyB1c2VkLAor
ICAgICAgICBmaXJzdCB3ZSBjb2xsZWN0IGZlYXR1cmVzIGluIG5lc3RlZCBTaGFkb3dET00sIGFu
ZCBtZXJnZSBpdCB0byB0aGUgcGFyZW50IFNoYWRvd0RPTS4KKyAgICAgICAgRm9yIHRoZSBwZXJm
b3JtYW5jZSByZWFzb24sIHdlIGhhdmUgYSBmbGFnIHRvIGNoZWNrIHdoZXRoZXIgd2UgbmVlZCB0
byBjb2xsZWN0IGZlYXR1cmVzIGFnYWluLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctc2VsZWN0LWF0dHJpYnV0ZS1mZWF0dXJlc2V0Lmh0bWwKKworICAgICAgICAqIFdl
YkNvcmUuZXhwLmluOgorICAgICAgICAqIGNzcy9SdWxlRmVhdHVyZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSdWxlRmVhdHVyZVNldDo6Y29sbGVjdEZlYXR1cmVzRnJvbVNlbGVjdG9yKTogTW92
ZWQgZnJvbSBSdWxlU2V0LmNwcCwgc2luY2Ugd2Ugd291bGQgbGlrZSB0byByZXVzZSB0aGlzLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogY3NzL1J1bGVGZWF0dXJlLmg6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFJ1bGVGZWF0dXJlU2V0KToKKyAgICAgICAgKiBjc3MvUnVs
ZVNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb2xsZWN0RmVhdHVyZXNGcm9tUnVsZURhdGEp
OgorICAgICAgICAqIGRvbS9FbGVtZW50U2hhZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnRTaGFkb3c6OkVsZW1lbnRTaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNo
YWRvdzo6c2V0U2hvdWxkQ29sbGVjdFNlbGVjdEZlYXR1cmVTZXQpOiBFbmFibGUgYSBmbGFnIHRv
IGNvbGxlY3QgZmVhdHVyZSBzZXQgb2YgZGVzY2VuZGFudAorICAgICAgICBub2RlcyAoYW5kIHRo
ZWlyIFNoYWRvd0RPTSkuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnRTaGFkb3c6OmVuc3VyZVNlbGVjdEZlYXR1cmVTZXRDb2xsZWN0ZWQpOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6Y29sbGVjdFNlbGVjdEZlYXR1cmVTZXRGcm9tKTogQ29s
bGVjdCBSdWxlRmVhdHVyZVNldCBmcm9tIGFsbCBkZXNjZW5kYW50IE5vZGVzIGFuZCB0aGVpcgor
ICAgICAgICBTaGFkb3dET00uIFdlIG5lZWQgdG8gY29sbGVjdCBpZCwgY2xhc3MsIGFuZCBhdHRy
aWJ1dGUgbmFtZXMuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hhZG93OjpoYXNTZWxlY3Rv
ckZvcklkKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFkb3c6Omhhc1NlbGVjdG9yRm9y
Q2xhc3MpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6aGFzU2VsZWN0b3JGb3JB
dHRyaWJ1dGUpOgorICAgICAgICAqIGRvbS9FbGVtZW50U2hhZG93Lmg6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50U2hhZG93OjpzaG91bGRDb2xsZWN0U2VsZWN0RmVhdHVyZVNldCk6CisgICAg
ICAgIChFbGVtZW50U2hhZG93KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVudEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZSk6IFdoZW4gc2VsZWN0IGF0dHJpYnV0ZSBpcyBjaGFuZ2VkLCBlbmFibGUgYSBmbGFn
IHRvIHJlY29sbGVjdCBmZWF0dXJlcy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxl
bWVudDo6aW5zZXJ0ZWRJbnRvKTogV2UgaGF2ZSB0byByZWNvbGxlY3QgZmVhdHVyZXMgd2hlbiBI
VE1MQ29udGVudEVsZW1lbnQgaXMgbW92ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVu
dEVsZW1lbnQ6OnJlbW92ZWRGcm9tKTogZGl0dG8uCisgICAgICAgICogaHRtbC9zaGFkb3cvSFRN
TENvbnRlbnRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjp0b0hUTUxDb250ZW50RWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Omhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aGFzU2Vs
ZWN0b3JGb3JDbGFzc0luU2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aGFz
U2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuaDoKKyAgICAgICAgKEludGVybmFscyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
aWRsOgorCisyMDEyLTExLTA3ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBIVE1MQ29udGVudEVsZW1lbnQgc2hvdWxkIHByZXNlcnZlIHBhcnNlZCBD
U1NTZWxlY3Rvckxpc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwMTU0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFdlIHdvdWxkIGxpa2UgdG8gcHJlc2VydmUgQ1NTU2VsZWN0b3JMaXN0IGZvciBzZWxl
Y3QgYXR0cmlidXRlIG9mIEhUTUxDb250ZW50RWxlbWVudC4KKworICAgICAgICBCZWZvcmUsIHdl
IHBhcnNlZCBhbmQgdmFsaWRhdGVkIHNlbGVjdCBhdHRyaWJ1dGUgZXZlcnkgdGltZSBkaXN0cmli
dXRpb24gaGFwcGVucy4gSWYgd2UgcHJlc2VydmUgdGhlIHBhcnNlZAorICAgICAgICBDU1NTZWxl
Y3Rvckxpc3QsIHdlIGNhbiByZWR1Y2UgZGlzdHJpYnV0aW9uIHRpbWUuCisKKyAgICAgICAgVGhp
cyBpcyBhbHNvIGEgcHJlcHJhdGlvbiBwYXRjaCBmb3IgQnVnIDEwMTE4MC4gSXQgYWxzbyBuZWVk
cyB0aGUgcGFyc2VkIENTU1NlbGVjdG9yTGlzdC4gV2UgZG9uJ3Qgd2FudCB0bworICAgICAgICBw
YXJzZSBhbmQgdmFsaWRhdGUgaXQgYWdhaW4uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBjb3Zl
cmVkIGJ5IGV4aXNpbmcgdGVzdHMuCisKKyAgICAgICAgKiBodG1sL3NoYWRvdy9Db250ZW50U2Vs
ZWN0b3JRdWVyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VsZWN0b3JRdWVyeTo6
Q29udGVudFNlbGVjdG9yUXVlcnkpOiBXZSBkb24ndCBwYXJzZSBzZWxlY3QgYXR0cmlidXRlIGhl
cmUgYW55bW9yZS4KKyAgICAgICAgaWYgaXQncyBhbHJlYWR5IHBhcnNlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRTZWxlY3RvclF1ZXJ5OjptYXRjaGVzKToKKyAgICAgICAgKiBodG1sL3No
YWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5oOgorICAgICAgICAoQ29udGVudFNlbGVjdG9yUXVl
cnkpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6OkhUTUxDb250ZW50RWxlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6OmlzU2VsZWN0VmFsaWQpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRFbGVtZW50OjplbnN1cmVTZWxlY3RQYXJzZWQpOiBJ
ZiB3ZSBkb24ndCBoYXZlIHBhcnNlZCB0aGUgY3VycmVudCBzZWxlY3QgYXR0cmlidXRlLAorICAg
ICAgICB3ZSBwYXJzZSBhbmQgdmFsaWRhdGUgaXQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29u
dGVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKTogV2hlbiBzZWxlY3QgYXR0cmlidXRlIGlzIGNo
YW5nZWQsIHdlIGhhdmUgdG8gaGF2ZSBhIGZsYWcgZW5hYmxlZAorICAgICAgICB0byBwYXJzZSBz
ZWxlY3QgYXR0cml0ZSBhZ2Fpbi4KKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlU3ViU2VsZWN0
b3IpOiBNb3ZlZCBmcm9tIENvbnRlbnRTZWxlY3RvclF1ZXJ5LgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0ZVNlbGVjdG9yKTogTW92ZWQgZnJvbSBDb250ZW50
U2VsZWN0b3JRdWVyeS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6dmFs
aWRhdGVTZWxlY3QpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5o
OgorICAgICAgICAoSFRNTENvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxD
b250ZW50RWxlbWVudDo6c2V0U2VsZWN0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTENvbnRlbnRFbGVtZW50OjpzZWxlY3Rvckxpc3QpOgorICAgICAgICAqIGh0
bWwvc2hhZG93L0hUTUxTaGFkb3dFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxT
aGFkb3dFbGVtZW50OjplbXB0eVNlbGVjdG9yTGlzdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBodG1sL3NoYWRvdy9IVE1MU2hhZG93RWxlbWVudC5oOgorICAgICAgICAoSFRNTFNo
YWRvd0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNoYWRvd0VsZW1lbnQ6OnNlbGVj
dG9yTGlzdCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuaDoKKyAgICAg
ICAgKEluc2VydGlvblBvaW50KToKKwogMjAxMi0xMS0wNyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3
ZWJraXQub3JnPgogCiAgICAgICAgIFtWOF0gSW50cnVzaXZlRE9NV3JhcHBlck1hcCBzaG91bGQg
YmUgdXNhYmxlIGZvciBtb3JlIHRoYW4ganVzdCBOb2RlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRl
eCA0YjJlZmM1OTUyMzQxNTM5N2U0N2JjMGZmYTQ5NGIzMTNmY2RiYjdjLi4wMjJhZWJmYTAwOGUz
MDRjYTQ4NzVkYjU2OTk2Zjk2N2QzNGEyZWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjE1
LDYgKzIxNSw3IEBAIF9fWk43V2ViQ29yZTEzQVhPYmplY3RDYWNoZTQyZ0FjY2Vzc2liaWxpdHlF
bmhhbmNlZFVzZXJJbnRlcmZhY2VFbmFibGVkRQogX19aTjdXZWJDb3JlMTNDaGFyYWN0ZXJEYXRh
N3NldERhdGFFUktOM1dURjZTdHJpbmdFUmkKIF9fWk43V2ViQ29yZTEzQ29udGFpbmVyTm9kZTEx
YXBwZW5kQ2hpbGRFTjNXVEYxMFBhc3NSZWZQdHJJTlNfNE5vZGVFRUVSaWIKIF9fWk43V2ViQ29y
ZTEzQ29udGFpbmVyTm9kZTExcmVtb3ZlQ2hpbGRFUE5TXzROb2RlRVJpCitfX1pON1dlYkNvcmUx
M0VsZW1lbnRTaGFkb3czMWVuc3VyZVNlbGVjdEZlYXR1cmVTZXRDb2xsZWN0ZWRFdgogX19aTjdX
ZWJDb3JlMTNIVFRQSGVhZGVyTWFwQzFFdgogX19aTjdXZWJDb3JlMTNIVFRQSGVhZGVyTWFwRDFF
dgogX19aTjdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0QzFFUktTMF8KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9SdWxlRmVhdHVyZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZUZl
YXR1cmUuY3BwCmluZGV4IGIxZjkyOTY4NzkyN2ZkNzcwOWZmMDIyZjU1ZDBlYjNkOTdjMmQ3ZGMu
LjFiMTFjOGZhZWQ0Mzg0MWI4N2MxZjYxOTYyNDBhNWIyM2U3NDRhOTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9SdWxlRmVhdHVyZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1J1bGVGZWF0dXJlLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIlJ1bGVGZWF0dXJlLmgiCiAKKyNpbmNsdWRlICJDU1NTZWxlY3Rvci5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVt
ZW50YXRpb25IYXNoU2V0Lmg+CkBAIC0zNiw2ICszNywyNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKK3ZvaWQgUnVsZUZlYXR1cmVTZXQ6OmNvbGxlY3RGZWF0dXJlc0Zyb21TZWxlY3Rvcihj
b25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IpCit7CisgICAgaWYgKHNlbGVjdG9yLT5tX21hdGNo
ID09IENTU1NlbGVjdG9yOjpJZCkKKyAgICAgICAgaWRzSW5SdWxlcy5hZGQoc2VsZWN0b3ItPnZh
bHVlKCkuaW1wbCgpKTsKKyAgICBlbHNlIGlmIChzZWxlY3Rvci0+bV9tYXRjaCA9PSBDU1NTZWxl
Y3Rvcjo6Q2xhc3MpCisgICAgICAgIGNsYXNzZXNJblJ1bGVzLmFkZChzZWxlY3Rvci0+dmFsdWUo
KS5pbXBsKCkpOworICAgIGVsc2UgaWYgKHNlbGVjdG9yLT5pc0F0dHJpYnV0ZVNlbGVjdG9yKCkp
CisgICAgICAgIGF0dHJzSW5SdWxlcy5hZGQoc2VsZWN0b3ItPmF0dHJpYnV0ZSgpLmxvY2FsTmFt
ZSgpLmltcGwoKSk7CisgICAgc3dpdGNoIChzZWxlY3Rvci0+cHNldWRvVHlwZSgpKSB7CisgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRmlyc3RMaW5lOgorICAgICAgICB1c2VzRmlyc3RMaW5l
UnVsZXMgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9CZWZvcmU6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQWZ0ZXI6CisgICAgICAgIHVz
ZXNCZWZvcmVBZnRlclJ1bGVzID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoK
KyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCiB2b2lkIFJ1bGVGZWF0dXJlU2V0OjphZGQoY29u
c3QgUnVsZUZlYXR1cmVTZXQmIG90aGVyKQogewogICAgIEhhc2hTZXQ8QXRvbWljU3RyaW5nSW1w
bCo+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBvdGhlci5pZHNJblJ1bGVzLmVuZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVGZWF0dXJlLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvUnVsZUZlYXR1cmUuaAppbmRleCBjZTZkMDRlNjY0ZTQyZjRmYWJmYmYyNWYzOGRkYjJiNGUy
YmJhM2I3Li4wZmZjNmU1ZWUyMTcyYTY3YjdlN2VkOWMwOWYxMTJmYWNlNzgxNDNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZUZlYXR1cmUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvUnVsZUZlYXR1cmUuaApAQCAtMzAsNiArMzAsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBTdHlsZVJ1bGU7CitjbGFzcyBDU1NTZWxlY3RvcjsKIAogc3RydWN0IFJ1bGVG
ZWF0dXJlIHsKICAgICBSdWxlRmVhdHVyZShTdHlsZVJ1bGUqIHJ1bGUsIHVuc2lnbmVkIHNlbGVj
dG9ySW5kZXgsIGJvb2wgaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbikKQEAgLTUxLDcgKzUyLDEx
IEBAIHN0cnVjdCBSdWxlRmVhdHVyZVNldCB7CiAKICAgICB2b2lkIGFkZChjb25zdCBSdWxlRmVh
dHVyZVNldCYpOwogICAgIHZvaWQgY2xlYXIoKTsKKworICAgIHZvaWQgY29sbGVjdEZlYXR1cmVz
RnJvbVNlbGVjdG9yKGNvbnN0IENTU1NlbGVjdG9yKik7CisKICAgICB2b2lkIHJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwogICAgIEhhc2hTZXQ8QXRvbWljU3Ry
aW5nSW1wbCo+IGlkc0luUnVsZXM7CiAgICAgSGFzaFNldDxBdG9taWNTdHJpbmdJbXBsKj4gY2xh
c3Nlc0luUnVsZXM7CiAgICAgSGFzaFNldDxBdG9taWNTdHJpbmdJbXBsKj4gYXR0cnNJblJ1bGVz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL1J1bGVTZXQuY3BwCmluZGV4IGU5MmQxNzY4YjI5OGQ3YWU4OTZjMDdiZTI4ODdh
YTc0MWM1YTZkMzguLmE1MzY3ZWU4MmRiZDU5MzFlOTRiNjg0OWQ0M2U3YjFlZmQ5YzkxODYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvUnVsZVNldC5jcHAKQEAgLTE1NywzOCArMTU3LDE3IEBAIHZvaWQgUnVsZVNldDo6
UnVsZVNldFNlbGVjdG9yUGFpcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyog
bWVtb3J5T2JqCiAgICAgaW5mby5hZGRNZW1iZXIocnVsZVNldCk7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgdm9pZCBjb2xsZWN0RmVhdHVyZXNGcm9tU2VsZWN0b3IoUnVsZUZlYXR1cmVTZXQmIGZlYXR1
cmVzLCBjb25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IpCi17Ci0gICAgaWYgKHNlbGVjdG9yLT5t
X21hdGNoID09IENTU1NlbGVjdG9yOjpJZCkKLSAgICAgICAgZmVhdHVyZXMuaWRzSW5SdWxlcy5h
ZGQoc2VsZWN0b3ItPnZhbHVlKCkuaW1wbCgpKTsKLSAgICBlbHNlIGlmIChzZWxlY3Rvci0+bV9t
YXRjaCA9PSBDU1NTZWxlY3Rvcjo6Q2xhc3MpCi0gICAgICAgIGZlYXR1cmVzLmNsYXNzZXNJblJ1
bGVzLmFkZChzZWxlY3Rvci0+dmFsdWUoKS5pbXBsKCkpOwotICAgIGVsc2UgaWYgKHNlbGVjdG9y
LT5pc0F0dHJpYnV0ZVNlbGVjdG9yKCkpCi0gICAgICAgIGZlYXR1cmVzLmF0dHJzSW5SdWxlcy5h
ZGQoc2VsZWN0b3ItPmF0dHJpYnV0ZSgpLmxvY2FsTmFtZSgpLmltcGwoKSk7Ci0gICAgc3dpdGNo
IChzZWxlY3Rvci0+cHNldWRvVHlwZSgpKSB7Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
Rmlyc3RMaW5lOgotICAgICAgICBmZWF0dXJlcy51c2VzRmlyc3RMaW5lUnVsZXMgPSB0cnVlOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9CZWZvcmU6Ci0gICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQWZ0ZXI6Ci0gICAgICAgIGZlYXR1cmVzLnVzZXNCZWZv
cmVBZnRlclJ1bGVzID0gdHJ1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAg
ICAgYnJlYWs7Ci0gICAgfQotfQotCiBzdGF0aWMgdm9pZCBjb2xsZWN0RmVhdHVyZXNGcm9tUnVs
ZURhdGEoUnVsZUZlYXR1cmVTZXQmIGZlYXR1cmVzLCBjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEp
CiB7CiAgICAgYm9vbCBmb3VuZFNpYmxpbmdTZWxlY3RvciA9IGZhbHNlOwogICAgIGZvciAoQ1NT
U2VsZWN0b3IqIHNlbGVjdG9yID0gcnVsZURhdGEuc2VsZWN0b3IoKTsgc2VsZWN0b3I7IHNlbGVj
dG9yID0gc2VsZWN0b3ItPnRhZ0hpc3RvcnkoKSkgewotICAgICAgICBjb2xsZWN0RmVhdHVyZXNG
cm9tU2VsZWN0b3IoZmVhdHVyZXMsIHNlbGVjdG9yKTsKKyAgICAgICAgZmVhdHVyZXMuY29sbGVj
dEZlYXR1cmVzRnJvbVNlbGVjdG9yKHNlbGVjdG9yKTsKICAgICAgICAgCiAgICAgICAgIGlmIChD
U1NTZWxlY3Rvckxpc3QqIHNlbGVjdG9yTGlzdCA9IHNlbGVjdG9yLT5zZWxlY3Rvckxpc3QoKSkg
ewogICAgICAgICAgICAgZm9yIChDU1NTZWxlY3Rvciogc3ViU2VsZWN0b3IgPSBzZWxlY3Rvckxp
c3QtPmZpcnN0KCk7IHN1YlNlbGVjdG9yOyBzdWJTZWxlY3RvciA9IENTU1NlbGVjdG9yTGlzdDo6
bmV4dChzdWJTZWxlY3RvcikpIHsKICAgICAgICAgICAgICAgICBpZiAoIWZvdW5kU2libGluZ1Nl
bGVjdG9yICYmIHNlbGVjdG9yLT5pc1NpYmxpbmdTZWxlY3RvcigpKQogICAgICAgICAgICAgICAg
ICAgICBmb3VuZFNpYmxpbmdTZWxlY3RvciA9IHRydWU7Ci0gICAgICAgICAgICAgICAgY29sbGVj
dEZlYXR1cmVzRnJvbVNlbGVjdG9yKGZlYXR1cmVzLCBzdWJTZWxlY3Rvcik7CisgICAgICAgICAg
ICAgICAgZmVhdHVyZXMuY29sbGVjdEZlYXR1cmVzRnJvbVNlbGVjdG9yKHN1YlNlbGVjdG9yKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmICghZm91bmRTaWJsaW5nU2VsZWN0b3Ig
JiYgc2VsZWN0b3ItPmlzU2libGluZ1NlbGVjdG9yKCkpCiAgICAgICAgICAgICBmb3VuZFNpYmxp
bmdTZWxlY3RvciA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dFNoYWRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5jcHAKaW5kZXgg
NmY4N2YxNjQ0YWZiOTRiZmJmZTVlYjc4Y2ViMzFmZWU0NTE2MmYxYi4uNzNmNmM2MzA0M2JiZWVl
ZDViMTI4ZmQ4OTM4YTQwMjlhODg1NGFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnRTaGFkb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93
LmNwcApAQCAtMjcsOSArMjcsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJF
bGVtZW50U2hhZG93LmgiCiAKKyNpbmNsdWRlICJDU1NQYXJzZXIuaCIKKyNpbmNsdWRlICJDU1NT
ZWxlY3Rvckxpc3QuaCIKICNpbmNsdWRlICJDb250YWluZXJOb2RlQWxnb3JpdGhtcy5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxD
b250ZW50RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxTaGFkb3dFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgpA
QCAtMzksNiArNDIsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBFbGVtZW50U2hhZG93OjpF
bGVtZW50U2hhZG93KCkKKyAgICA6IG1fc2hvdWxkQ29sbGVjdFNlbGVjdEZlYXR1cmVTZXQoZmFs
c2UpCiB7CiB9CiAKQEAgLTIwMyw2ICsyMDcsNzMgQEAgdm9pZCBFbGVtZW50U2hhZG93OjppbnZh
bGlkYXRlRGlzdHJpYnV0aW9uKEVsZW1lbnQqIGhvc3QpCiAgICAgICAgIG1fZGlzdHJpYnV0b3Iu
ZmluaXNoSW5pdmFsaWRhdGlvbigpOwogfQogCit2b2lkIEVsZW1lbnRTaGFkb3c6OnNldFNob3Vs
ZENvbGxlY3RTZWxlY3RGZWF0dXJlU2V0KCkKK3sKKyAgICBpZiAoc2hvdWxkQ29sbGVjdFNlbGVj
dEZlYXR1cmVTZXQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zaG91bGRDb2xsZWN0U2Vs
ZWN0RmVhdHVyZVNldCA9IHRydWU7CisKKyAgICBpZiAoU2hhZG93Um9vdCogcGFyZW50U2hhZG93
Um9vdCA9IGhvc3QoKS0+c2hhZG93Um9vdCgpKSB7CisgICAgICAgIGlmIChFbGVtZW50U2hhZG93
KiBwYXJlbnRFbGVtZW50U2hhZG93ID0gcGFyZW50U2hhZG93Um9vdC0+b3duZXIoKSkKKyAgICAg
ICAgICAgIHBhcmVudEVsZW1lbnRTaGFkb3ctPnNldFNob3VsZENvbGxlY3RTZWxlY3RGZWF0dXJl
U2V0KCk7CisgICAgfQorfQorCit2b2lkIEVsZW1lbnRTaGFkb3c6OmVuc3VyZVNlbGVjdEZlYXR1
cmVTZXRDb2xsZWN0ZWQoKQoreworICAgIGlmICghbV9zaG91bGRDb2xsZWN0U2VsZWN0RmVhdHVy
ZVNldCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zZWxlY3RGZWF0dXJlcy5jbGVhcigpOwor
ICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IG9sZGVzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9v
dCA9IHJvb3QtPnlvdW5nZXJTaGFkb3dSb290KCkpCisgICAgICAgIGNvbGxlY3RTZWxlY3RGZWF0
dXJlU2V0RnJvbShyb290KTsKKyAgICBtX3Nob3VsZENvbGxlY3RTZWxlY3RGZWF0dXJlU2V0ID0g
ZmFsc2U7Cit9CisKK3ZvaWQgRWxlbWVudFNoYWRvdzo6Y29sbGVjdFNlbGVjdEZlYXR1cmVTZXRG
cm9tKFNoYWRvd1Jvb3QqIHJvb3QpCit7CisgICAgaWYgKCFyb290LT5oYXNDb250ZW50RWxlbWVu
dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAocm9vdC0+aGFzRWxlbWVudFNoYWRvdygp
KSB7CisgICAgICAgIGZvciAoTm9kZSogbm9kZSA9IHJvb3QtPmZpcnN0Q2hpbGQoKTsgbm9kZTsg
bm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUoKSkgeworICAgICAgICAgICAgaWYgKEVsZW1l
bnRTaGFkb3cqIGVsZW1lbnRTaGFkb3cgPSBub2RlLT5pc0VsZW1lbnROb2RlKCkgPyB0b0VsZW1l
bnQobm9kZSktPnNoYWRvdygpIDogMCkgeworICAgICAgICAgICAgICAgIGVsZW1lbnRTaGFkb3ct
PmVuc3VyZVNlbGVjdEZlYXR1cmVTZXRDb2xsZWN0ZWQoKTsKKyAgICAgICAgICAgICAgICBtX3Nl
bGVjdEZlYXR1cmVzLmFkZChlbGVtZW50U2hhZG93LT5tX3NlbGVjdEZlYXR1cmVzKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChyb290LT5oYXNDb250ZW50RWxl
bWVudCgpKSB7CisgICAgICAgIGZvciAoTm9kZSogbm9kZSA9IHJvb3QtPmZpcnN0Q2hpbGQoKTsg
bm9kZTsgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUoKSkgeworICAgICAgICAgICAgaWYg
KGlzSFRNTENvbnRlbnRFbGVtZW50KG5vZGUpKSB7CisgICAgICAgICAgICAgICAgY29uc3QgQ1NT
U2VsZWN0b3JMaXN0JiBsaXN0ID0gdG9IVE1MQ29udGVudEVsZW1lbnQobm9kZSktPnNlbGVjdG9y
TGlzdCgpOworICAgICAgICAgICAgICAgIGZvciAoQ1NTU2VsZWN0b3IqIHNlbGVjdG9yID0gbGlz
dC5maXJzdCgpOyBzZWxlY3Rvcjsgc2VsZWN0b3IgPSBsaXN0Lm5leHQoc2VsZWN0b3IpKQorICAg
ICAgICAgICAgICAgICAgICBtX3NlbGVjdEZlYXR1cmVzLmNvbGxlY3RGZWF0dXJlc0Zyb21TZWxl
Y3RvcihzZWxlY3Rvcik7ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgIH0KK30KKworYm9vbCBFbGVtZW50U2hhZG93OjpoYXNTZWxlY3RvckZvcklkKGNv
bnN0IEF0b21pY1N0cmluZyYgaWRWYWx1ZSkgY29uc3QKK3sKKyAgICBBU1NFUlQoIWlkVmFsdWUu
aXNFbXB0eSgpKTsKKyAgICByZXR1cm4gbV9zZWxlY3RGZWF0dXJlcy5pZHNJblJ1bGVzLmNvbnRh
aW5zKGlkVmFsdWUuaW1wbCgpKTsKK30KKworYm9vbCBFbGVtZW50U2hhZG93OjpoYXNTZWxlY3Rv
ckZvckNsYXNzKGNvbnN0IEF0b21pY1N0cmluZyYgY2xhc3NWYWx1ZSkgY29uc3QKK3sKKyAgICBB
U1NFUlQoIWNsYXNzVmFsdWUuaXNFbXB0eSgpKTsKKyAgICByZXR1cm4gbV9zZWxlY3RGZWF0dXJl
cy5jbGFzc2VzSW5SdWxlcy5jb250YWlucyhjbGFzc1ZhbHVlLmltcGwoKSk7Cit9CisKK2Jvb2wg
RWxlbWVudFNoYWRvdzo6aGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGUoY29uc3QgQXRvbWljU3RyaW5n
JiBhdHRyaWJ1dGVOYW1lKSBjb25zdAoreworICAgIEFTU0VSVCghYXR0cmlidXRlTmFtZS5pc0Vt
cHR5KCkpOworICAgIHJldHVybiBtX3NlbGVjdEZlYXR1cmVzLmF0dHJzSW5SdWxlcy5jb250YWlu
cyhhdHRyaWJ1dGVOYW1lLmltcGwoKSk7Cit9CisKIHZvaWQgRWxlbWVudFNoYWRvdzo6cmVwb3J0
TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsK
ICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3Jl
TWVtb3J5VHlwZXM6OkRPTSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dFNoYWRvdy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuaAppbmRleCAyZjZm
NTZjNzRmNjY5MmNlZTM0NDg2YTlhN2Y5YjAyMWM3MGU5Mjg1Li5mOGMzMGMyY2Y1ZWE2YzBlZDI0
N2I5ZmY4ODZmZGMzNGI5ZmU3NTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudFNoYWRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmgKQEAg
LTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkNvbnRlbnREaXN0cmlidXRvci5oIgogI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJSdWxlRmVhdHVyZS5oIgogI2luY2x1ZGUg
IlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlIDx3dGYvRG91Ymx5TGlua2VkTGlzdC5oPgogI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNjksMTMgKzcwLDI1IEBAIHB1YmxpYzoKICAgICBD
b250ZW50RGlzdHJpYnV0b3ImIGRpc3RyaWJ1dG9yKCk7CiAgICAgY29uc3QgQ29udGVudERpc3Ry
aWJ1dG9yJiBkaXN0cmlidXRvcigpIGNvbnN0OwogCisgICAgYm9vbCBzaG91bGRDb2xsZWN0U2Vs
ZWN0RmVhdHVyZVNldCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ29sbGVjdFNlbGVjdEZlYXR1
cmVTZXQ7IH0KKyAgICB2b2lkIHNldFNob3VsZENvbGxlY3RTZWxlY3RGZWF0dXJlU2V0KCk7Cisg
ICAgdm9pZCBlbnN1cmVTZWxlY3RGZWF0dXJlU2V0Q29sbGVjdGVkKCk7CisKKyAgICBib29sIGhh
c1NlbGVjdG9yRm9ySWQoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7CisgICAgYm9vbCBoYXNT
ZWxlY3RvckZvckNsYXNzKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0OworICAgIGJvb2wgaGFz
U2VsZWN0b3JGb3JBdHRyaWJ1dGUoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7CisKICAgICB2
b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKIAogcHJpdmF0
ZToKICAgICB2b2lkIGludmFsaWRhdGVEaXN0cmlidXRpb24oRWxlbWVudCogaG9zdCk7CiAKKyAg
ICB2b2lkIGNvbGxlY3RTZWxlY3RGZWF0dXJlU2V0RnJvbShTaGFkb3dSb290Kik7CisKICAgICBE
b3VibHlMaW5rZWRMaXN0PFNoYWRvd1Jvb3Q+IG1fc2hhZG93Um9vdHM7CiAgICAgQ29udGVudERp
c3RyaWJ1dG9yIG1fZGlzdHJpYnV0b3I7CisgICAgUnVsZUZlYXR1cmVTZXQgbV9zZWxlY3RGZWF0
dXJlczsKKyAgICBib29sIG1fc2hvdWxkQ29sbGVjdFNlbGVjdEZlYXR1cmVTZXQgOiAxOwogfTsK
IAogaW5saW5lIFNoYWRvd1Jvb3QqIEVsZW1lbnRTaGFkb3c6OnlvdW5nZXN0U2hhZG93Um9vdCgp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2Vs
ZWN0b3JRdWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0
b3JRdWVyeS5jcHAKaW5kZXggMGE2ZWMzMmVlZTVmZDAwYjhlOTViNDMzZWRkZjk0OTczNmIxNGVl
YS4uZGJlNWE4ZTk1NjJmNjhmYTZhMDdmM2MzMzk3MGZhODVmM2I4NmJiNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcApAQCAt
MjcsNyArMjcsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmgiCiAKLSNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRlICJDU1NTZWxl
Y3Rvckxpc3QuaCIKICNpbmNsdWRlICJJbnNlcnRpb25Qb2ludC5oIgogI2luY2x1ZGUgIlNlbGVj
dG9yQ2hlY2tlci5oIgpAQCAtNjUsMjYgKzY0LDEyIEBAIGJvb2wgQ29udGVudFNlbGVjdG9yRGF0
YUxpc3Q6Om1hdGNoZXMoY29uc3QgQ29udGVudFNlbGVjdG9yQ2hlY2tlciYgc2VsZWN0b3JDaGVj
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1Db250ZW50U2VsZWN0b3JRdWVyeTo6Q29udGVudFNl
bGVjdG9yUXVlcnkoY29uc3QgSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50KQorQ29udGVu
dFNlbGVjdG9yUXVlcnk6OkNvbnRlbnRTZWxlY3RvclF1ZXJ5KEluc2VydGlvblBvaW50KiBpbnNl
cnRpb25Qb2ludCkKICAgICA6IG1faW5zZXJ0aW9uUG9pbnQoaW5zZXJ0aW9uUG9pbnQpCiAgICAg
LCBtX3NlbGVjdG9yQ2hlY2tlcihpbnNlcnRpb25Qb2ludC0+ZG9jdW1lbnQoKSwgIWluc2VydGlv
blBvaW50LT5kb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSkKIHsKLSAgICBpZiAoaW5zZXJ0aW9u
UG9pbnQtPnNlbGVjdCgpLmlzTnVsbCgpIHx8IGluc2VydGlvblBvaW50LT5zZWxlY3QoKS5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgbV9pc1ZhbGlkU2VsZWN0b3IgPSB0cnVlOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgQ1NTUGFyc2VyIHBhcnNlcihpbnNlcnRpb25Qb2ludC0+ZG9jdW1l
bnQoKSk7Ci0gICAgcGFyc2VyLnBhcnNlU2VsZWN0b3IoaW5zZXJ0aW9uUG9pbnQtPnNlbGVjdCgp
LCBtX3NlbGVjdG9yTGlzdCk7Ci0KLSAgICBtX2lzVmFsaWRTZWxlY3RvciA9IENvbnRlbnRTZWxl
Y3RvclF1ZXJ5Ojp2YWxpZGF0ZVNlbGVjdG9yTGlzdCgpOwotICAgIGlmIChtX2lzVmFsaWRTZWxl
Y3RvcikKLSAgICAgICAgbV9zZWxlY3RvcnMuaW5pdGlhbGl6ZShtX3NlbGVjdG9yTGlzdCk7Ci19
Ci0KLWJvb2wgQ29udGVudFNlbGVjdG9yUXVlcnk6OmlzVmFsaWRTZWxlY3RvcigpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG1faXNWYWxpZFNlbGVjdG9yOworICAgIGlmIChpbnNlcnRpb25Qb2ludC0+
aXNTZWxlY3RWYWxpZCgpKQorICAgICAgICBtX3NlbGVjdG9ycy5pbml0aWFsaXplKGluc2VydGlv
blBvaW50LT5zZWxlY3Rvckxpc3QoKSk7CiB9CiAKIGJvb2wgQ29udGVudFNlbGVjdG9yUXVlcnk6
Om1hdGNoZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxOb2RlPiA+JiBzaWJsaW5ncywgaW50IG50aCkg
Y29uc3QKQEAgLTk1LDcgKzgwLDcgQEAgYm9vbCBDb250ZW50U2VsZWN0b3JRdWVyeTo6bWF0Y2hl
cyhjb25zdCBWZWN0b3I8UmVmUHRyPE5vZGU+ID4mIHNpYmxpbmdzLCBpbnQgbnQKICAgICBpZiAo
bV9pbnNlcnRpb25Qb2ludC0+c2VsZWN0KCkuaXNOdWxsKCkgfHwgbV9pbnNlcnRpb25Qb2ludC0+
c2VsZWN0KCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmICghbV9p
c1ZhbGlkU2VsZWN0b3IpCisgICAgaWYgKCFtX2luc2VydGlvblBvaW50LT5pc1NlbGVjdFZhbGlk
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9k
ZSgpKQpAQCAtMTA0LDg1ICs4OSw0IEBAIGJvb2wgQ29udGVudFNlbGVjdG9yUXVlcnk6Om1hdGNo
ZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxOb2RlPiA+JiBzaWJsaW5ncywgaW50IG50CiAgICAgcmV0
dXJuIG1fc2VsZWN0b3JzLm1hdGNoZXMobV9zZWxlY3RvckNoZWNrZXIsIHNpYmxpbmdzLCBudGgp
OwogfQogCi1zdGF0aWMgYm9vbCB2YWxpZGF0ZVN1YlNlbGVjdG9yKENTU1NlbGVjdG9yKiBzZWxl
Y3RvcikKLXsKLSAgICBzd2l0Y2ggKHNlbGVjdG9yLT5tX21hdGNoKSB7Ci0gICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6Tm9uZToKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpJZDoKLSAgICBjYXNlIENTU1Nl
bGVjdG9yOjpDbGFzczoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpFeGFjdDoKLSAgICBjYXNlIENT
U1NlbGVjdG9yOjpTZXQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6TGlzdDoKLSAgICBjYXNlIENT
U1NlbGVjdG9yOjpIeXBoZW46Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6Q29udGFpbjoKLSAgICBj
YXNlIENTU1NlbGVjdG9yOjpCZWdpbjoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpFbmQ6Ci0gICAg
ICAgIHJldHVybiB0cnVlOwotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnQ6Ci0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQYWdlUHNldWRvQ2xh
c3M6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3M6Ci0gICAgICAgIGJyZWFrOwot
ICAgIH0KLQotICAgIHN3aXRjaCAoc2VsZWN0b3ItPnBzZXVkb1R5cGUoKSkgewotICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb0VtcHR5OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xp
bms6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvVmlzaXRlZDoKLSAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9UYXJnZXQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRW5hYmxl
ZDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9EaXNhYmxlZDoKLSAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9DaGVja2VkOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0luZGV0
ZXJtaW5hdGU6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoQ2hpbGQ6Ci0gICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoTGFzdENoaWxkOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb050aE9mVHlwZToKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhMYXN0T2ZU
eXBlOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0ZpcnN0Q2hpbGQ6Ci0gICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvTGFzdENoaWxkOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0ZpcnN0T2ZUeXBlOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xhc3RPZlR5cGU6Ci0g
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvT25seU9mVHlwZToKLSAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLX0KLQotc3Rh
dGljIGJvb2wgdmFsaWRhdGVTZWxlY3RvcihDU1NTZWxlY3Rvciogc2VsZWN0b3IpCi17Ci0gICAg
QVNTRVJUKHNlbGVjdG9yKTsKLQotICAgIGlmICghdmFsaWRhdGVTdWJTZWxlY3RvcihzZWxlY3Rv
cikpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIENTU1NlbGVjdG9yKiBwcmV2U3ViU2Vs
ZWN0b3IgPSBzZWxlY3RvcjsKLSAgICBDU1NTZWxlY3Rvciogc3ViU2VsZWN0b3IgPSBzZWxlY3Rv
ci0+dGFnSGlzdG9yeSgpOwotCi0gICAgd2hpbGUgKHN1YlNlbGVjdG9yKSB7Ci0gICAgICAgIGlm
IChwcmV2U3ViU2VsZWN0b3ItPnJlbGF0aW9uKCkgIT0gQ1NTU2VsZWN0b3I6OlN1YlNlbGVjdG9y
KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoIXZhbGlkYXRlU3ViU2Vs
ZWN0b3Ioc3ViU2VsZWN0b3IpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAg
IHByZXZTdWJTZWxlY3RvciA9IHN1YlNlbGVjdG9yOwotICAgICAgICBzdWJTZWxlY3RvciA9IHN1
YlNlbGVjdG9yLT50YWdIaXN0b3J5KCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0K
LWJvb2wgQ29udGVudFNlbGVjdG9yUXVlcnk6OnZhbGlkYXRlU2VsZWN0b3JMaXN0KCkKLXsKLSAg
ICBpZiAoIW1fc2VsZWN0b3JMaXN0LmZpcnN0KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIGZvciAoQ1NTU2VsZWN0b3IqIHNlbGVjdG9yID0gbV9zZWxlY3Rvckxpc3QuZmlyc3QoKTsg
c2VsZWN0b3I7IHNlbGVjdG9yID0gbV9zZWxlY3Rvckxpc3QubmV4dChzZWxlY3RvcikpIHsKLSAg
ICAgICAgaWYgKCF2YWxpZGF0ZVNlbGVjdG9yKHNlbGVjdG9yKSkKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgKaW5kZXggMmM3MTBh
NTg1MmU5MmQ3Njg4MmM3YzIwNzUwYmZkMjZkYTJhYTAzYi4uNzhhMDgyNDU0YzlkMTJmMmIwZjNj
NTUwNGE4YjkwYWJlOWUxZWJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvQ29udGVudFNlbGVjdG9yUXVlcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9Db250ZW50U2VsZWN0b3JRdWVyeS5oCkBAIC02NCwxOCArNjQsMTQgQEAgcHJpdmF0ZToKIGNs
YXNzIENvbnRlbnRTZWxlY3RvclF1ZXJ5IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb250
ZW50U2VsZWN0b3JRdWVyeSk7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgQ29udGVudFNlbGVjdG9y
UXVlcnkoY29uc3QgSW5zZXJ0aW9uUG9pbnQqKTsKKyAgICBleHBsaWNpdCBDb250ZW50U2VsZWN0
b3JRdWVyeShJbnNlcnRpb25Qb2ludCopOwogCi0gICAgYm9vbCBpc1ZhbGlkU2VsZWN0b3IoKSBj
b25zdDsKICAgICBib29sIG1hdGNoZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxOb2RlPiA+JiBzaWJs
aW5ncywgaW50IG50aE5vZGUpIGNvbnN0OwogcHJpdmF0ZToKLSAgICBib29sIHZhbGlkYXRlU2Vs
ZWN0b3JMaXN0KCk7CiAKLSAgICBjb25zdCBJbnNlcnRpb25Qb2ludCogbV9pbnNlcnRpb25Qb2lu
dDsKKyAgICBJbnNlcnRpb25Qb2ludCogbV9pbnNlcnRpb25Qb2ludDsKICAgICBDb250ZW50U2Vs
ZWN0b3JEYXRhTGlzdCBtX3NlbGVjdG9yczsKLSAgICBDU1NTZWxlY3Rvckxpc3QgbV9zZWxlY3Rv
ckxpc3Q7CiAgICAgQ29udGVudFNlbGVjdG9yQ2hlY2tlciBtX3NlbGVjdG9yQ2hlY2tlcjsKLSAg
ICBib29sIG1faXNWYWxpZFNlbGVjdG9yOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKaW5kZXggNTA0MGU5ZWI4ZDYwNjI3
NTZlZWFmOWJlNDQzNzRkNjZhNWUxMjVlMC4uOGVjMDQ0MTYxNjBmYjU5N2NiOTc0YzA1Y2Q0ZjUz
MzY1NmE2OGRlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENv
bnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29u
dGVudEVsZW1lbnQuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCiAKKyNpbmNsdWRlICJDU1NQYXJzZXIuaCIK
ICNpbmNsdWRlICJDb250ZW50RGlzdHJpYnV0b3IuaCIKICNpbmNsdWRlICJDb250ZW50U2VsZWN0
b3JRdWVyeS5oIgogI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlcy5oIgpAQCAtNjUsNiArNjYsOCBA
QCBQYXNzUmVmUHRyPEhUTUxDb250ZW50RWxlbWVudD4gSFRNTENvbnRlbnRFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdAogSFRNTENvbnRlbnRFbGVtZW50OjpIVE1MQ29udGVu
dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQog
ICAgIDogSW5zZXJ0aW9uUG9pbnQobmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX3JlZ2lzdGVyZWRX
aXRoU2hhZG93Um9vdChmYWxzZSkKKyAgICAsIG1fc2hvdWxkUGFyc2VTZWxlY3Rvckxpc3QoZmFs
c2UpCisgICAgLCBtX2lzVmFsaWRTZWxlY3Rvcih0cnVlKQogewogfQogCkBAIC03NywyMiArODAs
MzMgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MQ29udGVudEVsZW1lbnQ6OnNlbGVjdCgpIGNv
bnN0CiAgICAgcmV0dXJuIGdldEF0dHJpYnV0ZShzZWxlY3RBdHRyKTsKIH0KIAotYm9vbCBIVE1M
Q29udGVudEVsZW1lbnQ6OmlzU2VsZWN0VmFsaWQoKSBjb25zdAorYm9vbCBIVE1MQ29udGVudEVs
ZW1lbnQ6OmlzU2VsZWN0VmFsaWQoKQogewotICAgIENvbnRlbnRTZWxlY3RvclF1ZXJ5IHF1ZXJ5
KHRoaXMpOwotICAgIHJldHVybiBxdWVyeS5pc1ZhbGlkU2VsZWN0b3IoKTsKKyAgICBlbnN1cmVT
ZWxlY3RQYXJzZWQoKTsKKyAgICByZXR1cm4gbV9pc1ZhbGlkU2VsZWN0b3I7CiB9CiAKLXZvaWQg
SFRNTENvbnRlbnRFbGVtZW50OjpzZXRTZWxlY3QoY29uc3QgQXRvbWljU3RyaW5nJiBzZWxlY3RW
YWx1ZSkKK2lubGluZSB2b2lkIEhUTUxDb250ZW50RWxlbWVudDo6ZW5zdXJlU2VsZWN0UGFyc2Vk
KCkKIHsKLSAgICBzZXRBdHRyaWJ1dGUoc2VsZWN0QXR0ciwgc2VsZWN0VmFsdWUpOworICAgIGlm
ICghbV9zaG91bGRQYXJzZVNlbGVjdG9yTGlzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ1NT
UGFyc2VyIHBhcnNlcihkb2N1bWVudCgpKTsKKyAgICBwYXJzZXIucGFyc2VTZWxlY3RvcihzZWxl
Y3QoKSwgbV9zZWxlY3Rvckxpc3QpOworICAgIG1fc2hvdWxkUGFyc2VTZWxlY3Rvckxpc3QgPSBm
YWxzZTsKKyAgICBtX2lzVmFsaWRTZWxlY3RvciA9IHZhbGlkYXRlU2VsZWN0KCk7CisgICAgaWYg
KCFtX2lzVmFsaWRTZWxlY3RvcikKKyAgICAgICAgbV9zZWxlY3Rvckxpc3QgPSBDU1NTZWxlY3Rv
ckxpc3QoKTsKIH0KIAogdm9pZCBIVE1MQ29udGVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlKQogewogICAgIGlmIChhdHRyaWJ1dGUubmFtZSgpID09
IHNlbGVjdEF0dHIpIHsKLSAgICAgICAgaWYgKFNoYWRvd1Jvb3QqIHJvb3QgPSBzaGFkb3dSb290
KCkpCisgICAgICAgIGlmIChTaGFkb3dSb290KiByb290ID0gc2hhZG93Um9vdCgpKSB7CisgICAg
ICAgICAgICByb290LT5vd25lcigpLT5zZXRTaG91bGRDb2xsZWN0U2VsZWN0RmVhdHVyZVNldCgp
OwogICAgICAgICAgICAgcm9vdC0+b3duZXIoKS0+aW52YWxpZGF0ZURpc3RyaWJ1dGlvbigpOwor
ICAgICAgICB9CisgICAgICAgIG1fc2hvdWxkUGFyc2VTZWxlY3Rvckxpc3QgPSB0cnVlOwogICAg
IH0gZWxzZQogICAgICAgICBJbnNlcnRpb25Qb2ludDo6cGFyc2VBdHRyaWJ1dGUoYXR0cmlidXRl
KTsKIH0KQEAgLTEwMiw3ICsxMTYsOSBAQCBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1
ZXN0IEhUTUxDb250ZW50RWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZAogICAgIElu
c2VydGlvblBvaW50OjppbnNlcnRlZEludG8oaW5zZXJ0aW9uUG9pbnQpOwogCiAgICAgaWYgKGlu
c2VydGlvblBvaW50LT5pbkRvY3VtZW50KCkgJiYgaXNBY3RpdmUoKSkgewotICAgICAgICBzaGFk
b3dSb290KCktPnJlZ2lzdGVyQ29udGVudEVsZW1lbnQoKTsKKyAgICAgICAgU2hhZG93Um9vdCog
cm9vdCA9IHNoYWRvd1Jvb3QoKTsKKyAgICAgICAgcm9vdC0+cmVnaXN0ZXJDb250ZW50RWxlbWVu
dCgpOworICAgICAgICByb290LT5vd25lcigpLT5zZXRTaG91bGRDb2xsZWN0U2VsZWN0RmVhdHVy
ZVNldCgpOwogICAgICAgICBtX3JlZ2lzdGVyZWRXaXRoU2hhZG93Um9vdCA9IHRydWU7CiAgICAg
fQogCkBAIC0xMTgsOCArMTM0LDk4IEBAIHZvaWQgSFRNTENvbnRlbnRFbGVtZW50OjpyZW1vdmVk
RnJvbShDb250YWluZXJOb2RlKiBpbnNlcnRpb25Qb2ludCkKICAgICAgICAgaWYgKHJvb3QpCiAg
ICAgICAgICAgICByb290LT51bnJlZ2lzdGVyQ29udGVudEVsZW1lbnQoKTsKICAgICAgICAgbV9y
ZWdpc3RlcmVkV2l0aFNoYWRvd1Jvb3QgPSBmYWxzZTsKKworICAgICAgICBpZiAoRWxlbWVudFNo
YWRvdyogZWxlbWVudFNoYWRvdyA9IHJvb3QgPyByb290LT5vd25lcigpIDogMCkKKyAgICAgICAg
ICAgIGVsZW1lbnRTaGFkb3ctPnNldFNob3VsZENvbGxlY3RTZWxlY3RGZWF0dXJlU2V0KCk7CiAg
ICAgfQogICAgIEluc2VydGlvblBvaW50OjpyZW1vdmVkRnJvbShpbnNlcnRpb25Qb2ludCk7CiB9
CiAKK3N0YXRpYyBib29sIHZhbGlkYXRlU3ViU2VsZWN0b3IoQ1NTU2VsZWN0b3IqIHNlbGVjdG9y
KQoreworICAgIHN3aXRjaCAoc2VsZWN0b3ItPm1fbWF0Y2gpIHsKKyAgICBjYXNlIENTU1NlbGVj
dG9yOjpOb25lOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OklkOgorICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OkNsYXNzOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkV4YWN0OgorICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlNldDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpMaXN0OgorICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6Okh5cGhlbjoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpDb250YWluOgorICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OkJlZ2luOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkVuZDoKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudDoKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBhZ2VQc2V1ZG9DbGFzczoK
KyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzczoKKyAgICAgICAgYnJlYWs7CisgICAg
fQorCisgICAgc3dpdGNoIChzZWxlY3Rvci0+cHNldWRvVHlwZSgpKSB7CisgICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6UHNldWRvRW1wdHk6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGluazoK
KyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9WaXNpdGVkOgorICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb1RhcmdldDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9FbmFibGVkOgor
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Rpc2FibGVkOgorICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb0NoZWNrZWQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvSW5kZXRlcm1p
bmF0ZToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhDaGlsZDoKKyAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9OdGhMYXN0Q2hpbGQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNl
dWRvTnRoT2ZUeXBlOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb050aExhc3RPZlR5cGU6
CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRmlyc3RDaGlsZDoKKyAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9MYXN0Q2hpbGQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRmly
c3RPZlR5cGU6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGFzdE9mVHlwZToKKyAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Pbmx5T2ZUeXBlOgorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCitzdGF0aWMg
Ym9vbCB2YWxpZGF0ZVNlbGVjdG9yKENTU1NlbGVjdG9yKiBzZWxlY3RvcikKK3sKKyAgICBBU1NF
UlQoc2VsZWN0b3IpOworCisgICAgaWYgKCF2YWxpZGF0ZVN1YlNlbGVjdG9yKHNlbGVjdG9yKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQ1NTU2VsZWN0b3IqIHByZXZTdWJTZWxlY3Rv
ciA9IHNlbGVjdG9yOworICAgIENTU1NlbGVjdG9yKiBzdWJTZWxlY3RvciA9IHNlbGVjdG9yLT50
YWdIaXN0b3J5KCk7CisKKyAgICB3aGlsZSAoc3ViU2VsZWN0b3IpIHsKKyAgICAgICAgaWYgKHBy
ZXZTdWJTZWxlY3Rvci0+cmVsYXRpb24oKSAhPSBDU1NTZWxlY3Rvcjo6U3ViU2VsZWN0b3IpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghdmFsaWRhdGVTdWJTZWxlY3Rv
cihzdWJTZWxlY3RvcikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcHJl
dlN1YlNlbGVjdG9yID0gc3ViU2VsZWN0b3I7CisgICAgICAgIHN1YlNlbGVjdG9yID0gc3ViU2Vs
ZWN0b3ItPnRhZ0hpc3RvcnkoKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9v
bCBIVE1MQ29udGVudEVsZW1lbnQ6OnZhbGlkYXRlU2VsZWN0KCkgY29uc3QKK3sKKyAgICBBU1NF
UlQoIW1fc2hvdWxkUGFyc2VTZWxlY3Rvckxpc3QpOworCisgICAgaWYgKHNlbGVjdCgpLmlzTnVs
bCgpIHx8IHNlbGVjdCgpLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBp
ZiAoIW1fc2VsZWN0b3JMaXN0LmZpcnN0KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IGZvciAoQ1NTU2VsZWN0b3IqIHNlbGVjdG9yID0gbV9zZWxlY3Rvckxpc3QuZmlyc3QoKTsgc2Vs
ZWN0b3I7IHNlbGVjdG9yID0gbV9zZWxlY3Rvckxpc3QubmV4dChzZWxlY3RvcikpIHsKKyAgICAg
ICAgaWYgKCF2YWxpZGF0ZVNlbGVjdG9yKHNlbGVjdG9yKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oCmluZGV4IDJhM2EzMmNlYTU1
OTI5ZTg3Y2U3MWJhYzczYjc4NjRjNzkwZjBmZjYuLmVkMGIwODg4NDMyY2QzZjM2ZTkxMTdmYTkx
OTkyOTgxNmVhMTQ5ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hU
TUxDb250ZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxD
b250ZW50RWxlbWVudC5oCkBAIC0zMSw2ICszMSw3IEBACiAjaWZuZGVmIEhUTUxDb250ZW50RWxl
bWVudF9oCiAjZGVmaW5lIEhUTUxDb250ZW50RWxlbWVudF9oCiAKKyNpbmNsdWRlICJDU1NTZWxl
Y3Rvckxpc3QuaCIKICNpbmNsdWRlICJJbnNlcnRpb25Qb2ludC5oIgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CiAKQEAgLTQ0LDkgKzQ1LDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfkhU
TUxDb250ZW50RWxlbWVudCgpOwogCi0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBzZWxlY3QoKSBj
b25zdDsKICAgICB2b2lkIHNldFNlbGVjdChjb25zdCBBdG9taWNTdHJpbmcmKTsKLSAgICB2aXJ0
dWFsIGJvb2wgaXNTZWxlY3RWYWxpZCgpIGNvbnN0OworICAgIHZpcnR1YWwgY29uc3QgQXRvbWlj
U3RyaW5nJiBzZWxlY3QoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RWYWxpZCgp
OworICAgIHZpcnR1YWwgY29uc3QgQ1NTU2VsZWN0b3JMaXN0JiBzZWxlY3Rvckxpc3QoKTsKIAog
cHJvdGVjdGVkOgogICAgIEhUTUxDb250ZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQqKTsKQEAgLTU2LDE2ICs1OCw0MCBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIE9WRVJSSURF
OworICAgIHZvaWQgZW5zdXJlU2VsZWN0UGFyc2VkKCk7CisgICAgYm9vbCB2YWxpZGF0ZVNlbGVj
dCgpIGNvbnN0OwogCiAgICAgYm9vbCBtX3JlZ2lzdGVyZWRXaXRoU2hhZG93Um9vdDsKKworICAg
IGJvb2wgbV9zaG91bGRQYXJzZVNlbGVjdG9yTGlzdDsKKyAgICBib29sIG1faXNWYWxpZFNlbGVj
dG9yOworICAgIENTU1NlbGVjdG9yTGlzdCBtX3NlbGVjdG9yTGlzdDsKIH07CiAKK2lubGluZSB2
b2lkIEhUTUxDb250ZW50RWxlbWVudDo6c2V0U2VsZWN0KGNvbnN0IEF0b21pY1N0cmluZyYgc2Vs
ZWN0VmFsdWUpCit7CisgICAgc2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c2VsZWN0QXR0ciwgc2Vs
ZWN0VmFsdWUpOworICAgIG1fc2hvdWxkUGFyc2VTZWxlY3Rvckxpc3QgPSB0cnVlOworfQorCitp
bmxpbmUgY29uc3QgQ1NTU2VsZWN0b3JMaXN0JiBIVE1MQ29udGVudEVsZW1lbnQ6OnNlbGVjdG9y
TGlzdCgpCit7CisgICAgZW5zdXJlU2VsZWN0UGFyc2VkKCk7CisgICAgcmV0dXJuIG1fc2VsZWN0
b3JMaXN0OworfQorCiBpbmxpbmUgYm9vbCBpc0hUTUxDb250ZW50RWxlbWVudChjb25zdCBOb2Rl
KiBub2RlKQogewogICAgIEFTU0VSVChub2RlKTsKICAgICByZXR1cm4gbm9kZS0+aGFzVGFnTmFt
ZShIVE1MQ29udGVudEVsZW1lbnQ6OmNvbnRlbnRUYWdOYW1lKG5vZGUtPmRvY3VtZW50KCkpKTsK
IH0KIAoraW5saW5lIEhUTUxDb250ZW50RWxlbWVudCogdG9IVE1MQ29udGVudEVsZW1lbnQoTm9k
ZSogbm9kZSkKK3sKKyAgICBBU1NFUlQoIW5vZGUgfHwgaXNIVE1MQ29udGVudEVsZW1lbnQobm9k
ZSkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MQ29udGVudEVsZW1lbnQqPihub2RlKTsK
K30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0hUTUxTaGFkb3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxT
aGFkb3dFbGVtZW50LmNwcAppbmRleCA3ZDdlNDE1MjlmYmRmMTZmMTMwNDA4ZWUyMzJmMTk4Yjgy
ODM1MjY0Li5kYTE4YmE4ZWFlNWU0YjI0ZmU1YWZjNjY0OTc5ZTZiMmQ1YTU5NjRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MU2hhZG93RWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTFNoYWRvd0VsZW1lbnQuY3BwCkBAIC04
Nyw0ICs4NywxMCBAQCB2b2lkIEhUTUxTaGFkb3dFbGVtZW50OjpyZW1vdmVkRnJvbShDb250YWlu
ZXJOb2RlKiBpbnNlcnRpb25Qb2ludCkKICAgICBJbnNlcnRpb25Qb2ludDo6cmVtb3ZlZEZyb20o
aW5zZXJ0aW9uUG9pbnQpOwogfQogCitjb25zdCBDU1NTZWxlY3Rvckxpc3QmIEhUTUxTaGFkb3dF
bGVtZW50OjplbXB0eVNlbGVjdG9yTGlzdCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChD
U1NTZWxlY3Rvckxpc3QsIHNlbGVjdG9yTGlzdCwgKENTU1NlbGVjdG9yTGlzdCgpKSk7CisgICAg
cmV0dXJuIHNlbGVjdG9yTGlzdDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTFNoYWRvd0VsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxTaGFkb3dFbGVtZW50LmgKaW5kZXggYmFjMmI5
MmI1Nzk2MWIyM2RmY2MyZTMyZTFmNTViMmQ1N2UzMjY0NS4uODcwNTk4OTZmNzdkMjAyM2MwZjJh
ZjFjNjg4NDM3MzNkZjE3MTNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvSFRNTFNoYWRvd0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9I
VE1MU2hhZG93RWxlbWVudC5oCkBAIC00Miw4ICs0Miw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgfkhUTUxTaGFkb3dFbGVtZW50KCk7CiAKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIHNlbGVj
dCgpIGNvbnN0OwotICAgIGJvb2wgaXNTZWxlY3RWYWxpZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2VsZWN0KCkgY29u
c3Q7CisgICAgdmlydHVhbCBib29sIGlzU2VsZWN0VmFsaWQoKSBPVkVSUklERSB7IHJldHVybiB0
cnVlOyB9CisgICAgdmlydHVhbCBjb25zdCBDU1NTZWxlY3Rvckxpc3QmIHNlbGVjdG9yTGlzdCgp
IHsgcmV0dXJuIGVtcHR5U2VsZWN0b3JMaXN0KCk7IH0KIAogcHJvdGVjdGVkOgogICAgIHZpcnR1
YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9k
ZSopIE9WRVJSSURFOwpAQCAtNTIsNiArNTMsOCBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAg
IEhUTUxTaGFkb3dFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCisg
ICAgc3RhdGljIGNvbnN0IENTU1NlbGVjdG9yTGlzdCYgZW1wdHlTZWxlY3Rvckxpc3QoKTsKKwog
ICAgIGJvb2wgbV9yZWdpc3RlcmVkV2l0aFNoYWRvd1Jvb3Q7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbnNlcnRpb25Qb2ludC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuaAppbmRleCAyNDNhMDhjMThhMzQ2MTAzMDM5
NWQ5YTViYTdkMjA1NTliNjcxMWE5Li4yM2RhZDhkY2E3MDgxMjMxODIxZjk3ZDhiZjMwNGQ3NzMz
MzI3NmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbnNlcnRpb25Q
b2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmgK
QEAgLTMxLDYgKzMxLDcgQEAKICNpZm5kZWYgSW5zZXJ0aW9uUG9pbnRfaAogI2RlZmluZSBJbnNl
cnRpb25Qb2ludF9oCiAKKyNpbmNsdWRlICJDU1NTZWxlY3Rvckxpc3QuaCIKICNpbmNsdWRlICJD
b250ZW50RGlzdHJpYnV0b3IuaCIKICNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5jbHVk
ZSAiSFRNTEVsZW1lbnQuaCIKQEAgLTUzLDcgKzU0LDggQEAgcHVibGljOgogICAgIFBhc3NSZWZQ
dHI8Tm9kZUxpc3Q+IGdldERpc3RyaWJ1dGVkTm9kZXMoKSBjb25zdDsKIAogICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiBzZWxlY3QoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBib29s
IGlzU2VsZWN0VmFsaWQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGlzU2VsZWN0VmFs
aWQoKSA9IDA7CisgICAgdmlydHVhbCBjb25zdCBDU1NTZWxlY3Rvckxpc3QmIHNlbGVjdG9yTGlz
dCgpID0gMDsKIAogICAgIGJvb2wgcmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3Q7CiAgICAg
dm9pZCBzZXRSZXNldFN0eWxlSW5oZXJpdGFuY2UoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKaW5kZXggZTRkMzA4NDEwYTA2MzM2OGZjZWM2MGMyZGVjMzkyYmY3ZTJlOWRh
Ny4uN2JlMThkOWJlNWI3NTVkNGNhZjc5YWE4ZTc0Zjg0ODUyODgwNjZiZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMzA2LDYgKzMwNiwzOSBAQCBOb2RlKiBJbnRlcm5h
bHM6OnBhcmVudFRyZWVTY29wZShOb2RlKiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBy
ZXR1cm4gcGFyZW50VHJlZVNjb3BlID8gcGFyZW50VHJlZVNjb3BlLT5yb290Tm9kZSgpIDogMDsK
IH0KIAorYm9vbCBJbnRlcm5hbHM6Omhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhFbGVtZW50KiBo
b3N0LCBjb25zdCBTdHJpbmcmIGlkVmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlm
ICghaG9zdCB8fCAhaG9zdC0+c2hhZG93KCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VT
U19FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIGhvc3QtPnNoYWRvdygpLT5l
bnN1cmVTZWxlY3RGZWF0dXJlU2V0Q29sbGVjdGVkKCk7CisgICAgcmV0dXJuIGhvc3QtPnNoYWRv
dygpLT5oYXNTZWxlY3RvckZvcklkKGlkVmFsdWUpOworfQorCitib29sIEludGVybmFsczo6aGFz
U2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KEVsZW1lbnQqIGhvc3QsIGNvbnN0IFN0cmluZyYgY2xh
c3NOYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIWhvc3QgfHwgIWhvc3QtPnNo
YWRvdygpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1
cm4gMDsKKyAgICB9CisKKyAgICBob3N0LT5zaGFkb3coKS0+ZW5zdXJlU2VsZWN0RmVhdHVyZVNl
dENvbGxlY3RlZCgpOworICAgIHJldHVybiBob3N0LT5zaGFkb3coKS0+aGFzU2VsZWN0b3JGb3JD
bGFzcyhjbGFzc05hbWUpOworfQorCitib29sIEludGVybmFsczo6aGFzU2VsZWN0b3JGb3JBdHRy
aWJ1dGVJblNoYWRvdyhFbGVtZW50KiBob3N0LCBjb25zdCBTdHJpbmcmIGF0dHJpYnV0ZU5hbWUs
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghaG9zdCB8fCAhaG9zdC0+c2hhZG93KCkp
IHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybiAwOwor
ICAgIH0KKworICAgIGhvc3QtPnNoYWRvdygpLT5lbnN1cmVTZWxlY3RGZWF0dXJlU2V0Q29sbGVj
dGVkKCk7CisgICAgcmV0dXJuIGhvc3QtPnNoYWRvdygpLT5oYXNTZWxlY3RvckZvckF0dHJpYnV0
ZShhdHRyaWJ1dGVOYW1lKTsKK30KKwogYm9vbCBJbnRlcm5hbHM6Omhhc1NoYWRvd0luc2VydGlv
blBvaW50KGNvbnN0IE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogewogICAg
IGlmIChyb290ICYmIHJvb3QtPmlzU2hhZG93Um9vdCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmgKaW5kZXggMjExMTczOTdjODExYzg1OGYzYjFmNDlmYzU3ZDE2YWMyNWE3MTEyMS4uNTQ0
ZDMxZTg4OTQ1MGU1NTFkN2M4YmQyOTEzNmM3YzcxMmEwNGVlNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oCkBAIC05Niw2ICs5Niw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzVmFsaWRD
b250ZW50U2VsZWN0KEVsZW1lbnQqIGluc2VydGlvblBvaW50LCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgTm9kZSogdHJlZVNjb3BlUm9vdE5vZGUoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBO
b2RlKiBwYXJlbnRUcmVlU2NvcGUoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBib29sIGhh
c1NlbGVjdG9yRm9ySWRJblNoYWRvdyhFbGVtZW50KiBob3N0LCBjb25zdCBTdHJpbmcmIGlkVmFs
dWUsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBib29sIGhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRv
dyhFbGVtZW50KiBob3N0LCBjb25zdCBTdHJpbmcmIGNsYXNzTmFtZSwgRXhjZXB0aW9uQ29kZSYp
OworICAgIGJvb2wgaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhFbGVtZW50KiBob3N0
LCBjb25zdCBTdHJpbmcmIGF0dHJpYnV0ZU5hbWUsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIGJv
b2wgYXR0YWNoZWQoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsCmluZGV4IDdhNWFiN2I5MGVkYjY0YjY1MGRjMzQzN2I0M2ExZDY5OTcxYjAx
YWQuLjMwNGU2NGM4ZWVjZDAwZjUzMjNlZGM2MmEwYWVmOGVmODMxN2JlZDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTU5LDYgKzU5LDkgQEAKICAgICBib29sZWFuIGlz
VmFsaWRDb250ZW50U2VsZWN0KGluIEVsZW1lbnQgY29udGVudEVsZW1lbnQpIHJhaXNlcyhET01F
eGNlcHRpb24pOwogICAgIE5vZGUgdHJlZVNjb3BlUm9vdE5vZGUoaW4gTm9kZSBub2RlKSByYWlz
ZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgTm9kZSBwYXJlbnRUcmVlU2NvcGUoaW4gTm9kZSBub2Rl
KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgYm9vbGVhbiBoYXNTZWxlY3RvckZvcklkSW5T
aGFkb3coaW4gRWxlbWVudCBob3N0LCBpbiBET01TdHJpbmcgaWQpIHJhaXNlcyAoRE9NRXhjZXB0
aW9uKTsKKyAgICBib29sZWFuIGhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhpbiBFbGVtZW50
IGhvc3QsIGluIERPTVN0cmluZyBjbGFzc05hbWUpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAg
ICBib29sZWFuIGhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaW4gRWxlbWVudCBob3N0
LCBpbiBET01TdHJpbmcgYXR0cmlidXRlTmFtZSkgcmFpc2VzIChET01FeGNlcHRpb24pOwogCiAg
ICAgTm9kZSBuZXh0U2libGluZ0J5V2Fsa2VyKGluIE5vZGUgbm9kZSkgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CiAgICAgTm9kZSBmaXJzdENoaWxkQnlXYWxrZXIoaW4gTm9kZSBub2RlKSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0
ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IGQ4MmYxNzk4NTExYzI2
ZDQ3YmY1NDU0NTA0ZmMwNjY1ZmVjOTZiZTkuLjk0ZDQ2Y2M3ODc5Yzg2YzNlZmJlMmVhMWY0MzEx
MjNkNzFkMzI5NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIK
KysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtNTYsNiArNTYsNyBAQCBf
Wk43V2ViQ29yZTEyVGV4dEl0ZXJhdG9yMjZyYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0aEVQTlNf
MTNDb250YWluZXJOb2RlRWlpYjsKIF9aTjdXZWJDb3JlMTJUZXh0SXRlcmF0b3IyOWdldExvY2F0
aW9uQW5kTGVuZ3RoRnJvbVJhbmdlRVBOU183RWxlbWVudEVQS05TXzVSYW5nZUVSalM2XzsKIF9a
TjdXZWJDb3JlMTJUZXh0SXRlcmF0b3IyOWdldExvY2F0aW9uQW5kTGVuZ3RoRnJvbVJhbmdlRVBO
U183RWxlbWVudEVQS05TXzVSYW5nZUVSbVM2XzsKIF9aTjdXZWJDb3JlMTJQcmludENvbnRleHQy
MHBhZ2VOdW1iZXJGb3JFbGVtZW50RVBOU183RWxlbWVudEVSS05TXzlGbG9hdFNpemVFOworX1pO
N1dlYkNvcmUxM0VsZW1lbnRTaGFkb3czMWVuc3VyZVNlbGVjdEZlYXR1cmVTZXRDb2xsZWN0ZWRF
djsKIF9aTjdXZWJDb3JlMTNjcmVhdGVXcmFwcGVyRVBOM0pTQzlFeGVjU3RhdGVFUE5TXzE3SlNE
T01HbG9iYWxPYmplY3RFUE5TXzROb2RlRTsKIF9aTjdXZWJDb3JlMTRDbGllbnRSZWN0TGlzdEMx
RVJLTjNXVEY2VmVjdG9ySU5TXzlGbG9hdFF1YWRFTGowRUVFOwogX1pON1dlYkNvcmUxNENsaWVu
dFJlY3RMaXN0QzFFUktOM1dURjZWZWN0b3JJTlNfOUZsb2F0UXVhZEVMbTBFRUU7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
Y2RmNzA1ODMxNmE1MDBiN2UyYWE5MDVmMTU4NTQxODk3OGZhZWZjZi4uYTlhYzY0ZmJhZTAxNGNk
ZmM4MGNhNDE1OTcwYjQ1Yjc1ZDNkZjZjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTEx
LTA4ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBb
U2hhZG93XSBFbGVtZW50U2hhZG93IHNob3VsZCBoYXZlIFJ1bGVGZWF0dXJlU2V0IGZvciBzZWxl
Y3QgYXR0cmlidXRlIHNlbGVjdG9ycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwMTE4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1zZWxlY3QtYXR0cmlidXRl
LWZlYXR1cmVzZXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFk
b3cvc2hhZG93LXNlbGVjdC1hdHRyaWJ1dGUtZmVhdHVyZXNldC5odG1sOiBBZGRlZC4KKwogMjAx
Mi0xMS0wNyAgSGF5YXRvIEl0byAgPGhheWF0b0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93LXNlbGVjdC1hdHRyaWJ1dGUtZmVhdHVyZXNldC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXNlbGVjdC1hdHRyaWJ1dGUtZmVhdHVyZXNl
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2NkYTQ0ZDkwNGQyMzFlZjQ2MDcwNjU2ODJiNmYw
ZjE4NjliYjAyNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctc2VsZWN0LWF0dHJpYnV0ZS1mZWF0dXJlc2V0LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDc1IEBACitJZCBzaG91bGQgYmUgY29sbGVjdGVkCitQQVNTIGludGVybmFscy5oYXNTZWxl
Y3RvckZvcklkSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIHRydWUKK1BBU1MgaW50ZXJuYWxzLmhh
c1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmFyIikgaXMgZmFsc2UKK1BBU1MgaW50ZXJu
YWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiaG9zdCIpIGlzIGZhbHNlCisKK0Ns
YXNzIHNob3VsZCBiZSBjb2xsZWN0ZWQKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xh
c3NJblNoYWRvdyhob3N0LCAiZm9vIikgaXMgdHJ1ZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0
b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJob3N0IikgaXMgZmFsc2UKKworQXR0cmlidXRlIHNo
b3VsZCBiZSBjb2xsZWN0ZWQKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRl
SW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIHRydWUKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9y
Rm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImhvc3QiKSBpcyBmYWxzZQorCitTZWxlY3QgYXR0
cmlidXRlIG1pZ2h0IGhhdmUgc2V2ZXJhbCBzZWxlY3RvcnMKK1BBU1MgaW50ZXJuYWxzLmhhc1Nl
bGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9vIikgaXMgdHJ1ZQorUEFTUyBpbnRlcm5hbHMu
aGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXIiKSBpcyBmYWxzZQorUEFTUyBpbnRl
cm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXoiKSBpcyBmYWxzZQorUEFT
UyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJmb28iKSBpcyBm
YWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJi
YXIiKSBpcyB0cnVlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3co
aG9zdCwgImJheiIpIGlzIGZhbHNlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJp
YnV0ZUluU2hhZG93KGhvc3QsICJmb28iKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2Vs
ZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiYmFyIikgaXMgZmFsc2UKK1BBU1MgaW50
ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImJheiIpIGlzIHRy
dWUKKworRG9uJ3QgY291bnQgc2hhZG93IGVsZW1lbnQKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVj
dG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9vIikgaXMgZmFsc2UKK1BBU1MgaW50ZXJuYWxzLmhh
c1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmFyIikgaXMgZmFsc2UKK1BBU1MgaW50ZXJu
YWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmF6IikgaXMgZmFsc2UKK1BBU1Mg
aW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0LCAiZm9vIikgaXMgZmFs
c2UKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0LCAiYmFy
IikgaXMgZmFsc2UKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyho
b3N0LCAiYmF6IikgaXMgZmFsc2UKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmli
dXRlSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIGZhbHNlCitQQVNTIGludGVybmFscy5oYXNTZWxl
Y3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJiYXIiKSBpcyBmYWxzZQorUEFTUyBpbnRl
cm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiYmF6IikgaXMgZmFs
c2UKKworQ29tcGxleCBjYXNlIGZvciBzaW5nbGUgU2hhZG93Um9vdAorUEFTUyBpbnRlcm5hbHMu
aGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJmb28iKSBpcyBmYWxzZQorUEFTUyBpbnRl
cm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJmb28iKSBpcyBmYWxzZQor
UEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiZm9v
IikgaXMgdHJ1ZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRv
dyhob3N0LCAicGl5byIpIGlzIGZhbHNlCisKK0Fub3RoZXIgY29tcGxleCBjYXNlIGZvciBzaW5n
bGUgU2hhZG93Um9vdAorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhv
c3QsICJmb28iKSBpcyB0cnVlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5T
aGFkb3coaG9zdCwgImZvbyIpIGlzIHRydWUKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9y
QXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIHRydWUKKworTXVsdGlwbGUgU2hhZG93
Um9vdCBjYXNlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwg
ImZvbyIpIGlzIHRydWUKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyho
b3N0LCAiYmFyIikgaXMgdHJ1ZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hh
ZG93KGhvc3QsICJiYXoiKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JD
bGFzc0luU2hhZG93KGhvc3QsICJmb28iKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2Vs
ZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJiYXIiKSBpcyB0cnVlCitQQVNTIGludGVybmFs
cy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImJheiIpIGlzIGZhbHNlCitQQVNT
IGludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJmb28iKSBp
cyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyho
b3N0LCAiYmFyIikgaXMgZmFsc2UKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmli
dXRlSW5TaGFkb3coaG9zdCwgImJheiIpIGlzIHRydWUKKworRHluYW1pYyBzZWxlY3QgYXR0cmli
dXRlIHVwZGF0ZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3Qs
ICJmb28iKSBpcyB0cnVlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3co
aG9zdCwgImJhciIpIGlzIGZhbHNlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5T
aGFkb3coaG9zdCwgImZvbyIpIGlzIGZhbHNlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZv
cklkSW5TaGFkb3coaG9zdCwgImJhciIpIGlzIHRydWUKKworTmVzdGVkIFNoYWRvd0RPTSBjYXNl
CitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImZvbyIpIGlz
IHRydWUKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmFy
IikgaXMgdHJ1ZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3Qs
ICJiYXoiKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93
KGhvc3QsICJmb28iKSBpcyB0cnVlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5T
aGFkb3coaG9zdCwgImJhciIpIGlzIGZhbHNlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZv
cklkSW5TaGFkb3coaG9zdCwgImJheiIpIGlzIHRydWUKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctc2VsZWN0LWF0dHJpYnV0ZS1mZWF0dXJlc2V0Lmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXNlbGVjdC1hdHRyaWJ1dGUtZmVhdHVy
ZXNldC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyYTU1MTQ5NTY2YTg4MmM1NzljOWQ3YTMzZWJkOWRhY2E2
OWYwMzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LXNlbGVjdC1hdHRyaWJ1dGUtZmVhdHVyZXNldC5odG1sCkBAIC0wLDAgKzEsMTc1IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cG9seWZpbGwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ctZG9t
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2IGlkPSJjb250YWluZXIiPjwv
ZGl2PgorPHByZSBpZD0iY29uc29sZSI+PC9wcmU+CisKKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0
Q2FzZShmKQoreworICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnJzsKKyAgICBjb250YWluZXIu
YXBwZW5kQ2hpbGQoY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2hvc3QnfSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoKSkpOworICAgIHNoYWRv
d1Jvb3QgPSBpbnRlcm5hbHMuc2hhZG93Um9vdChob3N0KTsKKworICAgIGYoKTsKKyAgICBkZWJ1
ZygnJyk7Cit9CisKK3Rlc3RDYXNlKGZ1bmN0aW9uKCkKK3sKKyAgICBkZWJ1ZygnSWQgc2hvdWxk
IGJlIGNvbGxlY3RlZCcpOworCisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQg
c2VsZWN0PSIjZm9vIj48L2NvbnRlbnQ+JzsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1Nl
bGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9vIiknLCAndHJ1ZScpOworICAgIHNob3VsZEJl
KCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXIiKScsICdmYWxz
ZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhv
c3QsICJob3N0IiknLCAnZmFsc2UnKTsKK30pOworCit0ZXN0Q2FzZShmdW5jdGlvbigpCit7Cisg
ICAgZGVidWcoJ0NsYXNzIHNob3VsZCBiZSBjb2xsZWN0ZWQnKTsKKworICAgIHNoYWRvd1Jvb3Qu
aW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iLmZvbyI+PC9jb250ZW50Pic7CisgICAgc2hv
dWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImZvbyIp
JywgJ3RydWUnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJ
blNoYWRvdyhob3N0LCAiaG9zdCIpJywgJ2ZhbHNlJyk7Cit9KTsKKwordGVzdENhc2UoZnVuY3Rp
b24oKQoreworICAgIGRlYnVnKCdBdHRyaWJ1dGUgc2hvdWxkIGJlIGNvbGxlY3RlZCcpOworCisg
ICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSJkaXZbZm9vXSI+PC9j
b250ZW50Pic7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0
ZUluU2hhZG93KGhvc3QsICJmb28iKScsICd0cnVlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFs
cy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJob3N0IiknLCAnZmFsc2Un
KTsKK30pOworCit0ZXN0Q2FzZShmdW5jdGlvbigpCit7CisgICAgZGVidWcoJ1NlbGVjdCBhdHRy
aWJ1dGUgbWlnaHQgaGF2ZSBzZXZlcmFsIHNlbGVjdG9ycycpOworCisgICAgc2hhZG93Um9vdC5p
bm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSIjZm9vLC5iYXIsZGl2W2Jhel0iPjwvY29udGVu
dD4nOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhv
c3QsICJmb28iKScsICd0cnVlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3Rv
ckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIpJywgJ2ZhbHNlJyk7CisgICAgc2hvdWxkQmUoJ2lu
dGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJheiIpJywgJ2ZhbHNlJyk7
CisKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyho
b3N0LCAiZm9vIiknLCAnZmFsc2UnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVj
dG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0LCAiYmFyIiknLCAndHJ1ZScpOworICAgIHNob3VsZEJl
KCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJiYXoiKScsICdm
YWxzZScpOworCisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0
ZUluU2hhZG93KGhvc3QsICJmb28iKScsICdmYWxzZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5h
bHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiYmFyIiknLCAnZmFsc2Un
KTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFk
b3coaG9zdCwgImJheiIpJywgJ3RydWUnKTsKK30pOworCit0ZXN0Q2FzZShmdW5jdGlvbigpCit7
CisgICAgZGVidWcoJ0RvblwndCBjb3VudCBzaGFkb3cgZWxlbWVudCcpOworCisgICAgc2hhZG93
Um9vdC5pbm5lckhUTUwgPSAnPHNoYWRvdyBzZWxlY3Q9IiNmb28sLmJhcixkaXZbYmF6XSI+PC9z
aGFkb3c+JzsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRv
dyhob3N0LCAiZm9vIiknLCAnZmFsc2UnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1Nl
bGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmFyIiknLCAnZmFsc2UnKTsKKyAgICBzaG91bGRC
ZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmF6IiknLCAnZmFs
c2UnKTsKKworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hh
ZG93KGhvc3QsICJmb28iKScsICdmYWxzZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFz
U2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJiYXIiKScsICdmYWxzZScpOworICAgIHNo
b3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJiYXoi
KScsICdmYWxzZScpOworCisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckF0
dHJpYnV0ZUluU2hhZG93KGhvc3QsICJmb28iKScsICdmYWxzZScpOworICAgIHNob3VsZEJlKCdp
bnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiYmFyIiknLCAn
ZmFsc2UnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRl
SW5TaGFkb3coaG9zdCwgImJheiIpJywgJ2ZhbHNlJyk7Cit9KTsKKwordGVzdENhc2UoZnVuY3Rp
b24oKQoreworICAgIGRlYnVnKCdDb21wbGV4IGNhc2UgZm9yIHNpbmdsZSBTaGFkb3dSb290Jyk7
CisKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8ZGl2PjxkaXY+PC9kaXY+PGNvbnRlbnQg
c2VsZWN0PSIqIj48L2NvbnRlbnQ+PGRpdj48Y29udGVudCBzZWxlY3Q9ImRpdltmb289cGl5b10i
PjwvY29udGVudD48L2Rpdj4nOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JG
b3JJZEluU2hhZG93KGhvc3QsICJmb28iKScsICdmYWxzZScpOworICAgIHNob3VsZEJlKCdpbnRl
cm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJmb28iKScsICdmYWxzZScp
OworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRv
dyhob3N0LCAiZm9vIiknLCAndHJ1ZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2Vs
ZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAicGl5byIpJywgJ2ZhbHNlJyk7Cit9KTsK
KwordGVzdENhc2UoZnVuY3Rpb24oKQoreworICAgIGRlYnVnKCdBbm90aGVyIGNvbXBsZXggY2Fz
ZSBmb3Igc2luZ2xlIFNoYWRvd1Jvb3QnKTsKKworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0g
Jzxjb250ZW50IHNlbGVjdD0iI2ZvbywuZm9vLGRpdltmb29dIj48L2NvbnRlbnQ+JzsKKyAgICBz
aG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9vIikn
LCAndHJ1ZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0lu
U2hhZG93KGhvc3QsICJmb28iKScsICd0cnVlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5o
YXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJmb28iKScsICd0cnVlJyk7Cit9
KTsKKwordGVzdENhc2UoZnVuY3Rpb24oKQoreworICAgIGRlYnVnKCdNdWx0aXBsZSBTaGFkb3dS
b290IGNhc2UnKTsKKworICAgIHZhciBhbm90aGVyU2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFk
b3dSb290KGhvc3QpOworCisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2Vs
ZWN0PSIjZm9vIj48L2NvbnRlbnQ+JzsKKyAgICBhbm90aGVyU2hhZG93Um9vdC5pbm5lckhUTUwg
PSAnPGNvbnRlbnQgc2VsZWN0PSIjYmFyIj48L2NvbnRlbnQ+PGNvbnRlbnQgc2VsZWN0PSJkaXZb
YmF6XSwuYmFyIj48L2NvbnRlbnQ+JzsKKworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2Vs
ZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJmb28iKScsICd0cnVlJyk7CisgICAgc2hvdWxkQmUo
J2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIpJywgJ3RydWUn
KTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0
LCAiYmF6IiknLCAnZmFsc2UnKTsKKworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0
b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJmb28iKScsICdmYWxzZScpOworICAgIHNob3VsZEJl
KCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJiYXIiKScsICd0
cnVlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFk
b3coaG9zdCwgImJheiIpJywgJ2ZhbHNlJyk7CisKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhh
c1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImZvbyIpJywgJ2ZhbHNlJyk7Cisg
ICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhv
c3QsICJiYXIiKScsICdmYWxzZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0
b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiYmF6IiknLCAndHJ1ZScpOworfSk7CisKK3Rl
c3RDYXNlKGZ1bmN0aW9uKCkKK3sKKyAgICBkZWJ1ZygnRHluYW1pYyBzZWxlY3QgYXR0cmlidXRl
IHVwZGF0ZScpOworCisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0
PSIjZm9vIj48L2NvbnRlbnQ+JzsKKworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0
b3JGb3JJZEluU2hhZG93KGhvc3QsICJmb28iKScsICd0cnVlJyk7CisgICAgc2hvdWxkQmUoJ2lu
dGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIpJywgJ2ZhbHNlJyk7
CisKKyAgICB2YXIgY29udGVudCA9IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignY29udGVudCcp
OworICAgIGNvbnRlbnQuc2VsZWN0ID0gJyNiYXInOworCisgICAgc2hvdWxkQmUoJ2ludGVybmFs
cy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImZvbyIpJywgJ2ZhbHNlJyk7CisgICAg
c2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIp
JywgJ3RydWUnKTsKK30pOworCit0ZXN0Q2FzZShmdW5jdGlvbigpCit7CisgICAgZGVidWcoJ05l
c3RlZCBTaGFkb3dET00gY2FzZScpOworCisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNv
bnRlbnQgc2VsZWN0PSIjZm9vIj48L2NvbnRlbnQ+JzsKKworICAgIHZhciBkaXYgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB2YXIgbmVzdGVkU2hhZG93Um9vdCA9IG5ldyBX
ZWJLaXRTaGFkb3dSb290KGRpdik7CisgICAgbmVzdGVkU2hhZG93Um9vdC5pbm5lckhUTUwgPSAn
PGNvbnRlbnQgc2VsZWN0PSIjYmFyIj48L2NvbnRlbnQ+JzsKKyAgICBzaGFkb3dSb290LmFwcGVu
ZENoaWxkKGRpdik7CisKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJ
blNoYWRvdyhob3N0LCAiZm9vIiknLCAndHJ1ZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMu
aGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXIiKScsICd0cnVlJyk7CisgICAgc2hv
dWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJheiIpJywg
J2ZhbHNlJyk7CisKKyAgICB2YXIgY29udGVudCA9IG5lc3RlZFNoYWRvd1Jvb3QucXVlcnlTZWxl
Y3RvcignY29udGVudCcpOworICAgIGNvbnRlbnQuc2VsZWN0ID0gJyNiYXonOworCisgICAgc2hv
dWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImZvbyIpJywg
J3RydWUnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRv
dyhob3N0LCAiYmFyIiknLCAnZmFsc2UnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1Nl
bGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmF6IiknLCAndHJ1ZScpOworfSk7CisKK2Zpbmlz
aEpTVGVzdCgpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9D
aGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggZWE4Y2Y5ZGY1ZGVkMTFmMDc5NjMyYjdkOTVjMWYx
ZTkwYTMzZTEwZi4uMTcyMzQxZDEzMWY0NTgwMTVmMTU2NWEwOTgyYzQwNmU3ZDQ3NDAwZSAxMDA2
NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEy
LTExLTA4ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBbU2hhZG93XSBFbGVtZW50U2hhZG93IHNob3VsZCBoYXZlIFJ1bGVGZWF0dXJlU2V0IGZvciBz
ZWxlY3QgYXR0cmlidXRlIHNlbGVjdG9ycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwMTE4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEV4cG9zZXMgbmVjZXNzYXJ5IHN5bWJvbHMuCisKKyAgICAgICAg
KiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyOgorCiAyMDEyLTExLTA3ICBTaGlueWEg
S2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbU2hhZG93XSBVc2Ug
c2V0UHNldWRvKCkgaW5zdGVhZCBvZiBzZXRTaGFkb3dQc2V1ZG9JZCgpLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172961</attachid>
            <date>2012-11-08 01:41:22 -0800</date>
            <delta_ts>2012-11-08 02:25:25 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-101180-20121108183931.patch</filename>
            <type>text/plain</type>
            <size>47119</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzODM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzhhY2IwY2FkOWY2ZmJm
MTk0NzJkMjdlNTlhNmIwOWIyOTRkNmVhNi4uMTQ5NWRkYzBlMWYxZDIxNmM0ZWNlYjczYTMxMDY0
MTRjZWE0ZDkzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMCBAQAorMjAxMi0xMS0wOCAgU2hp
bnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1NoYWRvd10g
RWxlbWVudFNoYWRvdyBzaG91bGQgaGF2ZSBSdWxlRmVhdHVyZVNldCBmb3Igc2VsZWN0IGF0dHJp
YnV0ZSBzZWxlY3RvcnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDExODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGlzIGlzIGEgcHJlcGFyYXRpb24gcGF0Y2ggZm9yIEJ1ZyAxMDA0NTEuCisKKyAg
ICAgICAgV2UgcHJlc2VydmUgUnVsZUZlYXR1cmVTZXQgY29sbGVjdGVkIGZyb20gc2VsZWN0IGF0
dHJpYnV0ZXMgaW4gU2hhZG93RE9NLgorICAgICAgICBXaGVuIGFuIGVsZW1lbnQgYXR0cmlidXRl
IGlzIGNoYW5nZWQsIHdlIG1pZ2h0IGhhdmUgdG8gaW52YWxpZGF0ZSBjb250ZW50IGRpc3RyaWJ1
dGlvbiwKKyAgICAgICAgaG93ZXZlciBpdCdzIGhpZ2ggY29zdCBvcGVyYXRpb24uIFNvIHdlIHdv
dWxkIGxpa2UgdG8gY2hlY2sgUnVsZUZlYXR1cmVTZXQgdXNlZCBpbgorICAgICAgICBzZWxlY3Qg
YXR0cmlidXRlcyB0byBkZXRlcm1pbmUgd2UgcmVhbGx5IG5lZWQgdG8gaW52YWxpZGF0ZSBkaXN0
cmlidXRpb24uCisKKyAgICAgICAgTGlrZSBTdHlsZVJlc29sdmVyLCBFbGVtZW50U2hhZG93IGhh
cyBzZXZlcmFsIHJ1bGUgZmVhdHVyZXMuIFdoZW4gbmVzdGVkIFNoYWRvd0RPTSBpcyB1c2VkLAor
ICAgICAgICBmaXJzdCB3ZSBjb2xsZWN0IGZlYXR1cmVzIGluIG5lc3RlZCBTaGFkb3dET00sIGFu
ZCBtZXJnZSBpdCB0byB0aGUgcGFyZW50IFNoYWRvd0RPTS4KKyAgICAgICAgRm9yIHRoZSBwZXJm
b3JtYW5jZSByZWFzb24sIHdlIGhhdmUgYSBmbGFnIHRvIGNoZWNrIHdoZXRoZXIgd2UgbmVlZCB0
byBjb2xsZWN0IGZlYXR1cmVzIGFnYWluLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctc2VsZWN0LWF0dHJpYnV0ZS1mZWF0dXJlc2V0Lmh0bWwKKworICAgICAgICAqIFdl
YkNvcmUuZXhwLmluOgorICAgICAgICAqIGNzcy9SdWxlRmVhdHVyZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSdWxlRmVhdHVyZVNldDo6Y29sbGVjdEZlYXR1cmVzRnJvbVNlbGVjdG9yKTogTW92
ZWQgZnJvbSBSdWxlU2V0LmNwcCwgc2luY2Ugd2Ugd291bGQgbGlrZSB0byByZXVzZSB0aGlzLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogY3NzL1J1bGVGZWF0dXJlLmg6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFJ1bGVGZWF0dXJlU2V0KToKKyAgICAgICAgKiBjc3MvUnVs
ZVNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb2xsZWN0RmVhdHVyZXNGcm9tUnVsZURhdGEp
OgorICAgICAgICAqIGRvbS9FbGVtZW50U2hhZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnRTaGFkb3c6OkVsZW1lbnRTaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNo
YWRvdzo6c2V0U2hvdWxkQ29sbGVjdFNlbGVjdEZlYXR1cmVTZXQpOiBFbmFibGUgYSBmbGFnIHRv
IGNvbGxlY3QgZmVhdHVyZSBzZXQgb2YgZGVzY2VuZGFudAorICAgICAgICBub2RlcyAoYW5kIHRo
ZWlyIFNoYWRvd0RPTSkuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnRTaGFkb3c6OmVuc3VyZVNlbGVjdEZlYXR1cmVTZXRDb2xsZWN0ZWQpOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6Y29sbGVjdFNlbGVjdEZlYXR1cmVTZXRGcm9tKTogQ29s
bGVjdCBSdWxlRmVhdHVyZVNldCBmcm9tIGFsbCBkZXNjZW5kYW50IE5vZGVzIGFuZCB0aGVpcgor
ICAgICAgICBTaGFkb3dET00uIFdlIG5lZWQgdG8gY29sbGVjdCBpZCwgY2xhc3MsIGFuZCBhdHRy
aWJ1dGUgbmFtZXMuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hhZG93OjpoYXNTZWxlY3Rv
ckZvcklkKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFkb3c6Omhhc1NlbGVjdG9yRm9y
Q2xhc3MpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6aGFzU2VsZWN0b3JGb3JB
dHRyaWJ1dGUpOgorICAgICAgICAqIGRvbS9FbGVtZW50U2hhZG93Lmg6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50U2hhZG93OjpzaG91bGRDb2xsZWN0U2VsZWN0RmVhdHVyZVNldCk6CisgICAg
ICAgIChFbGVtZW50U2hhZG93KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVudEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZSk6IFdoZW4gc2VsZWN0IGF0dHJpYnV0ZSBpcyBjaGFuZ2VkLCBlbmFibGUgYSBmbGFn
IHRvIHJlY29sbGVjdCBmZWF0dXJlcy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxl
bWVudDo6aW5zZXJ0ZWRJbnRvKTogV2UgaGF2ZSB0byByZWNvbGxlY3QgZmVhdHVyZXMgd2hlbiBI
VE1MQ29udGVudEVsZW1lbnQgaXMgbW92ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVu
dEVsZW1lbnQ6OnJlbW92ZWRGcm9tKTogZGl0dG8uCisgICAgICAgICogaHRtbC9zaGFkb3cvSFRN
TENvbnRlbnRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjp0b0hUTUxDb250ZW50RWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Omhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aGFzU2Vs
ZWN0b3JGb3JDbGFzc0luU2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aGFz
U2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuaDoKKyAgICAgICAgKEludGVybmFscyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
aWRsOgorCisyMDEyLTExLTA3ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBIVE1MQ29udGVudEVsZW1lbnQgc2hvdWxkIHByZXNlcnZlIHBhcnNlZCBD
U1NTZWxlY3Rvckxpc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwMTU0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFdlIHdvdWxkIGxpa2UgdG8gcHJlc2VydmUgQ1NTU2VsZWN0b3JMaXN0IGZvciBzZWxl
Y3QgYXR0cmlidXRlIG9mIEhUTUxDb250ZW50RWxlbWVudC4KKworICAgICAgICBCZWZvcmUsIHdl
IHBhcnNlZCBhbmQgdmFsaWRhdGVkIHNlbGVjdCBhdHRyaWJ1dGUgZXZlcnkgdGltZSBkaXN0cmli
dXRpb24gaGFwcGVucy4gSWYgd2UgcHJlc2VydmUgdGhlIHBhcnNlZAorICAgICAgICBDU1NTZWxl
Y3Rvckxpc3QsIHdlIGNhbiByZWR1Y2UgZGlzdHJpYnV0aW9uIHRpbWUuCisKKyAgICAgICAgVGhp
cyBpcyBhbHNvIGEgcHJlcHJhdGlvbiBwYXRjaCBmb3IgQnVnIDEwMTE4MC4gSXQgYWxzbyBuZWVk
cyB0aGUgcGFyc2VkIENTU1NlbGVjdG9yTGlzdC4gV2UgZG9uJ3Qgd2FudCB0bworICAgICAgICBw
YXJzZSBhbmQgdmFsaWRhdGUgaXQgYWdhaW4uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBjb3Zl
cmVkIGJ5IGV4aXNpbmcgdGVzdHMuCisKKyAgICAgICAgKiBodG1sL3NoYWRvdy9Db250ZW50U2Vs
ZWN0b3JRdWVyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VsZWN0b3JRdWVyeTo6
Q29udGVudFNlbGVjdG9yUXVlcnkpOiBXZSBkb24ndCBwYXJzZSBzZWxlY3QgYXR0cmlidXRlIGhl
cmUgYW55bW9yZS4KKyAgICAgICAgaWYgaXQncyBhbHJlYWR5IHBhcnNlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRTZWxlY3RvclF1ZXJ5OjptYXRjaGVzKToKKyAgICAgICAgKiBodG1sL3No
YWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5oOgorICAgICAgICAoQ29udGVudFNlbGVjdG9yUXVl
cnkpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6OkhUTUxDb250ZW50RWxlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6OmlzU2VsZWN0VmFsaWQpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRFbGVtZW50OjplbnN1cmVTZWxlY3RQYXJzZWQpOiBJ
ZiB3ZSBkb24ndCBoYXZlIHBhcnNlZCB0aGUgY3VycmVudCBzZWxlY3QgYXR0cmlidXRlLAorICAg
ICAgICB3ZSBwYXJzZSBhbmQgdmFsaWRhdGUgaXQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29u
dGVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKTogV2hlbiBzZWxlY3QgYXR0cmlidXRlIGlzIGNo
YW5nZWQsIHdlIGhhdmUgdG8gaGF2ZSBhIGZsYWcgZW5hYmxlZAorICAgICAgICB0byBwYXJzZSBz
ZWxlY3QgYXR0cml0ZSBhZ2Fpbi4KKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlU3ViU2VsZWN0
b3IpOiBNb3ZlZCBmcm9tIENvbnRlbnRTZWxlY3RvclF1ZXJ5LgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0ZVNlbGVjdG9yKTogTW92ZWQgZnJvbSBDb250ZW50
U2VsZWN0b3JRdWVyeS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6dmFs
aWRhdGVTZWxlY3QpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5o
OgorICAgICAgICAoSFRNTENvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxD
b250ZW50RWxlbWVudDo6c2V0U2VsZWN0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTENvbnRlbnRFbGVtZW50OjpzZWxlY3Rvckxpc3QpOgorICAgICAgICAqIGh0
bWwvc2hhZG93L0hUTUxTaGFkb3dFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxT
aGFkb3dFbGVtZW50OjplbXB0eVNlbGVjdG9yTGlzdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBodG1sL3NoYWRvdy9IVE1MU2hhZG93RWxlbWVudC5oOgorICAgICAgICAoSFRNTFNo
YWRvd0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNoYWRvd0VsZW1lbnQ6OnNlbGVj
dG9yTGlzdCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuaDoKKyAgICAg
ICAgKEluc2VydGlvblBvaW50KToKKwogMjAxMi0xMS0wNyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3
ZWJraXQub3JnPgogCiAgICAgICAgIFtWOF0gSW50cnVzaXZlRE9NV3JhcHBlck1hcCBzaG91bGQg
YmUgdXNhYmxlIGZvciBtb3JlIHRoYW4ganVzdCBOb2RlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRl
eCA0YjJlZmM1OTUyMzQxNTM5N2U0N2JjMGZmYTQ5NGIzMTNmY2RiYjdjLi4wMjJhZWJmYTAwOGUz
MDRjYTQ4NzVkYjU2OTk2Zjk2N2QzNGEyZWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjE1
LDYgKzIxNSw3IEBAIF9fWk43V2ViQ29yZTEzQVhPYmplY3RDYWNoZTQyZ0FjY2Vzc2liaWxpdHlF
bmhhbmNlZFVzZXJJbnRlcmZhY2VFbmFibGVkRQogX19aTjdXZWJDb3JlMTNDaGFyYWN0ZXJEYXRh
N3NldERhdGFFUktOM1dURjZTdHJpbmdFUmkKIF9fWk43V2ViQ29yZTEzQ29udGFpbmVyTm9kZTEx
YXBwZW5kQ2hpbGRFTjNXVEYxMFBhc3NSZWZQdHJJTlNfNE5vZGVFRUVSaWIKIF9fWk43V2ViQ29y
ZTEzQ29udGFpbmVyTm9kZTExcmVtb3ZlQ2hpbGRFUE5TXzROb2RlRVJpCitfX1pON1dlYkNvcmUx
M0VsZW1lbnRTaGFkb3czMWVuc3VyZVNlbGVjdEZlYXR1cmVTZXRDb2xsZWN0ZWRFdgogX19aTjdX
ZWJDb3JlMTNIVFRQSGVhZGVyTWFwQzFFdgogX19aTjdXZWJDb3JlMTNIVFRQSGVhZGVyTWFwRDFF
dgogX19aTjdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0QzFFUktTMF8KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9SdWxlRmVhdHVyZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZUZl
YXR1cmUuY3BwCmluZGV4IGIxZjkyOTY4NzkyN2ZkNzcwOWZmMDIyZjU1ZDBlYjNkOTdjMmQ3ZGMu
LjFiMTFjOGZhZWQ0Mzg0MWI4N2MxZjYxOTYyNDBhNWIyM2U3NDRhOTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9SdWxlRmVhdHVyZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1J1bGVGZWF0dXJlLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIlJ1bGVGZWF0dXJlLmgiCiAKKyNpbmNsdWRlICJDU1NTZWxlY3Rvci5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVt
ZW50YXRpb25IYXNoU2V0Lmg+CkBAIC0zNiw2ICszNywyNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKK3ZvaWQgUnVsZUZlYXR1cmVTZXQ6OmNvbGxlY3RGZWF0dXJlc0Zyb21TZWxlY3Rvcihj
b25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IpCit7CisgICAgaWYgKHNlbGVjdG9yLT5tX21hdGNo
ID09IENTU1NlbGVjdG9yOjpJZCkKKyAgICAgICAgaWRzSW5SdWxlcy5hZGQoc2VsZWN0b3ItPnZh
bHVlKCkuaW1wbCgpKTsKKyAgICBlbHNlIGlmIChzZWxlY3Rvci0+bV9tYXRjaCA9PSBDU1NTZWxl
Y3Rvcjo6Q2xhc3MpCisgICAgICAgIGNsYXNzZXNJblJ1bGVzLmFkZChzZWxlY3Rvci0+dmFsdWUo
KS5pbXBsKCkpOworICAgIGVsc2UgaWYgKHNlbGVjdG9yLT5pc0F0dHJpYnV0ZVNlbGVjdG9yKCkp
CisgICAgICAgIGF0dHJzSW5SdWxlcy5hZGQoc2VsZWN0b3ItPmF0dHJpYnV0ZSgpLmxvY2FsTmFt
ZSgpLmltcGwoKSk7CisgICAgc3dpdGNoIChzZWxlY3Rvci0+cHNldWRvVHlwZSgpKSB7CisgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRmlyc3RMaW5lOgorICAgICAgICB1c2VzRmlyc3RMaW5l
UnVsZXMgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9CZWZvcmU6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQWZ0ZXI6CisgICAgICAgIHVz
ZXNCZWZvcmVBZnRlclJ1bGVzID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoK
KyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCiB2b2lkIFJ1bGVGZWF0dXJlU2V0OjphZGQoY29u
c3QgUnVsZUZlYXR1cmVTZXQmIG90aGVyKQogewogICAgIEhhc2hTZXQ8QXRvbWljU3RyaW5nSW1w
bCo+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBvdGhlci5pZHNJblJ1bGVzLmVuZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVGZWF0dXJlLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvUnVsZUZlYXR1cmUuaAppbmRleCBjZTZkMDRlNjY0ZTQyZjRmYWJmYmYyNWYzOGRkYjJiNGUy
YmJhM2I3Li4wZmZjNmU1ZWUyMTcyYTY3YjdlN2VkOWMwOWYxMTJmYWNlNzgxNDNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZUZlYXR1cmUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvUnVsZUZlYXR1cmUuaApAQCAtMzAsNiArMzAsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBTdHlsZVJ1bGU7CitjbGFzcyBDU1NTZWxlY3RvcjsKIAogc3RydWN0IFJ1bGVG
ZWF0dXJlIHsKICAgICBSdWxlRmVhdHVyZShTdHlsZVJ1bGUqIHJ1bGUsIHVuc2lnbmVkIHNlbGVj
dG9ySW5kZXgsIGJvb2wgaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbikKQEAgLTUxLDcgKzUyLDEx
IEBAIHN0cnVjdCBSdWxlRmVhdHVyZVNldCB7CiAKICAgICB2b2lkIGFkZChjb25zdCBSdWxlRmVh
dHVyZVNldCYpOwogICAgIHZvaWQgY2xlYXIoKTsKKworICAgIHZvaWQgY29sbGVjdEZlYXR1cmVz
RnJvbVNlbGVjdG9yKGNvbnN0IENTU1NlbGVjdG9yKik7CisKICAgICB2b2lkIHJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwogICAgIEhhc2hTZXQ8QXRvbWljU3Ry
aW5nSW1wbCo+IGlkc0luUnVsZXM7CiAgICAgSGFzaFNldDxBdG9taWNTdHJpbmdJbXBsKj4gY2xh
c3Nlc0luUnVsZXM7CiAgICAgSGFzaFNldDxBdG9taWNTdHJpbmdJbXBsKj4gYXR0cnNJblJ1bGVz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL1J1bGVTZXQuY3BwCmluZGV4IGU5MmQxNzY4YjI5OGQ3YWU4OTZjMDdiZTI4ODdh
YTc0MWM1YTZkMzguLmE1MzY3ZWU4MmRiZDU5MzFlOTRiNjg0OWQ0M2U3YjFlZmQ5YzkxODYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvUnVsZVNldC5jcHAKQEAgLTE1NywzOCArMTU3LDE3IEBAIHZvaWQgUnVsZVNldDo6
UnVsZVNldFNlbGVjdG9yUGFpcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyog
bWVtb3J5T2JqCiAgICAgaW5mby5hZGRNZW1iZXIocnVsZVNldCk7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgdm9pZCBjb2xsZWN0RmVhdHVyZXNGcm9tU2VsZWN0b3IoUnVsZUZlYXR1cmVTZXQmIGZlYXR1
cmVzLCBjb25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IpCi17Ci0gICAgaWYgKHNlbGVjdG9yLT5t
X21hdGNoID09IENTU1NlbGVjdG9yOjpJZCkKLSAgICAgICAgZmVhdHVyZXMuaWRzSW5SdWxlcy5h
ZGQoc2VsZWN0b3ItPnZhbHVlKCkuaW1wbCgpKTsKLSAgICBlbHNlIGlmIChzZWxlY3Rvci0+bV9t
YXRjaCA9PSBDU1NTZWxlY3Rvcjo6Q2xhc3MpCi0gICAgICAgIGZlYXR1cmVzLmNsYXNzZXNJblJ1
bGVzLmFkZChzZWxlY3Rvci0+dmFsdWUoKS5pbXBsKCkpOwotICAgIGVsc2UgaWYgKHNlbGVjdG9y
LT5pc0F0dHJpYnV0ZVNlbGVjdG9yKCkpCi0gICAgICAgIGZlYXR1cmVzLmF0dHJzSW5SdWxlcy5h
ZGQoc2VsZWN0b3ItPmF0dHJpYnV0ZSgpLmxvY2FsTmFtZSgpLmltcGwoKSk7Ci0gICAgc3dpdGNo
IChzZWxlY3Rvci0+cHNldWRvVHlwZSgpKSB7Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
Rmlyc3RMaW5lOgotICAgICAgICBmZWF0dXJlcy51c2VzRmlyc3RMaW5lUnVsZXMgPSB0cnVlOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9CZWZvcmU6Ci0gICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQWZ0ZXI6Ci0gICAgICAgIGZlYXR1cmVzLnVzZXNCZWZv
cmVBZnRlclJ1bGVzID0gdHJ1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAg
ICAgYnJlYWs7Ci0gICAgfQotfQotCiBzdGF0aWMgdm9pZCBjb2xsZWN0RmVhdHVyZXNGcm9tUnVs
ZURhdGEoUnVsZUZlYXR1cmVTZXQmIGZlYXR1cmVzLCBjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEp
CiB7CiAgICAgYm9vbCBmb3VuZFNpYmxpbmdTZWxlY3RvciA9IGZhbHNlOwogICAgIGZvciAoQ1NT
U2VsZWN0b3IqIHNlbGVjdG9yID0gcnVsZURhdGEuc2VsZWN0b3IoKTsgc2VsZWN0b3I7IHNlbGVj
dG9yID0gc2VsZWN0b3ItPnRhZ0hpc3RvcnkoKSkgewotICAgICAgICBjb2xsZWN0RmVhdHVyZXNG
cm9tU2VsZWN0b3IoZmVhdHVyZXMsIHNlbGVjdG9yKTsKKyAgICAgICAgZmVhdHVyZXMuY29sbGVj
dEZlYXR1cmVzRnJvbVNlbGVjdG9yKHNlbGVjdG9yKTsKICAgICAgICAgCiAgICAgICAgIGlmIChD
U1NTZWxlY3Rvckxpc3QqIHNlbGVjdG9yTGlzdCA9IHNlbGVjdG9yLT5zZWxlY3Rvckxpc3QoKSkg
ewogICAgICAgICAgICAgZm9yIChDU1NTZWxlY3Rvciogc3ViU2VsZWN0b3IgPSBzZWxlY3Rvckxp
c3QtPmZpcnN0KCk7IHN1YlNlbGVjdG9yOyBzdWJTZWxlY3RvciA9IENTU1NlbGVjdG9yTGlzdDo6
bmV4dChzdWJTZWxlY3RvcikpIHsKICAgICAgICAgICAgICAgICBpZiAoIWZvdW5kU2libGluZ1Nl
bGVjdG9yICYmIHNlbGVjdG9yLT5pc1NpYmxpbmdTZWxlY3RvcigpKQogICAgICAgICAgICAgICAg
ICAgICBmb3VuZFNpYmxpbmdTZWxlY3RvciA9IHRydWU7Ci0gICAgICAgICAgICAgICAgY29sbGVj
dEZlYXR1cmVzRnJvbVNlbGVjdG9yKGZlYXR1cmVzLCBzdWJTZWxlY3Rvcik7CisgICAgICAgICAg
ICAgICAgZmVhdHVyZXMuY29sbGVjdEZlYXR1cmVzRnJvbVNlbGVjdG9yKHN1YlNlbGVjdG9yKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmICghZm91bmRTaWJsaW5nU2VsZWN0b3Ig
JiYgc2VsZWN0b3ItPmlzU2libGluZ1NlbGVjdG9yKCkpCiAgICAgICAgICAgICBmb3VuZFNpYmxp
bmdTZWxlY3RvciA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dFNoYWRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5jcHAKaW5kZXgg
NmY4N2YxNjQ0YWZiOTRiZmJmZTVlYjc4Y2ViMzFmZWU0NTE2MmYxYi4uNzNmNmM2MzA0M2JiZWVl
ZDViMTI4ZmQ4OTM4YTQwMjlhODg1NGFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnRTaGFkb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93
LmNwcApAQCAtMjcsOSArMjcsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJF
bGVtZW50U2hhZG93LmgiCiAKKyNpbmNsdWRlICJDU1NQYXJzZXIuaCIKKyNpbmNsdWRlICJDU1NT
ZWxlY3Rvckxpc3QuaCIKICNpbmNsdWRlICJDb250YWluZXJOb2RlQWxnb3JpdGhtcy5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxD
b250ZW50RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxTaGFkb3dFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgpA
QCAtMzksNiArNDIsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBFbGVtZW50U2hhZG93OjpF
bGVtZW50U2hhZG93KCkKKyAgICA6IG1fc2hvdWxkQ29sbGVjdFNlbGVjdEZlYXR1cmVTZXQoZmFs
c2UpCiB7CiB9CiAKQEAgLTIwMyw2ICsyMDcsNzMgQEAgdm9pZCBFbGVtZW50U2hhZG93OjppbnZh
bGlkYXRlRGlzdHJpYnV0aW9uKEVsZW1lbnQqIGhvc3QpCiAgICAgICAgIG1fZGlzdHJpYnV0b3Iu
ZmluaXNoSW5pdmFsaWRhdGlvbigpOwogfQogCit2b2lkIEVsZW1lbnRTaGFkb3c6OnNldFNob3Vs
ZENvbGxlY3RTZWxlY3RGZWF0dXJlU2V0KCkKK3sKKyAgICBpZiAoc2hvdWxkQ29sbGVjdFNlbGVj
dEZlYXR1cmVTZXQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zaG91bGRDb2xsZWN0U2Vs
ZWN0RmVhdHVyZVNldCA9IHRydWU7CisKKyAgICBpZiAoU2hhZG93Um9vdCogcGFyZW50U2hhZG93
Um9vdCA9IGhvc3QoKS0+c2hhZG93Um9vdCgpKSB7CisgICAgICAgIGlmIChFbGVtZW50U2hhZG93
KiBwYXJlbnRFbGVtZW50U2hhZG93ID0gcGFyZW50U2hhZG93Um9vdC0+b3duZXIoKSkKKyAgICAg
ICAgICAgIHBhcmVudEVsZW1lbnRTaGFkb3ctPnNldFNob3VsZENvbGxlY3RTZWxlY3RGZWF0dXJl
U2V0KCk7CisgICAgfQorfQorCit2b2lkIEVsZW1lbnRTaGFkb3c6OmVuc3VyZVNlbGVjdEZlYXR1
cmVTZXRDb2xsZWN0ZWQoKQoreworICAgIGlmICghbV9zaG91bGRDb2xsZWN0U2VsZWN0RmVhdHVy
ZVNldCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zZWxlY3RGZWF0dXJlcy5jbGVhcigpOwor
ICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IG9sZGVzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9v
dCA9IHJvb3QtPnlvdW5nZXJTaGFkb3dSb290KCkpCisgICAgICAgIGNvbGxlY3RTZWxlY3RGZWF0
dXJlU2V0RnJvbShyb290KTsKKyAgICBtX3Nob3VsZENvbGxlY3RTZWxlY3RGZWF0dXJlU2V0ID0g
ZmFsc2U7Cit9CisKK3ZvaWQgRWxlbWVudFNoYWRvdzo6Y29sbGVjdFNlbGVjdEZlYXR1cmVTZXRG
cm9tKFNoYWRvd1Jvb3QqIHJvb3QpCit7CisgICAgaWYgKCFyb290LT5oYXNDb250ZW50RWxlbWVu
dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAocm9vdC0+aGFzRWxlbWVudFNoYWRvdygp
KSB7CisgICAgICAgIGZvciAoTm9kZSogbm9kZSA9IHJvb3QtPmZpcnN0Q2hpbGQoKTsgbm9kZTsg
bm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUoKSkgeworICAgICAgICAgICAgaWYgKEVsZW1l
bnRTaGFkb3cqIGVsZW1lbnRTaGFkb3cgPSBub2RlLT5pc0VsZW1lbnROb2RlKCkgPyB0b0VsZW1l
bnQobm9kZSktPnNoYWRvdygpIDogMCkgeworICAgICAgICAgICAgICAgIGVsZW1lbnRTaGFkb3ct
PmVuc3VyZVNlbGVjdEZlYXR1cmVTZXRDb2xsZWN0ZWQoKTsKKyAgICAgICAgICAgICAgICBtX3Nl
bGVjdEZlYXR1cmVzLmFkZChlbGVtZW50U2hhZG93LT5tX3NlbGVjdEZlYXR1cmVzKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChyb290LT5oYXNDb250ZW50RWxl
bWVudCgpKSB7CisgICAgICAgIGZvciAoTm9kZSogbm9kZSA9IHJvb3QtPmZpcnN0Q2hpbGQoKTsg
bm9kZTsgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUoKSkgeworICAgICAgICAgICAgaWYg
KGlzSFRNTENvbnRlbnRFbGVtZW50KG5vZGUpKSB7CisgICAgICAgICAgICAgICAgY29uc3QgQ1NT
U2VsZWN0b3JMaXN0JiBsaXN0ID0gdG9IVE1MQ29udGVudEVsZW1lbnQobm9kZSktPnNlbGVjdG9y
TGlzdCgpOworICAgICAgICAgICAgICAgIGZvciAoQ1NTU2VsZWN0b3IqIHNlbGVjdG9yID0gbGlz
dC5maXJzdCgpOyBzZWxlY3Rvcjsgc2VsZWN0b3IgPSBsaXN0Lm5leHQoc2VsZWN0b3IpKQorICAg
ICAgICAgICAgICAgICAgICBtX3NlbGVjdEZlYXR1cmVzLmNvbGxlY3RGZWF0dXJlc0Zyb21TZWxl
Y3RvcihzZWxlY3Rvcik7ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgIH0KK30KKworYm9vbCBFbGVtZW50U2hhZG93OjpoYXNTZWxlY3RvckZvcklkKGNv
bnN0IEF0b21pY1N0cmluZyYgaWRWYWx1ZSkgY29uc3QKK3sKKyAgICBBU1NFUlQoIWlkVmFsdWUu
aXNFbXB0eSgpKTsKKyAgICByZXR1cm4gbV9zZWxlY3RGZWF0dXJlcy5pZHNJblJ1bGVzLmNvbnRh
aW5zKGlkVmFsdWUuaW1wbCgpKTsKK30KKworYm9vbCBFbGVtZW50U2hhZG93OjpoYXNTZWxlY3Rv
ckZvckNsYXNzKGNvbnN0IEF0b21pY1N0cmluZyYgY2xhc3NWYWx1ZSkgY29uc3QKK3sKKyAgICBB
U1NFUlQoIWNsYXNzVmFsdWUuaXNFbXB0eSgpKTsKKyAgICByZXR1cm4gbV9zZWxlY3RGZWF0dXJl
cy5jbGFzc2VzSW5SdWxlcy5jb250YWlucyhjbGFzc1ZhbHVlLmltcGwoKSk7Cit9CisKK2Jvb2wg
RWxlbWVudFNoYWRvdzo6aGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGUoY29uc3QgQXRvbWljU3RyaW5n
JiBhdHRyaWJ1dGVOYW1lKSBjb25zdAoreworICAgIEFTU0VSVCghYXR0cmlidXRlTmFtZS5pc0Vt
cHR5KCkpOworICAgIHJldHVybiBtX3NlbGVjdEZlYXR1cmVzLmF0dHJzSW5SdWxlcy5jb250YWlu
cyhhdHRyaWJ1dGVOYW1lLmltcGwoKSk7Cit9CisKIHZvaWQgRWxlbWVudFNoYWRvdzo6cmVwb3J0
TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsK
ICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3Jl
TWVtb3J5VHlwZXM6OkRPTSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dFNoYWRvdy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuaAppbmRleCAyZjZm
NTZjNzRmNjY5MmNlZTM0NDg2YTlhN2Y5YjAyMWM3MGU5Mjg1Li5mOGMzMGMyY2Y1ZWE2YzBlZDI0
N2I5ZmY4ODZmZGMzNGI5ZmU3NTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudFNoYWRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmgKQEAg
LTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkNvbnRlbnREaXN0cmlidXRvci5oIgogI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJSdWxlRmVhdHVyZS5oIgogI2luY2x1ZGUg
IlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlIDx3dGYvRG91Ymx5TGlua2VkTGlzdC5oPgogI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNjksMTMgKzcwLDI1IEBAIHB1YmxpYzoKICAgICBD
b250ZW50RGlzdHJpYnV0b3ImIGRpc3RyaWJ1dG9yKCk7CiAgICAgY29uc3QgQ29udGVudERpc3Ry
aWJ1dG9yJiBkaXN0cmlidXRvcigpIGNvbnN0OwogCisgICAgYm9vbCBzaG91bGRDb2xsZWN0U2Vs
ZWN0RmVhdHVyZVNldCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ29sbGVjdFNlbGVjdEZlYXR1
cmVTZXQ7IH0KKyAgICB2b2lkIHNldFNob3VsZENvbGxlY3RTZWxlY3RGZWF0dXJlU2V0KCk7Cisg
ICAgdm9pZCBlbnN1cmVTZWxlY3RGZWF0dXJlU2V0Q29sbGVjdGVkKCk7CisKKyAgICBib29sIGhh
c1NlbGVjdG9yRm9ySWQoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7CisgICAgYm9vbCBoYXNT
ZWxlY3RvckZvckNsYXNzKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0OworICAgIGJvb2wgaGFz
U2VsZWN0b3JGb3JBdHRyaWJ1dGUoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7CisKICAgICB2
b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKIAogcHJpdmF0
ZToKICAgICB2b2lkIGludmFsaWRhdGVEaXN0cmlidXRpb24oRWxlbWVudCogaG9zdCk7CiAKKyAg
ICB2b2lkIGNvbGxlY3RTZWxlY3RGZWF0dXJlU2V0RnJvbShTaGFkb3dSb290Kik7CisKICAgICBE
b3VibHlMaW5rZWRMaXN0PFNoYWRvd1Jvb3Q+IG1fc2hhZG93Um9vdHM7CiAgICAgQ29udGVudERp
c3RyaWJ1dG9yIG1fZGlzdHJpYnV0b3I7CisgICAgUnVsZUZlYXR1cmVTZXQgbV9zZWxlY3RGZWF0
dXJlczsKKyAgICBib29sIG1fc2hvdWxkQ29sbGVjdFNlbGVjdEZlYXR1cmVTZXQgOiAxOwogfTsK
IAogaW5saW5lIFNoYWRvd1Jvb3QqIEVsZW1lbnRTaGFkb3c6OnlvdW5nZXN0U2hhZG93Um9vdCgp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2Vs
ZWN0b3JRdWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0
b3JRdWVyeS5jcHAKaW5kZXggMGE2ZWMzMmVlZTVmZDAwYjhlOTViNDMzZWRkZjk0OTczNmIxNGVl
YS4uZGJlNWE4ZTk1NjJmNjhmYTZhMDdmM2MzMzk3MGZhODVmM2I4NmJiNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcApAQCAt
MjcsNyArMjcsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmgiCiAKLSNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRlICJDU1NTZWxl
Y3Rvckxpc3QuaCIKICNpbmNsdWRlICJJbnNlcnRpb25Qb2ludC5oIgogI2luY2x1ZGUgIlNlbGVj
dG9yQ2hlY2tlci5oIgpAQCAtNjUsMjYgKzY0LDEyIEBAIGJvb2wgQ29udGVudFNlbGVjdG9yRGF0
YUxpc3Q6Om1hdGNoZXMoY29uc3QgQ29udGVudFNlbGVjdG9yQ2hlY2tlciYgc2VsZWN0b3JDaGVj
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1Db250ZW50U2VsZWN0b3JRdWVyeTo6Q29udGVudFNl
bGVjdG9yUXVlcnkoY29uc3QgSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50KQorQ29udGVu
dFNlbGVjdG9yUXVlcnk6OkNvbnRlbnRTZWxlY3RvclF1ZXJ5KEluc2VydGlvblBvaW50KiBpbnNl
cnRpb25Qb2ludCkKICAgICA6IG1faW5zZXJ0aW9uUG9pbnQoaW5zZXJ0aW9uUG9pbnQpCiAgICAg
LCBtX3NlbGVjdG9yQ2hlY2tlcihpbnNlcnRpb25Qb2ludC0+ZG9jdW1lbnQoKSwgIWluc2VydGlv
blBvaW50LT5kb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSkKIHsKLSAgICBpZiAoaW5zZXJ0aW9u
UG9pbnQtPnNlbGVjdCgpLmlzTnVsbCgpIHx8IGluc2VydGlvblBvaW50LT5zZWxlY3QoKS5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgbV9pc1ZhbGlkU2VsZWN0b3IgPSB0cnVlOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgQ1NTUGFyc2VyIHBhcnNlcihpbnNlcnRpb25Qb2ludC0+ZG9jdW1l
bnQoKSk7Ci0gICAgcGFyc2VyLnBhcnNlU2VsZWN0b3IoaW5zZXJ0aW9uUG9pbnQtPnNlbGVjdCgp
LCBtX3NlbGVjdG9yTGlzdCk7Ci0KLSAgICBtX2lzVmFsaWRTZWxlY3RvciA9IENvbnRlbnRTZWxl
Y3RvclF1ZXJ5Ojp2YWxpZGF0ZVNlbGVjdG9yTGlzdCgpOwotICAgIGlmIChtX2lzVmFsaWRTZWxl
Y3RvcikKLSAgICAgICAgbV9zZWxlY3RvcnMuaW5pdGlhbGl6ZShtX3NlbGVjdG9yTGlzdCk7Ci19
Ci0KLWJvb2wgQ29udGVudFNlbGVjdG9yUXVlcnk6OmlzVmFsaWRTZWxlY3RvcigpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG1faXNWYWxpZFNlbGVjdG9yOworICAgIGlmIChpbnNlcnRpb25Qb2ludC0+
aXNTZWxlY3RWYWxpZCgpKQorICAgICAgICBtX3NlbGVjdG9ycy5pbml0aWFsaXplKGluc2VydGlv
blBvaW50LT5zZWxlY3Rvckxpc3QoKSk7CiB9CiAKIGJvb2wgQ29udGVudFNlbGVjdG9yUXVlcnk6
Om1hdGNoZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxOb2RlPiA+JiBzaWJsaW5ncywgaW50IG50aCkg
Y29uc3QKQEAgLTk1LDcgKzgwLDcgQEAgYm9vbCBDb250ZW50U2VsZWN0b3JRdWVyeTo6bWF0Y2hl
cyhjb25zdCBWZWN0b3I8UmVmUHRyPE5vZGU+ID4mIHNpYmxpbmdzLCBpbnQgbnQKICAgICBpZiAo
bV9pbnNlcnRpb25Qb2ludC0+c2VsZWN0KCkuaXNOdWxsKCkgfHwgbV9pbnNlcnRpb25Qb2ludC0+
c2VsZWN0KCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmICghbV9p
c1ZhbGlkU2VsZWN0b3IpCisgICAgaWYgKCFtX2luc2VydGlvblBvaW50LT5pc1NlbGVjdFZhbGlk
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9k
ZSgpKQpAQCAtMTA0LDg1ICs4OSw0IEBAIGJvb2wgQ29udGVudFNlbGVjdG9yUXVlcnk6Om1hdGNo
ZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxOb2RlPiA+JiBzaWJsaW5ncywgaW50IG50CiAgICAgcmV0
dXJuIG1fc2VsZWN0b3JzLm1hdGNoZXMobV9zZWxlY3RvckNoZWNrZXIsIHNpYmxpbmdzLCBudGgp
OwogfQogCi1zdGF0aWMgYm9vbCB2YWxpZGF0ZVN1YlNlbGVjdG9yKENTU1NlbGVjdG9yKiBzZWxl
Y3RvcikKLXsKLSAgICBzd2l0Y2ggKHNlbGVjdG9yLT5tX21hdGNoKSB7Ci0gICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6Tm9uZToKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpJZDoKLSAgICBjYXNlIENTU1Nl
bGVjdG9yOjpDbGFzczoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpFeGFjdDoKLSAgICBjYXNlIENT
U1NlbGVjdG9yOjpTZXQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6TGlzdDoKLSAgICBjYXNlIENT
U1NlbGVjdG9yOjpIeXBoZW46Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6Q29udGFpbjoKLSAgICBj
YXNlIENTU1NlbGVjdG9yOjpCZWdpbjoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpFbmQ6Ci0gICAg
ICAgIHJldHVybiB0cnVlOwotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnQ6Ci0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQYWdlUHNldWRvQ2xh
c3M6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3M6Ci0gICAgICAgIGJyZWFrOwot
ICAgIH0KLQotICAgIHN3aXRjaCAoc2VsZWN0b3ItPnBzZXVkb1R5cGUoKSkgewotICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb0VtcHR5OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xp
bms6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvVmlzaXRlZDoKLSAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9UYXJnZXQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRW5hYmxl
ZDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9EaXNhYmxlZDoKLSAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9DaGVja2VkOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0luZGV0
ZXJtaW5hdGU6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoQ2hpbGQ6Ci0gICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoTGFzdENoaWxkOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb050aE9mVHlwZToKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhMYXN0T2ZU
eXBlOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0ZpcnN0Q2hpbGQ6Ci0gICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvTGFzdENoaWxkOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0ZpcnN0T2ZUeXBlOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xhc3RPZlR5cGU6Ci0g
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvT25seU9mVHlwZToKLSAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLX0KLQotc3Rh
dGljIGJvb2wgdmFsaWRhdGVTZWxlY3RvcihDU1NTZWxlY3Rvciogc2VsZWN0b3IpCi17Ci0gICAg
QVNTRVJUKHNlbGVjdG9yKTsKLQotICAgIGlmICghdmFsaWRhdGVTdWJTZWxlY3RvcihzZWxlY3Rv
cikpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIENTU1NlbGVjdG9yKiBwcmV2U3ViU2Vs
ZWN0b3IgPSBzZWxlY3RvcjsKLSAgICBDU1NTZWxlY3Rvciogc3ViU2VsZWN0b3IgPSBzZWxlY3Rv
ci0+dGFnSGlzdG9yeSgpOwotCi0gICAgd2hpbGUgKHN1YlNlbGVjdG9yKSB7Ci0gICAgICAgIGlm
IChwcmV2U3ViU2VsZWN0b3ItPnJlbGF0aW9uKCkgIT0gQ1NTU2VsZWN0b3I6OlN1YlNlbGVjdG9y
KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoIXZhbGlkYXRlU3ViU2Vs
ZWN0b3Ioc3ViU2VsZWN0b3IpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAg
IHByZXZTdWJTZWxlY3RvciA9IHN1YlNlbGVjdG9yOwotICAgICAgICBzdWJTZWxlY3RvciA9IHN1
YlNlbGVjdG9yLT50YWdIaXN0b3J5KCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0K
LWJvb2wgQ29udGVudFNlbGVjdG9yUXVlcnk6OnZhbGlkYXRlU2VsZWN0b3JMaXN0KCkKLXsKLSAg
ICBpZiAoIW1fc2VsZWN0b3JMaXN0LmZpcnN0KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIGZvciAoQ1NTU2VsZWN0b3IqIHNlbGVjdG9yID0gbV9zZWxlY3Rvckxpc3QuZmlyc3QoKTsg
c2VsZWN0b3I7IHNlbGVjdG9yID0gbV9zZWxlY3Rvckxpc3QubmV4dChzZWxlY3RvcikpIHsKLSAg
ICAgICAgaWYgKCF2YWxpZGF0ZVNlbGVjdG9yKHNlbGVjdG9yKSkKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgKaW5kZXggMmM3MTBh
NTg1MmU5MmQ3Njg4MmM3YzIwNzUwYmZkMjZkYTJhYTAzYi4uNzhhMDgyNDU0YzlkMTJmMmIwZjNj
NTUwNGE4YjkwYWJlOWUxZWJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvQ29udGVudFNlbGVjdG9yUXVlcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9Db250ZW50U2VsZWN0b3JRdWVyeS5oCkBAIC02NCwxOCArNjQsMTQgQEAgcHJpdmF0ZToKIGNs
YXNzIENvbnRlbnRTZWxlY3RvclF1ZXJ5IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb250
ZW50U2VsZWN0b3JRdWVyeSk7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgQ29udGVudFNlbGVjdG9y
UXVlcnkoY29uc3QgSW5zZXJ0aW9uUG9pbnQqKTsKKyAgICBleHBsaWNpdCBDb250ZW50U2VsZWN0
b3JRdWVyeShJbnNlcnRpb25Qb2ludCopOwogCi0gICAgYm9vbCBpc1ZhbGlkU2VsZWN0b3IoKSBj
b25zdDsKICAgICBib29sIG1hdGNoZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxOb2RlPiA+JiBzaWJs
aW5ncywgaW50IG50aE5vZGUpIGNvbnN0OwogcHJpdmF0ZToKLSAgICBib29sIHZhbGlkYXRlU2Vs
ZWN0b3JMaXN0KCk7CiAKLSAgICBjb25zdCBJbnNlcnRpb25Qb2ludCogbV9pbnNlcnRpb25Qb2lu
dDsKKyAgICBJbnNlcnRpb25Qb2ludCogbV9pbnNlcnRpb25Qb2ludDsKICAgICBDb250ZW50U2Vs
ZWN0b3JEYXRhTGlzdCBtX3NlbGVjdG9yczsKLSAgICBDU1NTZWxlY3Rvckxpc3QgbV9zZWxlY3Rv
ckxpc3Q7CiAgICAgQ29udGVudFNlbGVjdG9yQ2hlY2tlciBtX3NlbGVjdG9yQ2hlY2tlcjsKLSAg
ICBib29sIG1faXNWYWxpZFNlbGVjdG9yOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKaW5kZXggNTA0MGU5ZWI4ZDYwNjI3
NTZlZWFmOWJlNDQzNzRkNjZhNWUxMjVlMC4uOWZhMTM5NGZjOGE2MDBiZjRmOGNmZTc1Y2E3OTc5
YTA1NDFkZTJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENv
bnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29u
dGVudEVsZW1lbnQuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCiAKKyNpbmNsdWRlICJDU1NQYXJzZXIuaCIK
ICNpbmNsdWRlICJDb250ZW50RGlzdHJpYnV0b3IuaCIKICNpbmNsdWRlICJDb250ZW50U2VsZWN0
b3JRdWVyeS5oIgogI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlcy5oIgpAQCAtNjUsNiArNjYsOCBA
QCBQYXNzUmVmUHRyPEhUTUxDb250ZW50RWxlbWVudD4gSFRNTENvbnRlbnRFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdAogSFRNTENvbnRlbnRFbGVtZW50OjpIVE1MQ29udGVu
dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQog
ICAgIDogSW5zZXJ0aW9uUG9pbnQobmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX3JlZ2lzdGVyZWRX
aXRoU2hhZG93Um9vdChmYWxzZSkKKyAgICAsIG1fc2hvdWxkUGFyc2VTZWxlY3Rvckxpc3QoZmFs
c2UpCisgICAgLCBtX2lzVmFsaWRTZWxlY3Rvcih0cnVlKQogewogfQogCkBAIC03NywyMiArODAs
MzMgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MQ29udGVudEVsZW1lbnQ6OnNlbGVjdCgpIGNv
bnN0CiAgICAgcmV0dXJuIGdldEF0dHJpYnV0ZShzZWxlY3RBdHRyKTsKIH0KIAotYm9vbCBIVE1M
Q29udGVudEVsZW1lbnQ6OmlzU2VsZWN0VmFsaWQoKSBjb25zdAorYm9vbCBIVE1MQ29udGVudEVs
ZW1lbnQ6OmlzU2VsZWN0VmFsaWQoKQogewotICAgIENvbnRlbnRTZWxlY3RvclF1ZXJ5IHF1ZXJ5
KHRoaXMpOwotICAgIHJldHVybiBxdWVyeS5pc1ZhbGlkU2VsZWN0b3IoKTsKKyAgICBlbnN1cmVT
ZWxlY3RQYXJzZWQoKTsKKyAgICByZXR1cm4gbV9pc1ZhbGlkU2VsZWN0b3I7CiB9CiAKLXZvaWQg
SFRNTENvbnRlbnRFbGVtZW50OjpzZXRTZWxlY3QoY29uc3QgQXRvbWljU3RyaW5nJiBzZWxlY3RW
YWx1ZSkKK3ZvaWQgSFRNTENvbnRlbnRFbGVtZW50OjplbnN1cmVTZWxlY3RQYXJzZWQoKQogewot
ICAgIHNldEF0dHJpYnV0ZShzZWxlY3RBdHRyLCBzZWxlY3RWYWx1ZSk7CisgICAgaWYgKCFtX3No
b3VsZFBhcnNlU2VsZWN0b3JMaXN0KQorICAgICAgICByZXR1cm47CisKKyAgICBDU1NQYXJzZXIg
cGFyc2VyKGRvY3VtZW50KCkpOworICAgIHBhcnNlci5wYXJzZVNlbGVjdG9yKHNlbGVjdCgpLCBt
X3NlbGVjdG9yTGlzdCk7CisgICAgbV9zaG91bGRQYXJzZVNlbGVjdG9yTGlzdCA9IGZhbHNlOwor
ICAgIG1faXNWYWxpZFNlbGVjdG9yID0gdmFsaWRhdGVTZWxlY3QoKTsKKyAgICBpZiAoIW1faXNW
YWxpZFNlbGVjdG9yKQorICAgICAgICBtX3NlbGVjdG9yTGlzdCA9IENTU1NlbGVjdG9yTGlzdCgp
OwogfQogCiB2b2lkIEhUTUxDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgQXR0
cmlidXRlJiBhdHRyaWJ1dGUpCiB7CiAgICAgaWYgKGF0dHJpYnV0ZS5uYW1lKCkgPT0gc2VsZWN0
QXR0cikgewotICAgICAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IHNoYWRvd1Jvb3QoKSkKKyAg
ICAgICAgaWYgKFNoYWRvd1Jvb3QqIHJvb3QgPSBzaGFkb3dSb290KCkpIHsKKyAgICAgICAgICAg
IHJvb3QtPm93bmVyKCktPnNldFNob3VsZENvbGxlY3RTZWxlY3RGZWF0dXJlU2V0KCk7CiAgICAg
ICAgICAgICByb290LT5vd25lcigpLT5pbnZhbGlkYXRlRGlzdHJpYnV0aW9uKCk7CisgICAgICAg
IH0KKyAgICAgICAgbV9zaG91bGRQYXJzZVNlbGVjdG9yTGlzdCA9IHRydWU7CiAgICAgfSBlbHNl
CiAgICAgICAgIEluc2VydGlvblBvaW50OjpwYXJzZUF0dHJpYnV0ZShhdHRyaWJ1dGUpOwogfQpA
QCAtMTAyLDcgKzExNiw5IEBAIE5vZGU6Okluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgSFRN
TENvbnRlbnRFbGVtZW50OjppbnNlcnRlZEludG8oQ29udGFpbmVyTm9kCiAgICAgSW5zZXJ0aW9u
UG9pbnQ6Omluc2VydGVkSW50byhpbnNlcnRpb25Qb2ludCk7CiAKICAgICBpZiAoaW5zZXJ0aW9u
UG9pbnQtPmluRG9jdW1lbnQoKSAmJiBpc0FjdGl2ZSgpKSB7Ci0gICAgICAgIHNoYWRvd1Jvb3Qo
KS0+cmVnaXN0ZXJDb250ZW50RWxlbWVudCgpOworICAgICAgICBTaGFkb3dSb290KiByb290ID0g
c2hhZG93Um9vdCgpOworICAgICAgICByb290LT5yZWdpc3RlckNvbnRlbnRFbGVtZW50KCk7Cisg
ICAgICAgIHJvb3QtPm93bmVyKCktPnNldFNob3VsZENvbGxlY3RTZWxlY3RGZWF0dXJlU2V0KCk7
CiAgICAgICAgIG1fcmVnaXN0ZXJlZFdpdGhTaGFkb3dSb290ID0gdHJ1ZTsKICAgICB9CiAKQEAg
LTExOCw4ICsxMzQsOTggQEAgdm9pZCBIVE1MQ29udGVudEVsZW1lbnQ6OnJlbW92ZWRGcm9tKENv
bnRhaW5lck5vZGUqIGluc2VydGlvblBvaW50KQogICAgICAgICBpZiAocm9vdCkKICAgICAgICAg
ICAgIHJvb3QtPnVucmVnaXN0ZXJDb250ZW50RWxlbWVudCgpOwogICAgICAgICBtX3JlZ2lzdGVy
ZWRXaXRoU2hhZG93Um9vdCA9IGZhbHNlOworCisgICAgICAgIGlmIChFbGVtZW50U2hhZG93KiBl
bGVtZW50U2hhZG93ID0gcm9vdCA/IHJvb3QtPm93bmVyKCkgOiAwKQorICAgICAgICAgICAgZWxl
bWVudFNoYWRvdy0+c2V0U2hvdWxkQ29sbGVjdFNlbGVjdEZlYXR1cmVTZXQoKTsKICAgICB9CiAg
ICAgSW5zZXJ0aW9uUG9pbnQ6OnJlbW92ZWRGcm9tKGluc2VydGlvblBvaW50KTsKIH0KIAorc3Rh
dGljIGJvb2wgdmFsaWRhdGVTdWJTZWxlY3RvcihDU1NTZWxlY3Rvciogc2VsZWN0b3IpCit7Cisg
ICAgc3dpdGNoIChzZWxlY3Rvci0+bV9tYXRjaCkgeworICAgIGNhc2UgQ1NTU2VsZWN0b3I6Ok5v
bmU6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6SWQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6Q2xh
c3M6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6RXhhY3Q6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
U2V0OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6Okxpc3Q6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
SHlwaGVuOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkNvbnRhaW46CisgICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6QmVnaW46CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6RW5kOgorICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50OgorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UGFnZVBzZXVkb0NsYXNzOgorICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzOgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAg
ICBzd2l0Y2ggKHNlbGVjdG9yLT5wc2V1ZG9UeXBlKCkpIHsKKyAgICBjYXNlIENTU1NlbGVjdG9y
OjpQc2V1ZG9FbXB0eToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9MaW5rOgorICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Zpc2l0ZWQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNl
dWRvVGFyZ2V0OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VuYWJsZWQ6CisgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvRGlzYWJsZWQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNl
dWRvQ2hlY2tlZDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9JbmRldGVybWluYXRlOgor
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb050aENoaWxkOgorICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb050aExhc3RDaGlsZDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhP
ZlR5cGU6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoTGFzdE9mVHlwZToKKyAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GaXJzdENoaWxkOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb0xhc3RDaGlsZDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GaXJzdE9mVHlw
ZToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9MYXN0T2ZUeXBlOgorICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlBzZXVkb09ubHlPZlR5cGU6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK3N0YXRpYyBib29sIHZh
bGlkYXRlU2VsZWN0b3IoQ1NTU2VsZWN0b3IqIHNlbGVjdG9yKQoreworICAgIEFTU0VSVChzZWxl
Y3Rvcik7CisKKyAgICBpZiAoIXZhbGlkYXRlU3ViU2VsZWN0b3Ioc2VsZWN0b3IpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBDU1NTZWxlY3RvciogcHJldlN1YlNlbGVjdG9yID0gc2Vs
ZWN0b3I7CisgICAgQ1NTU2VsZWN0b3IqIHN1YlNlbGVjdG9yID0gc2VsZWN0b3ItPnRhZ0hpc3Rv
cnkoKTsKKworICAgIHdoaWxlIChzdWJTZWxlY3RvcikgeworICAgICAgICBpZiAocHJldlN1YlNl
bGVjdG9yLT5yZWxhdGlvbigpICE9IENTU1NlbGVjdG9yOjpTdWJTZWxlY3RvcikKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCF2YWxpZGF0ZVN1YlNlbGVjdG9yKHN1YlNl
bGVjdG9yKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBwcmV2U3ViU2Vs
ZWN0b3IgPSBzdWJTZWxlY3RvcjsKKyAgICAgICAgc3ViU2VsZWN0b3IgPSBzdWJTZWxlY3Rvci0+
dGFnSGlzdG9yeSgpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIEhUTUxD
b250ZW50RWxlbWVudDo6dmFsaWRhdGVTZWxlY3QoKSBjb25zdAoreworICAgIEFTU0VSVCghbV9z
aG91bGRQYXJzZVNlbGVjdG9yTGlzdCk7CisKKyAgICBpZiAoc2VsZWN0KCkuaXNOdWxsKCkgfHwg
c2VsZWN0KCkuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmICghbV9z
ZWxlY3Rvckxpc3QuZmlyc3QoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZm9yIChD
U1NTZWxlY3Rvciogc2VsZWN0b3IgPSBtX3NlbGVjdG9yTGlzdC5maXJzdCgpOyBzZWxlY3Rvcjsg
c2VsZWN0b3IgPSBtX3NlbGVjdG9yTGlzdC5uZXh0KHNlbGVjdG9yKSkgeworICAgICAgICBpZiAo
IXZhbGlkYXRlU2VsZWN0b3Ioc2VsZWN0b3IpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmgKaW5kZXggMmEzYTMyY2VhNTU5MjllODdj
ZTcxYmFjNzNiNzg2NGM3OTBmMGZmNi4uZWQwYjA4ODg0MzJjZDNmMzZlOTExN2ZhOTE5OTI5ODE2
ZWExNDlkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRl
bnRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRF
bGVtZW50LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpZm5kZWYgSFRNTENvbnRlbnRFbGVtZW50X2gK
ICNkZWZpbmUgSFRNTENvbnRlbnRFbGVtZW50X2gKIAorI2luY2x1ZGUgIkNTU1NlbGVjdG9yTGlz
dC5oIgogI2luY2x1ZGUgIkluc2VydGlvblBvaW50LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KIApAQCAtNDQsOSArNDUsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+SFRNTENvbnRl
bnRFbGVtZW50KCk7CiAKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIHNlbGVjdCgpIGNvbnN0Owog
ICAgIHZvaWQgc2V0U2VsZWN0KGNvbnN0IEF0b21pY1N0cmluZyYpOwotICAgIHZpcnR1YWwgYm9v
bCBpc1NlbGVjdFZhbGlkKCkgY29uc3Q7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcm
IHNlbGVjdCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFZhbGlkKCk7CisgICAg
dmlydHVhbCBjb25zdCBDU1NTZWxlY3Rvckxpc3QmIHNlbGVjdG9yTGlzdCgpOwogCiBwcm90ZWN0
ZWQ6CiAgICAgSFRNTENvbnRlbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCopOwpAQCAtNTYsMTYgKzU4LDQwIEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICB2aXJ0
dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgT1ZFUlJJREU7CisgICAg
dm9pZCBlbnN1cmVTZWxlY3RQYXJzZWQoKTsKKyAgICBib29sIHZhbGlkYXRlU2VsZWN0KCkgY29u
c3Q7CiAKICAgICBib29sIG1fcmVnaXN0ZXJlZFdpdGhTaGFkb3dSb290OworCisgICAgYm9vbCBt
X3Nob3VsZFBhcnNlU2VsZWN0b3JMaXN0OworICAgIGJvb2wgbV9pc1ZhbGlkU2VsZWN0b3I7Cisg
ICAgQ1NTU2VsZWN0b3JMaXN0IG1fc2VsZWN0b3JMaXN0OwogfTsKIAoraW5saW5lIHZvaWQgSFRN
TENvbnRlbnRFbGVtZW50OjpzZXRTZWxlY3QoY29uc3QgQXRvbWljU3RyaW5nJiBzZWxlY3RWYWx1
ZSkKK3sKKyAgICBzZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpzZWxlY3RBdHRyLCBzZWxlY3RWYWx1
ZSk7CisgICAgbV9zaG91bGRQYXJzZVNlbGVjdG9yTGlzdCA9IHRydWU7Cit9CisKK2lubGluZSBj
b25zdCBDU1NTZWxlY3Rvckxpc3QmIEhUTUxDb250ZW50RWxlbWVudDo6c2VsZWN0b3JMaXN0KCkK
K3sKKyAgICBlbnN1cmVTZWxlY3RQYXJzZWQoKTsKKyAgICByZXR1cm4gbV9zZWxlY3Rvckxpc3Q7
Cit9CisKIGlubGluZSBib29sIGlzSFRNTENvbnRlbnRFbGVtZW50KGNvbnN0IE5vZGUqIG5vZGUp
CiB7CiAgICAgQVNTRVJUKG5vZGUpOwogICAgIHJldHVybiBub2RlLT5oYXNUYWdOYW1lKEhUTUxD
b250ZW50RWxlbWVudDo6Y29udGVudFRhZ05hbWUobm9kZS0+ZG9jdW1lbnQoKSkpOwogfQogCitp
bmxpbmUgSFRNTENvbnRlbnRFbGVtZW50KiB0b0hUTUxDb250ZW50RWxlbWVudChOb2RlKiBub2Rl
KQoreworICAgIEFTU0VSVCghbm9kZSB8fCBpc0hUTUxDb250ZW50RWxlbWVudChub2RlKSk7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxDb250ZW50RWxlbWVudCo+KG5vZGUpOworfQorCiB9
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTFNo
YWRvd0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTFNoYWRvd0Vs
ZW1lbnQuY3BwCmluZGV4IDdkN2U0MTUyOWZiZGYxNmYxMzA0MDhlZTIzMmYxOThiODI4MzUyNjQu
LmRhMThiYThlYWU1ZTRiMjRmZTVhZmM2NjQ5NzllNmIyZDVhNTk2NGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxTaGFkb3dFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MU2hhZG93RWxlbWVudC5jcHAKQEAgLTg3LDQgKzg3
LDEwIEBAIHZvaWQgSFRNTFNoYWRvd0VsZW1lbnQ6OnJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUq
IGluc2VydGlvblBvaW50KQogICAgIEluc2VydGlvblBvaW50OjpyZW1vdmVkRnJvbShpbnNlcnRp
b25Qb2ludCk7CiB9CiAKK2NvbnN0IENTU1NlbGVjdG9yTGlzdCYgSFRNTFNoYWRvd0VsZW1lbnQ6
OmVtcHR5U2VsZWN0b3JMaXN0KCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENTU1NlbGVj
dG9yTGlzdCwgc2VsZWN0b3JMaXN0LCAoQ1NTU2VsZWN0b3JMaXN0KCkpKTsKKyAgICByZXR1cm4g
c2VsZWN0b3JMaXN0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MU2hhZG93RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvSFRNTFNoYWRvd0VsZW1lbnQuaAppbmRleCBiYWMyYjkyYjU3OTYx
YjIzZGZjYzJlMzJlMWY1NWIyZDU3ZTMyNjQ1Li44NzA1OTg5NmY3N2QyMDIzYzBmMmFmMWM2ODg0
MzczM2RmMTcxM2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1M
U2hhZG93RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxTaGFk
b3dFbGVtZW50LmgKQEAgLTQyLDggKzQyLDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+SFRN
TFNoYWRvd0VsZW1lbnQoKTsKIAotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgc2VsZWN0KCkgY29u
c3Q7Ci0gICAgYm9vbCBpc1NlbGVjdFZhbGlkKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzZWxlY3QoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RWYWxpZCgpIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0K
KyAgICB2aXJ0dWFsIGNvbnN0IENTU1NlbGVjdG9yTGlzdCYgc2VsZWN0b3JMaXN0KCkgeyByZXR1
cm4gZW1wdHlTZWxlY3Rvckxpc3QoKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBJbnNl
cnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlKikgT1ZF
UlJJREU7CkBAIC01Miw2ICs1Myw4IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgSFRNTFNo
YWRvd0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKKyAgICBzdGF0
aWMgY29uc3QgQ1NTU2VsZWN0b3JMaXN0JiBlbXB0eVNlbGVjdG9yTGlzdCgpOworCiAgICAgYm9v
bCBtX3JlZ2lzdGVyZWRXaXRoU2hhZG93Um9vdDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9JbnNlcnRpb25Qb2ludC5oCmluZGV4IDI0M2EwOGMxOGEzNDYxMDMwMzk1ZDlhNWJh
N2QyMDU1OWI2NzExYTkuLjIzZGFkOGRjYTcwODEyMzE4MjFmOTdkOGJmMzA0ZDc3MzMzMjc2Zjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuaApAQCAtMzEs
NiArMzEsNyBAQAogI2lmbmRlZiBJbnNlcnRpb25Qb2ludF9oCiAjZGVmaW5lIEluc2VydGlvblBv
aW50X2gKIAorI2luY2x1ZGUgIkNTU1NlbGVjdG9yTGlzdC5oIgogI2luY2x1ZGUgIkNvbnRlbnRE
aXN0cmlidXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKICNpbmNsdWRlICJIVE1M
RWxlbWVudC5oIgpAQCAtNTMsNyArNTQsOCBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxOb2Rl
TGlzdD4gZ2V0RGlzdHJpYnV0ZWROb2RlcygpIGNvbnN0OwogCiAgICAgdmlydHVhbCBjb25zdCBB
dG9taWNTdHJpbmcmIHNlbGVjdCgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNTZWxl
Y3RWYWxpZCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RWYWxpZCgpID0g
MDsKKyAgICB2aXJ0dWFsIGNvbnN0IENTU1NlbGVjdG9yTGlzdCYgc2VsZWN0b3JMaXN0KCkgPSAw
OwogCiAgICAgYm9vbCByZXNldFN0eWxlSW5oZXJpdGFuY2UoKSBjb25zdDsKICAgICB2b2lkIHNl
dFJlc2V0U3R5bGVJbmhlcml0YW5jZShib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAppbmRleCBlNGQzMDg0MTBhMDYzMzY4ZmNlYzYwYzJkZWMzOTJiZjdlMmU5ZGE3Li43YmUx
OGQ5YmU1Yjc1NWQ0Y2FmNzlhYThlNzRmODQ4NTI4ODA2NmJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCkBAIC0zMDYsNiArMzA2LDM5IEBAIE5vZGUqIEludGVybmFsczo6cGFy
ZW50VHJlZVNjb3BlKE5vZGUqIG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHJldHVybiBw
YXJlbnRUcmVlU2NvcGUgPyBwYXJlbnRUcmVlU2NvcGUtPnJvb3ROb2RlKCkgOiAwOwogfQogCiti
b29sIEludGVybmFsczo6aGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KEVsZW1lbnQqIGhvc3QsIGNv
bnN0IFN0cmluZyYgaWRWYWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFob3N0
IHx8ICFob3N0LT5zaGFkb3coKSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsK
KyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgaG9zdC0+c2hhZG93KCktPmVuc3VyZVNl
bGVjdEZlYXR1cmVTZXRDb2xsZWN0ZWQoKTsKKyAgICByZXR1cm4gaG9zdC0+c2hhZG93KCktPmhh
c1NlbGVjdG9yRm9ySWQoaWRWYWx1ZSk7Cit9CisKK2Jvb2wgSW50ZXJuYWxzOjpoYXNTZWxlY3Rv
ckZvckNsYXNzSW5TaGFkb3coRWxlbWVudCogaG9zdCwgY29uc3QgU3RyaW5nJiBjbGFzc05hbWUs
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghaG9zdCB8fCAhaG9zdC0+c2hhZG93KCkp
IHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybiAwOwor
ICAgIH0KKworICAgIGhvc3QtPnNoYWRvdygpLT5lbnN1cmVTZWxlY3RGZWF0dXJlU2V0Q29sbGVj
dGVkKCk7CisgICAgcmV0dXJuIGhvc3QtPnNoYWRvdygpLT5oYXNTZWxlY3RvckZvckNsYXNzKGNs
YXNzTmFtZSk7Cit9CisKK2Jvb2wgSW50ZXJuYWxzOjpoYXNTZWxlY3RvckZvckF0dHJpYnV0ZUlu
U2hhZG93KEVsZW1lbnQqIGhvc3QsIGNvbnN0IFN0cmluZyYgYXR0cmlidXRlTmFtZSwgRXhjZXB0
aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFob3N0IHx8ICFob3N0LT5zaGFkb3coKSkgeworICAg
ICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQor
CisgICAgaG9zdC0+c2hhZG93KCktPmVuc3VyZVNlbGVjdEZlYXR1cmVTZXRDb2xsZWN0ZWQoKTsK
KyAgICByZXR1cm4gaG9zdC0+c2hhZG93KCktPmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlKGF0dHJp
YnV0ZU5hbWUpOworfQorCiBib29sIEludGVybmFsczo6aGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQo
Y29uc3QgTm9kZSogcm9vdCwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7CiAgICAgaWYgKHJv
b3QgJiYgcm9vdC0+aXNTaGFkb3dSb290KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApp
bmRleCAyMTExNzM5N2M4MTFjODU4ZjNiMWY0OWZjNTdkMTZhYzI1YTcxMTIxLi41NDRkMzFlODg5
NDUwZTU1MWQ3YzhiZDI5MTM2YzdjNzEyYTA0ZWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmgKQEAgLTk2LDYgKzk2LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNWYWxpZENvbnRlbnRT
ZWxlY3QoRWxlbWVudCogaW5zZXJ0aW9uUG9pbnQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBOb2Rl
KiB0cmVlU2NvcGVSb290Tm9kZShOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIE5vZGUqIHBh
cmVudFRyZWVTY29wZShOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOworICAgIGJvb2wgaGFzU2VsZWN0
b3JGb3JJZEluU2hhZG93KEVsZW1lbnQqIGhvc3QsIGNvbnN0IFN0cmluZyYgaWRWYWx1ZSwgRXhj
ZXB0aW9uQ29kZSYpOworICAgIGJvb2wgaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KEVsZW1l
bnQqIGhvc3QsIGNvbnN0IFN0cmluZyYgY2xhc3NOYW1lLCBFeGNlcHRpb25Db2RlJik7CisgICAg
Ym9vbCBoYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KEVsZW1lbnQqIGhvc3QsIGNvbnN0
IFN0cmluZyYgYXR0cmlidXRlTmFtZSwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgYm9vbCBhdHRh
Y2hlZChOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwKaW5kZXggN2E1YWI3YjkwZWRiNjRiNjUwZGMzNDM3YjQzYTFkNjk5NzFiMDFhZC4uMzA0
ZTY0YzhlZWNkMDBmNTMyM2VkYzYyYTBhZWY4ZWY4MzE3YmVkNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbApAQCAtNTksNiArNTksOSBAQAogICAgIGJvb2xlYW4gaXNWYWxpZENv
bnRlbnRTZWxlY3QoaW4gRWxlbWVudCBjb250ZW50RWxlbWVudCkgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CiAgICAgTm9kZSB0cmVlU2NvcGVSb290Tm9kZShpbiBOb2RlIG5vZGUpIHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKICAgICBOb2RlIHBhcmVudFRyZWVTY29wZShpbiBOb2RlIG5vZGUpIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKKyAgICBib29sZWFuIGhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhp
biBFbGVtZW50IGhvc3QsIGluIERPTVN0cmluZyBpZCkgcmFpc2VzIChET01FeGNlcHRpb24pOwor
ICAgIGJvb2xlYW4gaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGluIEVsZW1lbnQgaG9zdCwg
aW4gRE9NU3RyaW5nIGNsYXNzTmFtZSkgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgIGJvb2xl
YW4gaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhpbiBFbGVtZW50IGhvc3QsIGluIERP
TVN0cmluZyBhdHRyaWJ1dGVOYW1lKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKICAgICBOb2Rl
IG5leHRTaWJsaW5nQnlXYWxrZXIoaW4gTm9kZSBub2RlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
ICAgICBOb2RlIGZpcnN0Q2hpbGRCeVdhbGtlcihpbiBOb2RlIG5vZGUpIHJhaXNlcyhET01FeGNl
cHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlciBiL1Nv
dXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKaW5kZXggZDgyZjE3OTg1MTFjMjZkNDdiZjU0
NTQ1MDRmYzA2NjVmZWM5NmJlOS4uOTRkNDZjYzc4NzljODZjM2VmYmUyZWExZjQzMTEyM2Q3MWQz
Mjk1YiAxMDA2NDQKLS0tIGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgorKysgYi9T
b3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCkBAIC01Niw2ICs1Niw3IEBAIF9aTjdXZWJD
b3JlMTJUZXh0SXRlcmF0b3IyNnJhbmdlRnJvbUxvY2F0aW9uQW5kTGVuZ3RoRVBOU18xM0NvbnRh
aW5lck5vZGVFaWliOwogX1pON1dlYkNvcmUxMlRleHRJdGVyYXRvcjI5Z2V0TG9jYXRpb25BbmRM
ZW5ndGhGcm9tUmFuZ2VFUE5TXzdFbGVtZW50RVBLTlNfNVJhbmdlRVJqUzZfOwogX1pON1dlYkNv
cmUxMlRleHRJdGVyYXRvcjI5Z2V0TG9jYXRpb25BbmRMZW5ndGhGcm9tUmFuZ2VFUE5TXzdFbGVt
ZW50RVBLTlNfNVJhbmdlRVJtUzZfOwogX1pON1dlYkNvcmUxMlByaW50Q29udGV4dDIwcGFnZU51
bWJlckZvckVsZW1lbnRFUE5TXzdFbGVtZW50RVJLTlNfOUZsb2F0U2l6ZUU7CitfWk43V2ViQ29y
ZTEzRWxlbWVudFNoYWRvdzMxZW5zdXJlU2VsZWN0RmVhdHVyZVNldENvbGxlY3RlZEV2OwogX1pO
N1dlYkNvcmUxM2NyZWF0ZVdyYXBwZXJFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2Jh
bE9iamVjdEVQTlNfNE5vZGVFOwogX1pON1dlYkNvcmUxNENsaWVudFJlY3RMaXN0QzFFUktOM1dU
RjZWZWN0b3JJTlNfOUZsb2F0UXVhZEVMajBFRUU7CiBfWk43V2ViQ29yZTE0Q2xpZW50UmVjdExp
c3RDMUVSS04zV1RGNlZlY3RvcklOU185RmxvYXRRdWFkRUxtMEVFRTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjZGY3MDU4
MzE2YTUwMGI3ZTJhYTkwNWYxNTg1NDE4OTc4ZmFlZmNmLi5hOWFjNjRmYmFlMDE0Y2RmYzgwY2E0
MTU5NzBiNDViNzVkM2RmNmNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMTEtMDggIFNo
aW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtTaGFkb3dd
IEVsZW1lbnRTaGFkb3cgc2hvdWxkIGhhdmUgUnVsZUZlYXR1cmVTZXQgZm9yIHNlbGVjdCBhdHRy
aWJ1dGUgc2VsZWN0b3JzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAxMTgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXNlbGVjdC1hdHRyaWJ1dGUtZmVhdHVy
ZXNldC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctc2VsZWN0LWF0dHJpYnV0ZS1mZWF0dXJlc2V0Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTExLTA3
ICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2Vk
IGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctc2VsZWN0LWF0dHJpYnV0ZS1mZWF0dXJlc2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctc2VsZWN0LWF0dHJpYnV0ZS1mZWF0dXJlc2V0LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jY2RhNDRkOTA0ZDIzMWVmNDYwNzA2NTY4MmI2ZjBmMTg2OWJi
MDI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1zZWxlY3QtYXR0cmlidXRlLWZlYXR1cmVzZXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzUg
QEAKK0lkIHNob3VsZCBiZSBjb2xsZWN0ZWQKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9y
SWRJblNoYWRvdyhob3N0LCAiZm9vIikgaXMgdHJ1ZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0
b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXIiKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFz
U2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJob3N0IikgaXMgZmFsc2UKKworQ2xhc3Mgc2hv
dWxkIGJlIGNvbGxlY3RlZAorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hh
ZG93KGhvc3QsICJmb28iKSBpcyB0cnVlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckNs
YXNzSW5TaGFkb3coaG9zdCwgImhvc3QiKSBpcyBmYWxzZQorCitBdHRyaWJ1dGUgc2hvdWxkIGJl
IGNvbGxlY3RlZAorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRv
dyhob3N0LCAiZm9vIikgaXMgdHJ1ZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRy
aWJ1dGVJblNoYWRvdyhob3N0LCAiaG9zdCIpIGlzIGZhbHNlCisKK1NlbGVjdCBhdHRyaWJ1dGUg
bWlnaHQgaGF2ZSBzZXZlcmFsIHNlbGVjdG9ycworUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JG
b3JJZEluU2hhZG93KGhvc3QsICJmb28iKSBpcyB0cnVlCitQQVNTIGludGVybmFscy5oYXNTZWxl
Y3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIpIGlzIGZhbHNlCitQQVNTIGludGVybmFscy5o
YXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJheiIpIGlzIGZhbHNlCitQQVNTIGludGVy
bmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIGZhbHNlCitQ
QVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImJhciIpIGlz
IHRydWUKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0LCAi
YmF6IikgaXMgZmFsc2UKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5T
aGFkb3coaG9zdCwgImZvbyIpIGlzIGZhbHNlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZv
ckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJiYXIiKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMu
aGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiYmF6IikgaXMgdHJ1ZQorCitE
b24ndCBjb3VudCBzaGFkb3cgZWxlbWVudAorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJ
ZEluU2hhZG93KGhvc3QsICJmb28iKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0
b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXIiKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFz
U2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXoiKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5h
bHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJmb28iKSBpcyBmYWxzZQorUEFT
UyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJiYXIiKSBpcyBm
YWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJi
YXoiKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNo
YWRvdyhob3N0LCAiZm9vIikgaXMgZmFsc2UKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9y
QXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImJhciIpIGlzIGZhbHNlCitQQVNTIGludGVybmFscy5o
YXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJiYXoiKSBpcyBmYWxzZQorCitD
b21wbGV4IGNhc2UgZm9yIHNpbmdsZSBTaGFkb3dSb290CitQQVNTIGludGVybmFscy5oYXNTZWxl
Y3RvckZvcklkSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIGZhbHNlCitQQVNTIGludGVybmFscy5o
YXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIGZhbHNlCitQQVNTIGlu
dGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJmb28iKSBpcyB0
cnVlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3Qs
ICJwaXlvIikgaXMgZmFsc2UKKworQW5vdGhlciBjb21wbGV4IGNhc2UgZm9yIHNpbmdsZSBTaGFk
b3dSb290CitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImZv
byIpIGlzIHRydWUKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyho
b3N0LCAiZm9vIikgaXMgdHJ1ZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1
dGVJblNoYWRvdyhob3N0LCAiZm9vIikgaXMgdHJ1ZQorCitNdWx0aXBsZSBTaGFkb3dSb290IGNh
c2UKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9vIikg
aXMgdHJ1ZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJi
YXIiKSBpcyB0cnVlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9z
dCwgImJheiIpIGlzIGZhbHNlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5T
aGFkb3coaG9zdCwgImZvbyIpIGlzIGZhbHNlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZv
ckNsYXNzSW5TaGFkb3coaG9zdCwgImJhciIpIGlzIHRydWUKK1BBU1MgaW50ZXJuYWxzLmhhc1Nl
bGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0LCAiYmF6IikgaXMgZmFsc2UKK1BBU1MgaW50ZXJu
YWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIGZhbHNl
CitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJi
YXIiKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNo
YWRvdyhob3N0LCAiYmF6IikgaXMgdHJ1ZQorCitEeW5hbWljIHNlbGVjdCBhdHRyaWJ1dGUgdXBk
YXRlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImZvbyIp
IGlzIHRydWUKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAi
YmFyIikgaXMgZmFsc2UKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyho
b3N0LCAiZm9vIikgaXMgZmFsc2UKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNo
YWRvdyhob3N0LCAiYmFyIikgaXMgdHJ1ZQorCitOZXN0ZWQgU2hhZG93RE9NIGNhc2UKK1BBU1Mg
aW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9vIikgaXMgdHJ1ZQor
UEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXIiKSBpcyB0
cnVlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJheiIp
IGlzIGZhbHNlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwg
ImZvbyIpIGlzIHRydWUKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyho
b3N0LCAiYmFyIikgaXMgZmFsc2UKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNo
YWRvdyhob3N0LCAiYmF6IikgaXMgdHJ1ZQorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvdy1zZWxlY3QtYXR0cmlidXRlLWZlYXR1cmVzZXQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctc2VsZWN0LWF0dHJpYnV0ZS1mZWF0dXJlc2V0Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTJhNTUxNDk1NjZhODgyYzU3OWM5ZDdhMzNlYmQ5ZGFjYTY5ZjAzNgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctc2Vs
ZWN0LWF0dHJpYnV0ZS1mZWF0dXJlc2V0Lmh0bWwKQEAgLTAsMCArMSwxNzUgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5Zmls
bC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRvdy1kb20uanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+Cis8
cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKworPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3RDYXNlKGYp
Cit7CisgICAgY29udGFpbmVyLmlubmVySFRNTCA9ICcnOworICAgIGNvbnRhaW5lci5hcHBlbmRD
aGlsZChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnaG9zdCd9LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgpKSk7CisgICAgc2hhZG93Um9vdCA9
IGludGVybmFscy5zaGFkb3dSb290KGhvc3QpOworCisgICAgZigpOworICAgIGRlYnVnKCcnKTsK
K30KKwordGVzdENhc2UoZnVuY3Rpb24oKQoreworICAgIGRlYnVnKCdJZCBzaG91bGQgYmUgY29s
bGVjdGVkJyk7CisKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9
IiNmb28iPjwvY29udGVudD4nOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JG
b3JJZEluU2hhZG93KGhvc3QsICJmb28iKScsICd0cnVlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVy
bmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIpJywgJ2ZhbHNlJyk7Cisg
ICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImhv
c3QiKScsICdmYWxzZScpOworfSk7CisKK3Rlc3RDYXNlKGZ1bmN0aW9uKCkKK3sKKyAgICBkZWJ1
ZygnQ2xhc3Mgc2hvdWxkIGJlIGNvbGxlY3RlZCcpOworCisgICAgc2hhZG93Um9vdC5pbm5lckhU
TUwgPSAnPGNvbnRlbnQgc2VsZWN0PSIuZm9vIj48L2NvbnRlbnQ+JzsKKyAgICBzaG91bGRCZSgn
aW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0LCAiZm9vIiknLCAndHJ1
ZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93
KGhvc3QsICJob3N0IiknLCAnZmFsc2UnKTsKK30pOworCit0ZXN0Q2FzZShmdW5jdGlvbigpCit7
CisgICAgZGVidWcoJ0F0dHJpYnV0ZSBzaG91bGQgYmUgY29sbGVjdGVkJyk7CisKKyAgICBzaGFk
b3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9ImRpdltmb29dIj48L2NvbnRlbnQ+
JzsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFk
b3coaG9zdCwgImZvbyIpJywgJ3RydWUnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1Nl
bGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImhvc3QiKScsICdmYWxzZScpOworfSk7
CisKK3Rlc3RDYXNlKGZ1bmN0aW9uKCkKK3sKKyAgICBkZWJ1ZygnU2VsZWN0IGF0dHJpYnV0ZSBt
aWdodCBoYXZlIHNldmVyYWwgc2VsZWN0b3JzJyk7CisKKyAgICBzaGFkb3dSb290LmlubmVySFRN
TCA9ICc8Y29udGVudCBzZWxlY3Q9IiNmb28sLmJhcixkaXZbYmF6XSI+PC9jb250ZW50Pic7Cisg
ICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImZv
byIpJywgJ3RydWUnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJ
blNoYWRvdyhob3N0LCAiYmFyIiknLCAnZmFsc2UnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxz
Lmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmF6IiknLCAnZmFsc2UnKTsKKworICAg
IHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJm
b28iKScsICdmYWxzZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JD
bGFzc0luU2hhZG93KGhvc3QsICJiYXIiKScsICd0cnVlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVy
bmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImJheiIpJywgJ2ZhbHNlJyk7
CisKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFk
b3coaG9zdCwgImZvbyIpJywgJ2ZhbHNlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNT
ZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJiYXIiKScsICdmYWxzZScpOworICAg
IHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0
LCAiYmF6IiknLCAndHJ1ZScpOworfSk7CisKK3Rlc3RDYXNlKGZ1bmN0aW9uKCkKK3sKKyAgICBk
ZWJ1ZygnRG9uXCd0IGNvdW50IHNoYWRvdyBlbGVtZW50Jyk7CisKKyAgICBzaGFkb3dSb290Lmlu
bmVySFRNTCA9ICc8c2hhZG93IHNlbGVjdD0iI2ZvbywuYmFyLGRpdltiYXpdIj48L3NoYWRvdz4n
OworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3Qs
ICJmb28iKScsICdmYWxzZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JG
b3JJZEluU2hhZG93KGhvc3QsICJiYXIiKScsICdmYWxzZScpOworICAgIHNob3VsZEJlKCdpbnRl
cm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXoiKScsICdmYWxzZScpOwor
CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9z
dCwgImZvbyIpJywgJ2ZhbHNlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3Rv
ckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImJhciIpJywgJ2ZhbHNlJyk7CisgICAgc2hvdWxkQmUo
J2ludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImJheiIpJywgJ2Zh
bHNlJyk7CisKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRl
SW5TaGFkb3coaG9zdCwgImZvbyIpJywgJ2ZhbHNlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFs
cy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJiYXIiKScsICdmYWxzZScp
OworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRv
dyhob3N0LCAiYmF6IiknLCAnZmFsc2UnKTsKK30pOworCit0ZXN0Q2FzZShmdW5jdGlvbigpCit7
CisgICAgZGVidWcoJ0NvbXBsZXggY2FzZSBmb3Igc2luZ2xlIFNoYWRvd1Jvb3QnKTsKKworICAg
IHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxkaXY+PGRpdj48L2Rpdj48Y29udGVudCBzZWxlY3Q9
IioiPjwvY29udGVudD48ZGl2Pjxjb250ZW50IHNlbGVjdD0iZGl2W2Zvbz1waXlvXSI+PC9jb250
ZW50PjwvZGl2Pic7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5T
aGFkb3coaG9zdCwgImZvbyIpJywgJ2ZhbHNlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5o
YXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImZvbyIpJywgJ2ZhbHNlJyk7CisgICAg
c2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3Qs
ICJmb28iKScsICd0cnVlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZv
ckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJwaXlvIiknLCAnZmFsc2UnKTsKK30pOworCit0ZXN0
Q2FzZShmdW5jdGlvbigpCit7CisgICAgZGVidWcoJ0Fub3RoZXIgY29tcGxleCBjYXNlIGZvciBz
aW5nbGUgU2hhZG93Um9vdCcpOworCisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRl
bnQgc2VsZWN0PSIjZm9vLC5mb28sZGl2W2Zvb10iPjwvY29udGVudD4nOworICAgIHNob3VsZEJl
KCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJmb28iKScsICd0cnVl
Jyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3co
aG9zdCwgImZvbyIpJywgJ3RydWUnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVj
dG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImZvbyIpJywgJ3RydWUnKTsKK30pOworCit0
ZXN0Q2FzZShmdW5jdGlvbigpCit7CisgICAgZGVidWcoJ011bHRpcGxlIFNoYWRvd1Jvb3QgY2Fz
ZScpOworCisgICAgdmFyIGFub3RoZXJTaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3Qo
aG9zdCk7CisKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9IiNm
b28iPjwvY29udGVudD4nOworICAgIGFub3RoZXJTaGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29u
dGVudCBzZWxlY3Q9IiNiYXIiPjwvY29udGVudD48Y29udGVudCBzZWxlY3Q9ImRpdltiYXpdLC5i
YXIiPjwvY29udGVudD4nOworCisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZv
cklkSW5TaGFkb3coaG9zdCwgImZvbyIpJywgJ3RydWUnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJu
YWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmFyIiknLCAndHJ1ZScpOworICAg
IHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXoi
KScsICdmYWxzZScpOworCisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckNs
YXNzSW5TaGFkb3coaG9zdCwgImZvbyIpJywgJ2ZhbHNlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVy
bmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImJhciIpJywgJ3RydWUnKTsK
KyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0
LCAiYmF6IiknLCAnZmFsc2UnKTsKKworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0
b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiZm9vIiknLCAnZmFsc2UnKTsKKyAgICBzaG91
bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImJh
ciIpJywgJ2ZhbHNlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckF0
dHJpYnV0ZUluU2hhZG93KGhvc3QsICJiYXoiKScsICd0cnVlJyk7Cit9KTsKKwordGVzdENhc2Uo
ZnVuY3Rpb24oKQoreworICAgIGRlYnVnKCdEeW5hbWljIHNlbGVjdCBhdHRyaWJ1dGUgdXBkYXRl
Jyk7CisKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9IiNmb28i
PjwvY29udGVudD4nOworCisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvcklk
SW5TaGFkb3coaG9zdCwgImZvbyIpJywgJ3RydWUnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxz
Lmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmFyIiknLCAnZmFsc2UnKTsKKworICAg
IHZhciBjb250ZW50ID0gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdjb250ZW50Jyk7CisgICAg
Y29udGVudC5zZWxlY3QgPSAnI2Jhcic7CisKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1Nl
bGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9vIiknLCAnZmFsc2UnKTsKKyAgICBzaG91bGRC
ZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmFyIiknLCAndHJ1
ZScpOworfSk7CisKK3Rlc3RDYXNlKGZ1bmN0aW9uKCkKK3sKKyAgICBkZWJ1ZygnTmVzdGVkIFNo
YWRvd0RPTSBjYXNlJyk7CisKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBz
ZWxlY3Q9IiNmb28iPjwvY29udGVudD4nOworCisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOworICAgIHZhciBuZXN0ZWRTaGFkb3dSb290ID0gbmV3IFdlYktpdFNo
YWRvd1Jvb3QoZGl2KTsKKyAgICBuZXN0ZWRTaGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVu
dCBzZWxlY3Q9IiNiYXIiPjwvY29udGVudD4nOworICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQo
ZGl2KTsKKworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93
KGhvc3QsICJmb28iKScsICd0cnVlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxl
Y3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIpJywgJ3RydWUnKTsKKyAgICBzaG91bGRCZSgn
aW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmF6IiknLCAnZmFsc2Un
KTsKKworICAgIHZhciBjb250ZW50ID0gbmVzdGVkU2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdj
b250ZW50Jyk7CisgICAgY29udGVudC5zZWxlY3QgPSAnI2Jheic7CisKKyAgICBzaG91bGRCZSgn
aW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9vIiknLCAndHJ1ZScp
OworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3Qs
ICJiYXIiKScsICdmYWxzZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JG
b3JJZEluU2hhZG93KGhvc3QsICJiYXoiKScsICd0cnVlJyk7Cit9KTsKKworZmluaXNoSlNUZXN0
KCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0NoYW5nZUxv
ZyBiL0NoYW5nZUxvZwppbmRleCBlYThjZjlkZjVkZWQxMWYwNzk2MzJiN2Q5NWMxZjFlOTBhMzNl
MTBmLi4xNzIzNDFkMTMxZjQ1ODAxNWYxNTY1YTA5ODJjNDA2ZTdkNDc0MDBlIDEwMDY0NAotLS0g
YS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTEtMDgg
IFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtTaGFk
b3ddIEVsZW1lbnRTaGFkb3cgc2hvdWxkIGhhdmUgUnVsZUZlYXR1cmVTZXQgZm9yIHNlbGVjdCBh
dHRyaWJ1dGUgc2VsZWN0b3JzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTAxMTgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRXhwb3NlcyBuZWNlc3Nhcnkgc3ltYm9scy4KKworICAgICAgICAqIFNvdXJj
ZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXI6CisKIDIwMTItMTEtMDcgIFNoaW55YSBLYXdhbmFr
YSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtTaGFkb3ddIFVzZSBzZXRQc2V1
ZG8oKSBpbnN0ZWFkIG9mIHNldFNoYWRvd1BzZXVkb0lkKCkuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172967</attachid>
            <date>2012-11-08 02:25:29 -0800</date>
            <delta_ts>2012-11-08 20:18:05 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-101180-20121108192338.patch</filename>
            <type>text/plain</type>
            <size>47357</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzODM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzhhY2IwY2FkOWY2ZmJm
MTk0NzJkMjdlNTlhNmIwOWIyOTRkNmVhNi4uMTQ5NWRkYzBlMWYxZDIxNmM0ZWNlYjczYTMxMDY0
MTRjZWE0ZDkzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMCBAQAorMjAxMi0xMS0wOCAgU2hp
bnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1NoYWRvd10g
RWxlbWVudFNoYWRvdyBzaG91bGQgaGF2ZSBSdWxlRmVhdHVyZVNldCBmb3Igc2VsZWN0IGF0dHJp
YnV0ZSBzZWxlY3RvcnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDExODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGlzIGlzIGEgcHJlcGFyYXRpb24gcGF0Y2ggZm9yIEJ1ZyAxMDA0NTEuCisKKyAg
ICAgICAgV2UgcHJlc2VydmUgUnVsZUZlYXR1cmVTZXQgY29sbGVjdGVkIGZyb20gc2VsZWN0IGF0
dHJpYnV0ZXMgaW4gU2hhZG93RE9NLgorICAgICAgICBXaGVuIGFuIGVsZW1lbnQgYXR0cmlidXRl
IGlzIGNoYW5nZWQsIHdlIG1pZ2h0IGhhdmUgdG8gaW52YWxpZGF0ZSBjb250ZW50IGRpc3RyaWJ1
dGlvbiwKKyAgICAgICAgaG93ZXZlciBpdCdzIGhpZ2ggY29zdCBvcGVyYXRpb24uIFNvIHdlIHdv
dWxkIGxpa2UgdG8gY2hlY2sgUnVsZUZlYXR1cmVTZXQgdXNlZCBpbgorICAgICAgICBzZWxlY3Qg
YXR0cmlidXRlcyB0byBkZXRlcm1pbmUgd2UgcmVhbGx5IG5lZWQgdG8gaW52YWxpZGF0ZSBkaXN0
cmlidXRpb24uCisKKyAgICAgICAgTGlrZSBTdHlsZVJlc29sdmVyLCBFbGVtZW50U2hhZG93IGhh
cyBzZXZlcmFsIHJ1bGUgZmVhdHVyZXMuIFdoZW4gbmVzdGVkIFNoYWRvd0RPTSBpcyB1c2VkLAor
ICAgICAgICBmaXJzdCB3ZSBjb2xsZWN0IGZlYXR1cmVzIGluIG5lc3RlZCBTaGFkb3dET00sIGFu
ZCBtZXJnZSBpdCB0byB0aGUgcGFyZW50IFNoYWRvd0RPTS4KKyAgICAgICAgRm9yIHRoZSBwZXJm
b3JtYW5jZSByZWFzb24sIHdlIGhhdmUgYSBmbGFnIHRvIGNoZWNrIHdoZXRoZXIgd2UgbmVlZCB0
byBjb2xsZWN0IGZlYXR1cmVzIGFnYWluLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctc2VsZWN0LWF0dHJpYnV0ZS1mZWF0dXJlc2V0Lmh0bWwKKworICAgICAgICAqIFdl
YkNvcmUuZXhwLmluOgorICAgICAgICAqIGNzcy9SdWxlRmVhdHVyZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSdWxlRmVhdHVyZVNldDo6Y29sbGVjdEZlYXR1cmVzRnJvbVNlbGVjdG9yKTogTW92
ZWQgZnJvbSBSdWxlU2V0LmNwcCwgc2luY2Ugd2Ugd291bGQgbGlrZSB0byByZXVzZSB0aGlzLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogY3NzL1J1bGVGZWF0dXJlLmg6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFJ1bGVGZWF0dXJlU2V0KToKKyAgICAgICAgKiBjc3MvUnVs
ZVNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb2xsZWN0RmVhdHVyZXNGcm9tUnVsZURhdGEp
OgorICAgICAgICAqIGRvbS9FbGVtZW50U2hhZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnRTaGFkb3c6OkVsZW1lbnRTaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNo
YWRvdzo6c2V0U2hvdWxkQ29sbGVjdFNlbGVjdEZlYXR1cmVTZXQpOiBFbmFibGUgYSBmbGFnIHRv
IGNvbGxlY3QgZmVhdHVyZSBzZXQgb2YgZGVzY2VuZGFudAorICAgICAgICBub2RlcyAoYW5kIHRo
ZWlyIFNoYWRvd0RPTSkuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnRTaGFkb3c6OmVuc3VyZVNlbGVjdEZlYXR1cmVTZXRDb2xsZWN0ZWQpOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6Y29sbGVjdFNlbGVjdEZlYXR1cmVTZXRGcm9tKTogQ29s
bGVjdCBSdWxlRmVhdHVyZVNldCBmcm9tIGFsbCBkZXNjZW5kYW50IE5vZGVzIGFuZCB0aGVpcgor
ICAgICAgICBTaGFkb3dET00uIFdlIG5lZWQgdG8gY29sbGVjdCBpZCwgY2xhc3MsIGFuZCBhdHRy
aWJ1dGUgbmFtZXMuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hhZG93OjpoYXNTZWxlY3Rv
ckZvcklkKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFkb3c6Omhhc1NlbGVjdG9yRm9y
Q2xhc3MpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6aGFzU2VsZWN0b3JGb3JB
dHRyaWJ1dGUpOgorICAgICAgICAqIGRvbS9FbGVtZW50U2hhZG93Lmg6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50U2hhZG93OjpzaG91bGRDb2xsZWN0U2VsZWN0RmVhdHVyZVNldCk6CisgICAg
ICAgIChFbGVtZW50U2hhZG93KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVudEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZSk6IFdoZW4gc2VsZWN0IGF0dHJpYnV0ZSBpcyBjaGFuZ2VkLCBlbmFibGUgYSBmbGFn
IHRvIHJlY29sbGVjdCBmZWF0dXJlcy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxl
bWVudDo6aW5zZXJ0ZWRJbnRvKTogV2UgaGF2ZSB0byByZWNvbGxlY3QgZmVhdHVyZXMgd2hlbiBI
VE1MQ29udGVudEVsZW1lbnQgaXMgbW92ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVu
dEVsZW1lbnQ6OnJlbW92ZWRGcm9tKTogZGl0dG8uCisgICAgICAgICogaHRtbC9zaGFkb3cvSFRN
TENvbnRlbnRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjp0b0hUTUxDb250ZW50RWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Omhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aGFzU2Vs
ZWN0b3JGb3JDbGFzc0luU2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aGFz
U2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuaDoKKyAgICAgICAgKEludGVybmFscyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
aWRsOgorCisyMDEyLTExLTA3ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBIVE1MQ29udGVudEVsZW1lbnQgc2hvdWxkIHByZXNlcnZlIHBhcnNlZCBD
U1NTZWxlY3Rvckxpc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwMTU0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFdlIHdvdWxkIGxpa2UgdG8gcHJlc2VydmUgQ1NTU2VsZWN0b3JMaXN0IGZvciBzZWxl
Y3QgYXR0cmlidXRlIG9mIEhUTUxDb250ZW50RWxlbWVudC4KKworICAgICAgICBCZWZvcmUsIHdl
IHBhcnNlZCBhbmQgdmFsaWRhdGVkIHNlbGVjdCBhdHRyaWJ1dGUgZXZlcnkgdGltZSBkaXN0cmli
dXRpb24gaGFwcGVucy4gSWYgd2UgcHJlc2VydmUgdGhlIHBhcnNlZAorICAgICAgICBDU1NTZWxl
Y3Rvckxpc3QsIHdlIGNhbiByZWR1Y2UgZGlzdHJpYnV0aW9uIHRpbWUuCisKKyAgICAgICAgVGhp
cyBpcyBhbHNvIGEgcHJlcHJhdGlvbiBwYXRjaCBmb3IgQnVnIDEwMTE4MC4gSXQgYWxzbyBuZWVk
cyB0aGUgcGFyc2VkIENTU1NlbGVjdG9yTGlzdC4gV2UgZG9uJ3Qgd2FudCB0bworICAgICAgICBw
YXJzZSBhbmQgdmFsaWRhdGUgaXQgYWdhaW4uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBjb3Zl
cmVkIGJ5IGV4aXNpbmcgdGVzdHMuCisKKyAgICAgICAgKiBodG1sL3NoYWRvdy9Db250ZW50U2Vs
ZWN0b3JRdWVyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VsZWN0b3JRdWVyeTo6
Q29udGVudFNlbGVjdG9yUXVlcnkpOiBXZSBkb24ndCBwYXJzZSBzZWxlY3QgYXR0cmlidXRlIGhl
cmUgYW55bW9yZS4KKyAgICAgICAgaWYgaXQncyBhbHJlYWR5IHBhcnNlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRTZWxlY3RvclF1ZXJ5OjptYXRjaGVzKToKKyAgICAgICAgKiBodG1sL3No
YWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5oOgorICAgICAgICAoQ29udGVudFNlbGVjdG9yUXVl
cnkpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6OkhUTUxDb250ZW50RWxlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6OmlzU2VsZWN0VmFsaWQpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRFbGVtZW50OjplbnN1cmVTZWxlY3RQYXJzZWQpOiBJ
ZiB3ZSBkb24ndCBoYXZlIHBhcnNlZCB0aGUgY3VycmVudCBzZWxlY3QgYXR0cmlidXRlLAorICAg
ICAgICB3ZSBwYXJzZSBhbmQgdmFsaWRhdGUgaXQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29u
dGVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKTogV2hlbiBzZWxlY3QgYXR0cmlidXRlIGlzIGNo
YW5nZWQsIHdlIGhhdmUgdG8gaGF2ZSBhIGZsYWcgZW5hYmxlZAorICAgICAgICB0byBwYXJzZSBz
ZWxlY3QgYXR0cml0ZSBhZ2Fpbi4KKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlU3ViU2VsZWN0
b3IpOiBNb3ZlZCBmcm9tIENvbnRlbnRTZWxlY3RvclF1ZXJ5LgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0ZVNlbGVjdG9yKTogTW92ZWQgZnJvbSBDb250ZW50
U2VsZWN0b3JRdWVyeS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6dmFs
aWRhdGVTZWxlY3QpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5o
OgorICAgICAgICAoSFRNTENvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxD
b250ZW50RWxlbWVudDo6c2V0U2VsZWN0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTENvbnRlbnRFbGVtZW50OjpzZWxlY3Rvckxpc3QpOgorICAgICAgICAqIGh0
bWwvc2hhZG93L0hUTUxTaGFkb3dFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxT
aGFkb3dFbGVtZW50OjplbXB0eVNlbGVjdG9yTGlzdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBodG1sL3NoYWRvdy9IVE1MU2hhZG93RWxlbWVudC5oOgorICAgICAgICAoSFRNTFNo
YWRvd0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNoYWRvd0VsZW1lbnQ6OnNlbGVj
dG9yTGlzdCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuaDoKKyAgICAg
ICAgKEluc2VydGlvblBvaW50KToKKwogMjAxMi0xMS0wNyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3
ZWJraXQub3JnPgogCiAgICAgICAgIFtWOF0gSW50cnVzaXZlRE9NV3JhcHBlck1hcCBzaG91bGQg
YmUgdXNhYmxlIGZvciBtb3JlIHRoYW4ganVzdCBOb2RlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRl
eCA0YjJlZmM1OTUyMzQxNTM5N2U0N2JjMGZmYTQ5NGIzMTNmY2RiYjdjLi4wMjJhZWJmYTAwOGUz
MDRjYTQ4NzVkYjU2OTk2Zjk2N2QzNGEyZWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjE1
LDYgKzIxNSw3IEBAIF9fWk43V2ViQ29yZTEzQVhPYmplY3RDYWNoZTQyZ0FjY2Vzc2liaWxpdHlF
bmhhbmNlZFVzZXJJbnRlcmZhY2VFbmFibGVkRQogX19aTjdXZWJDb3JlMTNDaGFyYWN0ZXJEYXRh
N3NldERhdGFFUktOM1dURjZTdHJpbmdFUmkKIF9fWk43V2ViQ29yZTEzQ29udGFpbmVyTm9kZTEx
YXBwZW5kQ2hpbGRFTjNXVEYxMFBhc3NSZWZQdHJJTlNfNE5vZGVFRUVSaWIKIF9fWk43V2ViQ29y
ZTEzQ29udGFpbmVyTm9kZTExcmVtb3ZlQ2hpbGRFUE5TXzROb2RlRVJpCitfX1pON1dlYkNvcmUx
M0VsZW1lbnRTaGFkb3czMWVuc3VyZVNlbGVjdEZlYXR1cmVTZXRDb2xsZWN0ZWRFdgogX19aTjdX
ZWJDb3JlMTNIVFRQSGVhZGVyTWFwQzFFdgogX19aTjdXZWJDb3JlMTNIVFRQSGVhZGVyTWFwRDFF
dgogX19aTjdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0QzFFUktTMF8KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9SdWxlRmVhdHVyZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZUZl
YXR1cmUuY3BwCmluZGV4IGIxZjkyOTY4NzkyN2ZkNzcwOWZmMDIyZjU1ZDBlYjNkOTdjMmQ3ZGMu
LjFiMTFjOGZhZWQ0Mzg0MWI4N2MxZjYxOTYyNDBhNWIyM2U3NDRhOTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9SdWxlRmVhdHVyZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1J1bGVGZWF0dXJlLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIlJ1bGVGZWF0dXJlLmgiCiAKKyNpbmNsdWRlICJDU1NTZWxlY3Rvci5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVt
ZW50YXRpb25IYXNoU2V0Lmg+CkBAIC0zNiw2ICszNywyNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKK3ZvaWQgUnVsZUZlYXR1cmVTZXQ6OmNvbGxlY3RGZWF0dXJlc0Zyb21TZWxlY3Rvcihj
b25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IpCit7CisgICAgaWYgKHNlbGVjdG9yLT5tX21hdGNo
ID09IENTU1NlbGVjdG9yOjpJZCkKKyAgICAgICAgaWRzSW5SdWxlcy5hZGQoc2VsZWN0b3ItPnZh
bHVlKCkuaW1wbCgpKTsKKyAgICBlbHNlIGlmIChzZWxlY3Rvci0+bV9tYXRjaCA9PSBDU1NTZWxl
Y3Rvcjo6Q2xhc3MpCisgICAgICAgIGNsYXNzZXNJblJ1bGVzLmFkZChzZWxlY3Rvci0+dmFsdWUo
KS5pbXBsKCkpOworICAgIGVsc2UgaWYgKHNlbGVjdG9yLT5pc0F0dHJpYnV0ZVNlbGVjdG9yKCkp
CisgICAgICAgIGF0dHJzSW5SdWxlcy5hZGQoc2VsZWN0b3ItPmF0dHJpYnV0ZSgpLmxvY2FsTmFt
ZSgpLmltcGwoKSk7CisgICAgc3dpdGNoIChzZWxlY3Rvci0+cHNldWRvVHlwZSgpKSB7CisgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRmlyc3RMaW5lOgorICAgICAgICB1c2VzRmlyc3RMaW5l
UnVsZXMgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9CZWZvcmU6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQWZ0ZXI6CisgICAgICAgIHVz
ZXNCZWZvcmVBZnRlclJ1bGVzID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoK
KyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCiB2b2lkIFJ1bGVGZWF0dXJlU2V0OjphZGQoY29u
c3QgUnVsZUZlYXR1cmVTZXQmIG90aGVyKQogewogICAgIEhhc2hTZXQ8QXRvbWljU3RyaW5nSW1w
bCo+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBvdGhlci5pZHNJblJ1bGVzLmVuZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVGZWF0dXJlLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvUnVsZUZlYXR1cmUuaAppbmRleCBjZTZkMDRlNjY0ZTQyZjRmYWJmYmYyNWYzOGRkYjJiNGUy
YmJhM2I3Li4wZmZjNmU1ZWUyMTcyYTY3YjdlN2VkOWMwOWYxMTJmYWNlNzgxNDNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZUZlYXR1cmUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvUnVsZUZlYXR1cmUuaApAQCAtMzAsNiArMzAsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBTdHlsZVJ1bGU7CitjbGFzcyBDU1NTZWxlY3RvcjsKIAogc3RydWN0IFJ1bGVG
ZWF0dXJlIHsKICAgICBSdWxlRmVhdHVyZShTdHlsZVJ1bGUqIHJ1bGUsIHVuc2lnbmVkIHNlbGVj
dG9ySW5kZXgsIGJvb2wgaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbikKQEAgLTUxLDcgKzUyLDEx
IEBAIHN0cnVjdCBSdWxlRmVhdHVyZVNldCB7CiAKICAgICB2b2lkIGFkZChjb25zdCBSdWxlRmVh
dHVyZVNldCYpOwogICAgIHZvaWQgY2xlYXIoKTsKKworICAgIHZvaWQgY29sbGVjdEZlYXR1cmVz
RnJvbVNlbGVjdG9yKGNvbnN0IENTU1NlbGVjdG9yKik7CisKICAgICB2b2lkIHJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwogICAgIEhhc2hTZXQ8QXRvbWljU3Ry
aW5nSW1wbCo+IGlkc0luUnVsZXM7CiAgICAgSGFzaFNldDxBdG9taWNTdHJpbmdJbXBsKj4gY2xh
c3Nlc0luUnVsZXM7CiAgICAgSGFzaFNldDxBdG9taWNTdHJpbmdJbXBsKj4gYXR0cnNJblJ1bGVz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL1J1bGVTZXQuY3BwCmluZGV4IGU5MmQxNzY4YjI5OGQ3YWU4OTZjMDdiZTI4ODdh
YTc0MWM1YTZkMzguLmE1MzY3ZWU4MmRiZDU5MzFlOTRiNjg0OWQ0M2U3YjFlZmQ5YzkxODYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvUnVsZVNldC5jcHAKQEAgLTE1NywzOCArMTU3LDE3IEBAIHZvaWQgUnVsZVNldDo6
UnVsZVNldFNlbGVjdG9yUGFpcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyog
bWVtb3J5T2JqCiAgICAgaW5mby5hZGRNZW1iZXIocnVsZVNldCk7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgdm9pZCBjb2xsZWN0RmVhdHVyZXNGcm9tU2VsZWN0b3IoUnVsZUZlYXR1cmVTZXQmIGZlYXR1
cmVzLCBjb25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IpCi17Ci0gICAgaWYgKHNlbGVjdG9yLT5t
X21hdGNoID09IENTU1NlbGVjdG9yOjpJZCkKLSAgICAgICAgZmVhdHVyZXMuaWRzSW5SdWxlcy5h
ZGQoc2VsZWN0b3ItPnZhbHVlKCkuaW1wbCgpKTsKLSAgICBlbHNlIGlmIChzZWxlY3Rvci0+bV9t
YXRjaCA9PSBDU1NTZWxlY3Rvcjo6Q2xhc3MpCi0gICAgICAgIGZlYXR1cmVzLmNsYXNzZXNJblJ1
bGVzLmFkZChzZWxlY3Rvci0+dmFsdWUoKS5pbXBsKCkpOwotICAgIGVsc2UgaWYgKHNlbGVjdG9y
LT5pc0F0dHJpYnV0ZVNlbGVjdG9yKCkpCi0gICAgICAgIGZlYXR1cmVzLmF0dHJzSW5SdWxlcy5h
ZGQoc2VsZWN0b3ItPmF0dHJpYnV0ZSgpLmxvY2FsTmFtZSgpLmltcGwoKSk7Ci0gICAgc3dpdGNo
IChzZWxlY3Rvci0+cHNldWRvVHlwZSgpKSB7Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
Rmlyc3RMaW5lOgotICAgICAgICBmZWF0dXJlcy51c2VzRmlyc3RMaW5lUnVsZXMgPSB0cnVlOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9CZWZvcmU6Ci0gICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQWZ0ZXI6Ci0gICAgICAgIGZlYXR1cmVzLnVzZXNCZWZv
cmVBZnRlclJ1bGVzID0gdHJ1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAg
ICAgYnJlYWs7Ci0gICAgfQotfQotCiBzdGF0aWMgdm9pZCBjb2xsZWN0RmVhdHVyZXNGcm9tUnVs
ZURhdGEoUnVsZUZlYXR1cmVTZXQmIGZlYXR1cmVzLCBjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEp
CiB7CiAgICAgYm9vbCBmb3VuZFNpYmxpbmdTZWxlY3RvciA9IGZhbHNlOwogICAgIGZvciAoQ1NT
U2VsZWN0b3IqIHNlbGVjdG9yID0gcnVsZURhdGEuc2VsZWN0b3IoKTsgc2VsZWN0b3I7IHNlbGVj
dG9yID0gc2VsZWN0b3ItPnRhZ0hpc3RvcnkoKSkgewotICAgICAgICBjb2xsZWN0RmVhdHVyZXNG
cm9tU2VsZWN0b3IoZmVhdHVyZXMsIHNlbGVjdG9yKTsKKyAgICAgICAgZmVhdHVyZXMuY29sbGVj
dEZlYXR1cmVzRnJvbVNlbGVjdG9yKHNlbGVjdG9yKTsKICAgICAgICAgCiAgICAgICAgIGlmIChD
U1NTZWxlY3Rvckxpc3QqIHNlbGVjdG9yTGlzdCA9IHNlbGVjdG9yLT5zZWxlY3Rvckxpc3QoKSkg
ewogICAgICAgICAgICAgZm9yIChDU1NTZWxlY3Rvciogc3ViU2VsZWN0b3IgPSBzZWxlY3Rvckxp
c3QtPmZpcnN0KCk7IHN1YlNlbGVjdG9yOyBzdWJTZWxlY3RvciA9IENTU1NlbGVjdG9yTGlzdDo6
bmV4dChzdWJTZWxlY3RvcikpIHsKICAgICAgICAgICAgICAgICBpZiAoIWZvdW5kU2libGluZ1Nl
bGVjdG9yICYmIHNlbGVjdG9yLT5pc1NpYmxpbmdTZWxlY3RvcigpKQogICAgICAgICAgICAgICAg
ICAgICBmb3VuZFNpYmxpbmdTZWxlY3RvciA9IHRydWU7Ci0gICAgICAgICAgICAgICAgY29sbGVj
dEZlYXR1cmVzRnJvbVNlbGVjdG9yKGZlYXR1cmVzLCBzdWJTZWxlY3Rvcik7CisgICAgICAgICAg
ICAgICAgZmVhdHVyZXMuY29sbGVjdEZlYXR1cmVzRnJvbVNlbGVjdG9yKHN1YlNlbGVjdG9yKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmICghZm91bmRTaWJsaW5nU2VsZWN0b3Ig
JiYgc2VsZWN0b3ItPmlzU2libGluZ1NlbGVjdG9yKCkpCiAgICAgICAgICAgICBmb3VuZFNpYmxp
bmdTZWxlY3RvciA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dFNoYWRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5jcHAKaW5kZXgg
NmY4N2YxNjQ0YWZiOTRiZmJmZTVlYjc4Y2ViMzFmZWU0NTE2MmYxYi4uMjk2Y2FkYTdhZGQ2ODQ1
NGVhMjZhMGI1ZGEwZjIwNzliMzRhYmJlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnRTaGFkb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93
LmNwcApAQCAtMjcsOSArMjcsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJF
bGVtZW50U2hhZG93LmgiCiAKKyNpbmNsdWRlICJDU1NQYXJzZXIuaCIKKyNpbmNsdWRlICJDU1NT
ZWxlY3Rvckxpc3QuaCIKICNpbmNsdWRlICJDb250YWluZXJOb2RlQWxnb3JpdGhtcy5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxD
b250ZW50RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxTaGFkb3dFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgpA
QCAtMzksNiArNDIsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBFbGVtZW50U2hhZG93OjpF
bGVtZW50U2hhZG93KCkKKyAgICA6IG1fc2hvdWxkQ29sbGVjdFNlbGVjdEZlYXR1cmVTZXQoZmFs
c2UpCiB7CiB9CiAKQEAgLTIwMyw2ICsyMDcsNTUgQEAgdm9pZCBFbGVtZW50U2hhZG93OjppbnZh
bGlkYXRlRGlzdHJpYnV0aW9uKEVsZW1lbnQqIGhvc3QpCiAgICAgICAgIG1fZGlzdHJpYnV0b3Iu
ZmluaXNoSW5pdmFsaWRhdGlvbigpOwogfQogCit2b2lkIEVsZW1lbnRTaGFkb3c6OnNldFNob3Vs
ZENvbGxlY3RTZWxlY3RGZWF0dXJlU2V0KCkKK3sKKyAgICBpZiAoc2hvdWxkQ29sbGVjdFNlbGVj
dEZlYXR1cmVTZXQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zaG91bGRDb2xsZWN0U2Vs
ZWN0RmVhdHVyZVNldCA9IHRydWU7CisKKyAgICBpZiAoU2hhZG93Um9vdCogcGFyZW50U2hhZG93
Um9vdCA9IGhvc3QoKS0+c2hhZG93Um9vdCgpKSB7CisgICAgICAgIGlmIChFbGVtZW50U2hhZG93
KiBwYXJlbnRFbGVtZW50U2hhZG93ID0gcGFyZW50U2hhZG93Um9vdC0+b3duZXIoKSkKKyAgICAg
ICAgICAgIHBhcmVudEVsZW1lbnRTaGFkb3ctPnNldFNob3VsZENvbGxlY3RTZWxlY3RGZWF0dXJl
U2V0KCk7CisgICAgfQorfQorCit2b2lkIEVsZW1lbnRTaGFkb3c6OmVuc3VyZVNlbGVjdEZlYXR1
cmVTZXRDb2xsZWN0ZWQoKQoreworICAgIGlmICghbV9zaG91bGRDb2xsZWN0U2VsZWN0RmVhdHVy
ZVNldCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zZWxlY3RGZWF0dXJlcy5jbGVhcigpOwor
ICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IG9sZGVzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9v
dCA9IHJvb3QtPnlvdW5nZXJTaGFkb3dSb290KCkpCisgICAgICAgIGNvbGxlY3RTZWxlY3RGZWF0
dXJlU2V0RnJvbShyb290KTsKKyAgICBtX3Nob3VsZENvbGxlY3RTZWxlY3RGZWF0dXJlU2V0ID0g
ZmFsc2U7Cit9CisKK3ZvaWQgRWxlbWVudFNoYWRvdzo6Y29sbGVjdFNlbGVjdEZlYXR1cmVTZXRG
cm9tKFNoYWRvd1Jvb3QqIHJvb3QpCit7CisgICAgaWYgKCFyb290LT5oYXNDb250ZW50RWxlbWVu
dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAocm9vdC0+aGFzRWxlbWVudFNoYWRvdygp
KSB7CisgICAgICAgIGZvciAoTm9kZSogbm9kZSA9IHJvb3QtPmZpcnN0Q2hpbGQoKTsgbm9kZTsg
bm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUoKSkgeworICAgICAgICAgICAgaWYgKEVsZW1l
bnRTaGFkb3cqIGVsZW1lbnRTaGFkb3cgPSBub2RlLT5pc0VsZW1lbnROb2RlKCkgPyB0b0VsZW1l
bnQobm9kZSktPnNoYWRvdygpIDogMCkgeworICAgICAgICAgICAgICAgIGVsZW1lbnRTaGFkb3ct
PmVuc3VyZVNlbGVjdEZlYXR1cmVTZXRDb2xsZWN0ZWQoKTsKKyAgICAgICAgICAgICAgICBtX3Nl
bGVjdEZlYXR1cmVzLmFkZChlbGVtZW50U2hhZG93LT5tX3NlbGVjdEZlYXR1cmVzKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChyb290LT5oYXNDb250ZW50RWxl
bWVudCgpKSB7CisgICAgICAgIGZvciAoTm9kZSogbm9kZSA9IHJvb3QtPmZpcnN0Q2hpbGQoKTsg
bm9kZTsgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUoKSkgeworICAgICAgICAgICAgaWYg
KGlzSFRNTENvbnRlbnRFbGVtZW50KG5vZGUpKSB7CisgICAgICAgICAgICAgICAgY29uc3QgQ1NT
U2VsZWN0b3JMaXN0JiBsaXN0ID0gdG9IVE1MQ29udGVudEVsZW1lbnQobm9kZSktPnNlbGVjdG9y
TGlzdCgpOworICAgICAgICAgICAgICAgIGZvciAoQ1NTU2VsZWN0b3IqIHNlbGVjdG9yID0gbGlz
dC5maXJzdCgpOyBzZWxlY3Rvcjsgc2VsZWN0b3IgPSBsaXN0Lm5leHQoc2VsZWN0b3IpKQorICAg
ICAgICAgICAgICAgICAgICBtX3NlbGVjdEZlYXR1cmVzLmNvbGxlY3RGZWF0dXJlc0Zyb21TZWxl
Y3RvcihzZWxlY3Rvcik7ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgIH0KK30KKwogdm9pZCBFbGVtZW50U2hhZG93OjpyZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogewogICAgIE1lbW9yeUNs
YXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6
RE9NKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5oCmluZGV4IDJmNmY1NmM3NGY2NjkyY2Vl
MzQ0ODZhOWE3ZjliMDIxYzcwZTkyODUuLjVlMjdlY2ZkY2U3Y2FiMDU1YzY3Njc2ZTI4NGNkNjAz
YjJiMjQ5YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuaApAQCAtMjksNiArMjksNyBA
QAogCiAjaW5jbHVkZSAiQ29udGVudERpc3RyaWJ1dG9yLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgorI2luY2x1ZGUgIlJ1bGVGZWF0dXJlLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5o
IgogI2luY2x1ZGUgPHd0Zi9Eb3VibHlMaW5rZWRMaXN0Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CkBAIC02OSwxMyArNzAsMjUgQEAgcHVibGljOgogICAgIENvbnRlbnREaXN0cmli
dXRvciYgZGlzdHJpYnV0b3IoKTsKICAgICBjb25zdCBDb250ZW50RGlzdHJpYnV0b3ImIGRpc3Ry
aWJ1dG9yKCkgY29uc3Q7CiAKKyAgICBib29sIHNob3VsZENvbGxlY3RTZWxlY3RGZWF0dXJlU2V0
KCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRDb2xsZWN0U2VsZWN0RmVhdHVyZVNldDsgfQorICAg
IHZvaWQgc2V0U2hvdWxkQ29sbGVjdFNlbGVjdEZlYXR1cmVTZXQoKTsKKyAgICB2b2lkIGVuc3Vy
ZVNlbGVjdEZlYXR1cmVTZXRDb2xsZWN0ZWQoKTsKKworICAgIGJvb2wgaGFzU2VsZWN0b3JGb3JJ
ZChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdDsKKyAgICBib29sIGhhc1NlbGVjdG9yRm9yQ2xh
c3MoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7CisgICAgYm9vbCBoYXNTZWxlY3RvckZvckF0
dHJpYnV0ZShjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdDsKKwogICAgIHZvaWQgcmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogCiBwcml2YXRlOgogICAgIHZvaWQg
aW52YWxpZGF0ZURpc3RyaWJ1dGlvbihFbGVtZW50KiBob3N0KTsKIAorICAgIHZvaWQgY29sbGVj
dFNlbGVjdEZlYXR1cmVTZXRGcm9tKFNoYWRvd1Jvb3QqKTsKKwogICAgIERvdWJseUxpbmtlZExp
c3Q8U2hhZG93Um9vdD4gbV9zaGFkb3dSb290czsKICAgICBDb250ZW50RGlzdHJpYnV0b3IgbV9k
aXN0cmlidXRvcjsKKyAgICBSdWxlRmVhdHVyZVNldCBtX3NlbGVjdEZlYXR1cmVzOworICAgIGJv
b2wgbV9zaG91bGRDb2xsZWN0U2VsZWN0RmVhdHVyZVNldCA6IDE7CiB9OwogCiBpbmxpbmUgU2hh
ZG93Um9vdCogRWxlbWVudFNoYWRvdzo6eW91bmdlc3RTaGFkb3dSb290KCkgY29uc3QKQEAgLTEx
Myw2ICsxMjYsMjQgQEAgaW5saW5lIFNoYWRvd1Jvb3QqIE5vZGU6OnlvdW5nZXN0U2hhZG93Um9v
dCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKK2lubGluZSBib29sIEVsZW1lbnRTaGFkb3c6
Omhhc1NlbGVjdG9yRm9ySWQoY29uc3QgQXRvbWljU3RyaW5nJiBpZFZhbHVlKSBjb25zdAorewor
ICAgIEFTU0VSVCghaWRWYWx1ZS5pc0VtcHR5KCkpOworICAgIHJldHVybiBtX3NlbGVjdEZlYXR1
cmVzLmlkc0luUnVsZXMuY29udGFpbnMoaWRWYWx1ZS5pbXBsKCkpOworfQorCitpbmxpbmUgYm9v
bCBFbGVtZW50U2hhZG93OjpoYXNTZWxlY3RvckZvckNsYXNzKGNvbnN0IEF0b21pY1N0cmluZyYg
Y2xhc3NWYWx1ZSkgY29uc3QKK3sKKyAgICBBU1NFUlQoIWNsYXNzVmFsdWUuaXNFbXB0eSgpKTsK
KyAgICByZXR1cm4gbV9zZWxlY3RGZWF0dXJlcy5jbGFzc2VzSW5SdWxlcy5jb250YWlucyhjbGFz
c1ZhbHVlLmltcGwoKSk7Cit9CisKK2lubGluZSBib29sIEVsZW1lbnRTaGFkb3c6Omhhc1NlbGVj
dG9yRm9yQXR0cmlidXRlKGNvbnN0IEF0b21pY1N0cmluZyYgYXR0cmlidXRlTmFtZSkgY29uc3QK
K3sKKyAgICBBU1NFUlQoIWF0dHJpYnV0ZU5hbWUuaXNFbXB0eSgpKTsKKyAgICByZXR1cm4gbV9z
ZWxlY3RGZWF0dXJlcy5hdHRyc0luUnVsZXMuY29udGFpbnMoYXR0cmlidXRlTmFtZS5pbXBsKCkp
OworfQorCiBjbGFzcyBTaGFkb3dSb290VmVjdG9yIDogcHVibGljIFZlY3RvcjxSZWZQdHI8U2hh
ZG93Um9vdD4gPiB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgU2hhZG93Um9vdFZlY3RvcihFbGVt
ZW50U2hhZG93KiB0cmVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
Q29udGVudFNlbGVjdG9yUXVlcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29u
dGVudFNlbGVjdG9yUXVlcnkuY3BwCmluZGV4IDBhNmVjMzJlZWU1ZmQwMGI4ZTk1YjQzM2VkZGY5
NDk3MzZiMTRlZWEuLmRiZTVhOGU5NTYyZjY4ZmE2YTA3ZjNjMzM5NzBmYTg1ZjNiODZiYjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVy
eS5jcHAKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJD
b250ZW50U2VsZWN0b3JRdWVyeS5oIgogCi0jaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVk
ZSAiQ1NTU2VsZWN0b3JMaXN0LmgiCiAjaW5jbHVkZSAiSW5zZXJ0aW9uUG9pbnQuaCIKICNpbmNs
dWRlICJTZWxlY3RvckNoZWNrZXIuaCIKQEAgLTY1LDI2ICs2NCwxMiBAQCBib29sIENvbnRlbnRT
ZWxlY3RvckRhdGFMaXN0OjptYXRjaGVzKGNvbnN0IENvbnRlbnRTZWxlY3RvckNoZWNrZXImIHNl
bGVjdG9yQ2hlYwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotQ29udGVudFNlbGVjdG9yUXVlcnk6
OkNvbnRlbnRTZWxlY3RvclF1ZXJ5KGNvbnN0IEluc2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2lu
dCkKK0NvbnRlbnRTZWxlY3RvclF1ZXJ5OjpDb250ZW50U2VsZWN0b3JRdWVyeShJbnNlcnRpb25Q
b2ludCogaW5zZXJ0aW9uUG9pbnQpCiAgICAgOiBtX2luc2VydGlvblBvaW50KGluc2VydGlvblBv
aW50KQogICAgICwgbV9zZWxlY3RvckNoZWNrZXIoaW5zZXJ0aW9uUG9pbnQtPmRvY3VtZW50KCks
ICFpbnNlcnRpb25Qb2ludC0+ZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCkpCiB7Ci0gICAgaWYg
KGluc2VydGlvblBvaW50LT5zZWxlY3QoKS5pc051bGwoKSB8fCBpbnNlcnRpb25Qb2ludC0+c2Vs
ZWN0KCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgIG1faXNWYWxpZFNlbGVjdG9yID0gdHJ1ZTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIENTU1BhcnNlciBwYXJzZXIoaW5zZXJ0aW9uUG9p
bnQtPmRvY3VtZW50KCkpOwotICAgIHBhcnNlci5wYXJzZVNlbGVjdG9yKGluc2VydGlvblBvaW50
LT5zZWxlY3QoKSwgbV9zZWxlY3Rvckxpc3QpOwotCi0gICAgbV9pc1ZhbGlkU2VsZWN0b3IgPSBD
b250ZW50U2VsZWN0b3JRdWVyeTo6dmFsaWRhdGVTZWxlY3Rvckxpc3QoKTsKLSAgICBpZiAobV9p
c1ZhbGlkU2VsZWN0b3IpCi0gICAgICAgIG1fc2VsZWN0b3JzLmluaXRpYWxpemUobV9zZWxlY3Rv
ckxpc3QpOwotfQotCi1ib29sIENvbnRlbnRTZWxlY3RvclF1ZXJ5Ojppc1ZhbGlkU2VsZWN0b3Io
KSBjb25zdAotewotICAgIHJldHVybiBtX2lzVmFsaWRTZWxlY3RvcjsKKyAgICBpZiAoaW5zZXJ0
aW9uUG9pbnQtPmlzU2VsZWN0VmFsaWQoKSkKKyAgICAgICAgbV9zZWxlY3RvcnMuaW5pdGlhbGl6
ZShpbnNlcnRpb25Qb2ludC0+c2VsZWN0b3JMaXN0KCkpOwogfQogCiBib29sIENvbnRlbnRTZWxl
Y3RvclF1ZXJ5OjptYXRjaGVzKGNvbnN0IFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiYgc2libGluZ3Ms
IGludCBudGgpIGNvbnN0CkBAIC05NSw3ICs4MCw3IEBAIGJvb2wgQ29udGVudFNlbGVjdG9yUXVl
cnk6Om1hdGNoZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxOb2RlPiA+JiBzaWJsaW5ncywgaW50IG50
CiAgICAgaWYgKG1faW5zZXJ0aW9uUG9pbnQtPnNlbGVjdCgpLmlzTnVsbCgpIHx8IG1faW5zZXJ0
aW9uUG9pbnQtPnNlbGVjdCgpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAg
ICBpZiAoIW1faXNWYWxpZFNlbGVjdG9yKQorICAgIGlmICghbV9pbnNlcnRpb25Qb2ludC0+aXNT
ZWxlY3RWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIW5vZGUtPmlz
RWxlbWVudE5vZGUoKSkKQEAgLTEwNCw4NSArODksNCBAQCBib29sIENvbnRlbnRTZWxlY3RvclF1
ZXJ5OjptYXRjaGVzKGNvbnN0IFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiYgc2libGluZ3MsIGludCBu
dAogICAgIHJldHVybiBtX3NlbGVjdG9ycy5tYXRjaGVzKG1fc2VsZWN0b3JDaGVja2VyLCBzaWJs
aW5ncywgbnRoKTsKIH0KIAotc3RhdGljIGJvb2wgdmFsaWRhdGVTdWJTZWxlY3RvcihDU1NTZWxl
Y3Rvciogc2VsZWN0b3IpCi17Ci0gICAgc3dpdGNoIChzZWxlY3Rvci0+bV9tYXRjaCkgewotICAg
IGNhc2UgQ1NTU2VsZWN0b3I6Ok5vbmU6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6SWQ6Ci0gICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6Q2xhc3M6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6RXhhY3Q6Ci0g
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6U2V0OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6Okxpc3Q6Ci0g
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6SHlwaGVuOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkNvbnRh
aW46Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6QmVnaW46Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6
RW5kOgotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9F
bGVtZW50OgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UGFn
ZVBzZXVkb0NsYXNzOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzOgotICAgICAg
ICBicmVhazsKLSAgICB9Ci0KLSAgICBzd2l0Y2ggKHNlbGVjdG9yLT5wc2V1ZG9UeXBlKCkpIHsK
LSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9FbXB0eToKLSAgICBjYXNlIENTU1NlbGVjdG9y
OjpQc2V1ZG9MaW5rOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Zpc2l0ZWQ6Ci0gICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvVGFyZ2V0OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBz
ZXVkb0VuYWJsZWQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRGlzYWJsZWQ6Ci0gICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2hlY2tlZDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQ
c2V1ZG9JbmRldGVybWluYXRlOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb050aENoaWxk
OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb050aExhc3RDaGlsZDoKLSAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9OdGhPZlR5cGU6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
TnRoTGFzdE9mVHlwZToKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GaXJzdENoaWxkOgot
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xhc3RDaGlsZDoKLSAgICBjYXNlIENTU1NlbGVj
dG9yOjpQc2V1ZG9GaXJzdE9mVHlwZToKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9MYXN0
T2ZUeXBlOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb09ubHlPZlR5cGU6Ci0gICAgICAg
IHJldHVybiB0cnVlOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9
Ci19Ci0KLXN0YXRpYyBib29sIHZhbGlkYXRlU2VsZWN0b3IoQ1NTU2VsZWN0b3IqIHNlbGVjdG9y
KQotewotICAgIEFTU0VSVChzZWxlY3Rvcik7Ci0KLSAgICBpZiAoIXZhbGlkYXRlU3ViU2VsZWN0
b3Ioc2VsZWN0b3IpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBDU1NTZWxlY3Rvciog
cHJldlN1YlNlbGVjdG9yID0gc2VsZWN0b3I7Ci0gICAgQ1NTU2VsZWN0b3IqIHN1YlNlbGVjdG9y
ID0gc2VsZWN0b3ItPnRhZ0hpc3RvcnkoKTsKLQotICAgIHdoaWxlIChzdWJTZWxlY3Rvcikgewot
ICAgICAgICBpZiAocHJldlN1YlNlbGVjdG9yLT5yZWxhdGlvbigpICE9IENTU1NlbGVjdG9yOjpT
dWJTZWxlY3RvcikKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKCF2YWxp
ZGF0ZVN1YlNlbGVjdG9yKHN1YlNlbGVjdG9yKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgICAgICBwcmV2U3ViU2VsZWN0b3IgPSBzdWJTZWxlY3RvcjsKLSAgICAgICAgc3ViU2Vs
ZWN0b3IgPSBzdWJTZWxlY3Rvci0+dGFnSGlzdG9yeSgpOwotICAgIH0KLQotICAgIHJldHVybiB0
cnVlOwotfQotCi1ib29sIENvbnRlbnRTZWxlY3RvclF1ZXJ5Ojp2YWxpZGF0ZVNlbGVjdG9yTGlz
dCgpCi17Ci0gICAgaWYgKCFtX3NlbGVjdG9yTGlzdC5maXJzdCgpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICBmb3IgKENTU1NlbGVjdG9yKiBzZWxlY3RvciA9IG1fc2VsZWN0b3JMaXN0
LmZpcnN0KCk7IHNlbGVjdG9yOyBzZWxlY3RvciA9IG1fc2VsZWN0b3JMaXN0Lm5leHQoc2VsZWN0
b3IpKSB7Ci0gICAgICAgIGlmICghdmFsaWRhdGVTZWxlY3RvcihzZWxlY3RvcikpCi0gICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5oCmlu
ZGV4IDJjNzEwYTU4NTJlOTJkNzY4ODJjN2MyMDc1MGJmZDI2ZGEyYWEwM2IuLjc4YTA4MjQ1NGM5
ZDEyZjJiMGYzYzU1MDRhOGI5MGFiZTllMWViZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuaApAQCAtNjQsMTggKzY0LDE0IEBAIHBy
aXZhdGU6CiBjbGFzcyBDb250ZW50U2VsZWN0b3JRdWVyeSB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoQ29udGVudFNlbGVjdG9yUXVlcnkpOwogcHVibGljOgotICAgIGV4cGxpY2l0IENvbnRl
bnRTZWxlY3RvclF1ZXJ5KGNvbnN0IEluc2VydGlvblBvaW50Kik7CisgICAgZXhwbGljaXQgQ29u
dGVudFNlbGVjdG9yUXVlcnkoSW5zZXJ0aW9uUG9pbnQqKTsKIAotICAgIGJvb2wgaXNWYWxpZFNl
bGVjdG9yKCkgY29uc3Q7CiAgICAgYm9vbCBtYXRjaGVzKGNvbnN0IFZlY3RvcjxSZWZQdHI8Tm9k
ZT4gPiYgc2libGluZ3MsIGludCBudGhOb2RlKSBjb25zdDsKIHByaXZhdGU6Ci0gICAgYm9vbCB2
YWxpZGF0ZVNlbGVjdG9yTGlzdCgpOwogCi0gICAgY29uc3QgSW5zZXJ0aW9uUG9pbnQqIG1faW5z
ZXJ0aW9uUG9pbnQ7CisgICAgSW5zZXJ0aW9uUG9pbnQqIG1faW5zZXJ0aW9uUG9pbnQ7CiAgICAg
Q29udGVudFNlbGVjdG9yRGF0YUxpc3QgbV9zZWxlY3RvcnM7Ci0gICAgQ1NTU2VsZWN0b3JMaXN0
IG1fc2VsZWN0b3JMaXN0OwogICAgIENvbnRlbnRTZWxlY3RvckNoZWNrZXIgbV9zZWxlY3RvckNo
ZWNrZXI7Ci0gICAgYm9vbCBtX2lzVmFsaWRTZWxlY3RvcjsKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCmluZGV4IDUwNDBl
OWViOGQ2MDYyNzU2ZWVhZjliZTQ0Mzc0ZDY2YTVlMTI1ZTAuLjlmYTEzOTRmYzhhNjAwYmY0Zjhj
ZmU3NWNhNzk3OWEwNTQxZGUyYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5oIgogCisjaW5jbHVkZSAiQ1NT
UGFyc2VyLmgiCiAjaW5jbHVkZSAiQ29udGVudERpc3RyaWJ1dG9yLmgiCiAjaW5jbHVkZSAiQ29u
dGVudFNlbGVjdG9yUXVlcnkuaCIKICNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKQEAgLTY1
LDYgKzY2LDggQEAgUGFzc1JlZlB0cjxIVE1MQ29udGVudEVsZW1lbnQ+IEhUTUxDb250ZW50RWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHQKIEhUTUxDb250ZW50RWxlbWVudDo6
SFRNTENvbnRlbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIERvY3VtZW50KiBk
b2N1bWVudCkKICAgICA6IEluc2VydGlvblBvaW50KG5hbWUsIGRvY3VtZW50KQogICAgICwgbV9y
ZWdpc3RlcmVkV2l0aFNoYWRvd1Jvb3QoZmFsc2UpCisgICAgLCBtX3Nob3VsZFBhcnNlU2VsZWN0
b3JMaXN0KGZhbHNlKQorICAgICwgbV9pc1ZhbGlkU2VsZWN0b3IodHJ1ZSkKIHsKIH0KIApAQCAt
NzcsMjIgKzgwLDMzIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTENvbnRlbnRFbGVtZW50Ojpz
ZWxlY3QoKSBjb25zdAogICAgIHJldHVybiBnZXRBdHRyaWJ1dGUoc2VsZWN0QXR0cik7CiB9CiAK
LWJvb2wgSFRNTENvbnRlbnRFbGVtZW50Ojppc1NlbGVjdFZhbGlkKCkgY29uc3QKK2Jvb2wgSFRN
TENvbnRlbnRFbGVtZW50Ojppc1NlbGVjdFZhbGlkKCkKIHsKLSAgICBDb250ZW50U2VsZWN0b3JR
dWVyeSBxdWVyeSh0aGlzKTsKLSAgICByZXR1cm4gcXVlcnkuaXNWYWxpZFNlbGVjdG9yKCk7Cisg
ICAgZW5zdXJlU2VsZWN0UGFyc2VkKCk7CisgICAgcmV0dXJuIG1faXNWYWxpZFNlbGVjdG9yOwog
fQogCi12b2lkIEhUTUxDb250ZW50RWxlbWVudDo6c2V0U2VsZWN0KGNvbnN0IEF0b21pY1N0cmlu
ZyYgc2VsZWN0VmFsdWUpCit2b2lkIEhUTUxDb250ZW50RWxlbWVudDo6ZW5zdXJlU2VsZWN0UGFy
c2VkKCkKIHsKLSAgICBzZXRBdHRyaWJ1dGUoc2VsZWN0QXR0ciwgc2VsZWN0VmFsdWUpOworICAg
IGlmICghbV9zaG91bGRQYXJzZVNlbGVjdG9yTGlzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Q1NTUGFyc2VyIHBhcnNlcihkb2N1bWVudCgpKTsKKyAgICBwYXJzZXIucGFyc2VTZWxlY3Rvcihz
ZWxlY3QoKSwgbV9zZWxlY3Rvckxpc3QpOworICAgIG1fc2hvdWxkUGFyc2VTZWxlY3Rvckxpc3Qg
PSBmYWxzZTsKKyAgICBtX2lzVmFsaWRTZWxlY3RvciA9IHZhbGlkYXRlU2VsZWN0KCk7CisgICAg
aWYgKCFtX2lzVmFsaWRTZWxlY3RvcikKKyAgICAgICAgbV9zZWxlY3Rvckxpc3QgPSBDU1NTZWxl
Y3Rvckxpc3QoKTsKIH0KIAogdm9pZCBIVE1MQ29udGVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlKQogewogICAgIGlmIChhdHRyaWJ1dGUubmFtZSgp
ID09IHNlbGVjdEF0dHIpIHsKLSAgICAgICAgaWYgKFNoYWRvd1Jvb3QqIHJvb3QgPSBzaGFkb3dS
b290KCkpCisgICAgICAgIGlmIChTaGFkb3dSb290KiByb290ID0gc2hhZG93Um9vdCgpKSB7Cisg
ICAgICAgICAgICByb290LT5vd25lcigpLT5zZXRTaG91bGRDb2xsZWN0U2VsZWN0RmVhdHVyZVNl
dCgpOwogICAgICAgICAgICAgcm9vdC0+b3duZXIoKS0+aW52YWxpZGF0ZURpc3RyaWJ1dGlvbigp
OworICAgICAgICB9CisgICAgICAgIG1fc2hvdWxkUGFyc2VTZWxlY3Rvckxpc3QgPSB0cnVlOwog
ICAgIH0gZWxzZQogICAgICAgICBJbnNlcnRpb25Qb2ludDo6cGFyc2VBdHRyaWJ1dGUoYXR0cmli
dXRlKTsKIH0KQEAgLTEwMiw3ICsxMTYsOSBAQCBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25S
ZXF1ZXN0IEhUTUxDb250ZW50RWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZAogICAg
IEluc2VydGlvblBvaW50OjppbnNlcnRlZEludG8oaW5zZXJ0aW9uUG9pbnQpOwogCiAgICAgaWYg
KGluc2VydGlvblBvaW50LT5pbkRvY3VtZW50KCkgJiYgaXNBY3RpdmUoKSkgewotICAgICAgICBz
aGFkb3dSb290KCktPnJlZ2lzdGVyQ29udGVudEVsZW1lbnQoKTsKKyAgICAgICAgU2hhZG93Um9v
dCogcm9vdCA9IHNoYWRvd1Jvb3QoKTsKKyAgICAgICAgcm9vdC0+cmVnaXN0ZXJDb250ZW50RWxl
bWVudCgpOworICAgICAgICByb290LT5vd25lcigpLT5zZXRTaG91bGRDb2xsZWN0U2VsZWN0RmVh
dHVyZVNldCgpOwogICAgICAgICBtX3JlZ2lzdGVyZWRXaXRoU2hhZG93Um9vdCA9IHRydWU7CiAg
ICAgfQogCkBAIC0xMTgsOCArMTM0LDk4IEBAIHZvaWQgSFRNTENvbnRlbnRFbGVtZW50OjpyZW1v
dmVkRnJvbShDb250YWluZXJOb2RlKiBpbnNlcnRpb25Qb2ludCkKICAgICAgICAgaWYgKHJvb3Qp
CiAgICAgICAgICAgICByb290LT51bnJlZ2lzdGVyQ29udGVudEVsZW1lbnQoKTsKICAgICAgICAg
bV9yZWdpc3RlcmVkV2l0aFNoYWRvd1Jvb3QgPSBmYWxzZTsKKworICAgICAgICBpZiAoRWxlbWVu
dFNoYWRvdyogZWxlbWVudFNoYWRvdyA9IHJvb3QgPyByb290LT5vd25lcigpIDogMCkKKyAgICAg
ICAgICAgIGVsZW1lbnRTaGFkb3ctPnNldFNob3VsZENvbGxlY3RTZWxlY3RGZWF0dXJlU2V0KCk7
CiAgICAgfQogICAgIEluc2VydGlvblBvaW50OjpyZW1vdmVkRnJvbShpbnNlcnRpb25Qb2ludCk7
CiB9CiAKK3N0YXRpYyBib29sIHZhbGlkYXRlU3ViU2VsZWN0b3IoQ1NTU2VsZWN0b3IqIHNlbGVj
dG9yKQoreworICAgIHN3aXRjaCAoc2VsZWN0b3ItPm1fbWF0Y2gpIHsKKyAgICBjYXNlIENTU1Nl
bGVjdG9yOjpOb25lOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OklkOgorICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OkNsYXNzOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkV4YWN0OgorICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlNldDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpMaXN0OgorICAgIGNhc2UgQ1NT
U2VsZWN0b3I6Okh5cGhlbjoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpDb250YWluOgorICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OkJlZ2luOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkVuZDoKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudDoKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBhZ2VQc2V1ZG9DbGFz
czoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzczoKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorCisgICAgc3dpdGNoIChzZWxlY3Rvci0+cHNldWRvVHlwZSgpKSB7CisgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvRW1wdHk6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGlu
azoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9WaXNpdGVkOgorICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb1RhcmdldDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9FbmFibGVk
OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Rpc2FibGVkOgorICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0NoZWNrZWQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvSW5kZXRl
cm1pbmF0ZToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhDaGlsZDoKKyAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhMYXN0Q2hpbGQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvTnRoT2ZUeXBlOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb050aExhc3RPZlR5
cGU6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRmlyc3RDaGlsZDoKKyAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9MYXN0Q2hpbGQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
Rmlyc3RPZlR5cGU6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGFzdE9mVHlwZToKKyAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Pbmx5T2ZUeXBlOgorICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCitzdGF0
aWMgYm9vbCB2YWxpZGF0ZVNlbGVjdG9yKENTU1NlbGVjdG9yKiBzZWxlY3RvcikKK3sKKyAgICBB
U1NFUlQoc2VsZWN0b3IpOworCisgICAgaWYgKCF2YWxpZGF0ZVN1YlNlbGVjdG9yKHNlbGVjdG9y
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQ1NTU2VsZWN0b3IqIHByZXZTdWJTZWxl
Y3RvciA9IHNlbGVjdG9yOworICAgIENTU1NlbGVjdG9yKiBzdWJTZWxlY3RvciA9IHNlbGVjdG9y
LT50YWdIaXN0b3J5KCk7CisKKyAgICB3aGlsZSAoc3ViU2VsZWN0b3IpIHsKKyAgICAgICAgaWYg
KHByZXZTdWJTZWxlY3Rvci0+cmVsYXRpb24oKSAhPSBDU1NTZWxlY3Rvcjo6U3ViU2VsZWN0b3Ip
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghdmFsaWRhdGVTdWJTZWxl
Y3RvcihzdWJTZWxlY3RvcikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAg
cHJldlN1YlNlbGVjdG9yID0gc3ViU2VsZWN0b3I7CisgICAgICAgIHN1YlNlbGVjdG9yID0gc3Vi
U2VsZWN0b3ItPnRhZ0hpc3RvcnkoKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
Ym9vbCBIVE1MQ29udGVudEVsZW1lbnQ6OnZhbGlkYXRlU2VsZWN0KCkgY29uc3QKK3sKKyAgICBB
U1NFUlQoIW1fc2hvdWxkUGFyc2VTZWxlY3Rvckxpc3QpOworCisgICAgaWYgKHNlbGVjdCgpLmlz
TnVsbCgpIHx8IHNlbGVjdCgpLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAg
ICBpZiAoIW1fc2VsZWN0b3JMaXN0LmZpcnN0KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIGZvciAoQ1NTU2VsZWN0b3IqIHNlbGVjdG9yID0gbV9zZWxlY3Rvckxpc3QuZmlyc3QoKTsg
c2VsZWN0b3I7IHNlbGVjdG9yID0gbV9zZWxlY3Rvckxpc3QubmV4dChzZWxlY3RvcikpIHsKKyAg
ICAgICAgaWYgKCF2YWxpZGF0ZVNlbGVjdG9yKHNlbGVjdG9yKSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oCmluZGV4IDJhM2EzMmNl
YTU1OTI5ZTg3Y2U3MWJhYzczYjc4NjRjNzkwZjBmZjYuLmVkMGIwODg4NDMyY2QzZjM2ZTkxMTdm
YTkxOTkyOTgxNmVhMTQ5ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0hUTUxDb250ZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hU
TUxDb250ZW50RWxlbWVudC5oCkBAIC0zMSw2ICszMSw3IEBACiAjaWZuZGVmIEhUTUxDb250ZW50
RWxlbWVudF9oCiAjZGVmaW5lIEhUTUxDb250ZW50RWxlbWVudF9oCiAKKyNpbmNsdWRlICJDU1NT
ZWxlY3Rvckxpc3QuaCIKICNpbmNsdWRlICJJbnNlcnRpb25Qb2ludC5oIgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAKQEAgLTQ0LDkgKzQ1LDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
fkhUTUxDb250ZW50RWxlbWVudCgpOwogCi0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBzZWxlY3Qo
KSBjb25zdDsKICAgICB2b2lkIHNldFNlbGVjdChjb25zdCBBdG9taWNTdHJpbmcmKTsKLSAgICB2
aXJ0dWFsIGJvb2wgaXNTZWxlY3RWYWxpZCgpIGNvbnN0OworICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nJiBzZWxlY3QoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RWYWxp
ZCgpOworICAgIHZpcnR1YWwgY29uc3QgQ1NTU2VsZWN0b3JMaXN0JiBzZWxlY3Rvckxpc3QoKTsK
IAogcHJvdGVjdGVkOgogICAgIEhUTUxDb250ZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQqKTsKQEAgLTU2LDE2ICs1OCw0MCBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIE9WRVJS
SURFOworICAgIHZvaWQgZW5zdXJlU2VsZWN0UGFyc2VkKCk7CisgICAgYm9vbCB2YWxpZGF0ZVNl
bGVjdCgpIGNvbnN0OwogCiAgICAgYm9vbCBtX3JlZ2lzdGVyZWRXaXRoU2hhZG93Um9vdDsKKwor
ICAgIGJvb2wgbV9zaG91bGRQYXJzZVNlbGVjdG9yTGlzdDsKKyAgICBib29sIG1faXNWYWxpZFNl
bGVjdG9yOworICAgIENTU1NlbGVjdG9yTGlzdCBtX3NlbGVjdG9yTGlzdDsKIH07CiAKK2lubGlu
ZSB2b2lkIEhUTUxDb250ZW50RWxlbWVudDo6c2V0U2VsZWN0KGNvbnN0IEF0b21pY1N0cmluZyYg
c2VsZWN0VmFsdWUpCit7CisgICAgc2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c2VsZWN0QXR0ciwg
c2VsZWN0VmFsdWUpOworICAgIG1fc2hvdWxkUGFyc2VTZWxlY3Rvckxpc3QgPSB0cnVlOworfQor
CitpbmxpbmUgY29uc3QgQ1NTU2VsZWN0b3JMaXN0JiBIVE1MQ29udGVudEVsZW1lbnQ6OnNlbGVj
dG9yTGlzdCgpCit7CisgICAgZW5zdXJlU2VsZWN0UGFyc2VkKCk7CisgICAgcmV0dXJuIG1fc2Vs
ZWN0b3JMaXN0OworfQorCiBpbmxpbmUgYm9vbCBpc0hUTUxDb250ZW50RWxlbWVudChjb25zdCBO
b2RlKiBub2RlKQogewogICAgIEFTU0VSVChub2RlKTsKICAgICByZXR1cm4gbm9kZS0+aGFzVGFn
TmFtZShIVE1MQ29udGVudEVsZW1lbnQ6OmNvbnRlbnRUYWdOYW1lKG5vZGUtPmRvY3VtZW50KCkp
KTsKIH0KIAoraW5saW5lIEhUTUxDb250ZW50RWxlbWVudCogdG9IVE1MQ29udGVudEVsZW1lbnQo
Tm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQoIW5vZGUgfHwgaXNIVE1MQ29udGVudEVsZW1lbnQo
bm9kZSkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MQ29udGVudEVsZW1lbnQqPihub2Rl
KTsKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0hUTUxTaGFkb3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hU
TUxTaGFkb3dFbGVtZW50LmNwcAppbmRleCA3ZDdlNDE1MjlmYmRmMTZmMTMwNDA4ZWUyMzJmMTk4
YjgyODM1MjY0Li5kYTE4YmE4ZWFlNWU0YjI0ZmU1YWZjNjY0OTc5ZTZiMmQ1YTU5NjRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MU2hhZG93RWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTFNoYWRvd0VsZW1lbnQuY3BwCkBA
IC04Nyw0ICs4NywxMCBAQCB2b2lkIEhUTUxTaGFkb3dFbGVtZW50OjpyZW1vdmVkRnJvbShDb250
YWluZXJOb2RlKiBpbnNlcnRpb25Qb2ludCkKICAgICBJbnNlcnRpb25Qb2ludDo6cmVtb3ZlZEZy
b20oaW5zZXJ0aW9uUG9pbnQpOwogfQogCitjb25zdCBDU1NTZWxlY3Rvckxpc3QmIEhUTUxTaGFk
b3dFbGVtZW50OjplbXB0eVNlbGVjdG9yTGlzdCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChDU1NTZWxlY3Rvckxpc3QsIHNlbGVjdG9yTGlzdCwgKENTU1NlbGVjdG9yTGlzdCgpKSk7Cisg
ICAgcmV0dXJuIHNlbGVjdG9yTGlzdDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTFNoYWRvd0VsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxTaGFkb3dFbGVtZW50LmgKaW5kZXggYmFj
MmI5MmI1Nzk2MWIyM2RmY2MyZTMyZTFmNTViMmQ1N2UzMjY0NS4uODcwNTk4OTZmNzdkMjAyM2Mw
ZjJhZjFjNjg4NDM3MzNkZjE3MTNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvSFRNTFNoYWRvd0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9IVE1MU2hhZG93RWxlbWVudC5oCkBAIC00Miw4ICs0Miw5IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgfkhUTUxTaGFkb3dFbGVtZW50KCk7CiAKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIHNl
bGVjdCgpIGNvbnN0OwotICAgIGJvb2wgaXNTZWxlY3RWYWxpZCgpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2VsZWN0KCkg
Y29uc3Q7CisgICAgdmlydHVhbCBib29sIGlzU2VsZWN0VmFsaWQoKSBPVkVSUklERSB7IHJldHVy
biB0cnVlOyB9CisgICAgdmlydHVhbCBjb25zdCBDU1NTZWxlY3Rvckxpc3QmIHNlbGVjdG9yTGlz
dCgpIHsgcmV0dXJuIGVtcHR5U2VsZWN0b3JMaXN0KCk7IH0KIAogcHJvdGVjdGVkOgogICAgIHZp
cnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVy
Tm9kZSopIE9WRVJSSURFOwpAQCAtNTIsNiArNTMsOCBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgog
ICAgIEhUTUxTaGFkb3dFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwog
CisgICAgc3RhdGljIGNvbnN0IENTU1NlbGVjdG9yTGlzdCYgZW1wdHlTZWxlY3Rvckxpc3QoKTsK
KwogICAgIGJvb2wgbV9yZWdpc3RlcmVkV2l0aFNoYWRvd1Jvb3Q7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbnNlcnRpb25Qb2ludC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuaAppbmRleCAyNDNhMDhjMThhMzQ2MTAz
MDM5NWQ5YTViYTdkMjA1NTliNjcxMWE5Li4yM2RhZDhkY2E3MDgxMjMxODIxZjk3ZDhiZjMwNGQ3
NzMzMzI3NmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbnNlcnRp
b25Qb2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50
LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpZm5kZWYgSW5zZXJ0aW9uUG9pbnRfaAogI2RlZmluZSBJ
bnNlcnRpb25Qb2ludF9oCiAKKyNpbmNsdWRlICJDU1NTZWxlY3Rvckxpc3QuaCIKICNpbmNsdWRl
ICJDb250ZW50RGlzdHJpYnV0b3IuaCIKICNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5j
bHVkZSAiSFRNTEVsZW1lbnQuaCIKQEAgLTUzLDcgKzU0LDggQEAgcHVibGljOgogICAgIFBhc3NS
ZWZQdHI8Tm9kZUxpc3Q+IGdldERpc3RyaWJ1dGVkTm9kZXMoKSBjb25zdDsKIAogICAgIHZpcnR1
YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzZWxlY3QoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBi
b29sIGlzU2VsZWN0VmFsaWQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGlzU2VsZWN0
VmFsaWQoKSA9IDA7CisgICAgdmlydHVhbCBjb25zdCBDU1NTZWxlY3Rvckxpc3QmIHNlbGVjdG9y
TGlzdCgpID0gMDsKIAogICAgIGJvb2wgcmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3Q7CiAg
ICAgdm9pZCBzZXRSZXNldFN0eWxlSW5oZXJpdGFuY2UoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKaW5kZXggZTRkMzA4NDEwYTA2MzM2OGZjZWM2MGMyZGVjMzkyYmY3ZTJl
OWRhNy4uN2JlMThkOWJlNWI3NTVkNGNhZjc5YWE4ZTc0Zjg0ODUyODgwNjZiZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMzA2LDYgKzMwNiwzOSBAQCBOb2RlKiBJbnRl
cm5hbHM6OnBhcmVudFRyZWVTY29wZShOb2RlKiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykKICAg
ICByZXR1cm4gcGFyZW50VHJlZVNjb3BlID8gcGFyZW50VHJlZVNjb3BlLT5yb290Tm9kZSgpIDog
MDsKIH0KIAorYm9vbCBJbnRlcm5hbHM6Omhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhFbGVtZW50
KiBob3N0LCBjb25zdCBTdHJpbmcmIGlkVmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAg
IGlmICghaG9zdCB8fCAhaG9zdC0+c2hhZG93KCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FD
Q0VTU19FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIGhvc3QtPnNoYWRvdygp
LT5lbnN1cmVTZWxlY3RGZWF0dXJlU2V0Q29sbGVjdGVkKCk7CisgICAgcmV0dXJuIGhvc3QtPnNo
YWRvdygpLT5oYXNTZWxlY3RvckZvcklkKGlkVmFsdWUpOworfQorCitib29sIEludGVybmFsczo6
aGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KEVsZW1lbnQqIGhvc3QsIGNvbnN0IFN0cmluZyYg
Y2xhc3NOYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIWhvc3QgfHwgIWhvc3Qt
PnNoYWRvdygpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICBy
ZXR1cm4gMDsKKyAgICB9CisKKyAgICBob3N0LT5zaGFkb3coKS0+ZW5zdXJlU2VsZWN0RmVhdHVy
ZVNldENvbGxlY3RlZCgpOworICAgIHJldHVybiBob3N0LT5zaGFkb3coKS0+aGFzU2VsZWN0b3JG
b3JDbGFzcyhjbGFzc05hbWUpOworfQorCitib29sIEludGVybmFsczo6aGFzU2VsZWN0b3JGb3JB
dHRyaWJ1dGVJblNoYWRvdyhFbGVtZW50KiBob3N0LCBjb25zdCBTdHJpbmcmIGF0dHJpYnV0ZU5h
bWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghaG9zdCB8fCAhaG9zdC0+c2hhZG93
KCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybiAw
OworICAgIH0KKworICAgIGhvc3QtPnNoYWRvdygpLT5lbnN1cmVTZWxlY3RGZWF0dXJlU2V0Q29s
bGVjdGVkKCk7CisgICAgcmV0dXJuIGhvc3QtPnNoYWRvdygpLT5oYXNTZWxlY3RvckZvckF0dHJp
YnV0ZShhdHRyaWJ1dGVOYW1lKTsKK30KKwogYm9vbCBJbnRlcm5hbHM6Omhhc1NoYWRvd0luc2Vy
dGlvblBvaW50KGNvbnN0IE5vZGUqIHJvb3QsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogewog
ICAgIGlmIChyb290ICYmIHJvb3QtPmlzU2hhZG93Um9vdCgpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKaW5kZXggMjExMTczOTdjODExYzg1OGYzYjFmNDlmYzU3ZDE2YWMyNWE3MTEyMS4u
NTQ0ZDMxZTg4OTQ1MGU1NTFkN2M4YmQyOTEzNmM3YzcxMmEwNGVlNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oCkBAIC05Niw2ICs5Niw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzVmFs
aWRDb250ZW50U2VsZWN0KEVsZW1lbnQqIGluc2VydGlvblBvaW50LCBFeGNlcHRpb25Db2RlJik7
CiAgICAgTm9kZSogdHJlZVNjb3BlUm9vdE5vZGUoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICBOb2RlKiBwYXJlbnRUcmVlU2NvcGUoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBib29s
IGhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhFbGVtZW50KiBob3N0LCBjb25zdCBTdHJpbmcmIGlk
VmFsdWUsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBib29sIGhhc1NlbGVjdG9yRm9yQ2xhc3NJblNo
YWRvdyhFbGVtZW50KiBob3N0LCBjb25zdCBTdHJpbmcmIGNsYXNzTmFtZSwgRXhjZXB0aW9uQ29k
ZSYpOworICAgIGJvb2wgaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhFbGVtZW50KiBo
b3N0LCBjb25zdCBTdHJpbmcmIGF0dHJpYnV0ZU5hbWUsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAg
IGJvb2wgYXR0YWNoZWQoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsCmluZGV4IDdhNWFiN2I5MGVkYjY0YjY1MGRjMzQzN2I0M2ExZDY5OTcx
YjAxYWQuLjMwNGU2NGM4ZWVjZDAwZjUzMjNlZGM2MmEwYWVmOGVmODMxN2JlZDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTU5LDYgKzU5LDkgQEAKICAgICBib29sZWFu
IGlzVmFsaWRDb250ZW50U2VsZWN0KGluIEVsZW1lbnQgY29udGVudEVsZW1lbnQpIHJhaXNlcyhE
T01FeGNlcHRpb24pOwogICAgIE5vZGUgdHJlZVNjb3BlUm9vdE5vZGUoaW4gTm9kZSBub2RlKSBy
YWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgTm9kZSBwYXJlbnRUcmVlU2NvcGUoaW4gTm9kZSBu
b2RlKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgYm9vbGVhbiBoYXNTZWxlY3RvckZvcklk
SW5TaGFkb3coaW4gRWxlbWVudCBob3N0LCBpbiBET01TdHJpbmcgaWQpIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKKyAgICBib29sZWFuIGhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhpbiBFbGVt
ZW50IGhvc3QsIGluIERPTVN0cmluZyBjbGFzc05hbWUpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsK
KyAgICBib29sZWFuIGhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaW4gRWxlbWVudCBo
b3N0LCBpbiBET01TdHJpbmcgYXR0cmlidXRlTmFtZSkgcmFpc2VzIChET01FeGNlcHRpb24pOwog
CiAgICAgTm9kZSBuZXh0U2libGluZ0J5V2Fsa2VyKGluIE5vZGUgbm9kZSkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgTm9kZSBmaXJzdENoaWxkQnlXYWxrZXIoaW4gTm9kZSBub2RlKSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5m
aWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IGQ4MmYxNzk4NTEx
YzI2ZDQ3YmY1NDU0NTA0ZmMwNjY1ZmVjOTZiZTkuLjk0ZDQ2Y2M3ODc5Yzg2YzNlZmJlMmVhMWY0
MzExMjNkNzFkMzI5NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0
ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtNTYsNiArNTYsNyBA
QCBfWk43V2ViQ29yZTEyVGV4dEl0ZXJhdG9yMjZyYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0aEVQ
TlNfMTNDb250YWluZXJOb2RlRWlpYjsKIF9aTjdXZWJDb3JlMTJUZXh0SXRlcmF0b3IyOWdldExv
Y2F0aW9uQW5kTGVuZ3RoRnJvbVJhbmdlRVBOU183RWxlbWVudEVQS05TXzVSYW5nZUVSalM2XzsK
IF9aTjdXZWJDb3JlMTJUZXh0SXRlcmF0b3IyOWdldExvY2F0aW9uQW5kTGVuZ3RoRnJvbVJhbmdl
RVBOU183RWxlbWVudEVQS05TXzVSYW5nZUVSbVM2XzsKIF9aTjdXZWJDb3JlMTJQcmludENvbnRl
eHQyMHBhZ2VOdW1iZXJGb3JFbGVtZW50RVBOU183RWxlbWVudEVSS05TXzlGbG9hdFNpemVFOwor
X1pON1dlYkNvcmUxM0VsZW1lbnRTaGFkb3czMWVuc3VyZVNlbGVjdEZlYXR1cmVTZXRDb2xsZWN0
ZWRFdjsKIF9aTjdXZWJDb3JlMTNjcmVhdGVXcmFwcGVyRVBOM0pTQzlFeGVjU3RhdGVFUE5TXzE3
SlNET01HbG9iYWxPYmplY3RFUE5TXzROb2RlRTsKIF9aTjdXZWJDb3JlMTRDbGllbnRSZWN0TGlz
dEMxRVJLTjNXVEY2VmVjdG9ySU5TXzlGbG9hdFF1YWRFTGowRUVFOwogX1pON1dlYkNvcmUxNENs
aWVudFJlY3RMaXN0QzFFUktOM1dURjZWZWN0b3JJTlNfOUZsb2F0UXVhZEVMbTBFRUU7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggY2RmNzA1ODMxNmE1MDBiN2UyYWE5MDVmMTU4NTQxODk3OGZhZWZjZi4uYTlhYzY0ZmJhZTAx
NGNkZmM4MGNhNDE1OTcwYjQ1Yjc1ZDNkZjZjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEy
LTExLTA4ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBbU2hhZG93XSBFbGVtZW50U2hhZG93IHNob3VsZCBoYXZlIFJ1bGVGZWF0dXJlU2V0IGZvciBz
ZWxlY3QgYXR0cmlidXRlIHNlbGVjdG9ycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwMTE4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1zZWxlY3QtYXR0cmli
dXRlLWZlYXR1cmVzZXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9z
aGFkb3cvc2hhZG93LXNlbGVjdC1hdHRyaWJ1dGUtZmVhdHVyZXNldC5odG1sOiBBZGRlZC4KKwog
MjAxMi0xMS0wNyAgSGF5YXRvIEl0byAgPGhheWF0b0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93LXNlbGVjdC1hdHRyaWJ1dGUtZmVhdHVyZXNldC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXNlbGVjdC1hdHRyaWJ1dGUtZmVhdHVy
ZXNldC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2NkYTQ0ZDkwNGQyMzFlZjQ2MDcwNjU2ODJi
NmYwZjE4NjliYjAyNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3ctc2VsZWN0LWF0dHJpYnV0ZS1mZWF0dXJlc2V0LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDc1IEBACitJZCBzaG91bGQgYmUgY29sbGVjdGVkCitQQVNTIGludGVybmFscy5oYXNT
ZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIHRydWUKK1BBU1MgaW50ZXJuYWxz
Lmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmFyIikgaXMgZmFsc2UKK1BBU1MgaW50
ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiaG9zdCIpIGlzIGZhbHNlCisK
K0NsYXNzIHNob3VsZCBiZSBjb2xsZWN0ZWQKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9y
Q2xhc3NJblNoYWRvdyhob3N0LCAiZm9vIikgaXMgdHJ1ZQorUEFTUyBpbnRlcm5hbHMuaGFzU2Vs
ZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJob3N0IikgaXMgZmFsc2UKKworQXR0cmlidXRl
IHNob3VsZCBiZSBjb2xsZWN0ZWQKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmli
dXRlSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIHRydWUKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVj
dG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImhvc3QiKSBpcyBmYWxzZQorCitTZWxlY3Qg
YXR0cmlidXRlIG1pZ2h0IGhhdmUgc2V2ZXJhbCBzZWxlY3RvcnMKK1BBU1MgaW50ZXJuYWxzLmhh
c1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9vIikgaXMgdHJ1ZQorUEFTUyBpbnRlcm5h
bHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXIiKSBpcyBmYWxzZQorUEFTUyBp
bnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXoiKSBpcyBmYWxzZQor
UEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJmb28iKSBp
cyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3Qs
ICJiYXIiKSBpcyB0cnVlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFk
b3coaG9zdCwgImJheiIpIGlzIGZhbHNlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckF0
dHJpYnV0ZUluU2hhZG93KGhvc3QsICJmb28iKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFz
U2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiYmFyIikgaXMgZmFsc2UKK1BBU1Mg
aW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImJheiIpIGlz
IHRydWUKKworRG9uJ3QgY291bnQgc2hhZG93IGVsZW1lbnQKK1BBU1MgaW50ZXJuYWxzLmhhc1Nl
bGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9vIikgaXMgZmFsc2UKK1BBU1MgaW50ZXJuYWxz
Lmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmFyIikgaXMgZmFsc2UKK1BBU1MgaW50
ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmF6IikgaXMgZmFsc2UKK1BB
U1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0LCAiZm9vIikgaXMg
ZmFsc2UKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0LCAi
YmFyIikgaXMgZmFsc2UKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRv
dyhob3N0LCAiYmF6IikgaXMgZmFsc2UKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0
cmlidXRlSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIGZhbHNlCitQQVNTIGludGVybmFscy5oYXNT
ZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJiYXIiKSBpcyBmYWxzZQorUEFTUyBp
bnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiYmF6IikgaXMg
ZmFsc2UKKworQ29tcGxleCBjYXNlIGZvciBzaW5nbGUgU2hhZG93Um9vdAorUEFTUyBpbnRlcm5h
bHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJmb28iKSBpcyBmYWxzZQorUEFTUyBp
bnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJmb28iKSBpcyBmYWxz
ZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAi
Zm9vIikgaXMgdHJ1ZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNo
YWRvdyhob3N0LCAicGl5byIpIGlzIGZhbHNlCisKK0Fub3RoZXIgY29tcGxleCBjYXNlIGZvciBz
aW5nbGUgU2hhZG93Um9vdAorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93
KGhvc3QsICJmb28iKSBpcyB0cnVlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNz
SW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIHRydWUKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9y
Rm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIHRydWUKKworTXVsdGlwbGUgU2hh
ZG93Um9vdCBjYXNlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9z
dCwgImZvbyIpIGlzIHRydWUKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRv
dyhob3N0LCAiYmFyIikgaXMgdHJ1ZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZElu
U2hhZG93KGhvc3QsICJiYXoiKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JG
b3JDbGFzc0luU2hhZG93KGhvc3QsICJmb28iKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFz
U2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJiYXIiKSBpcyB0cnVlCitQQVNTIGludGVy
bmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImJheiIpIGlzIGZhbHNlCitQ
QVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJmb28i
KSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRv
dyhob3N0LCAiYmFyIikgaXMgZmFsc2UKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0
cmlidXRlSW5TaGFkb3coaG9zdCwgImJheiIpIGlzIHRydWUKKworRHluYW1pYyBzZWxlY3QgYXR0
cmlidXRlIHVwZGF0ZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhv
c3QsICJmb28iKSBpcyB0cnVlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFk
b3coaG9zdCwgImJhciIpIGlzIGZhbHNlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklk
SW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIGZhbHNlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3Rv
ckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIpIGlzIHRydWUKKworTmVzdGVkIFNoYWRvd0RPTSBj
YXNlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImZvbyIp
IGlzIHRydWUKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAi
YmFyIikgaXMgdHJ1ZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhv
c3QsICJiYXoiKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hh
ZG93KGhvc3QsICJmb28iKSBpcyB0cnVlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklk
SW5TaGFkb3coaG9zdCwgImJhciIpIGlzIGZhbHNlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3Rv
ckZvcklkSW5TaGFkb3coaG9zdCwgImJheiIpIGlzIHRydWUKKworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctc2VsZWN0LWF0dHJpYnV0ZS1mZWF0dXJlc2V0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXNlbGVjdC1hdHRyaWJ1dGUtZmVh
dHVyZXNldC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyYTU1MTQ5NTY2YTg4MmM1NzljOWQ3YTMzZWJkOWRh
Y2E2OWYwMzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LXNlbGVjdC1hdHRyaWJ1dGUtZmVhdHVyZXNldC5odG1sCkBAIC0wLDAgKzEsMTc1IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ct
ZG9tLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2IGlkPSJjb250YWluZXIi
PjwvZGl2PgorPHByZSBpZD0iY29uc29sZSI+PC9wcmU+CisKKzxzY3JpcHQ+CitmdW5jdGlvbiB0
ZXN0Q2FzZShmKQoreworICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnJzsKKyAgICBjb250YWlu
ZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2hvc3QnfSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoKSkpOworICAgIHNo
YWRvd1Jvb3QgPSBpbnRlcm5hbHMuc2hhZG93Um9vdChob3N0KTsKKworICAgIGYoKTsKKyAgICBk
ZWJ1ZygnJyk7Cit9CisKK3Rlc3RDYXNlKGZ1bmN0aW9uKCkKK3sKKyAgICBkZWJ1ZygnSWQgc2hv
dWxkIGJlIGNvbGxlY3RlZCcpOworCisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRl
bnQgc2VsZWN0PSIjZm9vIj48L2NvbnRlbnQ+JzsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhh
c1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9vIiknLCAndHJ1ZScpOworICAgIHNob3Vs
ZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXIiKScsICdm
YWxzZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93
KGhvc3QsICJob3N0IiknLCAnZmFsc2UnKTsKK30pOworCit0ZXN0Q2FzZShmdW5jdGlvbigpCit7
CisgICAgZGVidWcoJ0NsYXNzIHNob3VsZCBiZSBjb2xsZWN0ZWQnKTsKKworICAgIHNoYWRvd1Jv
b3QuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iLmZvbyI+PC9jb250ZW50Pic7CisgICAg
c2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImZv
byIpJywgJ3RydWUnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xh
c3NJblNoYWRvdyhob3N0LCAiaG9zdCIpJywgJ2ZhbHNlJyk7Cit9KTsKKwordGVzdENhc2UoZnVu
Y3Rpb24oKQoreworICAgIGRlYnVnKCdBdHRyaWJ1dGUgc2hvdWxkIGJlIGNvbGxlY3RlZCcpOwor
CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSJkaXZbZm9vXSI+
PC9jb250ZW50Pic7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJp
YnV0ZUluU2hhZG93KGhvc3QsICJmb28iKScsICd0cnVlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVy
bmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJob3N0IiknLCAnZmFs
c2UnKTsKK30pOworCit0ZXN0Q2FzZShmdW5jdGlvbigpCit7CisgICAgZGVidWcoJ1NlbGVjdCBh
dHRyaWJ1dGUgbWlnaHQgaGF2ZSBzZXZlcmFsIHNlbGVjdG9ycycpOworCisgICAgc2hhZG93Um9v
dC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSIjZm9vLC5iYXIsZGl2W2Jhel0iPjwvY29u
dGVudD4nOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93
KGhvc3QsICJmb28iKScsICd0cnVlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxl
Y3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIpJywgJ2ZhbHNlJyk7CisgICAgc2hvdWxkQmUo
J2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJheiIpJywgJ2ZhbHNl
Jyk7CisKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRv
dyhob3N0LCAiZm9vIiknLCAnZmFsc2UnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1Nl
bGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0LCAiYmFyIiknLCAndHJ1ZScpOworICAgIHNob3Vs
ZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJiYXoiKScs
ICdmYWxzZScpOworCisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJp
YnV0ZUluU2hhZG93KGhvc3QsICJmb28iKScsICdmYWxzZScpOworICAgIHNob3VsZEJlKCdpbnRl
cm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiYmFyIiknLCAnZmFs
c2UnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5T
aGFkb3coaG9zdCwgImJheiIpJywgJ3RydWUnKTsKK30pOworCit0ZXN0Q2FzZShmdW5jdGlvbigp
Cit7CisgICAgZGVidWcoJ0RvblwndCBjb3VudCBzaGFkb3cgZWxlbWVudCcpOworCisgICAgc2hh
ZG93Um9vdC5pbm5lckhUTUwgPSAnPHNoYWRvdyBzZWxlY3Q9IiNmb28sLmJhcixkaXZbYmF6XSI+
PC9zaGFkb3c+JzsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNo
YWRvdyhob3N0LCAiZm9vIiknLCAnZmFsc2UnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhh
c1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmFyIiknLCAnZmFsc2UnKTsKKyAgICBzaG91
bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmF6IiknLCAn
ZmFsc2UnKTsKKworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0lu
U2hhZG93KGhvc3QsICJmb28iKScsICdmYWxzZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMu
aGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJiYXIiKScsICdmYWxzZScpOworICAg
IHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJi
YXoiKScsICdmYWxzZScpOworCisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZv
ckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJmb28iKScsICdmYWxzZScpOworICAgIHNob3VsZEJl
KCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiYmFyIikn
LCAnZmFsc2UnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmli
dXRlSW5TaGFkb3coaG9zdCwgImJheiIpJywgJ2ZhbHNlJyk7Cit9KTsKKwordGVzdENhc2UoZnVu
Y3Rpb24oKQoreworICAgIGRlYnVnKCdDb21wbGV4IGNhc2UgZm9yIHNpbmdsZSBTaGFkb3dSb290
Jyk7CisKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8ZGl2PjxkaXY+PC9kaXY+PGNvbnRl
bnQgc2VsZWN0PSIqIj48L2NvbnRlbnQ+PGRpdj48Y29udGVudCBzZWxlY3Q9ImRpdltmb289cGl5
b10iPjwvY29udGVudD48L2Rpdj4nOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0
b3JGb3JJZEluU2hhZG93KGhvc3QsICJmb28iKScsICdmYWxzZScpOworICAgIHNob3VsZEJlKCdp
bnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJmb28iKScsICdmYWxz
ZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNo
YWRvdyhob3N0LCAiZm9vIiknLCAndHJ1ZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFz
U2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAicGl5byIpJywgJ2ZhbHNlJyk7Cit9
KTsKKwordGVzdENhc2UoZnVuY3Rpb24oKQoreworICAgIGRlYnVnKCdBbm90aGVyIGNvbXBsZXgg
Y2FzZSBmb3Igc2luZ2xlIFNoYWRvd1Jvb3QnKTsKKworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1M
ID0gJzxjb250ZW50IHNlbGVjdD0iI2ZvbywuZm9vLGRpdltmb29dIj48L2NvbnRlbnQ+JzsKKyAg
ICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9v
IiknLCAndHJ1ZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFz
c0luU2hhZG93KGhvc3QsICJmb28iKScsICd0cnVlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFs
cy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJmb28iKScsICd0cnVlJyk7
Cit9KTsKKwordGVzdENhc2UoZnVuY3Rpb24oKQoreworICAgIGRlYnVnKCdNdWx0aXBsZSBTaGFk
b3dSb290IGNhc2UnKTsKKworICAgIHZhciBhbm90aGVyU2hhZG93Um9vdCA9IG5ldyBXZWJLaXRT
aGFkb3dSb290KGhvc3QpOworCisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQg
c2VsZWN0PSIjZm9vIj48L2NvbnRlbnQ+JzsKKyAgICBhbm90aGVyU2hhZG93Um9vdC5pbm5lckhU
TUwgPSAnPGNvbnRlbnQgc2VsZWN0PSIjYmFyIj48L2NvbnRlbnQ+PGNvbnRlbnQgc2VsZWN0PSJk
aXZbYmF6XSwuYmFyIj48L2NvbnRlbnQ+JzsKKworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFz
U2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJmb28iKScsICd0cnVlJyk7CisgICAgc2hvdWxk
QmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIpJywgJ3Ry
dWUnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyho
b3N0LCAiYmF6IiknLCAnZmFsc2UnKTsKKworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2Vs
ZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJmb28iKScsICdmYWxzZScpOworICAgIHNob3Vs
ZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJiYXIiKScs
ICd0cnVlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5T
aGFkb3coaG9zdCwgImJheiIpJywgJ2ZhbHNlJyk7CisKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxz
Lmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImZvbyIpJywgJ2ZhbHNlJyk7
CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93
KGhvc3QsICJiYXIiKScsICdmYWxzZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2Vs
ZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiYmF6IiknLCAndHJ1ZScpOworfSk7CisK
K3Rlc3RDYXNlKGZ1bmN0aW9uKCkKK3sKKyAgICBkZWJ1ZygnRHluYW1pYyBzZWxlY3QgYXR0cmli
dXRlIHVwZGF0ZScpOworCisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2Vs
ZWN0PSIjZm9vIj48L2NvbnRlbnQ+JzsKKworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2Vs
ZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJmb28iKScsICd0cnVlJyk7CisgICAgc2hvdWxkQmUo
J2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIpJywgJ2ZhbHNl
Jyk7CisKKyAgICB2YXIgY29udGVudCA9IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignY29udGVu
dCcpOworICAgIGNvbnRlbnQuc2VsZWN0ID0gJyNiYXInOworCisgICAgc2hvdWxkQmUoJ2ludGVy
bmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImZvbyIpJywgJ2ZhbHNlJyk7Cisg
ICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJh
ciIpJywgJ3RydWUnKTsKK30pOworCit0ZXN0Q2FzZShmdW5jdGlvbigpCit7CisgICAgZGVidWco
J05lc3RlZCBTaGFkb3dET00gY2FzZScpOworCisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAn
PGNvbnRlbnQgc2VsZWN0PSIjZm9vIj48L2NvbnRlbnQ+JzsKKworICAgIHZhciBkaXYgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB2YXIgbmVzdGVkU2hhZG93Um9vdCA9IG5l
dyBXZWJLaXRTaGFkb3dSb290KGRpdik7CisgICAgbmVzdGVkU2hhZG93Um9vdC5pbm5lckhUTUwg
PSAnPGNvbnRlbnQgc2VsZWN0PSIjYmFyIj48L2NvbnRlbnQ+JzsKKyAgICBzaGFkb3dSb290LmFw
cGVuZENoaWxkKGRpdik7CisKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9y
SWRJblNoYWRvdyhob3N0LCAiZm9vIiknLCAndHJ1ZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5h
bHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXIiKScsICd0cnVlJyk7CisgICAg
c2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJheiIp
JywgJ2ZhbHNlJyk7CisKKyAgICB2YXIgY29udGVudCA9IG5lc3RlZFNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvcignY29udGVudCcpOworICAgIGNvbnRlbnQuc2VsZWN0ID0gJyNiYXonOworCisgICAg
c2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImZvbyIp
JywgJ3RydWUnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNo
YWRvdyhob3N0LCAiYmFyIiknLCAnZmFsc2UnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhh
c1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmF6IiknLCAndHJ1ZScpOworfSk7CisKK2Zp
bmlzaEpTVGVzdCgpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggZWE4Y2Y5ZGY1ZGVkMTFmMDc5NjMyYjdkOTVj
MWYxZTkwYTMzZTEwZi4uMTcyMzQxZDEzMWY0NTgwMTVmMTU2NWEwOTgyYzQwNmU3ZDQ3NDAwZSAx
MDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDEyLTExLTA4ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBbU2hhZG93XSBFbGVtZW50U2hhZG93IHNob3VsZCBoYXZlIFJ1bGVGZWF0dXJlU2V0IGZv
ciBzZWxlY3QgYXR0cmlidXRlIHNlbGVjdG9ycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTE4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZXMgbmVjZXNzYXJ5IHN5bWJvbHMuCisKKyAgICAg
ICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyOgorCiAyMDEyLTExLTA3ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbU2hhZG93XSBV
c2Ugc2V0UHNldWRvKCkgaW5zdGVhZCBvZiBzZXRTaGFkb3dQc2V1ZG9JZCgpLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173185</attachid>
            <date>2012-11-08 20:18:09 -0800</date>
            <delta_ts>2012-11-08 23:11:12 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-101180-20121109131617.patch</filename>
            <type>text/plain</type>
            <size>35212</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzOTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTI4OWY5ZTM0OGRjZTgx
OTkxYWRhYjZkOTY0ZDVhZjc2ZTA0Y2U0Ni4uNTU5Yzk1MjFmNWY5YzQ3NTQ5MDY1NTI4MjA3NjZj
ZDJmYzM3ZTc2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDEyLTExLTA4ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbU2hhZG93XSBF
bGVtZW50U2hhZG93IHNob3VsZCBoYXZlIFJ1bGVGZWF0dXJlU2V0IGZvciBzZWxlY3QgYXR0cmli
dXRlIHNlbGVjdG9ycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwMTE4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgaXMgYSBwcmVwYXJhdGlvbiBwYXRjaCBmb3IgQnVnIDEwMDQ1MS4KKworICAg
ICAgICBXZSBwcmVzZXJ2ZSBSdWxlRmVhdHVyZVNldCBjb2xsZWN0ZWQgZnJvbSBzZWxlY3QgYXR0
cmlidXRlcyBpbiBTaGFkb3dET00uCisgICAgICAgIFdoZW4gYW4gZWxlbWVudCBhdHRyaWJ1dGUg
aXMgY2hhbmdlZCwgd2UgbWlnaHQgaGF2ZSB0byBpbnZhbGlkYXRlIGNvbnRlbnQgZGlzdHJpYnV0
aW9uLAorICAgICAgICBob3dldmVyIGl0J3MgaGlnaCBjb3N0IG9wZXJhdGlvbi4gU28gd2Ugd291
bGQgbGlrZSB0byBjaGVjayBSdWxlRmVhdHVyZVNldCB1c2VkIGluCisgICAgICAgIHNlbGVjdCBh
dHRyaWJ1dGVzIHRvIGRldGVybWluZSB3ZSByZWFsbHkgbmVlZCB0byBpbnZhbGlkYXRlIGRpc3Ry
aWJ1dGlvbi4KKworICAgICAgICBMaWtlIFN0eWxlUmVzb2x2ZXIsIEVsZW1lbnRTaGFkb3cgaGFz
IHNldmVyYWwgcnVsZSBmZWF0dXJlcy4gV2hlbiBuZXN0ZWQgU2hhZG93RE9NIGlzIHVzZWQsCisg
ICAgICAgIGZpcnN0IHdlIGNvbGxlY3QgZmVhdHVyZXMgaW4gbmVzdGVkIFNoYWRvd0RPTSwgYW5k
IG1lcmdlIGl0IHRvIHRoZSBwYXJlbnQgU2hhZG93RE9NLgorICAgICAgICBGb3IgdGhlIHBlcmZv
cm1hbmNlIHJlYXNvbiwgd2UgaGF2ZSBhIGZsYWcgdG8gY2hlY2sgd2hldGhlciB3ZSBuZWVkIHRv
IGNvbGxlY3QgZmVhdHVyZXMgYWdhaW4uCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1zZWxlY3QtYXR0cmlidXRlLWZlYXR1cmVzZXQuaHRtbAorCisgICAgICAgICogV2Vi
Q29yZS5leHAuaW46CisgICAgICAgICogZG9tL0VsZW1lbnRTaGFkb3cuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6RWxlbWVudFNoYWRvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50U2hhZG93OjpzZXRTaG91bGRDb2xsZWN0U2VsZWN0RmVhdHVyZVNldCk6IEVuYWJs
ZSBhIGZsYWcgdG8gY29sbGVjdCBmZWF0dXJlIHNldCBvZiBkZXNjZW5kYW50CisgICAgICAgIG5v
ZGVzIChhbmQgdGhlaXIgU2hhZG93RE9NKS4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6ZW5zdXJlU2VsZWN0RmVhdHVyZVNldENvbGxlY3RlZCk6
CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hhZG93Ojpjb2xsZWN0U2VsZWN0RmVhdHVyZVNl
dEZyb20pOiBDb2xsZWN0IFJ1bGVGZWF0dXJlU2V0IGZyb20gYWxsIGRlc2NlbmRhbnQgTm9kZXMg
YW5kIHRoZWlyCisgICAgICAgIFNoYWRvd0RPTS4gV2UgbmVlZCB0byBjb2xsZWN0IGlkLCBjbGFz
cywgYW5kIGF0dHJpYnV0ZSBuYW1lcy4KKyAgICAgICAgKiBkb20vRWxlbWVudFNoYWRvdy5oOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6c2hvdWxkQ29sbGVjdFNlbGVjdEZlYXR1
cmVTZXQpOgorICAgICAgICAoRWxlbWVudFNoYWRvdyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50U2hhZG93OjpoYXNTZWxlY3RvckZvcklkKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6aGFzU2VsZWN0b3JGb3JDbGFzcyk6CisgICAgICAg
IChXZWJDb3JlOjpFbGVtZW50U2hhZG93OjpoYXNTZWxlY3RvckZvckF0dHJpYnV0ZSk6CisgICAg
ICAgICogaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOiBXaGVuIHNlbGVjdCBhdHRy
aWJ1dGUgaXMgY2hhbmdlZCwgZW5hYmxlIGEgZmxhZyB0byByZWNvbGxlY3QgZmVhdHVyZXMuCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6Omluc2VydGVkSW50byk6IFdlIGhh
dmUgdG8gcmVjb2xsZWN0IGZlYXR1cmVzIHdoZW4gSFRNTENvbnRlbnRFbGVtZW50IGlzIG1vdmVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRFbGVtZW50OjpyZW1vdmVkRnJvbSk6IGRp
dHRvLgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oOgorICAgICAg
ICAoV2ViQ29yZTo6dG9IVE1MQ29udGVudEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJu
YWxzOjpoYXNTZWxlY3RvckZvcklkSW5TaGFkb3cpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Omhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Omhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFk
b3cpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgIChJbnRlcm5hbHMp
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKworMjAxMi0xMS0wOCAgU2hpbnlh
IEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1JlZmFjdG9yaW5n
XSBFeHBvc2UgY29sbGVjdEZlYXR1cmVzRnJvbVNlbGVjdG9yIGZyb20gUnVsZVNldC5jcHAKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTY5MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIGV4cG9zZSBj
b2xsZWN0RmVhdHVyZXNGcm9tU2VsZWN0b3IgaW4gUnVsZVNldC5jcHAgdG8gdXNlIGl0IGZvciBj
b2xsZWN0aW5nIFNoYWRvd0RPTSBzZWxlY3QgYXR0cmlidXRlIGZlYXR1cmVzLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cywgc2ltcGxlIHJlZmFjdG9yaW5nLgorCisgICAgICAgICogY3NzL1J1bGVG
ZWF0dXJlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVGZWF0dXJlU2V0Ojpjb2xsZWN0RmVh
dHVyZXNGcm9tU2VsZWN0b3IpOiBNb3ZlZCBmcm9tIFJ1bGVTZXQuY3BwLgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogY3NzL1J1bGVGZWF0dXJlLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFJ1bGVGZWF0dXJlU2V0KToKKyAgICAgICAgKiBjc3MvUnVsZVNldC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjb2xsZWN0RmVhdHVyZXNGcm9tUnVsZURhdGEpOgorCiAyMDEyLTEx
LTA4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWVkIC4u
LklubGluZU1ldGhvZHMuaCBmaWxlcyB0byAuLi5JbmxpbmVzLmguCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNGY4
Mzg4NzdhMWJkMWQ3YzBhYjNkNDJlZDAwYmYxNWUyZDBhMmJjNC4uYmVjZmEyODI4Njk1Yjk3NDZm
Yjc1NjYyYjEzYjEwODEyNzQ0OGFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEy
LTExLTA4ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBbU2hhZG93XSBFbGVtZW50U2hhZG93IHNob3VsZCBoYXZlIFJ1bGVGZWF0dXJlU2V0IGZvciBz
ZWxlY3QgYXR0cmlidXRlIHNlbGVjdG9ycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwMTE4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogd2luL1dlYktpdDIuZGVmOgorICAgICAgICAqIHdpbi9XZWJL
aXQyQ0ZMaXRlLmRlZjoKKwogMjAxMi0xMS0wOCAgS3l1bmdUYWUgS2ltICA8a3RmLmtpbUBzYW1z
dW5nLmNvbT4KIAogICAgICAgICBbV0syXSBVbnVzZWQgcGFyYW1ldGVycyBvbiBMYXllclRyZWVS
ZW5kZXJlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggYTVmMjM2N2FiMTJlNTU0ZDQ4Zjhh
YzE0NTUyYWRhMGNlNjNmYTFjYS4uNjBkYTQ4N2Y5NzM1YzFhNjMzNjMzMWU4MDQ2MWY5YzYwNmY3
YjhhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTIxNSw2ICsyMTUsNyBAQCBfX1pON1dlYkNv
cmUxM0FYT2JqZWN0Q2FjaGU0MmdBY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5h
YmxlZEUKIF9fWk43V2ViQ29yZTEzQ2hhcmFjdGVyRGF0YTdzZXREYXRhRVJLTjNXVEY2U3RyaW5n
RVJpCiBfX1pON1dlYkNvcmUxM0NvbnRhaW5lck5vZGUxMWFwcGVuZENoaWxkRU4zV1RGMTBQYXNz
UmVmUHRySU5TXzROb2RlRUVFUmliCiBfX1pON1dlYkNvcmUxM0NvbnRhaW5lck5vZGUxMXJlbW92
ZUNoaWxkRVBOU180Tm9kZUVSaQorX19aTjdXZWJDb3JlMTNFbGVtZW50U2hhZG93MzFlbnN1cmVT
ZWxlY3RGZWF0dXJlU2V0Q29sbGVjdGVkRXYKIF9fWk43V2ViQ29yZTEzSFRUUEhlYWRlck1hcEMx
RXYKIF9fWk43V2ViQ29yZTEzSFRUUEhlYWRlck1hcEQxRXYKIF9fWk43V2ViQ29yZTEzSGl0VGVz
dFJlc3VsdEMxRVJLUzBfCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZUZlYXR1
cmUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVGZWF0dXJlLmNwcAppbmRleCBiMWY5Mjk2
ODc5MjdmZDc3MDlmZjAyMmY1NWQwZWIzZDk3YzJkN2RjLi4xYjExYzhmYWVkNDM4NDFiODdjMWY2
MTk2MjQwYTViMjNlNzQ0YTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZUZl
YXR1cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlRmVhdHVyZS5jcHAKQEAgLTI5
LDYgKzI5LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSdWxlRmVhdHVyZS5o
IgogCisjaW5jbHVkZSAiQ1NTU2VsZWN0b3IuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hN
YXAuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5oPgpAQCAt
MzYsNiArMzcsMjcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit2b2lkIFJ1bGVGZWF0dXJl
U2V0Ojpjb2xsZWN0RmVhdHVyZXNGcm9tU2VsZWN0b3IoY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVj
dG9yKQoreworICAgIGlmIChzZWxlY3Rvci0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6SWQpCisg
ICAgICAgIGlkc0luUnVsZXMuYWRkKHNlbGVjdG9yLT52YWx1ZSgpLmltcGwoKSk7CisgICAgZWxz
ZSBpZiAoc2VsZWN0b3ItPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OkNsYXNzKQorICAgICAgICBj
bGFzc2VzSW5SdWxlcy5hZGQoc2VsZWN0b3ItPnZhbHVlKCkuaW1wbCgpKTsKKyAgICBlbHNlIGlm
IChzZWxlY3Rvci0+aXNBdHRyaWJ1dGVTZWxlY3RvcigpKQorICAgICAgICBhdHRyc0luUnVsZXMu
YWRkKHNlbGVjdG9yLT5hdHRyaWJ1dGUoKS5sb2NhbE5hbWUoKS5pbXBsKCkpOworICAgIHN3aXRj
aCAoc2VsZWN0b3ItPnBzZXVkb1R5cGUoKSkgeworICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0ZpcnN0TGluZToKKyAgICAgICAgdXNlc0ZpcnN0TGluZVJ1bGVzID0gdHJ1ZTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQmVmb3JlOgorICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlBzZXVkb0FmdGVyOgorICAgICAgICB1c2VzQmVmb3JlQWZ0ZXJSdWxlcyA9IHRy
dWU7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0K
K30KKwogdm9pZCBSdWxlRmVhdHVyZVNldDo6YWRkKGNvbnN0IFJ1bGVGZWF0dXJlU2V0JiBvdGhl
cikKIHsKICAgICBIYXNoU2V0PEF0b21pY1N0cmluZ0ltcGwqPjo6Y29uc3RfaXRlcmF0b3IgZW5k
ID0gb3RoZXIuaWRzSW5SdWxlcy5lbmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9SdWxlRmVhdHVyZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVGZWF0dXJlLmgKaW5kZXgg
Y2U2ZDA0ZTY2NGU0MmY0ZmFiZmJmMjVmMzhkZGIyYjRlMmJiYTNiNy4uMGZmYzZlNWVlMjE3MmE2
N2I3ZTdlZDljMDlmMTEyZmFjZTc4MTQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1J1bGVGZWF0dXJlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVGZWF0dXJlLmgKQEAg
LTMwLDYgKzMwLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU3R5bGVSdWxlOwor
Y2xhc3MgQ1NTU2VsZWN0b3I7CiAKIHN0cnVjdCBSdWxlRmVhdHVyZSB7CiAgICAgUnVsZUZlYXR1
cmUoU3R5bGVSdWxlKiBydWxlLCB1bnNpZ25lZCBzZWxlY3RvckluZGV4LCBib29sIGhhc0RvY3Vt
ZW50U2VjdXJpdHlPcmlnaW4pCkBAIC01MSw3ICs1MiwxMSBAQCBzdHJ1Y3QgUnVsZUZlYXR1cmVT
ZXQgewogCiAgICAgdm9pZCBhZGQoY29uc3QgUnVsZUZlYXR1cmVTZXQmKTsKICAgICB2b2lkIGNs
ZWFyKCk7CisKKyAgICB2b2lkIGNvbGxlY3RGZWF0dXJlc0Zyb21TZWxlY3Rvcihjb25zdCBDU1NT
ZWxlY3RvciopOworCiAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KikgY29uc3Q7CisKICAgICBIYXNoU2V0PEF0b21pY1N0cmluZ0ltcGwqPiBpZHNJblJ1bGVzOwog
ICAgIEhhc2hTZXQ8QXRvbWljU3RyaW5nSW1wbCo+IGNsYXNzZXNJblJ1bGVzOwogICAgIEhhc2hT
ZXQ8QXRvbWljU3RyaW5nSW1wbCo+IGF0dHJzSW5SdWxlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcApp
bmRleCBlOTJkMTc2OGIyOThkN2FlODk2YzA3YmUyODg3YWE3NDFjNWE2ZDM4Li5hNTM2N2VlODJk
YmQ1OTMxZTk0YjY4NDlkNDNlN2IxZWZkOWM5MTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvUnVsZVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwCkBA
IC0xNTcsMzggKzE1NywxNyBAQCB2b2lkIFJ1bGVTZXQ6OlJ1bGVTZXRTZWxlY3RvclBhaXI6OnJl
cG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iagogICAgIGluZm8uYWRk
TWVtYmVyKHJ1bGVTZXQpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgY29sbGVjdEZlYXR1cmVz
RnJvbVNlbGVjdG9yKFJ1bGVGZWF0dXJlU2V0JiBmZWF0dXJlcywgY29uc3QgQ1NTU2VsZWN0b3Iq
IHNlbGVjdG9yKQotewotICAgIGlmIChzZWxlY3Rvci0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6
SWQpCi0gICAgICAgIGZlYXR1cmVzLmlkc0luUnVsZXMuYWRkKHNlbGVjdG9yLT52YWx1ZSgpLmlt
cGwoKSk7Ci0gICAgZWxzZSBpZiAoc2VsZWN0b3ItPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OkNs
YXNzKQotICAgICAgICBmZWF0dXJlcy5jbGFzc2VzSW5SdWxlcy5hZGQoc2VsZWN0b3ItPnZhbHVl
KCkuaW1wbCgpKTsKLSAgICBlbHNlIGlmIChzZWxlY3Rvci0+aXNBdHRyaWJ1dGVTZWxlY3Rvcigp
KQotICAgICAgICBmZWF0dXJlcy5hdHRyc0luUnVsZXMuYWRkKHNlbGVjdG9yLT5hdHRyaWJ1dGUo
KS5sb2NhbE5hbWUoKS5pbXBsKCkpOwotICAgIHN3aXRjaCAoc2VsZWN0b3ItPnBzZXVkb1R5cGUo
KSkgewotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0ZpcnN0TGluZToKLSAgICAgICAgZmVh
dHVyZXMudXNlc0ZpcnN0TGluZVJ1bGVzID0gdHJ1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvQmVmb3JlOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0FmdGVyOgotICAgICAgICBmZWF0dXJlcy51c2VzQmVmb3JlQWZ0ZXJSdWxlcyA9IHRydWU7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLX0KLQog
c3RhdGljIHZvaWQgY29sbGVjdEZlYXR1cmVzRnJvbVJ1bGVEYXRhKFJ1bGVGZWF0dXJlU2V0JiBm
ZWF0dXJlcywgY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhKQogewogICAgIGJvb2wgZm91bmRTaWJs
aW5nU2VsZWN0b3IgPSBmYWxzZTsKICAgICBmb3IgKENTU1NlbGVjdG9yKiBzZWxlY3RvciA9IHJ1
bGVEYXRhLnNlbGVjdG9yKCk7IHNlbGVjdG9yOyBzZWxlY3RvciA9IHNlbGVjdG9yLT50YWdIaXN0
b3J5KCkpIHsKLSAgICAgICAgY29sbGVjdEZlYXR1cmVzRnJvbVNlbGVjdG9yKGZlYXR1cmVzLCBz
ZWxlY3Rvcik7CisgICAgICAgIGZlYXR1cmVzLmNvbGxlY3RGZWF0dXJlc0Zyb21TZWxlY3Rvcihz
ZWxlY3Rvcik7CiAgICAgICAgIAogICAgICAgICBpZiAoQ1NTU2VsZWN0b3JMaXN0KiBzZWxlY3Rv
ckxpc3QgPSBzZWxlY3Rvci0+c2VsZWN0b3JMaXN0KCkpIHsKICAgICAgICAgICAgIGZvciAoQ1NT
U2VsZWN0b3IqIHN1YlNlbGVjdG9yID0gc2VsZWN0b3JMaXN0LT5maXJzdCgpOyBzdWJTZWxlY3Rv
cjsgc3ViU2VsZWN0b3IgPSBDU1NTZWxlY3Rvckxpc3Q6Om5leHQoc3ViU2VsZWN0b3IpKSB7CiAg
ICAgICAgICAgICAgICAgaWYgKCFmb3VuZFNpYmxpbmdTZWxlY3RvciAmJiBzZWxlY3Rvci0+aXNT
aWJsaW5nU2VsZWN0b3IoKSkKICAgICAgICAgICAgICAgICAgICAgZm91bmRTaWJsaW5nU2VsZWN0
b3IgPSB0cnVlOwotICAgICAgICAgICAgICAgIGNvbGxlY3RGZWF0dXJlc0Zyb21TZWxlY3Rvcihm
ZWF0dXJlcywgc3ViU2VsZWN0b3IpOworICAgICAgICAgICAgICAgIGZlYXR1cmVzLmNvbGxlY3RG
ZWF0dXJlc0Zyb21TZWxlY3RvcihzdWJTZWxlY3Rvcik7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0gZWxzZSBpZiAoIWZvdW5kU2libGluZ1NlbGVjdG9yICYmIHNlbGVjdG9yLT5pc1NpYmxpbmdT
ZWxlY3RvcigpKQogICAgICAgICAgICAgZm91bmRTaWJsaW5nU2VsZWN0b3IgPSB0cnVlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuY3BwCmluZGV4IDZmODdmMTY0NGFmYjk0YmZiZmU1ZWI3
OGNlYjMxZmVlNDUxNjJmMWIuLjI5NmNhZGE3YWRkNjg0NTRlYTI2YTBiNWRhMGYyMDc5YjM0YWJi
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5jcHAKQEAgLTI3LDkgKzI3LDEyIEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgogCisjaW5j
bHVkZSAiQ1NTUGFyc2VyLmgiCisjaW5jbHVkZSAiQ1NTU2VsZWN0b3JMaXN0LmgiCiAjaW5jbHVk
ZSAiQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MU2hhZG93RWxlbWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKQEAgLTM5LDYgKzQyLDcgQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogRWxlbWVudFNoYWRvdzo6RWxlbWVudFNoYWRvdygpCisgICAgOiBt
X3Nob3VsZENvbGxlY3RTZWxlY3RGZWF0dXJlU2V0KGZhbHNlKQogewogfQogCkBAIC0yMDMsNiAr
MjA3LDU1IEBAIHZvaWQgRWxlbWVudFNoYWRvdzo6aW52YWxpZGF0ZURpc3RyaWJ1dGlvbihFbGVt
ZW50KiBob3N0KQogICAgICAgICBtX2Rpc3RyaWJ1dG9yLmZpbmlzaEluaXZhbGlkYXRpb24oKTsK
IH0KIAordm9pZCBFbGVtZW50U2hhZG93OjpzZXRTaG91bGRDb2xsZWN0U2VsZWN0RmVhdHVyZVNl
dCgpCit7CisgICAgaWYgKHNob3VsZENvbGxlY3RTZWxlY3RGZWF0dXJlU2V0KCkpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fc2hvdWxkQ29sbGVjdFNlbGVjdEZlYXR1cmVTZXQgPSB0cnVlOwor
CisgICAgaWYgKFNoYWRvd1Jvb3QqIHBhcmVudFNoYWRvd1Jvb3QgPSBob3N0KCktPnNoYWRvd1Jv
b3QoKSkgeworICAgICAgICBpZiAoRWxlbWVudFNoYWRvdyogcGFyZW50RWxlbWVudFNoYWRvdyA9
IHBhcmVudFNoYWRvd1Jvb3QtPm93bmVyKCkpCisgICAgICAgICAgICBwYXJlbnRFbGVtZW50U2hh
ZG93LT5zZXRTaG91bGRDb2xsZWN0U2VsZWN0RmVhdHVyZVNldCgpOworICAgIH0KK30KKwordm9p
ZCBFbGVtZW50U2hhZG93OjplbnN1cmVTZWxlY3RGZWF0dXJlU2V0Q29sbGVjdGVkKCkKK3sKKyAg
ICBpZiAoIW1fc2hvdWxkQ29sbGVjdFNlbGVjdEZlYXR1cmVTZXQpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fc2VsZWN0RmVhdHVyZXMuY2xlYXIoKTsKKyAgICBmb3IgKFNoYWRvd1Jvb3QqIHJv
b3QgPSBvbGRlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT55b3VuZ2VyU2hhZG93
Um9vdCgpKQorICAgICAgICBjb2xsZWN0U2VsZWN0RmVhdHVyZVNldEZyb20ocm9vdCk7CisgICAg
bV9zaG91bGRDb2xsZWN0U2VsZWN0RmVhdHVyZVNldCA9IGZhbHNlOworfQorCit2b2lkIEVsZW1l
bnRTaGFkb3c6OmNvbGxlY3RTZWxlY3RGZWF0dXJlU2V0RnJvbShTaGFkb3dSb290KiByb290KQor
eworICAgIGlmICghcm9vdC0+aGFzQ29udGVudEVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKHJvb3QtPmhhc0VsZW1lbnRTaGFkb3coKSkgeworICAgICAgICBmb3IgKE5vZGUq
IG5vZGUgPSByb290LT5maXJzdENoaWxkKCk7IG5vZGU7IG5vZGUgPSBub2RlLT50cmF2ZXJzZU5l
eHROb2RlKCkpIHsKKyAgICAgICAgICAgIGlmIChFbGVtZW50U2hhZG93KiBlbGVtZW50U2hhZG93
ID0gbm9kZS0+aXNFbGVtZW50Tm9kZSgpID8gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3coKSA6IDAp
IHsKKyAgICAgICAgICAgICAgICBlbGVtZW50U2hhZG93LT5lbnN1cmVTZWxlY3RGZWF0dXJlU2V0
Q29sbGVjdGVkKCk7CisgICAgICAgICAgICAgICAgbV9zZWxlY3RGZWF0dXJlcy5hZGQoZWxlbWVu
dFNoYWRvdy0+bV9zZWxlY3RGZWF0dXJlcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBpZiAocm9vdC0+aGFzQ29udGVudEVsZW1lbnQoKSkgeworICAgICAgICBmb3Ig
KE5vZGUqIG5vZGUgPSByb290LT5maXJzdENoaWxkKCk7IG5vZGU7IG5vZGUgPSBub2RlLT50cmF2
ZXJzZU5leHROb2RlKCkpIHsKKyAgICAgICAgICAgIGlmIChpc0hUTUxDb250ZW50RWxlbWVudChu
b2RlKSkgeworICAgICAgICAgICAgICAgIGNvbnN0IENTU1NlbGVjdG9yTGlzdCYgbGlzdCA9IHRv
SFRNTENvbnRlbnRFbGVtZW50KG5vZGUpLT5zZWxlY3Rvckxpc3QoKTsKKyAgICAgICAgICAgICAg
ICBmb3IgKENTU1NlbGVjdG9yKiBzZWxlY3RvciA9IGxpc3QuZmlyc3QoKTsgc2VsZWN0b3I7IHNl
bGVjdG9yID0gbGlzdC5uZXh0KHNlbGVjdG9yKSkKKyAgICAgICAgICAgICAgICAgICAgbV9zZWxl
Y3RGZWF0dXJlcy5jb2xsZWN0RmVhdHVyZXNGcm9tU2VsZWN0b3Ioc2VsZWN0b3IpOyAgICAgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKIHZvaWQg
RWxlbWVudFNoYWRvdzo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5
T2JqZWN0SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmpl
Y3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnRTaGFkb3cuaAppbmRleCAyZjZmNTZjNzRmNjY5MmNlZTM0NDg2YTlhN2Y5YjAyMWM3MGU5Mjg1
Li5kMTAxNmM1NjVhNzc4MTVlZjYwZTNhN2QzZDk4MjI2MTI4YTYwOTNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50U2hhZG93LmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkNvbnRlbnRE
aXN0cmlidXRvci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJSdWxl
RmVhdHVyZS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlIDx3dGYvRG91Ymx5
TGlua2VkTGlzdC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNjksMTMgKzcw
LDI1IEBAIHB1YmxpYzoKICAgICBDb250ZW50RGlzdHJpYnV0b3ImIGRpc3RyaWJ1dG9yKCk7CiAg
ICAgY29uc3QgQ29udGVudERpc3RyaWJ1dG9yJiBkaXN0cmlidXRvcigpIGNvbnN0OwogCisgICAg
Ym9vbCBzaG91bGRDb2xsZWN0U2VsZWN0RmVhdHVyZVNldCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hv
dWxkQ29sbGVjdFNlbGVjdEZlYXR1cmVTZXQ7IH0KKyAgICB2b2lkIHNldFNob3VsZENvbGxlY3RT
ZWxlY3RGZWF0dXJlU2V0KCk7CisgICAgdm9pZCBlbnN1cmVTZWxlY3RGZWF0dXJlU2V0Q29sbGVj
dGVkKCk7CisKKyAgICBib29sIGhhc1NlbGVjdG9yRm9ySWQoY29uc3QgQXRvbWljU3RyaW5nJikg
Y29uc3Q7CisgICAgYm9vbCBoYXNTZWxlY3RvckZvckNsYXNzKGNvbnN0IEF0b21pY1N0cmluZyYp
IGNvbnN0OworICAgIGJvb2wgaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGUoY29uc3QgQXRvbWljU3Ry
aW5nJikgY29uc3Q7CisKICAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdElu
Zm8qKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICB2b2lkIGludmFsaWRhdGVEaXN0cmlidXRpb24o
RWxlbWVudCogaG9zdCk7CiAKKyAgICB2b2lkIGNvbGxlY3RTZWxlY3RGZWF0dXJlU2V0RnJvbShT
aGFkb3dSb290Kik7CisKICAgICBEb3VibHlMaW5rZWRMaXN0PFNoYWRvd1Jvb3Q+IG1fc2hhZG93
Um9vdHM7CiAgICAgQ29udGVudERpc3RyaWJ1dG9yIG1fZGlzdHJpYnV0b3I7CisgICAgUnVsZUZl
YXR1cmVTZXQgbV9zZWxlY3RGZWF0dXJlczsKKyAgICBib29sIG1fc2hvdWxkQ29sbGVjdFNlbGVj
dEZlYXR1cmVTZXQgOiAxOwogfTsKIAogaW5saW5lIFNoYWRvd1Jvb3QqIEVsZW1lbnRTaGFkb3c6
OnlvdW5nZXN0U2hhZG93Um9vdCgpIGNvbnN0CkBAIC0xMTMsNiArMTI2LDI3IEBAIGlubGluZSBT
aGFkb3dSb290KiBOb2RlOjp5b3VuZ2VzdFNoYWRvd1Jvb3QoKSBjb25zdAogICAgIHJldHVybiAw
OwogfQogCitpbmxpbmUgYm9vbCBFbGVtZW50U2hhZG93OjpoYXNTZWxlY3RvckZvcklkKGNvbnN0
IEF0b21pY1N0cmluZyYgaWRWYWx1ZSkgY29uc3QKK3sKKyAgICBBU1NFUlQoIWlkVmFsdWUuaXNF
bXB0eSgpKTsKKyAgICBBU1NFUlQoIW1fc2hvdWxkQ29sbGVjdFNlbGVjdEZlYXR1cmVTZXQpOwor
ICAgIHJldHVybiBtX3NlbGVjdEZlYXR1cmVzLmlkc0luUnVsZXMuY29udGFpbnMoaWRWYWx1ZS5p
bXBsKCkpOworfQorCitpbmxpbmUgYm9vbCBFbGVtZW50U2hhZG93OjpoYXNTZWxlY3RvckZvckNs
YXNzKGNvbnN0IEF0b21pY1N0cmluZyYgY2xhc3NWYWx1ZSkgY29uc3QKK3sKKyAgICBBU1NFUlQo
IWNsYXNzVmFsdWUuaXNFbXB0eSgpKTsKKyAgICBBU1NFUlQoIW1fc2hvdWxkQ29sbGVjdFNlbGVj
dEZlYXR1cmVTZXQpOworICAgIHJldHVybiBtX3NlbGVjdEZlYXR1cmVzLmNsYXNzZXNJblJ1bGVz
LmNvbnRhaW5zKGNsYXNzVmFsdWUuaW1wbCgpKTsKK30KKworaW5saW5lIGJvb2wgRWxlbWVudFNo
YWRvdzo6aGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGUoY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1
dGVOYW1lKSBjb25zdAoreworICAgIEFTU0VSVCghYXR0cmlidXRlTmFtZS5pc0VtcHR5KCkpOwor
ICAgIEFTU0VSVCghbV9zaG91bGRDb2xsZWN0U2VsZWN0RmVhdHVyZVNldCk7CisgICAgcmV0dXJu
IG1fc2VsZWN0RmVhdHVyZXMuYXR0cnNJblJ1bGVzLmNvbnRhaW5zKGF0dHJpYnV0ZU5hbWUuaW1w
bCgpKTsKK30KKwogY2xhc3MgU2hhZG93Um9vdFZlY3RvciA6IHB1YmxpYyBWZWN0b3I8UmVmUHRy
PFNoYWRvd1Jvb3Q+ID4gewogcHVibGljOgogICAgIGV4cGxpY2l0IFNoYWRvd1Jvb3RWZWN0b3Io
RWxlbWVudFNoYWRvdyogdHJlZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9I
VE1MQ29udGVudEVsZW1lbnQuY3BwCmluZGV4IDcxNDg5ZjlmMzhkMzcxOWQyMzhlMGQ3N2IyYTNk
MDMzMGU0NTAyMGEuLjNkOTYzZjkzMzQ2YTczZjI4NTc4NjA1YzU1MTEwYTE2ZmQ3OTc3ODYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNw
cApAQCAtMTAxLDggKzEwMSwxMCBAQCB2b2lkIEhUTUxDb250ZW50RWxlbWVudDo6ZW5zdXJlU2Vs
ZWN0UGFyc2VkKCkKIHZvaWQgSFRNTENvbnRlbnRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkKIHsKICAgICBpZiAoYXR0cmlidXRlLm5hbWUoKSA9PSBz
ZWxlY3RBdHRyKSB7Ci0gICAgICAgIGlmIChTaGFkb3dSb290KiByb290ID0gc2hhZG93Um9vdCgp
KQorICAgICAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IHNoYWRvd1Jvb3QoKSkgeworICAgICAg
ICAgICAgcm9vdC0+b3duZXIoKS0+c2V0U2hvdWxkQ29sbGVjdFNlbGVjdEZlYXR1cmVTZXQoKTsK
ICAgICAgICAgICAgIHJvb3QtPm93bmVyKCktPmludmFsaWRhdGVEaXN0cmlidXRpb24oKTsKKyAg
ICAgICAgfQogICAgICAgICBtX3Nob3VsZFBhcnNlU2VsZWN0b3JMaXN0ID0gdHJ1ZTsKICAgICB9
IGVsc2UKICAgICAgICAgSW5zZXJ0aW9uUG9pbnQ6OnBhcnNlQXR0cmlidXRlKGF0dHJpYnV0ZSk7
CkBAIC0xMTMsNyArMTE1LDkgQEAgTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBI
VE1MQ29udGVudEVsZW1lbnQ6Omluc2VydGVkSW50byhDb250YWluZXJOb2QKICAgICBJbnNlcnRp
b25Qb2ludDo6aW5zZXJ0ZWRJbnRvKGluc2VydGlvblBvaW50KTsKIAogICAgIGlmIChpbnNlcnRp
b25Qb2ludC0+aW5Eb2N1bWVudCgpICYmIGlzQWN0aXZlKCkpIHsKLSAgICAgICAgc2hhZG93Um9v
dCgpLT5yZWdpc3RlckNvbnRlbnRFbGVtZW50KCk7CisgICAgICAgIFNoYWRvd1Jvb3QqIHJvb3Qg
PSBzaGFkb3dSb290KCk7CisgICAgICAgIHJvb3QtPnJlZ2lzdGVyQ29udGVudEVsZW1lbnQoKTsK
KyAgICAgICAgcm9vdC0+b3duZXIoKS0+c2V0U2hvdWxkQ29sbGVjdFNlbGVjdEZlYXR1cmVTZXQo
KTsKICAgICAgICAgbV9yZWdpc3RlcmVkV2l0aFNoYWRvd1Jvb3QgPSB0cnVlOwogICAgIH0KIApA
QCAtMTI5LDYgKzEzMyw5IEBAIHZvaWQgSFRNTENvbnRlbnRFbGVtZW50OjpyZW1vdmVkRnJvbShD
b250YWluZXJOb2RlKiBpbnNlcnRpb25Qb2ludCkKICAgICAgICAgaWYgKHJvb3QpCiAgICAgICAg
ICAgICByb290LT51bnJlZ2lzdGVyQ29udGVudEVsZW1lbnQoKTsKICAgICAgICAgbV9yZWdpc3Rl
cmVkV2l0aFNoYWRvd1Jvb3QgPSBmYWxzZTsKKworICAgICAgICBpZiAoRWxlbWVudFNoYWRvdyog
ZWxlbWVudFNoYWRvdyA9IHJvb3QgPyByb290LT5vd25lcigpIDogMCkKKyAgICAgICAgICAgIGVs
ZW1lbnRTaGFkb3ctPnNldFNob3VsZENvbGxlY3RTZWxlY3RGZWF0dXJlU2V0KCk7CiAgICAgfQog
ICAgIEluc2VydGlvblBvaW50OjpyZW1vdmVkRnJvbShpbnNlcnRpb25Qb2ludCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oCmluZGV4IDA0
MjU0ZTEyYjIyM2JjMDM5MDNlZDM0MmNiYWViZjE3ZGU5ZjIwMTYuLmVkMGIwODg4NDMyY2QzZjM2
ZTkxMTdmYTkxOTkyOTgxNmVhMTQ5ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0hUTUxDb250ZW50RWxlbWVudC5oCkBAIC04Niw2ICs4NiwxMiBAQCBpbmxpbmUgYm9vbCBp
c0hUTUxDb250ZW50RWxlbWVudChjb25zdCBOb2RlKiBub2RlKQogICAgIHJldHVybiBub2RlLT5o
YXNUYWdOYW1lKEhUTUxDb250ZW50RWxlbWVudDo6Y29udGVudFRhZ05hbWUobm9kZS0+ZG9jdW1l
bnQoKSkpOwogfQogCitpbmxpbmUgSFRNTENvbnRlbnRFbGVtZW50KiB0b0hUTUxDb250ZW50RWxl
bWVudChOb2RlKiBub2RlKQoreworICAgIEFTU0VSVCghbm9kZSB8fCBpc0hUTUxDb250ZW50RWxl
bWVudChub2RlKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxDb250ZW50RWxlbWVudCo+
KG5vZGUpOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CmluZGV4IGU0ZDMwODQxMGEwNjMzNjhmY2VjNjBjMmRlYzM5MmJmN2UyZTlkYTcuLjdiZTE4ZDli
ZTViNzU1ZDRjYWY3OWFhOGU3NGY4NDg1Mjg4MDY2YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKQEAgLTMwNiw2ICszMDYsMzkgQEAgTm9kZSogSW50ZXJuYWxzOjpwYXJlbnRU
cmVlU2NvcGUoTm9kZSogbm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgcmV0dXJuIHBhcmVu
dFRyZWVTY29wZSA/IHBhcmVudFRyZWVTY29wZS0+cm9vdE5vZGUoKSA6IDA7CiB9CiAKK2Jvb2wg
SW50ZXJuYWxzOjpoYXNTZWxlY3RvckZvcklkSW5TaGFkb3coRWxlbWVudCogaG9zdCwgY29uc3Qg
U3RyaW5nJiBpZFZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIWhvc3QgfHwg
IWhvc3QtPnNoYWRvdygpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAg
ICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBob3N0LT5zaGFkb3coKS0+ZW5zdXJlU2VsZWN0
RmVhdHVyZVNldENvbGxlY3RlZCgpOworICAgIHJldHVybiBob3N0LT5zaGFkb3coKS0+aGFzU2Vs
ZWN0b3JGb3JJZChpZFZhbHVlKTsKK30KKworYm9vbCBJbnRlcm5hbHM6Omhhc1NlbGVjdG9yRm9y
Q2xhc3NJblNoYWRvdyhFbGVtZW50KiBob3N0LCBjb25zdCBTdHJpbmcmIGNsYXNzTmFtZSwgRXhj
ZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFob3N0IHx8ICFob3N0LT5zaGFkb3coKSkgewor
ICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAg
fQorCisgICAgaG9zdC0+c2hhZG93KCktPmVuc3VyZVNlbGVjdEZlYXR1cmVTZXRDb2xsZWN0ZWQo
KTsKKyAgICByZXR1cm4gaG9zdC0+c2hhZG93KCktPmhhc1NlbGVjdG9yRm9yQ2xhc3MoY2xhc3NO
YW1lKTsKK30KKworYm9vbCBJbnRlcm5hbHM6Omhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFk
b3coRWxlbWVudCogaG9zdCwgY29uc3QgU3RyaW5nJiBhdHRyaWJ1dGVOYW1lLCBFeGNlcHRpb25D
b2RlJiBlYykKK3sKKyAgICBpZiAoIWhvc3QgfHwgIWhvc3QtPnNoYWRvdygpKSB7CisgICAgICAg
IGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAg
ICBob3N0LT5zaGFkb3coKS0+ZW5zdXJlU2VsZWN0RmVhdHVyZVNldENvbGxlY3RlZCgpOworICAg
IHJldHVybiBob3N0LT5zaGFkb3coKS0+aGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGUoYXR0cmlidXRl
TmFtZSk7Cit9CisKIGJvb2wgSW50ZXJuYWxzOjpoYXNTaGFkb3dJbnNlcnRpb25Qb2ludChjb25z
dCBOb2RlKiByb290LCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHsKICAgICBpZiAocm9vdCAm
JiByb290LT5pc1NoYWRvd1Jvb3QoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4
IDIxMTE3Mzk3YzgxMWM4NThmM2IxZjQ5ZmM1N2QxNmFjMjVhNzExMjEuLjU0NGQzMWU4ODk0NTBl
NTUxZDdjOGJkMjkxMzZjN2M3MTJhMDRlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aApAQCAtOTYsNiArOTYsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1ZhbGlkQ29udGVudFNlbGVj
dChFbGVtZW50KiBpbnNlcnRpb25Qb2ludCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIE5vZGUqIHRy
ZWVTY29wZVJvb3ROb2RlKE5vZGUqLCBFeGNlcHRpb25Db2RlJik7CiAgICAgTm9kZSogcGFyZW50
VHJlZVNjb3BlKE5vZGUqLCBFeGNlcHRpb25Db2RlJik7CisgICAgYm9vbCBoYXNTZWxlY3RvckZv
cklkSW5TaGFkb3coRWxlbWVudCogaG9zdCwgY29uc3QgU3RyaW5nJiBpZFZhbHVlLCBFeGNlcHRp
b25Db2RlJik7CisgICAgYm9vbCBoYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coRWxlbWVudCog
aG9zdCwgY29uc3QgU3RyaW5nJiBjbGFzc05hbWUsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBib29s
IGhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coRWxlbWVudCogaG9zdCwgY29uc3QgU3Ry
aW5nJiBhdHRyaWJ1dGVOYW1lLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBib29sIGF0dGFjaGVk
KE5vZGUqLCBFeGNlcHRpb25Db2RlJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bAppbmRleCA3YTVhYjdiOTBlZGI2NGI2NTBkYzM0MzdiNDNhMWQ2OTk3MWIwMWFkLi4zMDRlNjRj
OGVlY2QwMGY1MzIzZWRjNjJhMGFlZjhlZjgzMTdiZWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsCkBAIC01OSw2ICs1OSw5IEBACiAgICAgYm9vbGVhbiBpc1ZhbGlkQ29udGVu
dFNlbGVjdChpbiBFbGVtZW50IGNvbnRlbnRFbGVtZW50KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
ICAgICBOb2RlIHRyZWVTY29wZVJvb3ROb2RlKGluIE5vZGUgbm9kZSkgcmFpc2VzIChET01FeGNl
cHRpb24pOwogICAgIE5vZGUgcGFyZW50VHJlZVNjb3BlKGluIE5vZGUgbm9kZSkgcmFpc2VzIChE
T01FeGNlcHRpb24pOworICAgIGJvb2xlYW4gaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGluIEVs
ZW1lbnQgaG9zdCwgaW4gRE9NU3RyaW5nIGlkKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAg
Ym9vbGVhbiBoYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaW4gRWxlbWVudCBob3N0LCBpbiBE
T01TdHJpbmcgY2xhc3NOYW1lKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgYm9vbGVhbiBo
YXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGluIEVsZW1lbnQgaG9zdCwgaW4gRE9NU3Ry
aW5nIGF0dHJpYnV0ZU5hbWUpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAogICAgIE5vZGUgbmV4
dFNpYmxpbmdCeVdhbGtlcihpbiBOb2RlIG5vZGUpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAg
IE5vZGUgZmlyc3RDaGlsZEJ5V2Fsa2VyKGluIE5vZGUgbm9kZSkgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKaW5kZXggOTY2MjgyZjk4YzRmNzdkZjE4OTFjZTFlOWYx
MDUzZWFhOTEyMGJmMC4uNzUyMWNhNzU4MTJkMTJhMjkyNGY3Y2YxOTFlNzM5YjIyMGZkYTI3MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgpAQCAtMTY4LDYgKzE2OCw3IEBAIEVYUE9SVFMKICAgICAg
ICAgP2NyZWF0ZUBTaGFkb3dSb290QFdlYkNvcmVAQFNBP0FWPyRQYXNzUmVmUHRyQFZTaGFkb3dS
b290QFdlYkNvcmVAQEBXVEZAQFBBVkVsZW1lbnRAMkBBQUhAWgogICAgICAgICA/Y3JlYXRlV3Jh
cHBlckBXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQQVZFeGVjU3RhdGVAM0BQQVZKU0RPTUds
b2JhbE9iamVjdEAxQFBBVk5vZGVAMUBAWgogICAgICAgICA/ZG9jdW1lbnRTdGF0ZUBIaXN0b3J5
SXRlbUBXZWJDb3JlQEBRQkVBQlY/JFZlY3RvckBWU3RyaW5nQFdURkBAJDBBQEBXVEZAQFhaCisg
ICAgICAgID9lbnN1cmVTZWxlY3RGZWF0dXJlU2V0Q29sbGVjdGVkQEVsZW1lbnRTaGFkb3dAV2Vi
Q29yZUBAUUFFWFhaCiAgICAgICAgID9lcXVhbEBXVEZAQFlBX05QQlZTdHJpbmdJbXBsQDFAUEJF
QFoKICAgICAgICAgP2VxdWFsQFdURkBAWUFfTlBCVlN0cmluZ0ltcGxAMUAwQFoKICAgICAgICAg
P2VxdWFsSWdub3JpbmdDYXNlQFdURkBAWUFfTlBBVlN0cmluZ0ltcGxAMUBQQkVAWgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmIGIvU291cmNlL1dlYktp
dDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCmluZGV4IGM3OTZiNjAxNjExODZhMTE0Mzc0ZjdkMDI4
ZGExMzg1ZDNkZTZhNjYuLjQ2ZjhmYTk1MjdlYTU0N2IwZjIyMzFiNzAwYjY3ZWM4MDZiYWFkN2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgorKysgYi9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKQEAgLTE2MSw2ICsxNjEsNyBAQCBF
WFBPUlRTCiAgICAgICAgID9jcmVhdGVAU2hhZG93Um9vdEBXZWJDb3JlQEBTQT9BVj8kUGFzc1Jl
ZlB0ckBWU2hhZG93Um9vdEBXZWJDb3JlQEBAV1RGQEBQQVZFbGVtZW50QDJAQUFIQFoKICAgICAg
ICAgP2NyZWF0ZVdyYXBwZXJAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRl
QDNAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQQVZOb2RlQDFAQFoKICAgICAgICAgP2RvY3VtZW50
U3RhdGVASGlzdG9yeUl0ZW1AV2ViQ29yZUBAUUJFQUJWPyRWZWN0b3JAVlN0cmluZ0BXVEZAQCQw
QUBAV1RGQEBYWgorICAgICAgICA/ZW5zdXJlU2VsZWN0RmVhdHVyZVNldENvbGxlY3RlZEBFbGVt
ZW50U2hhZG93QFdlYkNvcmVAQFFBRVhYWgogICAgICAgICA/ZXF1YWxAV1RGQEBZQV9OUEJWU3Ry
aW5nSW1wbEAxQFBCRUBaCiAgICAgICAgID9lcXVhbEBXVEZAQFlBX05QQlZTdHJpbmdJbXBsQDFA
MEBaCiAgICAgICAgID9lcXVhbElnbm9yaW5nQ2FzZUBXVEZAQFlBX05QQVZTdHJpbmdJbXBsQDFA
UEJFQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3Vy
Y2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IGQ4MmYxNzk4NTExYzI2ZDQ3YmY1NDU0
NTA0ZmMwNjY1ZmVjOTZiZTkuLjk0ZDQ2Y2M3ODc5Yzg2YzNlZmJlMmVhMWY0MzExMjNkNzFkMzI5
NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291
cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtNTYsNiArNTYsNyBAQCBfWk43V2ViQ29y
ZTEyVGV4dEl0ZXJhdG9yMjZyYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0aEVQTlNfMTNDb250YWlu
ZXJOb2RlRWlpYjsKIF9aTjdXZWJDb3JlMTJUZXh0SXRlcmF0b3IyOWdldExvY2F0aW9uQW5kTGVu
Z3RoRnJvbVJhbmdlRVBOU183RWxlbWVudEVQS05TXzVSYW5nZUVSalM2XzsKIF9aTjdXZWJDb3Jl
MTJUZXh0SXRlcmF0b3IyOWdldExvY2F0aW9uQW5kTGVuZ3RoRnJvbVJhbmdlRVBOU183RWxlbWVu
dEVQS05TXzVSYW5nZUVSbVM2XzsKIF9aTjdXZWJDb3JlMTJQcmludENvbnRleHQyMHBhZ2VOdW1i
ZXJGb3JFbGVtZW50RVBOU183RWxlbWVudEVSS05TXzlGbG9hdFNpemVFOworX1pON1dlYkNvcmUx
M0VsZW1lbnRTaGFkb3czMWVuc3VyZVNlbGVjdEZlYXR1cmVTZXRDb2xsZWN0ZWRFdjsKIF9aTjdX
ZWJDb3JlMTNjcmVhdGVXcmFwcGVyRVBOM0pTQzlFeGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxP
YmplY3RFUE5TXzROb2RlRTsKIF9aTjdXZWJDb3JlMTRDbGllbnRSZWN0TGlzdEMxRVJLTjNXVEY2
VmVjdG9ySU5TXzlGbG9hdFF1YWRFTGowRUVFOwogX1pON1dlYkNvcmUxNENsaWVudFJlY3RMaXN0
QzFFUktOM1dURjZWZWN0b3JJTlNfOUZsb2F0UXVhZEVMbTBFRUU7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2IzZTU3NmE2
YzFhYWUxODI0ODdjYzcwY2RmNTNmMWQwZGU1NDQ1Yy4uYmNlYTM5MGNmZDRkNDBiNzAxNjViM2Y4
ZjQyYjE1N2EyN2MyNmEzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTExLTA4ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbU2hhZG93XSBF
bGVtZW50U2hhZG93IHNob3VsZCBoYXZlIFJ1bGVGZWF0dXJlU2V0IGZvciBzZWxlY3QgYXR0cmli
dXRlIHNlbGVjdG9ycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwMTE4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1zZWxlY3QtYXR0cmlidXRlLWZlYXR1cmVz
ZXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93
LXNlbGVjdC1hdHRyaWJ1dGUtZmVhdHVyZXNldC5odG1sOiBBZGRlZC4KKwogMjAxMi0xMS0wOCAg
RG9uZ3dvbyBKb3NodWEgSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbUVRdIGNz
czMvbGluZS1icmVhayBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tIFRlc3RFeHBlY3RhdGlvbnMuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXNlbGVjdC1hdHRy
aWJ1dGUtZmVhdHVyZXNldC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93LXNlbGVjdC1hdHRyaWJ1dGUtZmVhdHVyZXNldC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uY2NkYTQ0ZDkwNGQyMzFlZjQ2MDcwNjU2ODJiNmYwZjE4NjliYjAyNgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctc2VsZWN0LWF0dHJp
YnV0ZS1mZWF0dXJlc2V0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDc1IEBACitJZCBzaG91bGQg
YmUgY29sbGVjdGVkCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9z
dCwgImZvbyIpIGlzIHRydWUKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRv
dyhob3N0LCAiYmFyIikgaXMgZmFsc2UKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJ
blNoYWRvdyhob3N0LCAiaG9zdCIpIGlzIGZhbHNlCisKK0NsYXNzIHNob3VsZCBiZSBjb2xsZWN0
ZWQKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0LCAiZm9v
IikgaXMgdHJ1ZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhv
c3QsICJob3N0IikgaXMgZmFsc2UKKworQXR0cmlidXRlIHNob3VsZCBiZSBjb2xsZWN0ZWQKK1BB
U1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImZvbyIp
IGlzIHRydWUKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3co
aG9zdCwgImhvc3QiKSBpcyBmYWxzZQorCitTZWxlY3QgYXR0cmlidXRlIG1pZ2h0IGhhdmUgc2V2
ZXJhbCBzZWxlY3RvcnMKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyho
b3N0LCAiZm9vIikgaXMgdHJ1ZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hh
ZG93KGhvc3QsICJiYXIiKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJ
ZEluU2hhZG93KGhvc3QsICJiYXoiKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0
b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJmb28iKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMu
aGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJiYXIiKSBpcyB0cnVlCitQQVNTIGlu
dGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImJheiIpIGlzIGZhbHNl
CitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJm
b28iKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNo
YWRvdyhob3N0LCAiYmFyIikgaXMgZmFsc2UKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9y
QXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImJheiIpIGlzIHRydWUKKworRG9uJ3QgY291bnQgc2hh
ZG93IGVsZW1lbnQKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0
LCAiZm9vIikgaXMgZmFsc2UKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRv
dyhob3N0LCAiYmFyIikgaXMgZmFsc2UKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJ
blNoYWRvdyhob3N0LCAiYmF6IikgaXMgZmFsc2UKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9y
Rm9yQ2xhc3NJblNoYWRvdyhob3N0LCAiZm9vIikgaXMgZmFsc2UKK1BBU1MgaW50ZXJuYWxzLmhh
c1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0LCAiYmFyIikgaXMgZmFsc2UKK1BBU1MgaW50
ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0LCAiYmF6IikgaXMgZmFsc2UK
K1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImZv
byIpIGlzIGZhbHNlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hh
ZG93KGhvc3QsICJiYXIiKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JB
dHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiYmF6IikgaXMgZmFsc2UKKworQ29tcGxleCBjYXNlIGZv
ciBzaW5nbGUgU2hhZG93Um9vdAorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hh
ZG93KGhvc3QsICJmb28iKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JD
bGFzc0luU2hhZG93KGhvc3QsICJmb28iKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2Vs
ZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiZm9vIikgaXMgdHJ1ZQorUEFTUyBpbnRl
cm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAicGl5byIpIGlzIGZh
bHNlCisKK0Fub3RoZXIgY29tcGxleCBjYXNlIGZvciBzaW5nbGUgU2hhZG93Um9vdAorUEFTUyBp
bnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJmb28iKSBpcyB0cnVlCitQ
QVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImZvbyIpIGlz
IHRydWUKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9z
dCwgImZvbyIpIGlzIHRydWUKKworTXVsdGlwbGUgU2hhZG93Um9vdCBjYXNlCitQQVNTIGludGVy
bmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIHRydWUKK1BBU1Mg
aW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmFyIikgaXMgdHJ1ZQor
UEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXoiKSBpcyBm
YWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJm
b28iKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93
KGhvc3QsICJiYXIiKSBpcyB0cnVlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNz
SW5TaGFkb3coaG9zdCwgImJheiIpIGlzIGZhbHNlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3Rv
ckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJmb28iKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5h
bHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiYmFyIikgaXMgZmFsc2UK
K1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImJh
eiIpIGlzIHRydWUKKworRHluYW1pYyBzZWxlY3QgYXR0cmlidXRlIHVwZGF0ZQorUEFTUyBpbnRl
cm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJmb28iKSBpcyB0cnVlCitQQVNT
IGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIpIGlzIGZhbHNl
CitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImZvbyIpIGlz
IGZhbHNlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJh
ciIpIGlzIHRydWUKKworTmVzdGVkIFNoYWRvd0RPTSBjYXNlCitQQVNTIGludGVybmFscy5oYXNT
ZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIHRydWUKK1BBU1MgaW50ZXJuYWxz
Lmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmFyIikgaXMgdHJ1ZQorUEFTUyBpbnRl
cm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXoiKSBpcyBmYWxzZQorUEFT
UyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJmb28iKSBpcyB0cnVl
CitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIpIGlz
IGZhbHNlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJh
eiIpIGlzIHRydWUKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
c2VsZWN0LWF0dHJpYnV0ZS1mZWF0dXJlc2V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93LXNlbGVjdC1hdHRyaWJ1dGUtZmVhdHVyZXNldC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjEyYTU1MTQ5NTY2YTg4MmM1NzljOWQ3YTMzZWJkOWRhY2E2OWYwMzYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXNlbGVjdC1hdHRyaWJ1dGUt
ZmVhdHVyZXNldC5odG1sCkBAIC0wLDAgKzEsMTc1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorCis8ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgorPHByZSBpZD0iY29uc29s
ZSI+PC9wcmU+CisKKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0Q2FzZShmKQoreworICAgIGNvbnRh
aW5lci5pbm5lckhUTUwgPSAnJzsKKyAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRE9N
KCdkaXYnLCB7J2lkJzogJ2hvc3QnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNyZWF0ZVNoYWRvd1Jvb3QoKSkpOworICAgIHNoYWRvd1Jvb3QgPSBpbnRlcm5hbHMuc2hh
ZG93Um9vdChob3N0KTsKKworICAgIGYoKTsKKyAgICBkZWJ1ZygnJyk7Cit9CisKK3Rlc3RDYXNl
KGZ1bmN0aW9uKCkKK3sKKyAgICBkZWJ1ZygnSWQgc2hvdWxkIGJlIGNvbGxlY3RlZCcpOworCisg
ICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSIjZm9vIj48L2NvbnRl
bnQ+JzsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyho
b3N0LCAiZm9vIiknLCAndHJ1ZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0
b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXIiKScsICdmYWxzZScpOworICAgIHNob3VsZEJlKCdp
bnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJob3N0IiknLCAnZmFsc2Un
KTsKK30pOworCit0ZXN0Q2FzZShmdW5jdGlvbigpCit7CisgICAgZGVidWcoJ0NsYXNzIHNob3Vs
ZCBiZSBjb2xsZWN0ZWQnKTsKKworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxjb250ZW50
IHNlbGVjdD0iLmZvbyI+PC9jb250ZW50Pic7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNT
ZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImZvbyIpJywgJ3RydWUnKTsKKyAgICBzaG91
bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0LCAiaG9zdCIp
JywgJ2ZhbHNlJyk7Cit9KTsKKwordGVzdENhc2UoZnVuY3Rpb24oKQoreworICAgIGRlYnVnKCdB
dHRyaWJ1dGUgc2hvdWxkIGJlIGNvbGxlY3RlZCcpOworCisgICAgc2hhZG93Um9vdC5pbm5lckhU
TUwgPSAnPGNvbnRlbnQgc2VsZWN0PSJkaXZbZm9vXSI+PC9jb250ZW50Pic7CisgICAgc2hvdWxk
QmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJmb28i
KScsICd0cnVlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJp
YnV0ZUluU2hhZG93KGhvc3QsICJob3N0IiknLCAnZmFsc2UnKTsKK30pOworCit0ZXN0Q2FzZShm
dW5jdGlvbigpCit7CisgICAgZGVidWcoJ1NlbGVjdCBhdHRyaWJ1dGUgbWlnaHQgaGF2ZSBzZXZl
cmFsIHNlbGVjdG9ycycpOworCisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQg
c2VsZWN0PSIjZm9vLC5iYXIsZGl2W2Jhel0iPjwvY29udGVudD4nOworICAgIHNob3VsZEJlKCdp
bnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJmb28iKScsICd0cnVlJyk7
CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwg
ImJhciIpJywgJ2ZhbHNlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZv
cklkSW5TaGFkb3coaG9zdCwgImJheiIpJywgJ2ZhbHNlJyk7CisKKyAgICBzaG91bGRCZSgnaW50
ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0LCAiZm9vIiknLCAnZmFsc2Un
KTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyho
b3N0LCAiYmFyIiknLCAndHJ1ZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0
b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJiYXoiKScsICdmYWxzZScpOworCisgICAgc2hvdWxk
QmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJmb28i
KScsICdmYWxzZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRy
aWJ1dGVJblNoYWRvdyhob3N0LCAiYmFyIiknLCAnZmFsc2UnKTsKKyAgICBzaG91bGRCZSgnaW50
ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImJheiIpJywgJ3Ry
dWUnKTsKK30pOworCit0ZXN0Q2FzZShmdW5jdGlvbigpCit7CisgICAgZGVidWcoJ0RvblwndCBj
b3VudCBzaGFkb3cgZWxlbWVudCcpOworCisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPHNo
YWRvdyBzZWxlY3Q9IiNmb28sLmJhcixkaXZbYmF6XSI+PC9zaGFkb3c+JzsKKyAgICBzaG91bGRC
ZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9vIiknLCAnZmFs
c2UnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyho
b3N0LCAiYmFyIiknLCAnZmFsc2UnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVj
dG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmF6IiknLCAnZmFsc2UnKTsKKworICAgIHNob3VsZEJl
KCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJmb28iKScsICdm
YWxzZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hh
ZG93KGhvc3QsICJiYXIiKScsICdmYWxzZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFz
U2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJiYXoiKScsICdmYWxzZScpOworCisgICAg
c2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3Qs
ICJmb28iKScsICdmYWxzZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JG
b3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiYmFyIiknLCAnZmFsc2UnKTsKKyAgICBzaG91bGRC
ZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImJheiIp
JywgJ2ZhbHNlJyk7Cit9KTsKKwordGVzdENhc2UoZnVuY3Rpb24oKQoreworICAgIGRlYnVnKCdD
b21wbGV4IGNhc2UgZm9yIHNpbmdsZSBTaGFkb3dSb290Jyk7CisKKyAgICBzaGFkb3dSb290Lmlu
bmVySFRNTCA9ICc8ZGl2PjxkaXY+PC9kaXY+PGNvbnRlbnQgc2VsZWN0PSIqIj48L2NvbnRlbnQ+
PGRpdj48Y29udGVudCBzZWxlY3Q9ImRpdltmb289cGl5b10iPjwvY29udGVudD48L2Rpdj4nOwor
ICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJm
b28iKScsICdmYWxzZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JD
bGFzc0luU2hhZG93KGhvc3QsICJmb28iKScsICdmYWxzZScpOworICAgIHNob3VsZEJlKCdpbnRl
cm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiZm9vIiknLCAndHJ1
ZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNo
YWRvdyhob3N0LCAicGl5byIpJywgJ2ZhbHNlJyk7Cit9KTsKKwordGVzdENhc2UoZnVuY3Rpb24o
KQoreworICAgIGRlYnVnKCdBbm90aGVyIGNvbXBsZXggY2FzZSBmb3Igc2luZ2xlIFNoYWRvd1Jv
b3QnKTsKKworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iI2Zv
bywuZm9vLGRpdltmb29dIj48L2NvbnRlbnQ+JzsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhh
c1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9vIiknLCAndHJ1ZScpOworICAgIHNob3Vs
ZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJmb28iKScs
ICd0cnVlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0
ZUluU2hhZG93KGhvc3QsICJmb28iKScsICd0cnVlJyk7Cit9KTsKKwordGVzdENhc2UoZnVuY3Rp
b24oKQoreworICAgIGRlYnVnKCdNdWx0aXBsZSBTaGFkb3dSb290IGNhc2UnKTsKKworICAgIHZh
ciBhbm90aGVyU2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGhvc3QpOworCisgICAg
c2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSIjZm9vIj48L2NvbnRlbnQ+
JzsKKyAgICBhbm90aGVyU2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSIj
YmFyIj48L2NvbnRlbnQ+PGNvbnRlbnQgc2VsZWN0PSJkaXZbYmF6XSwuYmFyIj48L2NvbnRlbnQ+
JzsKKworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhv
c3QsICJmb28iKScsICd0cnVlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3Rv
ckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIpJywgJ3RydWUnKTsKKyAgICBzaG91bGRCZSgnaW50
ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmF6IiknLCAnZmFsc2UnKTsK
KworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhv
c3QsICJmb28iKScsICdmYWxzZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0
b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJiYXIiKScsICd0cnVlJyk7CisgICAgc2hvdWxkQmUo
J2ludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImJheiIpJywgJ2Zh
bHNlJyk7CisKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRl
SW5TaGFkb3coaG9zdCwgImZvbyIpJywgJ2ZhbHNlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFs
cy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJiYXIiKScsICdmYWxzZScp
OworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRv
dyhob3N0LCAiYmF6IiknLCAndHJ1ZScpOworfSk7CisKK3Rlc3RDYXNlKGZ1bmN0aW9uKCkKK3sK
KyAgICBkZWJ1ZygnRHluYW1pYyBzZWxlY3QgYXR0cmlidXRlIHVwZGF0ZScpOworCisgICAgc2hh
ZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSIjZm9vIj48L2NvbnRlbnQ+JzsK
KworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3Qs
ICJmb28iKScsICd0cnVlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZv
cklkSW5TaGFkb3coaG9zdCwgImJhciIpJywgJ2ZhbHNlJyk7CisKKyAgICB2YXIgY29udGVudCA9
IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignY29udGVudCcpOworICAgIGNvbnRlbnQuc2VsZWN0
ID0gJyNiYXInOworCisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5T
aGFkb3coaG9zdCwgImZvbyIpJywgJ2ZhbHNlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5o
YXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIpJywgJ3RydWUnKTsKK30pOworCit0
ZXN0Q2FzZShmdW5jdGlvbigpCit7CisgICAgZGVidWcoJ05lc3RlZCBTaGFkb3dET00gY2FzZScp
OworCisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSIjZm9vIj48
L2NvbnRlbnQ+JzsKKworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKKyAgICB2YXIgbmVzdGVkU2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGRpdik7
CisgICAgbmVzdGVkU2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSIjYmFy
Ij48L2NvbnRlbnQ+JzsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGRpdik7CisKKyAgICBz
aG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9vIikn
LCAndHJ1ZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hh
ZG93KGhvc3QsICJiYXIiKScsICd0cnVlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNT
ZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJheiIpJywgJ2ZhbHNlJyk7CisKKyAgICB2YXIg
Y29udGVudCA9IG5lc3RlZFNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignY29udGVudCcpOworICAg
IGNvbnRlbnQuc2VsZWN0ID0gJyNiYXonOworCisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNT
ZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImZvbyIpJywgJ3RydWUnKTsKKyAgICBzaG91bGRC
ZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmFyIiknLCAnZmFs
c2UnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyho
b3N0LCAiYmF6IiknLCAndHJ1ZScpOworfSk7CisKK2ZpbmlzaEpTVGVzdCgpOworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cK
aW5kZXggYWY2ZDk3NmZmMDM1MWE5OTEzMjdhZjczNWNiOWQ4OWU1MGU2ZjY0YS4uNTRiNTE0MTk4
Njk3MmRmMThiZDM1OGRhNDc2OGRlOWIyZmJiODA3YSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisr
KyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTExLTA4ICBTaGlueWEgS2F3YW5h
a2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbU2hhZG93XSBFbGVtZW50U2hh
ZG93IHNob3VsZCBoYXZlIFJ1bGVGZWF0dXJlU2V0IGZvciBzZWxlY3QgYXR0cmlidXRlIHNlbGVj
dG9ycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
MTE4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4
cG9zZXMgbmVjZXNzYXJ5IHN5bWJvbHMuCisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3N5
bWJvbHMuZmlsdGVyOgorCiAyMDEyLTExLTA4ICBSYXBoYWVsIEt1Ym8gZGEgQ29zdGEgIDxyYXBo
YWVsLmt1Ym8uZGEuY29zdGFAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIFR1cm4gV1RGX1VT
RV9USUxFRF9CQUNLSU5HX1NUT1JFIGluIE9wdGlvbnNFZmwuY21ha2UuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173213</attachid>
            <date>2012-11-08 23:11:16 -0800</date>
            <delta_ts>2012-11-11 19:40:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101180-20121109160924.patch</filename>
            <type>text/plain</type>
            <size>30150</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTMyYmVmZjgzMTU2NmZj
YjI3MGI2OWY5M2E0MjkyZDBlOTY1ZDFiMS4uNzllOWZiOWRmNWVhOGVmODk4ZWU2NjBhODNiNWQ3
MTYxN2RiZjEyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTExLTA4ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbU2hhZG93XSBF
bGVtZW50U2hhZG93IHNob3VsZCBoYXZlIFJ1bGVGZWF0dXJlU2V0IGZvciBzZWxlY3QgYXR0cmli
dXRlIHNlbGVjdG9ycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwMTE4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgaXMgYSBwcmVwYXJhdGlvbiBwYXRjaCBmb3IgQnVnIDEwMDQ1MS4KKworICAg
ICAgICBXZSBwcmVzZXJ2ZSBSdWxlRmVhdHVyZVNldCBjb2xsZWN0ZWQgZnJvbSBzZWxlY3QgYXR0
cmlidXRlcyBpbiBTaGFkb3dET00uCisgICAgICAgIFdoZW4gYW4gZWxlbWVudCBhdHRyaWJ1dGUg
aXMgY2hhbmdlZCwgd2UgbWlnaHQgaGF2ZSB0byBpbnZhbGlkYXRlIGNvbnRlbnQgZGlzdHJpYnV0
aW9uLAorICAgICAgICBob3dldmVyIGl0J3MgaGlnaCBjb3N0IG9wZXJhdGlvbi4gU28gd2Ugd291
bGQgbGlrZSB0byBjaGVjayBSdWxlRmVhdHVyZVNldCB1c2VkIGluCisgICAgICAgIHNlbGVjdCBh
dHRyaWJ1dGVzIHRvIGRldGVybWluZSB3ZSByZWFsbHkgbmVlZCB0byBpbnZhbGlkYXRlIGRpc3Ry
aWJ1dGlvbi4KKworICAgICAgICBMaWtlIFN0eWxlUmVzb2x2ZXIsIEVsZW1lbnRTaGFkb3cgaGFz
IHNldmVyYWwgcnVsZSBmZWF0dXJlcy4gV2hlbiBuZXN0ZWQgU2hhZG93RE9NIGlzIHVzZWQsCisg
ICAgICAgIGZpcnN0IHdlIGNvbGxlY3QgZmVhdHVyZXMgaW4gbmVzdGVkIFNoYWRvd0RPTSwgYW5k
IG1lcmdlIGl0IHRvIHRoZSBwYXJlbnQgU2hhZG93RE9NLgorICAgICAgICBGb3IgdGhlIHBlcmZv
cm1hbmNlIHJlYXNvbiwgd2UgaGF2ZSBhIGZsYWcgdG8gY2hlY2sgd2hldGhlciB3ZSBuZWVkIHRv
IGNvbGxlY3QgZmVhdHVyZXMgYWdhaW4uCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1zZWxlY3QtYXR0cmlidXRlLWZlYXR1cmVzZXQuaHRtbAorCisgICAgICAgICogV2Vi
Q29yZS5leHAuaW46CisgICAgICAgICogZG9tL0VsZW1lbnRTaGFkb3cuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6RWxlbWVudFNoYWRvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50U2hhZG93OjpzZXRTaG91bGRDb2xsZWN0U2VsZWN0RmVhdHVyZVNldCk6IEVuYWJs
ZSBhIGZsYWcgdG8gY29sbGVjdCBmZWF0dXJlIHNldCBvZiBkZXNjZW5kYW50CisgICAgICAgIG5v
ZGVzIChhbmQgdGhlaXIgU2hhZG93RE9NKS4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6ZW5zdXJlU2VsZWN0RmVhdHVyZVNldENvbGxlY3RlZCk6
CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hhZG93Ojpjb2xsZWN0U2VsZWN0RmVhdHVyZVNl
dEZyb20pOiBDb2xsZWN0IFJ1bGVGZWF0dXJlU2V0IGZyb20gYWxsIGRlc2NlbmRhbnQgTm9kZXMg
YW5kIHRoZWlyCisgICAgICAgIFNoYWRvd0RPTS4gV2UgbmVlZCB0byBjb2xsZWN0IGlkLCBjbGFz
cywgYW5kIGF0dHJpYnV0ZSBuYW1lcy4KKyAgICAgICAgKiBkb20vRWxlbWVudFNoYWRvdy5oOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6c2hvdWxkQ29sbGVjdFNlbGVjdEZlYXR1
cmVTZXQpOgorICAgICAgICAoRWxlbWVudFNoYWRvdyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50U2hhZG93OjpoYXNTZWxlY3RvckZvcklkKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6aGFzU2VsZWN0b3JGb3JDbGFzcyk6CisgICAgICAg
IChXZWJDb3JlOjpFbGVtZW50U2hhZG93OjpoYXNTZWxlY3RvckZvckF0dHJpYnV0ZSk6CisgICAg
ICAgICogaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOiBXaGVuIHNlbGVjdCBhdHRy
aWJ1dGUgaXMgY2hhbmdlZCwgZW5hYmxlIGEgZmxhZyB0byByZWNvbGxlY3QgZmVhdHVyZXMuCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6Omluc2VydGVkSW50byk6IFdlIGhh
dmUgdG8gcmVjb2xsZWN0IGZlYXR1cmVzIHdoZW4gSFRNTENvbnRlbnRFbGVtZW50IGlzIG1vdmVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRFbGVtZW50OjpyZW1vdmVkRnJvbSk6IGRp
dHRvLgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oOgorICAgICAg
ICAoV2ViQ29yZTo6dG9IVE1MQ29udGVudEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJu
YWxzOjpoYXNTZWxlY3RvckZvcklkSW5TaGFkb3cpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Omhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Omhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFk
b3cpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgIChJbnRlcm5hbHMp
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMi0xMS0wOCAgSmFuIEtl
cm9tbmVzICA8amFueEBsaW51eC5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjogc3RvcCB1
c2luZyBjdXJzb3JDb29yZHMgaW4gQ29kZU1pcnJvclRleHRFZGl0b3IKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3
N2JhMzk4NTZmYTE3NDg2NzI3MDExNWIzNGM0ZDU2MTIyZWFiMDkyLi4yMzRkNjgwYzFiNjdkODlk
NjA1MTFkYThhZjg3NmFiMDJhM2EyOWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MTItMTEtMDggIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFtTaGFkb3ddIEVsZW1lbnRTaGFkb3cgc2hvdWxkIGhhdmUgUnVsZUZlYXR1cmVTZXQgZm9y
IHNlbGVjdCBhdHRyaWJ1dGUgc2VsZWN0b3JzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi5kZWY6CisgICAgICAgICogd2luL1dl
YktpdDJDRkxpdGUuZGVmOgorCiAyMDEyLTExLTA4ICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5
QGFwcGxlLmNvbT4KIAogICAgICAgICBBbHdheXMgdXNlIGEgdGV4dHVyZWQgd2luZG93IGZvciB0
aGUgV2ViIEluc3BlY3Rvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggYTVmMjM2N2FiMTJlNTU0
ZDQ4ZjhhYzE0NTUyYWRhMGNlNjNmYTFjYS4uNjBkYTQ4N2Y5NzM1YzFhNjMzNjMzMWU4MDQ2MWY5
YzYwNmY3YjhhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTIxNSw2ICsyMTUsNyBAQCBfX1pO
N1dlYkNvcmUxM0FYT2JqZWN0Q2FjaGU0MmdBY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJm
YWNlRW5hYmxlZEUKIF9fWk43V2ViQ29yZTEzQ2hhcmFjdGVyRGF0YTdzZXREYXRhRVJLTjNXVEY2
U3RyaW5nRVJpCiBfX1pON1dlYkNvcmUxM0NvbnRhaW5lck5vZGUxMWFwcGVuZENoaWxkRU4zV1RG
MTBQYXNzUmVmUHRySU5TXzROb2RlRUVFUmliCiBfX1pON1dlYkNvcmUxM0NvbnRhaW5lck5vZGUx
MXJlbW92ZUNoaWxkRVBOU180Tm9kZUVSaQorX19aTjdXZWJDb3JlMTNFbGVtZW50U2hhZG93MzFl
bnN1cmVTZWxlY3RGZWF0dXJlU2V0Q29sbGVjdGVkRXYKIF9fWk43V2ViQ29yZTEzSFRUUEhlYWRl
ck1hcEMxRXYKIF9fWk43V2ViQ29yZTEzSFRUUEhlYWRlck1hcEQxRXYKIF9fWk43V2ViQ29yZTEz
SGl0VGVzdFJlc3VsdEMxRVJLUzBfCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudFNoYWRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5jcHAKaW5k
ZXggNmY4N2YxNjQ0YWZiOTRiZmJmZTVlYjc4Y2ViMzFmZWU0NTE2MmYxYi4uZDA3MDVlZjI0ZTNm
MWYzNDEzMDAzNjMyMDFiZTA5YzU0MTY1MDliZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnRTaGFkb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hh
ZG93LmNwcApAQCAtMjcsOSArMjcsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJFbGVtZW50U2hhZG93LmgiCiAKKyNpbmNsdWRlICJDU1NQYXJzZXIuaCIKKyNpbmNsdWRlICJD
U1NTZWxlY3Rvckxpc3QuaCIKICNpbmNsdWRlICJDb250YWluZXJOb2RlQWxnb3JpdGhtcy5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxDb250ZW50RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxTaGFkb3dFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5o
IgpAQCAtMzksNiArNDIsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBFbGVtZW50U2hhZG93
OjpFbGVtZW50U2hhZG93KCkKKyAgICA6IG1fc2hvdWxkQ29sbGVjdFNlbGVjdEZlYXR1cmVTZXQo
ZmFsc2UpCiB7CiB9CiAKQEAgLTIwMyw2ICsyMDcsNTIgQEAgdm9pZCBFbGVtZW50U2hhZG93Ojpp
bnZhbGlkYXRlRGlzdHJpYnV0aW9uKEVsZW1lbnQqIGhvc3QpCiAgICAgICAgIG1fZGlzdHJpYnV0
b3IuZmluaXNoSW5pdmFsaWRhdGlvbigpOwogfQogCit2b2lkIEVsZW1lbnRTaGFkb3c6OnNldFNo
b3VsZENvbGxlY3RTZWxlY3RGZWF0dXJlU2V0KCkKK3sKKyAgICBpZiAoc2hvdWxkQ29sbGVjdFNl
bGVjdEZlYXR1cmVTZXQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zaG91bGRDb2xsZWN0
U2VsZWN0RmVhdHVyZVNldCA9IHRydWU7CisKKyAgICBpZiAoU2hhZG93Um9vdCogcGFyZW50U2hh
ZG93Um9vdCA9IGhvc3QoKS0+c2hhZG93Um9vdCgpKSB7CisgICAgICAgIGlmIChFbGVtZW50U2hh
ZG93KiBwYXJlbnRFbGVtZW50U2hhZG93ID0gcGFyZW50U2hhZG93Um9vdC0+b3duZXIoKSkKKyAg
ICAgICAgICAgIHBhcmVudEVsZW1lbnRTaGFkb3ctPnNldFNob3VsZENvbGxlY3RTZWxlY3RGZWF0
dXJlU2V0KCk7CisgICAgfQorfQorCit2b2lkIEVsZW1lbnRTaGFkb3c6OmVuc3VyZVNlbGVjdEZl
YXR1cmVTZXRDb2xsZWN0ZWQoKQoreworICAgIGlmICghbV9zaG91bGRDb2xsZWN0U2VsZWN0RmVh
dHVyZVNldCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zZWxlY3RGZWF0dXJlcy5jbGVhcigp
OworICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IG9sZGVzdFNoYWRvd1Jvb3QoKTsgcm9vdDsg
cm9vdCA9IHJvb3QtPnlvdW5nZXJTaGFkb3dSb290KCkpCisgICAgICAgIGNvbGxlY3RTZWxlY3RG
ZWF0dXJlU2V0RnJvbShyb290KTsKKyAgICBtX3Nob3VsZENvbGxlY3RTZWxlY3RGZWF0dXJlU2V0
ID0gZmFsc2U7Cit9CisKK3ZvaWQgRWxlbWVudFNoYWRvdzo6Y29sbGVjdFNlbGVjdEZlYXR1cmVT
ZXRGcm9tKFNoYWRvd1Jvb3QqIHJvb3QpCit7CisgICAgaWYgKHJvb3QtPmhhc0VsZW1lbnRTaGFk
b3coKSkgeworICAgICAgICBmb3IgKE5vZGUqIG5vZGUgPSByb290LT5maXJzdENoaWxkKCk7IG5v
ZGU7IG5vZGUgPSBub2RlLT50cmF2ZXJzZU5leHROb2RlKCkpIHsKKyAgICAgICAgICAgIGlmIChF
bGVtZW50U2hhZG93KiBlbGVtZW50U2hhZG93ID0gbm9kZS0+aXNFbGVtZW50Tm9kZSgpID8gdG9F
bGVtZW50KG5vZGUpLT5zaGFkb3coKSA6IDApIHsKKyAgICAgICAgICAgICAgICBlbGVtZW50U2hh
ZG93LT5lbnN1cmVTZWxlY3RGZWF0dXJlU2V0Q29sbGVjdGVkKCk7CisgICAgICAgICAgICAgICAg
bV9zZWxlY3RGZWF0dXJlcy5hZGQoZWxlbWVudFNoYWRvdy0+bV9zZWxlY3RGZWF0dXJlcyk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAocm9vdC0+aGFzQ29udGVu
dEVsZW1lbnQoKSkgeworICAgICAgICBmb3IgKE5vZGUqIG5vZGUgPSByb290LT5maXJzdENoaWxk
KCk7IG5vZGU7IG5vZGUgPSBub2RlLT50cmF2ZXJzZU5leHROb2RlKCkpIHsKKyAgICAgICAgICAg
IGlmIChpc0hUTUxDb250ZW50RWxlbWVudChub2RlKSkgeworICAgICAgICAgICAgICAgIGNvbnN0
IENTU1NlbGVjdG9yTGlzdCYgbGlzdCA9IHRvSFRNTENvbnRlbnRFbGVtZW50KG5vZGUpLT5zZWxl
Y3Rvckxpc3QoKTsKKyAgICAgICAgICAgICAgICBmb3IgKENTU1NlbGVjdG9yKiBzZWxlY3RvciA9
IGxpc3QuZmlyc3QoKTsgc2VsZWN0b3I7IHNlbGVjdG9yID0gbGlzdC5uZXh0KHNlbGVjdG9yKSkK
KyAgICAgICAgICAgICAgICAgICAgbV9zZWxlY3RGZWF0dXJlcy5jb2xsZWN0RmVhdHVyZXNGcm9t
U2VsZWN0b3Ioc2VsZWN0b3IpOyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICB9Cit9CisKIHZvaWQgRWxlbWVudFNoYWRvdzo6cmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAgICBNZW1v
cnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlw
ZXM6OkRPTSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuaAppbmRleCAyZjZmNTZjNzRmNjY5
MmNlZTM0NDg2YTlhN2Y5YjAyMWM3MGU5Mjg1Li5kMTAxNmM1NjVhNzc4MTVlZjYwZTNhN2QzZDk4
MjI2MTI4YTYwOTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRv
dy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmgKQEAgLTI5LDYgKzI5
LDcgQEAKIAogI2luY2x1ZGUgIkNvbnRlbnREaXN0cmlidXRvci5oIgogI2luY2x1ZGUgIkV4Y2Vw
dGlvbkNvZGUuaCIKKyNpbmNsdWRlICJSdWxlRmVhdHVyZS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jv
b3QuaCIKICNpbmNsdWRlIDx3dGYvRG91Ymx5TGlua2VkTGlzdC5oPgogI2luY2x1ZGUgPHd0Zi9O
b25jb3B5YWJsZS5oPgpAQCAtNjksMTMgKzcwLDI1IEBAIHB1YmxpYzoKICAgICBDb250ZW50RGlz
dHJpYnV0b3ImIGRpc3RyaWJ1dG9yKCk7CiAgICAgY29uc3QgQ29udGVudERpc3RyaWJ1dG9yJiBk
aXN0cmlidXRvcigpIGNvbnN0OwogCisgICAgYm9vbCBzaG91bGRDb2xsZWN0U2VsZWN0RmVhdHVy
ZVNldCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ29sbGVjdFNlbGVjdEZlYXR1cmVTZXQ7IH0K
KyAgICB2b2lkIHNldFNob3VsZENvbGxlY3RTZWxlY3RGZWF0dXJlU2V0KCk7CisgICAgdm9pZCBl
bnN1cmVTZWxlY3RGZWF0dXJlU2V0Q29sbGVjdGVkKCk7CisKKyAgICBib29sIGhhc1NlbGVjdG9y
Rm9ySWQoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7CisgICAgYm9vbCBoYXNTZWxlY3RvckZv
ckNsYXNzKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0OworICAgIGJvb2wgaGFzU2VsZWN0b3JG
b3JBdHRyaWJ1dGUoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7CisKICAgICB2b2lkIHJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICB2
b2lkIGludmFsaWRhdGVEaXN0cmlidXRpb24oRWxlbWVudCogaG9zdCk7CiAKKyAgICB2b2lkIGNv
bGxlY3RTZWxlY3RGZWF0dXJlU2V0RnJvbShTaGFkb3dSb290Kik7CisKICAgICBEb3VibHlMaW5r
ZWRMaXN0PFNoYWRvd1Jvb3Q+IG1fc2hhZG93Um9vdHM7CiAgICAgQ29udGVudERpc3RyaWJ1dG9y
IG1fZGlzdHJpYnV0b3I7CisgICAgUnVsZUZlYXR1cmVTZXQgbV9zZWxlY3RGZWF0dXJlczsKKyAg
ICBib29sIG1fc2hvdWxkQ29sbGVjdFNlbGVjdEZlYXR1cmVTZXQgOiAxOwogfTsKIAogaW5saW5l
IFNoYWRvd1Jvb3QqIEVsZW1lbnRTaGFkb3c6OnlvdW5nZXN0U2hhZG93Um9vdCgpIGNvbnN0CkBA
IC0xMTMsNiArMTI2LDI3IEBAIGlubGluZSBTaGFkb3dSb290KiBOb2RlOjp5b3VuZ2VzdFNoYWRv
d1Jvb3QoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCitpbmxpbmUgYm9vbCBFbGVtZW50U2hh
ZG93OjpoYXNTZWxlY3RvckZvcklkKGNvbnN0IEF0b21pY1N0cmluZyYgaWRWYWx1ZSkgY29uc3QK
K3sKKyAgICBBU1NFUlQoIWlkVmFsdWUuaXNFbXB0eSgpKTsKKyAgICBBU1NFUlQoIW1fc2hvdWxk
Q29sbGVjdFNlbGVjdEZlYXR1cmVTZXQpOworICAgIHJldHVybiBtX3NlbGVjdEZlYXR1cmVzLmlk
c0luUnVsZXMuY29udGFpbnMoaWRWYWx1ZS5pbXBsKCkpOworfQorCitpbmxpbmUgYm9vbCBFbGVt
ZW50U2hhZG93OjpoYXNTZWxlY3RvckZvckNsYXNzKGNvbnN0IEF0b21pY1N0cmluZyYgY2xhc3NW
YWx1ZSkgY29uc3QKK3sKKyAgICBBU1NFUlQoIWNsYXNzVmFsdWUuaXNFbXB0eSgpKTsKKyAgICBB
U1NFUlQoIW1fc2hvdWxkQ29sbGVjdFNlbGVjdEZlYXR1cmVTZXQpOworICAgIHJldHVybiBtX3Nl
bGVjdEZlYXR1cmVzLmNsYXNzZXNJblJ1bGVzLmNvbnRhaW5zKGNsYXNzVmFsdWUuaW1wbCgpKTsK
K30KKworaW5saW5lIGJvb2wgRWxlbWVudFNoYWRvdzo6aGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGUo
Y29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVOYW1lKSBjb25zdAoreworICAgIEFTU0VSVCgh
YXR0cmlidXRlTmFtZS5pc0VtcHR5KCkpOworICAgIEFTU0VSVCghbV9zaG91bGRDb2xsZWN0U2Vs
ZWN0RmVhdHVyZVNldCk7CisgICAgcmV0dXJuIG1fc2VsZWN0RmVhdHVyZXMuYXR0cnNJblJ1bGVz
LmNvbnRhaW5zKGF0dHJpYnV0ZU5hbWUuaW1wbCgpKTsKK30KKwogY2xhc3MgU2hhZG93Um9vdFZl
Y3RvciA6IHB1YmxpYyBWZWN0b3I8UmVmUHRyPFNoYWRvd1Jvb3Q+ID4gewogcHVibGljOgogICAg
IGV4cGxpY2l0IFNoYWRvd1Jvb3RWZWN0b3IoRWxlbWVudFNoYWRvdyogdHJlZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCmluZGV4IDcx
NDg5ZjlmMzhkMzcxOWQyMzhlMGQ3N2IyYTNkMDMzMGU0NTAyMGEuLjNkOTYzZjkzMzQ2YTczZjI4
NTc4NjA1YzU1MTEwYTE2ZmQ3OTc3ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcApAQCAtMTAxLDggKzEwMSwxMCBAQCB2b2lkIEhU
TUxDb250ZW50RWxlbWVudDo6ZW5zdXJlU2VsZWN0UGFyc2VkKCkKIHZvaWQgSFRNTENvbnRlbnRF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkKIHsKICAg
ICBpZiAoYXR0cmlidXRlLm5hbWUoKSA9PSBzZWxlY3RBdHRyKSB7Ci0gICAgICAgIGlmIChTaGFk
b3dSb290KiByb290ID0gc2hhZG93Um9vdCgpKQorICAgICAgICBpZiAoU2hhZG93Um9vdCogcm9v
dCA9IHNoYWRvd1Jvb3QoKSkgeworICAgICAgICAgICAgcm9vdC0+b3duZXIoKS0+c2V0U2hvdWxk
Q29sbGVjdFNlbGVjdEZlYXR1cmVTZXQoKTsKICAgICAgICAgICAgIHJvb3QtPm93bmVyKCktPmlu
dmFsaWRhdGVEaXN0cmlidXRpb24oKTsKKyAgICAgICAgfQogICAgICAgICBtX3Nob3VsZFBhcnNl
U2VsZWN0b3JMaXN0ID0gdHJ1ZTsKICAgICB9IGVsc2UKICAgICAgICAgSW5zZXJ0aW9uUG9pbnQ6
OnBhcnNlQXR0cmlidXRlKGF0dHJpYnV0ZSk7CkBAIC0xMTMsNyArMTE1LDkgQEAgTm9kZTo6SW5z
ZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBIVE1MQ29udGVudEVsZW1lbnQ6Omluc2VydGVkSW50
byhDb250YWluZXJOb2QKICAgICBJbnNlcnRpb25Qb2ludDo6aW5zZXJ0ZWRJbnRvKGluc2VydGlv
blBvaW50KTsKIAogICAgIGlmIChpbnNlcnRpb25Qb2ludC0+aW5Eb2N1bWVudCgpICYmIGlzQWN0
aXZlKCkpIHsKLSAgICAgICAgc2hhZG93Um9vdCgpLT5yZWdpc3RlckNvbnRlbnRFbGVtZW50KCk7
CisgICAgICAgIFNoYWRvd1Jvb3QqIHJvb3QgPSBzaGFkb3dSb290KCk7CisgICAgICAgIHJvb3Qt
PnJlZ2lzdGVyQ29udGVudEVsZW1lbnQoKTsKKyAgICAgICAgcm9vdC0+b3duZXIoKS0+c2V0U2hv
dWxkQ29sbGVjdFNlbGVjdEZlYXR1cmVTZXQoKTsKICAgICAgICAgbV9yZWdpc3RlcmVkV2l0aFNo
YWRvd1Jvb3QgPSB0cnVlOwogICAgIH0KIApAQCAtMTI5LDYgKzEzMyw5IEBAIHZvaWQgSFRNTENv
bnRlbnRFbGVtZW50OjpyZW1vdmVkRnJvbShDb250YWluZXJOb2RlKiBpbnNlcnRpb25Qb2ludCkK
ICAgICAgICAgaWYgKHJvb3QpCiAgICAgICAgICAgICByb290LT51bnJlZ2lzdGVyQ29udGVudEVs
ZW1lbnQoKTsKICAgICAgICAgbV9yZWdpc3RlcmVkV2l0aFNoYWRvd1Jvb3QgPSBmYWxzZTsKKwor
ICAgICAgICBpZiAoRWxlbWVudFNoYWRvdyogZWxlbWVudFNoYWRvdyA9IHJvb3QgPyByb290LT5v
d25lcigpIDogMCkKKyAgICAgICAgICAgIGVsZW1lbnRTaGFkb3ctPnNldFNob3VsZENvbGxlY3RT
ZWxlY3RGZWF0dXJlU2V0KCk7CiAgICAgfQogICAgIEluc2VydGlvblBvaW50OjpyZW1vdmVkRnJv
bShpbnNlcnRpb25Qb2ludCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hU
TUxDb250ZW50RWxlbWVudC5oCmluZGV4IDA0MjU0ZTEyYjIyM2JjMDM5MDNlZDM0MmNiYWViZjE3
ZGU5ZjIwMTYuLmVkMGIwODg4NDMyY2QzZjM2ZTkxMTdmYTkxOTkyOTgxNmVhMTQ5ZDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oCkBAIC04
Niw2ICs4NiwxMiBAQCBpbmxpbmUgYm9vbCBpc0hUTUxDb250ZW50RWxlbWVudChjb25zdCBOb2Rl
KiBub2RlKQogICAgIHJldHVybiBub2RlLT5oYXNUYWdOYW1lKEhUTUxDb250ZW50RWxlbWVudDo6
Y29udGVudFRhZ05hbWUobm9kZS0+ZG9jdW1lbnQoKSkpOwogfQogCitpbmxpbmUgSFRNTENvbnRl
bnRFbGVtZW50KiB0b0hUTUxDb250ZW50RWxlbWVudChOb2RlKiBub2RlKQoreworICAgIEFTU0VS
VCghbm9kZSB8fCBpc0hUTUxDb250ZW50RWxlbWVudChub2RlKSk7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PEhUTUxDb250ZW50RWxlbWVudCo+KG5vZGUpOworfQorCiB9CiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGU0ZDMwODQxMGEwNjMzNjhmY2VjNjBj
MmRlYzM5MmJmN2UyZTlkYTcuLjdiZTE4ZDliZTViNzU1ZDRjYWY3OWFhOGU3NGY4NDg1Mjg4MDY2
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTMwNiw2ICszMDYsMzkg
QEAgTm9kZSogSW50ZXJuYWxzOjpwYXJlbnRUcmVlU2NvcGUoTm9kZSogbm9kZSwgRXhjZXB0aW9u
Q29kZSYgZWMpCiAgICAgcmV0dXJuIHBhcmVudFRyZWVTY29wZSA/IHBhcmVudFRyZWVTY29wZS0+
cm9vdE5vZGUoKSA6IDA7CiB9CiAKK2Jvb2wgSW50ZXJuYWxzOjpoYXNTZWxlY3RvckZvcklkSW5T
aGFkb3coRWxlbWVudCogaG9zdCwgY29uc3QgU3RyaW5nJiBpZFZhbHVlLCBFeGNlcHRpb25Db2Rl
JiBlYykKK3sKKyAgICBpZiAoIWhvc3QgfHwgIWhvc3QtPnNoYWRvdygpKSB7CisgICAgICAgIGVj
ID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBo
b3N0LT5zaGFkb3coKS0+ZW5zdXJlU2VsZWN0RmVhdHVyZVNldENvbGxlY3RlZCgpOworICAgIHJl
dHVybiBob3N0LT5zaGFkb3coKS0+aGFzU2VsZWN0b3JGb3JJZChpZFZhbHVlKTsKK30KKworYm9v
bCBJbnRlcm5hbHM6Omhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhFbGVtZW50KiBob3N0LCBj
b25zdCBTdHJpbmcmIGNsYXNzTmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFo
b3N0IHx8ICFob3N0LT5zaGFkb3coKSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VS
UjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgaG9zdC0+c2hhZG93KCktPmVuc3Vy
ZVNlbGVjdEZlYXR1cmVTZXRDb2xsZWN0ZWQoKTsKKyAgICByZXR1cm4gaG9zdC0+c2hhZG93KCkt
Pmhhc1NlbGVjdG9yRm9yQ2xhc3MoY2xhc3NOYW1lKTsKK30KKworYm9vbCBJbnRlcm5hbHM6Omhh
c1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coRWxlbWVudCogaG9zdCwgY29uc3QgU3RyaW5n
JiBhdHRyaWJ1dGVOYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIWhvc3QgfHwg
IWhvc3QtPnNoYWRvdygpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAg
ICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBob3N0LT5zaGFkb3coKS0+ZW5zdXJlU2VsZWN0
RmVhdHVyZVNldENvbGxlY3RlZCgpOworICAgIHJldHVybiBob3N0LT5zaGFkb3coKS0+aGFzU2Vs
ZWN0b3JGb3JBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7Cit9CisKIGJvb2wgSW50ZXJuYWxzOjpo
YXNTaGFkb3dJbnNlcnRpb25Qb2ludChjb25zdCBOb2RlKiByb290LCBFeGNlcHRpb25Db2RlJiBl
YykgY29uc3QKIHsKICAgICBpZiAocm9vdCAmJiByb290LT5pc1NoYWRvd1Jvb3QoKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDIxMTE3Mzk3YzgxMWM4NThmM2IxZjQ5ZmM1N2Qx
NmFjMjVhNzExMjEuLjU0NGQzMWU4ODk0NTBlNTUxZDdjOGJkMjkxMzZjN2M3MTJhMDRlZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtOTYsNiArOTYsOSBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc1ZhbGlkQ29udGVudFNlbGVjdChFbGVtZW50KiBpbnNlcnRpb25Qb2ludCwgRXhj
ZXB0aW9uQ29kZSYpOwogICAgIE5vZGUqIHRyZWVTY29wZVJvb3ROb2RlKE5vZGUqLCBFeGNlcHRp
b25Db2RlJik7CiAgICAgTm9kZSogcGFyZW50VHJlZVNjb3BlKE5vZGUqLCBFeGNlcHRpb25Db2Rl
Jik7CisgICAgYm9vbCBoYXNTZWxlY3RvckZvcklkSW5TaGFkb3coRWxlbWVudCogaG9zdCwgY29u
c3QgU3RyaW5nJiBpZFZhbHVlLCBFeGNlcHRpb25Db2RlJik7CisgICAgYm9vbCBoYXNTZWxlY3Rv
ckZvckNsYXNzSW5TaGFkb3coRWxlbWVudCogaG9zdCwgY29uc3QgU3RyaW5nJiBjbGFzc05hbWUs
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBib29sIGhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFk
b3coRWxlbWVudCogaG9zdCwgY29uc3QgU3RyaW5nJiBhdHRyaWJ1dGVOYW1lLCBFeGNlcHRpb25D
b2RlJik7CiAKICAgICBib29sIGF0dGFjaGVkKE5vZGUqLCBFeGNlcHRpb25Db2RlJik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA3YTVhYjdiOTBlZGI2NGI2NTBkYzM0
MzdiNDNhMWQ2OTk3MWIwMWFkLi4zMDRlNjRjOGVlY2QwMGY1MzIzZWRjNjJhMGFlZjhlZjgzMTdi
ZWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC01OSw2ICs1OSw5IEBA
CiAgICAgYm9vbGVhbiBpc1ZhbGlkQ29udGVudFNlbGVjdChpbiBFbGVtZW50IGNvbnRlbnRFbGVt
ZW50KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICBOb2RlIHRyZWVTY29wZVJvb3ROb2RlKGlu
IE5vZGUgbm9kZSkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgIE5vZGUgcGFyZW50VHJlZVNj
b3BlKGluIE5vZGUgbm9kZSkgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgIGJvb2xlYW4gaGFz
U2VsZWN0b3JGb3JJZEluU2hhZG93KGluIEVsZW1lbnQgaG9zdCwgaW4gRE9NU3RyaW5nIGlkKSBy
YWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgYm9vbGVhbiBoYXNTZWxlY3RvckZvckNsYXNzSW5T
aGFkb3coaW4gRWxlbWVudCBob3N0LCBpbiBET01TdHJpbmcgY2xhc3NOYW1lKSByYWlzZXMgKERP
TUV4Y2VwdGlvbik7CisgICAgYm9vbGVhbiBoYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93
KGluIEVsZW1lbnQgaG9zdCwgaW4gRE9NU3RyaW5nIGF0dHJpYnV0ZU5hbWUpIHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKIAogICAgIE5vZGUgbmV4dFNpYmxpbmdCeVdhbGtlcihpbiBOb2RlIG5vZGUp
IHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIE5vZGUgZmlyc3RDaGlsZEJ5V2Fsa2VyKGluIE5v
ZGUgbm9kZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKaW5kZXgg
OTY2MjgyZjk4YzRmNzdkZjE4OTFjZTFlOWYxMDUzZWFhOTEyMGJmMC4uNzUyMWNhNzU4MTJkMTJh
MjkyNGY3Y2YxOTFlNzM5YjIyMGZkYTI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDIuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgpAQCAtMTY4
LDYgKzE2OCw3IEBAIEVYUE9SVFMKICAgICAgICAgP2NyZWF0ZUBTaGFkb3dSb290QFdlYkNvcmVA
QFNBP0FWPyRQYXNzUmVmUHRyQFZTaGFkb3dSb290QFdlYkNvcmVAQEBXVEZAQFBBVkVsZW1lbnRA
MkBBQUhAWgogICAgICAgICA/Y3JlYXRlV3JhcHBlckBXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlND
QEBQQVZFeGVjU3RhdGVAM0BQQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBBVk5vZGVAMUBAWgogICAg
ICAgICA/ZG9jdW1lbnRTdGF0ZUBIaXN0b3J5SXRlbUBXZWJDb3JlQEBRQkVBQlY/JFZlY3RvckBW
U3RyaW5nQFdURkBAJDBBQEBXVEZAQFhaCisgICAgICAgID9lbnN1cmVTZWxlY3RGZWF0dXJlU2V0
Q29sbGVjdGVkQEVsZW1lbnRTaGFkb3dAV2ViQ29yZUBAUUFFWFhaCiAgICAgICAgID9lcXVhbEBX
VEZAQFlBX05QQlZTdHJpbmdJbXBsQDFAUEJFQFoKICAgICAgICAgP2VxdWFsQFdURkBAWUFfTlBC
VlN0cmluZ0ltcGxAMUAwQFoKICAgICAgICAgP2VxdWFsSWdub3JpbmdDYXNlQFdURkBAWUFfTlBB
VlN0cmluZ0ltcGxAMUBQQkVAWgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktp
dDJDRkxpdGUuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCmluZGV4
IGM3OTZiNjAxNjExODZhMTE0Mzc0ZjdkMDI4ZGExMzg1ZDNkZTZhNjYuLjQ2ZjhmYTk1MjdlYTU0
N2IwZjIyMzFiNzAwYjY3ZWM4MDZiYWFkN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dp
bi9XZWJLaXQyQ0ZMaXRlLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0
ZS5kZWYKQEAgLTE2MSw2ICsxNjEsNyBAQCBFWFBPUlRTCiAgICAgICAgID9jcmVhdGVAU2hhZG93
Um9vdEBXZWJDb3JlQEBTQT9BVj8kUGFzc1JlZlB0ckBWU2hhZG93Um9vdEBXZWJDb3JlQEBAV1RG
QEBQQVZFbGVtZW50QDJAQUFIQFoKICAgICAgICAgP2NyZWF0ZVdyYXBwZXJAV2ViQ29yZUBAWUE/
QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQQVZO
b2RlQDFAQFoKICAgICAgICAgP2RvY3VtZW50U3RhdGVASGlzdG9yeUl0ZW1AV2ViQ29yZUBAUUJF
QUJWPyRWZWN0b3JAVlN0cmluZ0BXVEZAQCQwQUBAV1RGQEBYWgorICAgICAgICA/ZW5zdXJlU2Vs
ZWN0RmVhdHVyZVNldENvbGxlY3RlZEBFbGVtZW50U2hhZG93QFdlYkNvcmVAQFFBRVhYWgogICAg
ICAgICA/ZXF1YWxAV1RGQEBZQV9OUEJWU3RyaW5nSW1wbEAxQFBCRUBaCiAgICAgICAgID9lcXVh
bEBXVEZAQFlBX05QQlZTdHJpbmdJbXBsQDFAMEBaCiAgICAgICAgID9lcXVhbElnbm9yaW5nQ2Fz
ZUBXVEZAQFlBX05QQVZTdHJpbmdJbXBsQDFAUEJFQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRv
dG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmlu
ZGV4IGQ4MmYxNzk4NTExYzI2ZDQ3YmY1NDU0NTA0ZmMwNjY1ZmVjOTZiZTkuLjk0ZDQ2Y2M3ODc5
Yzg2YzNlZmJlMmVhMWY0MzExMjNkNzFkMzI5NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9v
bHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpA
QCAtNTYsNiArNTYsNyBAQCBfWk43V2ViQ29yZTEyVGV4dEl0ZXJhdG9yMjZyYW5nZUZyb21Mb2Nh
dGlvbkFuZExlbmd0aEVQTlNfMTNDb250YWluZXJOb2RlRWlpYjsKIF9aTjdXZWJDb3JlMTJUZXh0
SXRlcmF0b3IyOWdldExvY2F0aW9uQW5kTGVuZ3RoRnJvbVJhbmdlRVBOU183RWxlbWVudEVQS05T
XzVSYW5nZUVSalM2XzsKIF9aTjdXZWJDb3JlMTJUZXh0SXRlcmF0b3IyOWdldExvY2F0aW9uQW5k
TGVuZ3RoRnJvbVJhbmdlRVBOU183RWxlbWVudEVQS05TXzVSYW5nZUVSbVM2XzsKIF9aTjdXZWJD
b3JlMTJQcmludENvbnRleHQyMHBhZ2VOdW1iZXJGb3JFbGVtZW50RVBOU183RWxlbWVudEVSS05T
XzlGbG9hdFNpemVFOworX1pON1dlYkNvcmUxM0VsZW1lbnRTaGFkb3czMWVuc3VyZVNlbGVjdEZl
YXR1cmVTZXRDb2xsZWN0ZWRFdjsKIF9aTjdXZWJDb3JlMTNjcmVhdGVXcmFwcGVyRVBOM0pTQzlF
eGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE5TXzROb2RlRTsKIF9aTjdXZWJDb3Jl
MTRDbGllbnRSZWN0TGlzdEMxRVJLTjNXVEY2VmVjdG9ySU5TXzlGbG9hdFF1YWRFTGowRUVFOwog
X1pON1dlYkNvcmUxNENsaWVudFJlY3RMaXN0QzFFUktOM1dURjZWZWN0b3JJTlNfOUZsb2F0UXVh
ZEVMbTBFRUU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggNWRlNTM1YjVmYjZjZmYyN2YwMzEzOGI1YzViZjFkNzYyYjY3OGIx
NS4uNmE4YjcxNzM1OTk2OTI1Njg1M2IwZWM0ZDkxNjRhZWFhNTk4Njk4MSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDEyLTExLTA4ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBbU2hhZG93XSBFbGVtZW50U2hhZG93IHNob3VsZCBoYXZlIFJ1bGVG
ZWF0dXJlU2V0IGZvciBzZWxlY3QgYXR0cmlidXRlIHNlbGVjdG9ycy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTE4MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1zZWxlY3QtYXR0cmlidXRlLWZlYXR1cmVzZXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXNlbGVjdC1hdHRyaWJ1dGUtZmVhdHVyZXNldC5o
dG1sOiBBZGRlZC4KKwogMjAxMi0xMS0wOCAgTm9lbCBHb3Jkb24gIDxub2VsLmdvcmRvbkBnbWFp
bC5jb20+CiAKICAgICAgICAgW2Nocm9taXVtXSBVbnJldmlld2VkIHRlc3QgZXhwZWN0YXRpb25z
IHVwZGF0ZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
c2VsZWN0LWF0dHJpYnV0ZS1mZWF0dXJlc2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctc2VsZWN0LWF0dHJpYnV0ZS1mZWF0dXJlc2V0LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jY2RhNDRkOTA0ZDIzMWVmNDYwNzA2NTY4MmI2ZjBmMTg2OWJiMDI2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1z
ZWxlY3QtYXR0cmlidXRlLWZlYXR1cmVzZXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzUgQEAK
K0lkIHNob3VsZCBiZSBjb2xsZWN0ZWQKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJ
blNoYWRvdyhob3N0LCAiZm9vIikgaXMgdHJ1ZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JG
b3JJZEluU2hhZG93KGhvc3QsICJiYXIiKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2Vs
ZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJob3N0IikgaXMgZmFsc2UKKworQ2xhc3Mgc2hvdWxk
IGJlIGNvbGxlY3RlZAorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93
KGhvc3QsICJmb28iKSBpcyB0cnVlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNz
SW5TaGFkb3coaG9zdCwgImhvc3QiKSBpcyBmYWxzZQorCitBdHRyaWJ1dGUgc2hvdWxkIGJlIGNv
bGxlY3RlZAorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyho
b3N0LCAiZm9vIikgaXMgdHJ1ZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1
dGVJblNoYWRvdyhob3N0LCAiaG9zdCIpIGlzIGZhbHNlCisKK1NlbGVjdCBhdHRyaWJ1dGUgbWln
aHQgaGF2ZSBzZXZlcmFsIHNlbGVjdG9ycworUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJ
ZEluU2hhZG93KGhvc3QsICJmb28iKSBpcyB0cnVlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3Rv
ckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIpIGlzIGZhbHNlCitQQVNTIGludGVybmFscy5oYXNT
ZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJheiIpIGlzIGZhbHNlCitQQVNTIGludGVybmFs
cy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIGZhbHNlCitQQVNT
IGludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImJhciIpIGlzIHRy
dWUKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0LCAiYmF6
IikgaXMgZmFsc2UKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFk
b3coaG9zdCwgImZvbyIpIGlzIGZhbHNlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckF0
dHJpYnV0ZUluU2hhZG93KGhvc3QsICJiYXIiKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFz
U2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiYmF6IikgaXMgdHJ1ZQorCitEb24n
dCBjb3VudCBzaGFkb3cgZWxlbWVudAorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZElu
U2hhZG93KGhvc3QsICJmb28iKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JG
b3JJZEluU2hhZG93KGhvc3QsICJiYXIiKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2Vs
ZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXoiKSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMu
aGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJmb28iKSBpcyBmYWxzZQorUEFTUyBp
bnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJiYXIiKSBpcyBmYWxz
ZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJiYXoi
KSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRv
dyhob3N0LCAiZm9vIikgaXMgZmFsc2UKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0
cmlidXRlSW5TaGFkb3coaG9zdCwgImJhciIpIGlzIGZhbHNlCitQQVNTIGludGVybmFscy5oYXNT
ZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJiYXoiKSBpcyBmYWxzZQorCitDb21w
bGV4IGNhc2UgZm9yIHNpbmdsZSBTaGFkb3dSb290CitQQVNTIGludGVybmFscy5oYXNTZWxlY3Rv
ckZvcklkSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIGZhbHNlCitQQVNTIGludGVybmFscy5oYXNT
ZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIGZhbHNlCitQQVNTIGludGVy
bmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJmb28iKSBpcyB0cnVl
CitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJw
aXlvIikgaXMgZmFsc2UKKworQW5vdGhlciBjb21wbGV4IGNhc2UgZm9yIHNpbmdsZSBTaGFkb3dS
b290CitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImZvbyIp
IGlzIHRydWUKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0
LCAiZm9vIikgaXMgdHJ1ZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJ
blNoYWRvdyhob3N0LCAiZm9vIikgaXMgdHJ1ZQorCitNdWx0aXBsZSBTaGFkb3dSb290IGNhc2UK
K1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9vIikgaXMg
dHJ1ZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXIi
KSBpcyB0cnVlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwg
ImJheiIpIGlzIGZhbHNlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFk
b3coaG9zdCwgImZvbyIpIGlzIGZhbHNlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckNs
YXNzSW5TaGFkb3coaG9zdCwgImJhciIpIGlzIHRydWUKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVj
dG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0LCAiYmF6IikgaXMgZmFsc2UKK1BBU1MgaW50ZXJuYWxz
Lmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIGZhbHNlCitQ
QVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJiYXIi
KSBpcyBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRv
dyhob3N0LCAiYmF6IikgaXMgdHJ1ZQorCitEeW5hbWljIHNlbGVjdCBhdHRyaWJ1dGUgdXBkYXRl
CitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImZvbyIpIGlz
IHRydWUKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmFy
IikgaXMgZmFsc2UKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0
LCAiZm9vIikgaXMgZmFsc2UKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRv
dyhob3N0LCAiYmFyIikgaXMgdHJ1ZQorCitOZXN0ZWQgU2hhZG93RE9NIGNhc2UKK1BBU1MgaW50
ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9vIikgaXMgdHJ1ZQorUEFT
UyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXIiKSBpcyB0cnVl
CitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJheiIpIGlz
IGZhbHNlCitQQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImZv
byIpIGlzIHRydWUKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0
LCAiYmFyIikgaXMgZmFsc2UKK1BBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRv
dyhob3N0LCAiYmF6IikgaXMgdHJ1ZQorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvdy1zZWxlY3QtYXR0cmlidXRlLWZlYXR1cmVzZXQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctc2VsZWN0LWF0dHJpYnV0ZS1mZWF0dXJlc2V0Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTJhNTUxNDk1NjZhODgyYzU3OWM5ZDdhMzNlYmQ5ZGFjYTY5ZjAzNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctc2VsZWN0
LWF0dHJpYnV0ZS1mZWF0dXJlc2V0Lmh0bWwKQEAgLTAsMCArMSwxNzUgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRvdy1kb20uanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+Cis8cHJl
IGlkPSJjb25zb2xlIj48L3ByZT4KKworPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3RDYXNlKGYpCit7
CisgICAgY29udGFpbmVyLmlubmVySFRNTCA9ICcnOworICAgIGNvbnRhaW5lci5hcHBlbmRDaGls
ZChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnaG9zdCd9LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgpKSk7CisgICAgc2hhZG93Um9vdCA9IGlu
dGVybmFscy5zaGFkb3dSb290KGhvc3QpOworCisgICAgZigpOworICAgIGRlYnVnKCcnKTsKK30K
KwordGVzdENhc2UoZnVuY3Rpb24oKQoreworICAgIGRlYnVnKCdJZCBzaG91bGQgYmUgY29sbGVj
dGVkJyk7CisKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9IiNm
b28iPjwvY29udGVudD4nOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJ
ZEluU2hhZG93KGhvc3QsICJmb28iKScsICd0cnVlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFs
cy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIpJywgJ2ZhbHNlJyk7CisgICAg
c2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImhvc3Qi
KScsICdmYWxzZScpOworfSk7CisKK3Rlc3RDYXNlKGZ1bmN0aW9uKCkKK3sKKyAgICBkZWJ1Zygn
Q2xhc3Mgc2hvdWxkIGJlIGNvbGxlY3RlZCcpOworCisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwg
PSAnPGNvbnRlbnQgc2VsZWN0PSIuZm9vIj48L2NvbnRlbnQ+JzsKKyAgICBzaG91bGRCZSgnaW50
ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0LCAiZm9vIiknLCAndHJ1ZScp
OworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhv
c3QsICJob3N0IiknLCAnZmFsc2UnKTsKK30pOworCit0ZXN0Q2FzZShmdW5jdGlvbigpCit7Cisg
ICAgZGVidWcoJ0F0dHJpYnV0ZSBzaG91bGQgYmUgY29sbGVjdGVkJyk7CisKKyAgICBzaGFkb3dS
b290LmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9ImRpdltmb29dIj48L2NvbnRlbnQ+JzsK
KyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3co
aG9zdCwgImZvbyIpJywgJ3RydWUnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVj
dG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImhvc3QiKScsICdmYWxzZScpOworfSk7CisK
K3Rlc3RDYXNlKGZ1bmN0aW9uKCkKK3sKKyAgICBkZWJ1ZygnU2VsZWN0IGF0dHJpYnV0ZSBtaWdo
dCBoYXZlIHNldmVyYWwgc2VsZWN0b3JzJyk7CisKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9
ICc8Y29udGVudCBzZWxlY3Q9IiNmb28sLmJhcixkaXZbYmF6XSI+PC9jb250ZW50Pic7CisgICAg
c2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImZvbyIp
JywgJ3RydWUnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNo
YWRvdyhob3N0LCAiYmFyIiknLCAnZmFsc2UnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhh
c1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmF6IiknLCAnZmFsc2UnKTsKKworICAgIHNo
b3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJmb28i
KScsICdmYWxzZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFz
c0luU2hhZG93KGhvc3QsICJiYXIiKScsICd0cnVlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFs
cy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImJheiIpJywgJ2ZhbHNlJyk7CisK
KyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3co
aG9zdCwgImZvbyIpJywgJ2ZhbHNlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxl
Y3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJiYXIiKScsICdmYWxzZScpOworICAgIHNo
b3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAi
YmF6IiknLCAndHJ1ZScpOworfSk7CisKK3Rlc3RDYXNlKGZ1bmN0aW9uKCkKK3sKKyAgICBkZWJ1
ZygnRG9uXCd0IGNvdW50IHNoYWRvdyBlbGVtZW50Jyk7CisKKyAgICBzaGFkb3dSb290LmlubmVy
SFRNTCA9ICc8c2hhZG93IHNlbGVjdD0iI2ZvbywuYmFyLGRpdltiYXpdIj48L3NoYWRvdz4nOwor
ICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJm
b28iKScsICdmYWxzZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJ
ZEluU2hhZG93KGhvc3QsICJiYXIiKScsICdmYWxzZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5h
bHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXoiKScsICdmYWxzZScpOworCisg
ICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwg
ImZvbyIpJywgJ2ZhbHNlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZv
ckNsYXNzSW5TaGFkb3coaG9zdCwgImJhciIpJywgJ2ZhbHNlJyk7CisgICAgc2hvdWxkQmUoJ2lu
dGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImJheiIpJywgJ2ZhbHNl
Jyk7CisKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5T
aGFkb3coaG9zdCwgImZvbyIpJywgJ2ZhbHNlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5o
YXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJiYXIiKScsICdmYWxzZScpOwor
ICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyho
b3N0LCAiYmF6IiknLCAnZmFsc2UnKTsKK30pOworCit0ZXN0Q2FzZShmdW5jdGlvbigpCit7Cisg
ICAgZGVidWcoJ0NvbXBsZXggY2FzZSBmb3Igc2luZ2xlIFNoYWRvd1Jvb3QnKTsKKworICAgIHNo
YWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxkaXY+PGRpdj48L2Rpdj48Y29udGVudCBzZWxlY3Q9Iioi
PjwvY29udGVudD48ZGl2Pjxjb250ZW50IHNlbGVjdD0iZGl2W2Zvbz1waXlvXSI+PC9jb250ZW50
PjwvZGl2Pic7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFk
b3coaG9zdCwgImZvbyIpJywgJ2ZhbHNlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNT
ZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImZvbyIpJywgJ2ZhbHNlJyk7CisgICAgc2hv
dWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJm
b28iKScsICd0cnVlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckF0
dHJpYnV0ZUluU2hhZG93KGhvc3QsICJwaXlvIiknLCAnZmFsc2UnKTsKK30pOworCit0ZXN0Q2Fz
ZShmdW5jdGlvbigpCit7CisgICAgZGVidWcoJ0Fub3RoZXIgY29tcGxleCBjYXNlIGZvciBzaW5n
bGUgU2hhZG93Um9vdCcpOworCisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQg
c2VsZWN0PSIjZm9vLC5mb28sZGl2W2Zvb10iPjwvY29udGVudD4nOworICAgIHNob3VsZEJlKCdp
bnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJmb28iKScsICd0cnVlJyk7
CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9z
dCwgImZvbyIpJywgJ3RydWUnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9y
Rm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImZvbyIpJywgJ3RydWUnKTsKK30pOworCit0ZXN0
Q2FzZShmdW5jdGlvbigpCit7CisgICAgZGVidWcoJ011bHRpcGxlIFNoYWRvd1Jvb3QgY2FzZScp
OworCisgICAgdmFyIGFub3RoZXJTaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9z
dCk7CisKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9IiNmb28i
PjwvY29udGVudD4nOworICAgIGFub3RoZXJTaGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVu
dCBzZWxlY3Q9IiNiYXIiPjwvY29udGVudD48Y29udGVudCBzZWxlY3Q9ImRpdltiYXpdLC5iYXIi
PjwvY29udGVudD4nOworCisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvcklk
SW5TaGFkb3coaG9zdCwgImZvbyIpJywgJ3RydWUnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxz
Lmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmFyIiknLCAndHJ1ZScpOworICAgIHNo
b3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXoiKScs
ICdmYWxzZScpOworCisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNz
SW5TaGFkb3coaG9zdCwgImZvbyIpJywgJ2ZhbHNlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFs
cy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImJhciIpJywgJ3RydWUnKTsKKyAg
ICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0LCAi
YmF6IiknLCAnZmFsc2UnKTsKKworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JG
b3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiZm9vIiknLCAnZmFsc2UnKTsKKyAgICBzaG91bGRC
ZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImJhciIp
JywgJ2ZhbHNlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJp
YnV0ZUluU2hhZG93KGhvc3QsICJiYXoiKScsICd0cnVlJyk7Cit9KTsKKwordGVzdENhc2UoZnVu
Y3Rpb24oKQoreworICAgIGRlYnVnKCdEeW5hbWljIHNlbGVjdCBhdHRyaWJ1dGUgdXBkYXRlJyk7
CisKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9IiNmb28iPjwv
Y29udGVudD4nOworCisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5T
aGFkb3coaG9zdCwgImZvbyIpJywgJ3RydWUnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhh
c1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmFyIiknLCAnZmFsc2UnKTsKKworICAgIHZh
ciBjb250ZW50ID0gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdjb250ZW50Jyk7CisgICAgY29u
dGVudC5zZWxlY3QgPSAnI2Jhcic7CisKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVj
dG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9vIiknLCAnZmFsc2UnKTsKKyAgICBzaG91bGRCZSgn
aW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmFyIiknLCAndHJ1ZScp
OworfSk7CisKK3Rlc3RDYXNlKGZ1bmN0aW9uKCkKK3sKKyAgICBkZWJ1ZygnTmVzdGVkIFNoYWRv
d0RPTSBjYXNlJyk7CisKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxl
Y3Q9IiNmb28iPjwvY29udGVudD4nOworCisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOworICAgIHZhciBuZXN0ZWRTaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRv
d1Jvb3QoZGl2KTsKKyAgICBuZXN0ZWRTaGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBz
ZWxlY3Q9IiNiYXIiPjwvY29udGVudD4nOworICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZGl2
KTsKKworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhv
c3QsICJmb28iKScsICd0cnVlJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3Rv
ckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIpJywgJ3RydWUnKTsKKyAgICBzaG91bGRCZSgnaW50
ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmF6IiknLCAnZmFsc2UnKTsK
KworICAgIHZhciBjb250ZW50ID0gbmVzdGVkU2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdjb250
ZW50Jyk7CisgICAgY29udGVudC5zZWxlY3QgPSAnI2Jheic7CisKKyAgICBzaG91bGRCZSgnaW50
ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9vIiknLCAndHJ1ZScpOwor
ICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJi
YXIiKScsICdmYWxzZScpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJ
ZEluU2hhZG93KGhvc3QsICJiYXoiKScsICd0cnVlJyk7Cit9KTsKKworZmluaXNoSlNUZXN0KCk7
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBi
L0NoYW5nZUxvZwppbmRleCBhZjZkOTc2ZmYwMzUxYTk5MTMyN2FmNzM1Y2I5ZDg5ZTUwZTZmNjRh
Li41NGI1MTQxOTg2OTcyZGYxOGJkMzU4ZGE0NzY4ZGU5YjJmYmI4MDdhIDEwMDY0NAotLS0gYS9D
aGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTEtMDggIFNo
aW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtTaGFkb3dd
IEVsZW1lbnRTaGFkb3cgc2hvdWxkIGhhdmUgUnVsZUZlYXR1cmVTZXQgZm9yIHNlbGVjdCBhdHRy
aWJ1dGUgc2VsZWN0b3JzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAxMTgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRXhwb3NlcyBuZWNlc3Nhcnkgc3ltYm9scy4KKworICAgICAgICAqIFNvdXJjZS9h
dXRvdG9vbHMvc3ltYm9scy5maWx0ZXI6CisKIDIwMTItMTEtMDggIFJhcGhhZWwgS3VibyBkYSBD
b3N0YSAgPHJhcGhhZWwua3Viby5kYS5jb3N0YUBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0g
VHVybiBXVEZfVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUgaW4gT3B0aW9uc0VmbC5jbWFrZS4K
</data>

          </attachment>
      

    </bug>

</bugzilla>