<?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>196263</bug_id>
          
          <creation_ts>2019-03-26 11:38:55 -0700</creation_ts>
          <short_desc>SVGMatrix.IDL methods do not conform to the specs</short_desc>
          <delta_ts>2019-04-01 11:46:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>191237</blocked>
    
    <blocked>196086</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1521371</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-03-26 11:38:55 -0700</bug_when>
    <thetext>The SVG 1.1 specs link is: https://www.w3.org/TR/SVG11/coords.html#InterfaceSVGMatrix.

The specs of the methods is a little bit vague. For example the multiply method does not clearly state whether the operation should change the SVGMatrix object i.e. &quot;thisMatrix *= secondMatrix; return thisMatrix;&quot;. Or it is read only operation i.e., &quot;return thisMatrix * secondMatrix&quot;.

But you can notice in the specs that SVGMatrix methods do not raise the exception NO_MODIFICATION_ALLOWED_ERR if the object is read only. Notice also setting the attribute &apos;a&apos; for example may raise this exception. Therefore, I think the specs wanted to make these operations read-only. None of the methods should raise the exception NO_MODIFICATION_ALLOWED_ERR.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521372</commentid>
    <comment_count>1</comment_count>
      <attachid>365978</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-03-26 11:41:23 -0700</bug_when>
    <thetext>Created attachment 365978
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521378</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-26 11:49:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/49283958&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521409</commentid>
    <comment_count>3</comment_count>
      <attachid>365978</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-03-26 13:04:54 -0700</bug_when>
    <thetext>Comment on attachment 365978
Patch

This needs a test (preferably a WPT so that we can share with other browsers).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521510</commentid>
    <comment_count>4</comment_count>
      <attachid>366020</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-03-26 16:22:21 -0700</bug_when>
    <thetext>Created attachment 366020
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521523</commentid>
    <comment_count>5</comment_count>
      <attachid>366022</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-03-26 16:46:10 -0700</bug_when>
    <thetext>Created attachment 366022
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521531</commentid>
    <comment_count>6</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-03-26 16:52:01 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #3)
&gt; Comment on attachment 365978 [details]
&gt; Patch
&gt; 
&gt; This needs a test (preferably a WPT so that we can share with other
&gt; browsers).

LayoutTests/svg/dom/SVGMatrix.html tests only the cases where invalid arguments are passed to the SVGMatrix methods. I cleaned the test and added few cases where valid arguments are passed.

Notice that the new test passes in WebKit with and without this patch. SVGMatrix had two problems:

-- The SVGMatrix.IDL was written incorrectly.
-- The SVGMatrix methods were calling commitChange() even though the underlying SVGMatrixValue was not changing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521546</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-03-26 17:17:05 -0700</bug_when>
    <thetext>(In reply to Said Abou-Hallawa from comment #6)
&gt; (In reply to Simon Fraser (smfr) from comment #3)
&gt; &gt; Comment on attachment 365978 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; This needs a test (preferably a WPT so that we can share with other
&gt; &gt; browsers).
&gt; 
&gt; LayoutTests/svg/dom/SVGMatrix.html tests only the cases where invalid
&gt; arguments are passed to the SVGMatrix methods. I cleaned the test and added
&gt; few cases where valid arguments are passed.
&gt; 
&gt; Notice that the new test passes in WebKit with and without this patch.
&gt; SVGMatrix had two problems:
&gt; 
&gt; -- The SVGMatrix.IDL was written incorrectly.
&gt; -- The SVGMatrix methods were calling commitChange() even though the
&gt; underlying SVGMatrixValue was not changing.

Do we mate Chrome/FF behavior on this new test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521547</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-03-26 17:17:14 -0700</bug_when>
    <thetext>^match</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521559</commentid>
    <comment_count>9</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-03-26 17:45:55 -0700</bug_when>
    <thetext>Chrome and FF almost match the WebKit behavior. You can see these differences if you open LayoutTests/svg/dom/SVGMatrix.html in Chrome or FireFox.

-- FireFox throws exceptions with all invalid attribute values or invalid arguments.
-- The exceptions&apos; messages in both FF and Chrome are different from the WebKit messages.
-- The calculation for tan(90) in FF is different from WebKit and Chrome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521568</commentid>
    <comment_count>10</comment_count>
      <attachid>366022</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-03-26 18:04:44 -0700</bug_when>
    <thetext>Comment on attachment 366022
Patch

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

&gt; LayoutTests/svg/dom/SVGMatrix.html:110
&gt; +shouldBeEqualToString(&quot;matrixToString(matrix.translate(10, 20))&quot;, &quot;{ a: 2, b: 0, c: 0, d: 1, e: 20, f: 220}&quot;);
&gt; +shouldBeEqualToString(&quot;matrixToString(matrix.scale(5))&quot;, &quot;{ a: 10, b: 0, c: 0, d: 5, e: 0, f: 200}&quot;);
&gt; +shouldBeEqualToString(&quot;matrixToString(matrix.scaleNonUniform(2, 3))&quot;, &quot;{ a: 4, b: 0, c: 0, d: 3, e: 0, f: 200}&quot;);
&gt; +shouldBeEqualToString(&quot;matrixToString(matrix.skewX(90))&quot;, &quot;{ a: 2, b: 0, c: 32662478706390740, d: 1, e: 0, f: 200}&quot;);
&gt; +shouldBeEqualToString(&quot;matrixToString(matrix.skewY(90))&quot;, &quot;{ a: 2, b: 16331239353195370, c: 0, d: 1, e: 0, f: 200}&quot;);

Don&apos;t we need a test that&apos;s like:

let matrix = { a: 2, b: 0, c: 0, d: 1, e: 0, f: 200} // or whatever
matrix.scale(2)
shouldBeEqualToString(&quot;matrixToString(matrix, &quot;{ a: 10, b: 0, c: 0, d: 5, e: 0, f: 200}&quot;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521585</commentid>
    <comment_count>11</comment_count>
      <attachid>366022</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-03-26 18:48:15 -0700</bug_when>
    <thetext>Comment on attachment 366022
Patch

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

&gt;&gt; LayoutTests/svg/dom/SVGMatrix.html:110
&gt;&gt; +shouldBeEqualToString(&quot;matrixToString(matrix.skewY(90))&quot;, &quot;{ a: 2, b: 16331239353195370, c: 0, d: 1, e: 0, f: 200}&quot;);
&gt; 
&gt; Don&apos;t we need a test that&apos;s like:
&gt; 
&gt; let matrix = { a: 2, b: 0, c: 0, d: 1, e: 0, f: 200} // or whatever
&gt; matrix.scale(2)
&gt; shouldBeEqualToString(&quot;matrixToString(matrix, &quot;{ a: 10, b: 0, c: 0, d: 5, e: 0, f: 200}&quot;);

Sorry but I do not understand your suggestion. Did you mean we need to confirm that matrix was not changed by the previous calls? If this is the case, the following statements already do that:

debug(&quot;&quot;);
debug(&quot;Check that the matrix is still containing the correct values&quot;);
shouldBeEqualToString(&quot;matrixToString(matrix)&quot;, &quot;{ a: 2, b: 0, c: 0, d: 1, e: 0, f: 200}&quot;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522963</commentid>
    <comment_count>12</comment_count>
      <attachid>366410</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-04-01 11:20:50 -0700</bug_when>
    <thetext>Created attachment 366410
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522981</commentid>
    <comment_count>13</comment_count>
      <attachid>366410</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-01 11:46:50 -0700</bug_when>
    <thetext>Comment on attachment 366410
Patch

Clearing flags on attachment: 366410

Committed r243703: &lt;https://trac.webkit.org/changeset/243703&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522982</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-01 11:46:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365978</attachid>
            <date>2019-03-26 11:41:23 -0700</date>
            <delta_ts>2019-03-26 16:22:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196263-20190326114123.patch</filename>
            <type>text/plain</type>
            <size>27150</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MzUwNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg3IEBACisyMDE5LTAzLTI2ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgU1ZHTWF0cml4
IG1ldGhvZHMgZG8gbm90IGNvbmZvcm0gdG8gdGhlIHNwZWNzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTYyNjMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJIHRoaW5rIHRoZXJlIHdhcyBhIG1pc2NvbmNl
cHRpb24gYWJvdXQgdGhlc2UgZnVuY3Rpb25zLiBUaGUgc3BlY3MgbGluaworICAgICAgICBpczog
aHR0cHM6Ly93d3cudzMub3JnL1RSL1NWRzExL2Nvb3Jkcy5odG1sI0ludGVyZmFjZVNWR01hdHJp
eC4KKworICAgICAgICBOb3RpY2UgdGhhdCB0aGUgc3BlY3MgZG9lcyBub3Qgc3RhdGUgdGhhdCB0
aGUgU1ZHTWV0aG9kIG1ldGhvZHMgc2hvdWxkCisgICAgICAgIHJhaXNlIHRoZSBleGNlcHRpb24g
Tk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIGlmIHRoZSBvYmplY3QgaXMgcmVhZAorICAgICAg
ICBvbmx5LiBOb3RpY2Ugc2V0dGluZyB0aGUgYXR0cmlidXRlICdhJyBmb3IgZXhhbXBsZSBtYXkg
cmFpc2UgdGhpcworICAgICAgICBleGNlcHRpb24uIFRoZXJlZm9yZSwgSSB0aGluayB0aGUgc3Bl
Y3Mgd2FudGVkIHRvIG1ha2UgdGhlc2Ugb3BlcmF0aW9ucworICAgICAgICByZWFkLW9ubHkuIE5v
bmUgb2YgdGhlIG1ldGhvZHMgc2hvdWxkIHJhaXNlIHRoZSBleGNlcHRpb24KKyAgICAgICAgTk9f
TU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHN2Zy9TVkdNYXRyaXguaDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR01hdHJpeDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6
YSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmIgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpjIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01h
dHJpeDo6ZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpmIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR01hdHJpeDo6bXVsdGlwbHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4
OjppbnZlcnNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6dHJhbnNsYXRl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2NhbGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzY2FsZU5vblVuaWZvcm0gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojpyb3RhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTWF0cml4Ojpyb3RhdGVGcm9tVmVjdG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R01hdHJpeDo6ZmxpcFggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpmbGlw
WSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnNrZXdYIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2tld1kgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHTWF0cml4OjphKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6
Yik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNWR01hdHJpeDo6ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6
OmYpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjptdWx0aXBseSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmludmVyc2UpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojp0cmFuc2xhdGUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzY2FsZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdNYXRyaXg6OnNjYWxlTm9uVW5pZm9ybSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdNYXRyaXg6OnJvdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRy
aXg6OnJvdGF0ZUZyb21WZWN0b3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0
cml4OjpmbGlwWCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmZsaXBZ
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2tld1gpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojpza2V3WSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpTVkdNYXRyaXg6OlNWR01hdHJpeCk6IERlbGV0ZWQuCisgICAgICAgIC0tIE1h
a2UgdGhlIGdldHRlcnMgYW5kIHRoZSBtZXRob2RzIGNvbnN0IGZ1bmN0aW9ucy4KKyAgICAgICAg
LS0gUmVtb3ZlIHRoZSBjb25zdHJ1Y3RvciBhbmQgYWRkICJ1c2luZyBCYXNlOjpCYXNlOyIgc2lu
Y2UgYWxsIHRoZQorICAgICAgICBjb25zdHJ1Y3RvcnMgd2VyZSBwYXNzaW5nIHRoZWlyIGFyZ3Vt
ZW50cyB0byB0aGUgYmFzZSBjbGFzcy4KKyAgICAgICAgLS0gUmVwbGFjZSBTVkdNYXRyaXhWYWx1
ZSB2YWx1ZSBieSBBZmZpbmVUcmFuc2Zvcm0gc2luY2UgU1ZHTWF0cml4VmFsdWUKKyAgICAgICAg
ZG9lcyBub3QgYWRkIG11Y2ggdmFsdWUuCisKKyAgICAgICAgKiBzdmcvU1ZHTWF0cml4LmlkbDoK
KyAgICAgICAgKiBzdmcvU1ZHTWF0cml4VmFsdWUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdmcv
U1ZHVHJhbnNmb3JtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybTo6bWF0cml4
KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtRGlzdGFuY2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVHJhbnNmb3JtRGlzdGFuY2U6OmFkZFRvU1ZHVHJhbnNmb3JtIGNvbnN0KToKKyAg
ICAgICAgUmVtb3ZlIG9wZXJhdG9yPT0oKSBhbmQgb3BlcmF0b3IhPSgpIGZyb20gU1ZHVHJhbnNm
b3JtVmFsdWUgYmVjYXVzZSBpdCB3YXMKKyAgICAgICAgb25seSB1c2VkIGluIHRoaXMgZnVuY3Rp
b24uIFRoZSBjaGVjayAidHJhbnNmb3JtID09IFNWR1RyYW5zZm9ybVZhbHVlKCkiCisgICAgICAg
IGNhbiBiZSByZXBsYWNlZCBieSAhdHJhbnNmb3JtLmlzVmFsaWQoKSBzaW5jZSBTVkdUcmFuc2Zv
cm1WYWx1ZSgpIGlzIAorICAgICAgICBpbml0aWFsaXplZCBieSBtX3R5cGUgeyBTVkdfVFJBTlNG
T1JNX1VOS05PV04gfS4KKworICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtVmFsdWU6Om1hdHJpeCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1WYWx1ZTo6bWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1RyYW5zZm9ybVZhbHVlOjpzdmdNYXRyaXgpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6b3BlcmF0b3I9PSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvciE9KTog
RGVsZXRlZC4KKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmg6Cisg
ICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUZWFyT2ZmLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdQcm9wZXJ0eVRlYXJPZmY6OnByb3BlcnR5UmVmZXJlbmNlIGNvbnN0KToKKyAg
ICAgICAgQWRkIGEgY29uc3QgdmlydHVhbCBwcm9wZXJ0eVJlZmVyZW5jZSgpIHNvIHRoZSBnZXR0
ZXJzIGFuZCB0aGUgbWV0aG9kcworICAgICAgICBpbiBTVkdNYXRyaXggY2FuIGJlIG1hcmtlZCBh
cyBjb25zdC4KKwogMjAxOS0wMy0yNiAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAK
ICAgICAgICAgdmVydGV4QXR0cmliUG9pbnRlciBtdXN0IHJlc3RyaWN0IG9mZnNldCBwYXJhbWV0
ZXIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDI0MzQ5NikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjM1OCw3ICsyMzU4LDYg
QEAKIAkJN0NFNThENEExREQ2NEE1QjAwMTI4NTUyIC8qIFNWR1BvaW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ0OTFERDY0QTVCMDAxMjg1
NTIgLyogU1ZHUG9pbnQuaCAqLzsgfTsKIAkJN0NFNThENTAxREQ2OUExRTAwMTI4NTUyIC8qIFNW
R051bWJlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0NFNThENEYxREQ2OUExRTAwMTI4NTUyIC8qIFNWR051bWJlci5oICovOyB9OwogCQk3Q0U1OEQ1
ODFERDdEOTZEMDAxMjg1NTIgLyogU1ZHVHJhbnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTU4RDU2MUREN0Q5NkQwMDEyODU1MiAv
KiBTVkdUcmFuc2Zvcm1WYWx1ZS5oICovOyB9OwotCQk3Q0U1OEQ1QzFERDdFQzlDMDAxMjg1NTIg
LyogU1ZHTWF0cml4VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdDRTU4RDVCMUREN0VDOUMwMDEyODU1MiAvKiBTVkdNYXRyaXhWYWx1ZS5oICov
OyB9OwogCQk3Q0U2ODM0NDE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVz
Y3JpcHRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3Q0U2ODM0MjE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRv
ci5jcHAgKi87IH07CiAJCTdDRTY4MzQ1MTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhh
bmRsZXJEZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3Q0U2ODM0MzE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVz
Y3JpcHRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTdDRTY4MzQ3MTkyMTgyMTUwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlw
dG9yVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdDRTY4MzQ2MTkyMTgyMTUwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9y
VHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtOTk4MSw3ICs5OTgwLDYgQEAKIAkJN0NFNThENTUxREQ3RDk2RDAwMTI4NTUyIC8qIFNWR1Ry
YW5zZm9ybVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNW
R1RyYW5zZm9ybVZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NFNThE
NTYxREQ3RDk2RDAwMTI4NTUyIC8qIFNWR1RyYW5zZm9ybVZhbHVlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1RyYW5zZm9ybVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTdDRTU4RDU5MUREN0RFNTIwMDEyODU1MiAvKiBTVkdUcmFuc2Zvcm0uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHVHJhbnNmb3JtLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0NFNThENUIxREQ3RUM5QzAwMTI4NTUyIC8q
IFNWR01hdHJpeFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR01h
dHJpeFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRTY4MzQyMTkyMTQz
QTgwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3Iu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0U2ODM0MzE5MjE0M0E4MDBGNEQ5
MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdDRTY4MzQ2MTkyMTgyMTUwMEY0RDkyOCAvKiBVc2VyTWVzc2Fn
ZUhhbmRsZXJEZXNjcmlwdG9yVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvclR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0yNDM1OSw3ICsyNDM1Nyw2IEBACiAJCQkJQjIyMjc4QjIwRDAwQkYyMDAw
NzFCNzgyIC8qIFNWR01hc2tFbGVtZW50LmlkbCAqLywKIAkJCQkwODA2RTU3OTEyODkzMDQ1MDA3
Q0VEMzIgLyogU1ZHTWF0cml4LmggKi8sCiAJCQkJQjIyMjc4QjMwRDAwQkYyMDAwNzFCNzgyIC8q
IFNWR01hdHJpeC5pZGwgKi8sCi0JCQkJN0NFNThENUIxREQ3RUM5QzAwMTI4NTUyIC8qIFNWR01h
dHJpeFZhbHVlLmggKi8sCiAJCQkJQjIyMjc4QjQwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR01ldGFk
YXRhRWxlbWVudC5jcHAgKi8sCiAJCQkJQjIyMjc4QjUwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR01l
dGFkYXRhRWxlbWVudC5oICovLAogCQkJCUIyMjI3OEI2MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdN
ZXRhZGF0YUVsZW1lbnQuaWRsICovLApAQCAtMzIwMDEsNyArMzE5OTgsNiBAQAogCQkJCUIyMjI3
QTQ3MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNYXNrRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDgwNkU1N0ExMjg5MzA0NTAwN0NFRDMyIC8qIFNWR01hdHJpeC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDhDQTNENDQxMjg5NEEzODAwRkZGMjYwIC8qIFNWR01hdHJpeFRlYXJPZmYuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTdDRTU4RDVDMUREN0VDOUMwMDEyODU1MiAvKiBTVkdNYXRyaXhWYWx1
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNEIwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR01l
dGFkYXRhRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJBMUYyQjEwQ0VGMEFCRjAwNDQy
RjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3
QTRFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNUGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdNYXRyaXguaAkocmV2aXNpb24gMjQzNDk2KQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01hdHJpeC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI1LDIwICsyNSwyMyBAQAogCiAj
cHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNWR01hdHJpeFZhbHVlLmgiCisjaW5jbHVkZSAiQWZm
aW5lVHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAiU1ZHUHJvcGVydHlUZWFyT2ZmLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogLy8gRklYTUU6IFJlbW92ZSB0aGlzIGNsYXNzIG9uY2UgU1ZHTWF0
cml4IGJlY29tZXMgYW4gYWxpYXMgdG8gRE9NTWF0cml4LgotY2xhc3MgU1ZHTWF0cml4IDogcHVi
bGljIFNWR1Byb3BlcnR5VGVhck9mZjxTVkdNYXRyaXhWYWx1ZT4geworY2xhc3MgU1ZHTWF0cml4
IDogcHVibGljIFNWR1Byb3BlcnR5VGVhck9mZjxBZmZpbmVUcmFuc2Zvcm0+IHsKKyAgICB1c2lu
ZyBCYXNlID0gU1ZHUHJvcGVydHlUZWFyT2ZmPEFmZmluZVRyYW5zZm9ybT47CisgICAgdXNpbmcg
QmFzZTo6QmFzZTsKKwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHTWF0cml4PiBjcmVhdGUo
U1ZHTGVnYWN5QW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlS
b2xlIHJvbGUsIFNWR01hdHJpeFZhbHVlJiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR01hdHJp
eD4gY3JlYXRlKFNWR0xlZ2FjeUFuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNW
R1Byb3BlcnR5Um9sZSByb2xlLCBBZmZpbmVUcmFuc2Zvcm0mIHZhbHVlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTWF0cml4KGFuaW1hdGVkUHJvcGVydHksIHJvbGUs
IHZhbHVlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR01hdHJpeCgmYW5pbWF0
ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR01h
dHJpeD4gY3JlYXRlKGNvbnN0IFNWR01hdHJpeFZhbHVlJiBpbml0aWFsVmFsdWUgPSB7IH0pCisg
ICAgc3RhdGljIFJlZjxTVkdNYXRyaXg+IGNyZWF0ZShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGlu
aXRpYWxWYWx1ZSA9IHsgfSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNW
R01hdHJpeChpbml0aWFsVmFsdWUpKTsKICAgICB9CkBAIC01MCw3ICs1Myw3IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIGNyZWF0ZShpbml0aWFsVmFsdWUucmVsZWFzZVJldHVyblZhbHVlKCkp
OwogICAgIH0KIAotICAgIGRvdWJsZSBhKCkKKyAgICBkb3VibGUgYSgpIGNvbnN0CiAgICAgewog
ICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5hKCk7CiAgICAgfQpAQCAtNjYsNyAr
NjksNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCi0gICAgZG91Ymxl
IGIoKQorICAgIGRvdWJsZSBiKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBwcm9wZXJ0
eVJlZmVyZW5jZSgpLmIoKTsKICAgICB9CkBAIC04Miw3ICs4NSw3IEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIHsgfTsKICAgICB9CiAKLSAgICBkb3VibGUgYygpCisgICAgZG91YmxlIGMoKSBj
b25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkuYygpOwogICAg
IH0KQEAgLTk4LDcgKzEwMSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9
CiAKLSAgICBkb3VibGUgZCgpCisgICAgZG91YmxlIGQoKSBjb25zdAogICAgIHsKICAgICAgICAg
cmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkuZCgpOwogICAgIH0KQEAgLTExNCw3ICsxMTcsNyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCi0gICAgZG91YmxlIGUoKQor
ICAgIGRvdWJsZSBlKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVy
ZW5jZSgpLmUoKTsKICAgICB9CkBAIC0xMzAsNyArMTMzLDcgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4geyB9OwogICAgIH0KIAotICAgIGRvdWJsZSBmKCkKKyAgICBkb3VibGUgZigpIGNvbnN0
CiAgICAgewogICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5mKCk7CiAgICAgfQpA
QCAtMTQ2LDE0NSArMTQ5LDg2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9
CiAKLSAgICBFeGNlcHRpb25PcjxSZWY8U1ZHTWF0cml4Pj4gbXVsdGlwbHkoU1ZHTWF0cml4JiBz
ZWNvbmRNYXRyaXgpCisgICAgUmVmPFNWR01hdHJpeD4gbXVsdGlwbHkoU1ZHTWF0cml4JiBzZWNv
bmRNYXRyaXgpIGNvbnN0CiAgICAgewotICAgICAgICBpZiAoaXNSZWFkT25seSgpKQotICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07Ci0K
LSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLm11bHRpcGx5KHNlY29u
ZE1hdHJpeC5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKLSAgICAgICAgY29tbWl0Q2hhbmdlKCk7Ci0K
LSAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CisgICAgICAgIGF1dG8g
Y29weSA9IHByb3BlcnR5UmVmZXJlbmNlKCk7CisgICAgICAgIGNvcHkubXVsdGlwbHkoc2Vjb25k
TWF0cml4LnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgICAgICByZXR1cm4gU1ZHTWF0cml4Ojpj
cmVhdGUoY29weSk7CiAgICAgfQogCi0gICAgRXhjZXB0aW9uT3I8UmVmPFNWR01hdHJpeD4+IGlu
dmVyc2UoKQorICAgIEV4Y2VwdGlvbk9yPFJlZjxTVkdNYXRyaXg+PiBpbnZlcnNlKCkgY29uc3QK
ICAgICB7Ci0gICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCi0gICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKKyAgICAgICAgYXV0byBpbnZl
cnNlID0gcHJvcGVydHlSZWZlcmVuY2UoKS5pbnZlcnNlKCk7CisgICAgICAgIGlmICghaW52ZXJz
ZSkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIk1h
dHJpeCBpcyBub3QgaW52ZXJ0aWJsZSJfcyB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJv
cGVydHlSZWZlcmVuY2UoKS5pbnZlcnNlKCk7Ci0gICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0
aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKLSAg
ICAgICAgCi0gICAgICAgIGNvbW1pdENoYW5nZSgpOwotICAgICAgICByZXR1cm4gU1ZHTWF0cml4
OjpjcmVhdGUocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuIFNW
R01hdHJpeDo6Y3JlYXRlKCppbnZlcnNlKTsKICAgICB9CiAKLSAgICBFeGNlcHRpb25PcjxSZWY8
U1ZHTWF0cml4Pj4gdHJhbnNsYXRlKGZsb2F0IHgsIGZsb2F0IHkpCisgICAgUmVmPFNWR01hdHJp
eD4gdHJhbnNsYXRlKGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0CiAgICAgewotICAgICAgICBpZiAo
aXNSZWFkT25seSgpKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0
aW9uQWxsb3dlZEVycm9yIH07Ci0KLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVy
ZW5jZSgpLnRyYW5zbGF0ZSh4LCB5KTsgICAgICAgIAotICAgICAgICBjb21taXRDaGFuZ2UoKTsK
LQotICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKKyAgICAgICAgYXV0
byBjb3B5ID0gcHJvcGVydHlSZWZlcmVuY2UoKTsKKyAgICAgICAgY29weS50cmFuc2xhdGUoeCwg
eSk7CisgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShjb3B5KTsKICAgICB9CiAKLSAg
ICBFeGNlcHRpb25PcjxSZWY8U1ZHTWF0cml4Pj4gc2NhbGUoZmxvYXQgc2NhbGVGYWN0b3IpCisg
ICAgUmVmPFNWR01hdHJpeD4gc2NhbGUoZmxvYXQgc2NhbGVGYWN0b3IpIGNvbnN0CiAgICAgewot
ICAgICAgICBpZiAoaXNSZWFkT25seSgpKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07Ci0KLSAgICAgICAgYXV0byByZXN1bHQgPSBw
cm9wZXJ0eVJlZmVyZW5jZSgpLnNjYWxlKHNjYWxlRmFjdG9yKTsgICAgICAgIAotICAgICAgICBj
b21taXRDaGFuZ2UoKTsKLQotICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0
KTsKKyAgICAgICAgYXV0byBjb3B5ID0gcHJvcGVydHlSZWZlcmVuY2UoKTsKKyAgICAgICAgY29w
eS5zY2FsZShzY2FsZUZhY3Rvcik7CisgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShj
b3B5KTsKICAgICB9CiAKLSAgICBFeGNlcHRpb25PcjxSZWY8U1ZHTWF0cml4Pj4gc2NhbGVOb25V
bmlmb3JtKGZsb2F0IHNjYWxlRmFjdG9yWCwgZmxvYXQgc2NhbGVGYWN0b3JZKQorICAgIFJlZjxT
VkdNYXRyaXg+IHNjYWxlTm9uVW5pZm9ybShmbG9hdCBzY2FsZUZhY3RvclgsIGZsb2F0IHNjYWxl
RmFjdG9yWSkgY29uc3QKICAgICB7Ci0gICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCi0gICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKLQot
ICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2NhbGVOb25Vbmlmb3Jt
KHNjYWxlRmFjdG9yWCwgc2NhbGVGYWN0b3JZKTsgICAgICAgIAotICAgICAgICBjb21taXRDaGFu
Z2UoKTsKLQotICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKKyAgICAg
ICAgYXV0byBjb3B5ID0gcHJvcGVydHlSZWZlcmVuY2UoKTsKKyAgICAgICAgY29weS5zY2FsZU5v
blVuaWZvcm0oc2NhbGVGYWN0b3JYLCBzY2FsZUZhY3RvclkpOworICAgICAgICByZXR1cm4gU1ZH
TWF0cml4OjpjcmVhdGUoY29weSk7CiAgICAgfQogCi0gICAgRXhjZXB0aW9uT3I8UmVmPFNWR01h
dHJpeD4+IHJvdGF0ZShmbG9hdCBhbmdsZSkKKyAgICBSZWY8U1ZHTWF0cml4PiByb3RhdGUoZmxv
YXQgYW5nbGUpIGNvbnN0CiAgICAgewotICAgICAgICBpZiAoaXNSZWFkT25seSgpKQotICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07Ci0K
LSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnJvdGF0ZShhbmdsZSk7
ICAgICAgICAKLSAgICAgICAgY29tbWl0Q2hhbmdlKCk7Ci0KLSAgICAgICAgcmV0dXJuIFNWR01h
dHJpeDo6Y3JlYXRlKHJlc3VsdCk7CisgICAgICAgIGF1dG8gY29weSA9IHByb3BlcnR5UmVmZXJl
bmNlKCk7CisgICAgICAgIGNvcHkucm90YXRlKGFuZ2xlKTsKKyAgICAgICAgcmV0dXJuIFNWR01h
dHJpeDo6Y3JlYXRlKGNvcHkpOwogICAgIH0KIAotICAgIEV4Y2VwdGlvbk9yPFJlZjxTVkdNYXRy
aXg+PiByb3RhdGVGcm9tVmVjdG9yKGZsb2F0IHgsIGZsb2F0IHkpCisgICAgRXhjZXB0aW9uT3I8
UmVmPFNWR01hdHJpeD4+IHJvdGF0ZUZyb21WZWN0b3IoZmxvYXQgeCwgZmxvYXQgeSkgY29uc3QK
ICAgICB7Ci0gICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCi0gICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKKyAgICAgICAgaWYgKCF4IHx8
ICF5KQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OwogCi0gICAg
ICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5yb3RhdGVGcm9tVmVjdG9yKHgs
IHkpOyAgICAgICAgCi0gICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCi0gICAgICAg
ICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKLSAgICAgICAgCi0gICAgICAg
IGNvbW1pdENoYW5nZSgpOwotICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0
LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKLSAgICB9Ci0KLSAgICBFeGNlcHRpb25PcjxSZWY8U1ZH
TWF0cml4Pj4gZmxpcFgoKQotICAgIHsKLSAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKLSAgICAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9Owot
Ci0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5mbGlwWCgpOyAgICAg
ICAgCi0gICAgICAgIGNvbW1pdENoYW5nZSgpOwotCi0gICAgICAgIHJldHVybiBTVkdNYXRyaXg6
OmNyZWF0ZShyZXN1bHQpOwotICAgIH0KLQotICAgIEV4Y2VwdGlvbk9yPFJlZjxTVkdNYXRyaXg+
PiBmbGlwWSgpCi0gICAgewotICAgICAgICBpZiAoaXNSZWFkT25seSgpKQotICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07Ci0KLSAgICAg
ICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmZsaXBZKCk7ICAgICAgICAKLSAg
ICAgICAgY29tbWl0Q2hhbmdlKCk7Ci0KLSAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRl
KHJlc3VsdCk7CisgICAgICAgIGF1dG8gY29weSA9IHByb3BlcnR5UmVmZXJlbmNlKCk7CisgICAg
ICAgIGNvcHkucm90YXRlRnJvbVZlY3Rvcih4LCB5KTsKKyAgICAgICAgcmV0dXJuIFNWR01hdHJp
eDo6Y3JlYXRlKGNvcHkpOwogICAgIH0KIAotICAgIEV4Y2VwdGlvbk9yPFJlZjxTVkdNYXRyaXg+
PiBza2V3WChmbG9hdCBhbmdsZSkKKyAgICBSZWY8U1ZHTWF0cml4PiBmbGlwWCgpIGNvbnN0CiAg
ICAgewotICAgICAgICBpZiAoaXNSZWFkT25seSgpKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07Ci0KLSAgICAgICAgYXV0byByZXN1
bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNrZXdYKGFuZ2xlKTsgICAgICAgIAotICAgICAgICBj
b21taXRDaGFuZ2UoKTsKLQotICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0
KTsKLSAgICB9Ci0KLSAgICBFeGNlcHRpb25PcjxSZWY8U1ZHTWF0cml4Pj4gc2tld1koZmxvYXQg
YW5nbGUpCi0gICAgewotICAgICAgICBpZiAoaXNSZWFkT25seSgpKQotICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07Ci0KLSAgICAgICAg
YXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNrZXdZKGFuZ2xlKTsgICAgICAgIAot
ICAgICAgICBjb21taXRDaGFuZ2UoKTsKLQotICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVh
dGUocmVzdWx0KTsKKyAgICAgICAgYXV0byBjb3B5ID0gcHJvcGVydHlSZWZlcmVuY2UoKTsKKyAg
ICAgICAgY29weS5mbGlwWCgpOworICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUoY29w
eSk7CiAgICAgfQogCi1wcm90ZWN0ZWQ6Ci0gICAgU1ZHTWF0cml4KFNWR0xlZ2FjeUFuaW1hdGVk
UHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdNYXRy
aXhWYWx1ZSYgdmFsdWUpCi0gICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR01hdHJpeFZh
bHVlPigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCisgICAgUmVmPFNWR01hdHJpeD4g
ZmxpcFkoKSBjb25zdAogICAgIHsKKyAgICAgICAgYXV0byBjb3B5ID0gcHJvcGVydHlSZWZlcmVu
Y2UoKTsKKyAgICAgICAgY29weS5mbGlwWSgpOworICAgICAgICByZXR1cm4gU1ZHTWF0cml4Ojpj
cmVhdGUoY29weSk7CiAgICAgfQogCi0gICAgZXhwbGljaXQgU1ZHTWF0cml4KGNvbnN0IFNWR01h
dHJpeFZhbHVlJiBpbml0aWFsVmFsdWUpCi0gICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNW
R01hdHJpeFZhbHVlPihpbml0aWFsVmFsdWUpCisgICAgUmVmPFNWR01hdHJpeD4gc2tld1goZmxv
YXQgYW5nbGUpIGNvbnN0CiAgICAgeworICAgICAgICBhdXRvIGNvcHkgPSBwcm9wZXJ0eVJlZmVy
ZW5jZSgpOworICAgICAgICBjb3B5LnNrZXdYKGFuZ2xlKTsKKyAgICAgICAgcmV0dXJuIFNWR01h
dHJpeDo6Y3JlYXRlKGNvcHkpOwogICAgIH0KIAotICAgIGV4cGxpY2l0IFNWR01hdHJpeChjb25z
dCBTVkdNYXRyaXhWYWx1ZSogaW5pdGlhbFZhbHVlKQotICAgICAgICA6IFNWR1Byb3BlcnR5VGVh
ck9mZjxTVkdNYXRyaXhWYWx1ZT4oaW5pdGlhbFZhbHVlKQorICAgIFJlZjxTVkdNYXRyaXg+IHNr
ZXdZKGZsb2F0IGFuZ2xlKSBjb25zdAogICAgIHsKKyAgICAgICAgYXV0byBjb3B5ID0gcHJvcGVy
dHlSZWZlcmVuY2UoKTsKKyAgICAgICAgY29weS5za2V3WShhbmdsZSk7CisgICAgICAgIHJldHVy
biBTVkdNYXRyaXg6OmNyZWF0ZShjb3B5KTsKICAgICB9CiB9OwogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTWF0cml4LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTWF0cml4LmlkbAkocmV2aXNpb24gMjQzNDk2KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R01hdHJpeC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMzLDE1ICszMywxNSBAQAogICAgIGF0dHJp
YnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIGU7CiAgICAgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBk
b3VibGUgZjsKIAotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gU1ZHTWF0cml4IG11bHRpcGx5KFNW
R01hdHJpeCBzZWNvbmRNYXRyaXgpOwotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gU1ZHTWF0cml4
IGludmVyc2UoKTsKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFNWR01hdHJpeCB0cmFuc2xhdGUo
dW5yZXN0cmljdGVkIGZsb2F0IHgsIHVucmVzdHJpY3RlZCBmbG9hdCB5KTsKLSAgICBbTWF5VGhy
b3dFeGNlcHRpb25dIFNWR01hdHJpeCBzY2FsZSh1bnJlc3RyaWN0ZWQgZmxvYXQgc2NhbGVGYWN0
b3IpOwotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gU1ZHTWF0cml4IHNjYWxlTm9uVW5pZm9ybSh1
bnJlc3RyaWN0ZWQgZmxvYXQgc2NhbGVGYWN0b3JYLCB1bnJlc3RyaWN0ZWQgZmxvYXQgc2NhbGVG
YWN0b3JZKTsKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFNWR01hdHJpeCByb3RhdGUodW5yZXN0
cmljdGVkIGZsb2F0IGFuZ2xlKTsKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFNWR01hdHJpeCBy
b3RhdGVGcm9tVmVjdG9yKHVucmVzdHJpY3RlZCBmbG9hdCB4LCB1bnJlc3RyaWN0ZWQgZmxvYXQg
eSk7Ci0gICAgW01heVRocm93RXhjZXB0aW9uXSBTVkdNYXRyaXggZmxpcFgoKTsKLSAgICBbTWF5
VGhyb3dFeGNlcHRpb25dIFNWR01hdHJpeCBmbGlwWSgpOwotICAgIFtNYXlUaHJvd0V4Y2VwdGlv
bl0gU1ZHTWF0cml4IHNrZXdYKHVucmVzdHJpY3RlZCBmbG9hdCBhbmdsZSk7Ci0gICAgW01heVRo
cm93RXhjZXB0aW9uXSBTVkdNYXRyaXggc2tld1kodW5yZXN0cmljdGVkIGZsb2F0IGFuZ2xlKTsK
KyAgICBbTmV3T2JqZWN0XSBTVkdNYXRyaXggbXVsdGlwbHkoU1ZHTWF0cml4IHNlY29uZE1hdHJp
eCk7CisgICAgW01heVRocm93RXhjZXB0aW9uLCBOZXdPYmplY3RdIFNWR01hdHJpeCBpbnZlcnNl
KCk7CisgICAgW05ld09iamVjdF0gU1ZHTWF0cml4IHRyYW5zbGF0ZSh1bnJlc3RyaWN0ZWQgZmxv
YXQgeCwgdW5yZXN0cmljdGVkIGZsb2F0IHkpOworICAgIFtOZXdPYmplY3RdIFNWR01hdHJpeCBz
Y2FsZSh1bnJlc3RyaWN0ZWQgZmxvYXQgc2NhbGVGYWN0b3IpOworICAgIFtOZXdPYmplY3RdIFNW
R01hdHJpeCBzY2FsZU5vblVuaWZvcm0odW5yZXN0cmljdGVkIGZsb2F0IHNjYWxlRmFjdG9yWCwg
dW5yZXN0cmljdGVkIGZsb2F0IHNjYWxlRmFjdG9yWSk7CisgICAgW05ld09iamVjdF0gU1ZHTWF0
cml4IHJvdGF0ZSh1bnJlc3RyaWN0ZWQgZmxvYXQgYW5nbGUpOworICAgIFtNYXlUaHJvd0V4Y2Vw
dGlvbiwgTmV3T2JqZWN0XSBTVkdNYXRyaXggcm90YXRlRnJvbVZlY3Rvcih1bnJlc3RyaWN0ZWQg
ZmxvYXQgeCwgdW5yZXN0cmljdGVkIGZsb2F0IHkpOworICAgIFtOZXdPYmplY3RdIFNWR01hdHJp
eCBmbGlwWCgpOworICAgIFtOZXdPYmplY3RdIFNWR01hdHJpeCBmbGlwWSgpOworICAgIFtOZXdP
YmplY3RdIFNWR01hdHJpeCBza2V3WCh1bnJlc3RyaWN0ZWQgZmxvYXQgYW5nbGUpOworICAgIFtO
ZXdPYmplY3RdIFNWR01hdHJpeCBza2V3WSh1bnJlc3RyaWN0ZWQgZmxvYXQgYW5nbGUpOwogfTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXRyaXhWYWx1ZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXRyaXhWYWx1ZS5oCShyZXZpc2lvbiAyNDM0OTYpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4VmFsdWUuaAkobm9uZXhpc3RlbnQpCkBAIC0x
LDEyNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGlt
aXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUg
IkFmZmluZVRyYW5zZm9ybS5oIgotI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotY2xhc3MgU1ZHTWF0cml4VmFsdWUgZmluYWwgOiBwdWJsaWMgQWZmaW5l
VHJhbnNmb3JtIHsKLXB1YmxpYzoKLSAgICBTVkdNYXRyaXhWYWx1ZSgpID0gZGVmYXVsdDsKLQot
ICAgIFNWR01hdHJpeFZhbHVlKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgb3RoZXIpCi0gICAgICAg
IDogQWZmaW5lVHJhbnNmb3JtKG90aGVyKQotICAgIHsKLSAgICB9Ci0KLSAgICBTVkdNYXRyaXhW
YWx1ZShkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJsZSBjLCBkb3VibGUgZCwgZG91YmxlIGUsIGRv
dWJsZSBmKQotICAgICAgICA6IEFmZmluZVRyYW5zZm9ybShhLCBiLCBjLCBkLCBlLCBmKQotICAg
IHsKLSAgICB9Ci0KLSAgICBTVkdNYXRyaXhWYWx1ZSB0cmFuc2xhdGUoZG91YmxlIHR4LCBkb3Vi
bGUgdHkpCi0gICAgewotICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gY29weSB7ICp0aGlzIH07Ci0g
ICAgICAgIGNvcHkudHJhbnNsYXRlKHR4LCB0eSk7Ci0gICAgICAgIHJldHVybiBTVkdNYXRyaXhW
YWx1ZSB7IGNvcHkgfTsKLSAgICB9Ci0KLSAgICBTVkdNYXRyaXhWYWx1ZSBzY2FsZShkb3VibGUg
cykKLSAgICB7Ci0gICAgICAgIEFmZmluZVRyYW5zZm9ybSBjb3B5IHsgKnRoaXMgfTsKLSAgICAg
ICAgY29weS5zY2FsZShzLCBzKTsKLSAgICAgICAgcmV0dXJuIFNWR01hdHJpeFZhbHVlIHsgY29w
eSB9OwotICAgIH0KLQotICAgIFNWR01hdHJpeFZhbHVlIHNjYWxlTm9uVW5pZm9ybShkb3VibGUg
c3gsIGRvdWJsZSBzeSkKLSAgICB7Ci0gICAgICAgIEFmZmluZVRyYW5zZm9ybSBjb3B5IHsgKnRo
aXMgfTsKLSAgICAgICAgY29weS5zY2FsZShzeCwgc3kpOwotICAgICAgICByZXR1cm4gU1ZHTWF0
cml4VmFsdWUgeyBjb3B5IH07Ci0gICAgfQotCi0gICAgU1ZHTWF0cml4VmFsdWUgcm90YXRlKGRv
dWJsZSBkKQotICAgIHsKLSAgICAgICAgQWZmaW5lVHJhbnNmb3JtIGNvcHkgeyAqdGhpcyB9Owot
ICAgICAgICBjb3B5LnJvdGF0ZShkKTsKLSAgICAgICAgcmV0dXJuIFNWR01hdHJpeFZhbHVlIHsg
Y29weSB9OwotICAgIH0KLQotICAgIFNWR01hdHJpeFZhbHVlIGZsaXBYKCkKLSAgICB7Ci0gICAg
ICAgIEFmZmluZVRyYW5zZm9ybSBjb3B5IHsgKnRoaXMgfTsKLSAgICAgICAgY29weS5mbGlwWCgp
OwotICAgICAgICByZXR1cm4gU1ZHTWF0cml4VmFsdWUgeyBjb3B5IH07Ci0gICAgfQotCi0gICAg
U1ZHTWF0cml4VmFsdWUgZmxpcFkoKQotICAgIHsKLSAgICAgICAgQWZmaW5lVHJhbnNmb3JtIGNv
cHkgeyAqdGhpcyB9OwotICAgICAgICBjb3B5LmZsaXBZKCk7Ci0gICAgICAgIHJldHVybiBTVkdN
YXRyaXhWYWx1ZSB7IGNvcHkgfTsKLSAgICB9Ci0KLSAgICBTVkdNYXRyaXhWYWx1ZSBza2V3WChk
b3VibGUgYW5nbGUpCi0gICAgewotICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gY29weSB7ICp0aGlz
IH07Ci0gICAgICAgIGNvcHkuc2tld1goYW5nbGUpOwotICAgICAgICByZXR1cm4gU1ZHTWF0cml4
VmFsdWUgeyBjb3B5IH07Ci0gICAgfQotCi0gICAgU1ZHTWF0cml4VmFsdWUgc2tld1koZG91Ymxl
IGFuZ2xlKQotICAgIHsKLSAgICAgICAgQWZmaW5lVHJhbnNmb3JtIGNvcHkgeyAqdGhpcyB9Owot
ICAgICAgICBjb3B5LnNrZXdZKGFuZ2xlKTsKLSAgICAgICAgcmV0dXJuIFNWR01hdHJpeFZhbHVl
IHsgY29weSB9OwotICAgIH0KLQotICAgIFNWR01hdHJpeFZhbHVlIG11bHRpcGx5KGNvbnN0IFNW
R01hdHJpeFZhbHVlJiBvdGhlcikKLSAgICB7Ci0gICAgICAgIEFmZmluZVRyYW5zZm9ybSBjb3B5
IHsgKnRoaXMgfTsKLSAgICAgICAgY29weSAqPSBzdGF0aWNfY2FzdDxjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mPihvdGhlcik7Ci0gICAgICAgIHJldHVybiBTVkdNYXRyaXhWYWx1ZSB7IGNvcHkgfTsK
LSAgICB9Ci0KLSAgICBFeGNlcHRpb25PcjxTVkdNYXRyaXhWYWx1ZT4gaW52ZXJzZSgpIGNvbnN0
Ci0gICAgewotICAgICAgICBpZiAoYXV0byBpbnZlcnNlID0gQWZmaW5lVHJhbnNmb3JtOjppbnZl
cnNlKCkpCi0gICAgICAgICAgICByZXR1cm4gU1ZHTWF0cml4VmFsdWUgeyBpbnZlcnNlLnZhbHVl
KCkgfTsKLSAgICAgICAgCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciwgIk1hdHJpeCBpcyBub3QgaW52ZXJ0aWJsZSJfcyB9OwotICAgIH0KLQotICAgIEV4Y2Vw
dGlvbk9yPFNWR01hdHJpeFZhbHVlPiByb3RhdGVGcm9tVmVjdG9yKGRvdWJsZSB4LCBkb3VibGUg
eSkKLSAgICB7Ci0gICAgICAgIGlmICgheCB8fCAheSkKLSAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBUeXBlRXJyb3IgfTsKLQotICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gY29weSB7ICp0
aGlzIH07Ci0gICAgICAgIGNvcHkucm90YXRlRnJvbVZlY3Rvcih4LCB5KTsKLSAgICAgICAgcmV0
dXJuIFNWR01hdHJpeFZhbHVlIHsgY29weSB9OwotICAgIH0KLQotfTsKLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5jcHAJKHJldmlzaW9u
IDI0MzQ5NikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVmPFNWR01h
dHJpeD4gU1ZHVHJhbnNmb3JtOjptYXRyaXgoKQogewotICAgIHJldHVybiBTVkdNYXRyaXhUZWFy
T2ZmOjpjcmVhdGUoKnRoaXMsIHByb3BlcnR5UmVmZXJlbmNlKCkuc3ZnTWF0cml4KCkpOworICAg
IHJldHVybiBTVkdNYXRyaXhUZWFyT2ZmOjpjcmVhdGUoKnRoaXMsIHByb3BlcnR5UmVmZXJlbmNl
KCkubWF0cml4KCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtRGlzdGFuY2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1EaXN0YW5jZS5jcHAJKHJldmlzaW9uIDI0MzQ5NikK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1EaXN0YW5jZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE2MCw3ICsxNjAsNyBAQCBTVkdUcmFuc2Zvcm1WYWx1ZSBTVkdUcmFuc2Zvcm1E
aXN0YW5jZTo6CiAKIFNWR1RyYW5zZm9ybVZhbHVlIFNWR1RyYW5zZm9ybURpc3RhbmNlOjphZGRU
b1NWR1RyYW5zZm9ybShjb25zdCBTVkdUcmFuc2Zvcm1WYWx1ZSYgdHJhbnNmb3JtKSBjb25zdAog
ewotICAgIEFTU0VSVChtX3R5cGUgPT0gdHJhbnNmb3JtLnR5cGUoKSB8fCB0cmFuc2Zvcm0gPT0g
U1ZHVHJhbnNmb3JtVmFsdWUoKSk7CisgICAgQVNTRVJUKG1fdHlwZSA9PSB0cmFuc2Zvcm0udHlw
ZSgpIHx8ICF0cmFuc2Zvcm0uaXNWYWxpZCgpKTsKICAgICAKICAgICBTVkdUcmFuc2Zvcm1WYWx1
ZSBuZXdUcmFuc2Zvcm0odHJhbnNmb3JtKTsKICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUcmFuc2Zvcm1WYWx1ZS5oCShyZXZpc2lvbiAyNDM0OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVHJhbnNmb3JtVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6
aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMg
PGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMCw4ICsyMSw4IEBACiAKICNw
cmFnbWEgb25jZQogCisjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAiRmxv
YXRQb2ludC5oIgotI2luY2x1ZGUgIlNWR01hdHJpeFZhbHVlLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNTAsOCArNTEsOCBAQCBwdWJsaWM6CiAKICAgICBTVkdUcmFuc2Zvcm1UeXBl
IHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KIAotICAgIFNWR01hdHJpeFZhbHVlJiBz
dmdNYXRyaXgoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxTVkdNYXRyaXhWYWx1ZSY+KG1fbWF0cml4
KTsgfQotICAgIEFmZmluZVRyYW5zZm9ybSBtYXRyaXgoKSBjb25zdCB7IHJldHVybiBtX21hdHJp
eDsgfQorICAgIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgbWF0cml4KCkgY29uc3QgeyByZXR1cm4g
bV9tYXRyaXg7IH0KKyAgICBBZmZpbmVUcmFuc2Zvcm0mIG1hdHJpeCgpIHsgcmV0dXJuIG1fbWF0
cml4OyB9CiAgICAgdm9pZCB1cGRhdGVTVkdNYXRyaXgoKTsKIAogICAgIGZsb2F0IGFuZ2xlKCkg
Y29uc3QgeyByZXR1cm4gbV9hbmdsZTsgfQpAQCAtNzMsMjIgKzc0LDEwIEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgY29uc3QgU3RyaW5nJiB0cmFuc2Zvcm1UeXBlUHJlZml4Rm9yUGFyc2luZyhTVkdU
cmFuc2Zvcm1UeXBlKTsKIAogcHJpdmF0ZToKLSAgICBmcmllbmQgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IFNWR1RyYW5zZm9ybVZhbHVlJiwgY29uc3QgU1ZHVHJhbnNmb3JtVmFsdWUmKTsKLQogICAg
IFNWR1RyYW5zZm9ybVR5cGUgbV90eXBlIHsgU1ZHX1RSQU5TRk9STV9VTktOT1dOIH07CiAgICAg
ZmxvYXQgbV9hbmdsZSB7IDAgfTsKICAgICBGbG9hdFBvaW50IG1fY2VudGVyOwogICAgIEFmZmlu
ZVRyYW5zZm9ybSBtX21hdHJpeDsKIH07CiAKLWlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3Qg
U1ZHVHJhbnNmb3JtVmFsdWUmIGEsIGNvbnN0IFNWR1RyYW5zZm9ybVZhbHVlJiBiKQotewotICAg
IHJldHVybiBhLm1fdHlwZSA9PSBiLm1fdHlwZSAmJiBhLm1fYW5nbGUgPT0gYi5tX2FuZ2xlICYm
IGEubV9tYXRyaXggPT0gYi5tX21hdHJpeDsKLX0KLQotaW5saW5lIGJvb2wgb3BlcmF0b3IhPShj
b25zdCBTVkdUcmFuc2Zvcm1WYWx1ZSYgYSwgY29uc3QgU1ZHVHJhbnNmb3JtVmFsdWUmIGIpCi17
Ci0gICAgcmV0dXJuICEoYSA9PSBiKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTWF0cml4VGVhck9mZi5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRlYXJPZmYu
aAkocmV2aXNpb24gMjQzNDk2KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
TWF0cml4VGVhck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxNyArMjYsMTggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdNYXRyaXhUZWFyT2ZmIGZpbmFsIDogcHVibGljIFNW
R01hdHJpeCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdNYXRyaXhUZWFyT2ZmPiBjcmVh
dGUoU1ZHVHJhbnNmb3JtJiBwYXJlbnQsIFNWR01hdHJpeFZhbHVlJiB2YWx1ZSkKKyAgICBzdGF0
aWMgUmVmPFNWR01hdHJpeFRlYXJPZmY+IGNyZWF0ZShTVkdUcmFuc2Zvcm0mIHBhcmVudCwgQWZm
aW5lVHJhbnNmb3JtJiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVF9VTlVTRUQodmFsdWUs
ICZwYXJlbnQucHJvcGVydHlSZWZlcmVuY2UoKS5zdmdNYXRyaXgoKSA9PSAmdmFsdWUpOworICAg
ICAgICBBU1NFUlRfVU5VU0VEKHZhbHVlLCAmcGFyZW50LnByb3BlcnR5UmVmZXJlbmNlKCkubWF0
cml4KCkgPT0gJnZhbHVlKTsKICAgICAgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IFNW
R01hdHJpeFRlYXJPZmYocGFyZW50KSk7CiAgICAgICAgIHBhcmVudC5hZGRDaGlsZChtYWtlV2Vh
a1B0cihyZXN1bHQuZ2V0KCkpKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAg
ICBTVkdNYXRyaXhWYWx1ZSYgcHJvcGVydHlSZWZlcmVuY2UoKSBmaW5hbCB7IHJldHVybiBtX3Bh
cmVudC0+cHJvcGVydHlSZWZlcmVuY2UoKS5zdmdNYXRyaXgoKTsgfQorICAgIGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYgcHJvcGVydHlSZWZlcmVuY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Bh
cmVudC0+cHJvcGVydHlSZWZlcmVuY2UoKS5tYXRyaXgoKTsgfQorICAgIEFmZmluZVRyYW5zZm9y
bSYgcHJvcGVydHlSZWZlcmVuY2UoKSBmaW5hbCB7IHJldHVybiBtX3BhcmVudC0+cHJvcGVydHlS
ZWZlcmVuY2UoKS5tYXRyaXgoKTsgfQogCi0gICAgdm9pZCBzZXRWYWx1ZShTVkdNYXRyaXhWYWx1
ZSYgdmFsdWUpIGZpbmFsIHsgbV9wYXJlbnQtPnByb3BlcnR5UmVmZXJlbmNlKCkuc2V0TWF0cml4
KHZhbHVlKTsgfQorICAgIHZvaWQgc2V0VmFsdWUoQWZmaW5lVHJhbnNmb3JtJiB2YWx1ZSkgZmlu
YWwgeyBtX3BhcmVudC0+cHJvcGVydHlSZWZlcmVuY2UoKS5zZXRNYXRyaXgodmFsdWUpOyB9CiAK
ICAgICB2b2lkIGNvbW1pdENoYW5nZSgpIGZpbmFsCiAgICAgewpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUZWFyT2ZmLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUZWFyT2ZmLmgJKHJldmlzaW9u
IDI0MzQ5NikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VGVh
ck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC02MCw2ICs2MCw3IEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIGNyZWF0ZShpbml0aWFsVmFsdWUucmVsZWFzZVJldHVyblZhbHVlKCkpOwogICAgIH0K
IAorICAgIHZpcnR1YWwgY29uc3QgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eVJlZmVyZW5jZSgpIGNv
bnN0IHsgcmV0dXJuICptX3ZhbHVlOyB9CiAgICAgdmlydHVhbCBQcm9wZXJ0eVR5cGUmIHByb3Bl
cnR5UmVmZXJlbmNlKCkgeyByZXR1cm4gKm1fdmFsdWU7IH0KICAgICBTVkdMZWdhY3lBbmltYXRl
ZFByb3BlcnR5KiBhbmltYXRlZFByb3BlcnR5KCkgY29uc3QgeyByZXR1cm4gbV9hbmltYXRlZFBy
b3BlcnR5LmdldCgpOyB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366020</attachid>
            <date>2019-03-26 16:22:21 -0700</date>
            <delta_ts>2019-03-26 16:26:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196263-20190326162220.patch</filename>
            <type>text/plain</type>
            <size>41933</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MzUyMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDgwIEBACisyMDE5LTAzLTI2ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgU1ZHTWF0cml4
LklETCBtZXRob2RzIGRvIG5vdCBjb25mb3JtIHRvIHRoZSBzcGVjcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2MjYzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSSB0aGluayB0aGVyZSB3YXMgYSBtaXNj
b25jZXB0aW9uIGFib3V0IHRoZXNlIGZ1bmN0aW9ucy4gVGhlIHNwZWNzIGxpbmsKKyAgICAgICAg
aXM6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9jb29yZHMuaHRtbCNJbnRlcmZhY2VTVkdN
YXRyaXguCisKKyAgICAgICAgTm90aWNlIHRoYXQgdGhlIHNwZWNzIGRvZXMgbm90IHN0YXRlIHRo
YXQgdGhlIFNWR01ldGhvZCBtZXRob2RzIHNob3VsZAorICAgICAgICByYWlzZSB0aGUgZXhjZXB0
aW9uIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBpZiB0aGUgb2JqZWN0IGlzIHJlYWQKKyAg
ICAgICAgb25seS4gTm90aWNlIHNldHRpbmcgdGhlIGF0dHJpYnV0ZSAnYScgZm9yIGV4YW1wbGUg
bWF5IHJhaXNlIHRoaXMKKyAgICAgICAgZXhjZXB0aW9uLiBUaGVyZWZvcmUsIEkgdGhpbmsgdGhl
IHNwZWNzIHdhbnRlZCB0byBtYWtlIHRoZXNlIG9wZXJhdGlvbnMKKyAgICAgICAgcmVhZC1vbmx5
LiBOb25lIG9mIHRoZSBtZXRob2RzIHNob3VsZCByYWlzZSB0aGUgZXhjZXB0aW9uCisgICAgICAg
IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUi4KKworICAgICAgICBJbiBmYWN0IHRoZSBTVkcg
Y29kZSB3YXMgZG9pbmcgdGhlIHJpZ2h0IHRoaW5nLiBGb3IgZXhhbXBsZSBTVkdNYXRyaXg6OnNj
YWxlKCkKKyAgICAgICAgd2FzIGNhbGxpbmcgU1ZHTWF0cml4VmFsdWU6OnNjYWxlKCkgd2hpY2gg
d2FzIG1ha2luZyBhIGNvcHkgb2YgaXRzZWxmLAorICAgICAgICBhcHBseWluZyB0aGUgc2NhbGUg
b24gdGhlIGNvcHkgYW5kIHRoZW4gcmV0dXJuaW5nIHRoZSBjb3B5LiBXaGVuIAorICAgICAgICBT
VkdNYXRyaXg6OnNjYWxlKCkgcmVjZWl2ZXMgdGhlIGNvcHkgb2YgdGhlIFNWR01hdHJpeFZhbHVl
IGl0IGNyZWF0ZXMgYW5kCisgICAgICAgIHJldHVybnMgYSBuZXcgU1ZHTWF0cml4IG9iamVjdC4K
KworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBzdmcvU1ZHTWF0cml4Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmEgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHTWF0cml4OjpiIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6YyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTWF0cml4OjplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJp
eDo6ZiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6Om11bHRpcGx5IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6aW52ZXJzZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdNYXRyaXg6OnRyYW5zbGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdNYXRyaXg6OnNjYWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6
c2NhbGVOb25Vbmlmb3JtIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6cm90
YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6cm90YXRlRnJvbVZlY3Rv
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmZsaXBYIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6ZmxpcFkgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHTWF0cml4Ojpza2V3WCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6
OnNrZXdZIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6YSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmIpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTWF0cml4OjpjKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJp
eDo6ZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmUpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpmKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNWR01hdHJpeDo6bXVsdGlwbHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTWF0cml4OjppbnZlcnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJp
eDo6dHJhbnNsYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2Nh
bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzY2FsZU5vblVuaWZv
cm0pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojpyb3RhdGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojpyb3RhdGVGcm9tVmVjdG9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6ZmxpcFgpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpmbGlwWSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpTVkdNYXRyaXg6OnNrZXdYKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR01h
dHJpeDo6c2tld1kpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpTVkdN
YXRyaXgpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdNYXRyaXguaWRsOgorICAgICAgICAq
IHN2Zy9TVkdNYXRyaXhWYWx1ZS5oOiBSZW1vdmVkLgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zv
cm0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjptYXRyaXgpOgorICAgICAg
ICAqIHN2Zy9TVkdUcmFuc2Zvcm1EaXN0YW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdU
cmFuc2Zvcm1EaXN0YW5jZTo6YWRkVG9TVkdUcmFuc2Zvcm0gY29uc3QpOgorICAgICAgICAqIHN2
Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtVmFs
dWU6Om1hdHJpeCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1WYWx1ZTo6
bWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybVZhbHVlOjpzdmdNYXRyaXgp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpvcGVyYXRvciE9KTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvcHJvcGVy
dGllcy9TVkdNYXRyaXhUZWFyT2ZmLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJv
cGVydHlUZWFyT2ZmLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRlYXJPZmY6OnBy
b3BlcnR5UmVmZXJlbmNlIGNvbnN0KToKKwogMjAxOS0wMy0yNiAgU2FpZCBBYm91LUhhbGxhd2Eg
IDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdGhlIFNWRyB0ZWFyIG9mZiBvYmpl
Y3RzIGZvciBTVkdMZW5ndGgsIFNWR0xlbmd0aExpc3QgYW5kIFNWR0FuaW1hdGVkTGVuZ3RoTGlz
dApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gMjQzNDk2KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yMzU4LDcgKzIzNTgsNiBA
QAogCQk3Q0U1OEQ0QTFERDY0QTVCMDAxMjg1NTIgLyogU1ZHUG9pbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTU4RDQ5MURENjRBNUIwMDEyODU1
MiAvKiBTVkdQb2ludC5oICovOyB9OwogCQk3Q0U1OEQ1MDFERDY5QTFFMDAxMjg1NTIgLyogU1ZH
TnVtYmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
Q0U1OEQ0RjFERDY5QTFFMDAxMjg1NTIgLyogU1ZHTnVtYmVyLmggKi87IH07CiAJCTdDRTU4RDU4
MUREN0Q5NkQwMDEyODU1MiAvKiBTVkdUcmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENTYxREQ3RDk2RDAwMTI4NTUyIC8q
IFNWR1RyYW5zZm9ybVZhbHVlLmggKi87IH07Ci0JCTdDRTU4RDVDMUREN0VDOUMwMDEyODU1MiAv
KiBTVkdNYXRyaXhWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0NFNThENUIxREQ3RUM5QzAwMTI4NTUyIC8qIFNWR01hdHJpeFZhbHVlLmggKi87
IH07CiAJCTdDRTY4MzQ0MTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNj
cmlwdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdDRTY4MzQyMTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9y
LmNwcCAqLzsgfTsKIAkJN0NFNjgzNDUxOTIxNDNBODAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFu
ZGxlckRlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDRTY4MzQzMTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNj
cmlwdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJN0NFNjgzNDcxOTIxODIxNTAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0
b3JUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0NFNjgzNDYxOTIxODIxNTAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3JU
eXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC05OTgxLDcgKzk5ODAsNiBAQAogCQk3Q0U1OEQ1NTFERDdEOTZEMDAxMjg1NTIgLyogU1ZHVHJh
bnNmb3JtVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZH
VHJhbnNmb3JtVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0U1OEQ1
NjFERDdEOTZEMDAxMjg1NTIgLyogU1ZHVHJhbnNmb3JtVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU1ZHVHJhbnNmb3JtVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0NFNThENTkxREQ3REU1MjAwMTI4NTUyIC8qIFNWR1RyYW5zZm9ybS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdUcmFuc2Zvcm0uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3Q0U1OEQ1QjFERDdFQzlDMDAxMjg1NTIgLyog
U1ZHTWF0cml4VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHTWF0
cml4VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NFNjgzNDIxOTIxNDNB
ODAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3IuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRTY4MzQzMTkyMTQzQTgwMEY0RDky
OCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0NFNjgzNDYxOTIxODIxNTAwRjREOTI4IC8qIFVzZXJNZXNzYWdl
SGFuZGxlckRlc2NyaXB0b3JUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTI0MzU5LDcgKzI0MzU3LDYgQEAKIAkJCQlCMjIyNzhCMjBEMDBCRjIwMDA3
MUI3ODIgLyogU1ZHTWFza0VsZW1lbnQuaWRsICovLAogCQkJCTA4MDZFNTc5MTI4OTMwNDUwMDdD
RUQzMiAvKiBTVkdNYXRyaXguaCAqLywKIAkJCQlCMjIyNzhCMzBEMDBCRjIwMDA3MUI3ODIgLyog
U1ZHTWF0cml4LmlkbCAqLywKLQkJCQk3Q0U1OEQ1QjFERDdFQzlDMDAxMjg1NTIgLyogU1ZHTWF0
cml4VmFsdWUuaCAqLywKIAkJCQlCMjIyNzhCNDBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWV0YWRh
dGFFbGVtZW50LmNwcCAqLywKIAkJCQlCMjIyNzhCNTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWV0
YWRhdGFFbGVtZW50LmggKi8sCiAJCQkJQjIyMjc4QjYwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR01l
dGFkYXRhRWxlbWVudC5pZGwgKi8sCkBAIC0zMjAwMSw3ICszMTk5OCw2IEBACiAJCQkJQjIyMjdB
NDcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR01hc2tFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwODA2RTU3QTEyODkzMDQ1MDA3Q0VEMzIgLyogU1ZHTWF0cml4LmggaW4gSGVhZGVycyAqLywK
IAkJCQkwOENBM0Q0NDEyODk0QTM4MDBGRkYyNjAgLyogU1ZHTWF0cml4VGVhck9mZi5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJN0NFNThENUMxREQ3RUM5QzAwMTI4NTUyIC8qIFNWR01hdHJpeFZhbHVl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E0QjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTWV0
YWRhdGFFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkExRjJCMTBDRUYwQUJGMDA0NDJG
NkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdB
NEUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR01QYXRoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5oCShyZXZpc2lvbiAyNDM0OTYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTWF0cml4LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjUsMjAgKzI1LDIzIEBACiAKICNw
cmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU1ZHTWF0cml4VmFsdWUuaCIKKyNpbmNsdWRlICJBZmZp
bmVUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJTVkdQcm9wZXJ0eVRlYXJPZmYuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgY2xhc3Mgb25jZSBTVkdNYXRy
aXggYmVjb21lcyBhbiBhbGlhcyB0byBET01NYXRyaXguCi1jbGFzcyBTVkdNYXRyaXggOiBwdWJs
aWMgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR01hdHJpeFZhbHVlPiB7CitjbGFzcyBTVkdNYXRyaXgg
OiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPEFmZmluZVRyYW5zZm9ybT4geworICAgIHVzaW5n
IEJhc2UgPSBTVkdQcm9wZXJ0eVRlYXJPZmY8QWZmaW5lVHJhbnNmb3JtPjsKKyAgICB1c2luZyBC
YXNlOjpCYXNlOworCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdNYXRyaXg+IGNyZWF0ZShT
VkdMZWdhY3lBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJv
bGUgcm9sZSwgU1ZHTWF0cml4VmFsdWUmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHTWF0cml4
PiBjcmVhdGUoU1ZHTGVnYWN5QW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZH
UHJvcGVydHlSb2xlIHJvbGUsIEFmZmluZVRyYW5zZm9ybSYgdmFsdWUpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdNYXRyaXgoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwg
dmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTWF0cml4KCZhbmltYXRl
ZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHTWF0
cml4PiBjcmVhdGUoY29uc3QgU1ZHTWF0cml4VmFsdWUmIGluaXRpYWxWYWx1ZSA9IHsgfSkKKyAg
ICBzdGF0aWMgUmVmPFNWR01hdHJpeD4gY3JlYXRlKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgaW5p
dGlhbFZhbHVlID0geyB9KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
TWF0cml4KGluaXRpYWxWYWx1ZSkpOwogICAgIH0KQEAgLTUwLDcgKzUzLDcgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gY3JlYXRlKGluaXRpYWxWYWx1ZS5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7
CiAgICAgfQogCi0gICAgZG91YmxlIGEoKQorICAgIGRvdWJsZSBhKCkgY29uc3QKICAgICB7CiAg
ICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLmEoKTsKICAgICB9CkBAIC02Niw3ICs2
OSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKLSAgICBkb3VibGUg
YigpCisgICAgZG91YmxlIGIoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIHByb3BlcnR5
UmVmZXJlbmNlKCkuYigpOwogICAgIH0KQEAgLTgyLDcgKzg1LDcgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4geyB9OwogICAgIH0KIAotICAgIGRvdWJsZSBjKCkKKyAgICBkb3VibGUgYygpIGNv
bnN0CiAgICAgewogICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5jKCk7CiAgICAg
fQpAQCAtOTgsNyArMTAxLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4geyB9OwogICAgIH0K
IAotICAgIGRvdWJsZSBkKCkKKyAgICBkb3VibGUgZCgpIGNvbnN0CiAgICAgewogICAgICAgICBy
ZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5kKCk7CiAgICAgfQpAQCAtMTE0LDcgKzExNyw3IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKLSAgICBkb3VibGUgZSgpCisg
ICAgZG91YmxlIGUoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJl
bmNlKCkuZSgpOwogICAgIH0KQEAgLTEzMCw3ICsxMzMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiB7IH07CiAgICAgfQogCi0gICAgZG91YmxlIGYoKQorICAgIGRvdWJsZSBmKCkgY29uc3QK
ICAgICB7CiAgICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLmYoKTsKICAgICB9CkBA
IC0xNDYsMTQ1ICsxNDksODYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4geyB9OwogICAgIH0K
IAotICAgIEV4Y2VwdGlvbk9yPFJlZjxTVkdNYXRyaXg+PiBtdWx0aXBseShTVkdNYXRyaXgmIHNl
Y29uZE1hdHJpeCkKKyAgICBSZWY8U1ZHTWF0cml4PiBtdWx0aXBseShTVkdNYXRyaXgmIHNlY29u
ZE1hdHJpeCkgY29uc3QKICAgICB7Ci0gICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCi0gICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKLQot
ICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkubXVsdGlwbHkoc2Vjb25k
TWF0cml4LnByb3BlcnR5UmVmZXJlbmNlKCkpOwotICAgICAgICBjb21taXRDaGFuZ2UoKTsKLQot
ICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKKyAgICAgICAgYXV0byBj
b3B5ID0gcHJvcGVydHlSZWZlcmVuY2UoKTsKKyAgICAgICAgY29weS5tdWx0aXBseShzZWNvbmRN
YXRyaXgucHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNy
ZWF0ZShjb3B5KTsKICAgICB9CiAKLSAgICBFeGNlcHRpb25PcjxSZWY8U1ZHTWF0cml4Pj4gaW52
ZXJzZSgpCisgICAgRXhjZXB0aW9uT3I8UmVmPFNWR01hdHJpeD4+IGludmVyc2UoKSBjb25zdAog
ICAgIHsKLSAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKLSAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OworICAgICAgICBhdXRvIGludmVy
c2UgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmludmVyc2UoKTsKKyAgICAgICAgaWYgKCFpbnZlcnNl
KQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiTWF0
cml4IGlzIG5vdCBpbnZlcnRpYmxlIl9zIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9w
ZXJ0eVJlZmVyZW5jZSgpLmludmVyc2UoKTsKLSAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRp
b24oKSkKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwotICAg
ICAgICAKLSAgICAgICAgY29tbWl0Q2hhbmdlKCk7Ci0gICAgICAgIHJldHVybiBTVkdNYXRyaXg6
OmNyZWF0ZShyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOworICAgICAgICByZXR1cm4gU1ZH
TWF0cml4OjpjcmVhdGUoKmludmVyc2UpOwogICAgIH0KIAotICAgIEV4Y2VwdGlvbk9yPFJlZjxT
VkdNYXRyaXg+PiB0cmFuc2xhdGUoZmxvYXQgeCwgZmxvYXQgeSkKKyAgICBSZWY8U1ZHTWF0cml4
PiB0cmFuc2xhdGUoZmxvYXQgeCwgZmxvYXQgeSkgY29uc3QKICAgICB7Ci0gICAgICAgIGlmIChp
c1JlYWRPbmx5KCkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRp
b25BbGxvd2VkRXJyb3IgfTsKLQotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJl
bmNlKCkudHJhbnNsYXRlKHgsIHkpOyAgICAgICAgCi0gICAgICAgIGNvbW1pdENoYW5nZSgpOwot
Ci0gICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOworICAgICAgICBhdXRv
IGNvcHkgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpOworICAgICAgICBjb3B5LnRyYW5zbGF0ZSh4LCB5
KTsKKyAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKGNvcHkpOwogICAgIH0KIAotICAg
IEV4Y2VwdGlvbk9yPFJlZjxTVkdNYXRyaXg+PiBzY2FsZShmbG9hdCBzY2FsZUZhY3RvcikKKyAg
ICBSZWY8U1ZHTWF0cml4PiBzY2FsZShmbG9hdCBzY2FsZUZhY3RvcikgY29uc3QKICAgICB7Ci0g
ICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
Tm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKLQotICAgICAgICBhdXRvIHJlc3VsdCA9IHBy
b3BlcnR5UmVmZXJlbmNlKCkuc2NhbGUoc2NhbGVGYWN0b3IpOyAgICAgICAgCi0gICAgICAgIGNv
bW1pdENoYW5nZSgpOwotCi0gICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQp
OworICAgICAgICBhdXRvIGNvcHkgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpOworICAgICAgICBjb3B5
LnNjYWxlKHNjYWxlRmFjdG9yKTsKKyAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKGNv
cHkpOwogICAgIH0KIAotICAgIEV4Y2VwdGlvbk9yPFJlZjxTVkdNYXRyaXg+PiBzY2FsZU5vblVu
aWZvcm0oZmxvYXQgc2NhbGVGYWN0b3JYLCBmbG9hdCBzY2FsZUZhY3RvclkpCisgICAgUmVmPFNW
R01hdHJpeD4gc2NhbGVOb25Vbmlmb3JtKGZsb2F0IHNjYWxlRmFjdG9yWCwgZmxvYXQgc2NhbGVG
YWN0b3JZKSBjb25zdAogICAgIHsKLSAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKLSAgICAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwotCi0g
ICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5zY2FsZU5vblVuaWZvcm0o
c2NhbGVGYWN0b3JYLCBzY2FsZUZhY3RvclkpOyAgICAgICAgCi0gICAgICAgIGNvbW1pdENoYW5n
ZSgpOwotCi0gICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOworICAgICAg
ICBhdXRvIGNvcHkgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpOworICAgICAgICBjb3B5LnNjYWxlTm9u
VW5pZm9ybShzY2FsZUZhY3RvclgsIHNjYWxlRmFjdG9yWSk7CisgICAgICAgIHJldHVybiBTVkdN
YXRyaXg6OmNyZWF0ZShjb3B5KTsKICAgICB9CiAKLSAgICBFeGNlcHRpb25PcjxSZWY8U1ZHTWF0
cml4Pj4gcm90YXRlKGZsb2F0IGFuZ2xlKQorICAgIFJlZjxTVkdNYXRyaXg+IHJvdGF0ZShmbG9h
dCBhbmdsZSkgY29uc3QKICAgICB7Ci0gICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCi0gICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKLQot
ICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkucm90YXRlKGFuZ2xlKTsg
ICAgICAgIAotICAgICAgICBjb21taXRDaGFuZ2UoKTsKLQotICAgICAgICByZXR1cm4gU1ZHTWF0
cml4OjpjcmVhdGUocmVzdWx0KTsKKyAgICAgICAgYXV0byBjb3B5ID0gcHJvcGVydHlSZWZlcmVu
Y2UoKTsKKyAgICAgICAgY29weS5yb3RhdGUoYW5nbGUpOworICAgICAgICByZXR1cm4gU1ZHTWF0
cml4OjpjcmVhdGUoY29weSk7CiAgICAgfQogCi0gICAgRXhjZXB0aW9uT3I8UmVmPFNWR01hdHJp
eD4+IHJvdGF0ZUZyb21WZWN0b3IoZmxvYXQgeCwgZmxvYXQgeSkKKyAgICBFeGNlcHRpb25PcjxS
ZWY8U1ZHTWF0cml4Pj4gcm90YXRlRnJvbVZlY3RvcihmbG9hdCB4LCBmbG9hdCB5KSBjb25zdAog
ICAgIHsKLSAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKLSAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OworICAgICAgICBpZiAoIXggfHwg
IXkpCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yIH07CiAKLSAgICAg
ICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnJvdGF0ZUZyb21WZWN0b3IoeCwg
eSk7ICAgICAgICAKLSAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKLSAgICAgICAg
ICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwotICAgICAgICAKLSAgICAgICAg
Y29tbWl0Q2hhbmdlKCk7Ci0gICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQu
cmVsZWFzZVJldHVyblZhbHVlKCkpOwotICAgIH0KLQotICAgIEV4Y2VwdGlvbk9yPFJlZjxTVkdN
YXRyaXg+PiBmbGlwWCgpCi0gICAgewotICAgICAgICBpZiAoaXNSZWFkT25seSgpKQotICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07Ci0K
LSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmZsaXBYKCk7ICAgICAg
ICAKLSAgICAgICAgY29tbWl0Q2hhbmdlKCk7Ci0KLSAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6
Y3JlYXRlKHJlc3VsdCk7Ci0gICAgfQotCi0gICAgRXhjZXB0aW9uT3I8UmVmPFNWR01hdHJpeD4+
IGZsaXBZKCkKLSAgICB7Ci0gICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCi0gICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKLQotICAgICAg
ICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuZmxpcFkoKTsgICAgICAgIAotICAg
ICAgICBjb21taXRDaGFuZ2UoKTsKLQotICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUo
cmVzdWx0KTsKKyAgICAgICAgYXV0byBjb3B5ID0gcHJvcGVydHlSZWZlcmVuY2UoKTsKKyAgICAg
ICAgY29weS5yb3RhdGVGcm9tVmVjdG9yKHgsIHkpOworICAgICAgICByZXR1cm4gU1ZHTWF0cml4
OjpjcmVhdGUoY29weSk7CiAgICAgfQogCi0gICAgRXhjZXB0aW9uT3I8UmVmPFNWR01hdHJpeD4+
IHNrZXdYKGZsb2F0IGFuZ2xlKQorICAgIFJlZjxTVkdNYXRyaXg+IGZsaXBYKCkgY29uc3QKICAg
ICB7Ci0gICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKLQotICAgICAgICBhdXRvIHJlc3Vs
dCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2tld1goYW5nbGUpOyAgICAgICAgCi0gICAgICAgIGNv
bW1pdENoYW5nZSgpOwotCi0gICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQp
OwotICAgIH0KLQotICAgIEV4Y2VwdGlvbk9yPFJlZjxTVkdNYXRyaXg+PiBza2V3WShmbG9hdCBh
bmdsZSkKLSAgICB7Ci0gICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCi0gICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKLQotICAgICAgICBh
dXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2tld1koYW5nbGUpOyAgICAgICAgCi0g
ICAgICAgIGNvbW1pdENoYW5nZSgpOwotCi0gICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0
ZShyZXN1bHQpOworICAgICAgICBhdXRvIGNvcHkgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpOworICAg
ICAgICBjb3B5LmZsaXBYKCk7CisgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShjb3B5
KTsKICAgICB9CiAKLXByb3RlY3RlZDoKLSAgICBTVkdNYXRyaXgoU1ZHTGVnYWN5QW5pbWF0ZWRQ
cm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR01hdHJp
eFZhbHVlJiB2YWx1ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHTWF0cml4VmFs
dWU+KCZhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkKKyAgICBSZWY8U1ZHTWF0cml4PiBm
bGlwWSgpIGNvbnN0CiAgICAgeworICAgICAgICBhdXRvIGNvcHkgPSBwcm9wZXJ0eVJlZmVyZW5j
ZSgpOworICAgICAgICBjb3B5LmZsaXBZKCk7CisgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNy
ZWF0ZShjb3B5KTsKICAgICB9CiAKLSAgICBleHBsaWNpdCBTVkdNYXRyaXgoY29uc3QgU1ZHTWF0
cml4VmFsdWUmIGluaXRpYWxWYWx1ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZH
TWF0cml4VmFsdWU+KGluaXRpYWxWYWx1ZSkKKyAgICBSZWY8U1ZHTWF0cml4PiBza2V3WChmbG9h
dCBhbmdsZSkgY29uc3QKICAgICB7CisgICAgICAgIGF1dG8gY29weSA9IHByb3BlcnR5UmVmZXJl
bmNlKCk7CisgICAgICAgIGNvcHkuc2tld1goYW5nbGUpOworICAgICAgICByZXR1cm4gU1ZHTWF0
cml4OjpjcmVhdGUoY29weSk7CiAgICAgfQogCi0gICAgZXhwbGljaXQgU1ZHTWF0cml4KGNvbnN0
IFNWR01hdHJpeFZhbHVlKiBpbml0aWFsVmFsdWUpCi0gICAgICAgIDogU1ZHUHJvcGVydHlUZWFy
T2ZmPFNWR01hdHJpeFZhbHVlPihpbml0aWFsVmFsdWUpCisgICAgUmVmPFNWR01hdHJpeD4gc2tl
d1koZmxvYXQgYW5nbGUpIGNvbnN0CiAgICAgeworICAgICAgICBhdXRvIGNvcHkgPSBwcm9wZXJ0
eVJlZmVyZW5jZSgpOworICAgICAgICBjb3B5LnNrZXdZKGFuZ2xlKTsKKyAgICAgICAgcmV0dXJu
IFNWR01hdHJpeDo6Y3JlYXRlKGNvcHkpOwogICAgIH0KIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdNYXRyaXguaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNYXRyaXguaWRsCShyZXZpc2lvbiAyNDM0OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TWF0cml4LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTUgKzMzLDE1IEBACiAgICAgYXR0cmli
dXRlIHVucmVzdHJpY3RlZCBkb3VibGUgZTsKICAgICBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRv
dWJsZSBmOwogCi0gICAgW01heVRocm93RXhjZXB0aW9uXSBTVkdNYXRyaXggbXVsdGlwbHkoU1ZH
TWF0cml4IHNlY29uZE1hdHJpeCk7Ci0gICAgW01heVRocm93RXhjZXB0aW9uXSBTVkdNYXRyaXgg
aW52ZXJzZSgpOwotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gU1ZHTWF0cml4IHRyYW5zbGF0ZSh1
bnJlc3RyaWN0ZWQgZmxvYXQgeCwgdW5yZXN0cmljdGVkIGZsb2F0IHkpOwotICAgIFtNYXlUaHJv
d0V4Y2VwdGlvbl0gU1ZHTWF0cml4IHNjYWxlKHVucmVzdHJpY3RlZCBmbG9hdCBzY2FsZUZhY3Rv
cik7Ci0gICAgW01heVRocm93RXhjZXB0aW9uXSBTVkdNYXRyaXggc2NhbGVOb25Vbmlmb3JtKHVu
cmVzdHJpY3RlZCBmbG9hdCBzY2FsZUZhY3RvclgsIHVucmVzdHJpY3RlZCBmbG9hdCBzY2FsZUZh
Y3RvclkpOwotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gU1ZHTWF0cml4IHJvdGF0ZSh1bnJlc3Ry
aWN0ZWQgZmxvYXQgYW5nbGUpOwotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gU1ZHTWF0cml4IHJv
dGF0ZUZyb21WZWN0b3IodW5yZXN0cmljdGVkIGZsb2F0IHgsIHVucmVzdHJpY3RlZCBmbG9hdCB5
KTsKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFNWR01hdHJpeCBmbGlwWCgpOwotICAgIFtNYXlU
aHJvd0V4Y2VwdGlvbl0gU1ZHTWF0cml4IGZsaXBZKCk7Ci0gICAgW01heVRocm93RXhjZXB0aW9u
XSBTVkdNYXRyaXggc2tld1godW5yZXN0cmljdGVkIGZsb2F0IGFuZ2xlKTsKLSAgICBbTWF5VGhy
b3dFeGNlcHRpb25dIFNWR01hdHJpeCBza2V3WSh1bnJlc3RyaWN0ZWQgZmxvYXQgYW5nbGUpOwor
ICAgIFtOZXdPYmplY3RdIFNWR01hdHJpeCBtdWx0aXBseShTVkdNYXRyaXggc2Vjb25kTWF0cml4
KTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb24sIE5ld09iamVjdF0gU1ZHTWF0cml4IGludmVyc2Uo
KTsKKyAgICBbTmV3T2JqZWN0XSBTVkdNYXRyaXggdHJhbnNsYXRlKHVucmVzdHJpY3RlZCBmbG9h
dCB4LCB1bnJlc3RyaWN0ZWQgZmxvYXQgeSk7CisgICAgW05ld09iamVjdF0gU1ZHTWF0cml4IHNj
YWxlKHVucmVzdHJpY3RlZCBmbG9hdCBzY2FsZUZhY3Rvcik7CisgICAgW05ld09iamVjdF0gU1ZH
TWF0cml4IHNjYWxlTm9uVW5pZm9ybSh1bnJlc3RyaWN0ZWQgZmxvYXQgc2NhbGVGYWN0b3JYLCB1
bnJlc3RyaWN0ZWQgZmxvYXQgc2NhbGVGYWN0b3JZKTsKKyAgICBbTmV3T2JqZWN0XSBTVkdNYXRy
aXggcm90YXRlKHVucmVzdHJpY3RlZCBmbG9hdCBhbmdsZSk7CisgICAgW01heVRocm93RXhjZXB0
aW9uLCBOZXdPYmplY3RdIFNWR01hdHJpeCByb3RhdGVGcm9tVmVjdG9yKHVucmVzdHJpY3RlZCBm
bG9hdCB4LCB1bnJlc3RyaWN0ZWQgZmxvYXQgeSk7CisgICAgW05ld09iamVjdF0gU1ZHTWF0cml4
IGZsaXBYKCk7CisgICAgW05ld09iamVjdF0gU1ZHTWF0cml4IGZsaXBZKCk7CisgICAgW05ld09i
amVjdF0gU1ZHTWF0cml4IHNrZXdYKHVucmVzdHJpY3RlZCBmbG9hdCBhbmdsZSk7CisgICAgW05l
d09iamVjdF0gU1ZHTWF0cml4IHNrZXdZKHVucmVzdHJpY3RlZCBmbG9hdCBhbmdsZSk7CiB9OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeFZhbHVlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeFZhbHVlLmgJKHJldmlzaW9uIDI0MzQ5NikKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXRyaXhWYWx1ZS5oCShub25leGlzdGVudCkKQEAgLTEs
MTI0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1p
dGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAi
QWZmaW5lVHJhbnNmb3JtLmgiCi0jaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi1jbGFzcyBTVkdNYXRyaXhWYWx1ZSBmaW5hbCA6IHB1YmxpYyBBZmZpbmVU
cmFuc2Zvcm0gewotcHVibGljOgotICAgIFNWR01hdHJpeFZhbHVlKCkgPSBkZWZhdWx0OwotCi0g
ICAgU1ZHTWF0cml4VmFsdWUoY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBvdGhlcikKLSAgICAgICAg
OiBBZmZpbmVUcmFuc2Zvcm0ob3RoZXIpCi0gICAgewotICAgIH0KLQotICAgIFNWR01hdHJpeFZh
bHVlKGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMsIGRvdWJsZSBkLCBkb3VibGUgZSwgZG91
YmxlIGYpCi0gICAgICAgIDogQWZmaW5lVHJhbnNmb3JtKGEsIGIsIGMsIGQsIGUsIGYpCi0gICAg
ewotICAgIH0KLQotICAgIFNWR01hdHJpeFZhbHVlIHRyYW5zbGF0ZShkb3VibGUgdHgsIGRvdWJs
ZSB0eSkKLSAgICB7Ci0gICAgICAgIEFmZmluZVRyYW5zZm9ybSBjb3B5IHsgKnRoaXMgfTsKLSAg
ICAgICAgY29weS50cmFuc2xhdGUodHgsIHR5KTsKLSAgICAgICAgcmV0dXJuIFNWR01hdHJpeFZh
bHVlIHsgY29weSB9OwotICAgIH0KLQotICAgIFNWR01hdHJpeFZhbHVlIHNjYWxlKGRvdWJsZSBz
KQotICAgIHsKLSAgICAgICAgQWZmaW5lVHJhbnNmb3JtIGNvcHkgeyAqdGhpcyB9OwotICAgICAg
ICBjb3B5LnNjYWxlKHMsIHMpOwotICAgICAgICByZXR1cm4gU1ZHTWF0cml4VmFsdWUgeyBjb3B5
IH07Ci0gICAgfQotCi0gICAgU1ZHTWF0cml4VmFsdWUgc2NhbGVOb25Vbmlmb3JtKGRvdWJsZSBz
eCwgZG91YmxlIHN5KQotICAgIHsKLSAgICAgICAgQWZmaW5lVHJhbnNmb3JtIGNvcHkgeyAqdGhp
cyB9OwotICAgICAgICBjb3B5LnNjYWxlKHN4LCBzeSk7Ci0gICAgICAgIHJldHVybiBTVkdNYXRy
aXhWYWx1ZSB7IGNvcHkgfTsKLSAgICB9Ci0KLSAgICBTVkdNYXRyaXhWYWx1ZSByb3RhdGUoZG91
YmxlIGQpCi0gICAgewotICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gY29weSB7ICp0aGlzIH07Ci0g
ICAgICAgIGNvcHkucm90YXRlKGQpOwotICAgICAgICByZXR1cm4gU1ZHTWF0cml4VmFsdWUgeyBj
b3B5IH07Ci0gICAgfQotCi0gICAgU1ZHTWF0cml4VmFsdWUgZmxpcFgoKQotICAgIHsKLSAgICAg
ICAgQWZmaW5lVHJhbnNmb3JtIGNvcHkgeyAqdGhpcyB9OwotICAgICAgICBjb3B5LmZsaXBYKCk7
Ci0gICAgICAgIHJldHVybiBTVkdNYXRyaXhWYWx1ZSB7IGNvcHkgfTsKLSAgICB9Ci0KLSAgICBT
VkdNYXRyaXhWYWx1ZSBmbGlwWSgpCi0gICAgewotICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gY29w
eSB7ICp0aGlzIH07Ci0gICAgICAgIGNvcHkuZmxpcFkoKTsKLSAgICAgICAgcmV0dXJuIFNWR01h
dHJpeFZhbHVlIHsgY29weSB9OwotICAgIH0KLQotICAgIFNWR01hdHJpeFZhbHVlIHNrZXdYKGRv
dWJsZSBhbmdsZSkKLSAgICB7Ci0gICAgICAgIEFmZmluZVRyYW5zZm9ybSBjb3B5IHsgKnRoaXMg
fTsKLSAgICAgICAgY29weS5za2V3WChhbmdsZSk7Ci0gICAgICAgIHJldHVybiBTVkdNYXRyaXhW
YWx1ZSB7IGNvcHkgfTsKLSAgICB9Ci0KLSAgICBTVkdNYXRyaXhWYWx1ZSBza2V3WShkb3VibGUg
YW5nbGUpCi0gICAgewotICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gY29weSB7ICp0aGlzIH07Ci0g
ICAgICAgIGNvcHkuc2tld1koYW5nbGUpOwotICAgICAgICByZXR1cm4gU1ZHTWF0cml4VmFsdWUg
eyBjb3B5IH07Ci0gICAgfQotCi0gICAgU1ZHTWF0cml4VmFsdWUgbXVsdGlwbHkoY29uc3QgU1ZH
TWF0cml4VmFsdWUmIG90aGVyKQotICAgIHsKLSAgICAgICAgQWZmaW5lVHJhbnNmb3JtIGNvcHkg
eyAqdGhpcyB9OwotICAgICAgICBjb3B5ICo9IHN0YXRpY19jYXN0PGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSY+KG90aGVyKTsKLSAgICAgICAgcmV0dXJuIFNWR01hdHJpeFZhbHVlIHsgY29weSB9Owot
ICAgIH0KLQotICAgIEV4Y2VwdGlvbk9yPFNWR01hdHJpeFZhbHVlPiBpbnZlcnNlKCkgY29uc3QK
LSAgICB7Ci0gICAgICAgIGlmIChhdXRvIGludmVyc2UgPSBBZmZpbmVUcmFuc2Zvcm06OmludmVy
c2UoKSkKLSAgICAgICAgICAgIHJldHVybiBTVkdNYXRyaXhWYWx1ZSB7IGludmVyc2UudmFsdWUo
KSB9OwotICAgICAgICAKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiTWF0cml4IGlzIG5vdCBpbnZlcnRpYmxlIl9zIH07Ci0gICAgfQotCi0gICAgRXhjZXB0
aW9uT3I8U1ZHTWF0cml4VmFsdWU+IHJvdGF0ZUZyb21WZWN0b3IoZG91YmxlIHgsIGRvdWJsZSB5
KQotICAgIHsKLSAgICAgICAgaWYgKCF4IHx8ICF5KQotICAgICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IFR5cGVFcnJvciB9OwotCi0gICAgICAgIEFmZmluZVRyYW5zZm9ybSBjb3B5IHsgKnRo
aXMgfTsKLSAgICAgICAgY29weS5yb3RhdGVGcm9tVmVjdG9yKHgsIHkpOwotICAgICAgICByZXR1
cm4gU1ZHTWF0cml4VmFsdWUgeyBjb3B5IH07Ci0gICAgfQotCi19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmNwcAkocmV2aXNpb24g
MjQzNDk2KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZWY8U1ZHTWF0
cml4PiBTVkdUcmFuc2Zvcm06Om1hdHJpeCgpCiB7Ci0gICAgcmV0dXJuIFNWR01hdHJpeFRlYXJP
ZmY6OmNyZWF0ZSgqdGhpcywgcHJvcGVydHlSZWZlcmVuY2UoKS5zdmdNYXRyaXgoKSk7CisgICAg
cmV0dXJuIFNWR01hdHJpeFRlYXJPZmY6OmNyZWF0ZSgqdGhpcywgcHJvcGVydHlSZWZlcmVuY2Uo
KS5tYXRyaXgoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1EaXN0YW5jZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybURpc3RhbmNlLmNwcAkocmV2aXNpb24gMjQzNDk2KQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybURpc3RhbmNlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTYwLDcgKzE2MCw3IEBAIFNWR1RyYW5zZm9ybVZhbHVlIFNWR1RyYW5zZm9ybURp
c3RhbmNlOjoKIAogU1ZHVHJhbnNmb3JtVmFsdWUgU1ZHVHJhbnNmb3JtRGlzdGFuY2U6OmFkZFRv
U1ZHVHJhbnNmb3JtKGNvbnN0IFNWR1RyYW5zZm9ybVZhbHVlJiB0cmFuc2Zvcm0pIGNvbnN0CiB7
Ci0gICAgQVNTRVJUKG1fdHlwZSA9PSB0cmFuc2Zvcm0udHlwZSgpIHx8IHRyYW5zZm9ybSA9PSBT
VkdUcmFuc2Zvcm1WYWx1ZSgpKTsKKyAgICBBU1NFUlQobV90eXBlID09IHRyYW5zZm9ybS50eXBl
KCkgfHwgIXRyYW5zZm9ybS5pc1ZhbGlkKCkpOwogICAgIAogICAgIFNWR1RyYW5zZm9ybVZhbHVl
IG5ld1RyYW5zZm9ybSh0cmFuc2Zvcm0pOwogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RyYW5zZm9ybVZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RyYW5zZm9ybVZhbHVlLmgJKHJldmlzaW9uIDI0MzQ5NikKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHpp
bW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBSb2IgQnVpcyA8
YnVpc0BrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIwLDggKzIxLDggQEAKIAogI3By
YWdtYSBvbmNlCiAKKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJGbG9h
dFBvaW50LmgiCi0jaW5jbHVkZSAiU1ZHTWF0cml4VmFsdWUuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC01MCw4ICs1MSw4IEBAIHB1YmxpYzoKIAogICAgIFNWR1RyYW5zZm9ybVR5cGUg
dHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogCi0gICAgU1ZHTWF0cml4VmFsdWUmIHN2
Z01hdHJpeCgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFNWR01hdHJpeFZhbHVlJj4obV9tYXRyaXgp
OyB9Ci0gICAgQWZmaW5lVHJhbnNmb3JtIG1hdHJpeCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF0cml4
OyB9CisgICAgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBtYXRyaXgoKSBjb25zdCB7IHJldHVybiBt
X21hdHJpeDsgfQorICAgIEFmZmluZVRyYW5zZm9ybSYgbWF0cml4KCkgeyByZXR1cm4gbV9tYXRy
aXg7IH0KICAgICB2b2lkIHVwZGF0ZVNWR01hdHJpeCgpOwogCiAgICAgZmxvYXQgYW5nbGUoKSBj
b25zdCB7IHJldHVybiBtX2FuZ2xlOyB9CkBAIC03MywyMiArNzQsMTAgQEAgcHVibGljOgogICAg
IHN0YXRpYyBjb25zdCBTdHJpbmcmIHRyYW5zZm9ybVR5cGVQcmVmaXhGb3JQYXJzaW5nKFNWR1Ry
YW5zZm9ybVR5cGUpOwogCiBwcml2YXRlOgotICAgIGZyaWVuZCBib29sIG9wZXJhdG9yPT0oY29u
c3QgU1ZHVHJhbnNmb3JtVmFsdWUmLCBjb25zdCBTVkdUcmFuc2Zvcm1WYWx1ZSYpOwotCiAgICAg
U1ZHVHJhbnNmb3JtVHlwZSBtX3R5cGUgeyBTVkdfVFJBTlNGT1JNX1VOS05PV04gfTsKICAgICBm
bG9hdCBtX2FuZ2xlIHsgMCB9OwogICAgIEZsb2F0UG9pbnQgbV9jZW50ZXI7CiAgICAgQWZmaW5l
VHJhbnNmb3JtIG1fbWF0cml4OwogfTsKIAotaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBT
VkdUcmFuc2Zvcm1WYWx1ZSYgYSwgY29uc3QgU1ZHVHJhbnNmb3JtVmFsdWUmIGIpCi17Ci0gICAg
cmV0dXJuIGEubV90eXBlID09IGIubV90eXBlICYmIGEubV9hbmdsZSA9PSBiLm1fYW5nbGUgJiYg
YS5tX21hdHJpeCA9PSBiLm1fbWF0cml4OwotfQotCi1pbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNv
bnN0IFNWR1RyYW5zZm9ybVZhbHVlJiBhLCBjb25zdCBTVkdUcmFuc2Zvcm1WYWx1ZSYgYikKLXsK
LSAgICByZXR1cm4gIShhID09IGIpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTWF0cml4VGVhck9mZi5o
CShyZXZpc2lvbiAyNDM0OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdN
YXRyaXhUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDE3ICsyNiwxOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR01hdHJpeFRlYXJPZmYgZmluYWwgOiBwdWJsaWMgU1ZH
TWF0cml4IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR01hdHJpeFRlYXJPZmY+IGNyZWF0
ZShTVkdUcmFuc2Zvcm0mIHBhcmVudCwgU1ZHTWF0cml4VmFsdWUmIHZhbHVlKQorICAgIHN0YXRp
YyBSZWY8U1ZHTWF0cml4VGVhck9mZj4gY3JlYXRlKFNWR1RyYW5zZm9ybSYgcGFyZW50LCBBZmZp
bmVUcmFuc2Zvcm0mIHZhbHVlKQogICAgIHsKLSAgICAgICAgQVNTRVJUX1VOVVNFRCh2YWx1ZSwg
JnBhcmVudC5wcm9wZXJ0eVJlZmVyZW5jZSgpLnN2Z01hdHJpeCgpID09ICZ2YWx1ZSk7CisgICAg
ICAgIEFTU0VSVF9VTlVTRUQodmFsdWUsICZwYXJlbnQucHJvcGVydHlSZWZlcmVuY2UoKS5tYXRy
aXgoKSA9PSAmdmFsdWUpOwogICAgICAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgU1ZH
TWF0cml4VGVhck9mZihwYXJlbnQpKTsKICAgICAgICAgcGFyZW50LmFkZENoaWxkKG1ha2VXZWFr
UHRyKHJlc3VsdC5nZXQoKSkpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAg
IFNWR01hdHJpeFZhbHVlJiBwcm9wZXJ0eVJlZmVyZW5jZSgpIGZpbmFsIHsgcmV0dXJuIG1fcGFy
ZW50LT5wcm9wZXJ0eVJlZmVyZW5jZSgpLnN2Z01hdHJpeCgpOyB9CisgICAgY29uc3QgQWZmaW5l
VHJhbnNmb3JtJiBwcm9wZXJ0eVJlZmVyZW5jZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcGFy
ZW50LT5wcm9wZXJ0eVJlZmVyZW5jZSgpLm1hdHJpeCgpOyB9CisgICAgQWZmaW5lVHJhbnNmb3Jt
JiBwcm9wZXJ0eVJlZmVyZW5jZSgpIGZpbmFsIHsgcmV0dXJuIG1fcGFyZW50LT5wcm9wZXJ0eVJl
ZmVyZW5jZSgpLm1hdHJpeCgpOyB9CiAKLSAgICB2b2lkIHNldFZhbHVlKFNWR01hdHJpeFZhbHVl
JiB2YWx1ZSkgZmluYWwgeyBtX3BhcmVudC0+cHJvcGVydHlSZWZlcmVuY2UoKS5zZXRNYXRyaXgo
dmFsdWUpOyB9CisgICAgdm9pZCBzZXRWYWx1ZShBZmZpbmVUcmFuc2Zvcm0mIHZhbHVlKSBmaW5h
bCB7IG1fcGFyZW50LT5wcm9wZXJ0eVJlZmVyZW5jZSgpLnNldE1hdHJpeCh2YWx1ZSk7IH0KIAog
ICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkgZmluYWwKICAgICB7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24g
MjQzNDk2KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUZWFy
T2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTYwLDYgKzYwLDcgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gY3JlYXRlKGluaXRpYWxWYWx1ZS5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAgICAgfQog
CisgICAgdmlydHVhbCBjb25zdCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5UmVmZXJlbmNlKCkgY29u
c3QgeyByZXR1cm4gKm1fdmFsdWU7IH0KICAgICB2aXJ0dWFsIFByb3BlcnR5VHlwZSYgcHJvcGVy
dHlSZWZlcmVuY2UoKSB7IHJldHVybiAqbV92YWx1ZTsgfQogICAgIFNWR0xlZ2FjeUFuaW1hdGVk
UHJvcGVydHkqIGFuaW1hdGVkUHJvcGVydHkoKSBjb25zdCB7IHJldHVybiBtX2FuaW1hdGVkUHJv
cGVydHkuZ2V0KCk7IH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjQzNDk2KQorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDMtMjYg
IFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBT
VkdNYXRyaXguSURMIG1ldGhvZHMgZG8gbm90IGNvbmZvcm0gdG8gdGhlIHNwZWNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTYyNjMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN2Zy9kb20vU1ZHTWF0
cml4LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdmcvZG9tL1NWR01hdHJpeC5odG1sOgorICAg
ICAgICBDbGVhbiB0aGlzIHRlc3QuIE1ha2UgaXQgdGVzdCB0aGUgY2FzZSB3aGVuIHZhbGlkIGFy
Z3VtZW50cyBhcmUgcGFzc2VkIHRvCisgICAgICAgIHRoZSBtZXRob2RzIG9mIHRoZSBTVkdNYXRy
aXguIE1ha2Ugc3VyZSB0aGUgbWV0aG9kcyBhcmUgcmVhZC1vbmx5LiBBbGwKKyAgICAgICAgb2Yg
dGhlbSBzaG91bGQgYmUgbWFraW5nIGEgY29weSBvZiB0aGUgbWF0cml4LCBhcHBseWluZyB0aGUg
dHJhbnNmb3JtIGFuZAorICAgICAgICByZXR1cm5pbmcgdGhlIGNvcHkuCisKIDIwMTktMDMtMjYg
IFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIExheW91dCBU
ZXN0IGpzL21hdGgtY2x6MzIuaHRtbCBpcyBmYWlsaW5nCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcv
ZG9tL1NWR01hdHJpeC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3Zn
L2RvbS9TVkdNYXRyaXgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNDM0OTYpCisrKyBMYXlvdXRU
ZXN0cy9zdmcvZG9tL1NWR01hdHJpeC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTUs
MTIgKzUsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBCiAKIAog
Q2hlY2sgaW5pdGlhbCBtYXRyaXggdmFsdWVzCi1QQVNTIG1hdHJpeC5hIGlzIDEKLVBBU1MgbWF0
cml4LmIgaXMgMAotUEFTUyBtYXRyaXguYyBpcyAwCi1QQVNTIG1hdHJpeC5kIGlzIDEKLVBBU1Mg
bWF0cml4LmUgaXMgMAotUEFTUyBtYXRyaXguZiBpcyAwCitQQVNTIG1hdHJpeFRvU3RyaW5nKG1h
dHJpeCkgaXMgInsgYTogMSwgYjogMCwgYzogMCwgZDogMSwgZTogMCwgZjogMH0iCiAKIENoZWNr
IGFzc2lnbmluZyBtYXRyaWNlcwogUEFTUyBtYXRyaXguYSA9IDIgaXMgMgpAQCAtMjUsNiArMjAs
OCBAQCBQQVNTIG1hdHJpeC5hIGlzIE5hTgogUEFTUyBtYXRyaXguYSA9IDAgaXMgMAogUEFTUyBt
YXRyaXguYSA9ICdhU3RyaW5nJyBpcyAnYVN0cmluZycKIFBBU1MgbWF0cml4LmEgaXMgTmFOCitQ
QVNTIG1hdHJpeC5hID0gbnVsbCBpcyBudWxsCitQQVNTIG1hdHJpeC5hIGlzIDAKIFBBU1MgbWF0
cml4LmEgPSAyIGlzIDIKIFBBU1MgbWF0cml4LmIgPSBtYXRyaXggaXMgbWF0cml4CiBQQVNTIG1h
dHJpeC5iIGlzIE5hTgpAQCAtMzQsNiArMzEsOCBAQCBQQVNTIG1hdHJpeC5iIGlzIE5hTgogUEFT
UyBtYXRyaXguYiA9IDAgaXMgMAogUEFTUyBtYXRyaXguYiA9ICdhU3RyaW5nJyBpcyAnYVN0cmlu
ZycKIFBBU1MgbWF0cml4LmIgaXMgTmFOCitQQVNTIG1hdHJpeC5iID0gbnVsbCBpcyBudWxsCitQ
QVNTIG1hdHJpeC5iIGlzIDAKIFBBU1MgbWF0cml4LmIgPSAwIGlzIDAKIFBBU1MgbWF0cml4LmMg
PSBtYXRyaXggaXMgbWF0cml4CiBQQVNTIG1hdHJpeC5jIGlzIE5hTgpAQCAtNDMsNiArNDIsOCBA
QCBQQVNTIG1hdHJpeC5jIGlzIE5hTgogUEFTUyBtYXRyaXguYyA9IDAgaXMgMAogUEFTUyBtYXRy
aXguYyA9ICdhU3RyaW5nJyBpcyAnYVN0cmluZycKIFBBU1MgbWF0cml4LmMgaXMgTmFOCitQQVNT
IG1hdHJpeC5jID0gbnVsbCBpcyBudWxsCitQQVNTIG1hdHJpeC5jIGlzIDAKIFBBU1MgbWF0cml4
LmMgPSAwIGlzIDAKIFBBU1MgbWF0cml4LmQgPSBtYXRyaXggaXMgbWF0cml4CiBQQVNTIG1hdHJp
eC5kIGlzIE5hTgpAQCAtNTIsNiArNTMsOCBAQCBQQVNTIG1hdHJpeC5kIGlzIE5hTgogUEFTUyBt
YXRyaXguZCA9IDAgaXMgMAogUEFTUyBtYXRyaXguZCA9ICdhU3RyaW5nJyBpcyAnYVN0cmluZycK
IFBBU1MgbWF0cml4LmQgaXMgTmFOCitQQVNTIG1hdHJpeC5kID0gbnVsbCBpcyBudWxsCitQQVNT
IG1hdHJpeC5kIGlzIDAKIFBBU1MgbWF0cml4LmQgPSAxIGlzIDEKIFBBU1MgbWF0cml4LmUgPSBt
YXRyaXggaXMgbWF0cml4CiBQQVNTIG1hdHJpeC5lIGlzIE5hTgpAQCAtNjEsNiArNjQsOCBAQCBQ
QVNTIG1hdHJpeC5lIGlzIE5hTgogUEFTUyBtYXRyaXguZSA9IDAgaXMgMAogUEFTUyBtYXRyaXgu
ZSA9ICdhU3RyaW5nJyBpcyAnYVN0cmluZycKIFBBU1MgbWF0cml4LmUgaXMgTmFOCitQQVNTIG1h
dHJpeC5lID0gbnVsbCBpcyBudWxsCitQQVNTIG1hdHJpeC5lIGlzIDAKIFBBU1MgbWF0cml4LmUg
PSAwIGlzIDAKIFBBU1MgbWF0cml4LmYgPSBtYXRyaXggaXMgbWF0cml4CiBQQVNTIG1hdHJpeC5m
IGlzIE5hTgpAQCAtNzAsMjQgKzc1LDEyIEBAIFBBU1MgbWF0cml4LmYgaXMgTmFOCiBQQVNTIG1h
dHJpeC5mID0gMCBpcyAwCiBQQVNTIG1hdHJpeC5mID0gJ2FTdHJpbmcnIGlzICdhU3RyaW5nJwog
UEFTUyBtYXRyaXguZiBpcyBOYU4KK1BBU1MgbWF0cml4LmYgPSBudWxsIGlzIG51bGwKK1BBU1Mg
bWF0cml4LmYgaXMgMAogUEFTUyBtYXRyaXguZiA9IDIwMCBpcyAyMDAKIAogQ2hlY2sgdGhhdCB0
aGUgbWF0cml4IGlzIHN0aWxsIGNvbnRhaW5pbmcgdGhlIGNvcnJlY3QgdmFsdWVzCi1QQVNTIG1h
dHJpeC5hIGlzIDIKLVBBU1MgbWF0cml4LmIgaXMgMAotUEFTUyBtYXRyaXguYyBpcyAwCi1QQVNT
IG1hdHJpeC5kIGlzIDEKLVBBU1MgbWF0cml4LmUgaXMgMAotUEFTUyBtYXRyaXguZiBpcyAyMDAK
LQotQ2hlY2sgYXNzaWduaW5nIG51bGwgd29ya3MgYXMgZXhwZWN0ZWQKLVBBU1MgbWF0cml4LmYg
PSBudWxsIGlzIG51bGwKLVBBU1MgbWF0cml4LmEgaXMgMgotUEFTUyBtYXRyaXguYiBpcyAwCi1Q
QVNTIG1hdHJpeC5jIGlzIDAKLVBBU1MgbWF0cml4LmQgaXMgMQotUEFTUyBtYXRyaXguZSBpcyAw
Ci1QQVNTIG1hdHJpeC5mIGlzIDAKK1BBU1MgbWF0cml4VG9TdHJpbmcobWF0cml4KSBpcyAieyBh
OiAyLCBiOiAwLCBjOiAwLCBkOiAxLCBlOiAwLCBmOiAyMDB9IgogCiBDaGVjayBjYWxsaW5nICdt
dWx0aXBseScgd2l0aCBpbnZhbGlkIGFyZ3VtZW50cwogUEFTUyBtYXRyaXgubXVsdGlwbHkoKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KQEAgLTE1NCw2
ICsxNDcsMTYgQEAgQ2hlY2sgY2FsbGluZyAnc2tld1knIHdpdGggaW52YWxpZCBhcmd1bQogUEFT
UyBtYXRyaXguc2tld1koKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KIFBBU1MgbWF0cml4LnNrZXdZKCdhU3RyaW5nJykgaXMgbm9uLW51bGwuCiBQQVNT
IG1hdHJpeC5za2V3WShzdmdFbGVtZW50KSBpcyBub24tbnVsbC4KKworQ2hlY2sgY2FsbGluZyBT
VkdNYXRyaXggbWV0aG9kcyB3aXRoIGludmFsaWQgYXJndW1lbnRzCitQQVNTIG1hdHJpeFRvU3Ry
aW5nKG1hdHJpeC50cmFuc2xhdGUoMTAsIDIwKSkgaXMgInsgYTogMiwgYjogMCwgYzogMCwgZDog
MSwgZTogMjAsIGY6IDIyMH0iCitQQVNTIG1hdHJpeFRvU3RyaW5nKG1hdHJpeC5zY2FsZSg1KSkg
aXMgInsgYTogMTAsIGI6IDAsIGM6IDAsIGQ6IDUsIGU6IDAsIGY6IDIwMH0iCitQQVNTIG1hdHJp
eFRvU3RyaW5nKG1hdHJpeC5zY2FsZU5vblVuaWZvcm0oMiwgMykpIGlzICJ7IGE6IDQsIGI6IDAs
IGM6IDAsIGQ6IDMsIGU6IDAsIGY6IDIwMH0iCitQQVNTIG1hdHJpeFRvU3RyaW5nKG1hdHJpeC5z
a2V3WCg5MCkpIGlzICJ7IGE6IDIsIGI6IDAsIGM6IDMyNjYyNDc4NzA2MzkwNzQwLCBkOiAxLCBl
OiAwLCBmOiAyMDB9IgorUEFTUyBtYXRyaXhUb1N0cmluZyhtYXRyaXguc2tld1koOTApKSBpcyAi
eyBhOiAyLCBiOiAxNjMzMTIzOTM1MzE5NTM3MCwgYzogMCwgZDogMSwgZTogMCwgZjogMjAwfSIK
KworQ2hlY2sgdGhhdCB0aGUgbWF0cml4IGlzIHN0aWxsIGNvbnRhaW5pbmcgdGhlIGNvcnJlY3Qg
dmFsdWVzCitQQVNTIG1hdHJpeFRvU3RyaW5nKG1hdHJpeCkgaXMgInsgYTogMiwgYjogMCwgYzog
MCwgZDogMSwgZTogMCwgZjogMjAwfSIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
IAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdNYXRyaXguaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZG9tL1NWR01hdHJpeC5odG1sCShyZXZp
c2lvbiAyNDM0OTYpCisrKyBMYXlvdXRUZXN0cy9zdmcvZG9tL1NWR01hdHJpeC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC03LDE5ICs3LDcyIEBACiA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KIDxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUaGlzIHRlc3Qg
Y2hlY2tzIHRoZSBTVkdNYXRyaXggQVBJIik7CiAKIHZhciBzdmdFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsICJzdmciKTsKIHZh
ciBtYXRyaXggPSBzdmdFbGVtZW50LmNyZWF0ZVNWR01hdHJpeCgpOwogCitmdW5jdGlvbiBtYXRy
aXhUb1N0cmluZyhtYXRyaXgpCit7CisJcmV0dXJuICJ7IGE6ICIgKyBtYXRyaXguYSArICIsIGI6
ICIgKyBtYXRyaXguYiArICIsIGM6ICIgKyBtYXRyaXguYyArICIsIGQ6ICIgKyBtYXRyaXguZCAr
ICIsIGU6ICIgKyBtYXRyaXguZSArICIsIGY6ICIgKyBtYXRyaXguZiArICJ9IjsKK30KKworZnVu
Y3Rpb24gY2hlY2tBdHRyaWJ1dGVJbnZhbGlkU2V0dGluZyhtYXRyaXgsIG5hbWUpIHsKKwl2YXIg
dmFsdWUgPSBtYXRyaXhbbmFtZV07CisKKwlzaG91bGRCZSgibWF0cml4LiIgKyBuYW1lICsgIiA9
IG1hdHJpeCIsICJtYXRyaXgiKTsKKwlzaG91bGRCZSgibWF0cml4LiIgKyBuYW1lLCAiTmFOIik7
CisJc2hvdWxkQmUoIm1hdHJpeC4iICsgbmFtZSArICIgPSAwIiwgIjAiKTsKKwlzaG91bGRCZSgi
bWF0cml4LiIgKyBuYW1lICsgIiA9IHN2Z0VsZW1lbnQiLCAic3ZnRWxlbWVudCIpOworCXNob3Vs
ZEJlKCJtYXRyaXguIiArIG5hbWUsICJOYU4iKTsKKwlzaG91bGRCZSgibWF0cml4LiIgKyBuYW1l
ICsgIiA9IDAiLCAiMCIpOworCXNob3VsZEJlKCJtYXRyaXguIiArIG5hbWUgKyAiID0gJ2FTdHJp
bmcnIiwgIidhU3RyaW5nJyIpOworCXNob3VsZEJlKCJtYXRyaXguIiArIG5hbWUsICJOYU4iKTsK
KwkvL0NoZWNrIGFzc2lnbmluZyBudWxsIHdvcmtzIGFzIGV4cGVjdGVkCisJc2hvdWxkQmVOdWxs
KCJtYXRyaXguIiArIG5hbWUgKyAiID0gbnVsbCIpOworCXNob3VsZEJlKCJtYXRyaXguIiArIG5h
bWUsICIwIik7CisJLy8gUmVzZXQgdG8gcHJldmlvdXMgdmFsdWUuCisJc2hvdWxkQmUoIm1hdHJp
eC4iICsgbmFtZSArICIgPSAiICsgdmFsdWUudG9TdHJpbmcoKSwgdmFsdWUudG9TdHJpbmcoKSk7
Cit9CisKK2Z1bmN0aW9uIGNoZWNrTWV0aG9kSW52YWxpZE9uZU1hdHJpeChtYXRyaXgsIG5hbWUp
IHsKKwlkZWJ1ZygiIik7CisJZGVidWcoIkNoZWNrIGNhbGxpbmcgJyIgKyBuYW1lICsgIicgd2l0
aCBpbnZhbGlkIGFyZ3VtZW50cyIpOworCXNob3VsZFRocm93KCJtYXRyaXguIiArIG5hbWUgKyAi
KCkiKTsKKwlzaG91bGRUaHJvdygibWF0cml4LiIgKyBuYW1lICsgIih0cnVlKSIpOworCXNob3Vs
ZFRocm93KCJtYXRyaXguIiArIG5hbWUgKyAiKDIpIik7CisJc2hvdWxkVGhyb3coIm1hdHJpeC4i
ICsgbmFtZSArICIoJ2FTdHJpbmcnKSIpOworCXNob3VsZFRocm93KCJtYXRyaXguIiArIG5hbWUg
KyAiKHN2Z0VsZW1lbnQpIik7Cit9CisKK2Z1bmN0aW9uIGNoZWNrTWV0aG9kSW52YWxpZE9uZU51
bWVyaWMobWF0cml4LCBuYW1lKSB7CisJZGVidWcoIiIpOworCWRlYnVnKCJDaGVjayBjYWxsaW5n
ICciICsgbmFtZSArICInIHdpdGggaW52YWxpZCBhcmd1bWVudHMiKTsKKwlzaG91bGRUaHJvdygi
bWF0cml4LiIgKyBuYW1lICsgIigpIik7CisJc2hvdWxkQmVOb25OdWxsKCJtYXRyaXguIiArIG5h
bWUgKyAiKCdhU3RyaW5nJykiKTsKKwlzaG91bGRCZU5vbk51bGwoIm1hdHJpeC4iICsgbmFtZSAr
ICIoc3ZnRWxlbWVudCkiKTsKK30KKworZnVuY3Rpb24gY2hlY2tNZXRob2RJbnZhbGlkVHdvTnVt
ZXJpYyhtYXRyaXgsIG5hbWUpIHsKKwlkZWJ1ZygiIik7CisJZGVidWcoIkNoZWNrIGNhbGxpbmcg
JyIgKyBuYW1lICsgIicgd2l0aCBpbnZhbGlkIGFyZ3VtZW50cyIpOworCXNob3VsZFRocm93KCJt
YXRyaXguIiArIG5hbWUgKyAiKCkiKTsKKwlzaG91bGRUaHJvdygibWF0cml4LiIgKyBuYW1lICsg
Iih0cnVlKSIpOworCXNob3VsZFRocm93KCJtYXRyaXguIiArIG5hbWUgKyAiKDIpIik7CisJc2hv
dWxkVGhyb3coIm1hdHJpeC4iICsgbmFtZSArICIoJ2FTdHJpbmcnKSIpOworCXNob3VsZFRocm93
KCJtYXRyaXguIiArIG5hbWUgKyAiKHN2Z0VsZW1lbnQpIik7CisJc2hvdWxkQmVOb25OdWxsKCJt
YXRyaXguIiArIG5hbWUgKyAiKCdhU3RyaW5nJywgJ2FTdHJpbmcnKSIpOworCXNob3VsZEJlTm9u
TnVsbCgibWF0cml4LiIgKyBuYW1lICsgIihzdmdFbGVtZW50LCBzdmdFbGVtZW50KSIpOworCXNo
b3VsZEJlTm9uTnVsbCgibWF0cml4LiIgKyBuYW1lICsgIigyLCAnYVN0cmluZycpIik7CisJc2hv
dWxkQmVOb25OdWxsKCJtYXRyaXguIiArIG5hbWUgKyAiKDIsIHN2Z0VsZW1lbnQpIik7CisJc2hv
dWxkQmVOb25OdWxsKCJtYXRyaXguIiArIG5hbWUgKyAiKCdhU3RyaW5nJywgMikiKTsKKwlzaG91
bGRCZU5vbk51bGwoIm1hdHJpeC4iICsgbmFtZSArICIoc3ZnRWxlbWVudCwgMikiKTsKK30KKwor
ZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgdGhlIFNWR01hdHJpeCBBUEkiKTsKKwogZGVi
dWcoIiIpOwogZGVidWcoIkNoZWNrIGluaXRpYWwgbWF0cml4IHZhbHVlcyIpOwotc2hvdWxkQmUo
Im1hdHJpeC5hIiwgIjEiKTsKLXNob3VsZEJlKCJtYXRyaXguYiIsICIwIik7Ci1zaG91bGRCZSgi
bWF0cml4LmMiLCAiMCIpOwotc2hvdWxkQmUoIm1hdHJpeC5kIiwgIjEiKTsKLXNob3VsZEJlKCJt
YXRyaXguZSIsICIwIik7Ci1zaG91bGRCZSgibWF0cml4LmYiLCAiMCIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJtYXRyaXhUb1N0cmluZyhtYXRyaXgpIiwgInsgYTogMSwgYjogMCwgYzogMCwg
ZDogMSwgZTogMCwgZjogMH0iKTsKIAogZGVidWcoIiIpOwogZGVidWcoIkNoZWNrIGFzc2lnbmlu
ZyBtYXRyaWNlcyIpOwpAQCAtMjgsMTY3ICs4MSwzNyBAQCBzaG91bGRCZSgibWF0cml4LmYgPSAy
MDAiLCAiMjAwIik7CiAKIGRlYnVnKCIiKTsKIGRlYnVnKCJDaGVjayBhc3NpZ25pbmcgaW52YWxp
ZCBtYXRyaWNlcyIpOwotc2hvdWxkQmUoIm1hdHJpeC5hID0gbWF0cml4IiwgIm1hdHJpeCIpOwot
c2hvdWxkQmUoIm1hdHJpeC5hIiwgIk5hTiIpOwotc2hvdWxkQmUoIm1hdHJpeC5hID0gMCIsICIw
Iik7Ci1zaG91bGRCZSgibWF0cml4LmEgPSBzdmdFbGVtZW50IiwgInN2Z0VsZW1lbnQiKTsKLXNo
b3VsZEJlKCJtYXRyaXguYSIsICJOYU4iKTsKLXNob3VsZEJlKCJtYXRyaXguYSA9IDAiLCAiMCIp
Owotc2hvdWxkQmUoIm1hdHJpeC5hID0gJ2FTdHJpbmcnIiwgIidhU3RyaW5nJyIpOwotc2hvdWxk
QmUoIm1hdHJpeC5hIiwgIk5hTiIpOwotLy8gUmVzZXQgdG8gcHJldmlvdXMgdmFsdWUuCi1zaG91
bGRCZSgibWF0cml4LmEgPSAyIiwgIjIiKTsKK2NoZWNrQXR0cmlidXRlSW52YWxpZFNldHRpbmco
bWF0cml4LCAiYSIpOworY2hlY2tBdHRyaWJ1dGVJbnZhbGlkU2V0dGluZyhtYXRyaXgsICJiIik7
CitjaGVja0F0dHJpYnV0ZUludmFsaWRTZXR0aW5nKG1hdHJpeCwgImMiKTsKK2NoZWNrQXR0cmli
dXRlSW52YWxpZFNldHRpbmcobWF0cml4LCAiZCIpOworY2hlY2tBdHRyaWJ1dGVJbnZhbGlkU2V0
dGluZyhtYXRyaXgsICJlIik7CitjaGVja0F0dHJpYnV0ZUludmFsaWRTZXR0aW5nKG1hdHJpeCwg
ImYiKTsKIAotc2hvdWxkQmUoIm1hdHJpeC5iID0gbWF0cml4IiwgIm1hdHJpeCIpOwotc2hvdWxk
QmUoIm1hdHJpeC5iIiwgIk5hTiIpOwotc2hvdWxkQmUoIm1hdHJpeC5iID0gMCIsICIwIik7Ci1z
aG91bGRCZSgibWF0cml4LmIgPSBzdmdFbGVtZW50IiwgInN2Z0VsZW1lbnQiKTsKLXNob3VsZEJl
KCJtYXRyaXguYiIsICJOYU4iKTsKLXNob3VsZEJlKCJtYXRyaXguYiA9IDAiLCAiMCIpOwotc2hv
dWxkQmUoIm1hdHJpeC5iID0gJ2FTdHJpbmcnIiwgIidhU3RyaW5nJyIpOwotc2hvdWxkQmUoIm1h
dHJpeC5iIiwgIk5hTiIpOwotLy8gUmVzZXQgdG8gcHJldmlvdXMgdmFsdWUuCi1zaG91bGRCZSgi
bWF0cml4LmIgPSAwIiwgIjAiKTsKLQotc2hvdWxkQmUoIm1hdHJpeC5jID0gbWF0cml4IiwgIm1h
dHJpeCIpOwotc2hvdWxkQmUoIm1hdHJpeC5jIiwgIk5hTiIpOwotc2hvdWxkQmUoIm1hdHJpeC5j
ID0gMCIsICIwIik7Ci1zaG91bGRCZSgibWF0cml4LmMgPSBzdmdFbGVtZW50IiwgInN2Z0VsZW1l
bnQiKTsKLXNob3VsZEJlKCJtYXRyaXguYyIsICJOYU4iKTsKLXNob3VsZEJlKCJtYXRyaXguYyA9
IDAiLCAiMCIpOwotc2hvdWxkQmUoIm1hdHJpeC5jID0gJ2FTdHJpbmcnIiwgIidhU3RyaW5nJyIp
Owotc2hvdWxkQmUoIm1hdHJpeC5jIiwgIk5hTiIpOwotLy8gUmVzZXQgdG8gcHJldmlvdXMgdmFs
dWUuCi1zaG91bGRCZSgibWF0cml4LmMgPSAwIiwgIjAiKTsKLQotc2hvdWxkQmUoIm1hdHJpeC5k
ID0gbWF0cml4IiwgIm1hdHJpeCIpOwotc2hvdWxkQmUoIm1hdHJpeC5kIiwgIk5hTiIpOwotc2hv
dWxkQmUoIm1hdHJpeC5kID0gMCIsICIwIik7Ci1zaG91bGRCZSgibWF0cml4LmQgPSBzdmdFbGVt
ZW50IiwgInN2Z0VsZW1lbnQiKTsKLXNob3VsZEJlKCJtYXRyaXguZCIsICJOYU4iKTsKLXNob3Vs
ZEJlKCJtYXRyaXguZCA9IDAiLCAiMCIpOwotc2hvdWxkQmUoIm1hdHJpeC5kID0gJ2FTdHJpbmcn
IiwgIidhU3RyaW5nJyIpOwotc2hvdWxkQmUoIm1hdHJpeC5kIiwgIk5hTiIpOwotLy8gUmVzZXQg
dG8gcHJldmlvdXMgdmFsdWUuCi1zaG91bGRCZSgibWF0cml4LmQgPSAxIiwgIjEiKTsKLQotc2hv
dWxkQmUoIm1hdHJpeC5lID0gbWF0cml4IiwgIm1hdHJpeCIpOwotc2hvdWxkQmUoIm1hdHJpeC5l
IiwgIk5hTiIpOwotc2hvdWxkQmUoIm1hdHJpeC5lID0gMCIsICIwIik7Ci1zaG91bGRCZSgibWF0
cml4LmUgPSBzdmdFbGVtZW50IiwgInN2Z0VsZW1lbnQiKTsKLXNob3VsZEJlKCJtYXRyaXguZSIs
ICJOYU4iKTsKLXNob3VsZEJlKCJtYXRyaXguZSA9IDAiLCAiMCIpOwotc2hvdWxkQmUoIm1hdHJp
eC5lID0gJ2FTdHJpbmcnIiwgIidhU3RyaW5nJyIpOwotc2hvdWxkQmUoIm1hdHJpeC5lIiwgIk5h
TiIpOwotLy8gUmVzZXQgdG8gcHJldmlvdXMgdmFsdWUuCi1zaG91bGRCZSgibWF0cml4LmUgPSAw
IiwgIjAiKTsKLQotc2hvdWxkQmUoIm1hdHJpeC5mID0gbWF0cml4IiwgIm1hdHJpeCIpOwotc2hv
dWxkQmUoIm1hdHJpeC5mIiwgIk5hTiIpOwotc2hvdWxkQmUoIm1hdHJpeC5mID0gMCIsICIwIik7
Ci1zaG91bGRCZSgibWF0cml4LmYgPSBzdmdFbGVtZW50IiwgInN2Z0VsZW1lbnQiKTsKLXNob3Vs
ZEJlKCJtYXRyaXguZiIsICJOYU4iKTsKLXNob3VsZEJlKCJtYXRyaXguZiA9IDAiLCAiMCIpOwot
c2hvdWxkQmUoIm1hdHJpeC5mID0gJ2FTdHJpbmcnIiwgIidhU3RyaW5nJyIpOwotc2hvdWxkQmUo
Im1hdHJpeC5mIiwgIk5hTiIpOwotLy8gUmVzZXQgdG8gcHJldmlvdXMgdmFsdWUuCi1zaG91bGRC
ZSgibWF0cml4LmYgPSAyMDAiLCAiMjAwIik7CitkZWJ1ZygiIik7CitkZWJ1ZygiQ2hlY2sgdGhh
dCB0aGUgbWF0cml4IGlzIHN0aWxsIGNvbnRhaW5pbmcgdGhlIGNvcnJlY3QgdmFsdWVzIik7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoIm1hdHJpeFRvU3RyaW5nKG1hdHJpeCkiLCAieyBhOiAyLCBi
OiAwLCBjOiAwLCBkOiAxLCBlOiAwLCBmOiAyMDB9Iik7CisKK2NoZWNrTWV0aG9kSW52YWxpZE9u
ZU1hdHJpeChtYXRyaXgsICJtdWx0aXBseSIpCitjaGVja01ldGhvZEludmFsaWRUd29OdW1lcmlj
KG1hdHJpeCwgInRyYW5zbGF0ZSIpOworY2hlY2tNZXRob2RJbnZhbGlkT25lTnVtZXJpYyhtYXRy
aXgsICJzY2FsZSIpOworY2hlY2tNZXRob2RJbnZhbGlkVHdvTnVtZXJpYyhtYXRyaXgsICJzY2Fs
ZU5vblVuaWZvcm0iKTsKK2NoZWNrTWV0aG9kSW52YWxpZE9uZU51bWVyaWMobWF0cml4LCAicm90
YXRlIik7CitjaGVja01ldGhvZEludmFsaWRUd29OdW1lcmljKG1hdHJpeCwgInJvdGF0ZUZyb21W
ZWN0b3IiKTsKK2NoZWNrTWV0aG9kSW52YWxpZE9uZU51bWVyaWMobWF0cml4LCAic2tld1giKTsK
K2NoZWNrTWV0aG9kSW52YWxpZE9uZU51bWVyaWMobWF0cml4LCAic2tld1kiKTsKKworZGVidWco
IiIpOworZGVidWcoIkNoZWNrIGNhbGxpbmcgU1ZHTWF0cml4IG1ldGhvZHMgd2l0aCBpbnZhbGlk
IGFyZ3VtZW50cyIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJtYXRyaXhUb1N0cmluZyhtYXRy
aXgudHJhbnNsYXRlKDEwLCAyMCkpIiwgInsgYTogMiwgYjogMCwgYzogMCwgZDogMSwgZTogMjAs
IGY6IDIyMH0iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibWF0cml4VG9TdHJpbmcobWF0cml4
LnNjYWxlKDUpKSIsICJ7IGE6IDEwLCBiOiAwLCBjOiAwLCBkOiA1LCBlOiAwLCBmOiAyMDB9Iik7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm1hdHJpeFRvU3RyaW5nKG1hdHJpeC5zY2FsZU5vblVu
aWZvcm0oMiwgMykpIiwgInsgYTogNCwgYjogMCwgYzogMCwgZDogMywgZTogMCwgZjogMjAwfSIp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJtYXRyaXhUb1N0cmluZyhtYXRyaXguc2tld1goOTAp
KSIsICJ7IGE6IDIsIGI6IDAsIGM6IDMyNjYyNDc4NzA2MzkwNzQwLCBkOiAxLCBlOiAwLCBmOiAy
MDB9Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm1hdHJpeFRvU3RyaW5nKG1hdHJpeC5za2V3
WSg5MCkpIiwgInsgYTogMiwgYjogMTYzMzEyMzkzNTMxOTUzNzAsIGM6IDAsIGQ6IDEsIGU6IDAs
IGY6IDIwMH0iKTsKIAogZGVidWcoIiIpOwogZGVidWcoIkNoZWNrIHRoYXQgdGhlIG1hdHJpeCBp
cyBzdGlsbCBjb250YWluaW5nIHRoZSBjb3JyZWN0IHZhbHVlcyIpOwotc2hvdWxkQmUoIm1hdHJp
eC5hIiwgIjIiKTsKLXNob3VsZEJlKCJtYXRyaXguYiIsICIwIik7Ci1zaG91bGRCZSgibWF0cml4
LmMiLCAiMCIpOwotc2hvdWxkQmUoIm1hdHJpeC5kIiwgIjEiKTsKLXNob3VsZEJlKCJtYXRyaXgu
ZSIsICIwIik7Ci1zaG91bGRCZSgibWF0cml4LmYiLCAiMjAwIik7Ci0KLWRlYnVnKCIiKTsKLWRl
YnVnKCJDaGVjayBhc3NpZ25pbmcgbnVsbCB3b3JrcyBhcyBleHBlY3RlZCIpOwotc2hvdWxkQmVO
dWxsKCJtYXRyaXguZiA9IG51bGwiKTsKLXNob3VsZEJlKCJtYXRyaXguYSIsICIyIik7Ci1zaG91
bGRCZSgibWF0cml4LmIiLCAiMCIpOwotc2hvdWxkQmUoIm1hdHJpeC5jIiwgIjAiKTsKLXNob3Vs
ZEJlKCJtYXRyaXguZCIsICIxIik7Ci1zaG91bGRCZSgibWF0cml4LmUiLCAiMCIpOwotc2hvdWxk
QmUoIm1hdHJpeC5mIiwgIjAiKTsKLQotZGVidWcoIiIpOwotZGVidWcoIkNoZWNrIGNhbGxpbmcg
J211bHRpcGx5JyB3aXRoIGludmFsaWQgYXJndW1lbnRzIik7Ci1zaG91bGRUaHJvdygibWF0cml4
Lm11bHRpcGx5KCkiKTsKLXNob3VsZFRocm93KCJtYXRyaXgubXVsdGlwbHkodHJ1ZSkiKTsKLXNo
b3VsZFRocm93KCJtYXRyaXgubXVsdGlwbHkoMikiKTsKLXNob3VsZFRocm93KCJtYXRyaXgubXVs
dGlwbHkoJ2FTdHJpbmcnKSIpOwotc2hvdWxkVGhyb3coIm1hdHJpeC5tdWx0aXBseShzdmdFbGVt
ZW50KSIpOwotCi1kZWJ1ZygiIik7Ci1kZWJ1ZygiQ2hlY2sgY2FsbGluZyAndHJhbnNsYXRlJyB3
aXRoIGludmFsaWQgYXJndW1lbnRzIik7Ci1zaG91bGRUaHJvdygibWF0cml4LnRyYW5zbGF0ZSgp
Iik7Ci1zaG91bGRUaHJvdygibWF0cml4LnRyYW5zbGF0ZSh0cnVlKSIpOwotc2hvdWxkVGhyb3co
Im1hdHJpeC50cmFuc2xhdGUoMikiKTsKLXNob3VsZFRocm93KCJtYXRyaXgudHJhbnNsYXRlKCdh
U3RyaW5nJykiKTsKLXNob3VsZFRocm93KCJtYXRyaXgudHJhbnNsYXRlKHN2Z0VsZW1lbnQpIik7
Ci0vLyBUaGUgZm9sbG93aW5nIHN0cmluZyBhbmQgb2JqZWN0IGFyZ3VtZW50cyBjb252ZXJ0IHRv
IE5hTgotLy8gcGVyIEVDTUEtMjYyLCA5LjMsICJUb051bWJlciIuCi1zaG91bGRCZU5vbk51bGwo
Im1hdHJpeC50cmFuc2xhdGUoJ2FTdHJpbmcnLCAnYVN0cmluZycpIik7Ci1zaG91bGRCZU5vbk51
bGwoIm1hdHJpeC50cmFuc2xhdGUoc3ZnRWxlbWVudCwgc3ZnRWxlbWVudCkiKTsKLXNob3VsZEJl
Tm9uTnVsbCgibWF0cml4LnRyYW5zbGF0ZSgyLCAnYVN0cmluZycpIik7Ci1zaG91bGRCZU5vbk51
bGwoIm1hdHJpeC50cmFuc2xhdGUoMiwgc3ZnRWxlbWVudCkiKTsKLXNob3VsZEJlTm9uTnVsbCgi
bWF0cml4LnRyYW5zbGF0ZSgnYVN0cmluZycsIDIpIik7Ci1zaG91bGRCZU5vbk51bGwoIm1hdHJp
eC50cmFuc2xhdGUoc3ZnRWxlbWVudCwgMikiKTsKLQotZGVidWcoIiIpOwotZGVidWcoIkNoZWNr
IGNhbGxpbmcgJ3NjYWxlJyB3aXRoIGludmFsaWQgYXJndW1lbnRzIik7Ci1zaG91bGRUaHJvdygi
bWF0cml4LnNjYWxlKCkiKTsKLXNob3VsZEJlTm9uTnVsbCgibWF0cml4LnNjYWxlKCdhU3RyaW5n
JykiKTsKLXNob3VsZEJlTm9uTnVsbCgibWF0cml4LnNjYWxlKHN2Z0VsZW1lbnQpIik7Ci0KLQot
ZGVidWcoIiIpOwotZGVidWcoIkNoZWNrIGNhbGxpbmcgJ3NjYWxlTm9uVW5pZm9ybScgd2l0aCBp
bnZhbGlkIGFyZ3VtZW50cyIpOwotc2hvdWxkVGhyb3coIm1hdHJpeC5zY2FsZU5vblVuaWZvcm0o
KSIpOwotc2hvdWxkVGhyb3coIm1hdHJpeC5zY2FsZU5vblVuaWZvcm0odHJ1ZSkiKTsKLXNob3Vs
ZFRocm93KCJtYXRyaXguc2NhbGVOb25Vbmlmb3JtKDIpIik7Ci1zaG91bGRUaHJvdygibWF0cml4
LnNjYWxlTm9uVW5pZm9ybSgnYVN0cmluZycpIik7Ci1zaG91bGRUaHJvdygibWF0cml4LnNjYWxl
Tm9uVW5pZm9ybShzdmdFbGVtZW50KSIpOwotc2hvdWxkQmVOb25OdWxsKCJtYXRyaXguc2NhbGVO
b25Vbmlmb3JtKCdhU3RyaW5nJywgJ2FTdHJpbmcnKSIpOwotc2hvdWxkQmVOb25OdWxsKCJtYXRy
aXguc2NhbGVOb25Vbmlmb3JtKHN2Z0VsZW1lbnQsIHN2Z0VsZW1lbnQpIik7Ci1zaG91bGRCZU5v
bk51bGwoIm1hdHJpeC5zY2FsZU5vblVuaWZvcm0oMiwgJ2FTdHJpbmcnKSIpOwotc2hvdWxkQmVO
b25OdWxsKCJtYXRyaXguc2NhbGVOb25Vbmlmb3JtKDIsIHN2Z0VsZW1lbnQpIik7Ci1zaG91bGRC
ZU5vbk51bGwoIm1hdHJpeC5zY2FsZU5vblVuaWZvcm0oJ2FTdHJpbmcnLCAyKSIpOwotc2hvdWxk
QmVOb25OdWxsKCJtYXRyaXguc2NhbGVOb25Vbmlmb3JtKHN2Z0VsZW1lbnQsIDIpIik7Ci0KLWRl
YnVnKCIiKTsKLWRlYnVnKCJDaGVjayBjYWxsaW5nICdyb3RhdGUnIHdpdGggaW52YWxpZCBhcmd1
bWVudHMiKTsKLXNob3VsZFRocm93KCJtYXRyaXgucm90YXRlKCkiKTsKLXNob3VsZEJlTm9uTnVs
bCgibWF0cml4LnJvdGF0ZSgnYVN0cmluZycpIik7Ci1zaG91bGRCZU5vbk51bGwoIm1hdHJpeC5y
b3RhdGUoc3ZnRWxlbWVudCkiKTsKLQotZGVidWcoIiIpOwotZGVidWcoIkNoZWNrIGNhbGxpbmcg
J3JvdGF0ZUZyb21WZWN0b3InIHdpdGggaW52YWxpZCBhcmd1bWVudHMiKTsKLXNob3VsZFRocm93
KCJtYXRyaXgucm90YXRlRnJvbVZlY3RvcigpIik7Ci1zaG91bGRUaHJvdygibWF0cml4LnJvdGF0
ZUZyb21WZWN0b3IodHJ1ZSkiKTsKLXNob3VsZFRocm93KCJtYXRyaXgucm90YXRlRnJvbVZlY3Rv
cigyKSIpOwotc2hvdWxkVGhyb3coIm1hdHJpeC5yb3RhdGVGcm9tVmVjdG9yKCdhU3RyaW5nJyki
KTsKLXNob3VsZFRocm93KCJtYXRyaXgucm90YXRlRnJvbVZlY3RvcihzdmdFbGVtZW50KSIpOwot
c2hvdWxkQmVOb25OdWxsKCJtYXRyaXgucm90YXRlRnJvbVZlY3RvcignYVN0cmluZycsICdhU3Ry
aW5nJykiKTsKLXNob3VsZEJlTm9uTnVsbCgibWF0cml4LnJvdGF0ZUZyb21WZWN0b3Ioc3ZnRWxl
bWVudCwgc3ZnRWxlbWVudCkiKTsKLXNob3VsZEJlTm9uTnVsbCgibWF0cml4LnJvdGF0ZUZyb21W
ZWN0b3IoMiwgJ2FTdHJpbmcnKSIpOwotc2hvdWxkQmVOb25OdWxsKCJtYXRyaXgucm90YXRlRnJv
bVZlY3RvcigyLCBzdmdFbGVtZW50KSIpOwotc2hvdWxkQmVOb25OdWxsKCJtYXRyaXgucm90YXRl
RnJvbVZlY3RvcignYVN0cmluZycsIDIpIik7Ci1zaG91bGRCZU5vbk51bGwoIm1hdHJpeC5yb3Rh
dGVGcm9tVmVjdG9yKHN2Z0VsZW1lbnQsIDIpIik7Ci0KLWRlYnVnKCIiKTsKLWRlYnVnKCJDaGVj
ayBjYWxsaW5nICdza2V3WCcgd2l0aCBpbnZhbGlkIGFyZ3VtZW50cyIpOwotc2hvdWxkVGhyb3co
Im1hdHJpeC5za2V3WCgpIik7Ci1zaG91bGRCZU5vbk51bGwoIm1hdHJpeC5za2V3WCgnYVN0cmlu
ZycpIik7Ci1zaG91bGRCZU5vbk51bGwoIm1hdHJpeC5za2V3WChzdmdFbGVtZW50KSIpOwotCi1k
ZWJ1ZygiIik7Ci1kZWJ1ZygiQ2hlY2sgY2FsbGluZyAnc2tld1knIHdpdGggaW52YWxpZCBhcmd1
bWVudHMiKTsKLXNob3VsZFRocm93KCJtYXRyaXguc2tld1koKSIpOwotc2hvdWxkQmVOb25OdWxs
KCJtYXRyaXguc2tld1koJ2FTdHJpbmcnKSIpOwotc2hvdWxkQmVOb25OdWxsKCJtYXRyaXguc2tl
d1koc3ZnRWxlbWVudCkiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibWF0cml4VG9TdHJpbmco
bWF0cml4KSIsICJ7IGE6IDIsIGI6IDAsIGM6IDAsIGQ6IDEsIGU6IDAsIGY6IDIwMH0iKTsKIAog
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366022</attachid>
            <date>2019-03-26 16:46:10 -0700</date>
            <delta_ts>2019-04-01 11:20:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196263-20190326164609.patch</filename>
            <type>text/plain</type>
            <size>42576</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MzUyMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDgwIEBACisyMDE5LTAzLTI2ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgU1ZHTWF0cml4
LklETCBtZXRob2RzIGRvIG5vdCBjb25mb3JtIHRvIHRoZSBzcGVjcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2MjYzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSSB0aGluayB0aGVyZSB3YXMgYSBtaXNj
b25jZXB0aW9uIGFib3V0IHRoZXNlIGZ1bmN0aW9ucy4gVGhlIHNwZWNzIGxpbmsKKyAgICAgICAg
aXM6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9jb29yZHMuaHRtbCNJbnRlcmZhY2VTVkdN
YXRyaXguCisKKyAgICAgICAgTm90aWNlIHRoYXQgdGhlIHNwZWNzIGRvZXMgbm90IHN0YXRlIHRo
YXQgdGhlIFNWR01ldGhvZCBtZXRob2RzIHNob3VsZAorICAgICAgICByYWlzZSB0aGUgZXhjZXB0
aW9uIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBpZiB0aGUgb2JqZWN0IGlzIHJlYWQKKyAg
ICAgICAgb25seS4gTm90aWNlIHNldHRpbmcgdGhlIGF0dHJpYnV0ZSAnYScgZm9yIGV4YW1wbGUg
bWF5IHJhaXNlIHRoaXMKKyAgICAgICAgZXhjZXB0aW9uLiBUaGVyZWZvcmUsIEkgdGhpbmsgdGhl
IHNwZWNzIHdhbnRlZCB0byBtYWtlIHRoZXNlIG9wZXJhdGlvbnMKKyAgICAgICAgcmVhZC1vbmx5
LiBOb25lIG9mIHRoZSBtZXRob2RzIHNob3VsZCByYWlzZSB0aGUgZXhjZXB0aW9uCisgICAgICAg
IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUi4KKworICAgICAgICBJbiBmYWN0IHRoZSBTVkcg
Y29kZSB3YXMgZG9pbmcgdGhlIHJpZ2h0IHRoaW5nLiBGb3IgZXhhbXBsZSBTVkdNYXRyaXg6OnNj
YWxlKCkKKyAgICAgICAgd2FzIGNhbGxpbmcgU1ZHTWF0cml4VmFsdWU6OnNjYWxlKCkgd2hpY2gg
d2FzIG1ha2luZyBhIGNvcHkgb2YgaXRzZWxmLAorICAgICAgICBhcHBseWluZyB0aGUgc2NhbGUg
b24gdGhlIGNvcHkgYW5kIHRoZW4gcmV0dXJuaW5nIHRoZSBjb3B5LiBXaGVuIAorICAgICAgICBT
VkdNYXRyaXg6OnNjYWxlKCkgcmVjZWl2ZXMgdGhlIGNvcHkgb2YgdGhlIFNWR01hdHJpeFZhbHVl
IGl0IGNyZWF0ZXMgYW5kCisgICAgICAgIHJldHVybnMgYSBuZXcgU1ZHTWF0cml4IG9iamVjdC4K
KworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBzdmcvU1ZHTWF0cml4Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmEgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHTWF0cml4OjpiIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6YyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTWF0cml4OjplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJp
eDo6ZiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6Om11bHRpcGx5IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6aW52ZXJzZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdNYXRyaXg6OnRyYW5zbGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdNYXRyaXg6OnNjYWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6
c2NhbGVOb25Vbmlmb3JtIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6cm90
YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6cm90YXRlRnJvbVZlY3Rv
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmZsaXBYIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6ZmxpcFkgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHTWF0cml4Ojpza2V3WCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6
OnNrZXdZIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6YSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmIpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTWF0cml4OjpjKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJp
eDo6ZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmUpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpmKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNWR01hdHJpeDo6bXVsdGlwbHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTWF0cml4OjppbnZlcnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJp
eDo6dHJhbnNsYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2Nh
bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzY2FsZU5vblVuaWZv
cm0pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojpyb3RhdGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojpyb3RhdGVGcm9tVmVjdG9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6ZmxpcFgpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpmbGlwWSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpTVkdNYXRyaXg6OnNrZXdYKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR01h
dHJpeDo6c2tld1kpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpTVkdN
YXRyaXgpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdNYXRyaXguaWRsOgorICAgICAgICAq
IHN2Zy9TVkdNYXRyaXhWYWx1ZS5oOiBSZW1vdmVkLgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zv
cm0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjptYXRyaXgpOgorICAgICAg
ICAqIHN2Zy9TVkdUcmFuc2Zvcm1EaXN0YW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdU
cmFuc2Zvcm1EaXN0YW5jZTo6YWRkVG9TVkdUcmFuc2Zvcm0gY29uc3QpOgorICAgICAgICAqIHN2
Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtVmFs
dWU6Om1hdHJpeCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1WYWx1ZTo6
bWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybVZhbHVlOjpzdmdNYXRyaXgp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpvcGVyYXRvciE9KTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvcHJvcGVy
dGllcy9TVkdNYXRyaXhUZWFyT2ZmLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJv
cGVydHlUZWFyT2ZmLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRlYXJPZmY6OnBy
b3BlcnR5UmVmZXJlbmNlIGNvbnN0KToKKwogMjAxOS0wMy0yNiAgU2FpZCBBYm91LUhhbGxhd2Eg
IDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdGhlIFNWRyB0ZWFyIG9mZiBvYmpl
Y3RzIGZvciBTVkdMZW5ndGgsIFNWR0xlbmd0aExpc3QgYW5kIFNWR0FuaW1hdGVkTGVuZ3RoTGlz
dApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gMjQzNDk2KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yMzU4LDcgKzIzNTgsNiBA
QAogCQk3Q0U1OEQ0QTFERDY0QTVCMDAxMjg1NTIgLyogU1ZHUG9pbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTU4RDQ5MURENjRBNUIwMDEyODU1
MiAvKiBTVkdQb2ludC5oICovOyB9OwogCQk3Q0U1OEQ1MDFERDY5QTFFMDAxMjg1NTIgLyogU1ZH
TnVtYmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
Q0U1OEQ0RjFERDY5QTFFMDAxMjg1NTIgLyogU1ZHTnVtYmVyLmggKi87IH07CiAJCTdDRTU4RDU4
MUREN0Q5NkQwMDEyODU1MiAvKiBTVkdUcmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENTYxREQ3RDk2RDAwMTI4NTUyIC8q
IFNWR1RyYW5zZm9ybVZhbHVlLmggKi87IH07Ci0JCTdDRTU4RDVDMUREN0VDOUMwMDEyODU1MiAv
KiBTVkdNYXRyaXhWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0NFNThENUIxREQ3RUM5QzAwMTI4NTUyIC8qIFNWR01hdHJpeFZhbHVlLmggKi87
IH07CiAJCTdDRTY4MzQ0MTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNj
cmlwdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdDRTY4MzQyMTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9y
LmNwcCAqLzsgfTsKIAkJN0NFNjgzNDUxOTIxNDNBODAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFu
ZGxlckRlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDRTY4MzQzMTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNj
cmlwdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJN0NFNjgzNDcxOTIxODIxNTAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0
b3JUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0NFNjgzNDYxOTIxODIxNTAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3JU
eXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC05OTgxLDcgKzk5ODAsNiBAQAogCQk3Q0U1OEQ1NTFERDdEOTZEMDAxMjg1NTIgLyogU1ZHVHJh
bnNmb3JtVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZH
VHJhbnNmb3JtVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0U1OEQ1
NjFERDdEOTZEMDAxMjg1NTIgLyogU1ZHVHJhbnNmb3JtVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU1ZHVHJhbnNmb3JtVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0NFNThENTkxREQ3REU1MjAwMTI4NTUyIC8qIFNWR1RyYW5zZm9ybS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdUcmFuc2Zvcm0uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3Q0U1OEQ1QjFERDdFQzlDMDAxMjg1NTIgLyog
U1ZHTWF0cml4VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHTWF0
cml4VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NFNjgzNDIxOTIxNDNB
ODAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3IuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRTY4MzQzMTkyMTQzQTgwMEY0RDky
OCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0NFNjgzNDYxOTIxODIxNTAwRjREOTI4IC8qIFVzZXJNZXNzYWdl
SGFuZGxlckRlc2NyaXB0b3JUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTI0MzU5LDcgKzI0MzU3LDYgQEAKIAkJCQlCMjIyNzhCMjBEMDBCRjIwMDA3
MUI3ODIgLyogU1ZHTWFza0VsZW1lbnQuaWRsICovLAogCQkJCTA4MDZFNTc5MTI4OTMwNDUwMDdD
RUQzMiAvKiBTVkdNYXRyaXguaCAqLywKIAkJCQlCMjIyNzhCMzBEMDBCRjIwMDA3MUI3ODIgLyog
U1ZHTWF0cml4LmlkbCAqLywKLQkJCQk3Q0U1OEQ1QjFERDdFQzlDMDAxMjg1NTIgLyogU1ZHTWF0
cml4VmFsdWUuaCAqLywKIAkJCQlCMjIyNzhCNDBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWV0YWRh
dGFFbGVtZW50LmNwcCAqLywKIAkJCQlCMjIyNzhCNTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWV0
YWRhdGFFbGVtZW50LmggKi8sCiAJCQkJQjIyMjc4QjYwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR01l
dGFkYXRhRWxlbWVudC5pZGwgKi8sCkBAIC0zMjAwMSw3ICszMTk5OCw2IEBACiAJCQkJQjIyMjdB
NDcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR01hc2tFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwODA2RTU3QTEyODkzMDQ1MDA3Q0VEMzIgLyogU1ZHTWF0cml4LmggaW4gSGVhZGVycyAqLywK
IAkJCQkwOENBM0Q0NDEyODk0QTM4MDBGRkYyNjAgLyogU1ZHTWF0cml4VGVhck9mZi5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJN0NFNThENUMxREQ3RUM5QzAwMTI4NTUyIC8qIFNWR01hdHJpeFZhbHVl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E0QjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTWV0
YWRhdGFFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkExRjJCMTBDRUYwQUJGMDA0NDJG
NkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdB
NEUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR01QYXRoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5oCShyZXZpc2lvbiAyNDM0OTYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTWF0cml4LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjUsMjAgKzI1LDIzIEBACiAKICNw
cmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU1ZHTWF0cml4VmFsdWUuaCIKKyNpbmNsdWRlICJBZmZp
bmVUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJTVkdQcm9wZXJ0eVRlYXJPZmYuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgY2xhc3Mgb25jZSBTVkdNYXRy
aXggYmVjb21lcyBhbiBhbGlhcyB0byBET01NYXRyaXguCi1jbGFzcyBTVkdNYXRyaXggOiBwdWJs
aWMgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR01hdHJpeFZhbHVlPiB7CitjbGFzcyBTVkdNYXRyaXgg
OiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPEFmZmluZVRyYW5zZm9ybT4geworICAgIHVzaW5n
IEJhc2UgPSBTVkdQcm9wZXJ0eVRlYXJPZmY8QWZmaW5lVHJhbnNmb3JtPjsKKyAgICB1c2luZyBC
YXNlOjpCYXNlOworCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdNYXRyaXg+IGNyZWF0ZShT
VkdMZWdhY3lBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJv
bGUgcm9sZSwgU1ZHTWF0cml4VmFsdWUmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHTWF0cml4
PiBjcmVhdGUoU1ZHTGVnYWN5QW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZH
UHJvcGVydHlSb2xlIHJvbGUsIEFmZmluZVRyYW5zZm9ybSYgdmFsdWUpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdNYXRyaXgoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwg
dmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTWF0cml4KCZhbmltYXRl
ZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHTWF0
cml4PiBjcmVhdGUoY29uc3QgU1ZHTWF0cml4VmFsdWUmIGluaXRpYWxWYWx1ZSA9IHsgfSkKKyAg
ICBzdGF0aWMgUmVmPFNWR01hdHJpeD4gY3JlYXRlKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgaW5p
dGlhbFZhbHVlID0geyB9KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
TWF0cml4KGluaXRpYWxWYWx1ZSkpOwogICAgIH0KQEAgLTUwLDcgKzUzLDcgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gY3JlYXRlKGluaXRpYWxWYWx1ZS5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7
CiAgICAgfQogCi0gICAgZG91YmxlIGEoKQorICAgIGRvdWJsZSBhKCkgY29uc3QKICAgICB7CiAg
ICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLmEoKTsKICAgICB9CkBAIC02Niw3ICs2
OSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKLSAgICBkb3VibGUg
YigpCisgICAgZG91YmxlIGIoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIHByb3BlcnR5
UmVmZXJlbmNlKCkuYigpOwogICAgIH0KQEAgLTgyLDcgKzg1LDcgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4geyB9OwogICAgIH0KIAotICAgIGRvdWJsZSBjKCkKKyAgICBkb3VibGUgYygpIGNv
bnN0CiAgICAgewogICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5jKCk7CiAgICAg
fQpAQCAtOTgsNyArMTAxLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4geyB9OwogICAgIH0K
IAotICAgIGRvdWJsZSBkKCkKKyAgICBkb3VibGUgZCgpIGNvbnN0CiAgICAgewogICAgICAgICBy
ZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5kKCk7CiAgICAgfQpAQCAtMTE0LDcgKzExNyw3IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKLSAgICBkb3VibGUgZSgpCisg
ICAgZG91YmxlIGUoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJl
bmNlKCkuZSgpOwogICAgIH0KQEAgLTEzMCw3ICsxMzMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiB7IH07CiAgICAgfQogCi0gICAgZG91YmxlIGYoKQorICAgIGRvdWJsZSBmKCkgY29uc3QK
ICAgICB7CiAgICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLmYoKTsKICAgICB9CkBA
IC0xNDYsMTQ1ICsxNDksODYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4geyB9OwogICAgIH0K
IAotICAgIEV4Y2VwdGlvbk9yPFJlZjxTVkdNYXRyaXg+PiBtdWx0aXBseShTVkdNYXRyaXgmIHNl
Y29uZE1hdHJpeCkKKyAgICBSZWY8U1ZHTWF0cml4PiBtdWx0aXBseShTVkdNYXRyaXgmIHNlY29u
ZE1hdHJpeCkgY29uc3QKICAgICB7Ci0gICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCi0gICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKLQot
ICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkubXVsdGlwbHkoc2Vjb25k
TWF0cml4LnByb3BlcnR5UmVmZXJlbmNlKCkpOwotICAgICAgICBjb21taXRDaGFuZ2UoKTsKLQot
ICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKKyAgICAgICAgYXV0byBj
b3B5ID0gcHJvcGVydHlSZWZlcmVuY2UoKTsKKyAgICAgICAgY29weS5tdWx0aXBseShzZWNvbmRN
YXRyaXgucHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNy
ZWF0ZShjb3B5KTsKICAgICB9CiAKLSAgICBFeGNlcHRpb25PcjxSZWY8U1ZHTWF0cml4Pj4gaW52
ZXJzZSgpCisgICAgRXhjZXB0aW9uT3I8UmVmPFNWR01hdHJpeD4+IGludmVyc2UoKSBjb25zdAog
ICAgIHsKLSAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKLSAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OworICAgICAgICBhdXRvIGludmVy
c2UgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmludmVyc2UoKTsKKyAgICAgICAgaWYgKCFpbnZlcnNl
KQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiTWF0
cml4IGlzIG5vdCBpbnZlcnRpYmxlIl9zIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9w
ZXJ0eVJlZmVyZW5jZSgpLmludmVyc2UoKTsKLSAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRp
b24oKSkKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwotICAg
ICAgICAKLSAgICAgICAgY29tbWl0Q2hhbmdlKCk7Ci0gICAgICAgIHJldHVybiBTVkdNYXRyaXg6
OmNyZWF0ZShyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOworICAgICAgICByZXR1cm4gU1ZH
TWF0cml4OjpjcmVhdGUoKmludmVyc2UpOwogICAgIH0KIAotICAgIEV4Y2VwdGlvbk9yPFJlZjxT
VkdNYXRyaXg+PiB0cmFuc2xhdGUoZmxvYXQgeCwgZmxvYXQgeSkKKyAgICBSZWY8U1ZHTWF0cml4
PiB0cmFuc2xhdGUoZmxvYXQgeCwgZmxvYXQgeSkgY29uc3QKICAgICB7Ci0gICAgICAgIGlmIChp
c1JlYWRPbmx5KCkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRp
b25BbGxvd2VkRXJyb3IgfTsKLQotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJl
bmNlKCkudHJhbnNsYXRlKHgsIHkpOyAgICAgICAgCi0gICAgICAgIGNvbW1pdENoYW5nZSgpOwot
Ci0gICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOworICAgICAgICBhdXRv
IGNvcHkgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpOworICAgICAgICBjb3B5LnRyYW5zbGF0ZSh4LCB5
KTsKKyAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKGNvcHkpOwogICAgIH0KIAotICAg
IEV4Y2VwdGlvbk9yPFJlZjxTVkdNYXRyaXg+PiBzY2FsZShmbG9hdCBzY2FsZUZhY3RvcikKKyAg
ICBSZWY8U1ZHTWF0cml4PiBzY2FsZShmbG9hdCBzY2FsZUZhY3RvcikgY29uc3QKICAgICB7Ci0g
ICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
Tm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKLQotICAgICAgICBhdXRvIHJlc3VsdCA9IHBy
b3BlcnR5UmVmZXJlbmNlKCkuc2NhbGUoc2NhbGVGYWN0b3IpOyAgICAgICAgCi0gICAgICAgIGNv
bW1pdENoYW5nZSgpOwotCi0gICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQp
OworICAgICAgICBhdXRvIGNvcHkgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpOworICAgICAgICBjb3B5
LnNjYWxlKHNjYWxlRmFjdG9yKTsKKyAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKGNv
cHkpOwogICAgIH0KIAotICAgIEV4Y2VwdGlvbk9yPFJlZjxTVkdNYXRyaXg+PiBzY2FsZU5vblVu
aWZvcm0oZmxvYXQgc2NhbGVGYWN0b3JYLCBmbG9hdCBzY2FsZUZhY3RvclkpCisgICAgUmVmPFNW
R01hdHJpeD4gc2NhbGVOb25Vbmlmb3JtKGZsb2F0IHNjYWxlRmFjdG9yWCwgZmxvYXQgc2NhbGVG
YWN0b3JZKSBjb25zdAogICAgIHsKLSAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKLSAgICAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwotCi0g
ICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5zY2FsZU5vblVuaWZvcm0o
c2NhbGVGYWN0b3JYLCBzY2FsZUZhY3RvclkpOyAgICAgICAgCi0gICAgICAgIGNvbW1pdENoYW5n
ZSgpOwotCi0gICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOworICAgICAg
ICBhdXRvIGNvcHkgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpOworICAgICAgICBjb3B5LnNjYWxlTm9u
VW5pZm9ybShzY2FsZUZhY3RvclgsIHNjYWxlRmFjdG9yWSk7CisgICAgICAgIHJldHVybiBTVkdN
YXRyaXg6OmNyZWF0ZShjb3B5KTsKICAgICB9CiAKLSAgICBFeGNlcHRpb25PcjxSZWY8U1ZHTWF0
cml4Pj4gcm90YXRlKGZsb2F0IGFuZ2xlKQorICAgIFJlZjxTVkdNYXRyaXg+IHJvdGF0ZShmbG9h
dCBhbmdsZSkgY29uc3QKICAgICB7Ci0gICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCi0gICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKLQot
ICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkucm90YXRlKGFuZ2xlKTsg
ICAgICAgIAotICAgICAgICBjb21taXRDaGFuZ2UoKTsKLQotICAgICAgICByZXR1cm4gU1ZHTWF0
cml4OjpjcmVhdGUocmVzdWx0KTsKKyAgICAgICAgYXV0byBjb3B5ID0gcHJvcGVydHlSZWZlcmVu
Y2UoKTsKKyAgICAgICAgY29weS5yb3RhdGUoYW5nbGUpOworICAgICAgICByZXR1cm4gU1ZHTWF0
cml4OjpjcmVhdGUoY29weSk7CiAgICAgfQogCi0gICAgRXhjZXB0aW9uT3I8UmVmPFNWR01hdHJp
eD4+IHJvdGF0ZUZyb21WZWN0b3IoZmxvYXQgeCwgZmxvYXQgeSkKKyAgICBFeGNlcHRpb25PcjxS
ZWY8U1ZHTWF0cml4Pj4gcm90YXRlRnJvbVZlY3RvcihmbG9hdCB4LCBmbG9hdCB5KSBjb25zdAog
ICAgIHsKLSAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKLSAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OworICAgICAgICBpZiAoIXggfHwg
IXkpCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yIH07CiAKLSAgICAg
ICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnJvdGF0ZUZyb21WZWN0b3IoeCwg
eSk7ICAgICAgICAKLSAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKLSAgICAgICAg
ICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwotICAgICAgICAKLSAgICAgICAg
Y29tbWl0Q2hhbmdlKCk7Ci0gICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQu
cmVsZWFzZVJldHVyblZhbHVlKCkpOwotICAgIH0KLQotICAgIEV4Y2VwdGlvbk9yPFJlZjxTVkdN
YXRyaXg+PiBmbGlwWCgpCi0gICAgewotICAgICAgICBpZiAoaXNSZWFkT25seSgpKQotICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07Ci0K
LSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmZsaXBYKCk7ICAgICAg
ICAKLSAgICAgICAgY29tbWl0Q2hhbmdlKCk7Ci0KLSAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6
Y3JlYXRlKHJlc3VsdCk7Ci0gICAgfQotCi0gICAgRXhjZXB0aW9uT3I8UmVmPFNWR01hdHJpeD4+
IGZsaXBZKCkKLSAgICB7Ci0gICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCi0gICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKLQotICAgICAg
ICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuZmxpcFkoKTsgICAgICAgIAotICAg
ICAgICBjb21taXRDaGFuZ2UoKTsKLQotICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUo
cmVzdWx0KTsKKyAgICAgICAgYXV0byBjb3B5ID0gcHJvcGVydHlSZWZlcmVuY2UoKTsKKyAgICAg
ICAgY29weS5yb3RhdGVGcm9tVmVjdG9yKHgsIHkpOworICAgICAgICByZXR1cm4gU1ZHTWF0cml4
OjpjcmVhdGUoY29weSk7CiAgICAgfQogCi0gICAgRXhjZXB0aW9uT3I8UmVmPFNWR01hdHJpeD4+
IHNrZXdYKGZsb2F0IGFuZ2xlKQorICAgIFJlZjxTVkdNYXRyaXg+IGZsaXBYKCkgY29uc3QKICAg
ICB7Ci0gICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKLQotICAgICAgICBhdXRvIHJlc3Vs
dCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2tld1goYW5nbGUpOyAgICAgICAgCi0gICAgICAgIGNv
bW1pdENoYW5nZSgpOwotCi0gICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQp
OwotICAgIH0KLQotICAgIEV4Y2VwdGlvbk9yPFJlZjxTVkdNYXRyaXg+PiBza2V3WShmbG9hdCBh
bmdsZSkKLSAgICB7Ci0gICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCi0gICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKLQotICAgICAgICBh
dXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2tld1koYW5nbGUpOyAgICAgICAgCi0g
ICAgICAgIGNvbW1pdENoYW5nZSgpOwotCi0gICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0
ZShyZXN1bHQpOworICAgICAgICBhdXRvIGNvcHkgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpOworICAg
ICAgICBjb3B5LmZsaXBYKCk7CisgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShjb3B5
KTsKICAgICB9CiAKLXByb3RlY3RlZDoKLSAgICBTVkdNYXRyaXgoU1ZHTGVnYWN5QW5pbWF0ZWRQ
cm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR01hdHJp
eFZhbHVlJiB2YWx1ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHTWF0cml4VmFs
dWU+KCZhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkKKyAgICBSZWY8U1ZHTWF0cml4PiBm
bGlwWSgpIGNvbnN0CiAgICAgeworICAgICAgICBhdXRvIGNvcHkgPSBwcm9wZXJ0eVJlZmVyZW5j
ZSgpOworICAgICAgICBjb3B5LmZsaXBZKCk7CisgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNy
ZWF0ZShjb3B5KTsKICAgICB9CiAKLSAgICBleHBsaWNpdCBTVkdNYXRyaXgoY29uc3QgU1ZHTWF0
cml4VmFsdWUmIGluaXRpYWxWYWx1ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZH
TWF0cml4VmFsdWU+KGluaXRpYWxWYWx1ZSkKKyAgICBSZWY8U1ZHTWF0cml4PiBza2V3WChmbG9h
dCBhbmdsZSkgY29uc3QKICAgICB7CisgICAgICAgIGF1dG8gY29weSA9IHByb3BlcnR5UmVmZXJl
bmNlKCk7CisgICAgICAgIGNvcHkuc2tld1goYW5nbGUpOworICAgICAgICByZXR1cm4gU1ZHTWF0
cml4OjpjcmVhdGUoY29weSk7CiAgICAgfQogCi0gICAgZXhwbGljaXQgU1ZHTWF0cml4KGNvbnN0
IFNWR01hdHJpeFZhbHVlKiBpbml0aWFsVmFsdWUpCi0gICAgICAgIDogU1ZHUHJvcGVydHlUZWFy
T2ZmPFNWR01hdHJpeFZhbHVlPihpbml0aWFsVmFsdWUpCisgICAgUmVmPFNWR01hdHJpeD4gc2tl
d1koZmxvYXQgYW5nbGUpIGNvbnN0CiAgICAgeworICAgICAgICBhdXRvIGNvcHkgPSBwcm9wZXJ0
eVJlZmVyZW5jZSgpOworICAgICAgICBjb3B5LnNrZXdZKGFuZ2xlKTsKKyAgICAgICAgcmV0dXJu
IFNWR01hdHJpeDo6Y3JlYXRlKGNvcHkpOwogICAgIH0KIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdNYXRyaXguaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNYXRyaXguaWRsCShyZXZpc2lvbiAyNDM0OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TWF0cml4LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTUgKzMzLDE1IEBACiAgICAgYXR0cmli
dXRlIHVucmVzdHJpY3RlZCBkb3VibGUgZTsKICAgICBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRv
dWJsZSBmOwogCi0gICAgW01heVRocm93RXhjZXB0aW9uXSBTVkdNYXRyaXggbXVsdGlwbHkoU1ZH
TWF0cml4IHNlY29uZE1hdHJpeCk7Ci0gICAgW01heVRocm93RXhjZXB0aW9uXSBTVkdNYXRyaXgg
aW52ZXJzZSgpOwotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gU1ZHTWF0cml4IHRyYW5zbGF0ZSh1
bnJlc3RyaWN0ZWQgZmxvYXQgeCwgdW5yZXN0cmljdGVkIGZsb2F0IHkpOwotICAgIFtNYXlUaHJv
d0V4Y2VwdGlvbl0gU1ZHTWF0cml4IHNjYWxlKHVucmVzdHJpY3RlZCBmbG9hdCBzY2FsZUZhY3Rv
cik7Ci0gICAgW01heVRocm93RXhjZXB0aW9uXSBTVkdNYXRyaXggc2NhbGVOb25Vbmlmb3JtKHVu
cmVzdHJpY3RlZCBmbG9hdCBzY2FsZUZhY3RvclgsIHVucmVzdHJpY3RlZCBmbG9hdCBzY2FsZUZh
Y3RvclkpOwotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gU1ZHTWF0cml4IHJvdGF0ZSh1bnJlc3Ry
aWN0ZWQgZmxvYXQgYW5nbGUpOwotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gU1ZHTWF0cml4IHJv
dGF0ZUZyb21WZWN0b3IodW5yZXN0cmljdGVkIGZsb2F0IHgsIHVucmVzdHJpY3RlZCBmbG9hdCB5
KTsKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFNWR01hdHJpeCBmbGlwWCgpOwotICAgIFtNYXlU
aHJvd0V4Y2VwdGlvbl0gU1ZHTWF0cml4IGZsaXBZKCk7Ci0gICAgW01heVRocm93RXhjZXB0aW9u
XSBTVkdNYXRyaXggc2tld1godW5yZXN0cmljdGVkIGZsb2F0IGFuZ2xlKTsKLSAgICBbTWF5VGhy
b3dFeGNlcHRpb25dIFNWR01hdHJpeCBza2V3WSh1bnJlc3RyaWN0ZWQgZmxvYXQgYW5nbGUpOwor
ICAgIFtOZXdPYmplY3RdIFNWR01hdHJpeCBtdWx0aXBseShTVkdNYXRyaXggc2Vjb25kTWF0cml4
KTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb24sIE5ld09iamVjdF0gU1ZHTWF0cml4IGludmVyc2Uo
KTsKKyAgICBbTmV3T2JqZWN0XSBTVkdNYXRyaXggdHJhbnNsYXRlKHVucmVzdHJpY3RlZCBmbG9h
dCB4LCB1bnJlc3RyaWN0ZWQgZmxvYXQgeSk7CisgICAgW05ld09iamVjdF0gU1ZHTWF0cml4IHNj
YWxlKHVucmVzdHJpY3RlZCBmbG9hdCBzY2FsZUZhY3Rvcik7CisgICAgW05ld09iamVjdF0gU1ZH
TWF0cml4IHNjYWxlTm9uVW5pZm9ybSh1bnJlc3RyaWN0ZWQgZmxvYXQgc2NhbGVGYWN0b3JYLCB1
bnJlc3RyaWN0ZWQgZmxvYXQgc2NhbGVGYWN0b3JZKTsKKyAgICBbTmV3T2JqZWN0XSBTVkdNYXRy
aXggcm90YXRlKHVucmVzdHJpY3RlZCBmbG9hdCBhbmdsZSk7CisgICAgW01heVRocm93RXhjZXB0
aW9uLCBOZXdPYmplY3RdIFNWR01hdHJpeCByb3RhdGVGcm9tVmVjdG9yKHVucmVzdHJpY3RlZCBm
bG9hdCB4LCB1bnJlc3RyaWN0ZWQgZmxvYXQgeSk7CisgICAgW05ld09iamVjdF0gU1ZHTWF0cml4
IGZsaXBYKCk7CisgICAgW05ld09iamVjdF0gU1ZHTWF0cml4IGZsaXBZKCk7CisgICAgW05ld09i
amVjdF0gU1ZHTWF0cml4IHNrZXdYKHVucmVzdHJpY3RlZCBmbG9hdCBhbmdsZSk7CisgICAgW05l
d09iamVjdF0gU1ZHTWF0cml4IHNrZXdZKHVucmVzdHJpY3RlZCBmbG9hdCBhbmdsZSk7CiB9OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeFZhbHVlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeFZhbHVlLmgJKHJldmlzaW9uIDI0MzQ5NikKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXRyaXhWYWx1ZS5oCShub25leGlzdGVudCkKQEAgLTEs
MTI0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1p
dGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAi
QWZmaW5lVHJhbnNmb3JtLmgiCi0jaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi1jbGFzcyBTVkdNYXRyaXhWYWx1ZSBmaW5hbCA6IHB1YmxpYyBBZmZpbmVU
cmFuc2Zvcm0gewotcHVibGljOgotICAgIFNWR01hdHJpeFZhbHVlKCkgPSBkZWZhdWx0OwotCi0g
ICAgU1ZHTWF0cml4VmFsdWUoY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBvdGhlcikKLSAgICAgICAg
OiBBZmZpbmVUcmFuc2Zvcm0ob3RoZXIpCi0gICAgewotICAgIH0KLQotICAgIFNWR01hdHJpeFZh
bHVlKGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMsIGRvdWJsZSBkLCBkb3VibGUgZSwgZG91
YmxlIGYpCi0gICAgICAgIDogQWZmaW5lVHJhbnNmb3JtKGEsIGIsIGMsIGQsIGUsIGYpCi0gICAg
ewotICAgIH0KLQotICAgIFNWR01hdHJpeFZhbHVlIHRyYW5zbGF0ZShkb3VibGUgdHgsIGRvdWJs
ZSB0eSkKLSAgICB7Ci0gICAgICAgIEFmZmluZVRyYW5zZm9ybSBjb3B5IHsgKnRoaXMgfTsKLSAg
ICAgICAgY29weS50cmFuc2xhdGUodHgsIHR5KTsKLSAgICAgICAgcmV0dXJuIFNWR01hdHJpeFZh
bHVlIHsgY29weSB9OwotICAgIH0KLQotICAgIFNWR01hdHJpeFZhbHVlIHNjYWxlKGRvdWJsZSBz
KQotICAgIHsKLSAgICAgICAgQWZmaW5lVHJhbnNmb3JtIGNvcHkgeyAqdGhpcyB9OwotICAgICAg
ICBjb3B5LnNjYWxlKHMsIHMpOwotICAgICAgICByZXR1cm4gU1ZHTWF0cml4VmFsdWUgeyBjb3B5
IH07Ci0gICAgfQotCi0gICAgU1ZHTWF0cml4VmFsdWUgc2NhbGVOb25Vbmlmb3JtKGRvdWJsZSBz
eCwgZG91YmxlIHN5KQotICAgIHsKLSAgICAgICAgQWZmaW5lVHJhbnNmb3JtIGNvcHkgeyAqdGhp
cyB9OwotICAgICAgICBjb3B5LnNjYWxlKHN4LCBzeSk7Ci0gICAgICAgIHJldHVybiBTVkdNYXRy
aXhWYWx1ZSB7IGNvcHkgfTsKLSAgICB9Ci0KLSAgICBTVkdNYXRyaXhWYWx1ZSByb3RhdGUoZG91
YmxlIGQpCi0gICAgewotICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gY29weSB7ICp0aGlzIH07Ci0g
ICAgICAgIGNvcHkucm90YXRlKGQpOwotICAgICAgICByZXR1cm4gU1ZHTWF0cml4VmFsdWUgeyBj
b3B5IH07Ci0gICAgfQotCi0gICAgU1ZHTWF0cml4VmFsdWUgZmxpcFgoKQotICAgIHsKLSAgICAg
ICAgQWZmaW5lVHJhbnNmb3JtIGNvcHkgeyAqdGhpcyB9OwotICAgICAgICBjb3B5LmZsaXBYKCk7
Ci0gICAgICAgIHJldHVybiBTVkdNYXRyaXhWYWx1ZSB7IGNvcHkgfTsKLSAgICB9Ci0KLSAgICBT
VkdNYXRyaXhWYWx1ZSBmbGlwWSgpCi0gICAgewotICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gY29w
eSB7ICp0aGlzIH07Ci0gICAgICAgIGNvcHkuZmxpcFkoKTsKLSAgICAgICAgcmV0dXJuIFNWR01h
dHJpeFZhbHVlIHsgY29weSB9OwotICAgIH0KLQotICAgIFNWR01hdHJpeFZhbHVlIHNrZXdYKGRv
dWJsZSBhbmdsZSkKLSAgICB7Ci0gICAgICAgIEFmZmluZVRyYW5zZm9ybSBjb3B5IHsgKnRoaXMg
fTsKLSAgICAgICAgY29weS5za2V3WChhbmdsZSk7Ci0gICAgICAgIHJldHVybiBTVkdNYXRyaXhW
YWx1ZSB7IGNvcHkgfTsKLSAgICB9Ci0KLSAgICBTVkdNYXRyaXhWYWx1ZSBza2V3WShkb3VibGUg
YW5nbGUpCi0gICAgewotICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gY29weSB7ICp0aGlzIH07Ci0g
ICAgICAgIGNvcHkuc2tld1koYW5nbGUpOwotICAgICAgICByZXR1cm4gU1ZHTWF0cml4VmFsdWUg
eyBjb3B5IH07Ci0gICAgfQotCi0gICAgU1ZHTWF0cml4VmFsdWUgbXVsdGlwbHkoY29uc3QgU1ZH
TWF0cml4VmFsdWUmIG90aGVyKQotICAgIHsKLSAgICAgICAgQWZmaW5lVHJhbnNmb3JtIGNvcHkg
eyAqdGhpcyB9OwotICAgICAgICBjb3B5ICo9IHN0YXRpY19jYXN0PGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSY+KG90aGVyKTsKLSAgICAgICAgcmV0dXJuIFNWR01hdHJpeFZhbHVlIHsgY29weSB9Owot
ICAgIH0KLQotICAgIEV4Y2VwdGlvbk9yPFNWR01hdHJpeFZhbHVlPiBpbnZlcnNlKCkgY29uc3QK
LSAgICB7Ci0gICAgICAgIGlmIChhdXRvIGludmVyc2UgPSBBZmZpbmVUcmFuc2Zvcm06OmludmVy
c2UoKSkKLSAgICAgICAgICAgIHJldHVybiBTVkdNYXRyaXhWYWx1ZSB7IGludmVyc2UudmFsdWUo
KSB9OwotICAgICAgICAKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiTWF0cml4IGlzIG5vdCBpbnZlcnRpYmxlIl9zIH07Ci0gICAgfQotCi0gICAgRXhjZXB0
aW9uT3I8U1ZHTWF0cml4VmFsdWU+IHJvdGF0ZUZyb21WZWN0b3IoZG91YmxlIHgsIGRvdWJsZSB5
KQotICAgIHsKLSAgICAgICAgaWYgKCF4IHx8ICF5KQotICAgICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IFR5cGVFcnJvciB9OwotCi0gICAgICAgIEFmZmluZVRyYW5zZm9ybSBjb3B5IHsgKnRo
aXMgfTsKLSAgICAgICAgY29weS5yb3RhdGVGcm9tVmVjdG9yKHgsIHkpOwotICAgICAgICByZXR1
cm4gU1ZHTWF0cml4VmFsdWUgeyBjb3B5IH07Ci0gICAgfQotCi19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmNwcAkocmV2aXNpb24g
MjQzNDk2KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZWY8U1ZHTWF0
cml4PiBTVkdUcmFuc2Zvcm06Om1hdHJpeCgpCiB7Ci0gICAgcmV0dXJuIFNWR01hdHJpeFRlYXJP
ZmY6OmNyZWF0ZSgqdGhpcywgcHJvcGVydHlSZWZlcmVuY2UoKS5zdmdNYXRyaXgoKSk7CisgICAg
cmV0dXJuIFNWR01hdHJpeFRlYXJPZmY6OmNyZWF0ZSgqdGhpcywgcHJvcGVydHlSZWZlcmVuY2Uo
KS5tYXRyaXgoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1EaXN0YW5jZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybURpc3RhbmNlLmNwcAkocmV2aXNpb24gMjQzNDk2KQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybURpc3RhbmNlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTYwLDcgKzE2MCw3IEBAIFNWR1RyYW5zZm9ybVZhbHVlIFNWR1RyYW5zZm9ybURp
c3RhbmNlOjoKIAogU1ZHVHJhbnNmb3JtVmFsdWUgU1ZHVHJhbnNmb3JtRGlzdGFuY2U6OmFkZFRv
U1ZHVHJhbnNmb3JtKGNvbnN0IFNWR1RyYW5zZm9ybVZhbHVlJiB0cmFuc2Zvcm0pIGNvbnN0CiB7
Ci0gICAgQVNTRVJUKG1fdHlwZSA9PSB0cmFuc2Zvcm0udHlwZSgpIHx8IHRyYW5zZm9ybSA9PSBT
VkdUcmFuc2Zvcm1WYWx1ZSgpKTsKKyAgICBBU1NFUlQobV90eXBlID09IHRyYW5zZm9ybS50eXBl
KCkgfHwgIXRyYW5zZm9ybS5pc1ZhbGlkKCkpOwogICAgIAogICAgIFNWR1RyYW5zZm9ybVZhbHVl
IG5ld1RyYW5zZm9ybSh0cmFuc2Zvcm0pOwogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RyYW5zZm9ybVZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RyYW5zZm9ybVZhbHVlLmgJKHJldmlzaW9uIDI0MzQ5NikKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHpp
bW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBSb2IgQnVpcyA8
YnVpc0BrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIwLDggKzIxLDggQEAKIAogI3By
YWdtYSBvbmNlCiAKKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJGbG9h
dFBvaW50LmgiCi0jaW5jbHVkZSAiU1ZHTWF0cml4VmFsdWUuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC01MCw4ICs1MSw4IEBAIHB1YmxpYzoKIAogICAgIFNWR1RyYW5zZm9ybVR5cGUg
dHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogCi0gICAgU1ZHTWF0cml4VmFsdWUmIHN2
Z01hdHJpeCgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFNWR01hdHJpeFZhbHVlJj4obV9tYXRyaXgp
OyB9Ci0gICAgQWZmaW5lVHJhbnNmb3JtIG1hdHJpeCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF0cml4
OyB9CisgICAgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBtYXRyaXgoKSBjb25zdCB7IHJldHVybiBt
X21hdHJpeDsgfQorICAgIEFmZmluZVRyYW5zZm9ybSYgbWF0cml4KCkgeyByZXR1cm4gbV9tYXRy
aXg7IH0KICAgICB2b2lkIHVwZGF0ZVNWR01hdHJpeCgpOwogCiAgICAgZmxvYXQgYW5nbGUoKSBj
b25zdCB7IHJldHVybiBtX2FuZ2xlOyB9CkBAIC03MywyMiArNzQsMTAgQEAgcHVibGljOgogICAg
IHN0YXRpYyBjb25zdCBTdHJpbmcmIHRyYW5zZm9ybVR5cGVQcmVmaXhGb3JQYXJzaW5nKFNWR1Ry
YW5zZm9ybVR5cGUpOwogCiBwcml2YXRlOgotICAgIGZyaWVuZCBib29sIG9wZXJhdG9yPT0oY29u
c3QgU1ZHVHJhbnNmb3JtVmFsdWUmLCBjb25zdCBTVkdUcmFuc2Zvcm1WYWx1ZSYpOwotCiAgICAg
U1ZHVHJhbnNmb3JtVHlwZSBtX3R5cGUgeyBTVkdfVFJBTlNGT1JNX1VOS05PV04gfTsKICAgICBm
bG9hdCBtX2FuZ2xlIHsgMCB9OwogICAgIEZsb2F0UG9pbnQgbV9jZW50ZXI7CiAgICAgQWZmaW5l
VHJhbnNmb3JtIG1fbWF0cml4OwogfTsKIAotaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBT
VkdUcmFuc2Zvcm1WYWx1ZSYgYSwgY29uc3QgU1ZHVHJhbnNmb3JtVmFsdWUmIGIpCi17Ci0gICAg
cmV0dXJuIGEubV90eXBlID09IGIubV90eXBlICYmIGEubV9hbmdsZSA9PSBiLm1fYW5nbGUgJiYg
YS5tX21hdHJpeCA9PSBiLm1fbWF0cml4OwotfQotCi1pbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNv
bnN0IFNWR1RyYW5zZm9ybVZhbHVlJiBhLCBjb25zdCBTVkdUcmFuc2Zvcm1WYWx1ZSYgYikKLXsK
LSAgICByZXR1cm4gIShhID09IGIpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTWF0cml4VGVhck9mZi5o
CShyZXZpc2lvbiAyNDM0OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdN
YXRyaXhUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDE3ICsyNiwxOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR01hdHJpeFRlYXJPZmYgZmluYWwgOiBwdWJsaWMgU1ZH
TWF0cml4IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR01hdHJpeFRlYXJPZmY+IGNyZWF0
ZShTVkdUcmFuc2Zvcm0mIHBhcmVudCwgU1ZHTWF0cml4VmFsdWUmIHZhbHVlKQorICAgIHN0YXRp
YyBSZWY8U1ZHTWF0cml4VGVhck9mZj4gY3JlYXRlKFNWR1RyYW5zZm9ybSYgcGFyZW50LCBBZmZp
bmVUcmFuc2Zvcm0mIHZhbHVlKQogICAgIHsKLSAgICAgICAgQVNTRVJUX1VOVVNFRCh2YWx1ZSwg
JnBhcmVudC5wcm9wZXJ0eVJlZmVyZW5jZSgpLnN2Z01hdHJpeCgpID09ICZ2YWx1ZSk7CisgICAg
ICAgIEFTU0VSVF9VTlVTRUQodmFsdWUsICZwYXJlbnQucHJvcGVydHlSZWZlcmVuY2UoKS5tYXRy
aXgoKSA9PSAmdmFsdWUpOwogICAgICAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgU1ZH
TWF0cml4VGVhck9mZihwYXJlbnQpKTsKICAgICAgICAgcGFyZW50LmFkZENoaWxkKG1ha2VXZWFr
UHRyKHJlc3VsdC5nZXQoKSkpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAg
IFNWR01hdHJpeFZhbHVlJiBwcm9wZXJ0eVJlZmVyZW5jZSgpIGZpbmFsIHsgcmV0dXJuIG1fcGFy
ZW50LT5wcm9wZXJ0eVJlZmVyZW5jZSgpLnN2Z01hdHJpeCgpOyB9CisgICAgY29uc3QgQWZmaW5l
VHJhbnNmb3JtJiBwcm9wZXJ0eVJlZmVyZW5jZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcGFy
ZW50LT5wcm9wZXJ0eVJlZmVyZW5jZSgpLm1hdHJpeCgpOyB9CisgICAgQWZmaW5lVHJhbnNmb3Jt
JiBwcm9wZXJ0eVJlZmVyZW5jZSgpIGZpbmFsIHsgcmV0dXJuIG1fcGFyZW50LT5wcm9wZXJ0eVJl
ZmVyZW5jZSgpLm1hdHJpeCgpOyB9CiAKLSAgICB2b2lkIHNldFZhbHVlKFNWR01hdHJpeFZhbHVl
JiB2YWx1ZSkgZmluYWwgeyBtX3BhcmVudC0+cHJvcGVydHlSZWZlcmVuY2UoKS5zZXRNYXRyaXgo
dmFsdWUpOyB9CisgICAgdm9pZCBzZXRWYWx1ZShBZmZpbmVUcmFuc2Zvcm0mIHZhbHVlKSBmaW5h
bCB7IG1fcGFyZW50LT5wcm9wZXJ0eVJlZmVyZW5jZSgpLnNldE1hdHJpeCh2YWx1ZSk7IH0KIAog
ICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkgZmluYWwKICAgICB7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24g
MjQzNDk2KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUZWFy
T2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTYwLDYgKzYwLDcgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gY3JlYXRlKGluaXRpYWxWYWx1ZS5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAgICAgfQog
CisgICAgdmlydHVhbCBjb25zdCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5UmVmZXJlbmNlKCkgY29u
c3QgeyByZXR1cm4gKm1fdmFsdWU7IH0KICAgICB2aXJ0dWFsIFByb3BlcnR5VHlwZSYgcHJvcGVy
dHlSZWZlcmVuY2UoKSB7IHJldHVybiAqbV92YWx1ZTsgfQogICAgIFNWR0xlZ2FjeUFuaW1hdGVk
UHJvcGVydHkqIGFuaW1hdGVkUHJvcGVydHkoKSBjb25zdCB7IHJldHVybiBtX2FuaW1hdGVkUHJv
cGVydHkuZ2V0KCk7IH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjQzNDk2KQorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDMtMjYg
IFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBT
VkdNYXRyaXguSURMIG1ldGhvZHMgZG8gbm90IGNvbmZvcm0gdG8gdGhlIHNwZWNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTYyNjMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN2Zy9kb20vU1ZHTWF0
cml4LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdmcvZG9tL1NWR01hdHJpeC5odG1sOgorICAg
ICAgICBDbGVhbiB0aGlzIHRlc3QuIE1ha2UgaXQgdGVzdCB0aGUgY2FzZSB3aGVuIHZhbGlkIGFy
Z3VtZW50cyBhcmUgcGFzc2VkIHRvCisgICAgICAgIHRoZSBtZXRob2RzIG9mIHRoZSBTVkdNYXRy
aXguIE1ha2Ugc3VyZSB0aGUgbWV0aG9kcyBhcmUgcmVhZC1vbmx5LiBBbGwKKyAgICAgICAgb2Yg
dGhlbSBzaG91bGQgYmUgbWFraW5nIGEgY29weSBvZiB0aGUgbWF0cml4LCBhcHBseWluZyB0aGUg
dHJhbnNmb3JtIGFuZAorICAgICAgICByZXR1cm5pbmcgdGhlIGNvcHkuCisKIDIwMTktMDMtMjYg
IFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIExheW91dCBU
ZXN0IGpzL21hdGgtY2x6MzIuaHRtbCBpcyBmYWlsaW5nCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcv
ZG9tL1NWR01hdHJpeC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3Zn
L2RvbS9TVkdNYXRyaXgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNDM0OTYpCisrKyBMYXlvdXRU
ZXN0cy9zdmcvZG9tL1NWR01hdHJpeC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTUs
MTIgKzUsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBCiAKIAog
Q2hlY2sgaW5pdGlhbCBtYXRyaXggdmFsdWVzCi1QQVNTIG1hdHJpeC5hIGlzIDEKLVBBU1MgbWF0
cml4LmIgaXMgMAotUEFTUyBtYXRyaXguYyBpcyAwCi1QQVNTIG1hdHJpeC5kIGlzIDEKLVBBU1Mg
bWF0cml4LmUgaXMgMAotUEFTUyBtYXRyaXguZiBpcyAwCitQQVNTIG1hdHJpeFRvU3RyaW5nKG1h
dHJpeCkgaXMgInsgYTogMSwgYjogMCwgYzogMCwgZDogMSwgZTogMCwgZjogMH0iCiAKIENoZWNr
IGFzc2lnbmluZyBtYXRyaWNlcwogUEFTUyBtYXRyaXguYSA9IDIgaXMgMgpAQCAtMjUsNiArMjAs
OCBAQCBQQVNTIG1hdHJpeC5hIGlzIE5hTgogUEFTUyBtYXRyaXguYSA9IDAgaXMgMAogUEFTUyBt
YXRyaXguYSA9ICdhU3RyaW5nJyBpcyAnYVN0cmluZycKIFBBU1MgbWF0cml4LmEgaXMgTmFOCitQ
QVNTIG1hdHJpeC5hID0gbnVsbCBpcyBudWxsCitQQVNTIG1hdHJpeC5hIGlzIDAKIFBBU1MgbWF0
cml4LmEgPSAyIGlzIDIKIFBBU1MgbWF0cml4LmIgPSBtYXRyaXggaXMgbWF0cml4CiBQQVNTIG1h
dHJpeC5iIGlzIE5hTgpAQCAtMzQsNiArMzEsOCBAQCBQQVNTIG1hdHJpeC5iIGlzIE5hTgogUEFT
UyBtYXRyaXguYiA9IDAgaXMgMAogUEFTUyBtYXRyaXguYiA9ICdhU3RyaW5nJyBpcyAnYVN0cmlu
ZycKIFBBU1MgbWF0cml4LmIgaXMgTmFOCitQQVNTIG1hdHJpeC5iID0gbnVsbCBpcyBudWxsCitQ
QVNTIG1hdHJpeC5iIGlzIDAKIFBBU1MgbWF0cml4LmIgPSAwIGlzIDAKIFBBU1MgbWF0cml4LmMg
PSBtYXRyaXggaXMgbWF0cml4CiBQQVNTIG1hdHJpeC5jIGlzIE5hTgpAQCAtNDMsNiArNDIsOCBA
QCBQQVNTIG1hdHJpeC5jIGlzIE5hTgogUEFTUyBtYXRyaXguYyA9IDAgaXMgMAogUEFTUyBtYXRy
aXguYyA9ICdhU3RyaW5nJyBpcyAnYVN0cmluZycKIFBBU1MgbWF0cml4LmMgaXMgTmFOCitQQVNT
IG1hdHJpeC5jID0gbnVsbCBpcyBudWxsCitQQVNTIG1hdHJpeC5jIGlzIDAKIFBBU1MgbWF0cml4
LmMgPSAwIGlzIDAKIFBBU1MgbWF0cml4LmQgPSBtYXRyaXggaXMgbWF0cml4CiBQQVNTIG1hdHJp
eC5kIGlzIE5hTgpAQCAtNTIsNiArNTMsOCBAQCBQQVNTIG1hdHJpeC5kIGlzIE5hTgogUEFTUyBt
YXRyaXguZCA9IDAgaXMgMAogUEFTUyBtYXRyaXguZCA9ICdhU3RyaW5nJyBpcyAnYVN0cmluZycK
IFBBU1MgbWF0cml4LmQgaXMgTmFOCitQQVNTIG1hdHJpeC5kID0gbnVsbCBpcyBudWxsCitQQVNT
IG1hdHJpeC5kIGlzIDAKIFBBU1MgbWF0cml4LmQgPSAxIGlzIDEKIFBBU1MgbWF0cml4LmUgPSBt
YXRyaXggaXMgbWF0cml4CiBQQVNTIG1hdHJpeC5lIGlzIE5hTgpAQCAtNjEsNiArNjQsOCBAQCBQ
QVNTIG1hdHJpeC5lIGlzIE5hTgogUEFTUyBtYXRyaXguZSA9IDAgaXMgMAogUEFTUyBtYXRyaXgu
ZSA9ICdhU3RyaW5nJyBpcyAnYVN0cmluZycKIFBBU1MgbWF0cml4LmUgaXMgTmFOCitQQVNTIG1h
dHJpeC5lID0gbnVsbCBpcyBudWxsCitQQVNTIG1hdHJpeC5lIGlzIDAKIFBBU1MgbWF0cml4LmUg
PSAwIGlzIDAKIFBBU1MgbWF0cml4LmYgPSBtYXRyaXggaXMgbWF0cml4CiBQQVNTIG1hdHJpeC5m
IGlzIE5hTgpAQCAtNzAsMjQgKzc1LDEyIEBAIFBBU1MgbWF0cml4LmYgaXMgTmFOCiBQQVNTIG1h
dHJpeC5mID0gMCBpcyAwCiBQQVNTIG1hdHJpeC5mID0gJ2FTdHJpbmcnIGlzICdhU3RyaW5nJwog
UEFTUyBtYXRyaXguZiBpcyBOYU4KK1BBU1MgbWF0cml4LmYgPSBudWxsIGlzIG51bGwKK1BBU1Mg
bWF0cml4LmYgaXMgMAogUEFTUyBtYXRyaXguZiA9IDIwMCBpcyAyMDAKIAogQ2hlY2sgdGhhdCB0
aGUgbWF0cml4IGlzIHN0aWxsIGNvbnRhaW5pbmcgdGhlIGNvcnJlY3QgdmFsdWVzCi1QQVNTIG1h
dHJpeC5hIGlzIDIKLVBBU1MgbWF0cml4LmIgaXMgMAotUEFTUyBtYXRyaXguYyBpcyAwCi1QQVNT
IG1hdHJpeC5kIGlzIDEKLVBBU1MgbWF0cml4LmUgaXMgMAotUEFTUyBtYXRyaXguZiBpcyAyMDAK
LQotQ2hlY2sgYXNzaWduaW5nIG51bGwgd29ya3MgYXMgZXhwZWN0ZWQKLVBBU1MgbWF0cml4LmYg
PSBudWxsIGlzIG51bGwKLVBBU1MgbWF0cml4LmEgaXMgMgotUEFTUyBtYXRyaXguYiBpcyAwCi1Q
QVNTIG1hdHJpeC5jIGlzIDAKLVBBU1MgbWF0cml4LmQgaXMgMQotUEFTUyBtYXRyaXguZSBpcyAw
Ci1QQVNTIG1hdHJpeC5mIGlzIDAKK1BBU1MgbWF0cml4VG9TdHJpbmcobWF0cml4KSBpcyAieyBh
OiAyLCBiOiAwLCBjOiAwLCBkOiAxLCBlOiAwLCBmOiAyMDB9IgogCiBDaGVjayBjYWxsaW5nICdt
dWx0aXBseScgd2l0aCBpbnZhbGlkIGFyZ3VtZW50cwogUEFTUyBtYXRyaXgubXVsdGlwbHkoKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KQEAgLTE1NCw2
ICsxNDcsMjMgQEAgQ2hlY2sgY2FsbGluZyAnc2tld1knIHdpdGggaW52YWxpZCBhcmd1bQogUEFT
UyBtYXRyaXguc2tld1koKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KIFBBU1MgbWF0cml4LnNrZXdZKCdhU3RyaW5nJykgaXMgbm9uLW51bGwuCiBQQVNT
IG1hdHJpeC5za2V3WShzdmdFbGVtZW50KSBpcyBub24tbnVsbC4KKworQ2hlY2sgY2FsbGluZyBT
VkdNYXRyaXggbWV0aG9kcyB3aXRoIHZhbGlkIGFyZ3VtZW50cworUEFTUyBtYXRyaXhUb1N0cmlu
ZyhtYXRyaXgudHJhbnNsYXRlKDEwLCAyMCkpIGlzICJ7IGE6IDIsIGI6IDAsIGM6IDAsIGQ6IDEs
IGU6IDIwLCBmOiAyMjB9IgorUEFTUyBtYXRyaXhUb1N0cmluZyhtYXRyaXguc2NhbGUoNSkpIGlz
ICJ7IGE6IDEwLCBiOiAwLCBjOiAwLCBkOiA1LCBlOiAwLCBmOiAyMDB9IgorUEFTUyBtYXRyaXhU
b1N0cmluZyhtYXRyaXguc2NhbGVOb25Vbmlmb3JtKDIsIDMpKSBpcyAieyBhOiA0LCBiOiAwLCBj
OiAwLCBkOiAzLCBlOiAwLCBmOiAyMDB9IgorUEFTUyBtYXRyaXhUb1N0cmluZyhtYXRyaXguc2tl
d1goOTApKSBpcyAieyBhOiAyLCBiOiAwLCBjOiAzMjY2MjQ3ODcwNjM5MDc0MCwgZDogMSwgZTog
MCwgZjogMjAwfSIKK1BBU1MgbWF0cml4VG9TdHJpbmcobWF0cml4LnNrZXdZKDkwKSkgaXMgInsg
YTogMiwgYjogMTYzMzEyMzkzNTMxOTUzNzAsIGM6IDAsIGQ6IDEsIGU6IDAsIGY6IDIwMH0iCisK
K0NoZWNrIHRoYXQgdGhlIG1hdHJpeCBpcyBzdGlsbCBjb250YWluaW5nIHRoZSBjb3JyZWN0IHZh
bHVlcworUEFTUyBtYXRyaXhUb1N0cmluZyhtYXRyaXgpIGlzICJ7IGE6IDIsIGI6IDAsIGM6IDAs
IGQ6IDEsIGU6IDAsIGY6IDIwMH0iCisKK0NhbGxpbmcgbWV0aG9kcyB0aGF0IHRocm93IGV4Y2Vw
dGlvbnMKK1BBU1MgbWF0cml4LnJvdGF0ZUZyb21WZWN0b3IoMCwgNCkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbWF0cml4LnJvdGF0ZUZyb21WZWN0b3IoNCwg
MCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbWF0cml4LmEg
PSAwIGlzIDAKK1BBU1MgbWF0cml4LmludmVyc2UoKSB0aHJldyBleGNlcHRpb24gSW52YWxpZFN0
YXRlRXJyb3I6IE1hdHJpeCBpcyBub3QgaW52ZXJ0aWJsZS4KKwogUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZG9t
L1NWR01hdHJpeC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9kb20vU1ZHTWF0
cml4Lmh0bWwJKHJldmlzaW9uIDI0MzQ5NikKKysrIExheW91dFRlc3RzL3N2Zy9kb20vU1ZHTWF0
cml4Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsMTkgKzcsNzIgQEAKIDxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CiA8c2NyaXB0PgotZGVzY3JpcHRp
b24oIlRoaXMgdGVzdCBjaGVja3MgdGhlIFNWR01hdHJpeCBBUEkiKTsKIAogdmFyIHN2Z0VsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3Zn
IiwgInN2ZyIpOwogdmFyIG1hdHJpeCA9IHN2Z0VsZW1lbnQuY3JlYXRlU1ZHTWF0cml4KCk7CiAK
K2Z1bmN0aW9uIG1hdHJpeFRvU3RyaW5nKG1hdHJpeCkKK3sKKwlyZXR1cm4gInsgYTogIiArIG1h
dHJpeC5hICsgIiwgYjogIiArIG1hdHJpeC5iICsgIiwgYzogIiArIG1hdHJpeC5jICsgIiwgZDog
IiArIG1hdHJpeC5kICsgIiwgZTogIiArIG1hdHJpeC5lICsgIiwgZjogIiArIG1hdHJpeC5mICsg
In0iOworfQorCitmdW5jdGlvbiBjaGVja0F0dHJpYnV0ZVNldHRpbmcobWF0cml4LCBuYW1lKSB7
CisJdmFyIHZhbHVlID0gbWF0cml4W25hbWVdOworCisJc2hvdWxkQmUoIm1hdHJpeC4iICsgbmFt
ZSArICIgPSBtYXRyaXgiLCAibWF0cml4Iik7CisJc2hvdWxkQmUoIm1hdHJpeC4iICsgbmFtZSwg
Ik5hTiIpOworCXNob3VsZEJlKCJtYXRyaXguIiArIG5hbWUgKyAiID0gMCIsICIwIik7CisJc2hv
dWxkQmUoIm1hdHJpeC4iICsgbmFtZSArICIgPSBzdmdFbGVtZW50IiwgInN2Z0VsZW1lbnQiKTsK
KwlzaG91bGRCZSgibWF0cml4LiIgKyBuYW1lLCAiTmFOIik7CisJc2hvdWxkQmUoIm1hdHJpeC4i
ICsgbmFtZSArICIgPSAwIiwgIjAiKTsKKwlzaG91bGRCZSgibWF0cml4LiIgKyBuYW1lICsgIiA9
ICdhU3RyaW5nJyIsICInYVN0cmluZyciKTsKKwlzaG91bGRCZSgibWF0cml4LiIgKyBuYW1lLCAi
TmFOIik7CisJLy9DaGVjayBhc3NpZ25pbmcgbnVsbCB3b3JrcyBhcyBleHBlY3RlZAorCXNob3Vs
ZEJlTnVsbCgibWF0cml4LiIgKyBuYW1lICsgIiA9IG51bGwiKTsKKwlzaG91bGRCZSgibWF0cml4
LiIgKyBuYW1lLCAiMCIpOworCS8vIFJlc2V0IHRvIHByZXZpb3VzIHZhbHVlLgorCXNob3VsZEJl
KCJtYXRyaXguIiArIG5hbWUgKyAiID0gIiArIHZhbHVlLnRvU3RyaW5nKCksIHZhbHVlLnRvU3Ry
aW5nKCkpOworfQorCitmdW5jdGlvbiBjaGVja01ldGhvZENhbGxpbmdPbmVNYXRyaXhBcmd1bWVu
dChtYXRyaXgsIG5hbWUpIHsKKwlkZWJ1ZygiIik7CisJZGVidWcoIkNoZWNrIGNhbGxpbmcgJyIg
KyBuYW1lICsgIicgd2l0aCBpbnZhbGlkIGFyZ3VtZW50cyIpOworCXNob3VsZFRocm93KCJtYXRy
aXguIiArIG5hbWUgKyAiKCkiKTsKKwlzaG91bGRUaHJvdygibWF0cml4LiIgKyBuYW1lICsgIih0
cnVlKSIpOworCXNob3VsZFRocm93KCJtYXRyaXguIiArIG5hbWUgKyAiKDIpIik7CisJc2hvdWxk
VGhyb3coIm1hdHJpeC4iICsgbmFtZSArICIoJ2FTdHJpbmcnKSIpOworCXNob3VsZFRocm93KCJt
YXRyaXguIiArIG5hbWUgKyAiKHN2Z0VsZW1lbnQpIik7Cit9CisKK2Z1bmN0aW9uIGNoZWNrTWV0
aG9kQ2FsbGluZ09uZU51bWVyaWNBcmd1bWVudChtYXRyaXgsIG5hbWUpIHsKKwlkZWJ1ZygiIik7
CisJZGVidWcoIkNoZWNrIGNhbGxpbmcgJyIgKyBuYW1lICsgIicgd2l0aCBpbnZhbGlkIGFyZ3Vt
ZW50cyIpOworCXNob3VsZFRocm93KCJtYXRyaXguIiArIG5hbWUgKyAiKCkiKTsKKwlzaG91bGRC
ZU5vbk51bGwoIm1hdHJpeC4iICsgbmFtZSArICIoJ2FTdHJpbmcnKSIpOworCXNob3VsZEJlTm9u
TnVsbCgibWF0cml4LiIgKyBuYW1lICsgIihzdmdFbGVtZW50KSIpOworfQorCitmdW5jdGlvbiBj
aGVja01ldGhvZENhbGxpbmdUd29OdW1lcmljQXJndW1lbnRzKG1hdHJpeCwgbmFtZSkgeworCWRl
YnVnKCIiKTsKKwlkZWJ1ZygiQ2hlY2sgY2FsbGluZyAnIiArIG5hbWUgKyAiJyB3aXRoIGludmFs
aWQgYXJndW1lbnRzIik7CisJc2hvdWxkVGhyb3coIm1hdHJpeC4iICsgbmFtZSArICIoKSIpOwor
CXNob3VsZFRocm93KCJtYXRyaXguIiArIG5hbWUgKyAiKHRydWUpIik7CisJc2hvdWxkVGhyb3co
Im1hdHJpeC4iICsgbmFtZSArICIoMikiKTsKKwlzaG91bGRUaHJvdygibWF0cml4LiIgKyBuYW1l
ICsgIignYVN0cmluZycpIik7CisJc2hvdWxkVGhyb3coIm1hdHJpeC4iICsgbmFtZSArICIoc3Zn
RWxlbWVudCkiKTsKKwlzaG91bGRCZU5vbk51bGwoIm1hdHJpeC4iICsgbmFtZSArICIoJ2FTdHJp
bmcnLCAnYVN0cmluZycpIik7CisJc2hvdWxkQmVOb25OdWxsKCJtYXRyaXguIiArIG5hbWUgKyAi
KHN2Z0VsZW1lbnQsIHN2Z0VsZW1lbnQpIik7CisJc2hvdWxkQmVOb25OdWxsKCJtYXRyaXguIiAr
IG5hbWUgKyAiKDIsICdhU3RyaW5nJykiKTsKKwlzaG91bGRCZU5vbk51bGwoIm1hdHJpeC4iICsg
bmFtZSArICIoMiwgc3ZnRWxlbWVudCkiKTsKKwlzaG91bGRCZU5vbk51bGwoIm1hdHJpeC4iICsg
bmFtZSArICIoJ2FTdHJpbmcnLCAyKSIpOworCXNob3VsZEJlTm9uTnVsbCgibWF0cml4LiIgKyBu
YW1lICsgIihzdmdFbGVtZW50LCAyKSIpOworfQorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNo
ZWNrcyB0aGUgU1ZHTWF0cml4IEFQSSIpOworCiBkZWJ1ZygiIik7CiBkZWJ1ZygiQ2hlY2sgaW5p
dGlhbCBtYXRyaXggdmFsdWVzIik7Ci1zaG91bGRCZSgibWF0cml4LmEiLCAiMSIpOwotc2hvdWxk
QmUoIm1hdHJpeC5iIiwgIjAiKTsKLXNob3VsZEJlKCJtYXRyaXguYyIsICIwIik7Ci1zaG91bGRC
ZSgibWF0cml4LmQiLCAiMSIpOwotc2hvdWxkQmUoIm1hdHJpeC5lIiwgIjAiKTsKLXNob3VsZEJl
KCJtYXRyaXguZiIsICIwIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm1hdHJpeFRvU3RyaW5n
KG1hdHJpeCkiLCAieyBhOiAxLCBiOiAwLCBjOiAwLCBkOiAxLCBlOiAwLCBmOiAwfSIpOwogCiBk
ZWJ1ZygiIik7CiBkZWJ1ZygiQ2hlY2sgYXNzaWduaW5nIG1hdHJpY2VzIik7CkBAIC0yOCwxNjkg
KzgxLDQ4IEBAIHNob3VsZEJlKCJtYXRyaXguZiA9IDIwMCIsICIyMDAiKTsKIAogZGVidWcoIiIp
OwogZGVidWcoIkNoZWNrIGFzc2lnbmluZyBpbnZhbGlkIG1hdHJpY2VzIik7Ci1zaG91bGRCZSgi
bWF0cml4LmEgPSBtYXRyaXgiLCAibWF0cml4Iik7Ci1zaG91bGRCZSgibWF0cml4LmEiLCAiTmFO
Iik7Ci1zaG91bGRCZSgibWF0cml4LmEgPSAwIiwgIjAiKTsKLXNob3VsZEJlKCJtYXRyaXguYSA9
IHN2Z0VsZW1lbnQiLCAic3ZnRWxlbWVudCIpOwotc2hvdWxkQmUoIm1hdHJpeC5hIiwgIk5hTiIp
Owotc2hvdWxkQmUoIm1hdHJpeC5hID0gMCIsICIwIik7Ci1zaG91bGRCZSgibWF0cml4LmEgPSAn
YVN0cmluZyciLCAiJ2FTdHJpbmcnIik7Ci1zaG91bGRCZSgibWF0cml4LmEiLCAiTmFOIik7Ci0v
LyBSZXNldCB0byBwcmV2aW91cyB2YWx1ZS4KLXNob3VsZEJlKCJtYXRyaXguYSA9IDIiLCAiMiIp
OworY2hlY2tBdHRyaWJ1dGVTZXR0aW5nKG1hdHJpeCwgImEiKTsKK2NoZWNrQXR0cmlidXRlU2V0
dGluZyhtYXRyaXgsICJiIik7CitjaGVja0F0dHJpYnV0ZVNldHRpbmcobWF0cml4LCAiYyIpOwor
Y2hlY2tBdHRyaWJ1dGVTZXR0aW5nKG1hdHJpeCwgImQiKTsKK2NoZWNrQXR0cmlidXRlU2V0dGlu
ZyhtYXRyaXgsICJlIik7CitjaGVja0F0dHJpYnV0ZVNldHRpbmcobWF0cml4LCAiZiIpOwogCi1z
aG91bGRCZSgibWF0cml4LmIgPSBtYXRyaXgiLCAibWF0cml4Iik7Ci1zaG91bGRCZSgibWF0cml4
LmIiLCAiTmFOIik7Ci1zaG91bGRCZSgibWF0cml4LmIgPSAwIiwgIjAiKTsKLXNob3VsZEJlKCJt
YXRyaXguYiA9IHN2Z0VsZW1lbnQiLCAic3ZnRWxlbWVudCIpOwotc2hvdWxkQmUoIm1hdHJpeC5i
IiwgIk5hTiIpOwotc2hvdWxkQmUoIm1hdHJpeC5iID0gMCIsICIwIik7Ci1zaG91bGRCZSgibWF0
cml4LmIgPSAnYVN0cmluZyciLCAiJ2FTdHJpbmcnIik7Ci1zaG91bGRCZSgibWF0cml4LmIiLCAi
TmFOIik7Ci0vLyBSZXNldCB0byBwcmV2aW91cyB2YWx1ZS4KLXNob3VsZEJlKCJtYXRyaXguYiA9
IDAiLCAiMCIpOwotCi1zaG91bGRCZSgibWF0cml4LmMgPSBtYXRyaXgiLCAibWF0cml4Iik7Ci1z
aG91bGRCZSgibWF0cml4LmMiLCAiTmFOIik7Ci1zaG91bGRCZSgibWF0cml4LmMgPSAwIiwgIjAi
KTsKLXNob3VsZEJlKCJtYXRyaXguYyA9IHN2Z0VsZW1lbnQiLCAic3ZnRWxlbWVudCIpOwotc2hv
dWxkQmUoIm1hdHJpeC5jIiwgIk5hTiIpOwotc2hvdWxkQmUoIm1hdHJpeC5jID0gMCIsICIwIik7
Ci1zaG91bGRCZSgibWF0cml4LmMgPSAnYVN0cmluZyciLCAiJ2FTdHJpbmcnIik7Ci1zaG91bGRC
ZSgibWF0cml4LmMiLCAiTmFOIik7Ci0vLyBSZXNldCB0byBwcmV2aW91cyB2YWx1ZS4KLXNob3Vs
ZEJlKCJtYXRyaXguYyA9IDAiLCAiMCIpOwotCi1zaG91bGRCZSgibWF0cml4LmQgPSBtYXRyaXgi
LCAibWF0cml4Iik7Ci1zaG91bGRCZSgibWF0cml4LmQiLCAiTmFOIik7Ci1zaG91bGRCZSgibWF0
cml4LmQgPSAwIiwgIjAiKTsKLXNob3VsZEJlKCJtYXRyaXguZCA9IHN2Z0VsZW1lbnQiLCAic3Zn
RWxlbWVudCIpOwotc2hvdWxkQmUoIm1hdHJpeC5kIiwgIk5hTiIpOwotc2hvdWxkQmUoIm1hdHJp
eC5kID0gMCIsICIwIik7Ci1zaG91bGRCZSgibWF0cml4LmQgPSAnYVN0cmluZyciLCAiJ2FTdHJp
bmcnIik7Ci1zaG91bGRCZSgibWF0cml4LmQiLCAiTmFOIik7Ci0vLyBSZXNldCB0byBwcmV2aW91
cyB2YWx1ZS4KLXNob3VsZEJlKCJtYXRyaXguZCA9IDEiLCAiMSIpOwotCi1zaG91bGRCZSgibWF0
cml4LmUgPSBtYXRyaXgiLCAibWF0cml4Iik7Ci1zaG91bGRCZSgibWF0cml4LmUiLCAiTmFOIik7
Ci1zaG91bGRCZSgibWF0cml4LmUgPSAwIiwgIjAiKTsKLXNob3VsZEJlKCJtYXRyaXguZSA9IHN2
Z0VsZW1lbnQiLCAic3ZnRWxlbWVudCIpOwotc2hvdWxkQmUoIm1hdHJpeC5lIiwgIk5hTiIpOwot
c2hvdWxkQmUoIm1hdHJpeC5lID0gMCIsICIwIik7Ci1zaG91bGRCZSgibWF0cml4LmUgPSAnYVN0
cmluZyciLCAiJ2FTdHJpbmcnIik7Ci1zaG91bGRCZSgibWF0cml4LmUiLCAiTmFOIik7Ci0vLyBS
ZXNldCB0byBwcmV2aW91cyB2YWx1ZS4KLXNob3VsZEJlKCJtYXRyaXguZSA9IDAiLCAiMCIpOwot
Ci1zaG91bGRCZSgibWF0cml4LmYgPSBtYXRyaXgiLCAibWF0cml4Iik7Ci1zaG91bGRCZSgibWF0
cml4LmYiLCAiTmFOIik7Ci1zaG91bGRCZSgibWF0cml4LmYgPSAwIiwgIjAiKTsKLXNob3VsZEJl
KCJtYXRyaXguZiA9IHN2Z0VsZW1lbnQiLCAic3ZnRWxlbWVudCIpOwotc2hvdWxkQmUoIm1hdHJp
eC5mIiwgIk5hTiIpOwotc2hvdWxkQmUoIm1hdHJpeC5mID0gMCIsICIwIik7Ci1zaG91bGRCZSgi
bWF0cml4LmYgPSAnYVN0cmluZyciLCAiJ2FTdHJpbmcnIik7Ci1zaG91bGRCZSgibWF0cml4LmYi
LCAiTmFOIik7Ci0vLyBSZXNldCB0byBwcmV2aW91cyB2YWx1ZS4KLXNob3VsZEJlKCJtYXRyaXgu
ZiA9IDIwMCIsICIyMDAiKTsKK2RlYnVnKCIiKTsKK2RlYnVnKCJDaGVjayB0aGF0IHRoZSBtYXRy
aXggaXMgc3RpbGwgY29udGFpbmluZyB0aGUgY29ycmVjdCB2YWx1ZXMiKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygibWF0cml4VG9TdHJpbmcobWF0cml4KSIsICJ7IGE6IDIsIGI6IDAsIGM6IDAs
IGQ6IDEsIGU6IDAsIGY6IDIwMH0iKTsKKworY2hlY2tNZXRob2RDYWxsaW5nT25lTWF0cml4QXJn
dW1lbnQobWF0cml4LCAibXVsdGlwbHkiKQorY2hlY2tNZXRob2RDYWxsaW5nVHdvTnVtZXJpY0Fy
Z3VtZW50cyhtYXRyaXgsICJ0cmFuc2xhdGUiKTsKK2NoZWNrTWV0aG9kQ2FsbGluZ09uZU51bWVy
aWNBcmd1bWVudChtYXRyaXgsICJzY2FsZSIpOworY2hlY2tNZXRob2RDYWxsaW5nVHdvTnVtZXJp
Y0FyZ3VtZW50cyhtYXRyaXgsICJzY2FsZU5vblVuaWZvcm0iKTsKK2NoZWNrTWV0aG9kQ2FsbGlu
Z09uZU51bWVyaWNBcmd1bWVudChtYXRyaXgsICJyb3RhdGUiKTsKK2NoZWNrTWV0aG9kQ2FsbGlu
Z1R3b051bWVyaWNBcmd1bWVudHMobWF0cml4LCAicm90YXRlRnJvbVZlY3RvciIpOworY2hlY2tN
ZXRob2RDYWxsaW5nT25lTnVtZXJpY0FyZ3VtZW50KG1hdHJpeCwgInNrZXdYIik7CitjaGVja01l
dGhvZENhbGxpbmdPbmVOdW1lcmljQXJndW1lbnQobWF0cml4LCAic2tld1kiKTsKKworZGVidWco
IiIpOworZGVidWcoIkNoZWNrIGNhbGxpbmcgU1ZHTWF0cml4IG1ldGhvZHMgd2l0aCB2YWxpZCBh
cmd1bWVudHMiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibWF0cml4VG9TdHJpbmcobWF0cml4
LnRyYW5zbGF0ZSgxMCwgMjApKSIsICJ7IGE6IDIsIGI6IDAsIGM6IDAsIGQ6IDEsIGU6IDIwLCBm
OiAyMjB9Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm1hdHJpeFRvU3RyaW5nKG1hdHJpeC5z
Y2FsZSg1KSkiLCAieyBhOiAxMCwgYjogMCwgYzogMCwgZDogNSwgZTogMCwgZjogMjAwfSIpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJtYXRyaXhUb1N0cmluZyhtYXRyaXguc2NhbGVOb25Vbmlm
b3JtKDIsIDMpKSIsICJ7IGE6IDQsIGI6IDAsIGM6IDAsIGQ6IDMsIGU6IDAsIGY6IDIwMH0iKTsK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygibWF0cml4VG9TdHJpbmcobWF0cml4LnNrZXdYKDkwKSki
LCAieyBhOiAyLCBiOiAwLCBjOiAzMjY2MjQ3ODcwNjM5MDc0MCwgZDogMSwgZTogMCwgZjogMjAw
fSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJtYXRyaXhUb1N0cmluZyhtYXRyaXguc2tld1ko
OTApKSIsICJ7IGE6IDIsIGI6IDE2MzMxMjM5MzUzMTk1MzcwLCBjOiAwLCBkOiAxLCBlOiAwLCBm
OiAyMDB9Iik7CiAKIGRlYnVnKCIiKTsKIGRlYnVnKCJDaGVjayB0aGF0IHRoZSBtYXRyaXggaXMg
c3RpbGwgY29udGFpbmluZyB0aGUgY29ycmVjdCB2YWx1ZXMiKTsKLXNob3VsZEJlKCJtYXRyaXgu
YSIsICIyIik7Ci1zaG91bGRCZSgibWF0cml4LmIiLCAiMCIpOwotc2hvdWxkQmUoIm1hdHJpeC5j
IiwgIjAiKTsKLXNob3VsZEJlKCJtYXRyaXguZCIsICIxIik7Ci1zaG91bGRCZSgibWF0cml4LmUi
LCAiMCIpOwotc2hvdWxkQmUoIm1hdHJpeC5mIiwgIjIwMCIpOwotCi1kZWJ1ZygiIik7Ci1kZWJ1
ZygiQ2hlY2sgYXNzaWduaW5nIG51bGwgd29ya3MgYXMgZXhwZWN0ZWQiKTsKLXNob3VsZEJlTnVs
bCgibWF0cml4LmYgPSBudWxsIik7Ci1zaG91bGRCZSgibWF0cml4LmEiLCAiMiIpOwotc2hvdWxk
QmUoIm1hdHJpeC5iIiwgIjAiKTsKLXNob3VsZEJlKCJtYXRyaXguYyIsICIwIik7Ci1zaG91bGRC
ZSgibWF0cml4LmQiLCAiMSIpOwotc2hvdWxkQmUoIm1hdHJpeC5lIiwgIjAiKTsKLXNob3VsZEJl
KCJtYXRyaXguZiIsICIwIik7Ci0KLWRlYnVnKCIiKTsKLWRlYnVnKCJDaGVjayBjYWxsaW5nICdt
dWx0aXBseScgd2l0aCBpbnZhbGlkIGFyZ3VtZW50cyIpOwotc2hvdWxkVGhyb3coIm1hdHJpeC5t
dWx0aXBseSgpIik7Ci1zaG91bGRUaHJvdygibWF0cml4Lm11bHRpcGx5KHRydWUpIik7Ci1zaG91
bGRUaHJvdygibWF0cml4Lm11bHRpcGx5KDIpIik7Ci1zaG91bGRUaHJvdygibWF0cml4Lm11bHRp
cGx5KCdhU3RyaW5nJykiKTsKLXNob3VsZFRocm93KCJtYXRyaXgubXVsdGlwbHkoc3ZnRWxlbWVu
dCkiKTsKLQotZGVidWcoIiIpOwotZGVidWcoIkNoZWNrIGNhbGxpbmcgJ3RyYW5zbGF0ZScgd2l0
aCBpbnZhbGlkIGFyZ3VtZW50cyIpOwotc2hvdWxkVGhyb3coIm1hdHJpeC50cmFuc2xhdGUoKSIp
Owotc2hvdWxkVGhyb3coIm1hdHJpeC50cmFuc2xhdGUodHJ1ZSkiKTsKLXNob3VsZFRocm93KCJt
YXRyaXgudHJhbnNsYXRlKDIpIik7Ci1zaG91bGRUaHJvdygibWF0cml4LnRyYW5zbGF0ZSgnYVN0
cmluZycpIik7Ci1zaG91bGRUaHJvdygibWF0cml4LnRyYW5zbGF0ZShzdmdFbGVtZW50KSIpOwot
Ly8gVGhlIGZvbGxvd2luZyBzdHJpbmcgYW5kIG9iamVjdCBhcmd1bWVudHMgY29udmVydCB0byBO
YU4KLS8vIHBlciBFQ01BLTI2MiwgOS4zLCAiVG9OdW1iZXIiLgotc2hvdWxkQmVOb25OdWxsKCJt
YXRyaXgudHJhbnNsYXRlKCdhU3RyaW5nJywgJ2FTdHJpbmcnKSIpOwotc2hvdWxkQmVOb25OdWxs
KCJtYXRyaXgudHJhbnNsYXRlKHN2Z0VsZW1lbnQsIHN2Z0VsZW1lbnQpIik7Ci1zaG91bGRCZU5v
bk51bGwoIm1hdHJpeC50cmFuc2xhdGUoMiwgJ2FTdHJpbmcnKSIpOwotc2hvdWxkQmVOb25OdWxs
KCJtYXRyaXgudHJhbnNsYXRlKDIsIHN2Z0VsZW1lbnQpIik7Ci1zaG91bGRCZU5vbk51bGwoIm1h
dHJpeC50cmFuc2xhdGUoJ2FTdHJpbmcnLCAyKSIpOwotc2hvdWxkQmVOb25OdWxsKCJtYXRyaXgu
dHJhbnNsYXRlKHN2Z0VsZW1lbnQsIDIpIik7Ci0KLWRlYnVnKCIiKTsKLWRlYnVnKCJDaGVjayBj
YWxsaW5nICdzY2FsZScgd2l0aCBpbnZhbGlkIGFyZ3VtZW50cyIpOwotc2hvdWxkVGhyb3coIm1h
dHJpeC5zY2FsZSgpIik7Ci1zaG91bGRCZU5vbk51bGwoIm1hdHJpeC5zY2FsZSgnYVN0cmluZycp
Iik7Ci1zaG91bGRCZU5vbk51bGwoIm1hdHJpeC5zY2FsZShzdmdFbGVtZW50KSIpOwotCi0KLWRl
YnVnKCIiKTsKLWRlYnVnKCJDaGVjayBjYWxsaW5nICdzY2FsZU5vblVuaWZvcm0nIHdpdGggaW52
YWxpZCBhcmd1bWVudHMiKTsKLXNob3VsZFRocm93KCJtYXRyaXguc2NhbGVOb25Vbmlmb3JtKCki
KTsKLXNob3VsZFRocm93KCJtYXRyaXguc2NhbGVOb25Vbmlmb3JtKHRydWUpIik7Ci1zaG91bGRU
aHJvdygibWF0cml4LnNjYWxlTm9uVW5pZm9ybSgyKSIpOwotc2hvdWxkVGhyb3coIm1hdHJpeC5z
Y2FsZU5vblVuaWZvcm0oJ2FTdHJpbmcnKSIpOwotc2hvdWxkVGhyb3coIm1hdHJpeC5zY2FsZU5v
blVuaWZvcm0oc3ZnRWxlbWVudCkiKTsKLXNob3VsZEJlTm9uTnVsbCgibWF0cml4LnNjYWxlTm9u
VW5pZm9ybSgnYVN0cmluZycsICdhU3RyaW5nJykiKTsKLXNob3VsZEJlTm9uTnVsbCgibWF0cml4
LnNjYWxlTm9uVW5pZm9ybShzdmdFbGVtZW50LCBzdmdFbGVtZW50KSIpOwotc2hvdWxkQmVOb25O
dWxsKCJtYXRyaXguc2NhbGVOb25Vbmlmb3JtKDIsICdhU3RyaW5nJykiKTsKLXNob3VsZEJlTm9u
TnVsbCgibWF0cml4LnNjYWxlTm9uVW5pZm9ybSgyLCBzdmdFbGVtZW50KSIpOwotc2hvdWxkQmVO
b25OdWxsKCJtYXRyaXguc2NhbGVOb25Vbmlmb3JtKCdhU3RyaW5nJywgMikiKTsKLXNob3VsZEJl
Tm9uTnVsbCgibWF0cml4LnNjYWxlTm9uVW5pZm9ybShzdmdFbGVtZW50LCAyKSIpOwotCi1kZWJ1
ZygiIik7Ci1kZWJ1ZygiQ2hlY2sgY2FsbGluZyAncm90YXRlJyB3aXRoIGludmFsaWQgYXJndW1l
bnRzIik7Ci1zaG91bGRUaHJvdygibWF0cml4LnJvdGF0ZSgpIik7Ci1zaG91bGRCZU5vbk51bGwo
Im1hdHJpeC5yb3RhdGUoJ2FTdHJpbmcnKSIpOwotc2hvdWxkQmVOb25OdWxsKCJtYXRyaXgucm90
YXRlKHN2Z0VsZW1lbnQpIik7Ci0KLWRlYnVnKCIiKTsKLWRlYnVnKCJDaGVjayBjYWxsaW5nICdy
b3RhdGVGcm9tVmVjdG9yJyB3aXRoIGludmFsaWQgYXJndW1lbnRzIik7Ci1zaG91bGRUaHJvdygi
bWF0cml4LnJvdGF0ZUZyb21WZWN0b3IoKSIpOwotc2hvdWxkVGhyb3coIm1hdHJpeC5yb3RhdGVG
cm9tVmVjdG9yKHRydWUpIik7Ci1zaG91bGRUaHJvdygibWF0cml4LnJvdGF0ZUZyb21WZWN0b3Io
MikiKTsKLXNob3VsZFRocm93KCJtYXRyaXgucm90YXRlRnJvbVZlY3RvcignYVN0cmluZycpIik7
Ci1zaG91bGRUaHJvdygibWF0cml4LnJvdGF0ZUZyb21WZWN0b3Ioc3ZnRWxlbWVudCkiKTsKLXNo
b3VsZEJlTm9uTnVsbCgibWF0cml4LnJvdGF0ZUZyb21WZWN0b3IoJ2FTdHJpbmcnLCAnYVN0cmlu
ZycpIik7Ci1zaG91bGRCZU5vbk51bGwoIm1hdHJpeC5yb3RhdGVGcm9tVmVjdG9yKHN2Z0VsZW1l
bnQsIHN2Z0VsZW1lbnQpIik7Ci1zaG91bGRCZU5vbk51bGwoIm1hdHJpeC5yb3RhdGVGcm9tVmVj
dG9yKDIsICdhU3RyaW5nJykiKTsKLXNob3VsZEJlTm9uTnVsbCgibWF0cml4LnJvdGF0ZUZyb21W
ZWN0b3IoMiwgc3ZnRWxlbWVudCkiKTsKLXNob3VsZEJlTm9uTnVsbCgibWF0cml4LnJvdGF0ZUZy
b21WZWN0b3IoJ2FTdHJpbmcnLCAyKSIpOwotc2hvdWxkQmVOb25OdWxsKCJtYXRyaXgucm90YXRl
RnJvbVZlY3RvcihzdmdFbGVtZW50LCAyKSIpOwotCi1kZWJ1ZygiIik7Ci1kZWJ1ZygiQ2hlY2sg
Y2FsbGluZyAnc2tld1gnIHdpdGggaW52YWxpZCBhcmd1bWVudHMiKTsKLXNob3VsZFRocm93KCJt
YXRyaXguc2tld1goKSIpOwotc2hvdWxkQmVOb25OdWxsKCJtYXRyaXguc2tld1goJ2FTdHJpbmcn
KSIpOwotc2hvdWxkQmVOb25OdWxsKCJtYXRyaXguc2tld1goc3ZnRWxlbWVudCkiKTsKLQotZGVi
dWcoIiIpOwotZGVidWcoIkNoZWNrIGNhbGxpbmcgJ3NrZXdZJyB3aXRoIGludmFsaWQgYXJndW1l
bnRzIik7Ci1zaG91bGRUaHJvdygibWF0cml4LnNrZXdZKCkiKTsKLXNob3VsZEJlTm9uTnVsbCgi
bWF0cml4LnNrZXdZKCdhU3RyaW5nJykiKTsKLXNob3VsZEJlTm9uTnVsbCgibWF0cml4LnNrZXdZ
KHN2Z0VsZW1lbnQpIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm1hdHJpeFRvU3RyaW5nKG1h
dHJpeCkiLCAieyBhOiAyLCBiOiAwLCBjOiAwLCBkOiAxLCBlOiAwLCBmOiAyMDB9Iik7CisKK2Rl
YnVnKCIiKTsKK2RlYnVnKCJDYWxsaW5nIG1ldGhvZHMgdGhhdCB0aHJvdyBleGNlcHRpb25zIik7
CitzaG91bGRUaHJvdygibWF0cml4LnJvdGF0ZUZyb21WZWN0b3IoMCwgNCkiKTsKK3Nob3VsZFRo
cm93KCJtYXRyaXgucm90YXRlRnJvbVZlY3Rvcig0LCAwKSIpOworc2hvdWxkQmUoIm1hdHJpeC5h
ID0gMCIsICIwIik7CitzaG91bGRUaHJvdygibWF0cml4LmludmVyc2UoKSIpOwogCitkZWJ1Zygi
Iik7CiBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCiA8L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366410</attachid>
            <date>2019-04-01 11:20:50 -0700</date>
            <delta_ts>2019-04-01 11:46:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196263-20190401112050.patch</filename>
            <type>text/plain</type>
            <size>43265</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNjk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDViYzlhMjUzMzJkYzFm
ODNlMzhiODM4OWQ4ZDIyOWY3NWRlODI0Ni4uNTMzOTdhMWMwNWQzYWUzYjRkZDQxYjZkNDY4YzRi
ZGQxMmEyYTA4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDE5LTA0LTAxICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgU1ZHTWF0
cml4LklETCBtZXRob2RzIGRvIG5vdCBjb25mb3JtIHRvIHRoZSBzcGVjcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2MjYzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEkgdGhpbmsgdGhlcmUgd2FzIGEgbWlz
Y29uY2VwdGlvbiBhYm91dCB0aGVzZSBmdW5jdGlvbnMuIFRoZSBzcGVjcyBsaW5rCisgICAgICAg
IGlzOiBodHRwczovL3d3dy53My5vcmcvVFIvU1ZHMTEvY29vcmRzLmh0bWwjSW50ZXJmYWNlU1ZH
TWF0cml4LgorCisgICAgICAgIE5vdGljZSB0aGF0IHRoZSBzcGVjcyBkb2VzIG5vdCBzdGF0ZSB0
aGF0IHRoZSBTVkdNZXRob2QgbWV0aG9kcyBzaG91bGQKKyAgICAgICAgcmFpc2UgdGhlIGV4Y2Vw
dGlvbiBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaWYgdGhlIG9iamVjdCBpcyByZWFkCisg
ICAgICAgIG9ubHkuIE5vdGljZSBzZXR0aW5nIHRoZSBhdHRyaWJ1dGUgJ2EnIGZvciBleGFtcGxl
IG1heSByYWlzZSB0aGlzCisgICAgICAgIGV4Y2VwdGlvbi4gVGhlcmVmb3JlLCBJIHRoaW5rIHRo
ZSBzcGVjcyB3YW50ZWQgdG8gbWFrZSB0aGVzZSBvcGVyYXRpb25zCisgICAgICAgIHJlYWQtb25s
eS4gTm9uZSBvZiB0aGUgbWV0aG9kcyBzaG91bGQgcmFpc2UgdGhlIGV4Y2VwdGlvbgorICAgICAg
ICBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIuCisKKyAgICAgICAgSW4gZmFjdCB0aGUgU1ZH
IGNvZGUgd2FzIGRvaW5nIHRoZSByaWdodCB0aGluZy4gRm9yIGV4YW1wbGUgU1ZHTWF0cml4Ojpz
Y2FsZSgpCisgICAgICAgIHdhcyBjYWxsaW5nIFNWR01hdHJpeFZhbHVlOjpzY2FsZSgpIHdoaWNo
IHdhcyBtYWtpbmcgYSBjb3B5IG9mIGl0c2VsZiwKKyAgICAgICAgYXBwbHlpbmcgdGhlIHNjYWxl
IG9uIHRoZSBjb3B5IGFuZCB0aGVuIHJldHVybmluZyB0aGUgY29weS4gV2hlbiAKKyAgICAgICAg
U1ZHTWF0cml4OjpzY2FsZSgpIHJlY2VpdmVzIHRoZSBjb3B5IG9mIHRoZSBTVkdNYXRyaXhWYWx1
ZSBpdCBjcmVhdGVzIGFuZAorICAgICAgICByZXR1cm5zIGEgbmV3IFNWR01hdHJpeCBvYmplY3Qu
CisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogc3ZnL1NWR01hdHJpeC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjphIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR01hdHJpeDo6YiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmMg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpkIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR01hdHJpeDo6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRy
aXg6OmYgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjptdWx0aXBseSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmludmVyc2UgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojp0cmFuc2xhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHTWF0cml4OjpzY2FsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6
OnNjYWxlTm9uVW5pZm9ybSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnJv
dGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnJvdGF0ZUZyb21WZWN0
b3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpmbGlwWCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmZsaXBZIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR01hdHJpeDo6c2tld1ggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4
Ojpza2V3WSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmEpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpiKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNWR01hdHJpeDo6Yyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRy
aXg6OmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjplKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6Zik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTVkdNYXRyaXg6Om11bHRpcGx5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR01hdHJpeDo6aW52ZXJzZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRy
aXg6OnRyYW5zbGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnNj
YWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2NhbGVOb25Vbmlm
b3JtKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6cm90YXRlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6cm90YXRlRnJvbVZlY3Rvcik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmZsaXBYKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6ZmxpcFkpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTWF0cml4Ojpza2V3WCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdN
YXRyaXg6OnNrZXdZKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6U1ZH
TWF0cml4KTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHTWF0cml4LmlkbDoKKyAgICAgICAg
KiBzdmcvU1ZHTWF0cml4VmFsdWUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNm
b3JtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybTo6bWF0cml4KToKKyAgICAg
ICAgKiBzdmcvU1ZHVHJhbnNmb3JtRGlzdGFuY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
VHJhbnNmb3JtRGlzdGFuY2U6OmFkZFRvU1ZHVHJhbnNmb3JtIGNvbnN0KToKKyAgICAgICAgKiBz
dmcvU1ZHVHJhbnNmb3JtVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybVZh
bHVlOjptYXRyaXggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtVmFsdWU6
Om1hdHJpeCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1WYWx1ZTo6c3ZnTWF0cml4
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPT0pOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6b3BlcmF0b3IhPSk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL3Byb3Bl
cnRpZXMvU1ZHTWF0cml4VGVhck9mZi5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1By
b3BlcnR5VGVhck9mZi5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmOjpw
cm9wZXJ0eVJlZmVyZW5jZSBjb25zdCk6CisKIDIwMTktMDQtMDEgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gUmVmYWN0b3Igc29tZSBsb2dp
YyBmb3IgaW5zZXJ0aW5nIHBhc3RlZCBvciBkcm9wcGVkIHZpcnR1YWwgY2FyZCBmaWxlcyBhcyBh
dHRhY2htZW50IGVsZW1lbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDQwMTdkNTAyODhmMjUzM2I1YjhiYjgxODZkODNkYTRl
MGQ3YzVlMy4uYTMyNjlmNGY2NTA4NzU4ZDIyNTc1NTg4MjRiZTJhYzMyZDhlYjgzNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MjMzNyw3ICsyMzM3LDYgQEAKIAkJN0NFNThENEExREQ2NEE1QjAwMTI4NTUyIC8qIFNWR1BvaW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ0
OTFERDY0QTVCMDAxMjg1NTIgLyogU1ZHUG9pbnQuaCAqLzsgfTsKIAkJN0NFNThENTAxREQ2OUEx
RTAwMTI4NTUyIC8qIFNWR051bWJlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0NFNThENEYxREQ2OUExRTAwMTI4NTUyIC8qIFNWR051bWJlci5oICov
OyB9OwogCQk3Q0U1OEQ1ODFERDdEOTZEMDAxMjg1NTIgLyogU1ZHVHJhbnNmb3JtVmFsdWUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTU4RDU2MURE
N0Q5NkQwMDEyODU1MiAvKiBTVkdUcmFuc2Zvcm1WYWx1ZS5oICovOyB9OwotCQk3Q0U1OEQ1QzFE
RDdFQzlDMDAxMjg1NTIgLyogU1ZHTWF0cml4VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTU4RDVCMUREN0VDOUMwMDEyODU1MiAvKiBTVkdN
YXRyaXhWYWx1ZS5oICovOyB9OwogCQk3Q0U2ODM0NDE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1l
c3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3Q0U2ODM0MjE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VI
YW5kbGVyRGVzY3JpcHRvci5jcHAgKi87IH07CiAJCTdDRTY4MzQ1MTkyMTQzQTgwMEY0RDkyOCAv
KiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U2ODM0MzE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1l
c3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTdDRTY4MzQ3MTkyMTgyMTUwMEY0RDkyOCAvKiBVc2VyTWVzc2Fn
ZUhhbmRsZXJEZXNjcmlwdG9yVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdDRTY4MzQ2MTkyMTgyMTUwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhh
bmRsZXJEZXNjcmlwdG9yVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtOTg3NSw3ICs5ODc0LDYgQEAKIAkJN0NFNThENTUxREQ3RDk2RDAw
MTI4NTUyIC8qIFNWR1RyYW5zZm9ybVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNWR1RyYW5zZm9ybVZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0NFNThENTYxREQ3RDk2RDAwMTI4NTUyIC8qIFNWR1RyYW5zZm9ybVZhbHVlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1RyYW5zZm9ybVZhbHVlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRTU4RDU5MUREN0RFNTIwMDEyODU1MiAvKiBT
VkdUcmFuc2Zvcm0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZH
VHJhbnNmb3JtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0NFNThENUIxREQ3
RUM5QzAwMTI4NTUyIC8qIFNWR01hdHJpeFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNWR01hdHJpeFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdDRTY4MzQyMTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9y
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJNZXNzYWdlSGFu
ZGxlckRlc2NyaXB0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0U2ODM0
MzE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9y
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRTY4MzQ2MTkyMTgyMTUwMEY0RDky
OCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvclR5cGVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNDAzMCw3ICsyNDAyOCw2IEBACiAJCQkJQjIy
Mjc4QjIwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR01hc2tFbGVtZW50LmlkbCAqLywKIAkJCQkwODA2
RTU3OTEyODkzMDQ1MDA3Q0VEMzIgLyogU1ZHTWF0cml4LmggKi8sCiAJCQkJQjIyMjc4QjMwRDAw
QkYyMDAwNzFCNzgyIC8qIFNWR01hdHJpeC5pZGwgKi8sCi0JCQkJN0NFNThENUIxREQ3RUM5QzAw
MTI4NTUyIC8qIFNWR01hdHJpeFZhbHVlLmggKi8sCiAJCQkJQjIyMjc4QjQwRDAwQkYyMDAwNzFC
NzgyIC8qIFNWR01ldGFkYXRhRWxlbWVudC5jcHAgKi8sCiAJCQkJQjIyMjc4QjUwRDAwQkYyMDAw
NzFCNzgyIC8qIFNWR01ldGFkYXRhRWxlbWVudC5oICovLAogCQkJCUIyMjI3OEI2MEQwMEJGMjAw
MDcxQjc4MiAvKiBTVkdNZXRhZGF0YUVsZW1lbnQuaWRsICovLApAQCAtMzE2NDAsNyArMzE2Mzcs
NiBAQAogCQkJCUIyMjI3QTQ3MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNYXNrRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDgwNkU1N0ExMjg5MzA0NTAwN0NFRDMyIC8qIFNWR01hdHJpeC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDhDQTNENDQxMjg5NEEzODAwRkZGMjYwIC8qIFNWR01hdHJp
eFRlYXJPZmYuaCBpbiBIZWFkZXJzICovLAotCQkJCTdDRTU4RDVDMUREN0VDOUMwMDEyODU1MiAv
KiBTVkdNYXRyaXhWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNEIwRDAwQkYyMjAw
NzFCNzgyIC8qIFNWR01ldGFkYXRhRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJBMUYy
QjEwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyMjI3QTRFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNUGF0aEVsZW1lbnQuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5oCmluZGV4IDYwMzI1MmEwMTliZTE4MGQ1
NWExOWE3YTdiNmYxZWE4YzQ1NzBhZGIuLjM0Yzc5ODJkNjBkMWE4ZmFhYzRmYTY3ODQwMTc4Njll
NWJmMTdmOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXRyaXguaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjUsMjAgKzI1LDIzIEBACiAKICNwcmFn
bWEgb25jZQogCi0jaW5jbHVkZSAiU1ZHTWF0cml4VmFsdWUuaCIKKyNpbmNsdWRlICJBZmZpbmVU
cmFuc2Zvcm0uaCIKICNpbmNsdWRlICJTVkdQcm9wZXJ0eVRlYXJPZmYuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgY2xhc3Mgb25jZSBTVkdNYXRyaXgg
YmVjb21lcyBhbiBhbGlhcyB0byBET01NYXRyaXguCi1jbGFzcyBTVkdNYXRyaXggOiBwdWJsaWMg
U1ZHUHJvcGVydHlUZWFyT2ZmPFNWR01hdHJpeFZhbHVlPiB7CitjbGFzcyBTVkdNYXRyaXggOiBw
dWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPEFmZmluZVRyYW5zZm9ybT4geworICAgIHVzaW5nIEJh
c2UgPSBTVkdQcm9wZXJ0eVRlYXJPZmY8QWZmaW5lVHJhbnNmb3JtPjsKKyAgICB1c2luZyBCYXNl
OjpCYXNlOworCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdNYXRyaXg+IGNyZWF0ZShTVkdM
ZWdhY3lBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUg
cm9sZSwgU1ZHTWF0cml4VmFsdWUmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHTWF0cml4PiBj
cmVhdGUoU1ZHTGVnYWN5QW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJv
cGVydHlSb2xlIHJvbGUsIEFmZmluZVRyYW5zZm9ybSYgdmFsdWUpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdNYXRyaXgoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFs
dWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTWF0cml4KCZhbmltYXRlZFBy
b3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHTWF0cml4
PiBjcmVhdGUoY29uc3QgU1ZHTWF0cml4VmFsdWUmIGluaXRpYWxWYWx1ZSA9IHsgfSkKKyAgICBz
dGF0aWMgUmVmPFNWR01hdHJpeD4gY3JlYXRlKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgaW5pdGlh
bFZhbHVlID0geyB9KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTWF0
cml4KGluaXRpYWxWYWx1ZSkpOwogICAgIH0KQEAgLTUwLDcgKzUzLDcgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gY3JlYXRlKGluaXRpYWxWYWx1ZS5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAg
ICAgfQogCi0gICAgZG91YmxlIGEoKQorICAgIGRvdWJsZSBhKCkgY29uc3QKICAgICB7CiAgICAg
ICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLmEoKTsKICAgICB9CkBAIC02Niw3ICs2OSw3
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKLSAgICBkb3VibGUgYigp
CisgICAgZG91YmxlIGIoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVm
ZXJlbmNlKCkuYigpOwogICAgIH0KQEAgLTgyLDcgKzg1LDcgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4geyB9OwogICAgIH0KIAotICAgIGRvdWJsZSBjKCkKKyAgICBkb3VibGUgYygpIGNvbnN0
CiAgICAgewogICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5jKCk7CiAgICAgfQpA
QCAtOTgsNyArMTAxLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAot
ICAgIGRvdWJsZSBkKCkKKyAgICBkb3VibGUgZCgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1
cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5kKCk7CiAgICAgfQpAQCAtMTE0LDcgKzExNyw3IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKLSAgICBkb3VibGUgZSgpCisgICAg
ZG91YmxlIGUoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNl
KCkuZSgpOwogICAgIH0KQEAgLTEzMCw3ICsxMzMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biB7IH07CiAgICAgfQogCi0gICAgZG91YmxlIGYoKQorICAgIGRvdWJsZSBmKCkgY29uc3QKICAg
ICB7CiAgICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLmYoKTsKICAgICB9CkBAIC0x
NDYsMTQ1ICsxNDksODYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAot
ICAgIEV4Y2VwdGlvbk9yPFJlZjxTVkdNYXRyaXg+PiBtdWx0aXBseShTVkdNYXRyaXgmIHNlY29u
ZE1hdHJpeCkKKyAgICBSZWY8U1ZHTWF0cml4PiBtdWx0aXBseShTVkdNYXRyaXgmIHNlY29uZE1h
dHJpeCkgY29uc3QKICAgICB7Ci0gICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCi0gICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKLQotICAg
ICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkubXVsdGlwbHkoc2Vjb25kTWF0
cml4LnByb3BlcnR5UmVmZXJlbmNlKCkpOwotICAgICAgICBjb21taXRDaGFuZ2UoKTsKLQotICAg
ICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKKyAgICAgICAgYXV0byBjb3B5
ID0gcHJvcGVydHlSZWZlcmVuY2UoKTsKKyAgICAgICAgY29weS5tdWx0aXBseShzZWNvbmRNYXRy
aXgucHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0
ZShjb3B5KTsKICAgICB9CiAKLSAgICBFeGNlcHRpb25PcjxSZWY8U1ZHTWF0cml4Pj4gaW52ZXJz
ZSgpCisgICAgRXhjZXB0aW9uT3I8UmVmPFNWR01hdHJpeD4+IGludmVyc2UoKSBjb25zdAogICAg
IHsKLSAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OworICAgICAgICBhdXRvIGludmVyc2Ug
PSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmludmVyc2UoKTsKKyAgICAgICAgaWYgKCFpbnZlcnNlKQor
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiTWF0cml4
IGlzIG5vdCBpbnZlcnRpYmxlIl9zIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0
eVJlZmVyZW5jZSgpLmludmVyc2UoKTsKLSAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24o
KSkKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwotICAgICAg
ICAKLSAgICAgICAgY29tbWl0Q2hhbmdlKCk7Ci0gICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNy
ZWF0ZShyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOworICAgICAgICByZXR1cm4gU1ZHTWF0
cml4OjpjcmVhdGUoKmludmVyc2UpOwogICAgIH0KIAotICAgIEV4Y2VwdGlvbk9yPFJlZjxTVkdN
YXRyaXg+PiB0cmFuc2xhdGUoZmxvYXQgeCwgZmxvYXQgeSkKKyAgICBSZWY8U1ZHTWF0cml4PiB0
cmFuc2xhdGUoZmxvYXQgeCwgZmxvYXQgeSkgY29uc3QKICAgICB7Ci0gICAgICAgIGlmIChpc1Jl
YWRPbmx5KCkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25B
bGxvd2VkRXJyb3IgfTsKLQotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNl
KCkudHJhbnNsYXRlKHgsIHkpOyAgICAgICAgCi0gICAgICAgIGNvbW1pdENoYW5nZSgpOwotCi0g
ICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOworICAgICAgICBhdXRvIGNv
cHkgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpOworICAgICAgICBjb3B5LnRyYW5zbGF0ZSh4LCB5KTsK
KyAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKGNvcHkpOwogICAgIH0KIAotICAgIEV4
Y2VwdGlvbk9yPFJlZjxTVkdNYXRyaXg+PiBzY2FsZShmbG9hdCBzY2FsZUZhY3RvcikKKyAgICBS
ZWY8U1ZHTWF0cml4PiBzY2FsZShmbG9hdCBzY2FsZUZhY3RvcikgY29uc3QKICAgICB7Ci0gICAg
ICAgIGlmIChpc1JlYWRPbmx5KCkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9N
b2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKLQotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3Bl
cnR5UmVmZXJlbmNlKCkuc2NhbGUoc2NhbGVGYWN0b3IpOyAgICAgICAgCi0gICAgICAgIGNvbW1p
dENoYW5nZSgpOwotCi0gICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOwor
ICAgICAgICBhdXRvIGNvcHkgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpOworICAgICAgICBjb3B5LnNj
YWxlKHNjYWxlRmFjdG9yKTsKKyAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKGNvcHkp
OwogICAgIH0KIAotICAgIEV4Y2VwdGlvbk9yPFJlZjxTVkdNYXRyaXg+PiBzY2FsZU5vblVuaWZv
cm0oZmxvYXQgc2NhbGVGYWN0b3JYLCBmbG9hdCBzY2FsZUZhY3RvclkpCisgICAgUmVmPFNWR01h
dHJpeD4gc2NhbGVOb25Vbmlmb3JtKGZsb2F0IHNjYWxlRmFjdG9yWCwgZmxvYXQgc2NhbGVGYWN0
b3JZKSBjb25zdAogICAgIHsKLSAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKLSAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwotCi0gICAg
ICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5zY2FsZU5vblVuaWZvcm0oc2Nh
bGVGYWN0b3JYLCBzY2FsZUZhY3RvclkpOyAgICAgICAgCi0gICAgICAgIGNvbW1pdENoYW5nZSgp
OwotCi0gICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOworICAgICAgICBh
dXRvIGNvcHkgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpOworICAgICAgICBjb3B5LnNjYWxlTm9uVW5p
Zm9ybShzY2FsZUZhY3RvclgsIHNjYWxlRmFjdG9yWSk7CisgICAgICAgIHJldHVybiBTVkdNYXRy
aXg6OmNyZWF0ZShjb3B5KTsKICAgICB9CiAKLSAgICBFeGNlcHRpb25PcjxSZWY8U1ZHTWF0cml4
Pj4gcm90YXRlKGZsb2F0IGFuZ2xlKQorICAgIFJlZjxTVkdNYXRyaXg+IHJvdGF0ZShmbG9hdCBh
bmdsZSkgY29uc3QKICAgICB7Ci0gICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCi0gICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKLQotICAg
ICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkucm90YXRlKGFuZ2xlKTsgICAg
ICAgIAotICAgICAgICBjb21taXRDaGFuZ2UoKTsKLQotICAgICAgICByZXR1cm4gU1ZHTWF0cml4
OjpjcmVhdGUocmVzdWx0KTsKKyAgICAgICAgYXV0byBjb3B5ID0gcHJvcGVydHlSZWZlcmVuY2Uo
KTsKKyAgICAgICAgY29weS5yb3RhdGUoYW5nbGUpOworICAgICAgICByZXR1cm4gU1ZHTWF0cml4
OjpjcmVhdGUoY29weSk7CiAgICAgfQogCi0gICAgRXhjZXB0aW9uT3I8UmVmPFNWR01hdHJpeD4+
IHJvdGF0ZUZyb21WZWN0b3IoZmxvYXQgeCwgZmxvYXQgeSkKKyAgICBFeGNlcHRpb25PcjxSZWY8
U1ZHTWF0cml4Pj4gcm90YXRlRnJvbVZlY3RvcihmbG9hdCB4LCBmbG9hdCB5KSBjb25zdAogICAg
IHsKLSAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OworICAgICAgICBpZiAoIXggfHwgIXkp
CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yIH07CiAKLSAgICAgICAg
YXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnJvdGF0ZUZyb21WZWN0b3IoeCwgeSk7
ICAgICAgICAKLSAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKLSAgICAgICAgICAg
IHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwotICAgICAgICAKLSAgICAgICAgY29t
bWl0Q2hhbmdlKCk7Ci0gICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQucmVs
ZWFzZVJldHVyblZhbHVlKCkpOwotICAgIH0KLQotICAgIEV4Y2VwdGlvbk9yPFJlZjxTVkdNYXRy
aXg+PiBmbGlwWCgpCi0gICAgewotICAgICAgICBpZiAoaXNSZWFkT25seSgpKQotICAgICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07Ci0KLSAg
ICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmZsaXBYKCk7ICAgICAgICAK
LSAgICAgICAgY29tbWl0Q2hhbmdlKCk7Ci0KLSAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3Jl
YXRlKHJlc3VsdCk7Ci0gICAgfQotCi0gICAgRXhjZXB0aW9uT3I8UmVmPFNWR01hdHJpeD4+IGZs
aXBZKCkKLSAgICB7Ci0gICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCi0gICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKLQotICAgICAgICBh
dXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuZmxpcFkoKTsgICAgICAgIAotICAgICAg
ICBjb21taXRDaGFuZ2UoKTsKLQotICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVz
dWx0KTsKKyAgICAgICAgYXV0byBjb3B5ID0gcHJvcGVydHlSZWZlcmVuY2UoKTsKKyAgICAgICAg
Y29weS5yb3RhdGVGcm9tVmVjdG9yKHgsIHkpOworICAgICAgICByZXR1cm4gU1ZHTWF0cml4Ojpj
cmVhdGUoY29weSk7CiAgICAgfQogCi0gICAgRXhjZXB0aW9uT3I8UmVmPFNWR01hdHJpeD4+IHNr
ZXdYKGZsb2F0IGFuZ2xlKQorICAgIFJlZjxTVkdNYXRyaXg+IGZsaXBYKCkgY29uc3QKICAgICB7
Ci0gICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKLQotICAgICAgICBhdXRvIHJlc3VsdCA9
IHByb3BlcnR5UmVmZXJlbmNlKCkuc2tld1goYW5nbGUpOyAgICAgICAgCi0gICAgICAgIGNvbW1p
dENoYW5nZSgpOwotCi0gICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOwot
ICAgIH0KLQotICAgIEV4Y2VwdGlvbk9yPFJlZjxTVkdNYXRyaXg+PiBza2V3WShmbG9hdCBhbmds
ZSkKLSAgICB7Ci0gICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCi0gICAgICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKLQotICAgICAgICBhdXRv
IHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2tld1koYW5nbGUpOyAgICAgICAgCi0gICAg
ICAgIGNvbW1pdENoYW5nZSgpOwotCi0gICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShy
ZXN1bHQpOworICAgICAgICBhdXRvIGNvcHkgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpOworICAgICAg
ICBjb3B5LmZsaXBYKCk7CisgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShjb3B5KTsK
ICAgICB9CiAKLXByb3RlY3RlZDoKLSAgICBTVkdNYXRyaXgoU1ZHTGVnYWN5QW5pbWF0ZWRQcm9w
ZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR01hdHJpeFZh
bHVlJiB2YWx1ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHTWF0cml4VmFsdWU+
KCZhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkKKyAgICBSZWY8U1ZHTWF0cml4PiBmbGlw
WSgpIGNvbnN0CiAgICAgeworICAgICAgICBhdXRvIGNvcHkgPSBwcm9wZXJ0eVJlZmVyZW5jZSgp
OworICAgICAgICBjb3B5LmZsaXBZKCk7CisgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0
ZShjb3B5KTsKICAgICB9CiAKLSAgICBleHBsaWNpdCBTVkdNYXRyaXgoY29uc3QgU1ZHTWF0cml4
VmFsdWUmIGluaXRpYWxWYWx1ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHTWF0
cml4VmFsdWU+KGluaXRpYWxWYWx1ZSkKKyAgICBSZWY8U1ZHTWF0cml4PiBza2V3WChmbG9hdCBh
bmdsZSkgY29uc3QKICAgICB7CisgICAgICAgIGF1dG8gY29weSA9IHByb3BlcnR5UmVmZXJlbmNl
KCk7CisgICAgICAgIGNvcHkuc2tld1goYW5nbGUpOworICAgICAgICByZXR1cm4gU1ZHTWF0cml4
OjpjcmVhdGUoY29weSk7CiAgICAgfQogCi0gICAgZXhwbGljaXQgU1ZHTWF0cml4KGNvbnN0IFNW
R01hdHJpeFZhbHVlKiBpbml0aWFsVmFsdWUpCi0gICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2Zm
PFNWR01hdHJpeFZhbHVlPihpbml0aWFsVmFsdWUpCisgICAgUmVmPFNWR01hdHJpeD4gc2tld1ko
ZmxvYXQgYW5nbGUpIGNvbnN0CiAgICAgeworICAgICAgICBhdXRvIGNvcHkgPSBwcm9wZXJ0eVJl
ZmVyZW5jZSgpOworICAgICAgICBjb3B5LnNrZXdZKGFuZ2xlKTsKKyAgICAgICAgcmV0dXJuIFNW
R01hdHJpeDo6Y3JlYXRlKGNvcHkpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdNYXRyaXguaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5p
ZGwKaW5kZXggZGVmZjA1NjNlYzQ5Nzc5MTBhZTBiYzJiNDk1OGVjMDhkZTFmNTUyYy4uNmZhNjM3
ZTE0Y2JmYzg2OGM3NWM3ODIwYzQyZTVmYmMzZmJkYzExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01hdHJpeC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJp
eC5pZGwKQEAgLTMzLDE1ICszMywxNSBAQAogICAgIGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91
YmxlIGU7CiAgICAgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgZjsKIAotICAgIFtNYXlU
aHJvd0V4Y2VwdGlvbl0gU1ZHTWF0cml4IG11bHRpcGx5KFNWR01hdHJpeCBzZWNvbmRNYXRyaXgp
OwotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gU1ZHTWF0cml4IGludmVyc2UoKTsKLSAgICBbTWF5
VGhyb3dFeGNlcHRpb25dIFNWR01hdHJpeCB0cmFuc2xhdGUodW5yZXN0cmljdGVkIGZsb2F0IHgs
IHVucmVzdHJpY3RlZCBmbG9hdCB5KTsKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFNWR01hdHJp
eCBzY2FsZSh1bnJlc3RyaWN0ZWQgZmxvYXQgc2NhbGVGYWN0b3IpOwotICAgIFtNYXlUaHJvd0V4
Y2VwdGlvbl0gU1ZHTWF0cml4IHNjYWxlTm9uVW5pZm9ybSh1bnJlc3RyaWN0ZWQgZmxvYXQgc2Nh
bGVGYWN0b3JYLCB1bnJlc3RyaWN0ZWQgZmxvYXQgc2NhbGVGYWN0b3JZKTsKLSAgICBbTWF5VGhy
b3dFeGNlcHRpb25dIFNWR01hdHJpeCByb3RhdGUodW5yZXN0cmljdGVkIGZsb2F0IGFuZ2xlKTsK
LSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFNWR01hdHJpeCByb3RhdGVGcm9tVmVjdG9yKHVucmVz
dHJpY3RlZCBmbG9hdCB4LCB1bnJlc3RyaWN0ZWQgZmxvYXQgeSk7Ci0gICAgW01heVRocm93RXhj
ZXB0aW9uXSBTVkdNYXRyaXggZmxpcFgoKTsKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFNWR01h
dHJpeCBmbGlwWSgpOwotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gU1ZHTWF0cml4IHNrZXdYKHVu
cmVzdHJpY3RlZCBmbG9hdCBhbmdsZSk7Ci0gICAgW01heVRocm93RXhjZXB0aW9uXSBTVkdNYXRy
aXggc2tld1kodW5yZXN0cmljdGVkIGZsb2F0IGFuZ2xlKTsKKyAgICBbTmV3T2JqZWN0XSBTVkdN
YXRyaXggbXVsdGlwbHkoU1ZHTWF0cml4IHNlY29uZE1hdHJpeCk7CisgICAgW01heVRocm93RXhj
ZXB0aW9uLCBOZXdPYmplY3RdIFNWR01hdHJpeCBpbnZlcnNlKCk7CisgICAgW05ld09iamVjdF0g
U1ZHTWF0cml4IHRyYW5zbGF0ZSh1bnJlc3RyaWN0ZWQgZmxvYXQgeCwgdW5yZXN0cmljdGVkIGZs
b2F0IHkpOworICAgIFtOZXdPYmplY3RdIFNWR01hdHJpeCBzY2FsZSh1bnJlc3RyaWN0ZWQgZmxv
YXQgc2NhbGVGYWN0b3IpOworICAgIFtOZXdPYmplY3RdIFNWR01hdHJpeCBzY2FsZU5vblVuaWZv
cm0odW5yZXN0cmljdGVkIGZsb2F0IHNjYWxlRmFjdG9yWCwgdW5yZXN0cmljdGVkIGZsb2F0IHNj
YWxlRmFjdG9yWSk7CisgICAgW05ld09iamVjdF0gU1ZHTWF0cml4IHJvdGF0ZSh1bnJlc3RyaWN0
ZWQgZmxvYXQgYW5nbGUpOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbiwgTmV3T2JqZWN0XSBTVkdN
YXRyaXggcm90YXRlRnJvbVZlY3Rvcih1bnJlc3RyaWN0ZWQgZmxvYXQgeCwgdW5yZXN0cmljdGVk
IGZsb2F0IHkpOworICAgIFtOZXdPYmplY3RdIFNWR01hdHJpeCBmbGlwWCgpOworICAgIFtOZXdP
YmplY3RdIFNWR01hdHJpeCBmbGlwWSgpOworICAgIFtOZXdPYmplY3RdIFNWR01hdHJpeCBza2V3
WCh1bnJlc3RyaWN0ZWQgZmxvYXQgYW5nbGUpOworICAgIFtOZXdPYmplY3RdIFNWR01hdHJpeCBz
a2V3WSh1bnJlc3RyaWN0ZWQgZmxvYXQgYW5nbGUpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdNYXRyaXhWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJp
eFZhbHVlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4NDJjNjUwYmE0YjE5ZTA2
ZTM1Y2Y5MWU0OTFmOWU2ZThmMDhjM2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeFZhbHVlLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMjQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgUmVzZWFyY2gg
SW4gTW90aW9uIExpbWl0ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
Ci0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI3ByYWdtYSBvbmNl
Ci0KLSNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKLSNpbmNsdWRlICJFeGNlcHRpb25Pci5o
IgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFNWR01hdHJpeFZhbHVlIGZpbmFsIDog
cHVibGljIEFmZmluZVRyYW5zZm9ybSB7Ci1wdWJsaWM6Ci0gICAgU1ZHTWF0cml4VmFsdWUoKSA9
IGRlZmF1bHQ7Ci0KLSAgICBTVkdNYXRyaXhWYWx1ZShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIG90
aGVyKQotICAgICAgICA6IEFmZmluZVRyYW5zZm9ybShvdGhlcikKLSAgICB7Ci0gICAgfQotCi0g
ICAgU1ZHTWF0cml4VmFsdWUoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgYywgZG91YmxlIGQs
IGRvdWJsZSBlLCBkb3VibGUgZikKLSAgICAgICAgOiBBZmZpbmVUcmFuc2Zvcm0oYSwgYiwgYywg
ZCwgZSwgZikKLSAgICB7Ci0gICAgfQotCi0gICAgU1ZHTWF0cml4VmFsdWUgdHJhbnNsYXRlKGRv
dWJsZSB0eCwgZG91YmxlIHR5KQotICAgIHsKLSAgICAgICAgQWZmaW5lVHJhbnNmb3JtIGNvcHkg
eyAqdGhpcyB9OwotICAgICAgICBjb3B5LnRyYW5zbGF0ZSh0eCwgdHkpOwotICAgICAgICByZXR1
cm4gU1ZHTWF0cml4VmFsdWUgeyBjb3B5IH07Ci0gICAgfQotCi0gICAgU1ZHTWF0cml4VmFsdWUg
c2NhbGUoZG91YmxlIHMpCi0gICAgewotICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gY29weSB7ICp0
aGlzIH07Ci0gICAgICAgIGNvcHkuc2NhbGUocywgcyk7Ci0gICAgICAgIHJldHVybiBTVkdNYXRy
aXhWYWx1ZSB7IGNvcHkgfTsKLSAgICB9Ci0KLSAgICBTVkdNYXRyaXhWYWx1ZSBzY2FsZU5vblVu
aWZvcm0oZG91YmxlIHN4LCBkb3VibGUgc3kpCi0gICAgewotICAgICAgICBBZmZpbmVUcmFuc2Zv
cm0gY29weSB7ICp0aGlzIH07Ci0gICAgICAgIGNvcHkuc2NhbGUoc3gsIHN5KTsKLSAgICAgICAg
cmV0dXJuIFNWR01hdHJpeFZhbHVlIHsgY29weSB9OwotICAgIH0KLQotICAgIFNWR01hdHJpeFZh
bHVlIHJvdGF0ZShkb3VibGUgZCkKLSAgICB7Ci0gICAgICAgIEFmZmluZVRyYW5zZm9ybSBjb3B5
IHsgKnRoaXMgfTsKLSAgICAgICAgY29weS5yb3RhdGUoZCk7Ci0gICAgICAgIHJldHVybiBTVkdN
YXRyaXhWYWx1ZSB7IGNvcHkgfTsKLSAgICB9Ci0KLSAgICBTVkdNYXRyaXhWYWx1ZSBmbGlwWCgp
Ci0gICAgewotICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gY29weSB7ICp0aGlzIH07Ci0gICAgICAg
IGNvcHkuZmxpcFgoKTsKLSAgICAgICAgcmV0dXJuIFNWR01hdHJpeFZhbHVlIHsgY29weSB9Owot
ICAgIH0KLQotICAgIFNWR01hdHJpeFZhbHVlIGZsaXBZKCkKLSAgICB7Ci0gICAgICAgIEFmZmlu
ZVRyYW5zZm9ybSBjb3B5IHsgKnRoaXMgfTsKLSAgICAgICAgY29weS5mbGlwWSgpOwotICAgICAg
ICByZXR1cm4gU1ZHTWF0cml4VmFsdWUgeyBjb3B5IH07Ci0gICAgfQotCi0gICAgU1ZHTWF0cml4
VmFsdWUgc2tld1goZG91YmxlIGFuZ2xlKQotICAgIHsKLSAgICAgICAgQWZmaW5lVHJhbnNmb3Jt
IGNvcHkgeyAqdGhpcyB9OwotICAgICAgICBjb3B5LnNrZXdYKGFuZ2xlKTsKLSAgICAgICAgcmV0
dXJuIFNWR01hdHJpeFZhbHVlIHsgY29weSB9OwotICAgIH0KLQotICAgIFNWR01hdHJpeFZhbHVl
IHNrZXdZKGRvdWJsZSBhbmdsZSkKLSAgICB7Ci0gICAgICAgIEFmZmluZVRyYW5zZm9ybSBjb3B5
IHsgKnRoaXMgfTsKLSAgICAgICAgY29weS5za2V3WShhbmdsZSk7Ci0gICAgICAgIHJldHVybiBT
VkdNYXRyaXhWYWx1ZSB7IGNvcHkgfTsKLSAgICB9Ci0KLSAgICBTVkdNYXRyaXhWYWx1ZSBtdWx0
aXBseShjb25zdCBTVkdNYXRyaXhWYWx1ZSYgb3RoZXIpCi0gICAgewotICAgICAgICBBZmZpbmVU
cmFuc2Zvcm0gY29weSB7ICp0aGlzIH07Ci0gICAgICAgIGNvcHkgKj0gc3RhdGljX2Nhc3Q8Y29u
c3QgQWZmaW5lVHJhbnNmb3JtJj4ob3RoZXIpOwotICAgICAgICByZXR1cm4gU1ZHTWF0cml4VmFs
dWUgeyBjb3B5IH07Ci0gICAgfQotCi0gICAgRXhjZXB0aW9uT3I8U1ZHTWF0cml4VmFsdWU+IGlu
dmVyc2UoKSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKGF1dG8gaW52ZXJzZSA9IEFmZmluZVRy
YW5zZm9ybTo6aW52ZXJzZSgpKQotICAgICAgICAgICAgcmV0dXJuIFNWR01hdHJpeFZhbHVlIHsg
aW52ZXJzZS52YWx1ZSgpIH07Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJNYXRyaXggaXMgbm90IGludmVydGlibGUiX3MgfTsKLSAgICB9
Ci0KLSAgICBFeGNlcHRpb25PcjxTVkdNYXRyaXhWYWx1ZT4gcm90YXRlRnJvbVZlY3Rvcihkb3Vi
bGUgeCwgZG91YmxlIHkpCi0gICAgewotICAgICAgICBpZiAoIXggfHwgIXkpCi0gICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yIH07Ci0KLSAgICAgICAgQWZmaW5lVHJhbnNm
b3JtIGNvcHkgeyAqdGhpcyB9OwotICAgICAgICBjb3B5LnJvdGF0ZUZyb21WZWN0b3IoeCwgeSk7
Ci0gICAgICAgIHJldHVybiBTVkdNYXRyaXhWYWx1ZSB7IGNvcHkgfTsKLSAgICB9Ci0KLX07Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUcmFuc2Zvcm0uY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5jcHAKaW5k
ZXggNTkwMzc5NDVhYjcxNGY3NTIwZTMzNjZhZDE0YmMwZmRkM2JjYTE1OS4uMjcyNDhlMDUyOTcz
MDFmNTQzMDM0NzMzYWEwNTBjZjk2MTRiMDFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RyYW5zZm9ybS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9y
bS5jcHAKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZWY8U1ZHTWF0
cml4PiBTVkdUcmFuc2Zvcm06Om1hdHJpeCgpCiB7Ci0gICAgcmV0dXJuIFNWR01hdHJpeFRlYXJP
ZmY6OmNyZWF0ZSgqdGhpcywgcHJvcGVydHlSZWZlcmVuY2UoKS5zdmdNYXRyaXgoKSk7CisgICAg
cmV0dXJuIFNWR01hdHJpeFRlYXJPZmY6OmNyZWF0ZSgqdGhpcywgcHJvcGVydHlSZWZlcmVuY2Uo
KS5tYXRyaXgoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1EaXN0YW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVHJhbnNmb3JtRGlzdGFuY2UuY3BwCmluZGV4IDA0ZjA4MzU4ZDk1MGRiYjNjOGZk
YTk2MWFjNDMwNzQwNmNmMGNjZTcuLjM4NDdkNTNjNzJhYjE5OTE1NGQ0MDZkYmMzYjQ2OGM0NDJk
ZjQ4OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1EaXN0YW5j
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybURpc3RhbmNlLmNwcApA
QCAtMTYwLDcgKzE2MCw3IEBAIFNWR1RyYW5zZm9ybVZhbHVlIFNWR1RyYW5zZm9ybURpc3RhbmNl
OjphZGRTVkdUcmFuc2Zvcm1zKGNvbnN0IFNWR1RyYW5zZm9ybVZhbHVlCiAKIFNWR1RyYW5zZm9y
bVZhbHVlIFNWR1RyYW5zZm9ybURpc3RhbmNlOjphZGRUb1NWR1RyYW5zZm9ybShjb25zdCBTVkdU
cmFuc2Zvcm1WYWx1ZSYgdHJhbnNmb3JtKSBjb25zdAogewotICAgIEFTU0VSVChtX3R5cGUgPT0g
dHJhbnNmb3JtLnR5cGUoKSB8fCB0cmFuc2Zvcm0gPT0gU1ZHVHJhbnNmb3JtVmFsdWUoKSk7Cisg
ICAgQVNTRVJUKG1fdHlwZSA9PSB0cmFuc2Zvcm0udHlwZSgpIHx8ICF0cmFuc2Zvcm0uaXNWYWxp
ZCgpKTsKICAgICAKICAgICBTVkdUcmFuc2Zvcm1WYWx1ZSBuZXdUcmFuc2Zvcm0odHJhbnNmb3Jt
KTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1WYWx1
ZS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmgKaW5kZXggZmFkZDAz
YTIzYTEwMmYwMDUxMjRlZWJkMzE5NDNiYTU5ZDZhZWExYy4uNDk5MTliYjNkY2ExZWIyYzkwMTdj
NTNjZGUxNGNjZTVjNWRlM2ViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Ry
YW5zZm9ybVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVl
LmgKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA4
IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpA
QCAtMjAsOCArMjEsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkFmZmluZVRyYW5z
Zm9ybS5oIgogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKLSNpbmNsdWRlICJTVkdNYXRyaXhWYWx1
ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTUwLDggKzUxLDggQEAgcHVibGljOgog
CiAgICAgU1ZHVHJhbnNmb3JtVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAK
LSAgICBTVkdNYXRyaXhWYWx1ZSYgc3ZnTWF0cml4KCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZH
TWF0cml4VmFsdWUmPihtX21hdHJpeCk7IH0KLSAgICBBZmZpbmVUcmFuc2Zvcm0gbWF0cml4KCkg
Y29uc3QgeyByZXR1cm4gbV9tYXRyaXg7IH0KKyAgICBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIG1h
dHJpeCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF0cml4OyB9CisgICAgQWZmaW5lVHJhbnNmb3JtJiBt
YXRyaXgoKSB7IHJldHVybiBtX21hdHJpeDsgfQogICAgIHZvaWQgdXBkYXRlU1ZHTWF0cml4KCk7
CiAKICAgICBmbG9hdCBhbmdsZSgpIGNvbnN0IHsgcmV0dXJuIG1fYW5nbGU7IH0KQEAgLTczLDIy
ICs3NCwxMCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFN0cmluZyYgdHJhbnNmb3JtVHlw
ZVByZWZpeEZvclBhcnNpbmcoU1ZHVHJhbnNmb3JtVHlwZSk7CiAKIHByaXZhdGU6Ci0gICAgZnJp
ZW5kIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTVkdUcmFuc2Zvcm1WYWx1ZSYsIGNvbnN0IFNWR1Ry
YW5zZm9ybVZhbHVlJik7Ci0KICAgICBTVkdUcmFuc2Zvcm1UeXBlIG1fdHlwZSB7IFNWR19UUkFO
U0ZPUk1fVU5LTk9XTiB9OwogICAgIGZsb2F0IG1fYW5nbGUgeyAwIH07CiAgICAgRmxvYXRQb2lu
dCBtX2NlbnRlcjsKICAgICBBZmZpbmVUcmFuc2Zvcm0gbV9tYXRyaXg7CiB9OwogCi1pbmxpbmUg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IFNWR1RyYW5zZm9ybVZhbHVlJiBhLCBjb25zdCBTVkdUcmFu
c2Zvcm1WYWx1ZSYgYikKLXsKLSAgICByZXR1cm4gYS5tX3R5cGUgPT0gYi5tX3R5cGUgJiYgYS5t
X2FuZ2xlID09IGIubV9hbmdsZSAmJiBhLm1fbWF0cml4ID09IGIubV9tYXRyaXg7Ci19Ci0KLWlu
bGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgU1ZHVHJhbnNmb3JtVmFsdWUmIGEsIGNvbnN0IFNW
R1RyYW5zZm9ybVZhbHVlJiBiKQotewotICAgIHJldHVybiAhKGEgPT0gYik7Ci19Ci0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR01hdHJpeFRlYXJPZmYuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R01hdHJpeFRlYXJPZmYuaAppbmRleCAzMzIyNjBhNjMwZDQzMTRkN2FiMjU0YzI2ZTRiYzA0ZWU3
ODVkMTdmLi4xYjMzYzAwODI1YmU2MzRkMGY0NmIzNzQ3ZTMyNDZiMjRiZDg4YTcyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTWF0cml4VGVhck9mZi5oCkBAIC0y
NiwxNyArMjYsMTggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdNYXRyaXhUZWFy
T2ZmIGZpbmFsIDogcHVibGljIFNWR01hdHJpeCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxT
VkdNYXRyaXhUZWFyT2ZmPiBjcmVhdGUoU1ZHVHJhbnNmb3JtJiBwYXJlbnQsIFNWR01hdHJpeFZh
bHVlJiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR01hdHJpeFRlYXJPZmY+IGNyZWF0ZShTVkdU
cmFuc2Zvcm0mIHBhcmVudCwgQWZmaW5lVHJhbnNmb3JtJiB2YWx1ZSkKICAgICB7Ci0gICAgICAg
IEFTU0VSVF9VTlVTRUQodmFsdWUsICZwYXJlbnQucHJvcGVydHlSZWZlcmVuY2UoKS5zdmdNYXRy
aXgoKSA9PSAmdmFsdWUpOworICAgICAgICBBU1NFUlRfVU5VU0VEKHZhbHVlLCAmcGFyZW50LnBy
b3BlcnR5UmVmZXJlbmNlKCkubWF0cml4KCkgPT0gJnZhbHVlKTsKICAgICAgICAgYXV0byByZXN1
bHQgPSBhZG9wdFJlZigqbmV3IFNWR01hdHJpeFRlYXJPZmYocGFyZW50KSk7CiAgICAgICAgIHBh
cmVudC5hZGRDaGlsZChtYWtlV2Vha1B0cihyZXN1bHQuZ2V0KCkpKTsKICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICB9CiAKLSAgICBTVkdNYXRyaXhWYWx1ZSYgcHJvcGVydHlSZWZlcmVuY2Uo
KSBmaW5hbCB7IHJldHVybiBtX3BhcmVudC0+cHJvcGVydHlSZWZlcmVuY2UoKS5zdmdNYXRyaXgo
KTsgfQorICAgIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcHJvcGVydHlSZWZlcmVuY2UoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX3BhcmVudC0+cHJvcGVydHlSZWZlcmVuY2UoKS5tYXRyaXgoKTsg
fQorICAgIEFmZmluZVRyYW5zZm9ybSYgcHJvcGVydHlSZWZlcmVuY2UoKSBmaW5hbCB7IHJldHVy
biBtX3BhcmVudC0+cHJvcGVydHlSZWZlcmVuY2UoKS5tYXRyaXgoKTsgfQogCi0gICAgdm9pZCBz
ZXRWYWx1ZShTVkdNYXRyaXhWYWx1ZSYgdmFsdWUpIGZpbmFsIHsgbV9wYXJlbnQtPnByb3BlcnR5
UmVmZXJlbmNlKCkuc2V0TWF0cml4KHZhbHVlKTsgfQorICAgIHZvaWQgc2V0VmFsdWUoQWZmaW5l
VHJhbnNmb3JtJiB2YWx1ZSkgZmluYWwgeyBtX3BhcmVudC0+cHJvcGVydHlSZWZlcmVuY2UoKS5z
ZXRNYXRyaXgodmFsdWUpOyB9CiAKICAgICB2b2lkIGNvbW1pdENoYW5nZSgpIGZpbmFsCiAgICAg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlU
ZWFyT2ZmLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJP
ZmYuaAppbmRleCBiNTg5NmVhZGM1OWVkYzZiOTMyOTdkNzIyNTc1NTIyMjhlNDFjNGIyLi5jMjY3
MmIxNDNiOTE3NmIzMjIyYmRiZDRlY2I1OGI5ZDQ1MmY5NmZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaApAQCAtNjAsNiArNjAs
NyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBjcmVhdGUoaW5pdGlhbFZhbHVlLnJlbGVhc2VS
ZXR1cm5WYWx1ZSgpKTsKICAgICB9CiAKKyAgICB2aXJ0dWFsIGNvbnN0IFByb3BlcnR5VHlwZSYg
cHJvcGVydHlSZWZlcmVuY2UoKSBjb25zdCB7IHJldHVybiAqbV92YWx1ZTsgfQogICAgIHZpcnR1
YWwgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eVJlZmVyZW5jZSgpIHsgcmV0dXJuICptX3ZhbHVlOyB9
CiAgICAgU1ZHTGVnYWN5QW5pbWF0ZWRQcm9wZXJ0eSogYW5pbWF0ZWRQcm9wZXJ0eSgpIGNvbnN0
IHsgcmV0dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eS5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODZmNTMxNTMx
Y2MwMzg5MDdlODMxYzE2MjU5NWQ2MWIxMzlkMDVkYS4uMzE5NTIyNzQ1NjExOWJjNDQyMDJmYmIw
MDdmYzNlZmIzMzg5NDM4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTA0LTAxICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgU1ZHTWF0
cml4LklETCBtZXRob2RzIGRvIG5vdCBjb25mb3JtIHRvIHRoZSBzcGVjcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2MjYzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgICogc3ZnL2RvbS9TVkdNYXRyaXgtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHN2Zy9kb20vU1ZHTWF0cml4Lmh0bWw6CisgICAgICAgIENs
ZWFuIHRoaXMgdGVzdC4gTWFrZSBpdCB0ZXN0IHRoZSBjYXNlIHdoZW4gdmFsaWQgYXJndW1lbnRz
IGFyZSBwYXNzZWQgdG8KKyAgICAgICAgdGhlIG1ldGhvZHMgb2YgdGhlIFNWR01hdHJpeC4gTWFr
ZSBzdXJlIHRoZSBtZXRob2RzIGFyZSByZWFkLW9ubHkuIEFsbAorICAgICAgICBvZiB0aGVtIHNo
b3VsZCBiZSBtYWtpbmcgYSBjb3B5IG9mIHRoZSBtYXRyaXgsIGFwcGx5aW5nIHRoZSB0cmFuc2Zv
cm0gYW5kCisgICAgICAgIHJldHVybmluZyB0aGUgY29weS4KKwogMjAxOS0wNC0wMSAgU2hhd24g
Um9iZXJ0cyAgPHNyb2JlcnRzQGFwcGxlLmNvbT4KIAogICAgICAgICBzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vZGVsZXRlZGF0YWJhc2UtMi1wcml2YXRlLmh0bWwgaXMgYSBmbGFreSBmYWlsdXJl
IG9uIE1hYyBEZWJ1ZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdNYXRyaXgt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdNYXRyaXgtZXhwZWN0ZWQudHh0
CmluZGV4IDJjODUyNjNmZmM1ODZiZjVjMTQ2Y2IzOTIwNTFlMTI3ZjY4YjYyYjkuLmRiNDEwMmY4
MTkwZTg0NjQ4ZWMzZGUxYTY2ZDQ4NzU4NzFkNDk5NWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N2Zy9kb20vU1ZHTWF0cml4LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdmcvZG9t
L1NWR01hdHJpeC1leHBlY3RlZC50eHQKQEAgLTUsMTIgKzUsNyBAQCBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURQogCiAKIENoZWNrIGluaXRpYWwgbWF0cml4IHZhbHVlcwotUEFTUyBtYXRyaXguYSBp
cyAxCi1QQVNTIG1hdHJpeC5iIGlzIDAKLVBBU1MgbWF0cml4LmMgaXMgMAotUEFTUyBtYXRyaXgu
ZCBpcyAxCi1QQVNTIG1hdHJpeC5lIGlzIDAKLVBBU1MgbWF0cml4LmYgaXMgMAorUEFTUyBtYXRy
aXhUb1N0cmluZyhtYXRyaXgpIGlzICJ7IGE6IDEsIGI6IDAsIGM6IDAsIGQ6IDEsIGU6IDAsIGY6
IDB9IgogCiBDaGVjayBhc3NpZ25pbmcgbWF0cmljZXMKIFBBU1MgbWF0cml4LmEgPSAyIGlzIDIK
QEAgLTI1LDYgKzIwLDggQEAgUEFTUyBtYXRyaXguYSBpcyBOYU4KIFBBU1MgbWF0cml4LmEgPSAw
IGlzIDAKIFBBU1MgbWF0cml4LmEgPSAnYVN0cmluZycgaXMgJ2FTdHJpbmcnCiBQQVNTIG1hdHJp
eC5hIGlzIE5hTgorUEFTUyBtYXRyaXguYSA9IG51bGwgaXMgbnVsbAorUEFTUyBtYXRyaXguYSBp
cyAwCiBQQVNTIG1hdHJpeC5hID0gMiBpcyAyCiBQQVNTIG1hdHJpeC5iID0gbWF0cml4IGlzIG1h
dHJpeAogUEFTUyBtYXRyaXguYiBpcyBOYU4KQEAgLTM0LDYgKzMxLDggQEAgUEFTUyBtYXRyaXgu
YiBpcyBOYU4KIFBBU1MgbWF0cml4LmIgPSAwIGlzIDAKIFBBU1MgbWF0cml4LmIgPSAnYVN0cmlu
ZycgaXMgJ2FTdHJpbmcnCiBQQVNTIG1hdHJpeC5iIGlzIE5hTgorUEFTUyBtYXRyaXguYiA9IG51
bGwgaXMgbnVsbAorUEFTUyBtYXRyaXguYiBpcyAwCiBQQVNTIG1hdHJpeC5iID0gMCBpcyAwCiBQ
QVNTIG1hdHJpeC5jID0gbWF0cml4IGlzIG1hdHJpeAogUEFTUyBtYXRyaXguYyBpcyBOYU4KQEAg
LTQzLDYgKzQyLDggQEAgUEFTUyBtYXRyaXguYyBpcyBOYU4KIFBBU1MgbWF0cml4LmMgPSAwIGlz
IDAKIFBBU1MgbWF0cml4LmMgPSAnYVN0cmluZycgaXMgJ2FTdHJpbmcnCiBQQVNTIG1hdHJpeC5j
IGlzIE5hTgorUEFTUyBtYXRyaXguYyA9IG51bGwgaXMgbnVsbAorUEFTUyBtYXRyaXguYyBpcyAw
CiBQQVNTIG1hdHJpeC5jID0gMCBpcyAwCiBQQVNTIG1hdHJpeC5kID0gbWF0cml4IGlzIG1hdHJp
eAogUEFTUyBtYXRyaXguZCBpcyBOYU4KQEAgLTUyLDYgKzUzLDggQEAgUEFTUyBtYXRyaXguZCBp
cyBOYU4KIFBBU1MgbWF0cml4LmQgPSAwIGlzIDAKIFBBU1MgbWF0cml4LmQgPSAnYVN0cmluZycg
aXMgJ2FTdHJpbmcnCiBQQVNTIG1hdHJpeC5kIGlzIE5hTgorUEFTUyBtYXRyaXguZCA9IG51bGwg
aXMgbnVsbAorUEFTUyBtYXRyaXguZCBpcyAwCiBQQVNTIG1hdHJpeC5kID0gMSBpcyAxCiBQQVNT
IG1hdHJpeC5lID0gbWF0cml4IGlzIG1hdHJpeAogUEFTUyBtYXRyaXguZSBpcyBOYU4KQEAgLTYx
LDYgKzY0LDggQEAgUEFTUyBtYXRyaXguZSBpcyBOYU4KIFBBU1MgbWF0cml4LmUgPSAwIGlzIDAK
IFBBU1MgbWF0cml4LmUgPSAnYVN0cmluZycgaXMgJ2FTdHJpbmcnCiBQQVNTIG1hdHJpeC5lIGlz
IE5hTgorUEFTUyBtYXRyaXguZSA9IG51bGwgaXMgbnVsbAorUEFTUyBtYXRyaXguZSBpcyAwCiBQ
QVNTIG1hdHJpeC5lID0gMCBpcyAwCiBQQVNTIG1hdHJpeC5mID0gbWF0cml4IGlzIG1hdHJpeAog
UEFTUyBtYXRyaXguZiBpcyBOYU4KQEAgLTcwLDI0ICs3NSwxMiBAQCBQQVNTIG1hdHJpeC5mIGlz
IE5hTgogUEFTUyBtYXRyaXguZiA9IDAgaXMgMAogUEFTUyBtYXRyaXguZiA9ICdhU3RyaW5nJyBp
cyAnYVN0cmluZycKIFBBU1MgbWF0cml4LmYgaXMgTmFOCitQQVNTIG1hdHJpeC5mID0gbnVsbCBp
cyBudWxsCitQQVNTIG1hdHJpeC5mIGlzIDAKIFBBU1MgbWF0cml4LmYgPSAyMDAgaXMgMjAwCiAK
IENoZWNrIHRoYXQgdGhlIG1hdHJpeCBpcyBzdGlsbCBjb250YWluaW5nIHRoZSBjb3JyZWN0IHZh
bHVlcwotUEFTUyBtYXRyaXguYSBpcyAyCi1QQVNTIG1hdHJpeC5iIGlzIDAKLVBBU1MgbWF0cml4
LmMgaXMgMAotUEFTUyBtYXRyaXguZCBpcyAxCi1QQVNTIG1hdHJpeC5lIGlzIDAKLVBBU1MgbWF0
cml4LmYgaXMgMjAwCi0KLUNoZWNrIGFzc2lnbmluZyBudWxsIHdvcmtzIGFzIGV4cGVjdGVkCi1Q
QVNTIG1hdHJpeC5mID0gbnVsbCBpcyBudWxsCi1QQVNTIG1hdHJpeC5hIGlzIDIKLVBBU1MgbWF0
cml4LmIgaXMgMAotUEFTUyBtYXRyaXguYyBpcyAwCi1QQVNTIG1hdHJpeC5kIGlzIDEKLVBBU1Mg
bWF0cml4LmUgaXMgMAotUEFTUyBtYXRyaXguZiBpcyAwCitQQVNTIG1hdHJpeFRvU3RyaW5nKG1h
dHJpeCkgaXMgInsgYTogMiwgYjogMCwgYzogMCwgZDogMSwgZTogMCwgZjogMjAwfSIKIAogQ2hl
Y2sgY2FsbGluZyAnbXVsdGlwbHknIHdpdGggaW52YWxpZCBhcmd1bWVudHMKIFBBU1MgbWF0cml4
Lm11bHRpcGx5KCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVu
dHMuCkBAIC0xNTQsNiArMTQ3LDIzIEBAIENoZWNrIGNhbGxpbmcgJ3NrZXdZJyB3aXRoIGludmFs
aWQgYXJndW1lbnRzCiBQQVNTIG1hdHJpeC5za2V3WSgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgogUEFTUyBtYXRyaXguc2tld1koJ2FTdHJpbmcnKSBp
cyBub24tbnVsbC4KIFBBU1MgbWF0cml4LnNrZXdZKHN2Z0VsZW1lbnQpIGlzIG5vbi1udWxsLgor
CitDaGVjayBjYWxsaW5nIFNWR01hdHJpeCBtZXRob2RzIHdpdGggdmFsaWQgYXJndW1lbnRzCitQ
QVNTIG1hdHJpeFRvU3RyaW5nKG1hdHJpeC50cmFuc2xhdGUoMTAsIDIwKSkgaXMgInsgYTogMiwg
YjogMCwgYzogMCwgZDogMSwgZTogMjAsIGY6IDIyMH0iCitQQVNTIG1hdHJpeFRvU3RyaW5nKG1h
dHJpeC5zY2FsZSg1KSkgaXMgInsgYTogMTAsIGI6IDAsIGM6IDAsIGQ6IDUsIGU6IDAsIGY6IDIw
MH0iCitQQVNTIG1hdHJpeFRvU3RyaW5nKG1hdHJpeC5zY2FsZU5vblVuaWZvcm0oMiwgMykpIGlz
ICJ7IGE6IDQsIGI6IDAsIGM6IDAsIGQ6IDMsIGU6IDAsIGY6IDIwMH0iCitQQVNTIG1hdHJpeFRv
U3RyaW5nKG1hdHJpeC5za2V3WCg5MCkpIGlzICJ7IGE6IDIsIGI6IDAsIGM6IDMyNjYyNDc4NzA2
MzkwNzQwLCBkOiAxLCBlOiAwLCBmOiAyMDB9IgorUEFTUyBtYXRyaXhUb1N0cmluZyhtYXRyaXgu
c2tld1koOTApKSBpcyAieyBhOiAyLCBiOiAxNjMzMTIzOTM1MzE5NTM3MCwgYzogMCwgZDogMSwg
ZTogMCwgZjogMjAwfSIKKworQ2hlY2sgdGhhdCB0aGUgbWF0cml4IGlzIHN0aWxsIGNvbnRhaW5p
bmcgdGhlIGNvcnJlY3QgdmFsdWVzCitQQVNTIG1hdHJpeFRvU3RyaW5nKG1hdHJpeCkgaXMgInsg
YTogMiwgYjogMCwgYzogMCwgZDogMSwgZTogMCwgZjogMjAwfSIKKworQ2FsbGluZyBtZXRob2Rz
IHRoYXQgdGhyb3cgZXhjZXB0aW9ucworUEFTUyBtYXRyaXgucm90YXRlRnJvbVZlY3RvcigwLCA0
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBtYXRyaXgucm90
YXRlRnJvbVZlY3Rvcig0LCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9y
LgorUEFTUyBtYXRyaXguYSA9IDAgaXMgMAorUEFTUyBtYXRyaXguaW52ZXJzZSgpIHRocmV3IGV4
Y2VwdGlvbiBJbnZhbGlkU3RhdGVFcnJvcjogTWF0cml4IGlzIG5vdCBpbnZlcnRpYmxlLgorCiBQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHTWF0cml4Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdmcv
ZG9tL1NWR01hdHJpeC5odG1sCmluZGV4IDg3MjIwYzQ2ZGE5MWMwNWM2OWYwNDQ5NmFlZmM0NzAx
NmJlMTM4OWQuLmU4ZGYwZDg2MDExYzQ3ZmY4YjJmZDliMDNjOTZlYjY0OGQwZjJkNjUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHTWF0cml4Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvc3ZnL2RvbS9TVkdNYXRyaXguaHRtbApAQCAtNywxOSArNyw3MiBAQAogPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxzY3JpcHQ+Ci1kZXNjcmlw
dGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgU1ZHTWF0cml4IEFQSSIpOwogCiB2YXIgc3ZnRWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciLCAic3ZnIik7CiB2YXIgbWF0cml4ID0gc3ZnRWxlbWVudC5jcmVhdGVTVkdNYXRyaXgoKTsK
IAorZnVuY3Rpb24gbWF0cml4VG9TdHJpbmcobWF0cml4KQoreworCXJldHVybiAieyBhOiAiICsg
bWF0cml4LmEgKyAiLCBiOiAiICsgbWF0cml4LmIgKyAiLCBjOiAiICsgbWF0cml4LmMgKyAiLCBk
OiAiICsgbWF0cml4LmQgKyAiLCBlOiAiICsgbWF0cml4LmUgKyAiLCBmOiAiICsgbWF0cml4LmYg
KyAifSI7Cit9CisKK2Z1bmN0aW9uIGNoZWNrQXR0cmlidXRlU2V0dGluZyhtYXRyaXgsIG5hbWUp
IHsKKwl2YXIgdmFsdWUgPSBtYXRyaXhbbmFtZV07CisKKwlzaG91bGRCZSgibWF0cml4LiIgKyBu
YW1lICsgIiA9IG1hdHJpeCIsICJtYXRyaXgiKTsKKwlzaG91bGRCZSgibWF0cml4LiIgKyBuYW1l
LCAiTmFOIik7CisJc2hvdWxkQmUoIm1hdHJpeC4iICsgbmFtZSArICIgPSAwIiwgIjAiKTsKKwlz
aG91bGRCZSgibWF0cml4LiIgKyBuYW1lICsgIiA9IHN2Z0VsZW1lbnQiLCAic3ZnRWxlbWVudCIp
OworCXNob3VsZEJlKCJtYXRyaXguIiArIG5hbWUsICJOYU4iKTsKKwlzaG91bGRCZSgibWF0cml4
LiIgKyBuYW1lICsgIiA9IDAiLCAiMCIpOworCXNob3VsZEJlKCJtYXRyaXguIiArIG5hbWUgKyAi
ID0gJ2FTdHJpbmcnIiwgIidhU3RyaW5nJyIpOworCXNob3VsZEJlKCJtYXRyaXguIiArIG5hbWUs
ICJOYU4iKTsKKwkvL0NoZWNrIGFzc2lnbmluZyBudWxsIHdvcmtzIGFzIGV4cGVjdGVkCisJc2hv
dWxkQmVOdWxsKCJtYXRyaXguIiArIG5hbWUgKyAiID0gbnVsbCIpOworCXNob3VsZEJlKCJtYXRy
aXguIiArIG5hbWUsICIwIik7CisJLy8gUmVzZXQgdG8gcHJldmlvdXMgdmFsdWUuCisJc2hvdWxk
QmUoIm1hdHJpeC4iICsgbmFtZSArICIgPSAiICsgdmFsdWUudG9TdHJpbmcoKSwgdmFsdWUudG9T
dHJpbmcoKSk7Cit9CisKK2Z1bmN0aW9uIGNoZWNrTWV0aG9kQ2FsbGluZ09uZU1hdHJpeEFyZ3Vt
ZW50KG1hdHJpeCwgbmFtZSkgeworCWRlYnVnKCIiKTsKKwlkZWJ1ZygiQ2hlY2sgY2FsbGluZyAn
IiArIG5hbWUgKyAiJyB3aXRoIGludmFsaWQgYXJndW1lbnRzIik7CisJc2hvdWxkVGhyb3coIm1h
dHJpeC4iICsgbmFtZSArICIoKSIpOworCXNob3VsZFRocm93KCJtYXRyaXguIiArIG5hbWUgKyAi
KHRydWUpIik7CisJc2hvdWxkVGhyb3coIm1hdHJpeC4iICsgbmFtZSArICIoMikiKTsKKwlzaG91
bGRUaHJvdygibWF0cml4LiIgKyBuYW1lICsgIignYVN0cmluZycpIik7CisJc2hvdWxkVGhyb3co
Im1hdHJpeC4iICsgbmFtZSArICIoc3ZnRWxlbWVudCkiKTsKK30KKworZnVuY3Rpb24gY2hlY2tN
ZXRob2RDYWxsaW5nT25lTnVtZXJpY0FyZ3VtZW50KG1hdHJpeCwgbmFtZSkgeworCWRlYnVnKCIi
KTsKKwlkZWJ1ZygiQ2hlY2sgY2FsbGluZyAnIiArIG5hbWUgKyAiJyB3aXRoIGludmFsaWQgYXJn
dW1lbnRzIik7CisJc2hvdWxkVGhyb3coIm1hdHJpeC4iICsgbmFtZSArICIoKSIpOworCXNob3Vs
ZEJlTm9uTnVsbCgibWF0cml4LiIgKyBuYW1lICsgIignYVN0cmluZycpIik7CisJc2hvdWxkQmVO
b25OdWxsKCJtYXRyaXguIiArIG5hbWUgKyAiKHN2Z0VsZW1lbnQpIik7Cit9CisKK2Z1bmN0aW9u
IGNoZWNrTWV0aG9kQ2FsbGluZ1R3b051bWVyaWNBcmd1bWVudHMobWF0cml4LCBuYW1lKSB7CisJ
ZGVidWcoIiIpOworCWRlYnVnKCJDaGVjayBjYWxsaW5nICciICsgbmFtZSArICInIHdpdGggaW52
YWxpZCBhcmd1bWVudHMiKTsKKwlzaG91bGRUaHJvdygibWF0cml4LiIgKyBuYW1lICsgIigpIik7
CisJc2hvdWxkVGhyb3coIm1hdHJpeC4iICsgbmFtZSArICIodHJ1ZSkiKTsKKwlzaG91bGRUaHJv
dygibWF0cml4LiIgKyBuYW1lICsgIigyKSIpOworCXNob3VsZFRocm93KCJtYXRyaXguIiArIG5h
bWUgKyAiKCdhU3RyaW5nJykiKTsKKwlzaG91bGRUaHJvdygibWF0cml4LiIgKyBuYW1lICsgIihz
dmdFbGVtZW50KSIpOworCXNob3VsZEJlTm9uTnVsbCgibWF0cml4LiIgKyBuYW1lICsgIignYVN0
cmluZycsICdhU3RyaW5nJykiKTsKKwlzaG91bGRCZU5vbk51bGwoIm1hdHJpeC4iICsgbmFtZSAr
ICIoc3ZnRWxlbWVudCwgc3ZnRWxlbWVudCkiKTsKKwlzaG91bGRCZU5vbk51bGwoIm1hdHJpeC4i
ICsgbmFtZSArICIoMiwgJ2FTdHJpbmcnKSIpOworCXNob3VsZEJlTm9uTnVsbCgibWF0cml4LiIg
KyBuYW1lICsgIigyLCBzdmdFbGVtZW50KSIpOworCXNob3VsZEJlTm9uTnVsbCgibWF0cml4LiIg
KyBuYW1lICsgIignYVN0cmluZycsIDIpIik7CisJc2hvdWxkQmVOb25OdWxsKCJtYXRyaXguIiAr
IG5hbWUgKyAiKHN2Z0VsZW1lbnQsIDIpIik7Cit9CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3Qg
Y2hlY2tzIHRoZSBTVkdNYXRyaXggQVBJIik7CisKIGRlYnVnKCIiKTsKIGRlYnVnKCJDaGVjayBp
bml0aWFsIG1hdHJpeCB2YWx1ZXMiKTsKLXNob3VsZEJlKCJtYXRyaXguYSIsICIxIik7Ci1zaG91
bGRCZSgibWF0cml4LmIiLCAiMCIpOwotc2hvdWxkQmUoIm1hdHJpeC5jIiwgIjAiKTsKLXNob3Vs
ZEJlKCJtYXRyaXguZCIsICIxIik7Ci1zaG91bGRCZSgibWF0cml4LmUiLCAiMCIpOwotc2hvdWxk
QmUoIm1hdHJpeC5mIiwgIjAiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibWF0cml4VG9TdHJp
bmcobWF0cml4KSIsICJ7IGE6IDEsIGI6IDAsIGM6IDAsIGQ6IDEsIGU6IDAsIGY6IDB9Iik7CiAK
IGRlYnVnKCIiKTsKIGRlYnVnKCJDaGVjayBhc3NpZ25pbmcgbWF0cmljZXMiKTsKQEAgLTI4LDE2
OSArODEsNDggQEAgc2hvdWxkQmUoIm1hdHJpeC5mID0gMjAwIiwgIjIwMCIpOwogCiBkZWJ1Zygi
Iik7CiBkZWJ1ZygiQ2hlY2sgYXNzaWduaW5nIGludmFsaWQgbWF0cmljZXMiKTsKLXNob3VsZEJl
KCJtYXRyaXguYSA9IG1hdHJpeCIsICJtYXRyaXgiKTsKLXNob3VsZEJlKCJtYXRyaXguYSIsICJO
YU4iKTsKLXNob3VsZEJlKCJtYXRyaXguYSA9IDAiLCAiMCIpOwotc2hvdWxkQmUoIm1hdHJpeC5h
ID0gc3ZnRWxlbWVudCIsICJzdmdFbGVtZW50Iik7Ci1zaG91bGRCZSgibWF0cml4LmEiLCAiTmFO
Iik7Ci1zaG91bGRCZSgibWF0cml4LmEgPSAwIiwgIjAiKTsKLXNob3VsZEJlKCJtYXRyaXguYSA9
ICdhU3RyaW5nJyIsICInYVN0cmluZyciKTsKLXNob3VsZEJlKCJtYXRyaXguYSIsICJOYU4iKTsK
LS8vIFJlc2V0IHRvIHByZXZpb3VzIHZhbHVlLgotc2hvdWxkQmUoIm1hdHJpeC5hID0gMiIsICIy
Iik7Ci0KLXNob3VsZEJlKCJtYXRyaXguYiA9IG1hdHJpeCIsICJtYXRyaXgiKTsKLXNob3VsZEJl
KCJtYXRyaXguYiIsICJOYU4iKTsKLXNob3VsZEJlKCJtYXRyaXguYiA9IDAiLCAiMCIpOwotc2hv
dWxkQmUoIm1hdHJpeC5iID0gc3ZnRWxlbWVudCIsICJzdmdFbGVtZW50Iik7Ci1zaG91bGRCZSgi
bWF0cml4LmIiLCAiTmFOIik7Ci1zaG91bGRCZSgibWF0cml4LmIgPSAwIiwgIjAiKTsKLXNob3Vs
ZEJlKCJtYXRyaXguYiA9ICdhU3RyaW5nJyIsICInYVN0cmluZyciKTsKLXNob3VsZEJlKCJtYXRy
aXguYiIsICJOYU4iKTsKLS8vIFJlc2V0IHRvIHByZXZpb3VzIHZhbHVlLgotc2hvdWxkQmUoIm1h
dHJpeC5iID0gMCIsICIwIik7Ci0KLXNob3VsZEJlKCJtYXRyaXguYyA9IG1hdHJpeCIsICJtYXRy
aXgiKTsKLXNob3VsZEJlKCJtYXRyaXguYyIsICJOYU4iKTsKLXNob3VsZEJlKCJtYXRyaXguYyA9
IDAiLCAiMCIpOwotc2hvdWxkQmUoIm1hdHJpeC5jID0gc3ZnRWxlbWVudCIsICJzdmdFbGVtZW50
Iik7Ci1zaG91bGRCZSgibWF0cml4LmMiLCAiTmFOIik7Ci1zaG91bGRCZSgibWF0cml4LmMgPSAw
IiwgIjAiKTsKLXNob3VsZEJlKCJtYXRyaXguYyA9ICdhU3RyaW5nJyIsICInYVN0cmluZyciKTsK
LXNob3VsZEJlKCJtYXRyaXguYyIsICJOYU4iKTsKLS8vIFJlc2V0IHRvIHByZXZpb3VzIHZhbHVl
Lgotc2hvdWxkQmUoIm1hdHJpeC5jID0gMCIsICIwIik7Ci0KLXNob3VsZEJlKCJtYXRyaXguZCA9
IG1hdHJpeCIsICJtYXRyaXgiKTsKLXNob3VsZEJlKCJtYXRyaXguZCIsICJOYU4iKTsKLXNob3Vs
ZEJlKCJtYXRyaXguZCA9IDAiLCAiMCIpOwotc2hvdWxkQmUoIm1hdHJpeC5kID0gc3ZnRWxlbWVu
dCIsICJzdmdFbGVtZW50Iik7Ci1zaG91bGRCZSgibWF0cml4LmQiLCAiTmFOIik7Ci1zaG91bGRC
ZSgibWF0cml4LmQgPSAwIiwgIjAiKTsKLXNob3VsZEJlKCJtYXRyaXguZCA9ICdhU3RyaW5nJyIs
ICInYVN0cmluZyciKTsKLXNob3VsZEJlKCJtYXRyaXguZCIsICJOYU4iKTsKLS8vIFJlc2V0IHRv
IHByZXZpb3VzIHZhbHVlLgotc2hvdWxkQmUoIm1hdHJpeC5kID0gMSIsICIxIik7Ci0KLXNob3Vs
ZEJlKCJtYXRyaXguZSA9IG1hdHJpeCIsICJtYXRyaXgiKTsKLXNob3VsZEJlKCJtYXRyaXguZSIs
ICJOYU4iKTsKLXNob3VsZEJlKCJtYXRyaXguZSA9IDAiLCAiMCIpOwotc2hvdWxkQmUoIm1hdHJp
eC5lID0gc3ZnRWxlbWVudCIsICJzdmdFbGVtZW50Iik7Ci1zaG91bGRCZSgibWF0cml4LmUiLCAi
TmFOIik7Ci1zaG91bGRCZSgibWF0cml4LmUgPSAwIiwgIjAiKTsKLXNob3VsZEJlKCJtYXRyaXgu
ZSA9ICdhU3RyaW5nJyIsICInYVN0cmluZyciKTsKLXNob3VsZEJlKCJtYXRyaXguZSIsICJOYU4i
KTsKLS8vIFJlc2V0IHRvIHByZXZpb3VzIHZhbHVlLgotc2hvdWxkQmUoIm1hdHJpeC5lID0gMCIs
ICIwIik7Ci0KLXNob3VsZEJlKCJtYXRyaXguZiA9IG1hdHJpeCIsICJtYXRyaXgiKTsKLXNob3Vs
ZEJlKCJtYXRyaXguZiIsICJOYU4iKTsKLXNob3VsZEJlKCJtYXRyaXguZiA9IDAiLCAiMCIpOwot
c2hvdWxkQmUoIm1hdHJpeC5mID0gc3ZnRWxlbWVudCIsICJzdmdFbGVtZW50Iik7Ci1zaG91bGRC
ZSgibWF0cml4LmYiLCAiTmFOIik7Ci1zaG91bGRCZSgibWF0cml4LmYgPSAwIiwgIjAiKTsKLXNo
b3VsZEJlKCJtYXRyaXguZiA9ICdhU3RyaW5nJyIsICInYVN0cmluZyciKTsKLXNob3VsZEJlKCJt
YXRyaXguZiIsICJOYU4iKTsKLS8vIFJlc2V0IHRvIHByZXZpb3VzIHZhbHVlLgotc2hvdWxkQmUo
Im1hdHJpeC5mID0gMjAwIiwgIjIwMCIpOworY2hlY2tBdHRyaWJ1dGVTZXR0aW5nKG1hdHJpeCwg
ImEiKTsKK2NoZWNrQXR0cmlidXRlU2V0dGluZyhtYXRyaXgsICJiIik7CitjaGVja0F0dHJpYnV0
ZVNldHRpbmcobWF0cml4LCAiYyIpOworY2hlY2tBdHRyaWJ1dGVTZXR0aW5nKG1hdHJpeCwgImQi
KTsKK2NoZWNrQXR0cmlidXRlU2V0dGluZyhtYXRyaXgsICJlIik7CitjaGVja0F0dHJpYnV0ZVNl
dHRpbmcobWF0cml4LCAiZiIpOwogCiBkZWJ1ZygiIik7CiBkZWJ1ZygiQ2hlY2sgdGhhdCB0aGUg
bWF0cml4IGlzIHN0aWxsIGNvbnRhaW5pbmcgdGhlIGNvcnJlY3QgdmFsdWVzIik7Ci1zaG91bGRC
ZSgibWF0cml4LmEiLCAiMiIpOwotc2hvdWxkQmUoIm1hdHJpeC5iIiwgIjAiKTsKLXNob3VsZEJl
KCJtYXRyaXguYyIsICIwIik7Ci1zaG91bGRCZSgibWF0cml4LmQiLCAiMSIpOwotc2hvdWxkQmUo
Im1hdHJpeC5lIiwgIjAiKTsKLXNob3VsZEJlKCJtYXRyaXguZiIsICIyMDAiKTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygibWF0cml4VG9TdHJpbmcobWF0cml4KSIsICJ7IGE6IDIsIGI6IDAsIGM6
IDAsIGQ6IDEsIGU6IDAsIGY6IDIwMH0iKTsKIAotZGVidWcoIiIpOwotZGVidWcoIkNoZWNrIGFz
c2lnbmluZyBudWxsIHdvcmtzIGFzIGV4cGVjdGVkIik7Ci1zaG91bGRCZU51bGwoIm1hdHJpeC5m
ID0gbnVsbCIpOwotc2hvdWxkQmUoIm1hdHJpeC5hIiwgIjIiKTsKLXNob3VsZEJlKCJtYXRyaXgu
YiIsICIwIik7Ci1zaG91bGRCZSgibWF0cml4LmMiLCAiMCIpOwotc2hvdWxkQmUoIm1hdHJpeC5k
IiwgIjEiKTsKLXNob3VsZEJlKCJtYXRyaXguZSIsICIwIik7Ci1zaG91bGRCZSgibWF0cml4LmYi
LCAiMCIpOwotCi1kZWJ1ZygiIik7Ci1kZWJ1ZygiQ2hlY2sgY2FsbGluZyAnbXVsdGlwbHknIHdp
dGggaW52YWxpZCBhcmd1bWVudHMiKTsKLXNob3VsZFRocm93KCJtYXRyaXgubXVsdGlwbHkoKSIp
Owotc2hvdWxkVGhyb3coIm1hdHJpeC5tdWx0aXBseSh0cnVlKSIpOwotc2hvdWxkVGhyb3coIm1h
dHJpeC5tdWx0aXBseSgyKSIpOwotc2hvdWxkVGhyb3coIm1hdHJpeC5tdWx0aXBseSgnYVN0cmlu
ZycpIik7Ci1zaG91bGRUaHJvdygibWF0cml4Lm11bHRpcGx5KHN2Z0VsZW1lbnQpIik7CitjaGVj
a01ldGhvZENhbGxpbmdPbmVNYXRyaXhBcmd1bWVudChtYXRyaXgsICJtdWx0aXBseSIpCitjaGVj
a01ldGhvZENhbGxpbmdUd29OdW1lcmljQXJndW1lbnRzKG1hdHJpeCwgInRyYW5zbGF0ZSIpOwor
Y2hlY2tNZXRob2RDYWxsaW5nT25lTnVtZXJpY0FyZ3VtZW50KG1hdHJpeCwgInNjYWxlIik7Citj
aGVja01ldGhvZENhbGxpbmdUd29OdW1lcmljQXJndW1lbnRzKG1hdHJpeCwgInNjYWxlTm9uVW5p
Zm9ybSIpOworY2hlY2tNZXRob2RDYWxsaW5nT25lTnVtZXJpY0FyZ3VtZW50KG1hdHJpeCwgInJv
dGF0ZSIpOworY2hlY2tNZXRob2RDYWxsaW5nVHdvTnVtZXJpY0FyZ3VtZW50cyhtYXRyaXgsICJy
b3RhdGVGcm9tVmVjdG9yIik7CitjaGVja01ldGhvZENhbGxpbmdPbmVOdW1lcmljQXJndW1lbnQo
bWF0cml4LCAic2tld1giKTsKK2NoZWNrTWV0aG9kQ2FsbGluZ09uZU51bWVyaWNBcmd1bWVudCht
YXRyaXgsICJza2V3WSIpOwogCiBkZWJ1ZygiIik7Ci1kZWJ1ZygiQ2hlY2sgY2FsbGluZyAndHJh
bnNsYXRlJyB3aXRoIGludmFsaWQgYXJndW1lbnRzIik7Ci1zaG91bGRUaHJvdygibWF0cml4LnRy
YW5zbGF0ZSgpIik7Ci1zaG91bGRUaHJvdygibWF0cml4LnRyYW5zbGF0ZSh0cnVlKSIpOwotc2hv
dWxkVGhyb3coIm1hdHJpeC50cmFuc2xhdGUoMikiKTsKLXNob3VsZFRocm93KCJtYXRyaXgudHJh
bnNsYXRlKCdhU3RyaW5nJykiKTsKLXNob3VsZFRocm93KCJtYXRyaXgudHJhbnNsYXRlKHN2Z0Vs
ZW1lbnQpIik7Ci0vLyBUaGUgZm9sbG93aW5nIHN0cmluZyBhbmQgb2JqZWN0IGFyZ3VtZW50cyBj
b252ZXJ0IHRvIE5hTgotLy8gcGVyIEVDTUEtMjYyLCA5LjMsICJUb051bWJlciIuCi1zaG91bGRC
ZU5vbk51bGwoIm1hdHJpeC50cmFuc2xhdGUoJ2FTdHJpbmcnLCAnYVN0cmluZycpIik7Ci1zaG91
bGRCZU5vbk51bGwoIm1hdHJpeC50cmFuc2xhdGUoc3ZnRWxlbWVudCwgc3ZnRWxlbWVudCkiKTsK
LXNob3VsZEJlTm9uTnVsbCgibWF0cml4LnRyYW5zbGF0ZSgyLCAnYVN0cmluZycpIik7Ci1zaG91
bGRCZU5vbk51bGwoIm1hdHJpeC50cmFuc2xhdGUoMiwgc3ZnRWxlbWVudCkiKTsKLXNob3VsZEJl
Tm9uTnVsbCgibWF0cml4LnRyYW5zbGF0ZSgnYVN0cmluZycsIDIpIik7Ci1zaG91bGRCZU5vbk51
bGwoIm1hdHJpeC50cmFuc2xhdGUoc3ZnRWxlbWVudCwgMikiKTsKK2RlYnVnKCJDaGVjayBjYWxs
aW5nIFNWR01hdHJpeCBtZXRob2RzIHdpdGggdmFsaWQgYXJndW1lbnRzIik7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoIm1hdHJpeFRvU3RyaW5nKG1hdHJpeC50cmFuc2xhdGUoMTAsIDIwKSkiLCAi
eyBhOiAyLCBiOiAwLCBjOiAwLCBkOiAxLCBlOiAyMCwgZjogMjIwfSIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJtYXRyaXhUb1N0cmluZyhtYXRyaXguc2NhbGUoNSkpIiwgInsgYTogMTAsIGI6
IDAsIGM6IDAsIGQ6IDUsIGU6IDAsIGY6IDIwMH0iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygi
bWF0cml4VG9TdHJpbmcobWF0cml4LnNjYWxlTm9uVW5pZm9ybSgyLCAzKSkiLCAieyBhOiA0LCBi
OiAwLCBjOiAwLCBkOiAzLCBlOiAwLCBmOiAyMDB9Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
Im1hdHJpeFRvU3RyaW5nKG1hdHJpeC5za2V3WCg5MCkpIiwgInsgYTogMiwgYjogMCwgYzogMzI2
NjI0Nzg3MDYzOTA3NDAsIGQ6IDEsIGU6IDAsIGY6IDIwMH0iKTsKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygibWF0cml4VG9TdHJpbmcobWF0cml4LnNrZXdZKDkwKSkiLCAieyBhOiAyLCBiOiAxNjMz
MTIzOTM1MzE5NTM3MCwgYzogMCwgZDogMSwgZTogMCwgZjogMjAwfSIpOwogCiBkZWJ1ZygiIik7
Ci1kZWJ1ZygiQ2hlY2sgY2FsbGluZyAnc2NhbGUnIHdpdGggaW52YWxpZCBhcmd1bWVudHMiKTsK
LXNob3VsZFRocm93KCJtYXRyaXguc2NhbGUoKSIpOwotc2hvdWxkQmVOb25OdWxsKCJtYXRyaXgu
c2NhbGUoJ2FTdHJpbmcnKSIpOwotc2hvdWxkQmVOb25OdWxsKCJtYXRyaXguc2NhbGUoc3ZnRWxl
bWVudCkiKTsKLQotCi1kZWJ1ZygiIik7Ci1kZWJ1ZygiQ2hlY2sgY2FsbGluZyAnc2NhbGVOb25V
bmlmb3JtJyB3aXRoIGludmFsaWQgYXJndW1lbnRzIik7Ci1zaG91bGRUaHJvdygibWF0cml4LnNj
YWxlTm9uVW5pZm9ybSgpIik7Ci1zaG91bGRUaHJvdygibWF0cml4LnNjYWxlTm9uVW5pZm9ybSh0
cnVlKSIpOwotc2hvdWxkVGhyb3coIm1hdHJpeC5zY2FsZU5vblVuaWZvcm0oMikiKTsKLXNob3Vs
ZFRocm93KCJtYXRyaXguc2NhbGVOb25Vbmlmb3JtKCdhU3RyaW5nJykiKTsKLXNob3VsZFRocm93
KCJtYXRyaXguc2NhbGVOb25Vbmlmb3JtKHN2Z0VsZW1lbnQpIik7Ci1zaG91bGRCZU5vbk51bGwo
Im1hdHJpeC5zY2FsZU5vblVuaWZvcm0oJ2FTdHJpbmcnLCAnYVN0cmluZycpIik7Ci1zaG91bGRC
ZU5vbk51bGwoIm1hdHJpeC5zY2FsZU5vblVuaWZvcm0oc3ZnRWxlbWVudCwgc3ZnRWxlbWVudCki
KTsKLXNob3VsZEJlTm9uTnVsbCgibWF0cml4LnNjYWxlTm9uVW5pZm9ybSgyLCAnYVN0cmluZycp
Iik7Ci1zaG91bGRCZU5vbk51bGwoIm1hdHJpeC5zY2FsZU5vblVuaWZvcm0oMiwgc3ZnRWxlbWVu
dCkiKTsKLXNob3VsZEJlTm9uTnVsbCgibWF0cml4LnNjYWxlTm9uVW5pZm9ybSgnYVN0cmluZycs
IDIpIik7Ci1zaG91bGRCZU5vbk51bGwoIm1hdHJpeC5zY2FsZU5vblVuaWZvcm0oc3ZnRWxlbWVu
dCwgMikiKTsKLQotZGVidWcoIiIpOwotZGVidWcoIkNoZWNrIGNhbGxpbmcgJ3JvdGF0ZScgd2l0
aCBpbnZhbGlkIGFyZ3VtZW50cyIpOwotc2hvdWxkVGhyb3coIm1hdHJpeC5yb3RhdGUoKSIpOwot
c2hvdWxkQmVOb25OdWxsKCJtYXRyaXgucm90YXRlKCdhU3RyaW5nJykiKTsKLXNob3VsZEJlTm9u
TnVsbCgibWF0cml4LnJvdGF0ZShzdmdFbGVtZW50KSIpOwotCi1kZWJ1ZygiIik7Ci1kZWJ1Zygi
Q2hlY2sgY2FsbGluZyAncm90YXRlRnJvbVZlY3Rvcicgd2l0aCBpbnZhbGlkIGFyZ3VtZW50cyIp
Owotc2hvdWxkVGhyb3coIm1hdHJpeC5yb3RhdGVGcm9tVmVjdG9yKCkiKTsKLXNob3VsZFRocm93
KCJtYXRyaXgucm90YXRlRnJvbVZlY3Rvcih0cnVlKSIpOwotc2hvdWxkVGhyb3coIm1hdHJpeC5y
b3RhdGVGcm9tVmVjdG9yKDIpIik7Ci1zaG91bGRUaHJvdygibWF0cml4LnJvdGF0ZUZyb21WZWN0
b3IoJ2FTdHJpbmcnKSIpOwotc2hvdWxkVGhyb3coIm1hdHJpeC5yb3RhdGVGcm9tVmVjdG9yKHN2
Z0VsZW1lbnQpIik7Ci1zaG91bGRCZU5vbk51bGwoIm1hdHJpeC5yb3RhdGVGcm9tVmVjdG9yKCdh
U3RyaW5nJywgJ2FTdHJpbmcnKSIpOwotc2hvdWxkQmVOb25OdWxsKCJtYXRyaXgucm90YXRlRnJv
bVZlY3RvcihzdmdFbGVtZW50LCBzdmdFbGVtZW50KSIpOwotc2hvdWxkQmVOb25OdWxsKCJtYXRy
aXgucm90YXRlRnJvbVZlY3RvcigyLCAnYVN0cmluZycpIik7Ci1zaG91bGRCZU5vbk51bGwoIm1h
dHJpeC5yb3RhdGVGcm9tVmVjdG9yKDIsIHN2Z0VsZW1lbnQpIik7Ci1zaG91bGRCZU5vbk51bGwo
Im1hdHJpeC5yb3RhdGVGcm9tVmVjdG9yKCdhU3RyaW5nJywgMikiKTsKLXNob3VsZEJlTm9uTnVs
bCgibWF0cml4LnJvdGF0ZUZyb21WZWN0b3Ioc3ZnRWxlbWVudCwgMikiKTsKK2RlYnVnKCJDaGVj
ayB0aGF0IHRoZSBtYXRyaXggaXMgc3RpbGwgY29udGFpbmluZyB0aGUgY29ycmVjdCB2YWx1ZXMi
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibWF0cml4VG9TdHJpbmcobWF0cml4KSIsICJ7IGE6
IDIsIGI6IDAsIGM6IDAsIGQ6IDEsIGU6IDAsIGY6IDIwMH0iKTsKIAogZGVidWcoIiIpOwotZGVi
dWcoIkNoZWNrIGNhbGxpbmcgJ3NrZXdYJyB3aXRoIGludmFsaWQgYXJndW1lbnRzIik7Ci1zaG91
bGRUaHJvdygibWF0cml4LnNrZXdYKCkiKTsKLXNob3VsZEJlTm9uTnVsbCgibWF0cml4LnNrZXdY
KCdhU3RyaW5nJykiKTsKLXNob3VsZEJlTm9uTnVsbCgibWF0cml4LnNrZXdYKHN2Z0VsZW1lbnQp
Iik7CitkZWJ1ZygiQ2FsbGluZyBtZXRob2RzIHRoYXQgdGhyb3cgZXhjZXB0aW9ucyIpOworc2hv
dWxkVGhyb3coIm1hdHJpeC5yb3RhdGVGcm9tVmVjdG9yKDAsIDQpIik7CitzaG91bGRUaHJvdygi
bWF0cml4LnJvdGF0ZUZyb21WZWN0b3IoNCwgMCkiKTsKK3Nob3VsZEJlKCJtYXRyaXguYSA9IDAi
LCAiMCIpOworc2hvdWxkVGhyb3coIm1hdHJpeC5pbnZlcnNlKCkiKTsKIAogZGVidWcoIiIpOwot
ZGVidWcoIkNoZWNrIGNhbGxpbmcgJ3NrZXdZJyB3aXRoIGludmFsaWQgYXJndW1lbnRzIik7Ci1z
aG91bGRUaHJvdygibWF0cml4LnNrZXdZKCkiKTsKLXNob3VsZEJlTm9uTnVsbCgibWF0cml4LnNr
ZXdZKCdhU3RyaW5nJykiKTsKLXNob3VsZEJlTm9uTnVsbCgibWF0cml4LnNrZXdZKHN2Z0VsZW1l
bnQpIik7Ci0KIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKIDwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5
Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>