<?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>198761</bug_id>
          
          <creation_ts>2019-06-11 11:12:04 -0700</creation_ts>
          <short_desc>[WASM-References] Add support for Table.size, grow and fill instructions</short_desc>
          <delta_ts>2019-06-18 18:19:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Michaud">justin_michaud</reporter>
          <assigned_to name="Justin Michaud">justin_michaud</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1543768</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2019-06-11 11:12:04 -0700</bug_when>
    <thetext>Add support for Table.size, grow and fill</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544844</commentid>
    <comment_count>1</comment_count>
      <attachid>372141</attachid>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2019-06-14 14:20:15 -0700</bug_when>
    <thetext>Created attachment 372141
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544845</commentid>
    <comment_count>2</comment_count>
      <attachid>372141</attachid>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2019-06-14 14:20:48 -0700</bug_when>
    <thetext>Comment on attachment 372141
Patch

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

&gt; Source/JavaScriptCore/wasm/WasmInstance.cpp:94
&gt; +    // TODO doSet

Once the Funcref patch lands, we can do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544846</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-06-14 14:22:31 -0700</bug_when>
    <thetext>This patch modifies one of the wasm.json files. Please ensure that any changes in one have been mirrored to the other. You can find the wasm.json files at &quot;Source/JavaScriptCore/wasm/wasm.json&quot; and &quot;JSTests/wasm/wasm.json&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544847</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-06-14 14:22:45 -0700</bug_when>
    <thetext>Attachment 372141 did not pass style-queue:


ERROR: Source/JavaScriptCore/wasm/generateWasmOpsHeader.py:68:  [&lt;lambda&gt;] Undefined variable &apos;isUnary&apos;  [pylint/E0602] [5]
ERROR: Source/JavaScriptCore/wasm/generateWasmOpsHeader.py:68:  [&lt;lambda&gt;] Undefined variable &apos;isBinary&apos;  [pylint/E0602] [5]
Total errors found: 2 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544884</commentid>
    <comment_count>5</comment_count>
      <attachid>372141</attachid>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-06-14 16:12:15 -0700</bug_when>
    <thetext>Comment on attachment 372141
Patch

Attachment 372141 did not pass jsc-ews (mac):
Output: https://webkit-queues.webkit.org/results/12477300

New failing tests:
wasm.yaml/wasm/references/anyref_table.js.wasm-no-call-ic
wasm.yaml/wasm/references/anyref_table_import.js.wasm-no-cjit-yes-tls-context
wasm.yaml/wasm/references/anyref_table.js.wasm-collect-continuously
wasm.yaml/wasm/references/anyref_table_import.js.wasm-no-call-ic
wasm.yaml/wasm/references/anyref_table_import.js.default-wasm
wasm.yaml/wasm/references/anyref_table_import.js.wasm-no-tls-context
wasm.yaml/wasm/references/anyref_table_import.js.wasm-eager-jettison
wasm.yaml/wasm/references/anyref_table.js.wasm-no-cjit-yes-tls-context
wasm.yaml/wasm/references/anyref_table_import.js.wasm-collect-continuously
wasm.yaml/wasm/references/anyref_table.js.wasm-no-tls-context
wasm.yaml/wasm/references/anyref_table.js.wasm-slow-memory
wasm.yaml/wasm/references/anyref_table.js.wasm-eager-jettison
wasm.yaml/wasm/references/anyref_table.js.default-wasm
wasm.yaml/wasm/references/anyref_table_import.js.wasm-slow-memory
apiTests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544901</commentid>
    <comment_count>6</comment_count>
      <attachid>372156</attachid>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2019-06-14 17:30:41 -0700</bug_when>
    <thetext>Created attachment 372156
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544905</commentid>
    <comment_count>7</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-06-14 17:33:39 -0700</bug_when>
    <thetext>Attachment 372156 did not pass style-queue:


ERROR: Source/JavaScriptCore/wasm/generateWasmOpsHeader.py:68:  [&lt;lambda&gt;] Undefined variable &apos;isUnary&apos;  [pylint/E0602] [5]
ERROR: Source/JavaScriptCore/wasm/generateWasmOpsHeader.py:68:  [&lt;lambda&gt;] Undefined variable &apos;isBinary&apos;  [pylint/E0602] [5]
Total errors found: 2 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545535</commentid>
    <comment_count>8</comment_count>
      <attachid>372156</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-06-17 19:41:46 -0700</bug_when>
    <thetext>Comment on attachment 372156
Patch

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

r=me

&gt; Source/JavaScriptCore/wasm/WasmFunctionParser.h:307
&gt; +        switch ((ExtTableOpType) extOp) {

Use `static_cast&lt;ExtTableOpType&gt;(extOp)`.

&gt; Source/JavaScriptCore/wasm/WasmInstance.cpp:90
&gt; +    if (!newSize || *newSize == oldSize)
&gt; +        return -1;

delta = 0, returning -1, I think this is a spec bug. So, can we have a FIXME comment here with an url pointing bugzilla issue about the spec bug?

&gt; Source/JavaScriptCore/wasm/WasmInstance.cpp:107
&gt; +    unsigned i = offset;
&gt; +    unsigned n = count;

Can we use the names `offset` and `count` for the local variables instead? Using `offset` and `count` is better than `i` and `n`.
Like, putting `unsafeOffset` and `unsafeCount` as parameters, validate with the above if-statement, and copy them to the `unsigned` offset and count.

&gt; Source/JavaScriptCore/wasm/WasmInstance.cpp:110
&gt; +    if (i &gt;= instance-&gt;table()-&gt;length() || i + n &gt; instance-&gt;table()-&gt;length())
&gt; +        return false;

I think only `i + n &gt; instance-&gt;table()-&gt;length()` is OK. The maximum value of i and n is INT32_MAX. INT32_MAX + INT32_MAX does not exceed UINT32_MAX, so we do not need to consider about overflow too.

&gt; Source/JavaScriptCore/wasm/WasmTable.cpp:130
&gt; +    for (uint32_t i = m_length; i &lt; allocatedLength(newLength); ++i)
&gt; +        m_jsValues.get()[i].setWithoutWriteBarrier(jsNull());
&gt; +

This part is already fixed in https://trac.webkit.org/changeset/246487/webkit, so it is not necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545847</commentid>
    <comment_count>9</comment_count>
      <attachid>372156</attachid>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2019-06-18 15:32:54 -0700</bug_when>
    <thetext>Comment on attachment 372156
Patch

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

&gt;&gt; Source/JavaScriptCore/wasm/WasmInstance.cpp:110
&gt;&gt; +        return false;
&gt; 
&gt; I think only `i + n &gt; instance-&gt;table()-&gt;length()` is OK. The maximum value of i and n is INT32_MAX. INT32_MAX + INT32_MAX does not exceed UINT32_MAX, so we do not need to consider about overflow too.

If n=0, I=table-&gt;length then it should not succeed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545863</commentid>
    <comment_count>10</comment_count>
      <attachid>372397</attachid>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2019-06-18 15:56:53 -0700</bug_when>
    <thetext>Created attachment 372397
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545864</commentid>
    <comment_count>11</comment_count>
      <attachid>372398</attachid>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2019-06-18 15:58:11 -0700</bug_when>
    <thetext>Created attachment 372398
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545866</commentid>
    <comment_count>12</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-06-18 16:01:23 -0700</bug_when>
    <thetext>Attachment 372398 did not pass style-queue:


ERROR: Source/JavaScriptCore/wasm/generateWasmOpsHeader.py:68:  [&lt;lambda&gt;] Undefined variable &apos;isUnary&apos;  [pylint/E0602] [5]
ERROR: Source/JavaScriptCore/wasm/generateWasmOpsHeader.py:68:  [&lt;lambda&gt;] Undefined variable &apos;isBinary&apos;  [pylint/E0602] [5]
Total errors found: 2 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545921</commentid>
    <comment_count>13</comment_count>
      <attachid>372398</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-18 18:18:49 -0700</bug_when>
    <thetext>Comment on attachment 372398
Patch

Clearing flags on attachment: 372398

Committed r246577: &lt;https://trac.webkit.org/changeset/246577&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545922</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-18 18:18:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545924</commentid>
    <comment_count>15</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-06-18 18:19:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/51875848&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372141</attachid>
            <date>2019-06-14 14:20:15 -0700</date>
            <delta_ts>2019-06-14 17:30:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198761-20190614142014.patch</filename>
            <type>text/plain</type>
            <size>35078</size>
            <attacher name="Justin Michaud">justin_michaud</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2NDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NWVlMjY3MzU3MTQzYzUwNjc2Y2I3ZTE0YTJkOWFjNTY4YTJkMThiLi44YTBlYzFmOTBmOWI3Mzdl
MzBmZGFjMjU1NDNjNDAxZDg4MjVkNmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxOS0wNi0xNCAgSnVzdGluIE1pY2hhdWQgIDxqdXN0aW5fbWljaGF1ZEBh
cHBsZS5jb20+CisKKyAgICAgICAgW1dBU00tUmVmZXJlbmNlc10gQWRkIHN1cHBvcnQgZm9yIFRh
YmxlLnNpemUsIGdyb3cgYW5kIGZpbGwgaW5zdHJ1Y3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg3NjEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgVGFibGUuc2l6ZSwg
Z3JvdyBhbmQgZmlsbCBpbnN0cnVjdGlvbnMuIFRoaXMgYWxzbyByZXF1aXJlZAorICAgICAgICBh
ZGRpbmcgc3VwcG9ydCBmb3IgdHdvLWJ5dGUgb3Bjb2RlcyB0byB0aGUgb3BzIGdlbmVyYXRvci4K
KworICAgICAgICAqIHdhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6
V2FzbTo6QWlySVJHZW5lcmF0b3I6OmdBbnlyZWYpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJ
UkdlbmVyYXRvcjo6dG1wRm9yVHlwZSk6CisgICAgICAgIChKU0M6Oldhc206OkFpcklSR2VuZXJh
dG9yOjphZGRUYWJsZVNpemUpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6
YWRkVGFibGVHcm93KToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OmFkZFRh
YmxlRmlsbCk6CisgICAgICAgICogd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHA6CisgICAgICAg
IChKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OmFkZFRhYmxlU2l6ZSk6CisgICAgICAgIChKU0M6
Oldhc206OkIzSVJHZW5lcmF0b3I6OmFkZFRhYmxlR3Jvdyk6CisgICAgICAgIChKU0M6Oldhc206
OkIzSVJHZW5lcmF0b3I6OmFkZFRhYmxlRmlsbCk6CisgICAgICAgICogd2FzbS9XYXNtRXhjZXB0
aW9uVHlwZS5oOgorICAgICAgICAqIHdhc20vV2FzbUZvcm1hdC5oOgorICAgICAgICAoSlNDOjpX
YXNtOjpUYWJsZUluZm9ybWF0aW9uOjp3YXNtVHlwZSBjb25zdCk6CisgICAgICAgICogd2FzbS9X
YXNtRnVuY3Rpb25QYXJzZXIuaDoKKyAgICAgICAgKEpTQzo6V2FzbTo6RnVuY3Rpb25QYXJzZXI8
Q29udGV4dD46OnBhcnNlRXhwcmVzc2lvbik6CisgICAgICAgIChKU0M6Oldhc206OkZ1bmN0aW9u
UGFyc2VyPENvbnRleHQ+OjpwYXJzZVVucmVhY2hhYmxlRXhwcmVzc2lvbik6CisgICAgICAgICog
d2FzbS9XYXNtSW5zdGFuY2UuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpkb1dhc21UYWJsZUdy
b3cpOgorICAgICAgICAoSlNDOjpXYXNtOjpkb1dhc21UYWJsZUZpbGwpOgorICAgICAgICAqIHdh
c20vV2FzbUluc3RhbmNlLmg6CisgICAgICAgICogd2FzbS9XYXNtVGFibGUuY3BwOgorICAgICAg
ICAoSlNDOjpXYXNtOjpUYWJsZTo6Z3Jvdyk6CisgICAgICAgICogd2FzbS9XYXNtVmFsaWRhdGUu
Y3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWxpZGF0ZTo6YWRkVGFibGVTaXplKToKKyAgICAg
ICAgKEpTQzo6V2FzbTo6VmFsaWRhdGU6OmFkZFRhYmxlR3Jvdyk6CisgICAgICAgIChKU0M6Oldh
c206OlZhbGlkYXRlOjphZGRUYWJsZUZpbGwpOgorICAgICAgICAqIHdhc20vZ2VuZXJhdGVXYXNt
T3BzSGVhZGVyLnB5OgorICAgICAgICAob3Bjb2RlTWFjcm9pemVyKToKKyAgICAgICAgKEV4dFRh
YmxlT3BUeXBlKToKKyAgICAgICAgKiB3YXNtL3dhc20uanNvbjoKKwogMjAxOS0wNi0xMyAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFlhcnIgYnl0ZWNvZGUg
Y29tcGlsYXRpb24gZmFpbHVyZSBzaG91bGQgYmUgZ3JhY2VmdWxseSBoYW5kbGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcAppbmRleCA1
N2IzZGY4MTBlNGIxMmY5ZTczYWM0YjE0NzgwYjE2NDlkODczY2IyLi5jOTFmOTk5NjRkZmYzZTk0
NzdjYjMwZjJmYjIxNmRiNjFmMTg5N2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAKQEAgLTIzOCw2ICsyMzgsOSBAQCBwdWJsaWM6
CiAgICAgLy8gVGFibGVzCiAgICAgUGFydGlhbFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRk
VGFibGVHZXQoRXhwcmVzc2lvblR5cGUmIGlkeCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCk7CiAg
ICAgUGFydGlhbFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkVGFibGVTZXQoRXhwcmVzc2lv
blR5cGUmIGlkeCwgRXhwcmVzc2lvblR5cGUmIHZhbHVlKTsKKyAgICBQYXJ0aWFsUmVzdWx0IFdB
Uk5fVU5VU0VEX1JFVFVSTiBhZGRUYWJsZVNpemUoRXhwcmVzc2lvblR5cGUmIHJlc3VsdCk7Cisg
ICAgUGFydGlhbFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkVGFibGVHcm93KEV4cHJlc3Np
b25UeXBlJiBmaWxsLCBFeHByZXNzaW9uVHlwZSYgZGVsdGEsIEV4cHJlc3Npb25UeXBlJiByZXN1
bHQpOworICAgIFBhcnRpYWxSZXN1bHQgV0FSTl9VTlVTRURfUkVUVVJOIGFkZFRhYmxlRmlsbChF
eHByZXNzaW9uVHlwZSYgb2Zmc2V0LCBFeHByZXNzaW9uVHlwZSYgZmlsbCwgRXhwcmVzc2lvblR5
cGUmIGNvdW50KTsKIAogICAgIC8vIExvY2FscwogICAgIFBhcnRpYWxSZXN1bHQgV0FSTl9VTlVT
RURfUkVUVVJOIGdldExvY2FsKHVpbnQzMl90IGluZGV4LCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0
KTsKQEAgLTM2MCw2ICszNjMsNyBAQCBwcml2YXRlOgogCiAgICAgVHlwZWRUbXAgZzMyKCkgeyBy
ZXR1cm4geyBuZXdUbXAoQjM6OkdQKSwgVHlwZTo6STMyIH07IH0KICAgICBUeXBlZFRtcCBnNjQo
KSB7IHJldHVybiB7IG5ld1RtcChCMzo6R1ApLCBUeXBlOjpJNjQgfTsgfQorICAgIFR5cGVkVG1w
IGdBbnlyZWYoKSB7IHJldHVybiB7IG5ld1RtcChCMzo6R1ApLCBUeXBlOjpBbnlyZWYgfTsgfQog
ICAgIFR5cGVkVG1wIGYzMigpIHsgcmV0dXJuIHsgbmV3VG1wKEIzOjpGUCksIFR5cGU6OkYzMiB9
OyB9CiAgICAgVHlwZWRUbXAgZjY0KCkgeyByZXR1cm4geyBuZXdUbXAoQjM6OkZQKSwgVHlwZTo6
RjY0IH07IH0KIApAQCAtMzY5LDggKzM3Myw5IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgVHlw
ZTo6STMyOgogICAgICAgICAgICAgcmV0dXJuIGczMigpOwogICAgICAgICBjYXNlIFR5cGU6Okk2
NDoKLSAgICAgICAgY2FzZSBUeXBlOjpBbnlyZWY6CiAgICAgICAgICAgICByZXR1cm4gZzY0KCk7
CisgICAgICAgIGNhc2UgVHlwZTo6QW55cmVmOgorICAgICAgICAgICAgcmV0dXJuIGdBbnlyZWYo
KTsKICAgICAgICAgY2FzZSBUeXBlOjpGMzI6CiAgICAgICAgICAgICByZXR1cm4gZjMyKCk7CiAg
ICAgICAgIGNhc2UgVHlwZTo6RjY0OgpAQCAtOTg4LDYgKzk5Myw1NCBAQCBhdXRvIEFpcklSR2Vu
ZXJhdG9yOjphZGRUYWJsZVNldChFeHByZXNzaW9uVHlwZSYgaWR4LCBFeHByZXNzaW9uVHlwZSYg
dmFsdWUpIC0+CiAgICAgcmV0dXJuIHsgfTsKIH0KIAorYXV0byBBaXJJUkdlbmVyYXRvcjo6YWRk
VGFibGVTaXplKEV4cHJlc3Npb25UeXBlJiByZXN1bHQpIC0+IFBhcnRpYWxSZXN1bHQKK3sKKyAg
ICAvLyBGSVhNRTogRW1pdCB0aGlzIGlubGluZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5ODUwNj4uCisgICAgcmVzdWx0ID0gdG1wRm9yVHlwZShUeXBlOjpJMzIp
OworCisgICAgaW50MzJfdCAoKmRvU2l6ZSkoSW5zdGFuY2UqKSA9IFtdIChJbnN0YW5jZSogaW5z
dGFuY2UpIC0+IGludDMyX3QgeworICAgICAgICByZXR1cm4gaW5zdGFuY2UtPnRhYmxlKCktPmxl
bmd0aCgpOworICAgIH07CisKKyAgICBlbWl0Q0NhbGwoZG9TaXplLCByZXN1bHQsIGluc3RhbmNl
VmFsdWUoKSk7CisKKyAgICByZXR1cm4geyB9OworfQorCithdXRvIEFpcklSR2VuZXJhdG9yOjph
ZGRUYWJsZUdyb3coRXhwcmVzc2lvblR5cGUmIGZpbGwsIEV4cHJlc3Npb25UeXBlJiBkZWx0YSwg
RXhwcmVzc2lvblR5cGUmIHJlc3VsdCkgLT4gUGFydGlhbFJlc3VsdAoreworICAgIEFTU0VSVChm
aWxsLnRtcCgpKTsKKyAgICBBU1NFUlQoZmlsbC50eXBlKCkgPT0gbV9pbmZvLnRhYmxlSW5mb3Jt
YXRpb24ud2FzbVR5cGUoKSk7CisgICAgQVNTRVJUKGRlbHRhLnRtcCgpKTsKKyAgICBBU1NFUlQo
ZGVsdGEudHlwZSgpID09IFR5cGU6OkkzMik7CisgICAgcmVzdWx0ID0gdG1wRm9yVHlwZShUeXBl
OjpJMzIpOworCisgICAgZW1pdENDYWxsKCZkb1dhc21UYWJsZUdyb3csIHJlc3VsdCwgaW5zdGFu
Y2VWYWx1ZSgpLCBmaWxsLCBkZWx0YSk7CisKKyAgICByZXR1cm4geyB9OworfQorCithdXRvIEFp
cklSR2VuZXJhdG9yOjphZGRUYWJsZUZpbGwoRXhwcmVzc2lvblR5cGUmIG9mZnNldCwgRXhwcmVz
c2lvblR5cGUmIGZpbGwsIEV4cHJlc3Npb25UeXBlJiBjb3VudCkgLT4gUGFydGlhbFJlc3VsdAor
eworICAgIEFTU0VSVChmaWxsLnRtcCgpKTsKKyAgICBBU1NFUlQoZmlsbC50eXBlKCkgPT0gbV9p
bmZvLnRhYmxlSW5mb3JtYXRpb24ud2FzbVR5cGUoKSk7CisgICAgQVNTRVJUKG9mZnNldC50bXAo
KSk7CisgICAgQVNTRVJUKG9mZnNldC50eXBlKCkgPT0gVHlwZTo6STMyKTsKKyAgICBBU1NFUlQo
Y291bnQudG1wKCkpOworICAgIEFTU0VSVChjb3VudC50eXBlKCkgPT0gVHlwZTo6STMyKTsKKwor
ICAgIGF1dG8gcmVzdWx0ID0gdG1wRm9yVHlwZShUeXBlOjpJMzIpOworICAgIGVtaXRDQ2FsbCgm
ZG9XYXNtVGFibGVGaWxsLCByZXN1bHQsIGluc3RhbmNlVmFsdWUoKSwgb2Zmc2V0LCBmaWxsLCBj
b3VudCk7CisKKyAgICBlbWl0Q2hlY2soWyZdIHsKKyAgICAgICAgcmV0dXJuIEluc3QoQnJhbmNo
VGVzdDMyLCBudWxscHRyLCBBcmc6OnJlc0NvbmQoTWFjcm9Bc3NlbWJsZXI6Olplcm8pLCByZXN1
bHQsIHJlc3VsdCk7CisgICAgfSwgWz1dIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgQjM6OlN0
YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsKKyAgICAgICAgdGhpcy0+ZW1pdFRocm93RXhjZXB0
aW9uKGppdCwgRXhjZXB0aW9uVHlwZTo6T3V0T2ZCb3VuZHNUYWJsZUFjY2Vzcyk7CisgICAgfSk7
CisKKyAgICByZXR1cm4geyB9OworfQorCiBhdXRvIEFpcklSR2VuZXJhdG9yOjpnZXRMb2NhbCh1
aW50MzJfdCBpbmRleCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkgLT4gUGFydGlhbFJlc3VsdAog
ewogICAgIEFTU0VSVChtX2xvY2Fsc1tpbmRleF0udG1wKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCmluZGV4IDIyMjZmZmM3MmM5Mzgy
Y2MyNmZiM2ViYmUwOTQyOTc2MGVmNDRhYjcuLjMwNDhjNjE2MTcxMjc2M2ZjMzBkZGRlMzVjOTVl
YjZlOGM4YTk5OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21C
M0lSR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJ
UkdlbmVyYXRvci5jcHAKQEAgLTE5MSw3ICsxOTEsOSBAQCBwdWJsaWM6CiAgICAgLy8gVGFibGVz
CiAgICAgUGFydGlhbFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkVGFibGVHZXQoRXhwcmVz
c2lvblR5cGUmIGlkeCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCk7CiAgICAgUGFydGlhbFJlc3Vs
dCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkVGFibGVTZXQoRXhwcmVzc2lvblR5cGUmIGlkeCwgRXhw
cmVzc2lvblR5cGUmIHZhbHVlKTsKLQorICAgIFBhcnRpYWxSZXN1bHQgV0FSTl9VTlVTRURfUkVU
VVJOIGFkZFRhYmxlU2l6ZShFeHByZXNzaW9uVHlwZSYgcmVzdWx0KTsKKyAgICBQYXJ0aWFsUmVz
dWx0IFdBUk5fVU5VU0VEX1JFVFVSTiBhZGRUYWJsZUdyb3coRXhwcmVzc2lvblR5cGUmIGZpbGws
IEV4cHJlc3Npb25UeXBlJiBkZWx0YSwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCk7CisgICAgUGFy
dGlhbFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkVGFibGVGaWxsKEV4cHJlc3Npb25UeXBl
JiBvZmZzZXQsIEV4cHJlc3Npb25UeXBlJiBmaWxsLCBFeHByZXNzaW9uVHlwZSYgY291bnQpOwog
ICAgIC8vIExvY2FscwogICAgIFBhcnRpYWxSZXN1bHQgV0FSTl9VTlVTRURfUkVUVVJOIGdldExv
Y2FsKHVpbnQzMl90IGluZGV4LCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KTsKICAgICBQYXJ0aWFs
UmVzdWx0IFdBUk5fVU5VU0VEX1JFVFVSTiBzZXRMb2NhbCh1aW50MzJfdCBpbmRleCwgRXhwcmVz
c2lvblR5cGUgdmFsdWUpOwpAQCAtNTk2LDYgKzU5OCw0NyBAQCBhdXRvIEIzSVJHZW5lcmF0b3I6
OmFkZFRhYmxlU2V0KEV4cHJlc3Npb25UeXBlJiBpZHgsIEV4cHJlc3Npb25UeXBlJiB2YWx1ZSkg
LT4gUAogICAgIHJldHVybiB7IH07CiB9CiAKK2F1dG8gQjNJUkdlbmVyYXRvcjo6YWRkVGFibGVT
aXplKEV4cHJlc3Npb25UeXBlJiByZXN1bHQpIC0+IFBhcnRpYWxSZXN1bHQKK3sKKyAgICAvLyBG
SVhNRTogRW1pdCB0aGlzIGlubGluZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5ODUwNj4uCisgICAgdWludDMyX3QgKCpkb1NpemUpKEluc3RhbmNlKikgPSBbXSAo
SW5zdGFuY2UqIGluc3RhbmNlKSAtPiB1aW50MzJfdCB7CisgICAgICAgIHJldHVybiBpbnN0YW5j
ZS0+dGFibGUoKS0+bGVuZ3RoKCk7CisgICAgfTsKKworICAgIHJlc3VsdCA9IG1fY3VycmVudEJs
b2NrLT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4obV9wcm9jLCB0b0IzVHlwZShJMzIpLCBvcmlnaW4o
KSwKKyAgICAgICAgbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihtX3By
b2MsIG9yaWdpbigpLCB0YWdDRnVuY3Rpb25QdHI8dm9pZCo+KGRvU2l6ZSwgQjNDQ2FsbFB0clRh
ZykpLAorICAgICAgICBpbnN0YW5jZVZhbHVlKCkpOworCisgICAgcmV0dXJuIHsgfTsKK30KKwor
YXV0byBCM0lSR2VuZXJhdG9yOjphZGRUYWJsZUdyb3coRXhwcmVzc2lvblR5cGUmIGZpbGwsIEV4
cHJlc3Npb25UeXBlJiBkZWx0YSwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkgLT4gUGFydGlhbFJl
c3VsdAoreworICAgIHJlc3VsdCA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8Q0NhbGxWYWx1
ZT4obV9wcm9jLCB0b0IzVHlwZShJMzIpLCBvcmlnaW4oKSwKKyAgICAgICAgbV9jdXJyZW50Qmxv
Y2stPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihtX3Byb2MsIG9yaWdpbigpLCB0YWdDRnVuY3Rp
b25QdHI8dm9pZCo+KCZkb1dhc21UYWJsZUdyb3csIEIzQ0NhbGxQdHJUYWcpKSwKKyAgICAgICAg
aW5zdGFuY2VWYWx1ZSgpLCBmaWxsLCBkZWx0YSk7CisKKyAgICByZXR1cm4geyB9OworfQorCith
dXRvIEIzSVJHZW5lcmF0b3I6OmFkZFRhYmxlRmlsbChFeHByZXNzaW9uVHlwZSYgb2Zmc2V0LCBF
eHByZXNzaW9uVHlwZSYgZmlsbCwgRXhwcmVzc2lvblR5cGUmIGNvdW50KSAtPiBQYXJ0aWFsUmVz
dWx0Cit7CisgICAgYXV0byByZXN1bHQgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PENDYWxs
VmFsdWU+KG1fcHJvYywgdG9CM1R5cGUoSTMyKSwgb3JpZ2luKCksCisgICAgICAgIG1fY3VycmVu
dEJsb2NrLT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4obV9wcm9jLCBvcmlnaW4oKSwgdGFnQ0Z1
bmN0aW9uUHRyPHZvaWQqPigmZG9XYXNtVGFibGVGaWxsLCBCM0NDYWxsUHRyVGFnKSksCisgICAg
ICAgIGluc3RhbmNlVmFsdWUoKSwgb2Zmc2V0LCBmaWxsLCBjb3VudCk7CisKKyAgICB7CisgICAg
ICAgIENoZWNrVmFsdWUqIGNoZWNrID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxDaGVja1Zh
bHVlPihtX3Byb2MsIENoZWNrLCBvcmlnaW4oKSwKKyAgICAgICAgICAgIG1fY3VycmVudEJsb2Nr
LT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgRXF1YWwsIG9yaWdpbigpLCByZXN1bHQsIG1fY3Vy
cmVudEJsb2NrLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihtX3Byb2MsIG9yaWdpbigpLCAwKSkp
OworCisgICAgICAgIGNoZWNrLT5zZXRHZW5lcmF0b3IoWz1dIChDQ2FsbEhlbHBlcnMmIGppdCwg
Y29uc3QgQjM6OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsKKyAgICAgICAgICAgIHRoaXMt
PmVtaXRFeGNlcHRpb25DaGVjayhqaXQsIEV4Y2VwdGlvblR5cGU6Ok91dE9mQm91bmRzVGFibGVB
Y2Nlc3MpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICByZXR1cm4geyB9OworfQorCiBhdXRv
IEIzSVJHZW5lcmF0b3I6OmdldExvY2FsKHVpbnQzMl90IGluZGV4LCBFeHByZXNzaW9uVHlwZSYg
cmVzdWx0KSAtPiBQYXJ0aWFsUmVzdWx0CiB7CiAgICAgQVNTRVJUKG1fbG9jYWxzW2luZGV4XSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRXhjZXB0aW9uVHlw
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUV4Y2VwdGlvblR5cGUuaAppbmRl
eCBkNDQ2YzBlZDFiNGRkOWY2NmZmNTkzODI2NWEwNjZlMGRjOTJkNjExLi4xYWFlNzY0NDY4NThl
MjYyODhjM2RlMmIwOWQ3ZDM4MzRhYWI4NDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtRXhjZXB0aW9uVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21FeGNlcHRpb25UeXBlLmgKQEAgLTMzLDYgKzMzLDcgQEAgbmFtZXNwYWNlIFdh
c20gewogCiAjZGVmaW5lIEZPUl9FQUNIX0VYQ0VQVElPTihtYWNybykgXAogICAgIG1hY3JvKE91
dE9mQm91bmRzTWVtb3J5QWNjZXNzLCAgIk91dCBvZiBib3VuZHMgbWVtb3J5IGFjY2VzcyIpIFwK
KyAgICBtYWNybyhPdXRPZkJvdW5kc1RhYmxlQWNjZXNzLCAiT3V0IG9mIGJvdW5kcyB0YWJsZSBh
Y2Nlc3MiKSBcCiAgICAgbWFjcm8oT3V0T2ZCb3VuZHNDYWxsSW5kaXJlY3QsICJPdXQgb2YgYm91
bmRzIGNhbGxfaW5kaXJlY3QiKSBcCiAgICAgbWFjcm8oTnVsbFRhYmxlRW50cnksICAiY2FsbF9p
bmRpcmVjdCB0byBhIG51bGwgdGFibGUgZW50cnkiKSBcCiAgICAgbWFjcm8oQmFkU2lnbmF0dXJl
LCAiY2FsbF9pbmRpcmVjdCB0byBhIHNpZ25hdHVyZSB0aGF0IGRvZXMgbm90IG1hdGNoIikgXApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oCmluZGV4IDYyOTIyNTBmMjVlZWE5
NDkwYzQzYTRlYmQ0NmQyZTI1ZTBjMzZjOTUuLjZiNDNjYWNjNGMyNGYwYzdkNjYwMjJhNDNlNGY3
MTYzZDFhZTcyYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21G
b3JtYXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKQEAg
LTIzNCw2ICsyMzQsNyBAQCBwdWJsaWM6CiAgICAgdWludDMyX3QgaW5pdGlhbCgpIGNvbnN0IHsg
cmV0dXJuIG1faW5pdGlhbDsgfQogICAgIE9wdGlvbmFsPHVpbnQzMl90PiBtYXhpbXVtKCkgY29u
c3QgeyByZXR1cm4gbV9tYXhpbXVtOyB9CiAgICAgVGFibGVFbGVtZW50VHlwZSB0eXBlKCkgY29u
c3QgeyByZXR1cm4gbV90eXBlOyB9CisgICAgV2FzbTo6VHlwZSB3YXNtVHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdHlwZSA9PSBUYWJsZUVsZW1lbnRUeXBlOjpGdW5jcmVmID8gVHlwZTo6QW55ZnVu
YyA6IFR5cGU6OkFueXJlZjsgfQogCiBwcml2YXRlOgogICAgIHVpbnQzMl90IG1faW5pdGlhbDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GdW5jdGlvblBhcnNl
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgKaW5k
ZXggZGZhZThmMmNmM2FkMmRhMThhYTg4YmIyNmJkNTU4Y2M3ZDg0NzZkZS4uMjRlMjVhMTNlMDA2
NzQyNWU0N2VmNGI5OGJkNjk3NTZmMDY3YmU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgKQEAgLTI5OSw2ICsyOTksNDEgQEAgYXV0byBG
dW5jdGlvblBhcnNlcjxDb250ZXh0Pjo6cGFyc2VFeHByZXNzaW9uKCkgLT4gUGFydGlhbFJlc3Vs
dAogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAorICAgIGNhc2UgRXh0VGFibGU6IHsKKyAg
ICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRighT3B0aW9uczo6dXNlV2ViQXNzZW1ibHlSZWZlcmVu
Y2VzKCksICJyZWZlcmVuY2VzIGFyZSBub3QgZW5hYmxlZCIpOworICAgICAgICB1aW50OF90IGV4
dE9wOworICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFwYXJzZVVJbnQ4KGV4dE9wKSwgImNh
bid0IHBhcnNlIHRhYmxlIGV4dGVuZGVkIG9wY29kZSIpOworCisgICAgICAgIHN3aXRjaCAoKEV4
dFRhYmxlT3BUeXBlKSBleHRPcCkgeworICAgICAgICBjYXNlIEV4dFRhYmxlT3BUeXBlOjpUYWJs
ZVNpemU6IHsKKyAgICAgICAgICAgIEV4cHJlc3Npb25UeXBlIHJlc3VsdDsKKyAgICAgICAgICAg
IFdBU01fVFJZX0FERF9UT19DT05URVhUKGFkZFRhYmxlU2l6ZShyZXN1bHQpKTsKKyAgICAgICAg
ICAgIG1fZXhwcmVzc2lvblN0YWNrLmFwcGVuZChyZXN1bHQpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBFeHRUYWJsZU9wVHlwZTo6VGFibGVHcm93OiB7Cisg
ICAgICAgICAgICBFeHByZXNzaW9uVHlwZSBmaWxsLCBkZWx0YSwgcmVzdWx0OworICAgICAgICAg
ICAgV0FTTV9UUllfUE9QX0VYUFJFU1NJT05fU1RBQ0tfSU5UTyhkZWx0YSwgInRhYmxlLmdyb3ci
KTsKKyAgICAgICAgICAgIFdBU01fVFJZX1BPUF9FWFBSRVNTSU9OX1NUQUNLX0lOVE8oZmlsbCwg
InRhYmxlLmdyb3ciKTsKKyAgICAgICAgICAgIFdBU01fVFJZX0FERF9UT19DT05URVhUKGFkZFRh
YmxlR3JvdyhmaWxsLCBkZWx0YSwgcmVzdWx0KSk7CisgICAgICAgICAgICBtX2V4cHJlc3Npb25T
dGFjay5hcHBlbmQocmVzdWx0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIGNhc2UgRXh0VGFibGVPcFR5cGU6OlRhYmxlRmlsbDogeworICAgICAgICAgICAgRXhwcmVz
c2lvblR5cGUgb2Zmc2V0LCBmaWxsLCBjb3VudDsKKyAgICAgICAgICAgIFdBU01fVFJZX1BPUF9F
WFBSRVNTSU9OX1NUQUNLX0lOVE8oY291bnQsICJ0YWJsZS5maWxsIik7CisgICAgICAgICAgICBX
QVNNX1RSWV9QT1BfRVhQUkVTU0lPTl9TVEFDS19JTlRPKGZpbGwsICJ0YWJsZS5maWxsIik7Cisg
ICAgICAgICAgICBXQVNNX1RSWV9QT1BfRVhQUkVTU0lPTl9TVEFDS19JTlRPKG9mZnNldCwgInRh
YmxlLmZpbGwiKTsKKyAgICAgICAgICAgIFdBU01fVFJZX0FERF9UT19DT05URVhUKGFkZFRhYmxl
RmlsbChvZmZzZXQsIGZpbGwsIGNvdW50KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRih0cnVl
LCAiaW52YWxpZCBleHRlbmRlZCB0YWJsZSBvcCAiLCBleHRPcCk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4geyB9OworICAgIH0KKwogICAgIGNhc2UgUmVm
TnVsbDogewogICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFPcHRpb25zOjp1c2VXZWJBc3Nl
bWJseVJlZmVyZW5jZXMoKSwgInJlZmVyZW5jZXMgYXJlIG5vdCBlbmFibGVkIik7CiAgICAgICAg
IG1fZXhwcmVzc2lvblN0YWNrLmFwcGVuZChtX2NvbnRleHQuYWRkQ29uc3RhbnQoQW55cmVmLCBK
U1ZhbHVlOjplbmNvZGUoanNOdWxsKCkpKSk7CkBAIC02NzMsNiArNzA4LDcgQEAgYXV0byBGdW5j
dGlvblBhcnNlcjxDb250ZXh0Pjo6cGFyc2VVbnJlYWNoYWJsZUV4cHJlc3Npb24oKSAtPiBQYXJ0
aWFsUmVzdWx0CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCisgICAgY2FzZSBFeHRUYWJs
ZToKICAgICBjYXNlIFRhYmxlR2V0OgogICAgIGNhc2UgVGFibGVTZXQ6CiAgICAgY2FzZSBSZWZJ
c051bGw6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFu
Y2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmNwcAppbmRl
eCAzNzA1OTk2OGUwYjc4NTRkMjczMzZmMTkzN2VjMjU4YTM3MGI0OTY2Li45NGY1ZDhiYjYzYjE5
ZGNkNmU3YmU2N2ZlZjZhN2Y1ZWMzZTJmNTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21JbnN0YW5jZS5jcHAKQEAgLTgwLDYgKzgwLDQ0IEBAIHZvaWQgSW5zdGFuY2U6OnNl
dEdsb2JhbCh1bnNpZ25lZCBpLCBKU1ZhbHVlIHZhbHVlKQogICAgIG1fZ2xvYmFscy5nZXQoKVtp
XS5hbnlyZWYuc2V0KCpvd25lcjxKU1dlYkFzc2VtYmx5SW5zdGFuY2U+KCktPnZtKCksIG93bmVy
PEpTV2ViQXNzZW1ibHlJbnN0YW5jZT4oKSwgdmFsdWUpOwogfQogCitpbnQzMl90IGRvV2FzbVRh
YmxlR3JvdyhJbnN0YW5jZSogaW5zdGFuY2UsIEVuY29kZWRKU1ZhbHVlIGZpbGwsIGludDMyX3Qg
ZGVsdGEpCit7CisgICAgaWYgKGRlbHRhIDwgMCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIGF1
dG8gb2xkU2l6ZSA9IGluc3RhbmNlLT50YWJsZSgpLT5sZW5ndGgoKTsKKyAgICBhdXRvIG5ld1Np
emUgPSBpbnN0YW5jZS0+dGFibGUoKS0+Z3JvdyhkZWx0YSk7CisgICAgaWYgKCFuZXdTaXplIHx8
ICpuZXdTaXplID09IG9sZFNpemUpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIEpTVmFsdWUg
ZmlsbEpTID0gSlNWYWx1ZTo6ZGVjb2RlKGZpbGwpOworCisgICAgLy8gVE9ETyBkb1NldAorICAg
IGZvciAodW5zaWduZWQgaSA9IG9sZFNpemU7IGkgPCBpbnN0YW5jZS0+dGFibGUoKS0+bGVuZ3Ro
KCk7ICsraSkKKyAgICAgICAgaW5zdGFuY2UtPnRhYmxlKCktPnNldChpLCBmaWxsSlMpOworCisg
ICAgcmV0dXJuIG9sZFNpemU7Cit9CisKK2Jvb2wgZG9XYXNtVGFibGVGaWxsKEluc3RhbmNlKiBp
bnN0YW5jZSwgaW50MzJfdCBvZmZzZXQsIEVuY29kZWRKU1ZhbHVlIGZpbGwsIGludDMyX3QgY291
bnQpCit7CisgICAgaWYgKG9mZnNldCA8IDAgfHwgY291bnQgPCAwKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICB1bnNpZ25lZCBpID0gb2Zmc2V0OworICAgIHVuc2lnbmVkIG4gPSBjb3Vu
dDsKKworICAgIGlmIChpID49IGluc3RhbmNlLT50YWJsZSgpLT5sZW5ndGgoKSB8fCBpICsgbiA+
IGluc3RhbmNlLT50YWJsZSgpLT5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgSlNWYWx1ZSBmaWxsSlMgPSBKU1ZhbHVlOjpkZWNvZGUoZmlsbCk7CisKKyAgICAvLyBUT0RP
IGRvU2V0CisgICAgZm9yICh1bnNpZ25lZCBqID0gMDsgaiA8IG47ICsraikKKyAgICAgICAgaW5z
dGFuY2UtPnRhYmxlKCktPnNldChqICsgaSwgZmlsbEpTKTsKKworICAgIHJldHVybiB0cnVlOwor
fQorCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFT
U0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluc3Rh
bmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuaAppbmRleCA1
ZDFmY2YzZjlkM2I4MmJkMDk4MWEyMGNjY2Q1NDRlNzgwN2NlNGQ3Li5lNjNlYTg3NWZjNWU3ZGE0
NTk4YjEyM2JmNDYxNzA3NTNjMWQ5MzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtSW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtSW5zdGFuY2UuaApAQCAtMzksNiArMzksMTAgQEAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgV2FzbSB7CiAKIHN0cnVjdCBDb250ZXh0OworY2xhc3MgSW5zdGFuY2U7CisKK2ludDMyX3Qg
ZG9XYXNtVGFibGVHcm93KEluc3RhbmNlKiwgRW5jb2RlZEpTVmFsdWUgZmlsbCwgaW50MzJfdCBk
ZWx0YSk7Citib29sIGRvV2FzbVRhYmxlRmlsbChJbnN0YW5jZSosIGludDMyX3Qgb2Zmc2V0LCBF
bmNvZGVkSlNWYWx1ZSBmaWxsLCBpbnQzMl90IGNvdW50KTsKIAogY2xhc3MgSW5zdGFuY2UgOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SW5zdGFuY2U+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8SW5zdGFuY2U+IHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21UYWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVGFi
bGUuY3BwCmluZGV4IDEzMzEzNDY4ZDE2MGU4NWU1MTkyODRlODJkYWRjMGE5YWRmNjhjMDMuLmYx
YThhM2UyZDQwZGYwOTgwMTRhZmUyMWRmZGQwNjVkMjM4MzIxMjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21UYWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbVRhYmxlLmNwcApAQCAtMTI1LDYgKzEyNSw5IEBAIE9wdGlvbmFsPHVp
bnQzMl90PiBUYWJsZTo6Z3Jvdyh1aW50MzJfdCBkZWx0YSkKICAgICBpZiAoIWNoZWNrZWRHcm93
KG1fanNWYWx1ZXMpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCisgICAgZm9yICh1
aW50MzJfdCBpID0gbV9sZW5ndGg7IGkgPCBhbGxvY2F0ZWRMZW5ndGgobmV3TGVuZ3RoKTsgKytp
KQorICAgICAgICBtX2pzVmFsdWVzLmdldCgpW2ldLnNldFdpdGhvdXRXcml0ZUJhcnJpZXIoanNO
dWxsKCkpOworCiAgICAgc2V0TGVuZ3RoKG5ld0xlbmd0aCk7CiAgICAgcmV0dXJuIG5ld0xlbmd0
aDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWxpZGF0
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsaWRhdGUuY3BwCmluZGV4
IGE0Yjc4ZTQ1OGRmNDU5OGUwY2NkYTYxZmE5NGVjOTE5YTI5YWZjZjQuLjViOTQzZDJlM2MxYTk2
OTNmMTVkMTMwNDgxNzFhOTUxZDNjZjU2OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21WYWxpZGF0ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbVZhbGlkYXRlLmNwcApAQCAtMTA3LDcgKzEwNyw5IEBAIHB1YmxpYzoKICAgICAvLyBU
YWJsZXMKICAgICBSZXN1bHQgV0FSTl9VTlVTRURfUkVUVVJOIGFkZFRhYmxlR2V0KEV4cHJlc3Np
b25UeXBlJiBpZHgsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpOwogICAgIFJlc3VsdCBXQVJOX1VO
VVNFRF9SRVRVUk4gYWRkVGFibGVTZXQoRXhwcmVzc2lvblR5cGUmIGlkeCwgRXhwcmVzc2lvblR5
cGUmIHZhbHVlKTsKLQorICAgIFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkVGFibGVTaXpl
KEV4cHJlc3Npb25UeXBlJiByZXN1bHQpOworICAgIFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4g
YWRkVGFibGVHcm93KEV4cHJlc3Npb25UeXBlJiBmaWxsLCBFeHByZXNzaW9uVHlwZSYgZGVsdGEs
IEV4cHJlc3Npb25UeXBlJiByZXN1bHQpOworICAgIFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4g
YWRkVGFibGVGaWxsKEV4cHJlc3Npb25UeXBlJiBvZmZzZXQsIEV4cHJlc3Npb25UeXBlJiBmaWxs
LCBFeHByZXNzaW9uVHlwZSYgY291bnQpOwogICAgIC8vIExvY2FscwogICAgIFJlc3VsdCBXQVJO
X1VOVVNFRF9SRVRVUk4gZ2V0TG9jYWwodWludDMyX3QgaW5kZXgsIEV4cHJlc3Npb25UeXBlJiBy
ZXN1bHQpOwogICAgIFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gc2V0TG9jYWwodWludDMyX3Qg
aW5kZXgsIEV4cHJlc3Npb25UeXBlIHZhbHVlKTsKQEAgLTE5NSw2ICsxOTcsMzQgQEAgYXV0byBW
YWxpZGF0ZTo6YWRkVGFibGVTZXQoRXhwcmVzc2lvblR5cGUmIGlkeCwgRXhwcmVzc2lvblR5cGUm
IHZhbHVlKSAtPiBSZXN1bHQKICAgICByZXR1cm4geyB9OwogfQogCithdXRvIFZhbGlkYXRlOjph
ZGRUYWJsZVNpemUoRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkgLT4gUmVzdWx0Cit7CisgICAgcmVz
dWx0ID0gVHlwZTo6STMyOworICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIW1fbW9kdWxlLnRh
YmxlSW5mb3JtYXRpb24sICJ0YWJsZS5zaXplIGV4cGVjdHMgYSB0YWJsZSIpOworCisgICAgcmV0
dXJuIHsgfTsKK30KKworYXV0byBWYWxpZGF0ZTo6YWRkVGFibGVHcm93KEV4cHJlc3Npb25UeXBl
JiBmaWxsLCBFeHByZXNzaW9uVHlwZSYgZGVsdGEsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpIC0+
IFJlc3VsdAoreworICAgIHJlc3VsdCA9IFR5cGU6OkkzMjsKKyAgICBXQVNNX1ZBTElEQVRPUl9G
QUlMX0lGKCFtX21vZHVsZS50YWJsZUluZm9ybWF0aW9uLCAidGFibGUuZ3JvdyBleHBlY3RzIGEg
dGFibGUiKTsKKyAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKGZpbGwgIT0gbV9tb2R1bGUudGFi
bGVJbmZvcm1hdGlvbi53YXNtVHlwZSgpLCAidGFibGUuZ3JvdyBleHBlY3RzIGZpbGwgdmFsdWUg
b2YgdHlwZSAiLCBtX21vZHVsZS50YWJsZUluZm9ybWF0aW9uLndhc21UeXBlKCksICIgZ290ICIs
IGZpbGwpOworICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoVHlwZTo6STMyICE9IGRlbHRhLCAi
dGFibGUuZ3JvdyBleHBlY3RzIGFuIGkzMiBkZWx0YSB2YWx1ZSwgZ290ICIsIGRlbHRhKTsKKwor
ICAgIHJldHVybiB7IH07Cit9CisKK2F1dG8gVmFsaWRhdGU6OmFkZFRhYmxlRmlsbChFeHByZXNz
aW9uVHlwZSYgb2Zmc2V0LCBFeHByZXNzaW9uVHlwZSYgZmlsbCwgRXhwcmVzc2lvblR5cGUmIGNv
dW50KSAtPiBSZXN1bHQKK3sKKyAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKCFtX21vZHVsZS50
YWJsZUluZm9ybWF0aW9uLCAidGFibGUuZmlsbCBleHBlY3RzIGEgdGFibGUiKTsKKyAgICBXQVNN
X1ZBTElEQVRPUl9GQUlMX0lGKGZpbGwgIT0gbV9tb2R1bGUudGFibGVJbmZvcm1hdGlvbi53YXNt
VHlwZSgpLCAidGFibGUuZmlsbCBleHBlY3RzIGZpbGwgdmFsdWUgb2YgdHlwZSAiLCBtX21vZHVs
ZS50YWJsZUluZm9ybWF0aW9uLndhc21UeXBlKCksICIgZ290ICIsIGZpbGwpOworICAgIFdBU01f
VkFMSURBVE9SX0ZBSUxfSUYoVHlwZTo6STMyICE9IG9mZnNldCwgInRhYmxlLmZpbGwgZXhwZWN0
cyBhbiBpMzIgb2Zmc2V0IHZhbHVlLCBnb3QgIiwgb2Zmc2V0KTsKKyAgICBXQVNNX1ZBTElEQVRP
Ul9GQUlMX0lGKFR5cGU6OkkzMiAhPSBjb3VudCwgInRhYmxlLmZpbGwgZXhwZWN0cyBhbiBpMzIg
Y291bnQgdmFsdWUsIGdvdCAiLCBjb3VudCk7CisKKyAgICByZXR1cm4geyB9OworfQorCiBhdXRv
IFZhbGlkYXRlOjphZGRSZWZJc051bGwoRXhwcmVzc2lvblR5cGUmIHZhbHVlLCBFeHByZXNzaW9u
VHlwZSYgcmVzdWx0KSAtPiBSZXN1bHQKIHsKICAgICByZXN1bHQgPSBUeXBlOjpJMzI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9nZW5lcmF0ZVdhc21PcHNIZWFkZXIu
cHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9nZW5lcmF0ZVdhc21PcHNIZWFkZXIucHkK
aW5kZXggNGU5YTY2NTY2MzE5NzlkMmM5Mzc4YjYzN2UxYjg4ZjA2OTJiNzUxYy4uNzc1NjRjMzAz
Y2EzMDA5MzE2MWNiMjRkOWJkZmZhYTkyMzIwZDkxMiAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vZ2VuZXJhdGVXYXNtT3BzSGVhZGVyLnB5CisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2dlbmVyYXRlV2FzbU9wc0hlYWRlci5weQpAQCAtNTUsMTcgKzU1LDE3
IEBAIHR5cGVfZGVmaW5pdGlvbnMuZXh0ZW5kKFt0IGZvciB0IGluIHR5cGVNYWNyb2l6ZXIoKV0p
CiB0eXBlX2RlZmluaXRpb25zID0gIiIuam9pbih0eXBlX2RlZmluaXRpb25zKQogCiAKLWRlZiBv
cGNvZGVNYWNyb2l6ZXIoZmlsdGVyKToKK2RlZiBvcGNvZGVNYWNyb2l6ZXIoZmlsdGVyLCBvcGNv
ZGVGaWVsZD0idmFsdWUiKToKICAgICBpbmMgPSAwCiAgICAgZm9yIG9wIGluIHdhc20ub3Bjb2Rl
SXRlcmF0b3IoZmlsdGVyKToKICAgICAgICAgYjNvcCA9ICJPb3BzIgogICAgICAgICBpZiBpc1Np
bXBsZShvcFsib3Bjb2RlIl0pOgogICAgICAgICAgICAgYjNvcCA9IG9wWyJvcGNvZGUiXVsiYjNv
cCJdCi0gICAgICAgIHlpZWxkIGNwcE1hY3JvKG9wWyJuYW1lIl0sIG9wWyJvcGNvZGUiXVsidmFs
dWUiXSwgYjNvcCwgaW5jKQorICAgICAgICB5aWVsZCBjcHBNYWNybyhvcFsibmFtZSJdLCBvcFsi
b3Bjb2RlIl1bb3Bjb2RlRmllbGRdLCBiM29wLCBpbmMpCiAgICAgICAgIGluYyArPSAxCiAKIGRl
ZmluZXMgPSBbIiNkZWZpbmUgRk9SX0VBQ0hfV0FTTV9TUEVDSUFMX09QKG1hY3JvKSJdCi1kZWZp
bmVzLmV4dGVuZChbb3AgZm9yIG9wIGluIG9wY29kZU1hY3JvaXplcihsYW1iZGEgb3A6IG5vdCAo
aXNVbmFyeShvcCkgb3IgaXNCaW5hcnkob3ApIG9yIG9wWyJjYXRlZ29yeSJdID09ICJjb250cm9s
IiBvciBvcFsiY2F0ZWdvcnkiXSA9PSAibWVtb3J5IikpXSkKK2RlZmluZXMuZXh0ZW5kKFtvcCBm
b3Igb3AgaW4gb3Bjb2RlTWFjcm9pemVyKGxhbWJkYSBvcDogbm90IChpc1VuYXJ5KG9wKSBvciBp
c0JpbmFyeShvcCkgb3Igb3BbImNhdGVnb3J5Il0gPT0gImNvbnRyb2wiIG9yIG9wWyJjYXRlZ29y
eSJdID09ICJtZW1vcnkiIG9yIG9wWyJjYXRlZ29yeSJdID09ICJleHR0YWJsZSIpKV0pCiBkZWZp
bmVzLmFwcGVuZCgiXG5cbiNkZWZpbmUgRk9SX0VBQ0hfV0FTTV9DT05UUk9MX0ZMT1dfT1AobWFj
cm8pIikKIGRlZmluZXMuZXh0ZW5kKFtvcCBmb3Igb3AgaW4gb3Bjb2RlTWFjcm9pemVyKGxhbWJk
YSBvcDogb3BbImNhdGVnb3J5Il0gPT0gImNvbnRyb2wiKV0pCiBkZWZpbmVzLmFwcGVuZCgiXG5c
biNkZWZpbmUgRk9SX0VBQ0hfV0FTTV9TSU1QTEVfVU5BUllfT1AobWFjcm8pIikKQEAgLTgwLDYg
KzgwLDggQEAgZGVmaW5lcy5hcHBlbmQoIlxuXG4jZGVmaW5lIEZPUl9FQUNIX1dBU01fTUVNT1JZ
X0xPQURfT1AobWFjcm8pIikKIGRlZmluZXMuZXh0ZW5kKFtvcCBmb3Igb3AgaW4gb3Bjb2RlTWFj
cm9pemVyKGxhbWJkYSBvcDogKG9wWyJjYXRlZ29yeSJdID09ICJtZW1vcnkiIGFuZCBsZW4ob3Bb
InJldHVybiJdKSA9PSAxKSldKQogZGVmaW5lcy5hcHBlbmQoIlxuXG4jZGVmaW5lIEZPUl9FQUNI
X1dBU01fTUVNT1JZX1NUT1JFX09QKG1hY3JvKSIpCiBkZWZpbmVzLmV4dGVuZChbb3AgZm9yIG9w
IGluIG9wY29kZU1hY3JvaXplcihsYW1iZGEgb3A6IChvcFsiY2F0ZWdvcnkiXSA9PSAibWVtb3J5
IiBhbmQgbGVuKG9wWyJyZXR1cm4iXSkgPT0gMCkpXSkKK2RlZmluZXMuYXBwZW5kKCJcblxuI2Rl
ZmluZSBGT1JfRUFDSF9XQVNNX0VYVF9UQUJMRV9PUChtYWNybykiKQorZGVmaW5lcy5leHRlbmQo
W29wIGZvciBvcCBpbiBvcGNvZGVNYWNyb2l6ZXIobGFtYmRhIG9wOiAob3BbImNhdGVnb3J5Il0g
PT0gImV4dHRhYmxlIiksICJleHRlbmRlZE9wIildKQogZGVmaW5lcy5hcHBlbmQoIlxuXG4iKQog
CiBkZWZpbmVzID0gIiIuam9pbihkZWZpbmVzKQpAQCAtMjAyLDcgKzIwNCw4IEBAIGlubGluZSBU
eXBlIGxpbmVhcml6ZWRUb1R5cGUoaW50IGkpCiAgICAgRk9SX0VBQ0hfV0FTTV9VTkFSWV9PUCht
YWNybykgXFwKICAgICBGT1JfRUFDSF9XQVNNX0JJTkFSWV9PUChtYWNybykgXFwKICAgICBGT1Jf
RUFDSF9XQVNNX01FTU9SWV9MT0FEX09QKG1hY3JvKSBcXAotICAgIEZPUl9FQUNIX1dBU01fTUVN
T1JZX1NUT1JFX09QKG1hY3JvKQorICAgIEZPUl9FQUNIX1dBU01fTUVNT1JZX1NUT1JFX09QKG1h
Y3JvKSBcXAorICAgIG1hY3JvKEV4dFRhYmxlLCAweEZDLCBPb3BzLCAwKQogCiAjZGVmaW5lIENS
RUFURV9FTlVNX1ZBTFVFKG5hbWUsIGlkLCBiM29wLCBpbmMpIG5hbWUgPSBpZCwKIApAQCAtMjM0
LDYgKzIzNywxMCBAQCBlbnVtIGNsYXNzIFN0b3JlT3BUeXBlIDogdWludDhfdCB7CiAgICAgRk9S
X0VBQ0hfV0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0VOVU1fVkFMVUUpCiB9OwogCitlbnVt
IGNsYXNzIEV4dFRhYmxlT3BUeXBlIDogdWludDhfdCB7CisgICAgRk9SX0VBQ0hfV0FTTV9FWFRf
VEFCTEVfT1AoQ1JFQVRFX0VOVU1fVkFMVUUpCit9OworCiAjdW5kZWYgQ1JFQVRFX0VOVU1fVkFM
VUUKIAogaW5saW5lIGJvb2wgaXNDb250cm9sT3AoT3BUeXBlIG9wKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vd2FzbS5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vd2FzbS5qc29uCmluZGV4IDMwYmJjNzQ3MjM3ODM5MjJlZGJiZjYzNDk5MzQ5MGY0OGI3
YjdlMDIuLjYxNTMyOGZlNjRkN2VhMWZmODdkNDc3OGQyN2E5ZjRiZGI5NTEzZDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL3dhc20uanNvbgorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS93YXNtLmpzb24KQEAgLTY4LDYgKzY4LDkgQEAKICAgICAgICAgInNl
dF9nbG9iYWwiOiAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJzcGVjaWFsIiwgICAgInZhbHVlIjog
IDM2LCAicmV0dXJuIjogW10sICAgICAgICAgICAicGFyYW1ldGVyIjogWyJhbnkiXSwgICAgICAg
ICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJnbG9iYWxfaW5kZXgiLCAgICJ0eXBl
IjogInZhcnVpbnQzMiJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJ3cml0ZSBhIGdsb2JhbCB2YXJpYWJsZSIgfSwKICAgICAgICAg
InRhYmxlLmdldCI6ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJzcGVjaWFsIiwgICAgInZhbHVl
IjogIDM3LCAicmV0dXJuIjogWyJhbnlyZWYiXSwgICAicGFyYW1ldGVyIjogWyJpMzIiXSwgICAg
ICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJnZXQgYSB0YWJsZSB2YWx1ZSIgfSwKICAgICAgICAgInRh
YmxlLnNldCI6ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJzcGVjaWFsIiwgICAgInZhbHVlIjog
IDM4LCAicmV0dXJuIjogW10sICAgICAgICAgICAicGFyYW1ldGVyIjogWyJpMzIiLCAiYW55cmVm
Il0sICAgICAgICAiaW1tZWRpYXRlIjogW10sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJzZXQgYSB0YWJsZSB2YWx1ZSIgfSwKKyAgICAgICAgInRhYmxl
LnNpemUiOiAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJleHR0YWJsZSIsICAgInZhbHVlIjogIDI1
MiwgInJldHVybiI6IFsiaTMyIl0sICAgICAicGFyYW1ldGVyIjogW10sICAgICAgICAgICAgICAg
ICAgICAgICAiaW1tZWRpYXRlIjogW10sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6ICJnZXQgdGhlIHNpemUgb2YgYSB0YWJsZSIsICJleHRlbmRlZE9wIjog
MTUgfSwKKyAgICAgICAgInRhYmxlLmdyb3ciOiAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJleHR0
YWJsZSIsICAgInZhbHVlIjogIDI1MiwgInJldHVybiI6IFsiaTMyIl0sICAgICAicGFyYW1ldGVy
IjogWyJhbnlyZWYiLCAiaTMyIl0sICAgICAgICJpbW1lZGlhdGUiOiBbXSwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogImdyb3cgYSB0YWJsZSBieSB0aGUg
Z2l2ZW4gZGVsdGEgYW5kIHJldHVybiB0aGUgcHJldmlvdXMgc2l6ZSwgb3IgLTEgaWYgZW5vdWdo
IHNwYWNlIGNhbm5vdCBiZSBhbGxvY2F0ZWQiLCAiZXh0ZW5kZWRPcCI6IDE2IH0sCisgICAgICAg
ICJ0YWJsZS5maWxsIjogICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiZXh0dGFibGUiLCAgICJ2YWx1
ZSI6ICAyNTIsICJyZXR1cm4iOiBbImkzMiJdLCAgICAgInBhcmFtZXRlciI6IFsiaTMyIiwgImFu
eXJlZiIsICJpMzIiXSwgImltbWVkaWF0ZSI6IFtdLCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiZGVzY3JpcHRpb24iOiAiZmlsbCBlbnRyaWVzIFtpLGkrbikgd2l0aCB0aGUgZ2l2
ZW4gdmFsdWUiLCAiZXh0ZW5kZWRPcCI6IDE3IH0sCiAgICAgICAgICJjYWxsIjogICAgICAgICAg
ICAgICAgeyAiY2F0ZWdvcnkiOiAiY2FsbCIsICAgICAgICJ2YWx1ZSI6ICAxNiwgInJldHVybiI6
IFsiY2FsbCJdLCAgICAgInBhcmFtZXRlciI6IFsiY2FsbCJdLCAgICAgICAgICAgICAgICAgImlt
bWVkaWF0ZSI6IFt7Im5hbWUiOiAiZnVuY3Rpb25faW5kZXgiLCAidHlwZSI6ICJ2YXJ1aW50MzIi
fV0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiY2FsbCBhIGZ1bmN0aW9uIGJ5IGl0cyBpbmRleCIgfSwKICAgICAgICAgImNhbGxfaW5k
aXJlY3QiOiAgICAgICB7ICJjYXRlZ29yeSI6ICJjYWxsIiwgICAgICAgInZhbHVlIjogIDE3LCAi
cmV0dXJuIjogWyJjYWxsIl0sICAgICAicGFyYW1ldGVyIjogWyJjYWxsIl0sICAgICAgICAgICAg
ICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJ0eXBlX2luZGV4IiwgICAgICJ0eXBlIjogInZh
cnVpbnQzMiJ9LCB7Im5hbWUiOiAicmVzZXJ2ZWQiLCAidHlwZSI6ICJ2YXJ1aW50MSJ9XSwgICJk
ZXNjcmlwdGlvbiI6ICJjYWxsIGEgZnVuY3Rpb24gaW5kaXJlY3Qgd2l0aCBhbiBleHBlY3RlZCBz
aWduYXR1cmUiIH0sCiAgICAgICAgICJpMzIubG9hZDhfcyI6ICAgICAgICAgeyAiY2F0ZWdvcnki
OiAibWVtb3J5IiwgICAgICJ2YWx1ZSI6ICA0NCwgInJldHVybiI6IFsiaTMyIl0sICAgICAgInBh
cmFtZXRlciI6IFsiYWRkciJdLCAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUi
OiAiZmxhZ3MiLCAgICAgICAgICAidHlwZSI6ICJ2YXJ1aW50MzIifSwgeyJuYW1lIjogIm9mZnNl
dCIsICAgInR5cGUiOiAidmFydWludDMyIn1dLCAiZGVzY3JpcHRpb24iOiAibG9hZCBmcm9tIG1l
bW9yeSIgfSwKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggYzY0ZWZjNzExNzBjMmFiYjQ1ZWRjMmI1OWFjNWFjMGM0ZTAxNmVjYi4uOTViMzVh
NzE5ZGJjZDRmYjU3NjA5NTljNzVhNzBjODM1YWE2ZmVlYiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOS0w
Ni0xNCAgSnVzdGluIE1pY2hhdWQgIDxqdXN0aW5fbWljaGF1ZEBhcHBsZS5jb20+CisKKyAgICAg
ICAgW1dBU00tUmVmZXJlbmNlc10gQWRkIHN1cHBvcnQgZm9yIFRhYmxlLnNpemUsIGdyb3cgYW5k
IGZpbGwgaW5zdHJ1Y3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTg3NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHdhc20vQnVpbGRlcl9XZWJBc3NlbWJseUJpbmFyeS5qczoKKyAgICAgICAg
KGNvbnN0LnB1dE9wKToKKyAgICAgICAgKiB3YXNtL3JlZmVyZW5jZXMvdGFibGVfbWlzYy5qczog
QWRkZWQuCisgICAgICAgIChUYWJsZVNpemUuRW5kLkVuZC5XZWJBc3NlbWJseSk6CisgICAgICAg
IChHZXRMb2NhbC4wLkdldExvY2FsLjEuVGFibGVHcm93LkVuZC5FbmQuV2ViQXNzZW1ibHkpOgor
ICAgICAgICAqIHdhc20vd2FzbS5qc29uOgorCiAyMDE5LTA2LTEzICBZdXN1a2UgU3V6dWtpICA8
eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgWWFyciBieXRlY29kZSBjb21waWxhdGlvbiBm
YWlsdXJlIHNob3VsZCBiZSBncmFjZWZ1bGx5IGhhbmRsZWQKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
d2FzbS9CdWlsZGVyX1dlYkFzc2VtYmx5QmluYXJ5LmpzIGIvSlNUZXN0cy93YXNtL0J1aWxkZXJf
V2ViQXNzZW1ibHlCaW5hcnkuanMKaW5kZXggY2E4ZmQ4ZjY1ZjY5NmY5YjUwOTgxMGMxYzYwMmNh
NGE3YWQ0YzZlNC4uNGYzYTIzZjc0ZWMzZGM0M2VhNDUyYTQ0ZjNiYWVjMmRkZDczMWVhNSAxMDA2
NDQKLS0tIGEvSlNUZXN0cy93YXNtL0J1aWxkZXJfV2ViQXNzZW1ibHlCaW5hcnkuanMKKysrIGIv
SlNUZXN0cy93YXNtL0J1aWxkZXJfV2ViQXNzZW1ibHlCaW5hcnkuanMKQEAgLTYwLDYgKzYwLDgg
QEAgY29uc3QgcHV0R2xvYmFsVHlwZSA9IChiaW4sIGdsb2JhbCkgPT4gewogCiBjb25zdCBwdXRP
cCA9IChiaW4sIG9wKSA9PiB7CiAgICAgcHV0KGJpbiwgInVpbnQ4Iiwgb3AudmFsdWUpOworICAg
IGlmIChXQVNNLmRlc2NyaXB0aW9uLm9wY29kZVtvcC5uYW1lXS5leHRlbmRlZE9wKQorICAgICAg
ICBwdXQoYmluLCAidWludDgiLCBXQVNNLmRlc2NyaXB0aW9uLm9wY29kZVtvcC5uYW1lXS5leHRl
bmRlZE9wKTsKICAgICBpZiAob3AuYXJndW1lbnRzLmxlbmd0aCAhPT0gMCkKICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKGBVbmltcGxlbWVudGVkOiBhcmd1bWVudHNgKTsgLy8gRklYTUUgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjcwNgogCmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3dhc20vcmVmZXJlbmNlcy90YWJsZV9taXNjLmpzIGIvSlNUZXN0cy93YXNtL3JlZmVy
ZW5jZXMvdGFibGVfbWlzYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lY2VhYTUzY2FkNTRjMTZhZWU2ODM0Mjc2
MGFiYTg3NDY1OWQyN2NlCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy93YXNtL3JlZmVyZW5j
ZXMvdGFibGVfbWlzYy5qcwpAQCAtMCwwICsxLDE4NiBAQAoraW1wb3J0ICogYXMgYXNzZXJ0IGZy
b20gJy4uL2Fzc2VydC5qcyc7CitpbXBvcnQgQnVpbGRlciBmcm9tICcuLi9CdWlsZGVyLmpzJzsK
KworeworICAgIGNvbnN0ICQxID0gbmV3IFdlYkFzc2VtYmx5Lkluc3RhbmNlKG5ldyBXZWJBc3Nl
bWJseS5Nb2R1bGUoKG5ldyBCdWlsZGVyKCkpCisgICAgICAgICAgLlR5cGUoKS5FbmQoKQorICAg
ICAgICAgIC5GdW5jdGlvbigpLkVuZCgpCisgICAgICAgICAgLlRhYmxlKCkKKyAgICAgICAgICAg
ICAgICAuVGFibGUoe2luaXRpYWw6IDIwLCBtYXhpbXVtOiAzMCwgZWxlbWVudDogImFueXJlZiJ9
KQorICAgICAgICAgIC5FbmQoKQorICAgICAgICAgIC5FeHBvcnQoKQorICAgICAgICAgICAgICAu
RnVuY3Rpb24oInRibF9zaXplIikKKyAgICAgICAgICAgICAgLlRhYmxlKCJ0YmwiLCAwKQorICAg
ICAgICAgIC5FbmQoKQorICAgICAgICAgIC5Db2RlKCkKKyAgICAgICAgICAgIC5GdW5jdGlvbigi
dGJsX3NpemUiLCB7IHBhcmFtczogW10sIHJldDogImkzMiIgfSkKKyAgICAgICAgICAgICAgLlRh
YmxlU2l6ZSgpCisgICAgICAgICAgICAuRW5kKCkKKyAgICAgICAgICAuRW5kKCkuV2ViQXNzZW1i
bHkoKS5nZXQoKSkpOworICAgIGZ1bGxHQygpCisKKyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50
Ymxfc2l6ZSgpLCAyMCkKKyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50YmwuZ3Jvdyg1KSwgMjAp
CisgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJsX3NpemUoKSwgMjUpCisgICAgYXNzZXJ0LmVx
KCQxLmV4cG9ydHMudGJsLmdldCgwKSwgbnVsbCkKKyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50
YmwuZ2V0KDI0KSwgbnVsbCkKK30KKworYXNzZXJ0LnRocm93cygoKSA9PiBuZXcgV2ViQXNzZW1i
bHkuTW9kdWxlKChuZXcgQnVpbGRlcigpKQorICAgICAgLlR5cGUoKS5FbmQoKQorICAgICAgLkZ1
bmN0aW9uKCkuRW5kKCkKKyAgICAgIC5FeHBvcnQoKQorICAgICAgICAgIC5GdW5jdGlvbigidGJs
X3NpemUiKQorICAgICAgLkVuZCgpCisgICAgICAuQ29kZSgpCisgICAgICAgIC5GdW5jdGlvbigi
dGJsX3NpemUiLCB7IHBhcmFtczogW10sIHJldDogImkzMiIgfSkKKyAgICAgICAgICAuVGFibGVT
aXplKCkKKyAgICAgICAgLkVuZCgpCisgICAgICAuRW5kKCkuV2ViQXNzZW1ibHkoKS5nZXQoKSks
IEVycm9yLCAiV2ViQXNzZW1ibHkuTW9kdWxlIGRvZXNuJ3QgdmFsaWRhdGU6IHRhYmxlLnNpemUg
ZXhwZWN0cyBhIHRhYmxlLCBpbiBmdW5jdGlvbiBhdCBpbmRleCAwIChldmFsdWF0aW5nICduZXcg
V2ViQXNzZW1ibHkuTW9kdWxlJykiKQorCit7CisgICAgY29uc3QgJDEgPSBuZXcgV2ViQXNzZW1i
bHkuSW5zdGFuY2UobmV3IFdlYkFzc2VtYmx5Lk1vZHVsZSgobmV3IEJ1aWxkZXIoKSkKKyAgICAg
ICAgICAuVHlwZSgpLkVuZCgpCisgICAgICAgICAgLkZ1bmN0aW9uKCkuRW5kKCkKKyAgICAgICAg
ICAuVGFibGUoKQorICAgICAgICAgICAgICAgIC5UYWJsZSh7aW5pdGlhbDogMjAsIG1heGltdW06
IDMwLCBlbGVtZW50OiAiYW55cmVmIn0pCisgICAgICAgICAgLkVuZCgpCisgICAgICAgICAgLkV4
cG9ydCgpCisgICAgICAgICAgICAgIC5GdW5jdGlvbigidGJsX3NpemUiKQorICAgICAgICAgICAg
ICAuRnVuY3Rpb24oInRibF9ncm93IikKKyAgICAgICAgICAgICAgLlRhYmxlKCJ0YmwiLCAwKQor
ICAgICAgICAgIC5FbmQoKQorICAgICAgICAgIC5Db2RlKCkKKyAgICAgICAgICAgIC5GdW5jdGlv
bigidGJsX3NpemUiLCB7IHBhcmFtczogW10sIHJldDogImkzMiIgfSkKKyAgICAgICAgICAgICAg
LlRhYmxlU2l6ZSgpCisgICAgICAgICAgICAuRW5kKCkKKyAgICAgICAgICAgIC5GdW5jdGlvbigi
dGJsX2dyb3ciLCB7IHBhcmFtczogWyJhbnlyZWYiLCAiaTMyIl0sIHJldDogImkzMiIgfSkKKyAg
ICAgICAgICAgICAgICAuR2V0TG9jYWwoMCkKKyAgICAgICAgICAgICAgICAuR2V0TG9jYWwoMSkK
KyAgICAgICAgICAgICAgLlRhYmxlR3JvdygpCisgICAgICAgICAgICAuRW5kKCkKKyAgICAgICAg
ICAuRW5kKCkuV2ViQXNzZW1ibHkoKS5nZXQoKSkpOworICAgIGZ1bGxHQygpCisKKyAgICBhc3Nl
cnQuZXEoJDEuZXhwb3J0cy50Ymxfc2l6ZSgpLCAyMCkKKyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0
cy50YmxfZ3JvdygiaGkiLCA1KSwgMjApCisgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJsX3Np
emUoKSwgMjUpCisgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJsLmdldCgwKSwgbnVsbCkKKyAg
ICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50YmwuZ2V0KDI0KSwgImhpIikKKworICAgIGFzc2VydC5l
cSgkMS5leHBvcnRzLnRibF9ncm93KG51bGwsIDUpLCAyNSkKKyAgICBhc3NlcnQuZXEoJDEuZXhw
b3J0cy50YmwuZ2V0KDI0KSwgImhpIikKKyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50YmwuZ2V0
KDI1KSwgbnVsbCkKKyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50Ymxfc2l6ZSgpLCAzMCkKKyAg
ICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50YmxfZ3JvdyhudWxsLCAwKSwgLTEpCisgICAgYXNzZXJ0
LmVxKCQxLmV4cG9ydHMudGJsX2dyb3cobnVsbCwgNSksIC0xKQorICAgIGFzc2VydC5lcSgkMS5l
eHBvcnRzLnRibF9ncm93KG51bGwsIDApLCAtMSkKK30KKworYXNzZXJ0LnRocm93cygoKSA9PiBu
ZXcgV2ViQXNzZW1ibHkuTW9kdWxlKChuZXcgQnVpbGRlcigpKQorICAgICAgLlR5cGUoKS5FbmQo
KQorICAgICAgLkZ1bmN0aW9uKCkuRW5kKCkKKyAgICAgIC5Db2RlKCkKKyAgICAgICAgLkZ1bmN0
aW9uKCJ0YmxfZ3JvdyIsIHsgcGFyYW1zOiBbImFueXJlZiIsICJpMzIiXSwgcmV0OiAiaTMyIiB9
KQorICAgICAgICAgICAgLkdldExvY2FsKDApCisgICAgICAgICAgICAuR2V0TG9jYWwoMSkKKyAg
ICAgICAgICAgIC5UYWJsZUdyb3coKQorICAgICAgICAuRW5kKCkKKyAgICAgIC5FbmQoKS5XZWJB
c3NlbWJseSgpLmdldCgpKSwgRXJyb3IsICJXZWJBc3NlbWJseS5Nb2R1bGUgZG9lc24ndCB2YWxp
ZGF0ZTogdGFibGUuZ3JvdyBleHBlY3RzIGEgdGFibGUsIGluIGZ1bmN0aW9uIGF0IGluZGV4IDAg
KGV2YWx1YXRpbmcgJ25ldyBXZWJBc3NlbWJseS5Nb2R1bGUnKSIpCisKK2Fzc2VydC50aHJvd3Mo
KCkgPT4gbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZSgobmV3IEJ1aWxkZXIoKSkKKyAgICAgIC5UeXBl
KCkuRW5kKCkKKyAgICAgIC5GdW5jdGlvbigpLkVuZCgpCisgICAgICAuVGFibGUoKQorICAgICAg
ICAgICAgLlRhYmxlKHtpbml0aWFsOiAyMCwgbWF4aW11bTogMzAsIGVsZW1lbnQ6ICJhbnlyZWYi
fSkKKyAgICAgIC5FbmQoKQorICAgICAgLkNvZGUoKQorICAgICAgICAuRnVuY3Rpb24oInRibF9n
cm93IiwgeyBwYXJhbXM6IFsiYW55cmVmIiwgImkzMiJdLCByZXQ6ICJpMzIiIH0pCisgICAgICAg
ICAgICAuR2V0TG9jYWwoMCkKKyAgICAgICAgICAgIC5UYWJsZUdyb3coKQorICAgICAgICAuRW5k
KCkKKyAgICAgIC5FbmQoKS5XZWJBc3NlbWJseSgpLmdldCgpKSwgRXJyb3IsICJXZWJBc3NlbWJs
eS5Nb2R1bGUgZG9lc24ndCBwYXJzZSBhdCBieXRlIDU6IGNhbid0IHBvcCBlbXB0eSBzdGFjayBp
biB0YWJsZS5ncm93LCBpbiBmdW5jdGlvbiBhdCBpbmRleCAwIChldmFsdWF0aW5nICduZXcgV2Vi
QXNzZW1ibHkuTW9kdWxlJykiKQorCithc3NlcnQudGhyb3dzKCgpID0+IG5ldyBXZWJBc3NlbWJs
eS5Nb2R1bGUoKG5ldyBCdWlsZGVyKCkpCisgICAgICAuVHlwZSgpLkVuZCgpCisgICAgICAuRnVu
Y3Rpb24oKS5FbmQoKQorICAgICAgLlRhYmxlKCkKKyAgICAgICAgICAgIC5UYWJsZSh7aW5pdGlh
bDogMjAsIG1heGltdW06IDMwLCBlbGVtZW50OiAiYW55cmVmIn0pCisgICAgICAuRW5kKCkKKyAg
ICAgIC5Db2RlKCkKKyAgICAgICAgLkZ1bmN0aW9uKCJ0YmxfZ3JvdyIsIHsgcGFyYW1zOiBbImkz
MiIsICJpMzIiXSwgcmV0OiAiaTMyIiB9KQorICAgICAgICAgICAgLkdldExvY2FsKDApCisgICAg
ICAgICAgICAuR2V0TG9jYWwoMSkKKyAgICAgICAgICAgIC5UYWJsZUdyb3coKQorICAgICAgICAu
RW5kKCkKKyAgICAgIC5FbmQoKS5XZWJBc3NlbWJseSgpLmdldCgpKSwgRXJyb3IsICJXZWJBc3Nl
bWJseS5Nb2R1bGUgZG9lc24ndCB2YWxpZGF0ZTogdGFibGUuZ3JvdyBleHBlY3RzIGZpbGwgdmFs
dWUgb2YgdHlwZSBBbnlyZWYgZ290IEkzMiwgaW4gZnVuY3Rpb24gYXQgaW5kZXggMCAoZXZhbHVh
dGluZyAnbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZScpIikKKworeworICAgIGNvbnN0ICQxID0gbmV3
IFdlYkFzc2VtYmx5Lkluc3RhbmNlKG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoKG5ldyBCdWlsZGVy
KCkpCisgICAgICAgICAgLlR5cGUoKS5FbmQoKQorICAgICAgICAgIC5GdW5jdGlvbigpLkVuZCgp
CisgICAgICAgICAgLlRhYmxlKCkKKyAgICAgICAgICAgICAgICAuVGFibGUoe2luaXRpYWw6IDIw
LCBtYXhpbXVtOiAzMCwgZWxlbWVudDogImFueXJlZiJ9KQorICAgICAgICAgIC5FbmQoKQorICAg
ICAgICAgIC5FeHBvcnQoKQorICAgICAgICAgICAgICAuRnVuY3Rpb24oInRibF9zaXplIikKKyAg
ICAgICAgICAgICAgLkZ1bmN0aW9uKCJ0YmxfZmlsbCIpCisgICAgICAgICAgICAgIC5UYWJsZSgi
dGJsIiwgMCkKKyAgICAgICAgICAuRW5kKCkKKyAgICAgICAgICAuQ29kZSgpCisgICAgICAgICAg
ICAuRnVuY3Rpb24oInRibF9zaXplIiwgeyBwYXJhbXM6IFtdLCByZXQ6ICJpMzIiIH0pCisgICAg
ICAgICAgICAgIC5UYWJsZVNpemUoKQorICAgICAgICAgICAgLkVuZCgpCisgICAgICAgICAgICAu
RnVuY3Rpb24oInRibF9maWxsIiwgeyBwYXJhbXM6IFsiaTMyIiwgImFueXJlZiIsICJpMzIiXSwg
cmV0OiAidm9pZCIgfSkKKyAgICAgICAgICAgICAgICAuR2V0TG9jYWwoMCkKKyAgICAgICAgICAg
ICAgICAuR2V0TG9jYWwoMSkKKyAgICAgICAgICAgICAgICAuR2V0TG9jYWwoMikKKyAgICAgICAg
ICAgICAgICAuVGFibGVGaWxsKCkKKyAgICAgICAgICAgIC5FbmQoKQorICAgICAgICAgIC5FbmQo
KS5XZWJBc3NlbWJseSgpLmdldCgpKSk7CisgICAgZnVsbEdDKCkKKworICAgIGFzc2VydC5lcSgk
MS5leHBvcnRzLnRibF9zaXplKCksIDIwKQorICAgICQxLmV4cG9ydHMudGJsX2ZpbGwoMSwiaGki
LDMpCisgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJsLmdldCgwKSwgbnVsbCkKKyAgICBhc3Nl
cnQuZXEoJDEuZXhwb3J0cy50YmwuZ2V0KDEpLCAiaGkiKQorICAgIGFzc2VydC5lcSgkMS5leHBv
cnRzLnRibC5nZXQoMiksICJoaSIpCisgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJsLmdldCgz
KSwgImhpIikKKyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50YmwuZ2V0KDQpLCBudWxsKQorCisg
ICAgJDEuZXhwb3J0cy50YmxfZmlsbCgwLG51bGwsMSkKKyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0
cy50YmwuZ2V0KDApLCBudWxsKQorICAgICQxLmV4cG9ydHMudGJsX2ZpbGwoMCxudWxsLDApCisK
KyAgICAkMS5leHBvcnRzLnRibF9maWxsKDE5LCJ0ZXN0IiwxKQorICAgIGFzc2VydC5lcSgkMS5l
eHBvcnRzLnRibC5nZXQoMTkpLCAidGVzdCIpCisgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJs
LmdldCgxOCksIG51bGwpCisKKyAgICBhc3NlcnQudGhyb3dzKCgpID0+ICQxLmV4cG9ydHMudGJs
X2ZpbGwoMjAsbnVsbCwwKSwgRXJyb3IsICJPdXQgb2YgYm91bmRzIHRhYmxlIGFjY2VzcyAoZXZh
bHVhdGluZyAnZnVuYyguLi5hcmdzKScpIikKKyAgICBhc3NlcnQudGhyb3dzKCgpID0+ICQxLmV4
cG9ydHMudGJsX2ZpbGwoMTksbnVsbCwyKSwgRXJyb3IsICJPdXQgb2YgYm91bmRzIHRhYmxlIGFj
Y2VzcyAoZXZhbHVhdGluZyAnZnVuYyguLi5hcmdzKScpIikKK30KKworYXNzZXJ0LnRocm93cygo
KSA9PiBuZXcgV2ViQXNzZW1ibHkuTW9kdWxlKChuZXcgQnVpbGRlcigpKQorICAgICAgLlR5cGUo
KS5FbmQoKQorICAgICAgLkZ1bmN0aW9uKCkuRW5kKCkKKyAgICAgIC5Db2RlKCkKKyAgICAgICAg
LkZ1bmN0aW9uKCJ0YmxfZ3JvdyIsIHsgcGFyYW1zOiBbImFueXJlZiIsICJpMzIiXSwgcmV0OiAi
dm9pZCIgfSkKKyAgICAgICAgICAgIC5HZXRMb2NhbCgxKQorICAgICAgICAgICAgLkdldExvY2Fs
KDApCisgICAgICAgICAgICAuR2V0TG9jYWwoMSkKKyAgICAgICAgICAgIC5UYWJsZUZpbGwoKQor
ICAgICAgICAuRW5kKCkKKyAgICAgIC5FbmQoKS5XZWJBc3NlbWJseSgpLmdldCgpKSwgRXJyb3Is
ICJXZWJBc3NlbWJseS5Nb2R1bGUgZG9lc24ndCB2YWxpZGF0ZTogdGFibGUuZmlsbCBleHBlY3Rz
IGEgdGFibGUsIGluIGZ1bmN0aW9uIGF0IGluZGV4IDAgKGV2YWx1YXRpbmcgJ25ldyBXZWJBc3Nl
bWJseS5Nb2R1bGUnKSIpCisKK2Fzc2VydC50aHJvd3MoKCkgPT4gbmV3IFdlYkFzc2VtYmx5Lk1v
ZHVsZSgobmV3IEJ1aWxkZXIoKSkKKyAgICAgIC5UeXBlKCkuRW5kKCkKKyAgICAgIC5GdW5jdGlv
bigpLkVuZCgpCisgICAgICAuVGFibGUoKQorICAgICAgICAgICAgLlRhYmxlKHtpbml0aWFsOiAy
MCwgbWF4aW11bTogMzAsIGVsZW1lbnQ6ICJhbnlyZWYifSkKKyAgICAgIC5FbmQoKQorICAgICAg
LkNvZGUoKQorICAgICAgICAuRnVuY3Rpb24oInRibF9ncm93IiwgeyBwYXJhbXM6IFsiYW55cmVm
IiwgImkzMiJdLCByZXQ6ICJpMzIiIH0pCisgICAgICAgICAgICAuR2V0TG9jYWwoMCkKKyAgICAg
ICAgICAgIC5UYWJsZUZpbGwoKQorICAgICAgICAuRW5kKCkKKyAgICAgIC5FbmQoKS5XZWJBc3Nl
bWJseSgpLmdldCgpKSwgRXJyb3IsICJXZWJBc3NlbWJseS5Nb2R1bGUgZG9lc24ndCBwYXJzZSBh
dCBieXRlIDU6IGNhbid0IHBvcCBlbXB0eSBzdGFjayBpbiB0YWJsZS5maWxsLCBpbiBmdW5jdGlv
biBhdCBpbmRleCAwIChldmFsdWF0aW5nICduZXcgV2ViQXNzZW1ibHkuTW9kdWxlJykiKQpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy93YXNtL3dhc20uanNvbiBiL0pTVGVzdHMvd2FzbS93YXNtLmpzb24K
aW5kZXggMzBiYmM3NDcyMzc4MzkyMmVkYmJmNjM0OTkzNDkwZjQ4YjdiN2UwMi4uNmUwZDM4NjQw
ZGIxODE5OGFlZmUzYmVkMzI0NWMzYmE0MjRmNGMyZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNt
L3dhc20uanNvbgorKysgYi9KU1Rlc3RzL3dhc20vd2FzbS5qc29uCkBAIC02OCw2ICs2OCw5IEBA
CiAgICAgICAgICJzZXRfZ2xvYmFsIjogICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIs
ICAgICJ2YWx1ZSI6ICAzNiwgInJldHVybiI6IFtdLCAgICAgICAgICAgInBhcmFtZXRlciI6IFsi
YW55Il0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAiZ2xvYmFsX2lu
ZGV4IiwgICAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAid3JpdGUgYSBnbG9iYWwgdmFyaWFibGUi
IH0sCiAgICAgICAgICJ0YWJsZS5nZXQiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lh
bCIsICAgICJ2YWx1ZSI6ICAzNywgInJldHVybiI6IFsiYW55cmVmIl0sICAgInBhcmFtZXRlciI6
IFsiaTMyIl0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiZ2V0IGEgdGFibGUgdmFsdWUiIH0s
CiAgICAgICAgICJ0YWJsZS5zZXQiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIs
ICAgICJ2YWx1ZSI6ICAzOCwgInJldHVybiI6IFtdLCAgICAgICAgICAgInBhcmFtZXRlciI6IFsi
aTMyIiwgImFueXJlZiJdLCAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAic2V0IGEgdGFibGUgdmFsdWUiIH0sCisg
ICAgICAgICJ0YWJsZS5zaXplIjogICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiZXh0dGFibGUiLCAg
ICJ2YWx1ZSI6ICAyNTIsICJyZXR1cm4iOiBbImkzMiJdLCAgICAgInBhcmFtZXRlciI6IFtdLCAg
ICAgICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiZ2V0IHRoZSBzaXplIG9mIGEgdGFibGUiLCAi
ZXh0ZW5kZWRPcCI6IDE1IH0sCisgICAgICAgICJ0YWJsZS5ncm93IjogICAgICAgICAgeyAiY2F0
ZWdvcnkiOiAiZXh0dGFibGUiLCAgICJ2YWx1ZSI6ICAyNTIsICJyZXR1cm4iOiBbImkzMiJdLCAg
ICAgInBhcmFtZXRlciI6IFsiYW55cmVmIiwgImkzMiJdLCAgICAgICAgImltbWVkaWF0ZSI6IFtd
LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiZ3JvdyBh
IHRhYmxlIGJ5IHRoZSBnaXZlbiBkZWx0YSBhbmQgcmV0dXJuIHRoZSBwcmV2aW91cyBzaXplLCBv
ciAtMSBpZiBlbm91Z2ggc3BhY2UgY2Fubm90IGJlIGFsbG9jYXRlZCIsICJleHRlbmRlZE9wIjog
MTYgfSwKKyAgICAgICAgInRhYmxlLmZpbGwiOiAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJleHR0
YWJsZSIsICAgInZhbHVlIjogIDI1MiwgInJldHVybiI6IFsiaTMyIl0sICAgICAicGFyYW1ldGVy
IjogWyJpMzIiLCAiYW55cmVmIiwgImkzMiJdLCAiaW1tZWRpYXRlIjogW10sICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJmaWxsIGVudHJpZXMgW2ksaStu
KSB3aXRoIHRoZSBnaXZlbiB2YWx1ZSIsICJleHRlbmRlZE9wIjogMTcgfSwKICAgICAgICAgImNh
bGwiOiAgICAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjYWxsIiwgICAgICAgInZhbHVlIjog
IDE2LCAicmV0dXJuIjogWyJjYWxsIl0sICAgICAicGFyYW1ldGVyIjogWyJjYWxsIl0sICAgICAg
ICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJmdW5jdGlvbl9pbmRleCIsICJ0eXBl
IjogInZhcnVpbnQzMiJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJjYWxsIGEgZnVuY3Rpb24gYnkgaXRzIGluZGV4IiB9LAogICAg
ICAgICAiY2FsbF9pbmRpcmVjdCI6ICAgICAgIHsgImNhdGVnb3J5IjogImNhbGwiLCAgICAgICAi
dmFsdWUiOiAgMTcsICJyZXR1cm4iOiBbImNhbGwiXSwgICAgICJwYXJhbWV0ZXIiOiBbImNhbGwi
XSwgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogInR5cGVfaW5kZXgiLCAg
ICAgInR5cGUiOiAidmFydWludDMyIn0sIHsibmFtZSI6ICJyZXNlcnZlZCIsICJ0eXBlIjogInZh
cnVpbnQxIn1dLCAgImRlc2NyaXB0aW9uIjogImNhbGwgYSBmdW5jdGlvbiBpbmRpcmVjdCB3aXRo
IGFuIGV4cGVjdGVkIHNpZ25hdHVyZSIgfSwKICAgICAgICAgImkzMi5sb2FkOF9zIjogICAgICAg
ICB7ICJjYXRlZ29yeSI6ICJtZW1vcnkiLCAgICAgInZhbHVlIjogIDQ0LCAicmV0dXJuIjogWyJp
MzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJhZGRyIl0sICAgICAgICAgICAgICAgICAiaW1tZWRp
YXRlIjogW3sibmFtZSI6ICJmbGFncyIsICAgICAgICAgICJ0eXBlIjogInZhcnVpbnQzMiJ9LCB7
Im5hbWUiOiAib2Zmc2V0IiwgICAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICJkZXNjcmlwdGlvbiI6
ICJsb2FkIGZyb20gbWVtb3J5IiB9LAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372156</attachid>
            <date>2019-06-14 17:30:41 -0700</date>
            <delta_ts>2019-06-18 15:56:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198761-20190614173040.patch</filename>
            <type>text/plain</type>
            <size>35327</size>
            <attacher name="Justin Michaud">justin_michaud</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2NDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NWVlMjY3MzU3MTQzYzUwNjc2Y2I3ZTE0YTJkOWFjNTY4YTJkMThiLi44YTBlYzFmOTBmOWI3Mzdl
MzBmZGFjMjU1NDNjNDAxZDg4MjVkNmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxOS0wNi0xNCAgSnVzdGluIE1pY2hhdWQgIDxqdXN0aW5fbWljaGF1ZEBh
cHBsZS5jb20+CisKKyAgICAgICAgW1dBU00tUmVmZXJlbmNlc10gQWRkIHN1cHBvcnQgZm9yIFRh
YmxlLnNpemUsIGdyb3cgYW5kIGZpbGwgaW5zdHJ1Y3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg3NjEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgVGFibGUuc2l6ZSwg
Z3JvdyBhbmQgZmlsbCBpbnN0cnVjdGlvbnMuIFRoaXMgYWxzbyByZXF1aXJlZAorICAgICAgICBh
ZGRpbmcgc3VwcG9ydCBmb3IgdHdvLWJ5dGUgb3Bjb2RlcyB0byB0aGUgb3BzIGdlbmVyYXRvci4K
KworICAgICAgICAqIHdhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6
V2FzbTo6QWlySVJHZW5lcmF0b3I6OmdBbnlyZWYpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJ
UkdlbmVyYXRvcjo6dG1wRm9yVHlwZSk6CisgICAgICAgIChKU0M6Oldhc206OkFpcklSR2VuZXJh
dG9yOjphZGRUYWJsZVNpemUpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6
YWRkVGFibGVHcm93KToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OmFkZFRh
YmxlRmlsbCk6CisgICAgICAgICogd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHA6CisgICAgICAg
IChKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OmFkZFRhYmxlU2l6ZSk6CisgICAgICAgIChKU0M6
Oldhc206OkIzSVJHZW5lcmF0b3I6OmFkZFRhYmxlR3Jvdyk6CisgICAgICAgIChKU0M6Oldhc206
OkIzSVJHZW5lcmF0b3I6OmFkZFRhYmxlRmlsbCk6CisgICAgICAgICogd2FzbS9XYXNtRXhjZXB0
aW9uVHlwZS5oOgorICAgICAgICAqIHdhc20vV2FzbUZvcm1hdC5oOgorICAgICAgICAoSlNDOjpX
YXNtOjpUYWJsZUluZm9ybWF0aW9uOjp3YXNtVHlwZSBjb25zdCk6CisgICAgICAgICogd2FzbS9X
YXNtRnVuY3Rpb25QYXJzZXIuaDoKKyAgICAgICAgKEpTQzo6V2FzbTo6RnVuY3Rpb25QYXJzZXI8
Q29udGV4dD46OnBhcnNlRXhwcmVzc2lvbik6CisgICAgICAgIChKU0M6Oldhc206OkZ1bmN0aW9u
UGFyc2VyPENvbnRleHQ+OjpwYXJzZVVucmVhY2hhYmxlRXhwcmVzc2lvbik6CisgICAgICAgICog
d2FzbS9XYXNtSW5zdGFuY2UuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpkb1dhc21UYWJsZUdy
b3cpOgorICAgICAgICAoSlNDOjpXYXNtOjpkb1dhc21UYWJsZUZpbGwpOgorICAgICAgICAqIHdh
c20vV2FzbUluc3RhbmNlLmg6CisgICAgICAgICogd2FzbS9XYXNtVGFibGUuY3BwOgorICAgICAg
ICAoSlNDOjpXYXNtOjpUYWJsZTo6Z3Jvdyk6CisgICAgICAgICogd2FzbS9XYXNtVmFsaWRhdGUu
Y3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWxpZGF0ZTo6YWRkVGFibGVTaXplKToKKyAgICAg
ICAgKEpTQzo6V2FzbTo6VmFsaWRhdGU6OmFkZFRhYmxlR3Jvdyk6CisgICAgICAgIChKU0M6Oldh
c206OlZhbGlkYXRlOjphZGRUYWJsZUZpbGwpOgorICAgICAgICAqIHdhc20vZ2VuZXJhdGVXYXNt
T3BzSGVhZGVyLnB5OgorICAgICAgICAob3Bjb2RlTWFjcm9pemVyKToKKyAgICAgICAgKEV4dFRh
YmxlT3BUeXBlKToKKyAgICAgICAgKiB3YXNtL3dhc20uanNvbjoKKwogMjAxOS0wNi0xMyAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFlhcnIgYnl0ZWNvZGUg
Y29tcGlsYXRpb24gZmFpbHVyZSBzaG91bGQgYmUgZ3JhY2VmdWxseSBoYW5kbGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcAppbmRleCA1
N2IzZGY4MTBlNGIxMmY5ZTczYWM0YjE0NzgwYjE2NDlkODczY2IyLi41ODU2MGM2MTY3MWJhZmIz
YTUzNWQ3NmNiMzQ4ZDFmY2Q4M2MyZjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAKQEAgLTIzOCw2ICsyMzgsOSBAQCBwdWJsaWM6
CiAgICAgLy8gVGFibGVzCiAgICAgUGFydGlhbFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRk
VGFibGVHZXQoRXhwcmVzc2lvblR5cGUmIGlkeCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCk7CiAg
ICAgUGFydGlhbFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkVGFibGVTZXQoRXhwcmVzc2lv
blR5cGUmIGlkeCwgRXhwcmVzc2lvblR5cGUmIHZhbHVlKTsKKyAgICBQYXJ0aWFsUmVzdWx0IFdB
Uk5fVU5VU0VEX1JFVFVSTiBhZGRUYWJsZVNpemUoRXhwcmVzc2lvblR5cGUmIHJlc3VsdCk7Cisg
ICAgUGFydGlhbFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkVGFibGVHcm93KEV4cHJlc3Np
b25UeXBlJiBmaWxsLCBFeHByZXNzaW9uVHlwZSYgZGVsdGEsIEV4cHJlc3Npb25UeXBlJiByZXN1
bHQpOworICAgIFBhcnRpYWxSZXN1bHQgV0FSTl9VTlVTRURfUkVUVVJOIGFkZFRhYmxlRmlsbChF
eHByZXNzaW9uVHlwZSYgb2Zmc2V0LCBFeHByZXNzaW9uVHlwZSYgZmlsbCwgRXhwcmVzc2lvblR5
cGUmIGNvdW50KTsKIAogICAgIC8vIExvY2FscwogICAgIFBhcnRpYWxSZXN1bHQgV0FSTl9VTlVT
RURfUkVUVVJOIGdldExvY2FsKHVpbnQzMl90IGluZGV4LCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0
KTsKQEAgLTM2MCw2ICszNjMsNyBAQCBwcml2YXRlOgogCiAgICAgVHlwZWRUbXAgZzMyKCkgeyBy
ZXR1cm4geyBuZXdUbXAoQjM6OkdQKSwgVHlwZTo6STMyIH07IH0KICAgICBUeXBlZFRtcCBnNjQo
KSB7IHJldHVybiB7IG5ld1RtcChCMzo6R1ApLCBUeXBlOjpJNjQgfTsgfQorICAgIFR5cGVkVG1w
IGdBbnlyZWYoKSB7IHJldHVybiB7IG5ld1RtcChCMzo6R1ApLCBUeXBlOjpBbnlyZWYgfTsgfQog
ICAgIFR5cGVkVG1wIGYzMigpIHsgcmV0dXJuIHsgbmV3VG1wKEIzOjpGUCksIFR5cGU6OkYzMiB9
OyB9CiAgICAgVHlwZWRUbXAgZjY0KCkgeyByZXR1cm4geyBuZXdUbXAoQjM6OkZQKSwgVHlwZTo6
RjY0IH07IH0KIApAQCAtMzY5LDggKzM3Myw5IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgVHlw
ZTo6STMyOgogICAgICAgICAgICAgcmV0dXJuIGczMigpOwogICAgICAgICBjYXNlIFR5cGU6Okk2
NDoKLSAgICAgICAgY2FzZSBUeXBlOjpBbnlyZWY6CiAgICAgICAgICAgICByZXR1cm4gZzY0KCk7
CisgICAgICAgIGNhc2UgVHlwZTo6QW55cmVmOgorICAgICAgICAgICAgcmV0dXJuIGdBbnlyZWYo
KTsKICAgICAgICAgY2FzZSBUeXBlOjpGMzI6CiAgICAgICAgICAgICByZXR1cm4gZjMyKCk7CiAg
ICAgICAgIGNhc2UgVHlwZTo6RjY0OgpAQCAtNTA2LDYgKzUxMSw3IEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICAgICAgcmVzdWx0VHlwZSA9IEIzOjpJbnQzMjsKICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIGNhc2UgVHlwZTo6STY0OgorICAgICAgICAgICAgY2FzZSBUeXBlOjpB
bnlyZWY6CiAgICAgICAgICAgICAgICAgcmVzdWx0VHlwZSA9IEIzOjpJbnQ2NDsKICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgVHlwZTo6RjMyOgpAQCAtOTg4LDYgKzk5
NCw1NCBAQCBhdXRvIEFpcklSR2VuZXJhdG9yOjphZGRUYWJsZVNldChFeHByZXNzaW9uVHlwZSYg
aWR4LCBFeHByZXNzaW9uVHlwZSYgdmFsdWUpIC0+CiAgICAgcmV0dXJuIHsgfTsKIH0KIAorYXV0
byBBaXJJUkdlbmVyYXRvcjo6YWRkVGFibGVTaXplKEV4cHJlc3Npb25UeXBlJiByZXN1bHQpIC0+
IFBhcnRpYWxSZXN1bHQKK3sKKyAgICAvLyBGSVhNRTogRW1pdCB0aGlzIGlubGluZSA8aHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODUwNj4uCisgICAgcmVzdWx0ID0g
dG1wRm9yVHlwZShUeXBlOjpJMzIpOworCisgICAgaW50MzJfdCAoKmRvU2l6ZSkoSW5zdGFuY2Uq
KSA9IFtdIChJbnN0YW5jZSogaW5zdGFuY2UpIC0+IGludDMyX3QgeworICAgICAgICByZXR1cm4g
aW5zdGFuY2UtPnRhYmxlKCktPmxlbmd0aCgpOworICAgIH07CisKKyAgICBlbWl0Q0NhbGwoZG9T
aXplLCByZXN1bHQsIGluc3RhbmNlVmFsdWUoKSk7CisKKyAgICByZXR1cm4geyB9OworfQorCith
dXRvIEFpcklSR2VuZXJhdG9yOjphZGRUYWJsZUdyb3coRXhwcmVzc2lvblR5cGUmIGZpbGwsIEV4
cHJlc3Npb25UeXBlJiBkZWx0YSwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkgLT4gUGFydGlhbFJl
c3VsdAoreworICAgIEFTU0VSVChmaWxsLnRtcCgpKTsKKyAgICBBU1NFUlQoZmlsbC50eXBlKCkg
PT0gbV9pbmZvLnRhYmxlSW5mb3JtYXRpb24ud2FzbVR5cGUoKSk7CisgICAgQVNTRVJUKGRlbHRh
LnRtcCgpKTsKKyAgICBBU1NFUlQoZGVsdGEudHlwZSgpID09IFR5cGU6OkkzMik7CisgICAgcmVz
dWx0ID0gdG1wRm9yVHlwZShUeXBlOjpJMzIpOworCisgICAgZW1pdENDYWxsKCZkb1dhc21UYWJs
ZUdyb3csIHJlc3VsdCwgaW5zdGFuY2VWYWx1ZSgpLCBmaWxsLCBkZWx0YSk7CisKKyAgICByZXR1
cm4geyB9OworfQorCithdXRvIEFpcklSR2VuZXJhdG9yOjphZGRUYWJsZUZpbGwoRXhwcmVzc2lv
blR5cGUmIG9mZnNldCwgRXhwcmVzc2lvblR5cGUmIGZpbGwsIEV4cHJlc3Npb25UeXBlJiBjb3Vu
dCkgLT4gUGFydGlhbFJlc3VsdAoreworICAgIEFTU0VSVChmaWxsLnRtcCgpKTsKKyAgICBBU1NF
UlQoZmlsbC50eXBlKCkgPT0gbV9pbmZvLnRhYmxlSW5mb3JtYXRpb24ud2FzbVR5cGUoKSk7Cisg
ICAgQVNTRVJUKG9mZnNldC50bXAoKSk7CisgICAgQVNTRVJUKG9mZnNldC50eXBlKCkgPT0gVHlw
ZTo6STMyKTsKKyAgICBBU1NFUlQoY291bnQudG1wKCkpOworICAgIEFTU0VSVChjb3VudC50eXBl
KCkgPT0gVHlwZTo6STMyKTsKKworICAgIGF1dG8gcmVzdWx0ID0gdG1wRm9yVHlwZShUeXBlOjpJ
MzIpOworICAgIGVtaXRDQ2FsbCgmZG9XYXNtVGFibGVGaWxsLCByZXN1bHQsIGluc3RhbmNlVmFs
dWUoKSwgb2Zmc2V0LCBmaWxsLCBjb3VudCk7CisKKyAgICBlbWl0Q2hlY2soWyZdIHsKKyAgICAg
ICAgcmV0dXJuIEluc3QoQnJhbmNoVGVzdDMyLCBudWxscHRyLCBBcmc6OnJlc0NvbmQoTWFjcm9B
c3NlbWJsZXI6Olplcm8pLCByZXN1bHQsIHJlc3VsdCk7CisgICAgfSwgWz1dIChDQ2FsbEhlbHBl
cnMmIGppdCwgY29uc3QgQjM6OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsKKyAgICAgICAg
dGhpcy0+ZW1pdFRocm93RXhjZXB0aW9uKGppdCwgRXhjZXB0aW9uVHlwZTo6T3V0T2ZCb3VuZHNU
YWJsZUFjY2Vzcyk7CisgICAgfSk7CisKKyAgICByZXR1cm4geyB9OworfQorCiBhdXRvIEFpcklS
R2VuZXJhdG9yOjpnZXRMb2NhbCh1aW50MzJfdCBpbmRleCwgRXhwcmVzc2lvblR5cGUmIHJlc3Vs
dCkgLT4gUGFydGlhbFJlc3VsdAogewogICAgIEFTU0VSVChtX2xvY2Fsc1tpbmRleF0udG1wKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3Bw
CmluZGV4IDIyMjZmZmM3MmM5MzgyY2MyNmZiM2ViYmUwOTQyOTc2MGVmNDRhYjcuLjMwNDhjNjE2
MTcxMjc2M2ZjMzBkZGRlMzVjOTVlYjZlOGM4YTk5OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKQEAgLTE5MSw3ICsxOTEsOSBAQCBw
dWJsaWM6CiAgICAgLy8gVGFibGVzCiAgICAgUGFydGlhbFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRV
Uk4gYWRkVGFibGVHZXQoRXhwcmVzc2lvblR5cGUmIGlkeCwgRXhwcmVzc2lvblR5cGUmIHJlc3Vs
dCk7CiAgICAgUGFydGlhbFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkVGFibGVTZXQoRXhw
cmVzc2lvblR5cGUmIGlkeCwgRXhwcmVzc2lvblR5cGUmIHZhbHVlKTsKLQorICAgIFBhcnRpYWxS
ZXN1bHQgV0FSTl9VTlVTRURfUkVUVVJOIGFkZFRhYmxlU2l6ZShFeHByZXNzaW9uVHlwZSYgcmVz
dWx0KTsKKyAgICBQYXJ0aWFsUmVzdWx0IFdBUk5fVU5VU0VEX1JFVFVSTiBhZGRUYWJsZUdyb3co
RXhwcmVzc2lvblR5cGUmIGZpbGwsIEV4cHJlc3Npb25UeXBlJiBkZWx0YSwgRXhwcmVzc2lvblR5
cGUmIHJlc3VsdCk7CisgICAgUGFydGlhbFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkVGFi
bGVGaWxsKEV4cHJlc3Npb25UeXBlJiBvZmZzZXQsIEV4cHJlc3Npb25UeXBlJiBmaWxsLCBFeHBy
ZXNzaW9uVHlwZSYgY291bnQpOwogICAgIC8vIExvY2FscwogICAgIFBhcnRpYWxSZXN1bHQgV0FS
Tl9VTlVTRURfUkVUVVJOIGdldExvY2FsKHVpbnQzMl90IGluZGV4LCBFeHByZXNzaW9uVHlwZSYg
cmVzdWx0KTsKICAgICBQYXJ0aWFsUmVzdWx0IFdBUk5fVU5VU0VEX1JFVFVSTiBzZXRMb2NhbCh1
aW50MzJfdCBpbmRleCwgRXhwcmVzc2lvblR5cGUgdmFsdWUpOwpAQCAtNTk2LDYgKzU5OCw0NyBA
QCBhdXRvIEIzSVJHZW5lcmF0b3I6OmFkZFRhYmxlU2V0KEV4cHJlc3Npb25UeXBlJiBpZHgsIEV4
cHJlc3Npb25UeXBlJiB2YWx1ZSkgLT4gUAogICAgIHJldHVybiB7IH07CiB9CiAKK2F1dG8gQjNJ
UkdlbmVyYXRvcjo6YWRkVGFibGVTaXplKEV4cHJlc3Npb25UeXBlJiByZXN1bHQpIC0+IFBhcnRp
YWxSZXN1bHQKK3sKKyAgICAvLyBGSVhNRTogRW1pdCB0aGlzIGlubGluZSA8aHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODUwNj4uCisgICAgdWludDMyX3QgKCpkb1Np
emUpKEluc3RhbmNlKikgPSBbXSAoSW5zdGFuY2UqIGluc3RhbmNlKSAtPiB1aW50MzJfdCB7Cisg
ICAgICAgIHJldHVybiBpbnN0YW5jZS0+dGFibGUoKS0+bGVuZ3RoKCk7CisgICAgfTsKKworICAg
IHJlc3VsdCA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4obV9wcm9jLCB0
b0IzVHlwZShJMzIpLCBvcmlnaW4oKSwKKyAgICAgICAgbV9jdXJyZW50QmxvY2stPmFwcGVuZE5l
dzxDb25zdFB0clZhbHVlPihtX3Byb2MsIG9yaWdpbigpLCB0YWdDRnVuY3Rpb25QdHI8dm9pZCo+
KGRvU2l6ZSwgQjNDQ2FsbFB0clRhZykpLAorICAgICAgICBpbnN0YW5jZVZhbHVlKCkpOworCisg
ICAgcmV0dXJuIHsgfTsKK30KKworYXV0byBCM0lSR2VuZXJhdG9yOjphZGRUYWJsZUdyb3coRXhw
cmVzc2lvblR5cGUmIGZpbGwsIEV4cHJlc3Npb25UeXBlJiBkZWx0YSwgRXhwcmVzc2lvblR5cGUm
IHJlc3VsdCkgLT4gUGFydGlhbFJlc3VsdAoreworICAgIHJlc3VsdCA9IG1fY3VycmVudEJsb2Nr
LT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4obV9wcm9jLCB0b0IzVHlwZShJMzIpLCBvcmlnaW4oKSwK
KyAgICAgICAgbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihtX3Byb2Ms
IG9yaWdpbigpLCB0YWdDRnVuY3Rpb25QdHI8dm9pZCo+KCZkb1dhc21UYWJsZUdyb3csIEIzQ0Nh
bGxQdHJUYWcpKSwKKyAgICAgICAgaW5zdGFuY2VWYWx1ZSgpLCBmaWxsLCBkZWx0YSk7CisKKyAg
ICByZXR1cm4geyB9OworfQorCithdXRvIEIzSVJHZW5lcmF0b3I6OmFkZFRhYmxlRmlsbChFeHBy
ZXNzaW9uVHlwZSYgb2Zmc2V0LCBFeHByZXNzaW9uVHlwZSYgZmlsbCwgRXhwcmVzc2lvblR5cGUm
IGNvdW50KSAtPiBQYXJ0aWFsUmVzdWx0Cit7CisgICAgYXV0byByZXN1bHQgPSBtX2N1cnJlbnRC
bG9jay0+YXBwZW5kTmV3PENDYWxsVmFsdWU+KG1fcHJvYywgdG9CM1R5cGUoSTMyKSwgb3JpZ2lu
KCksCisgICAgICAgIG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4obV9w
cm9jLCBvcmlnaW4oKSwgdGFnQ0Z1bmN0aW9uUHRyPHZvaWQqPigmZG9XYXNtVGFibGVGaWxsLCBC
M0NDYWxsUHRyVGFnKSksCisgICAgICAgIGluc3RhbmNlVmFsdWUoKSwgb2Zmc2V0LCBmaWxsLCBj
b3VudCk7CisKKyAgICB7CisgICAgICAgIENoZWNrVmFsdWUqIGNoZWNrID0gbV9jdXJyZW50Qmxv
Y2stPmFwcGVuZE5ldzxDaGVja1ZhbHVlPihtX3Byb2MsIENoZWNrLCBvcmlnaW4oKSwKKyAgICAg
ICAgICAgIG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgRXF1YWwsIG9y
aWdpbigpLCByZXN1bHQsIG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPiht
X3Byb2MsIG9yaWdpbigpLCAwKSkpOworCisgICAgICAgIGNoZWNrLT5zZXRHZW5lcmF0b3IoWz1d
IChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgQjM6OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYp
IHsKKyAgICAgICAgICAgIHRoaXMtPmVtaXRFeGNlcHRpb25DaGVjayhqaXQsIEV4Y2VwdGlvblR5
cGU6Ok91dE9mQm91bmRzVGFibGVBY2Nlc3MpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBy
ZXR1cm4geyB9OworfQorCiBhdXRvIEIzSVJHZW5lcmF0b3I6OmdldExvY2FsKHVpbnQzMl90IGlu
ZGV4LCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KSAtPiBQYXJ0aWFsUmVzdWx0CiB7CiAgICAgQVNT
RVJUKG1fbG9jYWxzW2luZGV4XSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtRXhjZXB0aW9uVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUV4Y2VwdGlvblR5cGUuaAppbmRleCBkNDQ2YzBlZDFiNGRkOWY2NmZmNTkzODI2NWEwNjZlMGRj
OTJkNjExLi4xYWFlNzY0NDY4NThlMjYyODhjM2RlMmIwOWQ3ZDM4MzRhYWI4NDNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRXhjZXB0aW9uVHlwZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21FeGNlcHRpb25UeXBlLmgKQEAgLTMzLDYg
KzMzLDcgQEAgbmFtZXNwYWNlIFdhc20gewogCiAjZGVmaW5lIEZPUl9FQUNIX0VYQ0VQVElPTiht
YWNybykgXAogICAgIG1hY3JvKE91dE9mQm91bmRzTWVtb3J5QWNjZXNzLCAgIk91dCBvZiBib3Vu
ZHMgbWVtb3J5IGFjY2VzcyIpIFwKKyAgICBtYWNybyhPdXRPZkJvdW5kc1RhYmxlQWNjZXNzLCAi
T3V0IG9mIGJvdW5kcyB0YWJsZSBhY2Nlc3MiKSBcCiAgICAgbWFjcm8oT3V0T2ZCb3VuZHNDYWxs
SW5kaXJlY3QsICJPdXQgb2YgYm91bmRzIGNhbGxfaW5kaXJlY3QiKSBcCiAgICAgbWFjcm8oTnVs
bFRhYmxlRW50cnksICAiY2FsbF9pbmRpcmVjdCB0byBhIG51bGwgdGFibGUgZW50cnkiKSBcCiAg
ICAgbWFjcm8oQmFkU2lnbmF0dXJlLCAiY2FsbF9pbmRpcmVjdCB0byBhIHNpZ25hdHVyZSB0aGF0
IGRvZXMgbm90IG1hdGNoIikgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUZvcm1hdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5o
CmluZGV4IDYyOTIyNTBmMjVlZWE5NDkwYzQzYTRlYmQ0NmQyZTI1ZTBjMzZjOTUuLjZiNDNjYWNj
NGMyNGYwYzdkNjYwMjJhNDNlNGY3MTYzZDFhZTcyYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtRm9ybWF0LmgKQEAgLTIzNCw2ICsyMzQsNyBAQCBwdWJsaWM6CiAgICAgdWludDMy
X3QgaW5pdGlhbCgpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhbDsgfQogICAgIE9wdGlvbmFsPHVp
bnQzMl90PiBtYXhpbXVtKCkgY29uc3QgeyByZXR1cm4gbV9tYXhpbXVtOyB9CiAgICAgVGFibGVF
bGVtZW50VHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisgICAgV2FzbTo6VHlw
ZSB3YXNtVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUYWJsZUVsZW1lbnRUeXBlOjpG
dW5jcmVmID8gVHlwZTo6QW55ZnVuYyA6IFR5cGU6OkFueXJlZjsgfQogCiBwcml2YXRlOgogICAg
IHVpbnQzMl90IG1faW5pdGlhbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21GdW5jdGlvblBhcnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUZ1bmN0aW9uUGFyc2VyLmgKaW5kZXggZGZhZThmMmNmM2FkMmRhMThhYTg4YmIyNmJkNTU4Y2M3
ZDg0NzZkZS4uMjRlMjVhMTNlMDA2NzQyNWU0N2VmNGI5OGJkNjk3NTZmMDY3YmU2ZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgKQEAgLTI5
OSw2ICsyOTksNDEgQEAgYXV0byBGdW5jdGlvblBhcnNlcjxDb250ZXh0Pjo6cGFyc2VFeHByZXNz
aW9uKCkgLT4gUGFydGlhbFJlc3VsdAogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAorICAg
IGNhc2UgRXh0VGFibGU6IHsKKyAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRighT3B0aW9uczo6
dXNlV2ViQXNzZW1ibHlSZWZlcmVuY2VzKCksICJyZWZlcmVuY2VzIGFyZSBub3QgZW5hYmxlZCIp
OworICAgICAgICB1aW50OF90IGV4dE9wOworICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFw
YXJzZVVJbnQ4KGV4dE9wKSwgImNhbid0IHBhcnNlIHRhYmxlIGV4dGVuZGVkIG9wY29kZSIpOwor
CisgICAgICAgIHN3aXRjaCAoKEV4dFRhYmxlT3BUeXBlKSBleHRPcCkgeworICAgICAgICBjYXNl
IEV4dFRhYmxlT3BUeXBlOjpUYWJsZVNpemU6IHsKKyAgICAgICAgICAgIEV4cHJlc3Npb25UeXBl
IHJlc3VsdDsKKyAgICAgICAgICAgIFdBU01fVFJZX0FERF9UT19DT05URVhUKGFkZFRhYmxlU2l6
ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIG1fZXhwcmVzc2lvblN0YWNrLmFwcGVuZChyZXN1bHQp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBFeHRUYWJsZU9w
VHlwZTo6VGFibGVHcm93OiB7CisgICAgICAgICAgICBFeHByZXNzaW9uVHlwZSBmaWxsLCBkZWx0
YSwgcmVzdWx0OworICAgICAgICAgICAgV0FTTV9UUllfUE9QX0VYUFJFU1NJT05fU1RBQ0tfSU5U
TyhkZWx0YSwgInRhYmxlLmdyb3ciKTsKKyAgICAgICAgICAgIFdBU01fVFJZX1BPUF9FWFBSRVNT
SU9OX1NUQUNLX0lOVE8oZmlsbCwgInRhYmxlLmdyb3ciKTsKKyAgICAgICAgICAgIFdBU01fVFJZ
X0FERF9UT19DT05URVhUKGFkZFRhYmxlR3JvdyhmaWxsLCBkZWx0YSwgcmVzdWx0KSk7CisgICAg
ICAgICAgICBtX2V4cHJlc3Npb25TdGFjay5hcHBlbmQocmVzdWx0KTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgRXh0VGFibGVPcFR5cGU6OlRhYmxlRmlsbDog
eworICAgICAgICAgICAgRXhwcmVzc2lvblR5cGUgb2Zmc2V0LCBmaWxsLCBjb3VudDsKKyAgICAg
ICAgICAgIFdBU01fVFJZX1BPUF9FWFBSRVNTSU9OX1NUQUNLX0lOVE8oY291bnQsICJ0YWJsZS5m
aWxsIik7CisgICAgICAgICAgICBXQVNNX1RSWV9QT1BfRVhQUkVTU0lPTl9TVEFDS19JTlRPKGZp
bGwsICJ0YWJsZS5maWxsIik7CisgICAgICAgICAgICBXQVNNX1RSWV9QT1BfRVhQUkVTU0lPTl9T
VEFDS19JTlRPKG9mZnNldCwgInRhYmxlLmZpbGwiKTsKKyAgICAgICAgICAgIFdBU01fVFJZX0FE
RF9UT19DT05URVhUKGFkZFRhYmxlRmlsbChvZmZzZXQsIGZpbGwsIGNvdW50KSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgV0FT
TV9QQVJTRVJfRkFJTF9JRih0cnVlLCAiaW52YWxpZCBleHRlbmRlZCB0YWJsZSBvcCAiLCBleHRP
cCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4geyB9Owor
ICAgIH0KKwogICAgIGNhc2UgUmVmTnVsbDogewogICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lG
KCFPcHRpb25zOjp1c2VXZWJBc3NlbWJseVJlZmVyZW5jZXMoKSwgInJlZmVyZW5jZXMgYXJlIG5v
dCBlbmFibGVkIik7CiAgICAgICAgIG1fZXhwcmVzc2lvblN0YWNrLmFwcGVuZChtX2NvbnRleHQu
YWRkQ29uc3RhbnQoQW55cmVmLCBKU1ZhbHVlOjplbmNvZGUoanNOdWxsKCkpKSk7CkBAIC02NzMs
NiArNzA4LDcgQEAgYXV0byBGdW5jdGlvblBhcnNlcjxDb250ZXh0Pjo6cGFyc2VVbnJlYWNoYWJs
ZUV4cHJlc3Npb24oKSAtPiBQYXJ0aWFsUmVzdWx0CiAgICAgICAgIHJldHVybiB7IH07CiAgICAg
fQogCisgICAgY2FzZSBFeHRUYWJsZToKICAgICBjYXNlIFRhYmxlR2V0OgogICAgIGNhc2UgVGFi
bGVTZXQ6CiAgICAgY2FzZSBSZWZJc051bGw6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUluc3RhbmNlLmNwcAppbmRleCAzNzA1OTk2OGUwYjc4NTRkMjczMzZmMTkzN2VjMjU4YTM3
MGI0OTY2Li45NGY1ZDhiYjYzYjE5ZGNkNmU3YmU2N2ZlZjZhN2Y1ZWMzZTJmNTk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5jZS5jcHAKQEAgLTgwLDYgKzgwLDQ0
IEBAIHZvaWQgSW5zdGFuY2U6OnNldEdsb2JhbCh1bnNpZ25lZCBpLCBKU1ZhbHVlIHZhbHVlKQog
ICAgIG1fZ2xvYmFscy5nZXQoKVtpXS5hbnlyZWYuc2V0KCpvd25lcjxKU1dlYkFzc2VtYmx5SW5z
dGFuY2U+KCktPnZtKCksIG93bmVyPEpTV2ViQXNzZW1ibHlJbnN0YW5jZT4oKSwgdmFsdWUpOwog
fQogCitpbnQzMl90IGRvV2FzbVRhYmxlR3JvdyhJbnN0YW5jZSogaW5zdGFuY2UsIEVuY29kZWRK
U1ZhbHVlIGZpbGwsIGludDMyX3QgZGVsdGEpCit7CisgICAgaWYgKGRlbHRhIDwgMCkKKyAgICAg
ICAgcmV0dXJuIC0xOworICAgIGF1dG8gb2xkU2l6ZSA9IGluc3RhbmNlLT50YWJsZSgpLT5sZW5n
dGgoKTsKKyAgICBhdXRvIG5ld1NpemUgPSBpbnN0YW5jZS0+dGFibGUoKS0+Z3JvdyhkZWx0YSk7
CisgICAgaWYgKCFuZXdTaXplIHx8ICpuZXdTaXplID09IG9sZFNpemUpCisgICAgICAgIHJldHVy
biAtMTsKKworICAgIEpTVmFsdWUgZmlsbEpTID0gSlNWYWx1ZTo6ZGVjb2RlKGZpbGwpOworCisg
ICAgLy8gVE9ETyBkb1NldAorICAgIGZvciAodW5zaWduZWQgaSA9IG9sZFNpemU7IGkgPCBpbnN0
YW5jZS0+dGFibGUoKS0+bGVuZ3RoKCk7ICsraSkKKyAgICAgICAgaW5zdGFuY2UtPnRhYmxlKCkt
PnNldChpLCBmaWxsSlMpOworCisgICAgcmV0dXJuIG9sZFNpemU7Cit9CisKK2Jvb2wgZG9XYXNt
VGFibGVGaWxsKEluc3RhbmNlKiBpbnN0YW5jZSwgaW50MzJfdCBvZmZzZXQsIEVuY29kZWRKU1Zh
bHVlIGZpbGwsIGludDMyX3QgY291bnQpCit7CisgICAgaWYgKG9mZnNldCA8IDAgfHwgY291bnQg
PCAwKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB1bnNpZ25lZCBpID0gb2Zmc2V0Owor
ICAgIHVuc2lnbmVkIG4gPSBjb3VudDsKKworICAgIGlmIChpID49IGluc3RhbmNlLT50YWJsZSgp
LT5sZW5ndGgoKSB8fCBpICsgbiA+IGluc3RhbmNlLT50YWJsZSgpLT5sZW5ndGgoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgSlNWYWx1ZSBmaWxsSlMgPSBKU1ZhbHVlOjpkZWNvZGUo
ZmlsbCk7CisKKyAgICAvLyBUT0RPIGRvU2V0CisgICAgZm9yICh1bnNpZ25lZCBqID0gMDsgaiA8
IG47ICsraikKKyAgICAgICAgaW5zdGFuY2UtPnRhYmxlKCktPnNldChqICsgaSwgZmlsbEpTKTsK
KworICAgIHJldHVybiB0cnVlOworfQorCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQogCiAj
ZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtSW5zdGFuY2UuaAppbmRleCA1ZDFmY2YzZjlkM2I4MmJkMDk4MWEyMGNjY2Q1NDRlNzgwN2Nl
NGQ3Li5lNjNlYTg3NWZjNWU3ZGE0NTk4YjEyM2JmNDYxNzA3NTNjMWQ5MzFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuaApAQCAtMzksNiArMzksMTAgQEAKIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAKIHN0cnVjdCBDb250ZXh0OworY2xhc3Mg
SW5zdGFuY2U7CisKK2ludDMyX3QgZG9XYXNtVGFibGVHcm93KEluc3RhbmNlKiwgRW5jb2RlZEpT
VmFsdWUgZmlsbCwgaW50MzJfdCBkZWx0YSk7Citib29sIGRvV2FzbVRhYmxlRmlsbChJbnN0YW5j
ZSosIGludDMyX3Qgb2Zmc2V0LCBFbmNvZGVkSlNWYWx1ZSBmaWxsLCBpbnQzMl90IGNvdW50KTsK
IAogY2xhc3MgSW5zdGFuY2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SW5zdGFuY2U+
LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8SW5zdGFuY2U+IHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21UYWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtVGFibGUuY3BwCmluZGV4IDEzMzEzNDY4ZDE2MGU4NWU1MTkyODRl
ODJkYWRjMGE5YWRmNjhjMDMuLmYxYThhM2UyZDQwZGYwOTgwMTRhZmUyMWRmZGQwNjVkMjM4MzIx
MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21UYWJsZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVRhYmxlLmNwcApAQCAtMTI1LDYg
KzEyNSw5IEBAIE9wdGlvbmFsPHVpbnQzMl90PiBUYWJsZTo6Z3Jvdyh1aW50MzJfdCBkZWx0YSkK
ICAgICBpZiAoIWNoZWNrZWRHcm93KG1fanNWYWx1ZXMpKQogICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwogCisgICAgZm9yICh1aW50MzJfdCBpID0gbV9sZW5ndGg7IGkgPCBhbGxvY2F0ZWRM
ZW5ndGgobmV3TGVuZ3RoKTsgKytpKQorICAgICAgICBtX2pzVmFsdWVzLmdldCgpW2ldLnNldFdp
dGhvdXRXcml0ZUJhcnJpZXIoanNOdWxsKCkpOworCiAgICAgc2V0TGVuZ3RoKG5ld0xlbmd0aCk7
CiAgICAgcmV0dXJuIG5ld0xlbmd0aDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21WYWxpZGF0ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtVmFsaWRhdGUuY3BwCmluZGV4IGE0Yjc4ZTQ1OGRmNDU5OGUwY2NkYTYxZmE5NGVjOTE5YTI5
YWZjZjQuLjViOTQzZDJlM2MxYTk2OTNmMTVkMTMwNDgxNzFhOTUxZDNjZjU2OWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWxpZGF0ZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbGlkYXRlLmNwcApAQCAtMTA3LDcgKzEwNyw5
IEBAIHB1YmxpYzoKICAgICAvLyBUYWJsZXMKICAgICBSZXN1bHQgV0FSTl9VTlVTRURfUkVUVVJO
IGFkZFRhYmxlR2V0KEV4cHJlc3Npb25UeXBlJiBpZHgsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQp
OwogICAgIFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkVGFibGVTZXQoRXhwcmVzc2lvblR5
cGUmIGlkeCwgRXhwcmVzc2lvblR5cGUmIHZhbHVlKTsKLQorICAgIFJlc3VsdCBXQVJOX1VOVVNF
RF9SRVRVUk4gYWRkVGFibGVTaXplKEV4cHJlc3Npb25UeXBlJiByZXN1bHQpOworICAgIFJlc3Vs
dCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkVGFibGVHcm93KEV4cHJlc3Npb25UeXBlJiBmaWxsLCBF
eHByZXNzaW9uVHlwZSYgZGVsdGEsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpOworICAgIFJlc3Vs
dCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkVGFibGVGaWxsKEV4cHJlc3Npb25UeXBlJiBvZmZzZXQs
IEV4cHJlc3Npb25UeXBlJiBmaWxsLCBFeHByZXNzaW9uVHlwZSYgY291bnQpOwogICAgIC8vIExv
Y2FscwogICAgIFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gZ2V0TG9jYWwodWludDMyX3QgaW5k
ZXgsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpOwogICAgIFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRV
Uk4gc2V0TG9jYWwodWludDMyX3QgaW5kZXgsIEV4cHJlc3Npb25UeXBlIHZhbHVlKTsKQEAgLTE5
NSw2ICsxOTcsMzQgQEAgYXV0byBWYWxpZGF0ZTo6YWRkVGFibGVTZXQoRXhwcmVzc2lvblR5cGUm
IGlkeCwgRXhwcmVzc2lvblR5cGUmIHZhbHVlKSAtPiBSZXN1bHQKICAgICByZXR1cm4geyB9Owog
fQogCithdXRvIFZhbGlkYXRlOjphZGRUYWJsZVNpemUoRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkg
LT4gUmVzdWx0Cit7CisgICAgcmVzdWx0ID0gVHlwZTo6STMyOworICAgIFdBU01fVkFMSURBVE9S
X0ZBSUxfSUYoIW1fbW9kdWxlLnRhYmxlSW5mb3JtYXRpb24sICJ0YWJsZS5zaXplIGV4cGVjdHMg
YSB0YWJsZSIpOworCisgICAgcmV0dXJuIHsgfTsKK30KKworYXV0byBWYWxpZGF0ZTo6YWRkVGFi
bGVHcm93KEV4cHJlc3Npb25UeXBlJiBmaWxsLCBFeHByZXNzaW9uVHlwZSYgZGVsdGEsIEV4cHJl
c3Npb25UeXBlJiByZXN1bHQpIC0+IFJlc3VsdAoreworICAgIHJlc3VsdCA9IFR5cGU6OkkzMjsK
KyAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKCFtX21vZHVsZS50YWJsZUluZm9ybWF0aW9uLCAi
dGFibGUuZ3JvdyBleHBlY3RzIGEgdGFibGUiKTsKKyAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lG
KGZpbGwgIT0gbV9tb2R1bGUudGFibGVJbmZvcm1hdGlvbi53YXNtVHlwZSgpLCAidGFibGUuZ3Jv
dyBleHBlY3RzIGZpbGwgdmFsdWUgb2YgdHlwZSAiLCBtX21vZHVsZS50YWJsZUluZm9ybWF0aW9u
Lndhc21UeXBlKCksICIgZ290ICIsIGZpbGwpOworICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYo
VHlwZTo6STMyICE9IGRlbHRhLCAidGFibGUuZ3JvdyBleHBlY3RzIGFuIGkzMiBkZWx0YSB2YWx1
ZSwgZ290ICIsIGRlbHRhKTsKKworICAgIHJldHVybiB7IH07Cit9CisKK2F1dG8gVmFsaWRhdGU6
OmFkZFRhYmxlRmlsbChFeHByZXNzaW9uVHlwZSYgb2Zmc2V0LCBFeHByZXNzaW9uVHlwZSYgZmls
bCwgRXhwcmVzc2lvblR5cGUmIGNvdW50KSAtPiBSZXN1bHQKK3sKKyAgICBXQVNNX1ZBTElEQVRP
Ul9GQUlMX0lGKCFtX21vZHVsZS50YWJsZUluZm9ybWF0aW9uLCAidGFibGUuZmlsbCBleHBlY3Rz
IGEgdGFibGUiKTsKKyAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKGZpbGwgIT0gbV9tb2R1bGUu
dGFibGVJbmZvcm1hdGlvbi53YXNtVHlwZSgpLCAidGFibGUuZmlsbCBleHBlY3RzIGZpbGwgdmFs
dWUgb2YgdHlwZSAiLCBtX21vZHVsZS50YWJsZUluZm9ybWF0aW9uLndhc21UeXBlKCksICIgZ290
ICIsIGZpbGwpOworICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoVHlwZTo6STMyICE9IG9mZnNl
dCwgInRhYmxlLmZpbGwgZXhwZWN0cyBhbiBpMzIgb2Zmc2V0IHZhbHVlLCBnb3QgIiwgb2Zmc2V0
KTsKKyAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKFR5cGU6OkkzMiAhPSBjb3VudCwgInRhYmxl
LmZpbGwgZXhwZWN0cyBhbiBpMzIgY291bnQgdmFsdWUsIGdvdCAiLCBjb3VudCk7CisKKyAgICBy
ZXR1cm4geyB9OworfQorCiBhdXRvIFZhbGlkYXRlOjphZGRSZWZJc051bGwoRXhwcmVzc2lvblR5
cGUmIHZhbHVlLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KSAtPiBSZXN1bHQKIHsKICAgICByZXN1
bHQgPSBUeXBlOjpJMzI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9n
ZW5lcmF0ZVdhc21PcHNIZWFkZXIucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9nZW5l
cmF0ZVdhc21PcHNIZWFkZXIucHkKaW5kZXggNGU5YTY2NTY2MzE5NzlkMmM5Mzc4YjYzN2UxYjg4
ZjA2OTJiNzUxYy4uNzc1NjRjMzAzY2EzMDA5MzE2MWNiMjRkOWJkZmZhYTkyMzIwZDkxMiAxMDA3
NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vZ2VuZXJhdGVXYXNtT3BzSGVhZGVy
LnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2dlbmVyYXRlV2FzbU9wc0hlYWRl
ci5weQpAQCAtNTUsMTcgKzU1LDE3IEBAIHR5cGVfZGVmaW5pdGlvbnMuZXh0ZW5kKFt0IGZvciB0
IGluIHR5cGVNYWNyb2l6ZXIoKV0pCiB0eXBlX2RlZmluaXRpb25zID0gIiIuam9pbih0eXBlX2Rl
ZmluaXRpb25zKQogCiAKLWRlZiBvcGNvZGVNYWNyb2l6ZXIoZmlsdGVyKToKK2RlZiBvcGNvZGVN
YWNyb2l6ZXIoZmlsdGVyLCBvcGNvZGVGaWVsZD0idmFsdWUiKToKICAgICBpbmMgPSAwCiAgICAg
Zm9yIG9wIGluIHdhc20ub3Bjb2RlSXRlcmF0b3IoZmlsdGVyKToKICAgICAgICAgYjNvcCA9ICJP
b3BzIgogICAgICAgICBpZiBpc1NpbXBsZShvcFsib3Bjb2RlIl0pOgogICAgICAgICAgICAgYjNv
cCA9IG9wWyJvcGNvZGUiXVsiYjNvcCJdCi0gICAgICAgIHlpZWxkIGNwcE1hY3JvKG9wWyJuYW1l
Il0sIG9wWyJvcGNvZGUiXVsidmFsdWUiXSwgYjNvcCwgaW5jKQorICAgICAgICB5aWVsZCBjcHBN
YWNybyhvcFsibmFtZSJdLCBvcFsib3Bjb2RlIl1bb3Bjb2RlRmllbGRdLCBiM29wLCBpbmMpCiAg
ICAgICAgIGluYyArPSAxCiAKIGRlZmluZXMgPSBbIiNkZWZpbmUgRk9SX0VBQ0hfV0FTTV9TUEVD
SUFMX09QKG1hY3JvKSJdCi1kZWZpbmVzLmV4dGVuZChbb3AgZm9yIG9wIGluIG9wY29kZU1hY3Jv
aXplcihsYW1iZGEgb3A6IG5vdCAoaXNVbmFyeShvcCkgb3IgaXNCaW5hcnkob3ApIG9yIG9wWyJj
YXRlZ29yeSJdID09ICJjb250cm9sIiBvciBvcFsiY2F0ZWdvcnkiXSA9PSAibWVtb3J5IikpXSkK
K2RlZmluZXMuZXh0ZW5kKFtvcCBmb3Igb3AgaW4gb3Bjb2RlTWFjcm9pemVyKGxhbWJkYSBvcDog
bm90IChpc1VuYXJ5KG9wKSBvciBpc0JpbmFyeShvcCkgb3Igb3BbImNhdGVnb3J5Il0gPT0gImNv
bnRyb2wiIG9yIG9wWyJjYXRlZ29yeSJdID09ICJtZW1vcnkiIG9yIG9wWyJjYXRlZ29yeSJdID09
ICJleHR0YWJsZSIpKV0pCiBkZWZpbmVzLmFwcGVuZCgiXG5cbiNkZWZpbmUgRk9SX0VBQ0hfV0FT
TV9DT05UUk9MX0ZMT1dfT1AobWFjcm8pIikKIGRlZmluZXMuZXh0ZW5kKFtvcCBmb3Igb3AgaW4g
b3Bjb2RlTWFjcm9pemVyKGxhbWJkYSBvcDogb3BbImNhdGVnb3J5Il0gPT0gImNvbnRyb2wiKV0p
CiBkZWZpbmVzLmFwcGVuZCgiXG5cbiNkZWZpbmUgRk9SX0VBQ0hfV0FTTV9TSU1QTEVfVU5BUllf
T1AobWFjcm8pIikKQEAgLTgwLDYgKzgwLDggQEAgZGVmaW5lcy5hcHBlbmQoIlxuXG4jZGVmaW5l
IEZPUl9FQUNIX1dBU01fTUVNT1JZX0xPQURfT1AobWFjcm8pIikKIGRlZmluZXMuZXh0ZW5kKFtv
cCBmb3Igb3AgaW4gb3Bjb2RlTWFjcm9pemVyKGxhbWJkYSBvcDogKG9wWyJjYXRlZ29yeSJdID09
ICJtZW1vcnkiIGFuZCBsZW4ob3BbInJldHVybiJdKSA9PSAxKSldKQogZGVmaW5lcy5hcHBlbmQo
IlxuXG4jZGVmaW5lIEZPUl9FQUNIX1dBU01fTUVNT1JZX1NUT1JFX09QKG1hY3JvKSIpCiBkZWZp
bmVzLmV4dGVuZChbb3AgZm9yIG9wIGluIG9wY29kZU1hY3JvaXplcihsYW1iZGEgb3A6IChvcFsi
Y2F0ZWdvcnkiXSA9PSAibWVtb3J5IiBhbmQgbGVuKG9wWyJyZXR1cm4iXSkgPT0gMCkpXSkKK2Rl
ZmluZXMuYXBwZW5kKCJcblxuI2RlZmluZSBGT1JfRUFDSF9XQVNNX0VYVF9UQUJMRV9PUChtYWNy
bykiKQorZGVmaW5lcy5leHRlbmQoW29wIGZvciBvcCBpbiBvcGNvZGVNYWNyb2l6ZXIobGFtYmRh
IG9wOiAob3BbImNhdGVnb3J5Il0gPT0gImV4dHRhYmxlIiksICJleHRlbmRlZE9wIildKQogZGVm
aW5lcy5hcHBlbmQoIlxuXG4iKQogCiBkZWZpbmVzID0gIiIuam9pbihkZWZpbmVzKQpAQCAtMjAy
LDcgKzIwNCw4IEBAIGlubGluZSBUeXBlIGxpbmVhcml6ZWRUb1R5cGUoaW50IGkpCiAgICAgRk9S
X0VBQ0hfV0FTTV9VTkFSWV9PUChtYWNybykgXFwKICAgICBGT1JfRUFDSF9XQVNNX0JJTkFSWV9P
UChtYWNybykgXFwKICAgICBGT1JfRUFDSF9XQVNNX01FTU9SWV9MT0FEX09QKG1hY3JvKSBcXAot
ICAgIEZPUl9FQUNIX1dBU01fTUVNT1JZX1NUT1JFX09QKG1hY3JvKQorICAgIEZPUl9FQUNIX1dB
U01fTUVNT1JZX1NUT1JFX09QKG1hY3JvKSBcXAorICAgIG1hY3JvKEV4dFRhYmxlLCAweEZDLCBP
b3BzLCAwKQogCiAjZGVmaW5lIENSRUFURV9FTlVNX1ZBTFVFKG5hbWUsIGlkLCBiM29wLCBpbmMp
IG5hbWUgPSBpZCwKIApAQCAtMjM0LDYgKzIzNywxMCBAQCBlbnVtIGNsYXNzIFN0b3JlT3BUeXBl
IDogdWludDhfdCB7CiAgICAgRk9SX0VBQ0hfV0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0VO
VU1fVkFMVUUpCiB9OwogCitlbnVtIGNsYXNzIEV4dFRhYmxlT3BUeXBlIDogdWludDhfdCB7Cisg
ICAgRk9SX0VBQ0hfV0FTTV9FWFRfVEFCTEVfT1AoQ1JFQVRFX0VOVU1fVkFMVUUpCit9OworCiAj
dW5kZWYgQ1JFQVRFX0VOVU1fVkFMVUUKIAogaW5saW5lIGJvb2wgaXNDb250cm9sT3AoT3BUeXBl
IG9wKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vd2FzbS5qc29uIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vd2FzbS5qc29uCmluZGV4IDMwYmJjNzQ3MjM3ODM5
MjJlZGJiZjYzNDk5MzQ5MGY0OGI3YjdlMDIuLjYxNTMyOGZlNjRkN2VhMWZmODdkNDc3OGQyN2E5
ZjRiZGI5NTEzZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL3dhc20u
anNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS93YXNtLmpzb24KQEAgLTY4LDYg
KzY4LDkgQEAKICAgICAgICAgInNldF9nbG9iYWwiOiAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJz
cGVjaWFsIiwgICAgInZhbHVlIjogIDM2LCAicmV0dXJuIjogW10sICAgICAgICAgICAicGFyYW1l
dGVyIjogWyJhbnkiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJn
bG9iYWxfaW5kZXgiLCAgICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJ3cml0ZSBhIGdsb2JhbCB2
YXJpYWJsZSIgfSwKICAgICAgICAgInRhYmxlLmdldCI6ICAgICAgICAgICB7ICJjYXRlZ29yeSI6
ICJzcGVjaWFsIiwgICAgInZhbHVlIjogIDM3LCAicmV0dXJuIjogWyJhbnlyZWYiXSwgICAicGFy
YW1ldGVyIjogWyJpMzIiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJnZXQgYSB0YWJsZSB2
YWx1ZSIgfSwKICAgICAgICAgInRhYmxlLnNldCI6ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJz
cGVjaWFsIiwgICAgInZhbHVlIjogIDM4LCAicmV0dXJuIjogW10sICAgICAgICAgICAicGFyYW1l
dGVyIjogWyJpMzIiLCAiYW55cmVmIl0sICAgICAgICAiaW1tZWRpYXRlIjogW10sICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJzZXQgYSB0YWJsZSB2YWx1
ZSIgfSwKKyAgICAgICAgInRhYmxlLnNpemUiOiAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJleHR0
YWJsZSIsICAgInZhbHVlIjogIDI1MiwgInJldHVybiI6IFsiaTMyIl0sICAgICAicGFyYW1ldGVy
IjogW10sICAgICAgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJnZXQgdGhlIHNpemUgb2YgYSB0
YWJsZSIsICJleHRlbmRlZE9wIjogMTUgfSwKKyAgICAgICAgInRhYmxlLmdyb3ciOiAgICAgICAg
ICB7ICJjYXRlZ29yeSI6ICJleHR0YWJsZSIsICAgInZhbHVlIjogIDI1MiwgInJldHVybiI6IFsi
aTMyIl0sICAgICAicGFyYW1ldGVyIjogWyJhbnlyZWYiLCAiaTMyIl0sICAgICAgICJpbW1lZGlh
dGUiOiBbXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjog
Imdyb3cgYSB0YWJsZSBieSB0aGUgZ2l2ZW4gZGVsdGEgYW5kIHJldHVybiB0aGUgcHJldmlvdXMg
c2l6ZSwgb3IgLTEgaWYgZW5vdWdoIHNwYWNlIGNhbm5vdCBiZSBhbGxvY2F0ZWQiLCAiZXh0ZW5k
ZWRPcCI6IDE2IH0sCisgICAgICAgICJ0YWJsZS5maWxsIjogICAgICAgICAgeyAiY2F0ZWdvcnki
OiAiZXh0dGFibGUiLCAgICJ2YWx1ZSI6ICAyNTIsICJyZXR1cm4iOiBbImkzMiJdLCAgICAgInBh
cmFtZXRlciI6IFsiaTMyIiwgImFueXJlZiIsICJpMzIiXSwgImltbWVkaWF0ZSI6IFtdLCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiZmlsbCBlbnRyaWVz
IFtpLGkrbikgd2l0aCB0aGUgZ2l2ZW4gdmFsdWUiLCAiZXh0ZW5kZWRPcCI6IDE3IH0sCiAgICAg
ICAgICJjYWxsIjogICAgICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY2FsbCIsICAgICAgICJ2
YWx1ZSI6ICAxNiwgInJldHVybiI6IFsiY2FsbCJdLCAgICAgInBhcmFtZXRlciI6IFsiY2FsbCJd
LCAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAiZnVuY3Rpb25faW5kZXgi
LCAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiY2FsbCBhIGZ1bmN0aW9uIGJ5IGl0cyBpbmRleCIg
fSwKICAgICAgICAgImNhbGxfaW5kaXJlY3QiOiAgICAgICB7ICJjYXRlZ29yeSI6ICJjYWxsIiwg
ICAgICAgInZhbHVlIjogIDE3LCAicmV0dXJuIjogWyJjYWxsIl0sICAgICAicGFyYW1ldGVyIjog
WyJjYWxsIl0sICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJ0eXBlX2lu
ZGV4IiwgICAgICJ0eXBlIjogInZhcnVpbnQzMiJ9LCB7Im5hbWUiOiAicmVzZXJ2ZWQiLCAidHlw
ZSI6ICJ2YXJ1aW50MSJ9XSwgICJkZXNjcmlwdGlvbiI6ICJjYWxsIGEgZnVuY3Rpb24gaW5kaXJl
Y3Qgd2l0aCBhbiBleHBlY3RlZCBzaWduYXR1cmUiIH0sCiAgICAgICAgICJpMzIubG9hZDhfcyI6
ICAgICAgICAgeyAiY2F0ZWdvcnkiOiAibWVtb3J5IiwgICAgICJ2YWx1ZSI6ICA0NCwgInJldHVy
biI6IFsiaTMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiYWRkciJdLCAgICAgICAgICAgICAgICAg
ImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAiZmxhZ3MiLCAgICAgICAgICAidHlwZSI6ICJ2YXJ1aW50
MzIifSwgeyJuYW1lIjogIm9mZnNldCIsICAgInR5cGUiOiAidmFydWludDMyIn1dLCAiZGVzY3Jp
cHRpb24iOiAibG9hZCBmcm9tIG1lbW9yeSIgfSwKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdl
TG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzY0ZWZjNzExNzBjMmFiYjQ1ZWRjMmI1OWFj
NWFjMGM0ZTAxNmVjYi4uOTViMzVhNzE5ZGJjZDRmYjU3NjA5NTljNzVhNzBjODM1YWE2ZmVlYiAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAxOS0wNi0xNCAgSnVzdGluIE1pY2hhdWQgIDxqdXN0aW5fbWljaGF1
ZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dBU00tUmVmZXJlbmNlc10gQWRkIHN1cHBvcnQgZm9y
IFRhYmxlLnNpemUsIGdyb3cgYW5kIGZpbGwgaW5zdHJ1Y3Rpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg3NjEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdhc20vQnVpbGRlcl9XZWJBc3NlbWJs
eUJpbmFyeS5qczoKKyAgICAgICAgKGNvbnN0LnB1dE9wKToKKyAgICAgICAgKiB3YXNtL3JlZmVy
ZW5jZXMvdGFibGVfbWlzYy5qczogQWRkZWQuCisgICAgICAgIChUYWJsZVNpemUuRW5kLkVuZC5X
ZWJBc3NlbWJseSk6CisgICAgICAgIChHZXRMb2NhbC4wLkdldExvY2FsLjEuVGFibGVHcm93LkVu
ZC5FbmQuV2ViQXNzZW1ibHkpOgorICAgICAgICAqIHdhc20vd2FzbS5qc29uOgorCiAyMDE5LTA2
LTEzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgWWFyciBi
eXRlY29kZSBjb21waWxhdGlvbiBmYWlsdXJlIHNob3VsZCBiZSBncmFjZWZ1bGx5IGhhbmRsZWQK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9CdWlsZGVyX1dlYkFzc2VtYmx5QmluYXJ5LmpzIGIv
SlNUZXN0cy93YXNtL0J1aWxkZXJfV2ViQXNzZW1ibHlCaW5hcnkuanMKaW5kZXggY2E4ZmQ4ZjY1
ZjY5NmY5YjUwOTgxMGMxYzYwMmNhNGE3YWQ0YzZlNC4uNGYzYTIzZjc0ZWMzZGM0M2VhNDUyYTQ0
ZjNiYWVjMmRkZDczMWVhNSAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL0J1aWxkZXJfV2ViQXNz
ZW1ibHlCaW5hcnkuanMKKysrIGIvSlNUZXN0cy93YXNtL0J1aWxkZXJfV2ViQXNzZW1ibHlCaW5h
cnkuanMKQEAgLTYwLDYgKzYwLDggQEAgY29uc3QgcHV0R2xvYmFsVHlwZSA9IChiaW4sIGdsb2Jh
bCkgPT4gewogCiBjb25zdCBwdXRPcCA9IChiaW4sIG9wKSA9PiB7CiAgICAgcHV0KGJpbiwgInVp
bnQ4Iiwgb3AudmFsdWUpOworICAgIGlmIChXQVNNLmRlc2NyaXB0aW9uLm9wY29kZVtvcC5uYW1l
XS5leHRlbmRlZE9wKQorICAgICAgICBwdXQoYmluLCAidWludDgiLCBXQVNNLmRlc2NyaXB0aW9u
Lm9wY29kZVtvcC5uYW1lXS5leHRlbmRlZE9wKTsKICAgICBpZiAob3AuYXJndW1lbnRzLmxlbmd0
aCAhPT0gMCkKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmltcGxlbWVudGVkOiBhcmd1bWVu
dHNgKTsgLy8gRklYTUUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
MjcwNgogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vcmVmZXJlbmNlcy90YWJsZV9taXNjLmpz
IGIvSlNUZXN0cy93YXNtL3JlZmVyZW5jZXMvdGFibGVfbWlzYy5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lY2Vh
YTUzY2FkNTRjMTZhZWU2ODM0Mjc2MGFiYTg3NDY1OWQyN2NlCi0tLSAvZGV2L251bGwKKysrIGIv
SlNUZXN0cy93YXNtL3JlZmVyZW5jZXMvdGFibGVfbWlzYy5qcwpAQCAtMCwwICsxLDE4NiBAQAor
aW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJy4uL2Fzc2VydC5qcyc7CitpbXBvcnQgQnVpbGRlciBm
cm9tICcuLi9CdWlsZGVyLmpzJzsKKworeworICAgIGNvbnN0ICQxID0gbmV3IFdlYkFzc2VtYmx5
Lkluc3RhbmNlKG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoKG5ldyBCdWlsZGVyKCkpCisgICAgICAg
ICAgLlR5cGUoKS5FbmQoKQorICAgICAgICAgIC5GdW5jdGlvbigpLkVuZCgpCisgICAgICAgICAg
LlRhYmxlKCkKKyAgICAgICAgICAgICAgICAuVGFibGUoe2luaXRpYWw6IDIwLCBtYXhpbXVtOiAz
MCwgZWxlbWVudDogImFueXJlZiJ9KQorICAgICAgICAgIC5FbmQoKQorICAgICAgICAgIC5FeHBv
cnQoKQorICAgICAgICAgICAgICAuRnVuY3Rpb24oInRibF9zaXplIikKKyAgICAgICAgICAgICAg
LlRhYmxlKCJ0YmwiLCAwKQorICAgICAgICAgIC5FbmQoKQorICAgICAgICAgIC5Db2RlKCkKKyAg
ICAgICAgICAgIC5GdW5jdGlvbigidGJsX3NpemUiLCB7IHBhcmFtczogW10sIHJldDogImkzMiIg
fSkKKyAgICAgICAgICAgICAgLlRhYmxlU2l6ZSgpCisgICAgICAgICAgICAuRW5kKCkKKyAgICAg
ICAgICAuRW5kKCkuV2ViQXNzZW1ibHkoKS5nZXQoKSkpOworICAgIGZ1bGxHQygpCisKKyAgICBh
c3NlcnQuZXEoJDEuZXhwb3J0cy50Ymxfc2l6ZSgpLCAyMCkKKyAgICBhc3NlcnQuZXEoJDEuZXhw
b3J0cy50YmwuZ3Jvdyg1KSwgMjApCisgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJsX3NpemUo
KSwgMjUpCisgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJsLmdldCgwKSwgbnVsbCkKKyAgICBh
c3NlcnQuZXEoJDEuZXhwb3J0cy50YmwuZ2V0KDI0KSwgbnVsbCkKK30KKworYXNzZXJ0LnRocm93
cygoKSA9PiBuZXcgV2ViQXNzZW1ibHkuTW9kdWxlKChuZXcgQnVpbGRlcigpKQorICAgICAgLlR5
cGUoKS5FbmQoKQorICAgICAgLkZ1bmN0aW9uKCkuRW5kKCkKKyAgICAgIC5FeHBvcnQoKQorICAg
ICAgICAgIC5GdW5jdGlvbigidGJsX3NpemUiKQorICAgICAgLkVuZCgpCisgICAgICAuQ29kZSgp
CisgICAgICAgIC5GdW5jdGlvbigidGJsX3NpemUiLCB7IHBhcmFtczogW10sIHJldDogImkzMiIg
fSkKKyAgICAgICAgICAuVGFibGVTaXplKCkKKyAgICAgICAgLkVuZCgpCisgICAgICAuRW5kKCku
V2ViQXNzZW1ibHkoKS5nZXQoKSksIEVycm9yLCAiV2ViQXNzZW1ibHkuTW9kdWxlIGRvZXNuJ3Qg
dmFsaWRhdGU6IHRhYmxlLnNpemUgZXhwZWN0cyBhIHRhYmxlLCBpbiBmdW5jdGlvbiBhdCBpbmRl
eCAwIChldmFsdWF0aW5nICduZXcgV2ViQXNzZW1ibHkuTW9kdWxlJykiKQorCit7CisgICAgY29u
c3QgJDEgPSBuZXcgV2ViQXNzZW1ibHkuSW5zdGFuY2UobmV3IFdlYkFzc2VtYmx5Lk1vZHVsZSgo
bmV3IEJ1aWxkZXIoKSkKKyAgICAgICAgICAuVHlwZSgpLkVuZCgpCisgICAgICAgICAgLkZ1bmN0
aW9uKCkuRW5kKCkKKyAgICAgICAgICAuVGFibGUoKQorICAgICAgICAgICAgICAgIC5UYWJsZSh7
aW5pdGlhbDogMjAsIG1heGltdW06IDMwLCBlbGVtZW50OiAiYW55cmVmIn0pCisgICAgICAgICAg
LkVuZCgpCisgICAgICAgICAgLkV4cG9ydCgpCisgICAgICAgICAgICAgIC5GdW5jdGlvbigidGJs
X3NpemUiKQorICAgICAgICAgICAgICAuRnVuY3Rpb24oInRibF9ncm93IikKKyAgICAgICAgICAg
ICAgLlRhYmxlKCJ0YmwiLCAwKQorICAgICAgICAgIC5FbmQoKQorICAgICAgICAgIC5Db2RlKCkK
KyAgICAgICAgICAgIC5GdW5jdGlvbigidGJsX3NpemUiLCB7IHBhcmFtczogW10sIHJldDogImkz
MiIgfSkKKyAgICAgICAgICAgICAgLlRhYmxlU2l6ZSgpCisgICAgICAgICAgICAuRW5kKCkKKyAg
ICAgICAgICAgIC5GdW5jdGlvbigidGJsX2dyb3ciLCB7IHBhcmFtczogWyJhbnlyZWYiLCAiaTMy
Il0sIHJldDogImkzMiIgfSkKKyAgICAgICAgICAgICAgICAuR2V0TG9jYWwoMCkKKyAgICAgICAg
ICAgICAgICAuR2V0TG9jYWwoMSkKKyAgICAgICAgICAgICAgLlRhYmxlR3JvdygpCisgICAgICAg
ICAgICAuRW5kKCkKKyAgICAgICAgICAuRW5kKCkuV2ViQXNzZW1ibHkoKS5nZXQoKSkpOworICAg
IGZ1bGxHQygpCisKKyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50Ymxfc2l6ZSgpLCAyMCkKKyAg
ICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50YmxfZ3JvdygiaGkiLCA1KSwgMjApCisgICAgYXNzZXJ0
LmVxKCQxLmV4cG9ydHMudGJsX3NpemUoKSwgMjUpCisgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMu
dGJsLmdldCgwKSwgbnVsbCkKKyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50YmwuZ2V0KDI0KSwg
ImhpIikKKworICAgIGFzc2VydC5lcSgkMS5leHBvcnRzLnRibF9ncm93KG51bGwsIDUpLCAyNSkK
KyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50YmwuZ2V0KDI0KSwgImhpIikKKyAgICBhc3NlcnQu
ZXEoJDEuZXhwb3J0cy50YmwuZ2V0KDI1KSwgbnVsbCkKKyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0
cy50Ymxfc2l6ZSgpLCAzMCkKKyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50YmxfZ3JvdyhudWxs
LCAwKSwgLTEpCisgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJsX2dyb3cobnVsbCwgNSksIC0x
KQorICAgIGFzc2VydC5lcSgkMS5leHBvcnRzLnRibF9ncm93KG51bGwsIDApLCAtMSkKK30KKwor
YXNzZXJ0LnRocm93cygoKSA9PiBuZXcgV2ViQXNzZW1ibHkuTW9kdWxlKChuZXcgQnVpbGRlcigp
KQorICAgICAgLlR5cGUoKS5FbmQoKQorICAgICAgLkZ1bmN0aW9uKCkuRW5kKCkKKyAgICAgIC5D
b2RlKCkKKyAgICAgICAgLkZ1bmN0aW9uKCJ0YmxfZ3JvdyIsIHsgcGFyYW1zOiBbImFueXJlZiIs
ICJpMzIiXSwgcmV0OiAiaTMyIiB9KQorICAgICAgICAgICAgLkdldExvY2FsKDApCisgICAgICAg
ICAgICAuR2V0TG9jYWwoMSkKKyAgICAgICAgICAgIC5UYWJsZUdyb3coKQorICAgICAgICAuRW5k
KCkKKyAgICAgIC5FbmQoKS5XZWJBc3NlbWJseSgpLmdldCgpKSwgRXJyb3IsICJXZWJBc3NlbWJs
eS5Nb2R1bGUgZG9lc24ndCB2YWxpZGF0ZTogdGFibGUuZ3JvdyBleHBlY3RzIGEgdGFibGUsIGlu
IGZ1bmN0aW9uIGF0IGluZGV4IDAgKGV2YWx1YXRpbmcgJ25ldyBXZWJBc3NlbWJseS5Nb2R1bGUn
KSIpCisKK2Fzc2VydC50aHJvd3MoKCkgPT4gbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZSgobmV3IEJ1
aWxkZXIoKSkKKyAgICAgIC5UeXBlKCkuRW5kKCkKKyAgICAgIC5GdW5jdGlvbigpLkVuZCgpCisg
ICAgICAuVGFibGUoKQorICAgICAgICAgICAgLlRhYmxlKHtpbml0aWFsOiAyMCwgbWF4aW11bTog
MzAsIGVsZW1lbnQ6ICJhbnlyZWYifSkKKyAgICAgIC5FbmQoKQorICAgICAgLkNvZGUoKQorICAg
ICAgICAuRnVuY3Rpb24oInRibF9ncm93IiwgeyBwYXJhbXM6IFsiYW55cmVmIiwgImkzMiJdLCBy
ZXQ6ICJpMzIiIH0pCisgICAgICAgICAgICAuR2V0TG9jYWwoMCkKKyAgICAgICAgICAgIC5UYWJs
ZUdyb3coKQorICAgICAgICAuRW5kKCkKKyAgICAgIC5FbmQoKS5XZWJBc3NlbWJseSgpLmdldCgp
KSwgRXJyb3IsICJXZWJBc3NlbWJseS5Nb2R1bGUgZG9lc24ndCBwYXJzZSBhdCBieXRlIDU6IGNh
bid0IHBvcCBlbXB0eSBzdGFjayBpbiB0YWJsZS5ncm93LCBpbiBmdW5jdGlvbiBhdCBpbmRleCAw
IChldmFsdWF0aW5nICduZXcgV2ViQXNzZW1ibHkuTW9kdWxlJykiKQorCithc3NlcnQudGhyb3dz
KCgpID0+IG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoKG5ldyBCdWlsZGVyKCkpCisgICAgICAuVHlw
ZSgpLkVuZCgpCisgICAgICAuRnVuY3Rpb24oKS5FbmQoKQorICAgICAgLlRhYmxlKCkKKyAgICAg
ICAgICAgIC5UYWJsZSh7aW5pdGlhbDogMjAsIG1heGltdW06IDMwLCBlbGVtZW50OiAiYW55cmVm
In0pCisgICAgICAuRW5kKCkKKyAgICAgIC5Db2RlKCkKKyAgICAgICAgLkZ1bmN0aW9uKCJ0Ymxf
Z3JvdyIsIHsgcGFyYW1zOiBbImkzMiIsICJpMzIiXSwgcmV0OiAiaTMyIiB9KQorICAgICAgICAg
ICAgLkdldExvY2FsKDApCisgICAgICAgICAgICAuR2V0TG9jYWwoMSkKKyAgICAgICAgICAgIC5U
YWJsZUdyb3coKQorICAgICAgICAuRW5kKCkKKyAgICAgIC5FbmQoKS5XZWJBc3NlbWJseSgpLmdl
dCgpKSwgRXJyb3IsICJXZWJBc3NlbWJseS5Nb2R1bGUgZG9lc24ndCB2YWxpZGF0ZTogdGFibGUu
Z3JvdyBleHBlY3RzIGZpbGwgdmFsdWUgb2YgdHlwZSBBbnlyZWYgZ290IEkzMiwgaW4gZnVuY3Rp
b24gYXQgaW5kZXggMCAoZXZhbHVhdGluZyAnbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZScpIikKKwor
eworICAgIGNvbnN0ICQxID0gbmV3IFdlYkFzc2VtYmx5Lkluc3RhbmNlKG5ldyBXZWJBc3NlbWJs
eS5Nb2R1bGUoKG5ldyBCdWlsZGVyKCkpCisgICAgICAgICAgLlR5cGUoKS5FbmQoKQorICAgICAg
ICAgIC5GdW5jdGlvbigpLkVuZCgpCisgICAgICAgICAgLlRhYmxlKCkKKyAgICAgICAgICAgICAg
ICAuVGFibGUoe2luaXRpYWw6IDIwLCBtYXhpbXVtOiAzMCwgZWxlbWVudDogImFueXJlZiJ9KQor
ICAgICAgICAgIC5FbmQoKQorICAgICAgICAgIC5FeHBvcnQoKQorICAgICAgICAgICAgICAuRnVu
Y3Rpb24oInRibF9zaXplIikKKyAgICAgICAgICAgICAgLkZ1bmN0aW9uKCJ0YmxfZmlsbCIpCisg
ICAgICAgICAgICAgIC5UYWJsZSgidGJsIiwgMCkKKyAgICAgICAgICAuRW5kKCkKKyAgICAgICAg
ICAuQ29kZSgpCisgICAgICAgICAgICAuRnVuY3Rpb24oInRibF9zaXplIiwgeyBwYXJhbXM6IFtd
LCByZXQ6ICJpMzIiIH0pCisgICAgICAgICAgICAgIC5UYWJsZVNpemUoKQorICAgICAgICAgICAg
LkVuZCgpCisgICAgICAgICAgICAuRnVuY3Rpb24oInRibF9maWxsIiwgeyBwYXJhbXM6IFsiaTMy
IiwgImFueXJlZiIsICJpMzIiXSwgcmV0OiAidm9pZCIgfSkKKyAgICAgICAgICAgICAgICAuR2V0
TG9jYWwoMCkKKyAgICAgICAgICAgICAgICAuR2V0TG9jYWwoMSkKKyAgICAgICAgICAgICAgICAu
R2V0TG9jYWwoMikKKyAgICAgICAgICAgICAgICAuVGFibGVGaWxsKCkKKyAgICAgICAgICAgIC5F
bmQoKQorICAgICAgICAgIC5FbmQoKS5XZWJBc3NlbWJseSgpLmdldCgpKSk7CisgICAgZnVsbEdD
KCkKKworICAgIGFzc2VydC5lcSgkMS5leHBvcnRzLnRibF9zaXplKCksIDIwKQorICAgICQxLmV4
cG9ydHMudGJsX2ZpbGwoMSwiaGkiLDMpCisgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJsLmdl
dCgwKSwgbnVsbCkKKyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50YmwuZ2V0KDEpLCAiaGkiKQor
ICAgIGFzc2VydC5lcSgkMS5leHBvcnRzLnRibC5nZXQoMiksICJoaSIpCisgICAgYXNzZXJ0LmVx
KCQxLmV4cG9ydHMudGJsLmdldCgzKSwgImhpIikKKyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50
YmwuZ2V0KDQpLCBudWxsKQorCisgICAgJDEuZXhwb3J0cy50YmxfZmlsbCgwLG51bGwsMSkKKyAg
ICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50YmwuZ2V0KDApLCBudWxsKQorICAgICQxLmV4cG9ydHMu
dGJsX2ZpbGwoMCxudWxsLDApCisKKyAgICAkMS5leHBvcnRzLnRibF9maWxsKDE5LCJ0ZXN0Iiwx
KQorICAgIGFzc2VydC5lcSgkMS5leHBvcnRzLnRibC5nZXQoMTkpLCAidGVzdCIpCisgICAgYXNz
ZXJ0LmVxKCQxLmV4cG9ydHMudGJsLmdldCgxOCksIG51bGwpCisKKyAgICBhc3NlcnQudGhyb3dz
KCgpID0+ICQxLmV4cG9ydHMudGJsX2ZpbGwoMjAsbnVsbCwwKSwgRXJyb3IsICJPdXQgb2YgYm91
bmRzIHRhYmxlIGFjY2VzcyAoZXZhbHVhdGluZyAnZnVuYyguLi5hcmdzKScpIikKKyAgICBhc3Nl
cnQudGhyb3dzKCgpID0+ICQxLmV4cG9ydHMudGJsX2ZpbGwoMTksbnVsbCwyKSwgRXJyb3IsICJP
dXQgb2YgYm91bmRzIHRhYmxlIGFjY2VzcyAoZXZhbHVhdGluZyAnZnVuYyguLi5hcmdzKScpIikK
K30KKworYXNzZXJ0LnRocm93cygoKSA9PiBuZXcgV2ViQXNzZW1ibHkuTW9kdWxlKChuZXcgQnVp
bGRlcigpKQorICAgICAgLlR5cGUoKS5FbmQoKQorICAgICAgLkZ1bmN0aW9uKCkuRW5kKCkKKyAg
ICAgIC5Db2RlKCkKKyAgICAgICAgLkZ1bmN0aW9uKCJ0YmxfZ3JvdyIsIHsgcGFyYW1zOiBbImFu
eXJlZiIsICJpMzIiXSwgcmV0OiAidm9pZCIgfSkKKyAgICAgICAgICAgIC5HZXRMb2NhbCgxKQor
ICAgICAgICAgICAgLkdldExvY2FsKDApCisgICAgICAgICAgICAuR2V0TG9jYWwoMSkKKyAgICAg
ICAgICAgIC5UYWJsZUZpbGwoKQorICAgICAgICAuRW5kKCkKKyAgICAgIC5FbmQoKS5XZWJBc3Nl
bWJseSgpLmdldCgpKSwgRXJyb3IsICJXZWJBc3NlbWJseS5Nb2R1bGUgZG9lc24ndCB2YWxpZGF0
ZTogdGFibGUuZmlsbCBleHBlY3RzIGEgdGFibGUsIGluIGZ1bmN0aW9uIGF0IGluZGV4IDAgKGV2
YWx1YXRpbmcgJ25ldyBXZWJBc3NlbWJseS5Nb2R1bGUnKSIpCisKK2Fzc2VydC50aHJvd3MoKCkg
PT4gbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZSgobmV3IEJ1aWxkZXIoKSkKKyAgICAgIC5UeXBlKCku
RW5kKCkKKyAgICAgIC5GdW5jdGlvbigpLkVuZCgpCisgICAgICAuVGFibGUoKQorICAgICAgICAg
ICAgLlRhYmxlKHtpbml0aWFsOiAyMCwgbWF4aW11bTogMzAsIGVsZW1lbnQ6ICJhbnlyZWYifSkK
KyAgICAgIC5FbmQoKQorICAgICAgLkNvZGUoKQorICAgICAgICAuRnVuY3Rpb24oInRibF9ncm93
IiwgeyBwYXJhbXM6IFsiYW55cmVmIiwgImkzMiJdLCByZXQ6ICJpMzIiIH0pCisgICAgICAgICAg
ICAuR2V0TG9jYWwoMCkKKyAgICAgICAgICAgIC5UYWJsZUZpbGwoKQorICAgICAgICAuRW5kKCkK
KyAgICAgIC5FbmQoKS5XZWJBc3NlbWJseSgpLmdldCgpKSwgRXJyb3IsICJXZWJBc3NlbWJseS5N
b2R1bGUgZG9lc24ndCBwYXJzZSBhdCBieXRlIDU6IGNhbid0IHBvcCBlbXB0eSBzdGFjayBpbiB0
YWJsZS5maWxsLCBpbiBmdW5jdGlvbiBhdCBpbmRleCAwIChldmFsdWF0aW5nICduZXcgV2ViQXNz
ZW1ibHkuTW9kdWxlJykiKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL3dhc20uanNvbiBiL0pT
VGVzdHMvd2FzbS93YXNtLmpzb24KaW5kZXggMzBiYmM3NDcyMzc4MzkyMmVkYmJmNjM0OTkzNDkw
ZjQ4YjdiN2UwMi4uNmUwZDM4NjQwZGIxODE5OGFlZmUzYmVkMzI0NWMzYmE0MjRmNGMyZCAxMDA2
NDQKLS0tIGEvSlNUZXN0cy93YXNtL3dhc20uanNvbgorKysgYi9KU1Rlc3RzL3dhc20vd2FzbS5q
c29uCkBAIC02OCw2ICs2OCw5IEBACiAgICAgICAgICJzZXRfZ2xvYmFsIjogICAgICAgICAgeyAi
Y2F0ZWdvcnkiOiAic3BlY2lhbCIsICAgICJ2YWx1ZSI6ICAzNiwgInJldHVybiI6IFtdLCAgICAg
ICAgICAgInBhcmFtZXRlciI6IFsiYW55Il0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6
IFt7Im5hbWUiOiAiZ2xvYmFsX2luZGV4IiwgICAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAid3Jp
dGUgYSBnbG9iYWwgdmFyaWFibGUiIH0sCiAgICAgICAgICJ0YWJsZS5nZXQiOiAgICAgICAgICAg
eyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIsICAgICJ2YWx1ZSI6ICAzNywgInJldHVybiI6IFsiYW55
cmVmIl0sICAgInBhcmFtZXRlciI6IFsiaTMyIl0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0
ZSI6IFtdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
Z2V0IGEgdGFibGUgdmFsdWUiIH0sCiAgICAgICAgICJ0YWJsZS5zZXQiOiAgICAgICAgICAgeyAi
Y2F0ZWdvcnkiOiAic3BlY2lhbCIsICAgICJ2YWx1ZSI6ICAzOCwgInJldHVybiI6IFtdLCAgICAg
ICAgICAgInBhcmFtZXRlciI6IFsiaTMyIiwgImFueXJlZiJdLCAgICAgICAgImltbWVkaWF0ZSI6
IFtdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAic2V0
IGEgdGFibGUgdmFsdWUiIH0sCisgICAgICAgICJ0YWJsZS5zaXplIjogICAgICAgICAgeyAiY2F0
ZWdvcnkiOiAiZXh0dGFibGUiLCAgICJ2YWx1ZSI6ICAyNTIsICJyZXR1cm4iOiBbImkzMiJdLCAg
ICAgInBhcmFtZXRlciI6IFtdLCAgICAgICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtd
LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiZ2V0IHRo
ZSBzaXplIG9mIGEgdGFibGUiLCAiZXh0ZW5kZWRPcCI6IDE1IH0sCisgICAgICAgICJ0YWJsZS5n
cm93IjogICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiZXh0dGFibGUiLCAgICJ2YWx1ZSI6ICAyNTIs
ICJyZXR1cm4iOiBbImkzMiJdLCAgICAgInBhcmFtZXRlciI6IFsiYW55cmVmIiwgImkzMiJdLCAg
ICAgICAgImltbWVkaWF0ZSI6IFtdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiZ3JvdyBhIHRhYmxlIGJ5IHRoZSBnaXZlbiBkZWx0YSBhbmQgcmV0dXJu
IHRoZSBwcmV2aW91cyBzaXplLCBvciAtMSBpZiBlbm91Z2ggc3BhY2UgY2Fubm90IGJlIGFsbG9j
YXRlZCIsICJleHRlbmRlZE9wIjogMTYgfSwKKyAgICAgICAgInRhYmxlLmZpbGwiOiAgICAgICAg
ICB7ICJjYXRlZ29yeSI6ICJleHR0YWJsZSIsICAgInZhbHVlIjogIDI1MiwgInJldHVybiI6IFsi
aTMyIl0sICAgICAicGFyYW1ldGVyIjogWyJpMzIiLCAiYW55cmVmIiwgImkzMiJdLCAiaW1tZWRp
YXRlIjogW10sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
ICJmaWxsIGVudHJpZXMgW2ksaStuKSB3aXRoIHRoZSBnaXZlbiB2YWx1ZSIsICJleHRlbmRlZE9w
IjogMTcgfSwKICAgICAgICAgImNhbGwiOiAgICAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJj
YWxsIiwgICAgICAgInZhbHVlIjogIDE2LCAicmV0dXJuIjogWyJjYWxsIl0sICAgICAicGFyYW1l
dGVyIjogWyJjYWxsIl0sICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJm
dW5jdGlvbl9pbmRleCIsICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJjYWxsIGEgZnVuY3Rpb24g
YnkgaXRzIGluZGV4IiB9LAogICAgICAgICAiY2FsbF9pbmRpcmVjdCI6ICAgICAgIHsgImNhdGVn
b3J5IjogImNhbGwiLCAgICAgICAidmFsdWUiOiAgMTcsICJyZXR1cm4iOiBbImNhbGwiXSwgICAg
ICJwYXJhbWV0ZXIiOiBbImNhbGwiXSwgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJu
YW1lIjogInR5cGVfaW5kZXgiLCAgICAgInR5cGUiOiAidmFydWludDMyIn0sIHsibmFtZSI6ICJy
ZXNlcnZlZCIsICJ0eXBlIjogInZhcnVpbnQxIn1dLCAgImRlc2NyaXB0aW9uIjogImNhbGwgYSBm
dW5jdGlvbiBpbmRpcmVjdCB3aXRoIGFuIGV4cGVjdGVkIHNpZ25hdHVyZSIgfSwKICAgICAgICAg
ImkzMi5sb2FkOF9zIjogICAgICAgICB7ICJjYXRlZ29yeSI6ICJtZW1vcnkiLCAgICAgInZhbHVl
IjogIDQ0LCAicmV0dXJuIjogWyJpMzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJhZGRyIl0sICAg
ICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJmbGFncyIsICAgICAgICAgICJ0
eXBlIjogInZhcnVpbnQzMiJ9LCB7Im5hbWUiOiAib2Zmc2V0IiwgICAidHlwZSI6ICJ2YXJ1aW50
MzIifV0sICJkZXNjcmlwdGlvbiI6ICJsb2FkIGZyb20gbWVtb3J5IiB9LAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372397</attachid>
            <date>2019-06-18 15:56:53 -0700</date>
            <delta_ts>2019-06-18 15:58:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198761-20190618155652.patch</filename>
            <type>text/plain</type>
            <size>38028</size>
            <attacher name="Justin Michaud">justin_michaud</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2NTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZjRkY2IyNGVhN2U0MDc3NmEzZTE2N2Y0NTBiZWZhMmFmMDlhNWM3Li4wMDk0NzNmYzc1Yjc3NDNi
MGY1YzAwMTlmOGU3OTdhOGFmMDdiMTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxOS0wNi0xNCAgSnVzdGluIE1pY2hhdWQgIDxqdXN0aW5fbWljaGF1ZEBh
cHBsZS5jb20+CisKKyAgICAgICAgW1dBU00tUmVmZXJlbmNlc10gQWRkIHN1cHBvcnQgZm9yIFRh
YmxlLnNpemUsIGdyb3cgYW5kIGZpbGwgaW5zdHJ1Y3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg3NjEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgVGFibGUuc2l6ZSwg
Z3JvdyBhbmQgZmlsbCBpbnN0cnVjdGlvbnMuIFRoaXMgYWxzbyByZXF1aXJlZAorICAgICAgICBh
ZGRpbmcgc3VwcG9ydCBmb3IgdHdvLWJ5dGUgb3Bjb2RlcyB0byB0aGUgb3BzIGdlbmVyYXRvci4K
KworICAgICAgICAqIHdhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6
V2FzbTo6QWlySVJHZW5lcmF0b3I6OmdBbnlyZWYpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJ
UkdlbmVyYXRvcjo6dG1wRm9yVHlwZSk6CisgICAgICAgIChKU0M6Oldhc206OkFpcklSR2VuZXJh
dG9yOjphZGRUYWJsZVNpemUpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6
YWRkVGFibGVHcm93KToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OmFkZFRh
YmxlRmlsbCk6CisgICAgICAgICogd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHA6CisgICAgICAg
IChKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OmFkZFRhYmxlU2l6ZSk6CisgICAgICAgIChKU0M6
Oldhc206OkIzSVJHZW5lcmF0b3I6OmFkZFRhYmxlR3Jvdyk6CisgICAgICAgIChKU0M6Oldhc206
OkIzSVJHZW5lcmF0b3I6OmFkZFRhYmxlRmlsbCk6CisgICAgICAgICogd2FzbS9XYXNtRXhjZXB0
aW9uVHlwZS5oOgorICAgICAgICAqIHdhc20vV2FzbUZvcm1hdC5oOgorICAgICAgICAoSlNDOjpX
YXNtOjpUYWJsZUluZm9ybWF0aW9uOjp3YXNtVHlwZSBjb25zdCk6CisgICAgICAgICogd2FzbS9X
YXNtRnVuY3Rpb25QYXJzZXIuaDoKKyAgICAgICAgKEpTQzo6V2FzbTo6RnVuY3Rpb25QYXJzZXI8
Q29udGV4dD46OnBhcnNlRXhwcmVzc2lvbik6CisgICAgICAgIChKU0M6Oldhc206OkZ1bmN0aW9u
UGFyc2VyPENvbnRleHQ+OjpwYXJzZVVucmVhY2hhYmxlRXhwcmVzc2lvbik6CisgICAgICAgICog
d2FzbS9XYXNtSW5zdGFuY2UuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpkb1dhc21UYWJsZUdy
b3cpOgorICAgICAgICAoSlNDOjpXYXNtOjpkb1dhc21UYWJsZUZpbGwpOgorICAgICAgICAqIHdh
c20vV2FzbUluc3RhbmNlLmg6CisgICAgICAgICogd2FzbS9XYXNtVGFibGUuY3BwOgorICAgICAg
ICAoSlNDOjpXYXNtOjpUYWJsZTo6Z3Jvdyk6CisgICAgICAgICogd2FzbS9XYXNtVmFsaWRhdGUu
Y3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWxpZGF0ZTo6YWRkVGFibGVTaXplKToKKyAgICAg
ICAgKEpTQzo6V2FzbTo6VmFsaWRhdGU6OmFkZFRhYmxlR3Jvdyk6CisgICAgICAgIChKU0M6Oldh
c206OlZhbGlkYXRlOjphZGRUYWJsZUZpbGwpOgorICAgICAgICAqIHdhc20vZ2VuZXJhdGVXYXNt
T3BzSGVhZGVyLnB5OgorICAgICAgICAob3Bjb2RlTWFjcm9pemVyKToKKyAgICAgICAgKEV4dFRh
YmxlT3BUeXBlKToKKyAgICAgICAgKiB3YXNtL3dhc20uanNvbjoKKwogMjAxOS0wNi0xOCAgS2Vp
dGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
LCBmaXggc2lnbmF0dXJlIG9mIGN1cnJlbnRXZWFrUmVmVmVyc2lvbiB0byByZXR1cm4gYW4gdWlu
dHB0cl90LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklS
R2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVy
YXRvci5jcHAKaW5kZXggZWZmN2UzMjI3YmY5ZGYyNGMyMTYyM2VkZjg5M2Y1YzkzMzhkNzdiMC4u
NDdiNGVjNmI0NzcwODYwOWE3NGRjYTM1ZmIyYWMzZGFiYjFhYzBmMSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCkBAIC0yMzksNiAr
MjM5LDkgQEAgcHVibGljOgogICAgIC8vIFRhYmxlcwogICAgIFBhcnRpYWxSZXN1bHQgV0FSTl9V
TlVTRURfUkVUVVJOIGFkZFRhYmxlR2V0KHVuc2lnbmVkLCBFeHByZXNzaW9uVHlwZSYgaW5kZXgs
IEV4cHJlc3Npb25UeXBlJiByZXN1bHQpOwogICAgIFBhcnRpYWxSZXN1bHQgV0FSTl9VTlVTRURf
UkVUVVJOIGFkZFRhYmxlU2V0KHVuc2lnbmVkLCBFeHByZXNzaW9uVHlwZSYgaW5kZXgsIEV4cHJl
c3Npb25UeXBlJiB2YWx1ZSk7CisgICAgUGFydGlhbFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4g
YWRkVGFibGVTaXplKHVuc2lnbmVkLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KTsKKyAgICBQYXJ0
aWFsUmVzdWx0IFdBUk5fVU5VU0VEX1JFVFVSTiBhZGRUYWJsZUdyb3codW5zaWduZWQsIEV4cHJl
c3Npb25UeXBlJiBmaWxsLCBFeHByZXNzaW9uVHlwZSYgZGVsdGEsIEV4cHJlc3Npb25UeXBlJiBy
ZXN1bHQpOworICAgIFBhcnRpYWxSZXN1bHQgV0FSTl9VTlVTRURfUkVUVVJOIGFkZFRhYmxlRmls
bCh1bnNpZ25lZCwgRXhwcmVzc2lvblR5cGUmIG9mZnNldCwgRXhwcmVzc2lvblR5cGUmIGZpbGws
IEV4cHJlc3Npb25UeXBlJiBjb3VudCk7CiAKICAgICAvLyBMb2NhbHMKICAgICBQYXJ0aWFsUmVz
dWx0IFdBUk5fVU5VU0VEX1JFVFVSTiBnZXRMb2NhbCh1aW50MzJfdCBpbmRleCwgRXhwcmVzc2lv
blR5cGUmIHJlc3VsdCk7CkBAIC0zNjEsNiArMzY0LDggQEAgcHJpdmF0ZToKIAogICAgIFR5cGVk
VG1wIGczMigpIHsgcmV0dXJuIHsgbmV3VG1wKEIzOjpHUCksIFR5cGU6OkkzMiB9OyB9CiAgICAg
VHlwZWRUbXAgZzY0KCkgeyByZXR1cm4geyBuZXdUbXAoQjM6OkdQKSwgVHlwZTo6STY0IH07IH0K
KyAgICBUeXBlZFRtcCBnQW55cmVmKCkgeyByZXR1cm4geyBuZXdUbXAoQjM6OkdQKSwgVHlwZTo6
QW55cmVmIH07IH0KKyAgICBUeXBlZFRtcCBnQW55ZnVuYygpIHsgcmV0dXJuIHsgbmV3VG1wKEIz
OjpHUCksIFR5cGU6OkFueWZ1bmMgfTsgfQogICAgIFR5cGVkVG1wIGYzMigpIHsgcmV0dXJuIHsg
bmV3VG1wKEIzOjpGUCksIFR5cGU6OkYzMiB9OyB9CiAgICAgVHlwZWRUbXAgZjY0KCkgeyByZXR1
cm4geyBuZXdUbXAoQjM6OkZQKSwgVHlwZTo6RjY0IH07IH0KIApAQCAtMzcwLDkgKzM3NSwxMSBA
QCBwcml2YXRlOgogICAgICAgICBjYXNlIFR5cGU6OkkzMjoKICAgICAgICAgICAgIHJldHVybiBn
MzIoKTsKICAgICAgICAgY2FzZSBUeXBlOjpJNjQ6Ci0gICAgICAgIGNhc2UgVHlwZTo6QW55cmVm
OgotICAgICAgICBjYXNlIFR5cGU6OkFueWZ1bmM6CiAgICAgICAgICAgICByZXR1cm4gZzY0KCk7
CisgICAgICAgIGNhc2UgVHlwZTo6QW55ZnVuYzoKKyAgICAgICAgICAgIHJldHVybiBnQW55ZnVu
YygpOworICAgICAgICBjYXNlIFR5cGU6OkFueXJlZjoKKyAgICAgICAgICAgIHJldHVybiBnQW55
cmVmKCk7CiAgICAgICAgIGNhc2UgVHlwZTo6RjMyOgogICAgICAgICAgICAgcmV0dXJuIGYzMigp
OwogICAgICAgICBjYXNlIFR5cGU6OkY2NDoKQEAgLTUwOCw2ICs1MTUsOCBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgICAgIHJlc3VsdFR5cGUgPSBCMzo6SW50MzI7CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICBjYXNlIFR5cGU6Okk2NDoKKyAgICAgICAgICAgIGNhc2UgVHlw
ZTo6QW55cmVmOgorICAgICAgICAgICAgY2FzZSBUeXBlOjpBbnlmdW5jOgogICAgICAgICAgICAg
ICAgIHJlc3VsdFR5cGUgPSBCMzo6SW50NjQ7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICBjYXNlIFR5cGU6OkYzMjoKQEAgLTk3NSw3ICs5ODQsNyBAQCBhdXRvIEFpcklSR2Vu
ZXJhdG9yOjphZGRUYWJsZUdldCh1bnNpZ25lZCB0YWJsZUluZGV4LCBFeHByZXNzaW9uVHlwZSYg
aW5kZXgsIEV4cAogICAgIC8vIEZJWE1FOiBFbWl0IHRoaXMgaW5saW5lIDxodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4NTA2Pi4KICAgICBBU1NFUlQoaW5kZXgudG1w
KCkpOwogICAgIEFTU0VSVChpbmRleC50eXBlKCkgPT0gVHlwZTo6STMyKTsKLSAgICByZXN1bHQg
PSB0bXBGb3JUeXBlKFR5cGU6OkFueXJlZik7CisgICAgcmVzdWx0ID0gdG1wRm9yVHlwZShtX2lu
Zm8udGFibGVzW3RhYmxlSW5kZXhdLndhc21UeXBlKCkpOwogCiAgICAgZW1pdENDYWxsKCZnZXRX
YXNtVGFibGVFbGVtZW50LCByZXN1bHQsIGluc3RhbmNlVmFsdWUoKSwgYWRkQ29uc3RhbnQoVHlw
ZTo6STMyLCB0YWJsZUluZGV4KSwgaW5kZXgpOwogICAgIGVtaXRDaGVjayhbJl0gewpAQCAtMTAw
Niw2ICsxMDE1LDU0IEBAIGF1dG8gQWlySVJHZW5lcmF0b3I6OmFkZFRhYmxlU2V0KHVuc2lnbmVk
IHRhYmxlSW5kZXgsIEV4cHJlc3Npb25UeXBlJiBpbmRleCwgRXhwCiAgICAgcmV0dXJuIHsgfTsK
IH0KIAorYXV0byBBaXJJUkdlbmVyYXRvcjo6YWRkVGFibGVTaXplKHVuc2lnbmVkIHRhYmxlSW5k
ZXgsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpIC0+IFBhcnRpYWxSZXN1bHQKK3sKKyAgICAvLyBG
SVhNRTogRW1pdCB0aGlzIGlubGluZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5ODUwNj4uCisgICAgcmVzdWx0ID0gdG1wRm9yVHlwZShUeXBlOjpJMzIpOworCisg
ICAgaW50MzJfdCAoKmRvU2l6ZSkoSW5zdGFuY2UqLCB1bnNpZ25lZCkgPSBbXSAoSW5zdGFuY2Uq
IGluc3RhbmNlLCB1bnNpZ25lZCB0YWJsZUluZGV4KSAtPiBpbnQzMl90IHsKKyAgICAgICAgcmV0
dXJuIGluc3RhbmNlLT50YWJsZSh0YWJsZUluZGV4KS0+bGVuZ3RoKCk7CisgICAgfTsKKworICAg
IGVtaXRDQ2FsbChkb1NpemUsIHJlc3VsdCwgaW5zdGFuY2VWYWx1ZSgpLCBhZGRDb25zdGFudChU
eXBlOjpJMzIsIHRhYmxlSW5kZXgpKTsKKworICAgIHJldHVybiB7IH07Cit9CisKK2F1dG8gQWly
SVJHZW5lcmF0b3I6OmFkZFRhYmxlR3Jvdyh1bnNpZ25lZCB0YWJsZUluZGV4LCBFeHByZXNzaW9u
VHlwZSYgZmlsbCwgRXhwcmVzc2lvblR5cGUmIGRlbHRhLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0
KSAtPiBQYXJ0aWFsUmVzdWx0Cit7CisgICAgQVNTRVJUKGZpbGwudG1wKCkpOworICAgIEFTU0VS
VChpc1N1YnR5cGUoZmlsbC50eXBlKCksIG1faW5mby50YWJsZXNbdGFibGVJbmRleF0ud2FzbVR5
cGUoKSkpOworICAgIEFTU0VSVChkZWx0YS50bXAoKSk7CisgICAgQVNTRVJUKGRlbHRhLnR5cGUo
KSA9PSBUeXBlOjpJMzIpOworICAgIHJlc3VsdCA9IHRtcEZvclR5cGUoVHlwZTo6STMyKTsKKwor
ICAgIGVtaXRDQ2FsbCgmZG9XYXNtVGFibGVHcm93LCByZXN1bHQsIGluc3RhbmNlVmFsdWUoKSwg
YWRkQ29uc3RhbnQoVHlwZTo6STMyLCB0YWJsZUluZGV4KSwgZmlsbCwgZGVsdGEpOworCisgICAg
cmV0dXJuIHsgfTsKK30KKworYXV0byBBaXJJUkdlbmVyYXRvcjo6YWRkVGFibGVGaWxsKHVuc2ln
bmVkIHRhYmxlSW5kZXgsIEV4cHJlc3Npb25UeXBlJiBvZmZzZXQsIEV4cHJlc3Npb25UeXBlJiBm
aWxsLCBFeHByZXNzaW9uVHlwZSYgY291bnQpIC0+IFBhcnRpYWxSZXN1bHQKK3sKKyAgICBBU1NF
UlQoZmlsbC50bXAoKSk7CisgICAgQVNTRVJUKGlzU3VidHlwZShmaWxsLnR5cGUoKSwgbV9pbmZv
LnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlwZSgpKSk7CisgICAgQVNTRVJUKG9mZnNldC50bXAo
KSk7CisgICAgQVNTRVJUKG9mZnNldC50eXBlKCkgPT0gVHlwZTo6STMyKTsKKyAgICBBU1NFUlQo
Y291bnQudG1wKCkpOworICAgIEFTU0VSVChjb3VudC50eXBlKCkgPT0gVHlwZTo6STMyKTsKKwor
ICAgIGF1dG8gcmVzdWx0ID0gdG1wRm9yVHlwZShUeXBlOjpJMzIpOworICAgIGVtaXRDQ2FsbCgm
ZG9XYXNtVGFibGVGaWxsLCByZXN1bHQsIGluc3RhbmNlVmFsdWUoKSwgYWRkQ29uc3RhbnQoVHlw
ZTo6STMyLCB0YWJsZUluZGV4KSwgb2Zmc2V0LCBmaWxsLCBjb3VudCk7CisKKyAgICBlbWl0Q2hl
Y2soWyZdIHsKKyAgICAgICAgcmV0dXJuIEluc3QoQnJhbmNoVGVzdDMyLCBudWxscHRyLCBBcmc6
OnJlc0NvbmQoTWFjcm9Bc3NlbWJsZXI6Olplcm8pLCByZXN1bHQsIHJlc3VsdCk7CisgICAgfSwg
Wz1dIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgQjM6OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFt
cyYpIHsKKyAgICAgICAgdGhpcy0+ZW1pdFRocm93RXhjZXB0aW9uKGppdCwgRXhjZXB0aW9uVHlw
ZTo6T3V0T2ZCb3VuZHNUYWJsZUFjY2Vzcyk7CisgICAgfSk7CisKKyAgICByZXR1cm4geyB9Owor
fQorCiBhdXRvIEFpcklSR2VuZXJhdG9yOjpnZXRMb2NhbCh1aW50MzJfdCBpbmRleCwgRXhwcmVz
c2lvblR5cGUmIHJlc3VsdCkgLT4gUGFydGlhbFJlc3VsdAogewogICAgIEFTU0VSVChtX2xvY2Fs
c1tpbmRleF0udG1wKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUIzSVJHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIz
SVJHZW5lcmF0b3IuY3BwCmluZGV4IDFlYjI0NjUyYWU0ZWQ2YjMyOTA3MTlmN2VkNTMzNjkyZDUx
MWQyZjYuLjk5OTY3ZmRjNGI2NDNmYzM1Njk1NTIxMWM1MTJkNmE1N2Y5NWM1ZTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKQEAgLTE5
Miw3ICsxOTIsOSBAQCBwdWJsaWM6CiAgICAgLy8gVGFibGVzCiAgICAgUGFydGlhbFJlc3VsdCBX
QVJOX1VOVVNFRF9SRVRVUk4gYWRkVGFibGVHZXQodW5zaWduZWQsIEV4cHJlc3Npb25UeXBlJiBp
bmRleCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCk7CiAgICAgUGFydGlhbFJlc3VsdCBXQVJOX1VO
VVNFRF9SRVRVUk4gYWRkVGFibGVTZXQodW5zaWduZWQsIEV4cHJlc3Npb25UeXBlJiBpbmRleCwg
RXhwcmVzc2lvblR5cGUmIHZhbHVlKTsKLQorICAgIFBhcnRpYWxSZXN1bHQgV0FSTl9VTlVTRURf
UkVUVVJOIGFkZFRhYmxlU2l6ZSh1bnNpZ25lZCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCk7Cisg
ICAgUGFydGlhbFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkVGFibGVHcm93KHVuc2lnbmVk
LCBFeHByZXNzaW9uVHlwZSYgZmlsbCwgRXhwcmVzc2lvblR5cGUmIGRlbHRhLCBFeHByZXNzaW9u
VHlwZSYgcmVzdWx0KTsKKyAgICBQYXJ0aWFsUmVzdWx0IFdBUk5fVU5VU0VEX1JFVFVSTiBhZGRU
YWJsZUZpbGwodW5zaWduZWQsIEV4cHJlc3Npb25UeXBlJiBvZmZzZXQsIEV4cHJlc3Npb25UeXBl
JiBmaWxsLCBFeHByZXNzaW9uVHlwZSYgY291bnQpOwogICAgIC8vIExvY2FscwogICAgIFBhcnRp
YWxSZXN1bHQgV0FSTl9VTlVTRURfUkVUVVJOIGdldExvY2FsKHVpbnQzMl90IGluZGV4LCBFeHBy
ZXNzaW9uVHlwZSYgcmVzdWx0KTsKICAgICBQYXJ0aWFsUmVzdWx0IFdBUk5fVU5VU0VEX1JFVFVS
TiBzZXRMb2NhbCh1aW50MzJfdCBpbmRleCwgRXhwcmVzc2lvblR5cGUgdmFsdWUpOwpAQCAtNjE3
LDYgKzYxOSw0NyBAQCBhdXRvIEIzSVJHZW5lcmF0b3I6OmFkZFJlZkZ1bmModWludDMyX3QgaW5k
ZXgsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpIC0+IFBhcnRpYQogICAgIHJldHVybiB7IH07CiB9
CiAKK2F1dG8gQjNJUkdlbmVyYXRvcjo6YWRkVGFibGVTaXplKHVuc2lnbmVkIHRhYmxlSW5kZXgs
IEV4cHJlc3Npb25UeXBlJiByZXN1bHQpIC0+IFBhcnRpYWxSZXN1bHQKK3sKKyAgICAvLyBGSVhN
RTogRW1pdCB0aGlzIGlubGluZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5ODUwNj4uCisgICAgdWludDMyX3QgKCpkb1NpemUpKEluc3RhbmNlKiwgdW5zaWduZWQp
ID0gW10gKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgdGFibGVJbmRleCkgLT4gdWludDMy
X3QgeworICAgICAgICByZXR1cm4gaW5zdGFuY2UtPnRhYmxlKHRhYmxlSW5kZXgpLT5sZW5ndGgo
KTsKKyAgICB9OworCisgICAgcmVzdWx0ID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxDQ2Fs
bFZhbHVlPihtX3Byb2MsIHRvQjNUeXBlKEkzMiksIG9yaWdpbigpLAorICAgICAgICBtX2N1cnJl
bnRCbG9jay0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KG1fcHJvYywgb3JpZ2luKCksIHRhZ0NG
dW5jdGlvblB0cjx2b2lkKj4oZG9TaXplLCBCM0NDYWxsUHRyVGFnKSksCisgICAgICAgIGluc3Rh
bmNlVmFsdWUoKSwgbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KG1fcHJv
Yywgb3JpZ2luKCksIHRhYmxlSW5kZXgpKTsKKworICAgIHJldHVybiB7IH07Cit9CisKK2F1dG8g
QjNJUkdlbmVyYXRvcjo6YWRkVGFibGVHcm93KHVuc2lnbmVkIHRhYmxlSW5kZXgsIEV4cHJlc3Np
b25UeXBlJiBmaWxsLCBFeHByZXNzaW9uVHlwZSYgZGVsdGEsIEV4cHJlc3Npb25UeXBlJiByZXN1
bHQpIC0+IFBhcnRpYWxSZXN1bHQKK3sKKyAgICByZXN1bHQgPSBtX2N1cnJlbnRCbG9jay0+YXBw
ZW5kTmV3PENDYWxsVmFsdWU+KG1fcHJvYywgdG9CM1R5cGUoSTMyKSwgb3JpZ2luKCksCisgICAg
ICAgIG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4obV9wcm9jLCBvcmln
aW4oKSwgdGFnQ0Z1bmN0aW9uUHRyPHZvaWQqPigmZG9XYXNtVGFibGVHcm93LCBCM0NDYWxsUHRy
VGFnKSksCisgICAgICAgIGluc3RhbmNlVmFsdWUoKSwgbV9jdXJyZW50QmxvY2stPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KG1fcHJvYywgb3JpZ2luKCksIHRhYmxlSW5kZXgpLCBmaWxsLCBkZWx0
YSk7CisKKyAgICByZXR1cm4geyB9OworfQorCithdXRvIEIzSVJHZW5lcmF0b3I6OmFkZFRhYmxl
RmlsbCh1bnNpZ25lZCB0YWJsZUluZGV4LCBFeHByZXNzaW9uVHlwZSYgb2Zmc2V0LCBFeHByZXNz
aW9uVHlwZSYgZmlsbCwgRXhwcmVzc2lvblR5cGUmIGNvdW50KSAtPiBQYXJ0aWFsUmVzdWx0Cit7
CisgICAgYXV0byByZXN1bHQgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PENDYWxsVmFsdWU+
KG1fcHJvYywgdG9CM1R5cGUoSTMyKSwgb3JpZ2luKCksCisgICAgICAgIG1fY3VycmVudEJsb2Nr
LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4obV9wcm9jLCBvcmlnaW4oKSwgdGFnQ0Z1bmN0aW9u
UHRyPHZvaWQqPigmZG9XYXNtVGFibGVGaWxsLCBCM0NDYWxsUHRyVGFnKSksCisgICAgICAgIGlu
c3RhbmNlVmFsdWUoKSwgbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KG1f
cHJvYywgb3JpZ2luKCksIHRhYmxlSW5kZXgpLCBvZmZzZXQsIGZpbGwsIGNvdW50KTsKKworICAg
IHsKKyAgICAgICAgQ2hlY2tWYWx1ZSogY2hlY2sgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3
PENoZWNrVmFsdWU+KG1fcHJvYywgQ2hlY2ssIG9yaWdpbigpLAorICAgICAgICAgICAgbV9jdXJy
ZW50QmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBFcXVhbCwgb3JpZ2luKCksIHJlc3Vs
dCwgbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KG1fcHJvYywgb3JpZ2lu
KCksIDApKSk7CisKKyAgICAgICAgY2hlY2stPnNldEdlbmVyYXRvcihbPV0gKENDYWxsSGVscGVy
cyYgaml0LCBjb25zdCBCMzo6U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeworICAgICAgICAg
ICAgdGhpcy0+ZW1pdEV4Y2VwdGlvbkNoZWNrKGppdCwgRXhjZXB0aW9uVHlwZTo6T3V0T2ZCb3Vu
ZHNUYWJsZUFjY2Vzcyk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIHJldHVybiB7IH07Cit9
CisKIGF1dG8gQjNJUkdlbmVyYXRvcjo6Z2V0TG9jYWwodWludDMyX3QgaW5kZXgsIEV4cHJlc3Np
b25UeXBlJiByZXN1bHQpIC0+IFBhcnRpYWxSZXN1bHQKIHsKICAgICBBU1NFUlQobV9sb2NhbHNb
aW5kZXhdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21FeGNl
cHRpb25UeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRXhjZXB0aW9uVHlw
ZS5oCmluZGV4IDkzMjg2MWNhOWRkMWU1YWI4MzczOTU2MTQzMDQ1ZDE3NTM1MDAzYmMuLjU0ZGJl
MjZhOTUyNjExNWNlMmRhM2QyOWEyZGRkNTE1M2NjODI5ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21FeGNlcHRpb25UeXBlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUV4Y2VwdGlvblR5cGUuaApAQCAtMzMsNyArMzMsNyBAQCBuYW1l
c3BhY2UgV2FzbSB7CiAKICNkZWZpbmUgRk9SX0VBQ0hfRVhDRVBUSU9OKG1hY3JvKSBcCiAgICAg
bWFjcm8oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MsICAiT3V0IG9mIGJvdW5kcyBtZW1vcnkgYWNj
ZXNzIikgXAotICAgIG1hY3JvKE91dE9mQm91bmRzVGFibGVBY2Nlc3MsICAiT3V0IG9mIGJvdW5k
cyB0YWJsZSBhY2Nlc3MiKSBcCisgICAgbWFjcm8oT3V0T2ZCb3VuZHNUYWJsZUFjY2VzcywgIk91
dCBvZiBib3VuZHMgdGFibGUgYWNjZXNzIikgXAogICAgIG1hY3JvKE91dE9mQm91bmRzQ2FsbElu
ZGlyZWN0LCAiT3V0IG9mIGJvdW5kcyBjYWxsX2luZGlyZWN0IikgXAogICAgIG1hY3JvKE51bGxU
YWJsZUVudHJ5LCAgImNhbGxfaW5kaXJlY3QgdG8gYSBudWxsIHRhYmxlIGVudHJ5IikgXAogICAg
IG1hY3JvKEJhZFNpZ25hdHVyZSwgImNhbGxfaW5kaXJlY3QgdG8gYSBzaWduYXR1cmUgdGhhdCBk
b2VzIG5vdCBtYXRjaCIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21GdW5jdGlvblBhcnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1
bmN0aW9uUGFyc2VyLmgKaW5kZXggNzI1MDU0MjhhOWVlNDU2MDU5N2VlNzFjZDZlM2I0ZWZiOTUw
MjAxYS4uMWE3NjU4YzFlZmQ1YWZjODdmZTQzZDRlMjczZTMwYzI5MDY1OTlmZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgKQEAgLTMwMyw2
ICszMDMsNDMgQEAgYXV0byBGdW5jdGlvblBhcnNlcjxDb250ZXh0Pjo6cGFyc2VFeHByZXNzaW9u
KCkgLT4gUGFydGlhbFJlc3VsdAogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAorICAgIGNh
c2UgRXh0VGFibGU6IHsKKyAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRighT3B0aW9uczo6dXNl
V2ViQXNzZW1ibHlSZWZlcmVuY2VzKCksICJyZWZlcmVuY2VzIGFyZSBub3QgZW5hYmxlZCIpOwor
ICAgICAgICB1aW50OF90IGV4dE9wOworICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFwYXJz
ZVVJbnQ4KGV4dE9wKSwgImNhbid0IHBhcnNlIHRhYmxlIGV4dGVuZGVkIG9wY29kZSIpOworICAg
ICAgICB1bnNpZ25lZCB0YWJsZUluZGV4OworICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFw
YXJzZVZhclVJbnQzMih0YWJsZUluZGV4KSwgImNhbid0IHBhcnNlIHRhYmxlIGluZGV4Iik7CisK
KyAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxFeHRUYWJsZU9wVHlwZT4oZXh0T3ApKSB7Cisg
ICAgICAgIGNhc2UgRXh0VGFibGVPcFR5cGU6OlRhYmxlU2l6ZTogeworICAgICAgICAgICAgRXhw
cmVzc2lvblR5cGUgcmVzdWx0OworICAgICAgICAgICAgV0FTTV9UUllfQUREX1RPX0NPTlRFWFQo
YWRkVGFibGVTaXplKHRhYmxlSW5kZXgsIHJlc3VsdCkpOworICAgICAgICAgICAgbV9leHByZXNz
aW9uU3RhY2suYXBwZW5kKHJlc3VsdCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgICAgICBjYXNlIEV4dFRhYmxlT3BUeXBlOjpUYWJsZUdyb3c6IHsKKyAgICAgICAgICAgIEV4
cHJlc3Npb25UeXBlIGZpbGwsIGRlbHRhLCByZXN1bHQ7CisgICAgICAgICAgICBXQVNNX1RSWV9Q
T1BfRVhQUkVTU0lPTl9TVEFDS19JTlRPKGRlbHRhLCAidGFibGUuZ3JvdyIpOworICAgICAgICAg
ICAgV0FTTV9UUllfUE9QX0VYUFJFU1NJT05fU1RBQ0tfSU5UTyhmaWxsLCAidGFibGUuZ3JvdyIp
OworICAgICAgICAgICAgV0FTTV9UUllfQUREX1RPX0NPTlRFWFQoYWRkVGFibGVHcm93KHRhYmxl
SW5kZXgsIGZpbGwsIGRlbHRhLCByZXN1bHQpKTsKKyAgICAgICAgICAgIG1fZXhwcmVzc2lvblN0
YWNrLmFwcGVuZChyZXN1bHQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAg
ICAgY2FzZSBFeHRUYWJsZU9wVHlwZTo6VGFibGVGaWxsOiB7CisgICAgICAgICAgICBFeHByZXNz
aW9uVHlwZSBvZmZzZXQsIGZpbGwsIGNvdW50OworICAgICAgICAgICAgV0FTTV9UUllfUE9QX0VY
UFJFU1NJT05fU1RBQ0tfSU5UTyhjb3VudCwgInRhYmxlLmZpbGwiKTsKKyAgICAgICAgICAgIFdB
U01fVFJZX1BPUF9FWFBSRVNTSU9OX1NUQUNLX0lOVE8oZmlsbCwgInRhYmxlLmZpbGwiKTsKKyAg
ICAgICAgICAgIFdBU01fVFJZX1BPUF9FWFBSRVNTSU9OX1NUQUNLX0lOVE8ob2Zmc2V0LCAidGFi
bGUuZmlsbCIpOworICAgICAgICAgICAgV0FTTV9UUllfQUREX1RPX0NPTlRFWFQoYWRkVGFibGVG
aWxsKHRhYmxlSW5kZXgsIG9mZnNldCwgZmlsbCwgY291bnQpKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBXQVNNX1BBUlNFUl9G
QUlMX0lGKHRydWUsICJpbnZhbGlkIGV4dGVuZGVkIHRhYmxlIG9wICIsIGV4dE9wKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCiAg
ICAgY2FzZSBSZWZOdWxsOiB7CiAgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIU9wdGlvbnM6
OnVzZVdlYkFzc2VtYmx5UmVmZXJlbmNlcygpLCAicmVmZXJlbmNlcyBhcmUgbm90IGVuYWJsZWQi
KTsKICAgICAgICAgbV9leHByZXNzaW9uU3RhY2suYXBwZW5kKG1fY29udGV4dC5hZGRDb25zdGFu
dChBbnlmdW5jLCBKU1ZhbHVlOjplbmNvZGUoanNOdWxsKCkpKSk7CkBAIC02ODgsNiArNzI1LDcg
QEAgYXV0byBGdW5jdGlvblBhcnNlcjxDb250ZXh0Pjo6cGFyc2VVbnJlYWNoYWJsZUV4cHJlc3Np
b24oKSAtPiBQYXJ0aWFsUmVzdWx0CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCisgICAg
Y2FzZSBFeHRUYWJsZToKICAgICBjYXNlIFRhYmxlR2V0OgogICAgIGNhc2UgVGFibGVTZXQ6IHsK
ICAgICAgICAgdW5zaWduZWQgdGFibGVJbmRleDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21JbnN0YW5jZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtSW5zdGFuY2UuY3BwCmluZGV4IGM0MTU0OWJlNTE1ODQ4ODBmZWIyNjJlOWVlNzJhOTFk
NDdlM2I0NzYuLmVjMTVkODZlYzg2NzkyZGFjY2FkZjc5MmRjODZiNTAyZDcwOTRlZTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5jZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmNwcApAQCAtMTU5LDYgKzE1
OSw0MCBAQCBib29sIHNldFdhc21UYWJsZUVsZW1lbnQoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNp
Z25lZCB0YWJsZUluZGV4LCBpbnQzMl90IHNpZ25lZAogICAgIHJldHVybiB0cnVlOwogfQogCitp
bnQzMl90IGRvV2FzbVRhYmxlR3JvdyhJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIHRhYmxl
SW5kZXgsIEVuY29kZWRKU1ZhbHVlIGZpbGwsIGludDMyX3QgZGVsdGEpCit7CisgICAgQVNTRVJU
KHRhYmxlSW5kZXggPCBpbnN0YW5jZS0+bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKS50YWJs
ZUNvdW50KCkpOworICAgIGF1dG8gb2xkU2l6ZSA9IGluc3RhbmNlLT50YWJsZSh0YWJsZUluZGV4
KS0+bGVuZ3RoKCk7CisgICAgaWYgKGRlbHRhIDwgMCkKKyAgICAgICAgcmV0dXJuIG9sZFNpemU7
CisgICAgYXV0byBuZXdTaXplID0gaW5zdGFuY2UtPnRhYmxlKHRhYmxlSW5kZXgpLT5ncm93KGRl
bHRhKTsKKyAgICBpZiAoIW5ld1NpemUgfHwgKm5ld1NpemUgPT0gb2xkU2l6ZSkKKyAgICAgICAg
cmV0dXJuIC0xOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gb2xkU2l6ZTsgaSA8IGluc3RhbmNl
LT50YWJsZSh0YWJsZUluZGV4KS0+bGVuZ3RoKCk7ICsraSkKKyAgICAgICAgc2V0V2FzbVRhYmxl
RWxlbWVudChpbnN0YW5jZSwgdGFibGVJbmRleCwgaSwgZmlsbCk7CisKKyAgICByZXR1cm4gb2xk
U2l6ZTsKK30KKworYm9vbCBkb1dhc21UYWJsZUZpbGwoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNp
Z25lZCB0YWJsZUluZGV4LCBpbnQzMl90IHVuc2FmZU9mZnNldCwgRW5jb2RlZEpTVmFsdWUgZmls
bCwgaW50MzJfdCB1bnNhZmVDb3VudCkKK3sKKyAgICBBU1NFUlQodGFibGVJbmRleCA8IGluc3Rh
bmNlLT5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpLnRhYmxlQ291bnQoKSk7CisgICAgaWYg
KHVuc2FmZU9mZnNldCA8IDAgfHwgdW5zYWZlQ291bnQgPCAwKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICB1bnNpZ25lZCBvZmZzZXQgPSB1bnNhZmVPZmZzZXQ7CisgICAgdW5zaWduZWQg
Y291bnQgPSB1bnNhZmVDb3VudDsKKworICAgIGlmIChvZmZzZXQgPj0gaW5zdGFuY2UtPnRhYmxl
KHRhYmxlSW5kZXgpLT5sZW5ndGgoKSB8fCBvZmZzZXQgKyBjb3VudCA+IGluc3RhbmNlLT50YWJs
ZSh0YWJsZUluZGV4KS0+bGVuZ3RoKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGZv
ciAodW5zaWduZWQgaiA9IDA7IGogPCBjb3VudDsgKytqKQorICAgICAgICBzZXRXYXNtVGFibGVF
bGVtZW50KGluc3RhbmNlLCB0YWJsZUluZGV4LCBvZmZzZXQgKyBqLCBmaWxsKTsKKworICAgIHJl
dHVybiB0cnVlOworfQorCiBFbmNvZGVkSlNWYWx1ZSBkb1dhc21SZWZGdW5jKEluc3RhbmNlKiBp
bnN0YW5jZSwgdWludDMyX3QgaW5kZXgpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IGluc3RhbmNl
LT5nZXRGdW5jdGlvbldyYXBwZXIoaW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtSW5zdGFuY2UuaAppbmRleCAwMTJjZDQ1NzNhYTg0Zjk2NDcwY2IwNzE5OGM3YTcwYmIwZjNh
N2M0Li5mNGYzNTA4N2UyNTZkMDkyY2U3NGIyMWI4NDQwYTkzNzI1ZDE2Njg1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuaApAQCAtNDQsNiArNDQsOCBAQCBjbGFz
cyBJbnN0YW5jZTsKIEVuY29kZWRKU1ZhbHVlIGdldFdhc21UYWJsZUVsZW1lbnQoSW5zdGFuY2Uq
LCB1bnNpZ25lZCwgaW50MzJfdCk7CiBib29sIHNldFdhc21UYWJsZUVsZW1lbnQoSW5zdGFuY2Uq
LCB1bnNpZ25lZCwgaW50MzJfdCwgRW5jb2RlZEpTVmFsdWUgZW5jVmFsdWUpOwogRW5jb2RlZEpT
VmFsdWUgZG9XYXNtUmVmRnVuYyhJbnN0YW5jZSosIHVpbnQzMl90KTsKK2ludDMyX3QgZG9XYXNt
VGFibGVHcm93KEluc3RhbmNlKiwgdW5zaWduZWQsIEVuY29kZWRKU1ZhbHVlIGZpbGwsIGludDMy
X3QgZGVsdGEpOworYm9vbCBkb1dhc21UYWJsZUZpbGwoSW5zdGFuY2UqLCB1bnNpZ25lZCwgaW50
MzJfdCBvZmZzZXQsIEVuY29kZWRKU1ZhbHVlIGZpbGwsIGludDMyX3QgY291bnQpOwogCiBjbGFz
cyBJbnN0YW5jZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxJbnN0YW5jZT4sIHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxJbnN0YW5jZT4gewogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbGlkYXRlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21WYWxpZGF0ZS5jcHAKaW5kZXggYmQyMWQ4MGVmMWE1M2YzNzliMTVjNzA4
ODIxZThjNjc2NWRiZGZhNC4uNmEwYmQ5ZmZiMmY5YzM2ZTg3YzJlMTVmZTEwNDNkNmE1N2M1MmVl
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbGlkYXRlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsaWRhdGUuY3BwCkBAIC0x
MDgsNyArMTA4LDkgQEAgcHVibGljOgogICAgIC8vIFRhYmxlcwogICAgIFJlc3VsdCBXQVJOX1VO
VVNFRF9SRVRVUk4gYWRkVGFibGVHZXQodW5zaWduZWQsIEV4cHJlc3Npb25UeXBlJiBpbmRleCwg
RXhwcmVzc2lvblR5cGUmIHJlc3VsdCk7CiAgICAgUmVzdWx0IFdBUk5fVU5VU0VEX1JFVFVSTiBh
ZGRUYWJsZVNldCh1bnNpZ25lZCwgRXhwcmVzc2lvblR5cGUmIGluZGV4LCBFeHByZXNzaW9uVHlw
ZSYgdmFsdWUpOwotCisgICAgUmVzdWx0IFdBUk5fVU5VU0VEX1JFVFVSTiBhZGRUYWJsZVNpemUo
dW5zaWduZWQsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpOworICAgIFJlc3VsdCBXQVJOX1VOVVNF
RF9SRVRVUk4gYWRkVGFibGVHcm93KHVuc2lnbmVkLCBFeHByZXNzaW9uVHlwZSYgZmlsbCwgRXhw
cmVzc2lvblR5cGUmIGRlbHRhLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KTsKKyAgICBSZXN1bHQg
V0FSTl9VTlVTRURfUkVUVVJOIGFkZFRhYmxlRmlsbCh1bnNpZ25lZCwgRXhwcmVzc2lvblR5cGUm
IG9mZnNldCwgRXhwcmVzc2lvblR5cGUmIGZpbGwsIEV4cHJlc3Npb25UeXBlJiBjb3VudCk7CiAg
ICAgLy8gTG9jYWxzCiAgICAgUmVzdWx0IFdBUk5fVU5VU0VEX1JFVFVSTiBnZXRMb2NhbCh1aW50
MzJfdCBpbmRleCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCk7CiAgICAgUmVzdWx0IFdBUk5fVU5V
U0VEX1JFVFVSTiBzZXRMb2NhbCh1aW50MzJfdCBpbmRleCwgRXhwcmVzc2lvblR5cGUgdmFsdWUp
OwpAQCAtMTk4LDYgKzIwMCwzNCBAQCBhdXRvIFZhbGlkYXRlOjphZGRUYWJsZVNldCh1bnNpZ25l
ZCB0YWJsZUluZGV4LCBFeHByZXNzaW9uVHlwZSYgaW5kZXgsIEV4cHJlc3NpbwogICAgIHJldHVy
biB7IH07CiB9CiAKK2F1dG8gVmFsaWRhdGU6OmFkZFRhYmxlU2l6ZSh1bnNpZ25lZCB0YWJsZUlu
ZGV4LCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KSAtPiBSZXN1bHQKK3sKKyAgICByZXN1bHQgPSBU
eXBlOjpJMzI7CisgICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRih0YWJsZUluZGV4ID49IG1fbW9k
dWxlLnRhYmxlQ291bnQoKSwgInRhYmxlIGluZGV4ICIsIHRhYmxlSW5kZXgsICIgaXMgaW52YWxp
ZCwgbGltaXQgaXMgIiwgbV9tb2R1bGUudGFibGVDb3VudCgpKTsKKworICAgIHJldHVybiB7IH07
Cit9CisKK2F1dG8gVmFsaWRhdGU6OmFkZFRhYmxlR3Jvdyh1bnNpZ25lZCB0YWJsZUluZGV4LCBF
eHByZXNzaW9uVHlwZSYgZmlsbCwgRXhwcmVzc2lvblR5cGUmIGRlbHRhLCBFeHByZXNzaW9uVHlw
ZSYgcmVzdWx0KSAtPiBSZXN1bHQKK3sKKyAgICByZXN1bHQgPSBUeXBlOjpJMzI7CisgICAgV0FT
TV9WQUxJREFUT1JfRkFJTF9JRih0YWJsZUluZGV4ID49IG1fbW9kdWxlLnRhYmxlQ291bnQoKSwg
InRhYmxlIGluZGV4ICIsIHRhYmxlSW5kZXgsICIgaXMgaW52YWxpZCwgbGltaXQgaXMgIiwgbV9t
b2R1bGUudGFibGVDb3VudCgpKTsKKyAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKCFpc1N1YnR5
cGUoZmlsbCwgbV9tb2R1bGUudGFibGVzW3RhYmxlSW5kZXhdLndhc21UeXBlKCkpLCAidGFibGUu
Z3JvdyBleHBlY3RzIGZpbGwgdmFsdWUgb2YgdHlwZSAiLCBtX21vZHVsZS50YWJsZXNbdGFibGVJ
bmRleF0ud2FzbVR5cGUoKSwgIiBnb3QgIiwgZmlsbCk7CisgICAgV0FTTV9WQUxJREFUT1JfRkFJ
TF9JRihUeXBlOjpJMzIgIT0gZGVsdGEsICJ0YWJsZS5ncm93IGV4cGVjdHMgYW4gaTMyIGRlbHRh
IHZhbHVlLCBnb3QgIiwgZGVsdGEpOworCisgICAgcmV0dXJuIHsgfTsKK30KKworYXV0byBWYWxp
ZGF0ZTo6YWRkVGFibGVGaWxsKHVuc2lnbmVkIHRhYmxlSW5kZXgsIEV4cHJlc3Npb25UeXBlJiBv
ZmZzZXQsIEV4cHJlc3Npb25UeXBlJiBmaWxsLCBFeHByZXNzaW9uVHlwZSYgY291bnQpIC0+IFJl
c3VsdAoreworICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYodGFibGVJbmRleCA+PSBtX21vZHVs
ZS50YWJsZUNvdW50KCksICJ0YWJsZSBpbmRleCAiLCB0YWJsZUluZGV4LCAiIGlzIGludmFsaWQs
IGxpbWl0IGlzICIsIG1fbW9kdWxlLnRhYmxlQ291bnQoKSk7CisgICAgV0FTTV9WQUxJREFUT1Jf
RkFJTF9JRighaXNTdWJ0eXBlKGZpbGwsIG1fbW9kdWxlLnRhYmxlc1t0YWJsZUluZGV4XS53YXNt
VHlwZSgpKSwgInRhYmxlLmZpbGwgZXhwZWN0cyBmaWxsIHZhbHVlIG9mIHR5cGUgIiwgbV9tb2R1
bGUudGFibGVzW3RhYmxlSW5kZXhdLndhc21UeXBlKCksICIgZ290ICIsIGZpbGwpOworICAgIFdB
U01fVkFMSURBVE9SX0ZBSUxfSUYoVHlwZTo6STMyICE9IG9mZnNldCwgInRhYmxlLmZpbGwgZXhw
ZWN0cyBhbiBpMzIgb2Zmc2V0IHZhbHVlLCBnb3QgIiwgb2Zmc2V0KTsKKyAgICBXQVNNX1ZBTElE
QVRPUl9GQUlMX0lGKFR5cGU6OkkzMiAhPSBjb3VudCwgInRhYmxlLmZpbGwgZXhwZWN0cyBhbiBp
MzIgY291bnQgdmFsdWUsIGdvdCAiLCBjb3VudCk7CisKKyAgICByZXR1cm4geyB9OworfQorCiBh
dXRvIFZhbGlkYXRlOjphZGRSZWZJc051bGwoRXhwcmVzc2lvblR5cGUmIHZhbHVlLCBFeHByZXNz
aW9uVHlwZSYgcmVzdWx0KSAtPiBSZXN1bHQKIHsKICAgICByZXN1bHQgPSBUeXBlOjpJMzI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9nZW5lcmF0ZVdhc21PcHNIZWFk
ZXIucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9nZW5lcmF0ZVdhc21PcHNIZWFkZXIu
cHkKaW5kZXggNGU5YTY2NTY2MzE5NzlkMmM5Mzc4YjYzN2UxYjg4ZjA2OTJiNzUxYy4uNzc1NjRj
MzAzY2EzMDA5MzE2MWNiMjRkOWJkZmZhYTkyMzIwZDkxMiAxMDA3NTUKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vZ2VuZXJhdGVXYXNtT3BzSGVhZGVyLnB5CisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2dlbmVyYXRlV2FzbU9wc0hlYWRlci5weQpAQCAtNTUsMTcgKzU1
LDE3IEBAIHR5cGVfZGVmaW5pdGlvbnMuZXh0ZW5kKFt0IGZvciB0IGluIHR5cGVNYWNyb2l6ZXIo
KV0pCiB0eXBlX2RlZmluaXRpb25zID0gIiIuam9pbih0eXBlX2RlZmluaXRpb25zKQogCiAKLWRl
ZiBvcGNvZGVNYWNyb2l6ZXIoZmlsdGVyKToKK2RlZiBvcGNvZGVNYWNyb2l6ZXIoZmlsdGVyLCBv
cGNvZGVGaWVsZD0idmFsdWUiKToKICAgICBpbmMgPSAwCiAgICAgZm9yIG9wIGluIHdhc20ub3Bj
b2RlSXRlcmF0b3IoZmlsdGVyKToKICAgICAgICAgYjNvcCA9ICJPb3BzIgogICAgICAgICBpZiBp
c1NpbXBsZShvcFsib3Bjb2RlIl0pOgogICAgICAgICAgICAgYjNvcCA9IG9wWyJvcGNvZGUiXVsi
YjNvcCJdCi0gICAgICAgIHlpZWxkIGNwcE1hY3JvKG9wWyJuYW1lIl0sIG9wWyJvcGNvZGUiXVsi
dmFsdWUiXSwgYjNvcCwgaW5jKQorICAgICAgICB5aWVsZCBjcHBNYWNybyhvcFsibmFtZSJdLCBv
cFsib3Bjb2RlIl1bb3Bjb2RlRmllbGRdLCBiM29wLCBpbmMpCiAgICAgICAgIGluYyArPSAxCiAK
IGRlZmluZXMgPSBbIiNkZWZpbmUgRk9SX0VBQ0hfV0FTTV9TUEVDSUFMX09QKG1hY3JvKSJdCi1k
ZWZpbmVzLmV4dGVuZChbb3AgZm9yIG9wIGluIG9wY29kZU1hY3JvaXplcihsYW1iZGEgb3A6IG5v
dCAoaXNVbmFyeShvcCkgb3IgaXNCaW5hcnkob3ApIG9yIG9wWyJjYXRlZ29yeSJdID09ICJjb250
cm9sIiBvciBvcFsiY2F0ZWdvcnkiXSA9PSAibWVtb3J5IikpXSkKK2RlZmluZXMuZXh0ZW5kKFtv
cCBmb3Igb3AgaW4gb3Bjb2RlTWFjcm9pemVyKGxhbWJkYSBvcDogbm90IChpc1VuYXJ5KG9wKSBv
ciBpc0JpbmFyeShvcCkgb3Igb3BbImNhdGVnb3J5Il0gPT0gImNvbnRyb2wiIG9yIG9wWyJjYXRl
Z29yeSJdID09ICJtZW1vcnkiIG9yIG9wWyJjYXRlZ29yeSJdID09ICJleHR0YWJsZSIpKV0pCiBk
ZWZpbmVzLmFwcGVuZCgiXG5cbiNkZWZpbmUgRk9SX0VBQ0hfV0FTTV9DT05UUk9MX0ZMT1dfT1Ao
bWFjcm8pIikKIGRlZmluZXMuZXh0ZW5kKFtvcCBmb3Igb3AgaW4gb3Bjb2RlTWFjcm9pemVyKGxh
bWJkYSBvcDogb3BbImNhdGVnb3J5Il0gPT0gImNvbnRyb2wiKV0pCiBkZWZpbmVzLmFwcGVuZCgi
XG5cbiNkZWZpbmUgRk9SX0VBQ0hfV0FTTV9TSU1QTEVfVU5BUllfT1AobWFjcm8pIikKQEAgLTgw
LDYgKzgwLDggQEAgZGVmaW5lcy5hcHBlbmQoIlxuXG4jZGVmaW5lIEZPUl9FQUNIX1dBU01fTUVN
T1JZX0xPQURfT1AobWFjcm8pIikKIGRlZmluZXMuZXh0ZW5kKFtvcCBmb3Igb3AgaW4gb3Bjb2Rl
TWFjcm9pemVyKGxhbWJkYSBvcDogKG9wWyJjYXRlZ29yeSJdID09ICJtZW1vcnkiIGFuZCBsZW4o
b3BbInJldHVybiJdKSA9PSAxKSldKQogZGVmaW5lcy5hcHBlbmQoIlxuXG4jZGVmaW5lIEZPUl9F
QUNIX1dBU01fTUVNT1JZX1NUT1JFX09QKG1hY3JvKSIpCiBkZWZpbmVzLmV4dGVuZChbb3AgZm9y
IG9wIGluIG9wY29kZU1hY3JvaXplcihsYW1iZGEgb3A6IChvcFsiY2F0ZWdvcnkiXSA9PSAibWVt
b3J5IiBhbmQgbGVuKG9wWyJyZXR1cm4iXSkgPT0gMCkpXSkKK2RlZmluZXMuYXBwZW5kKCJcblxu
I2RlZmluZSBGT1JfRUFDSF9XQVNNX0VYVF9UQUJMRV9PUChtYWNybykiKQorZGVmaW5lcy5leHRl
bmQoW29wIGZvciBvcCBpbiBvcGNvZGVNYWNyb2l6ZXIobGFtYmRhIG9wOiAob3BbImNhdGVnb3J5
Il0gPT0gImV4dHRhYmxlIiksICJleHRlbmRlZE9wIildKQogZGVmaW5lcy5hcHBlbmQoIlxuXG4i
KQogCiBkZWZpbmVzID0gIiIuam9pbihkZWZpbmVzKQpAQCAtMjAyLDcgKzIwNCw4IEBAIGlubGlu
ZSBUeXBlIGxpbmVhcml6ZWRUb1R5cGUoaW50IGkpCiAgICAgRk9SX0VBQ0hfV0FTTV9VTkFSWV9P
UChtYWNybykgXFwKICAgICBGT1JfRUFDSF9XQVNNX0JJTkFSWV9PUChtYWNybykgXFwKICAgICBG
T1JfRUFDSF9XQVNNX01FTU9SWV9MT0FEX09QKG1hY3JvKSBcXAotICAgIEZPUl9FQUNIX1dBU01f
TUVNT1JZX1NUT1JFX09QKG1hY3JvKQorICAgIEZPUl9FQUNIX1dBU01fTUVNT1JZX1NUT1JFX09Q
KG1hY3JvKSBcXAorICAgIG1hY3JvKEV4dFRhYmxlLCAweEZDLCBPb3BzLCAwKQogCiAjZGVmaW5l
IENSRUFURV9FTlVNX1ZBTFVFKG5hbWUsIGlkLCBiM29wLCBpbmMpIG5hbWUgPSBpZCwKIApAQCAt
MjM0LDYgKzIzNywxMCBAQCBlbnVtIGNsYXNzIFN0b3JlT3BUeXBlIDogdWludDhfdCB7CiAgICAg
Rk9SX0VBQ0hfV0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0VOVU1fVkFMVUUpCiB9OwogCitl
bnVtIGNsYXNzIEV4dFRhYmxlT3BUeXBlIDogdWludDhfdCB7CisgICAgRk9SX0VBQ0hfV0FTTV9F
WFRfVEFCTEVfT1AoQ1JFQVRFX0VOVU1fVkFMVUUpCit9OworCiAjdW5kZWYgQ1JFQVRFX0VOVU1f
VkFMVUUKIAogaW5saW5lIGJvb2wgaXNDb250cm9sT3AoT3BUeXBlIG9wKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vd2FzbS5qc29uIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vd2FzbS5qc29uCmluZGV4IDk2ZThhMWQyMDc3Mjk5MDBkMzk1MThiMTA5NjVlNmM1
NzZkMGY4MjguLjBkMjgwZWNkOTk0NGY3NDJhODIyODBlY2E2ZjU2Y2FiMDU5NzMzYjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL3dhc20uanNvbgorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS93YXNtLmpzb24KQEAgLTY5LDYgKzY5LDkgQEAKICAgICAgICAg
InNldF9nbG9iYWwiOiAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJzcGVjaWFsIiwgICAgInZhbHVl
IjogIDM2LCAicmV0dXJuIjogW10sICAgICAgICAgICAicGFyYW1ldGVyIjogWyJhbnkiXSwgICAg
ICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJnbG9iYWxfaW5kZXgiLCAgICJ0
eXBlIjogInZhcnVpbnQzMiJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJ3cml0ZSBhIGdsb2JhbCB2YXJpYWJsZSIgfSwKICAgICAg
ICAgInRhYmxlLmdldCI6ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJzcGVjaWFsIiwgICAgInZh
bHVlIjogIDM3LCAicmV0dXJuIjogWyJhbnlyZWYiXSwgICAicGFyYW1ldGVyIjogWyJpMzIiXSwg
ICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJ0YWJsZV9pbmRleCIsICAg
ICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJnZXQgYSB0YWJsZSB2YWx1ZSIgfSwKICAgICAgICAg
InRhYmxlLnNldCI6ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJzcGVjaWFsIiwgICAgInZhbHVl
IjogIDM4LCAicmV0dXJuIjogW10sICAgICAgICAgICAicGFyYW1ldGVyIjogWyJpMzIiLCAiYW55
cmVmIl0sICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJ0YWJsZV9pbmRleCIsICAgICJ0
eXBlIjogInZhcnVpbnQzMiJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJzZXQgYSB0YWJsZSB2YWx1ZSIgfSwKKyAgICAgICAgInRh
YmxlLnNpemUiOiAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJleHR0YWJsZSIsICAgInZhbHVlIjog
IDI1MiwgInJldHVybiI6IFsiaTMyIl0sICAgICAicGFyYW1ldGVyIjogW10sICAgICAgICAgICAg
ICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJ0YWJsZV9pbmRleCIsICAgICJ0eXBl
IjogInZhcnVpbnQzMiJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJnZXQgdGhlIHNpemUgb2YgYSB0YWJsZSIsICJleHRlbmRlZE9w
IjogMTUgfSwKKyAgICAgICAgInRhYmxlLmdyb3ciOiAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJl
eHR0YWJsZSIsICAgInZhbHVlIjogIDI1MiwgInJldHVybiI6IFsiaTMyIl0sICAgICAicGFyYW1l
dGVyIjogWyJhbnlyZWYiLCAiaTMyIl0sICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJ0
YWJsZV9pbmRleCIsICAgICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJncm93IGEgdGFibGUgYnkg
dGhlIGdpdmVuIGRlbHRhIGFuZCByZXR1cm4gdGhlIHByZXZpb3VzIHNpemUsIG9yIC0xIGlmIGVu
b3VnaCBzcGFjZSBjYW5ub3QgYmUgYWxsb2NhdGVkIiwgImV4dGVuZGVkT3AiOiAxNiB9LAorICAg
ICAgICAidGFibGUuZmlsbCI6ICAgICAgICAgIHsgImNhdGVnb3J5IjogImV4dHRhYmxlIiwgICAi
dmFsdWUiOiAgMjUyLCAicmV0dXJuIjogWyJpMzIiXSwgICAgICJwYXJhbWV0ZXIiOiBbImkzMiIs
ICJhbnlyZWYiLCAiaTMyIl0sICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogInRhYmxlX2luZGV4Iiwg
ICAgInR5cGUiOiAidmFydWludDMyIn1dLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogImZpbGwgZW50cmllcyBbaSxpK24pIHdpdGggdGhl
IGdpdmVuIHZhbHVlIiwgImV4dGVuZGVkT3AiOiAxNyB9LAogICAgICAgICAiY2FsbCI6ICAgICAg
ICAgICAgICAgIHsgImNhdGVnb3J5IjogImNhbGwiLCAgICAgICAidmFsdWUiOiAgMTYsICJyZXR1
cm4iOiBbImNhbGwiXSwgICAgICJwYXJhbWV0ZXIiOiBbImNhbGwiXSwgICAgICAgICAgICAgICAg
ICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImZ1bmN0aW9uX2luZGV4IiwgInR5cGUiOiAidmFydWlu
dDMyIn1dLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogImNhbGwgYSBmdW5jdGlvbiBieSBpdHMgaW5kZXgiIH0sCiAgICAgICAgICJjYWxs
X2luZGlyZWN0IjogICAgICAgeyAiY2F0ZWdvcnkiOiAiY2FsbCIsICAgICAgICJ2YWx1ZSI6ICAx
NywgInJldHVybiI6IFsiY2FsbCJdLCAgICAgInBhcmFtZXRlciI6IFsiY2FsbCJdLCAgICAgICAg
ICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAidHlwZV9pbmRleCIsICAgICAidHlwZSI6
ICJ2YXJ1aW50MzIifSwgeyJuYW1lIjogInRhYmxlX2luZGV4IiwidHlwZSI6ICJ2YXJ1aW50MzIi
fV0sImRlc2NyaXB0aW9uIjogImNhbGwgYSBmdW5jdGlvbiBpbmRpcmVjdCB3aXRoIGFuIGV4cGVj
dGVkIHNpZ25hdHVyZSIgfSwKICAgICAgICAgImkzMi5sb2FkOF9zIjogICAgICAgICB7ICJjYXRl
Z29yeSI6ICJtZW1vcnkiLCAgICAgInZhbHVlIjogIDQ0LCAicmV0dXJuIjogWyJpMzIiXSwgICAg
ICAicGFyYW1ldGVyIjogWyJhZGRyIl0sICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3si
bmFtZSI6ICJmbGFncyIsICAgICAgICAgICJ0eXBlIjogInZhcnVpbnQzMiJ9LCB7Im5hbWUiOiAi
b2Zmc2V0IiwgICAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICJkZXNjcmlwdGlvbiI6ICJsb2FkIGZy
b20gbWVtb3J5IiB9LApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0No
YW5nZUxvZwppbmRleCBiNGVlMjczMjdiYzJiYjExN2E3NWMwMTNlYWUyZTU5YjI2NzVlZTZiLi4w
YzZhOWJmYmI2YWRhZTU0MDFiYzVjOWRmNTA4YzU1ZGEzNDA3MjViIDEwMDY0NAotLS0gYS9KU1Rl
c3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisy
MDE5LTA2LTE0ICBKdXN0aW4gTWljaGF1ZCAgPGp1c3Rpbl9taWNoYXVkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbV0FTTS1SZWZlcmVuY2VzXSBBZGQgc3VwcG9ydCBmb3IgVGFibGUuc2l6ZSwgZ3Jv
dyBhbmQgZmlsbCBpbnN0cnVjdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5ODc2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogd2FzbS9CdWlsZGVyX1dlYkFzc2VtYmx5QmluYXJ5LmpzOgorICAg
ICAgICAoY29uc3QucHV0T3ApOgorICAgICAgICAqIHdhc20vcmVmZXJlbmNlcy90YWJsZV9taXNj
LmpzOiBBZGRlZC4KKyAgICAgICAgKFRhYmxlU2l6ZS5FbmQuRW5kLldlYkFzc2VtYmx5KToKKyAg
ICAgICAgKEdldExvY2FsLjAuR2V0TG9jYWwuMS5UYWJsZUdyb3cuRW5kLkVuZC5XZWJBc3NlbWJs
eSk6CisgICAgICAgICogd2FzbS93YXNtLmpzb246CisKIDIwMTktMDYtMTggIEp1c3RpbiBNaWNo
YXVkICA8anVzdGluX21pY2hhdWRAYXBwbGUuY29tPgogCiAgICAgICAgIFtXQVNNLVJlZmVyZW5j
ZXNdIEFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSB0YWJsZXMKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
d2FzbS9CdWlsZGVyX1dlYkFzc2VtYmx5QmluYXJ5LmpzIGIvSlNUZXN0cy93YXNtL0J1aWxkZXJf
V2ViQXNzZW1ibHlCaW5hcnkuanMKaW5kZXggY2E4ZmQ4ZjY1ZjY5NmY5YjUwOTgxMGMxYzYwMmNh
NGE3YWQ0YzZlNC4uNGYzYTIzZjc0ZWMzZGM0M2VhNDUyYTQ0ZjNiYWVjMmRkZDczMWVhNSAxMDA2
NDQKLS0tIGEvSlNUZXN0cy93YXNtL0J1aWxkZXJfV2ViQXNzZW1ibHlCaW5hcnkuanMKKysrIGIv
SlNUZXN0cy93YXNtL0J1aWxkZXJfV2ViQXNzZW1ibHlCaW5hcnkuanMKQEAgLTYwLDYgKzYwLDgg
QEAgY29uc3QgcHV0R2xvYmFsVHlwZSA9IChiaW4sIGdsb2JhbCkgPT4gewogCiBjb25zdCBwdXRP
cCA9IChiaW4sIG9wKSA9PiB7CiAgICAgcHV0KGJpbiwgInVpbnQ4Iiwgb3AudmFsdWUpOworICAg
IGlmIChXQVNNLmRlc2NyaXB0aW9uLm9wY29kZVtvcC5uYW1lXS5leHRlbmRlZE9wKQorICAgICAg
ICBwdXQoYmluLCAidWludDgiLCBXQVNNLmRlc2NyaXB0aW9uLm9wY29kZVtvcC5uYW1lXS5leHRl
bmRlZE9wKTsKICAgICBpZiAob3AuYXJndW1lbnRzLmxlbmd0aCAhPT0gMCkKICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKGBVbmltcGxlbWVudGVkOiBhcmd1bWVudHNgKTsgLy8gRklYTUUgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjcwNgogCmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3dhc20vcmVmZXJlbmNlcy90YWJsZV9taXNjLmpzIGIvSlNUZXN0cy93YXNtL3JlZmVy
ZW5jZXMvdGFibGVfbWlzYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjA5NWQ1MmI2MGI0ZGQ2ODk5YjRkZDVm
NGNhNjNkNDFjZDQxMDk2Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy93YXNtL3JlZmVyZW5j
ZXMvdGFibGVfbWlzYy5qcwpAQCAtMCwwICsxLDIyNSBAQAoraW1wb3J0ICogYXMgYXNzZXJ0IGZy
b20gJy4uL2Fzc2VydC5qcyc7CitpbXBvcnQgQnVpbGRlciBmcm9tICcuLi9CdWlsZGVyLmpzJzsK
KworeworICAgIGNvbnN0ICQxID0gbmV3IFdlYkFzc2VtYmx5Lkluc3RhbmNlKG5ldyBXZWJBc3Nl
bWJseS5Nb2R1bGUoKG5ldyBCdWlsZGVyKCkpCisgICAgICAgICAgLlR5cGUoKS5FbmQoKQorICAg
ICAgICAgIC5GdW5jdGlvbigpLkVuZCgpCisgICAgICAgICAgLlRhYmxlKCkKKyAgICAgICAgICAg
ICAgICAuVGFibGUoe2luaXRpYWw6IDAsIG1heGltdW06IDAsIGVsZW1lbnQ6ICJhbnlyZWYifSkK
KyAgICAgICAgICAgICAgICAuVGFibGUoe2luaXRpYWw6IDIwLCBtYXhpbXVtOiAzMCwgZWxlbWVu
dDogImFueXJlZiJ9KQorICAgICAgICAgIC5FbmQoKQorICAgICAgICAgIC5FeHBvcnQoKQorICAg
ICAgICAgICAgICAuRnVuY3Rpb24oInRibF9zaXplIikKKyAgICAgICAgICAgICAgLlRhYmxlKCJ0
YmwiLCAxKQorICAgICAgICAgIC5FbmQoKQorICAgICAgICAgIC5Db2RlKCkKKyAgICAgICAgICAg
IC5GdW5jdGlvbigidGJsX3NpemUiLCB7IHBhcmFtczogW10sIHJldDogImkzMiIgfSkKKyAgICAg
ICAgICAgICAgLlRhYmxlU2l6ZSgxKQorICAgICAgICAgICAgLkVuZCgpCisgICAgICAgICAgLkVu
ZCgpLldlYkFzc2VtYmx5KCkuZ2V0KCkpKTsKKyAgICBmdWxsR0MoKQorCisgICAgYXNzZXJ0LmVx
KCQxLmV4cG9ydHMudGJsX3NpemUoKSwgMjApCisgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJs
Lmdyb3coNSksIDIwKQorICAgIGFzc2VydC5lcSgkMS5leHBvcnRzLnRibF9zaXplKCksIDI1KQor
ICAgIGFzc2VydC5lcSgkMS5leHBvcnRzLnRibC5nZXQoMCksIG51bGwpCisgICAgYXNzZXJ0LmVx
KCQxLmV4cG9ydHMudGJsLmdldCgyNCksIG51bGwpCit9CisKK2Fzc2VydC50aHJvd3MoKCkgPT4g
bmV3IFdlYkFzc2VtYmx5Lk1vZHVsZSgobmV3IEJ1aWxkZXIoKSkKKyAgICAgIC5UeXBlKCkuRW5k
KCkKKyAgICAgIC5GdW5jdGlvbigpLkVuZCgpCisgICAgICAuRXhwb3J0KCkKKyAgICAgICAgICAu
RnVuY3Rpb24oInRibF9zaXplIikKKyAgICAgIC5FbmQoKQorICAgICAgLkNvZGUoKQorICAgICAg
ICAuRnVuY3Rpb24oInRibF9zaXplIiwgeyBwYXJhbXM6IFtdLCByZXQ6ICJpMzIiIH0pCisgICAg
ICAgICAgLlRhYmxlU2l6ZSgwKQorICAgICAgICAuRW5kKCkKKyAgICAgIC5FbmQoKS5XZWJBc3Nl
bWJseSgpLmdldCgpKSwgRXJyb3IsICJXZWJBc3NlbWJseS5Nb2R1bGUgZG9lc24ndCB2YWxpZGF0
ZTogdGFibGUgaW5kZXggMCBpcyBpbnZhbGlkLCBsaW1pdCBpcyAwLCBpbiBmdW5jdGlvbiBhdCBp
bmRleCAwIChldmFsdWF0aW5nICduZXcgV2ViQXNzZW1ibHkuTW9kdWxlJykiKQorCit7CisgICAg
Y29uc3QgJDEgPSBuZXcgV2ViQXNzZW1ibHkuSW5zdGFuY2UobmV3IFdlYkFzc2VtYmx5Lk1vZHVs
ZSgobmV3IEJ1aWxkZXIoKSkKKyAgICAgICAgICAuVHlwZSgpLkVuZCgpCisgICAgICAgICAgLkZ1
bmN0aW9uKCkuRW5kKCkKKyAgICAgICAgICAuVGFibGUoKQorICAgICAgICAgICAgICAgIC5UYWJs
ZSh7aW5pdGlhbDogMCwgbWF4aW11bTogMCwgZWxlbWVudDogImFueXJlZiJ9KQorICAgICAgICAg
ICAgICAgIC5UYWJsZSh7aW5pdGlhbDogMjAsIG1heGltdW06IDMwLCBlbGVtZW50OiAiYW55cmVm
In0pCisgICAgICAgICAgLkVuZCgpCisgICAgICAgICAgLkV4cG9ydCgpCisgICAgICAgICAgICAg
IC5GdW5jdGlvbigidGJsX3NpemUiKQorICAgICAgICAgICAgICAuRnVuY3Rpb24oInRibF9ncm93
IikKKyAgICAgICAgICAgICAgLlRhYmxlKCJ0YmwiLCAxKQorICAgICAgICAgIC5FbmQoKQorICAg
ICAgICAgIC5Db2RlKCkKKyAgICAgICAgICAgIC5GdW5jdGlvbigidGJsX3NpemUiLCB7IHBhcmFt
czogW10sIHJldDogImkzMiIgfSkKKyAgICAgICAgICAgICAgLlRhYmxlU2l6ZSgxKQorICAgICAg
ICAgICAgLkVuZCgpCisgICAgICAgICAgICAuRnVuY3Rpb24oInRibF9ncm93IiwgeyBwYXJhbXM6
IFsiYW55cmVmIiwgImkzMiJdLCByZXQ6ICJpMzIiIH0pCisgICAgICAgICAgICAgICAgLkdldExv
Y2FsKDApCisgICAgICAgICAgICAgICAgLkdldExvY2FsKDEpCisgICAgICAgICAgICAgICAgLlRh
YmxlR3JvdygxKQorICAgICAgICAgICAgLkVuZCgpCisgICAgICAgICAgLkVuZCgpLldlYkFzc2Vt
Ymx5KCkuZ2V0KCkpKTsKKyAgICBmdWxsR0MoKQorCisgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMu
dGJsX3NpemUoKSwgMjApCisgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJsX2dyb3coImhpIiwg
NSksIDIwKQorICAgIGFzc2VydC5lcSgkMS5leHBvcnRzLnRibF9zaXplKCksIDI1KQorICAgIGFz
c2VydC5lcSgkMS5leHBvcnRzLnRibC5nZXQoMCksIG51bGwpCisgICAgYXNzZXJ0LmVxKCQxLmV4
cG9ydHMudGJsLmdldCgyNCksICJoaSIpCisKKyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50Ymxf
Z3JvdyhudWxsLCA1KSwgMjUpCisgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJsLmdldCgyNCks
ICJoaSIpCisgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJsLmdldCgyNSksIG51bGwpCisgICAg
YXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJsX3NpemUoKSwgMzApCisgICAgYXNzZXJ0LmVxKCQxLmV4
cG9ydHMudGJsX2dyb3cobnVsbCwgMCksIC0xKQorICAgIGFzc2VydC5lcSgkMS5leHBvcnRzLnRi
bF9ncm93KG51bGwsIDUpLCAtMSkKKyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50YmxfZ3Jvdyhu
dWxsLCAwKSwgLTEpCit9CisKK2Fzc2VydC50aHJvd3MoKCkgPT4gbmV3IFdlYkFzc2VtYmx5Lk1v
ZHVsZSgobmV3IEJ1aWxkZXIoKSkKKyAgICAgIC5UeXBlKCkuRW5kKCkKKyAgICAgIC5GdW5jdGlv
bigpLkVuZCgpCisgICAgICAuQ29kZSgpCisgICAgICAgIC5GdW5jdGlvbigidGJsX2dyb3ciLCB7
IHBhcmFtczogWyJhbnlyZWYiLCAiaTMyIl0sIHJldDogImkzMiIgfSkKKyAgICAgICAgICAgIC5H
ZXRMb2NhbCgwKQorICAgICAgICAgICAgLkdldExvY2FsKDEpCisgICAgICAgICAgICAuVGFibGVH
cm93KDApCisgICAgICAgIC5FbmQoKQorICAgICAgLkVuZCgpLldlYkFzc2VtYmx5KCkuZ2V0KCkp
LCBFcnJvciwgIldlYkFzc2VtYmx5Lk1vZHVsZSBkb2Vzbid0IHZhbGlkYXRlOiB0YWJsZSBpbmRl
eCAwIGlzIGludmFsaWQsIGxpbWl0IGlzIDAsIGluIGZ1bmN0aW9uIGF0IGluZGV4IDAgKGV2YWx1
YXRpbmcgJ25ldyBXZWJBc3NlbWJseS5Nb2R1bGUnKSIpCisKK2Fzc2VydC50aHJvd3MoKCkgPT4g
bmV3IFdlYkFzc2VtYmx5Lk1vZHVsZSgobmV3IEJ1aWxkZXIoKSkKKyAgICAgIC5UeXBlKCkuRW5k
KCkKKyAgICAgIC5GdW5jdGlvbigpLkVuZCgpCisgICAgICAuVGFibGUoKQorICAgICAgICAgICAg
LlRhYmxlKHtpbml0aWFsOiAyMCwgbWF4aW11bTogMzAsIGVsZW1lbnQ6ICJhbnlyZWYifSkKKyAg
ICAgIC5FbmQoKQorICAgICAgLkNvZGUoKQorICAgICAgICAuRnVuY3Rpb24oInRibF9ncm93Iiwg
eyBwYXJhbXM6IFsiYW55cmVmIiwgImkzMiJdLCByZXQ6ICJpMzIiIH0pCisgICAgICAgICAgICAu
R2V0TG9jYWwoMCkKKyAgICAgICAgICAgIC5UYWJsZUdyb3coMCkKKyAgICAgICAgLkVuZCgpCisg
ICAgICAuRW5kKCkuV2ViQXNzZW1ibHkoKS5nZXQoKSksIEVycm9yLCAiV2ViQXNzZW1ibHkuTW9k
dWxlIGRvZXNuJ3QgcGFyc2UgYXQgYnl0ZSA2OiBjYW4ndCBwb3AgZW1wdHkgc3RhY2sgaW4gdGFi
bGUuZ3JvdywgaW4gZnVuY3Rpb24gYXQgaW5kZXggMCAoZXZhbHVhdGluZyAnbmV3IFdlYkFzc2Vt
Ymx5Lk1vZHVsZScpIikKKworYXNzZXJ0LnRocm93cygoKSA9PiBuZXcgV2ViQXNzZW1ibHkuTW9k
dWxlKChuZXcgQnVpbGRlcigpKQorICAgICAgLlR5cGUoKS5FbmQoKQorICAgICAgLkZ1bmN0aW9u
KCkuRW5kKCkKKyAgICAgIC5UYWJsZSgpCisgICAgICAgICAgICAuVGFibGUoe2luaXRpYWw6IDIw
LCBtYXhpbXVtOiAzMCwgZWxlbWVudDogImFueXJlZiJ9KQorICAgICAgLkVuZCgpCisgICAgICAu
Q29kZSgpCisgICAgICAgIC5GdW5jdGlvbigidGJsX2dyb3ciLCB7IHBhcmFtczogWyJpMzIiLCAi
aTMyIl0sIHJldDogImkzMiIgfSkKKyAgICAgICAgICAgIC5HZXRMb2NhbCgwKQorICAgICAgICAg
ICAgLkdldExvY2FsKDEpCisgICAgICAgICAgICAuVGFibGVHcm93KDApCisgICAgICAgIC5FbmQo
KQorICAgICAgLkVuZCgpLldlYkFzc2VtYmx5KCkuZ2V0KCkpLCBFcnJvciwgIldlYkFzc2VtYmx5
Lk1vZHVsZSBkb2Vzbid0IHZhbGlkYXRlOiB0YWJsZS5ncm93IGV4cGVjdHMgZmlsbCB2YWx1ZSBv
ZiB0eXBlIEFueXJlZiBnb3QgSTMyLCBpbiBmdW5jdGlvbiBhdCBpbmRleCAwIChldmFsdWF0aW5n
ICduZXcgV2ViQXNzZW1ibHkuTW9kdWxlJykiKQorCit7CisgICAgY29uc3QgJDEgPSBuZXcgV2Vi
QXNzZW1ibHkuSW5zdGFuY2UobmV3IFdlYkFzc2VtYmx5Lk1vZHVsZSgobmV3IEJ1aWxkZXIoKSkK
KyAgICAgICAgICAuVHlwZSgpLkVuZCgpCisgICAgICAgICAgLkZ1bmN0aW9uKCkuRW5kKCkKKyAg
ICAgICAgICAuVGFibGUoKQorICAgICAgICAgICAgICAgIC5UYWJsZSh7aW5pdGlhbDogMjAsIG1h
eGltdW06IDMwLCBlbGVtZW50OiAiYW55cmVmIn0pCisgICAgICAgICAgLkVuZCgpCisgICAgICAg
ICAgLkV4cG9ydCgpCisgICAgICAgICAgICAgIC5GdW5jdGlvbigidGJsX3NpemUiKQorICAgICAg
ICAgICAgICAuRnVuY3Rpb24oInRibF9maWxsIikKKyAgICAgICAgICAgICAgLlRhYmxlKCJ0Ymwi
LCAwKQorICAgICAgICAgIC5FbmQoKQorICAgICAgICAgIC5Db2RlKCkKKyAgICAgICAgICAgIC5G
dW5jdGlvbigidGJsX3NpemUiLCB7IHBhcmFtczogW10sIHJldDogImkzMiIgfSkKKyAgICAgICAg
ICAgICAgLlRhYmxlU2l6ZSgwKQorICAgICAgICAgICAgLkVuZCgpCisgICAgICAgICAgICAuRnVu
Y3Rpb24oInRibF9maWxsIiwgeyBwYXJhbXM6IFsiaTMyIiwgImFueXJlZiIsICJpMzIiXSwgcmV0
OiAidm9pZCIgfSkKKyAgICAgICAgICAgICAgICAuR2V0TG9jYWwoMCkKKyAgICAgICAgICAgICAg
ICAuR2V0TG9jYWwoMSkKKyAgICAgICAgICAgICAgICAuR2V0TG9jYWwoMikKKyAgICAgICAgICAg
ICAgICAuVGFibGVGaWxsKDApCisgICAgICAgICAgICAuRW5kKCkKKyAgICAgICAgICAuRW5kKCku
V2ViQXNzZW1ibHkoKS5nZXQoKSkpOworICAgIGZ1bGxHQygpCisKKyAgICBhc3NlcnQuZXEoJDEu
ZXhwb3J0cy50Ymxfc2l6ZSgpLCAyMCkKKyAgICAkMS5leHBvcnRzLnRibF9maWxsKDEsImhpIiwz
KQorICAgIGFzc2VydC5lcSgkMS5leHBvcnRzLnRibC5nZXQoMCksIG51bGwpCisgICAgYXNzZXJ0
LmVxKCQxLmV4cG9ydHMudGJsLmdldCgxKSwgImhpIikKKyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0
cy50YmwuZ2V0KDIpLCAiaGkiKQorICAgIGFzc2VydC5lcSgkMS5leHBvcnRzLnRibC5nZXQoMyks
ICJoaSIpCisgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJsLmdldCg0KSwgbnVsbCkKKworICAg
ICQxLmV4cG9ydHMudGJsX2ZpbGwoMCxudWxsLDEpCisgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMu
dGJsLmdldCgwKSwgbnVsbCkKKyAgICAkMS5leHBvcnRzLnRibF9maWxsKDAsbnVsbCwwKQorCisg
ICAgJDEuZXhwb3J0cy50YmxfZmlsbCgxOSwidGVzdCIsMSkKKyAgICBhc3NlcnQuZXEoJDEuZXhw
b3J0cy50YmwuZ2V0KDE5KSwgInRlc3QiKQorICAgIGFzc2VydC5lcSgkMS5leHBvcnRzLnRibC5n
ZXQoMTgpLCBudWxsKQorCisgICAgYXNzZXJ0LnRocm93cygoKSA9PiAkMS5leHBvcnRzLnRibF9m
aWxsKDIwLG51bGwsMCksIEVycm9yLCAiT3V0IG9mIGJvdW5kcyB0YWJsZSBhY2Nlc3MgKGV2YWx1
YXRpbmcgJ2Z1bmMoLi4uYXJncyknKSIpCisgICAgYXNzZXJ0LnRocm93cygoKSA9PiAkMS5leHBv
cnRzLnRibF9maWxsKDIwLG51bGwsMSksIEVycm9yLCAiT3V0IG9mIGJvdW5kcyB0YWJsZSBhY2Nl
c3MgKGV2YWx1YXRpbmcgJ2Z1bmMoLi4uYXJncyknKSIpCisgICAgYXNzZXJ0LnRocm93cygoKSA9
PiAkMS5leHBvcnRzLnRibF9maWxsKDE5LG51bGwsMiksIEVycm9yLCAiT3V0IG9mIGJvdW5kcyB0
YWJsZSBhY2Nlc3MgKGV2YWx1YXRpbmcgJ2Z1bmMoLi4uYXJncyknKSIpCisgICAgYXNzZXJ0LnRo
cm93cygoKSA9PiAkMS5leHBvcnRzLnRibF9maWxsKDQyOTQ5NjcyOTUsbnVsbCwxKSwgRXJyb3Is
ICJPdXQgb2YgYm91bmRzIHRhYmxlIGFjY2VzcyAoZXZhbHVhdGluZyAnZnVuYyguLi5hcmdzKScp
IikKK30KKworYXNzZXJ0LnRocm93cygoKSA9PiBuZXcgV2ViQXNzZW1ibHkuTW9kdWxlKChuZXcg
QnVpbGRlcigpKQorICAgICAgLlR5cGUoKS5FbmQoKQorICAgICAgLkZ1bmN0aW9uKCkuRW5kKCkK
KyAgICAgIC5Db2RlKCkKKyAgICAgICAgLkZ1bmN0aW9uKCJ0YmxfZ3JvdyIsIHsgcGFyYW1zOiBb
ImFueXJlZiIsICJpMzIiXSwgcmV0OiAidm9pZCIgfSkKKyAgICAgICAgICAgIC5HZXRMb2NhbCgx
KQorICAgICAgICAgICAgLkdldExvY2FsKDApCisgICAgICAgICAgICAuR2V0TG9jYWwoMSkKKyAg
ICAgICAgICAgIC5UYWJsZUZpbGwoMCkKKyAgICAgICAgLkVuZCgpCisgICAgICAuRW5kKCkuV2Vi
QXNzZW1ibHkoKS5nZXQoKSksIEVycm9yLCAiV2ViQXNzZW1ibHkuTW9kdWxlIGRvZXNuJ3QgdmFs
aWRhdGU6IHRhYmxlIGluZGV4IDAgaXMgaW52YWxpZCwgbGltaXQgaXMgMCwgaW4gZnVuY3Rpb24g
YXQgaW5kZXggMCAoZXZhbHVhdGluZyAnbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZScpIikKKworYXNz
ZXJ0LnRocm93cygoKSA9PiBuZXcgV2ViQXNzZW1ibHkuTW9kdWxlKChuZXcgQnVpbGRlcigpKQor
ICAgICAgLlR5cGUoKS5FbmQoKQorICAgICAgLkZ1bmN0aW9uKCkuRW5kKCkKKyAgICAgIC5UYWJs
ZSgpCisgICAgICAgICAgICAuVGFibGUoe2luaXRpYWw6IDIwLCBtYXhpbXVtOiAzMCwgZWxlbWVu
dDogImFueXJlZiJ9KQorICAgICAgLkVuZCgpCisgICAgICAuQ29kZSgpCisgICAgICAgIC5GdW5j
dGlvbigidGJsX2dyb3ciLCB7IHBhcmFtczogWyJhbnlyZWYiLCAiaTMyIl0sIHJldDogImkzMiIg
fSkKKyAgICAgICAgICAgIC5HZXRMb2NhbCgwKQorICAgICAgICAgICAgLlRhYmxlRmlsbCgwKQor
ICAgICAgICAuRW5kKCkKKyAgICAgIC5FbmQoKS5XZWJBc3NlbWJseSgpLmdldCgpKSwgRXJyb3Is
ICJXZWJBc3NlbWJseS5Nb2R1bGUgZG9lc24ndCBwYXJzZSBhdCBieXRlIDY6IGNhbid0IHBvcCBl
bXB0eSBzdGFjayBpbiB0YWJsZS5maWxsLCBpbiBmdW5jdGlvbiBhdCBpbmRleCAwIChldmFsdWF0
aW5nICduZXcgV2ViQXNzZW1ibHkuTW9kdWxlJykiKQorCit7CisgICAgY29uc3QgJDEgPSBuZXcg
V2ViQXNzZW1ibHkuSW5zdGFuY2UobmV3IFdlYkFzc2VtYmx5Lk1vZHVsZSgobmV3IEJ1aWxkZXIo
KSkKKyAgICAgICAgICAuVHlwZSgpLkVuZCgpCisgICAgICAgICAgLkZ1bmN0aW9uKCkuRW5kKCkK
KyAgICAgICAgICAuVGFibGUoKQorICAgICAgICAgICAgICAgIC5UYWJsZSh7aW5pdGlhbDogMCwg
bWF4aW11bTogMCwgZWxlbWVudDogImFueWZ1bmMifSkKKyAgICAgICAgICAgICAgICAuVGFibGUo
e2luaXRpYWw6IDIwLCBtYXhpbXVtOiAzMCwgZWxlbWVudDogImFueWZ1bmMifSkKKyAgICAgICAg
ICAuRW5kKCkKKyAgICAgICAgICAuRXhwb3J0KCkKKyAgICAgICAgICAgICAgLkZ1bmN0aW9uKCJ0
Ymxfc2l6ZSIpCisgICAgICAgICAgICAgIC5GdW5jdGlvbigidGJsX2dyb3ciKQorICAgICAgICAg
ICAgICAuVGFibGUoInRibCIsIDEpCisgICAgICAgICAgLkVuZCgpCisgICAgICAgICAgLkNvZGUo
KQorICAgICAgICAgICAgLkZ1bmN0aW9uKCJ0Ymxfc2l6ZSIsIHsgcGFyYW1zOiBbXSwgcmV0OiAi
aTMyIiB9KQorICAgICAgICAgICAgICAuVGFibGVTaXplKDEpCisgICAgICAgICAgICAuRW5kKCkK
KyAgICAgICAgICAgIC5GdW5jdGlvbigidGJsX2dyb3ciLCB7IHBhcmFtczogWyJpMzIiXSwgcmV0
OiAiaTMyIiB9KQorICAgICAgICAgICAgICAgIC5JMzJDb25zdCgwKQorICAgICAgICAgICAgICAg
IC5UYWJsZUdldCgxKQorICAgICAgICAgICAgICAgIC5HZXRMb2NhbCgwKQorICAgICAgICAgICAg
ICAgIC5UYWJsZUdyb3coMSkKKyAgICAgICAgICAgIC5FbmQoKQorICAgICAgICAgIC5FbmQoKS5X
ZWJBc3NlbWJseSgpLmdldCgpKSk7CisgICAgZnVsbEdDKCkKKworICAgICQxLmV4cG9ydHMudGJs
LnNldCgwLCAkMS5leHBvcnRzLnRibF9zaXplKTsKKyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50
Ymxfc2l6ZSgpLCAyMCkKKyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50YmxfZ3Jvdyg1KSwgMjAp
CisgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJsX3NpemUoKSwgMjUpCisgICAgYXNzZXJ0LmVx
KCQxLmV4cG9ydHMudGJsLmdldCgwKSwgJDEuZXhwb3J0cy50Ymxfc2l6ZSkKKyAgICBhc3NlcnQu
ZXEoJDEuZXhwb3J0cy50YmwuZ2V0KDEpLCBudWxsKQorICAgIGFzc2VydC5lcSgkMS5leHBvcnRz
LnRibC5nZXQoMjQpLCAkMS5leHBvcnRzLnRibF9zaXplKQorfQpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy93YXNtL3dhc20uanNvbiBiL0pTVGVzdHMvd2FzbS93YXNtLmpzb24KaW5kZXggNDUzMDhmYmJk
NTc1MzJmNWViYTEzOTU2Y2FhY2QwNTU5MzRhY2JhZi4uNGE0NjkwNGY5NzFiY2VjNDJjMzA2YTI1
ZmM5MzA3ZDMwYjkyYzkwZiAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL3dhc20uanNvbgorKysg
Yi9KU1Rlc3RzL3dhc20vd2FzbS5qc29uCkBAIC02OSw2ICs2OSw5IEBACiAgICAgICAgICJzZXRf
Z2xvYmFsIjogICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIsICAgICJ2YWx1ZSI6ICAz
NiwgInJldHVybiI6IFtdLCAgICAgICAgICAgInBhcmFtZXRlciI6IFsiYW55Il0sICAgICAgICAg
ICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAiZ2xvYmFsX2luZGV4IiwgICAidHlwZSI6
ICJ2YXJ1aW50MzIifV0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAid3JpdGUgYSBnbG9iYWwgdmFyaWFibGUiIH0sCiAgICAgICAgICJ0
YWJsZS5nZXQiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIsICAgICJ2YWx1ZSI6
ICAzNywgInJldHVybiI6IFsiYW55cmVmIl0sICAgInBhcmFtZXRlciI6IFsiaTMyIl0sICAgICAg
ICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAidGFibGVfaW5kZXgiLCAgICAidHlw
ZSI6ICJ2YXJ1aW50MzIifV0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiZ2V0IGEgdGFibGUgdmFsdWUiIH0sCiAgICAgICAgICJ0YWJs
ZS5zZXQiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIsICAgICJ2YWx1ZSI6ICAz
OCwgInJldHVybiI6IFtdLCAgICAgICAgICAgInBhcmFtZXRlciI6IFsiaTMyIiwgImFueXJlZiJd
LCAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAidGFibGVfaW5kZXgiLCAgICAidHlwZSI6
ICJ2YXJ1aW50MzIifV0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAic2V0IGEgdGFibGUgdmFsdWUiIH0sCisgICAgICAgICJ0YWJsZS5z
aXplIjogICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiZXh0dGFibGUiLCAgICJ2YWx1ZSI6ICAyNTIs
ICJyZXR1cm4iOiBbImkzMiJdLCAgICAgInBhcmFtZXRlciI6IFtdLCAgICAgICAgICAgICAgICAg
ICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAiZ2xvYmFsX2luZGV4IiwgICAidHlwZSI6ICJ2
YXJ1aW50MzIifV0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiZ2V0IHRoZSBzaXplIG9mIGEgdGFibGUiLCAiZXh0ZW5kZWRPcCI6IDE1
IH0sCisgICAgICAgICJ0YWJsZS5ncm93IjogICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiZXh0dGFi
bGUiLCAgICJ2YWx1ZSI6ICAyNTIsICJyZXR1cm4iOiBbImkzMiJdLCAgICAgInBhcmFtZXRlciI6
IFsiYW55cmVmIiwgImkzMiJdLCAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAiZ2xvYmFs
X2luZGV4IiwgICAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiZ3JvdyBhIHRhYmxlIGJ5IHRoZSBn
aXZlbiBkZWx0YSBhbmQgcmV0dXJuIHRoZSBwcmV2aW91cyBzaXplLCBvciAtMSBpZiBlbm91Z2gg
c3BhY2UgY2Fubm90IGJlIGFsbG9jYXRlZCIsICJleHRlbmRlZE9wIjogMTYgfSwKKyAgICAgICAg
InRhYmxlLmZpbGwiOiAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJleHR0YWJsZSIsICAgInZhbHVl
IjogIDI1MiwgInJldHVybiI6IFsiaTMyIl0sICAgICAicGFyYW1ldGVyIjogWyJpMzIiLCAiYW55
cmVmIiwgImkzMiJdLCAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJnbG9iYWxfaW5kZXgiLCAgICJ0
eXBlIjogInZhcnVpbnQzMiJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJmaWxsIGVudHJpZXMgW2ksaStuKSB3aXRoIHRoZSBnaXZl
biB2YWx1ZSIsICJleHRlbmRlZE9wIjogMTcgfSwKICAgICAgICAgImNhbGwiOiAgICAgICAgICAg
ICAgICB7ICJjYXRlZ29yeSI6ICJjYWxsIiwgICAgICAgInZhbHVlIjogIDE2LCAicmV0dXJuIjog
WyJjYWxsIl0sICAgICAicGFyYW1ldGVyIjogWyJjYWxsIl0sICAgICAgICAgICAgICAgICAiaW1t
ZWRpYXRlIjogW3sibmFtZSI6ICJmdW5jdGlvbl9pbmRleCIsICJ0eXBlIjogInZhcnVpbnQzMiJ9
XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlv
biI6ICJjYWxsIGEgZnVuY3Rpb24gYnkgaXRzIGluZGV4IiB9LAogICAgICAgICAiY2FsbF9pbmRp
cmVjdCI6ICAgICAgIHsgImNhdGVnb3J5IjogImNhbGwiLCAgICAgICAidmFsdWUiOiAgMTcsICJy
ZXR1cm4iOiBbImNhbGwiXSwgICAgICJwYXJhbWV0ZXIiOiBbImNhbGwiXSwgICAgICAgICAgICAg
ICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogInR5cGVfaW5kZXgiLCAgICAgInR5cGUiOiAidmFy
dWludDMyIn0sIHsibmFtZSI6ICJ0YWJsZV9pbmRleCIsInR5cGUiOiAidmFydWludDMyIn1dLCJk
ZXNjcmlwdGlvbiI6ICJjYWxsIGEgZnVuY3Rpb24gaW5kaXJlY3Qgd2l0aCBhbiBleHBlY3RlZCBz
aWduYXR1cmUiIH0sCiAgICAgICAgICJpMzIubG9hZDhfcyI6ICAgICAgICAgeyAiY2F0ZWdvcnki
OiAibWVtb3J5IiwgICAgICJ2YWx1ZSI6ICA0NCwgInJldHVybiI6IFsiaTMyIl0sICAgICAgInBh
cmFtZXRlciI6IFsiYWRkciJdLCAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUi
OiAiZmxhZ3MiLCAgICAgICAgICAidHlwZSI6ICJ2YXJ1aW50MzIifSwgeyJuYW1lIjogIm9mZnNl
dCIsICAgInR5cGUiOiAidmFydWludDMyIn1dLCAiZGVzY3JpcHRpb24iOiAibG9hZCBmcm9tIG1l
bW9yeSIgfSwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372398</attachid>
            <date>2019-06-18 15:58:11 -0700</date>
            <delta_ts>2019-06-18 18:18:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198761-20190618155810.patch</filename>
            <type>text/plain</type>
            <size>38026</size>
            <attacher name="Justin Michaud">justin_michaud</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2NTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZjRkY2IyNGVhN2U0MDc3NmEzZTE2N2Y0NTBiZWZhMmFmMDlhNWM3Li41OWQ2ODc0YzEzN2ExOTc2
ZmQzYzExNGNiODNiYzI2MGExYzI2MTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxOS0wNi0xNCAgSnVzdGluIE1pY2hhdWQgIDxqdXN0aW5fbWljaGF1ZEBh
cHBsZS5jb20+CisKKyAgICAgICAgW1dBU00tUmVmZXJlbmNlc10gQWRkIHN1cHBvcnQgZm9yIFRh
YmxlLnNpemUsIGdyb3cgYW5kIGZpbGwgaW5zdHJ1Y3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg3NjEKKworICAgICAgICBSZXZpZXdlZCBi
eSBZdXN1a2UgU3V6dWtpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBUYWJsZS5zaXplLCBn
cm93IGFuZCBmaWxsIGluc3RydWN0aW9ucy4gVGhpcyBhbHNvIHJlcXVpcmVkCisgICAgICAgIGFk
ZGluZyBzdXBwb3J0IGZvciB0d28tYnl0ZSBvcGNvZGVzIHRvIHRoZSBvcHMgZ2VuZXJhdG9yLgor
CisgICAgICAgICogd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpX
YXNtOjpBaXJJUkdlbmVyYXRvcjo6Z0FueXJlZik6CisgICAgICAgIChKU0M6Oldhc206OkFpcklS
R2VuZXJhdG9yOjp0bXBGb3JUeXBlKToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0
b3I6OmFkZFRhYmxlU2l6ZSk6CisgICAgICAgIChKU0M6Oldhc206OkFpcklSR2VuZXJhdG9yOjph
ZGRUYWJsZUdyb3cpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6YWRkVGFi
bGVGaWxsKToKKyAgICAgICAgKiB3YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcDoKKyAgICAgICAg
KEpTQzo6V2FzbTo6QjNJUkdlbmVyYXRvcjo6YWRkVGFibGVTaXplKToKKyAgICAgICAgKEpTQzo6
V2FzbTo6QjNJUkdlbmVyYXRvcjo6YWRkVGFibGVHcm93KToKKyAgICAgICAgKEpTQzo6V2FzbTo6
QjNJUkdlbmVyYXRvcjo6YWRkVGFibGVGaWxsKToKKyAgICAgICAgKiB3YXNtL1dhc21FeGNlcHRp
b25UeXBlLmg6CisgICAgICAgICogd2FzbS9XYXNtRm9ybWF0Lmg6CisgICAgICAgIChKU0M6Oldh
c206OlRhYmxlSW5mb3JtYXRpb246Ondhc21UeXBlIGNvbnN0KToKKyAgICAgICAgKiB3YXNtL1dh
c21GdW5jdGlvblBhcnNlci5oOgorICAgICAgICAoSlNDOjpXYXNtOjpGdW5jdGlvblBhcnNlcjxD
b250ZXh0Pjo6cGFyc2VFeHByZXNzaW9uKToKKyAgICAgICAgKEpTQzo6V2FzbTo6RnVuY3Rpb25Q
YXJzZXI8Q29udGV4dD46OnBhcnNlVW5yZWFjaGFibGVFeHByZXNzaW9uKToKKyAgICAgICAgKiB3
YXNtL1dhc21JbnN0YW5jZS5jcHA6CisgICAgICAgIChKU0M6Oldhc206OmRvV2FzbVRhYmxlR3Jv
dyk6CisgICAgICAgIChKU0M6Oldhc206OmRvV2FzbVRhYmxlRmlsbCk6CisgICAgICAgICogd2Fz
bS9XYXNtSW5zdGFuY2UuaDoKKyAgICAgICAgKiB3YXNtL1dhc21UYWJsZS5jcHA6CisgICAgICAg
IChKU0M6Oldhc206OlRhYmxlOjpncm93KToKKyAgICAgICAgKiB3YXNtL1dhc21WYWxpZGF0ZS5j
cHA6CisgICAgICAgIChKU0M6Oldhc206OlZhbGlkYXRlOjphZGRUYWJsZVNpemUpOgorICAgICAg
ICAoSlNDOjpXYXNtOjpWYWxpZGF0ZTo6YWRkVGFibGVHcm93KToKKyAgICAgICAgKEpTQzo6V2Fz
bTo6VmFsaWRhdGU6OmFkZFRhYmxlRmlsbCk6CisgICAgICAgICogd2FzbS9nZW5lcmF0ZVdhc21P
cHNIZWFkZXIucHk6CisgICAgICAgIChvcGNvZGVNYWNyb2l6ZXIpOgorICAgICAgICAoRXh0VGFi
bGVPcFR5cGUpOgorICAgICAgICAqIHdhc20vd2FzbS5qc29uOgorCiAyMDE5LTA2LTE4ICBLZWl0
aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IGZpeCBzaWduYXR1cmUgb2YgY3VycmVudFdlYWtSZWZWZXJzaW9uIHRvIHJldHVybiBhbiB1aW50
cHRyX3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJH
ZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJh
dG9yLmNwcAppbmRleCBlZmY3ZTMyMjdiZjlkZjI0YzIxNjIzZWRmODkzZjVjOTMzOGQ3N2IwLi40
N2I0ZWM2YjQ3NzA4NjA5YTc0ZGNhMzVmYjJhYzNkYWJiMWFjMGYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAKQEAgLTIzOSw2ICsy
MzksOSBAQCBwdWJsaWM6CiAgICAgLy8gVGFibGVzCiAgICAgUGFydGlhbFJlc3VsdCBXQVJOX1VO
VVNFRF9SRVRVUk4gYWRkVGFibGVHZXQodW5zaWduZWQsIEV4cHJlc3Npb25UeXBlJiBpbmRleCwg
RXhwcmVzc2lvblR5cGUmIHJlc3VsdCk7CiAgICAgUGFydGlhbFJlc3VsdCBXQVJOX1VOVVNFRF9S
RVRVUk4gYWRkVGFibGVTZXQodW5zaWduZWQsIEV4cHJlc3Npb25UeXBlJiBpbmRleCwgRXhwcmVz
c2lvblR5cGUmIHZhbHVlKTsKKyAgICBQYXJ0aWFsUmVzdWx0IFdBUk5fVU5VU0VEX1JFVFVSTiBh
ZGRUYWJsZVNpemUodW5zaWduZWQsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpOworICAgIFBhcnRp
YWxSZXN1bHQgV0FSTl9VTlVTRURfUkVUVVJOIGFkZFRhYmxlR3Jvdyh1bnNpZ25lZCwgRXhwcmVz
c2lvblR5cGUmIGZpbGwsIEV4cHJlc3Npb25UeXBlJiBkZWx0YSwgRXhwcmVzc2lvblR5cGUmIHJl
c3VsdCk7CisgICAgUGFydGlhbFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkVGFibGVGaWxs
KHVuc2lnbmVkLCBFeHByZXNzaW9uVHlwZSYgb2Zmc2V0LCBFeHByZXNzaW9uVHlwZSYgZmlsbCwg
RXhwcmVzc2lvblR5cGUmIGNvdW50KTsKIAogICAgIC8vIExvY2FscwogICAgIFBhcnRpYWxSZXN1
bHQgV0FSTl9VTlVTRURfUkVUVVJOIGdldExvY2FsKHVpbnQzMl90IGluZGV4LCBFeHByZXNzaW9u
VHlwZSYgcmVzdWx0KTsKQEAgLTM2MSw2ICszNjQsOCBAQCBwcml2YXRlOgogCiAgICAgVHlwZWRU
bXAgZzMyKCkgeyByZXR1cm4geyBuZXdUbXAoQjM6OkdQKSwgVHlwZTo6STMyIH07IH0KICAgICBU
eXBlZFRtcCBnNjQoKSB7IHJldHVybiB7IG5ld1RtcChCMzo6R1ApLCBUeXBlOjpJNjQgfTsgfQor
ICAgIFR5cGVkVG1wIGdBbnlyZWYoKSB7IHJldHVybiB7IG5ld1RtcChCMzo6R1ApLCBUeXBlOjpB
bnlyZWYgfTsgfQorICAgIFR5cGVkVG1wIGdBbnlmdW5jKCkgeyByZXR1cm4geyBuZXdUbXAoQjM6
OkdQKSwgVHlwZTo6QW55ZnVuYyB9OyB9CiAgICAgVHlwZWRUbXAgZjMyKCkgeyByZXR1cm4geyBu
ZXdUbXAoQjM6OkZQKSwgVHlwZTo6RjMyIH07IH0KICAgICBUeXBlZFRtcCBmNjQoKSB7IHJldHVy
biB7IG5ld1RtcChCMzo6RlApLCBUeXBlOjpGNjQgfTsgfQogCkBAIC0zNzAsOSArMzc1LDExIEBA
IHByaXZhdGU6CiAgICAgICAgIGNhc2UgVHlwZTo6STMyOgogICAgICAgICAgICAgcmV0dXJuIGcz
MigpOwogICAgICAgICBjYXNlIFR5cGU6Okk2NDoKLSAgICAgICAgY2FzZSBUeXBlOjpBbnlyZWY6
Ci0gICAgICAgIGNhc2UgVHlwZTo6QW55ZnVuYzoKICAgICAgICAgICAgIHJldHVybiBnNjQoKTsK
KyAgICAgICAgY2FzZSBUeXBlOjpBbnlmdW5jOgorICAgICAgICAgICAgcmV0dXJuIGdBbnlmdW5j
KCk7CisgICAgICAgIGNhc2UgVHlwZTo6QW55cmVmOgorICAgICAgICAgICAgcmV0dXJuIGdBbnly
ZWYoKTsKICAgICAgICAgY2FzZSBUeXBlOjpGMzI6CiAgICAgICAgICAgICByZXR1cm4gZjMyKCk7
CiAgICAgICAgIGNhc2UgVHlwZTo6RjY0OgpAQCAtNTA4LDYgKzUxNSw4IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICAgICAgcmVzdWx0VHlwZSA9IEIzOjpJbnQzMjsKICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIGNhc2UgVHlwZTo6STY0OgorICAgICAgICAgICAgY2FzZSBUeXBl
OjpBbnlyZWY6CisgICAgICAgICAgICBjYXNlIFR5cGU6OkFueWZ1bmM6CiAgICAgICAgICAgICAg
ICAgcmVzdWx0VHlwZSA9IEIzOjpJbnQ2NDsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIGNhc2UgVHlwZTo6RjMyOgpAQCAtOTc1LDcgKzk4NCw3IEBAIGF1dG8gQWlySVJHZW5l
cmF0b3I6OmFkZFRhYmxlR2V0KHVuc2lnbmVkIHRhYmxlSW5kZXgsIEV4cHJlc3Npb25UeXBlJiBp
bmRleCwgRXhwCiAgICAgLy8gRklYTUU6IEVtaXQgdGhpcyBpbmxpbmUgPGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg1MDY+LgogICAgIEFTU0VSVChpbmRleC50bXAo
KSk7CiAgICAgQVNTRVJUKGluZGV4LnR5cGUoKSA9PSBUeXBlOjpJMzIpOwotICAgIHJlc3VsdCA9
IHRtcEZvclR5cGUoVHlwZTo6QW55cmVmKTsKKyAgICByZXN1bHQgPSB0bXBGb3JUeXBlKG1faW5m
by50YWJsZXNbdGFibGVJbmRleF0ud2FzbVR5cGUoKSk7CiAKICAgICBlbWl0Q0NhbGwoJmdldFdh
c21UYWJsZUVsZW1lbnQsIHJlc3VsdCwgaW5zdGFuY2VWYWx1ZSgpLCBhZGRDb25zdGFudChUeXBl
OjpJMzIsIHRhYmxlSW5kZXgpLCBpbmRleCk7CiAgICAgZW1pdENoZWNrKFsmXSB7CkBAIC0xMDA2
LDYgKzEwMTUsNTQgQEAgYXV0byBBaXJJUkdlbmVyYXRvcjo6YWRkVGFibGVTZXQodW5zaWduZWQg
dGFibGVJbmRleCwgRXhwcmVzc2lvblR5cGUmIGluZGV4LCBFeHAKICAgICByZXR1cm4geyB9Owog
fQogCithdXRvIEFpcklSR2VuZXJhdG9yOjphZGRUYWJsZVNpemUodW5zaWduZWQgdGFibGVJbmRl
eCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkgLT4gUGFydGlhbFJlc3VsdAoreworICAgIC8vIEZJ
WE1FOiBFbWl0IHRoaXMgaW5saW5lIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk4NTA2Pi4KKyAgICByZXN1bHQgPSB0bXBGb3JUeXBlKFR5cGU6OkkzMik7CisKKyAg
ICBpbnQzMl90ICgqZG9TaXplKShJbnN0YW5jZSosIHVuc2lnbmVkKSA9IFtdIChJbnN0YW5jZSog
aW5zdGFuY2UsIHVuc2lnbmVkIHRhYmxlSW5kZXgpIC0+IGludDMyX3QgeworICAgICAgICByZXR1
cm4gaW5zdGFuY2UtPnRhYmxlKHRhYmxlSW5kZXgpLT5sZW5ndGgoKTsKKyAgICB9OworCisgICAg
ZW1pdENDYWxsKGRvU2l6ZSwgcmVzdWx0LCBpbnN0YW5jZVZhbHVlKCksIGFkZENvbnN0YW50KFR5
cGU6OkkzMiwgdGFibGVJbmRleCkpOworCisgICAgcmV0dXJuIHsgfTsKK30KKworYXV0byBBaXJJ
UkdlbmVyYXRvcjo6YWRkVGFibGVHcm93KHVuc2lnbmVkIHRhYmxlSW5kZXgsIEV4cHJlc3Npb25U
eXBlJiBmaWxsLCBFeHByZXNzaW9uVHlwZSYgZGVsdGEsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQp
IC0+IFBhcnRpYWxSZXN1bHQKK3sKKyAgICBBU1NFUlQoZmlsbC50bXAoKSk7CisgICAgQVNTRVJU
KGlzU3VidHlwZShmaWxsLnR5cGUoKSwgbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlw
ZSgpKSk7CisgICAgQVNTRVJUKGRlbHRhLnRtcCgpKTsKKyAgICBBU1NFUlQoZGVsdGEudHlwZSgp
ID09IFR5cGU6OkkzMik7CisgICAgcmVzdWx0ID0gdG1wRm9yVHlwZShUeXBlOjpJMzIpOworCisg
ICAgZW1pdENDYWxsKCZkb1dhc21UYWJsZUdyb3csIHJlc3VsdCwgaW5zdGFuY2VWYWx1ZSgpLCBh
ZGRDb25zdGFudChUeXBlOjpJMzIsIHRhYmxlSW5kZXgpLCBmaWxsLCBkZWx0YSk7CisKKyAgICBy
ZXR1cm4geyB9OworfQorCithdXRvIEFpcklSR2VuZXJhdG9yOjphZGRUYWJsZUZpbGwodW5zaWdu
ZWQgdGFibGVJbmRleCwgRXhwcmVzc2lvblR5cGUmIG9mZnNldCwgRXhwcmVzc2lvblR5cGUmIGZp
bGwsIEV4cHJlc3Npb25UeXBlJiBjb3VudCkgLT4gUGFydGlhbFJlc3VsdAoreworICAgIEFTU0VS
VChmaWxsLnRtcCgpKTsKKyAgICBBU1NFUlQoaXNTdWJ0eXBlKGZpbGwudHlwZSgpLCBtX2luZm8u
dGFibGVzW3RhYmxlSW5kZXhdLndhc21UeXBlKCkpKTsKKyAgICBBU1NFUlQob2Zmc2V0LnRtcCgp
KTsKKyAgICBBU1NFUlQob2Zmc2V0LnR5cGUoKSA9PSBUeXBlOjpJMzIpOworICAgIEFTU0VSVChj
b3VudC50bXAoKSk7CisgICAgQVNTRVJUKGNvdW50LnR5cGUoKSA9PSBUeXBlOjpJMzIpOworCisg
ICAgYXV0byByZXN1bHQgPSB0bXBGb3JUeXBlKFR5cGU6OkkzMik7CisgICAgZW1pdENDYWxsKCZk
b1dhc21UYWJsZUZpbGwsIHJlc3VsdCwgaW5zdGFuY2VWYWx1ZSgpLCBhZGRDb25zdGFudChUeXBl
OjpJMzIsIHRhYmxlSW5kZXgpLCBvZmZzZXQsIGZpbGwsIGNvdW50KTsKKworICAgIGVtaXRDaGVj
ayhbJl0geworICAgICAgICByZXR1cm4gSW5zdChCcmFuY2hUZXN0MzIsIG51bGxwdHIsIEFyZzo6
cmVzQ29uZChNYWNyb0Fzc2VtYmxlcjo6WmVybyksIHJlc3VsdCwgcmVzdWx0KTsKKyAgICB9LCBb
PV0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBCMzo6U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1z
JikgeworICAgICAgICB0aGlzLT5lbWl0VGhyb3dFeGNlcHRpb24oaml0LCBFeGNlcHRpb25UeXBl
OjpPdXRPZkJvdW5kc1RhYmxlQWNjZXNzKTsKKyAgICB9KTsKKworICAgIHJldHVybiB7IH07Cit9
CisKIGF1dG8gQWlySVJHZW5lcmF0b3I6OmdldExvY2FsKHVpbnQzMl90IGluZGV4LCBFeHByZXNz
aW9uVHlwZSYgcmVzdWx0KSAtPiBQYXJ0aWFsUmVzdWx0CiB7CiAgICAgQVNTRVJUKG1fbG9jYWxz
W2luZGV4XS50bXAoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtQjNJUkdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJ
UkdlbmVyYXRvci5jcHAKaW5kZXggMWViMjQ2NTJhZTRlZDZiMzI5MDcxOWY3ZWQ1MzM2OTJkNTEx
ZDJmNi4uOTk5NjdmZGM0YjY0M2ZjMzU2OTU1MjExYzUxMmQ2YTU3Zjk1YzVlNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcApAQCAtMTky
LDcgKzE5Miw5IEBAIHB1YmxpYzoKICAgICAvLyBUYWJsZXMKICAgICBQYXJ0aWFsUmVzdWx0IFdB
Uk5fVU5VU0VEX1JFVFVSTiBhZGRUYWJsZUdldCh1bnNpZ25lZCwgRXhwcmVzc2lvblR5cGUmIGlu
ZGV4LCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KTsKICAgICBQYXJ0aWFsUmVzdWx0IFdBUk5fVU5V
U0VEX1JFVFVSTiBhZGRUYWJsZVNldCh1bnNpZ25lZCwgRXhwcmVzc2lvblR5cGUmIGluZGV4LCBF
eHByZXNzaW9uVHlwZSYgdmFsdWUpOwotCisgICAgUGFydGlhbFJlc3VsdCBXQVJOX1VOVVNFRF9S
RVRVUk4gYWRkVGFibGVTaXplKHVuc2lnbmVkLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KTsKKyAg
ICBQYXJ0aWFsUmVzdWx0IFdBUk5fVU5VU0VEX1JFVFVSTiBhZGRUYWJsZUdyb3codW5zaWduZWQs
IEV4cHJlc3Npb25UeXBlJiBmaWxsLCBFeHByZXNzaW9uVHlwZSYgZGVsdGEsIEV4cHJlc3Npb25U
eXBlJiByZXN1bHQpOworICAgIFBhcnRpYWxSZXN1bHQgV0FSTl9VTlVTRURfUkVUVVJOIGFkZFRh
YmxlRmlsbCh1bnNpZ25lZCwgRXhwcmVzc2lvblR5cGUmIG9mZnNldCwgRXhwcmVzc2lvblR5cGUm
IGZpbGwsIEV4cHJlc3Npb25UeXBlJiBjb3VudCk7CiAgICAgLy8gTG9jYWxzCiAgICAgUGFydGlh
bFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gZ2V0TG9jYWwodWludDMyX3QgaW5kZXgsIEV4cHJl
c3Npb25UeXBlJiByZXN1bHQpOwogICAgIFBhcnRpYWxSZXN1bHQgV0FSTl9VTlVTRURfUkVUVVJO
IHNldExvY2FsKHVpbnQzMl90IGluZGV4LCBFeHByZXNzaW9uVHlwZSB2YWx1ZSk7CkBAIC02MTcs
NiArNjE5LDQ3IEBAIGF1dG8gQjNJUkdlbmVyYXRvcjo6YWRkUmVmRnVuYyh1aW50MzJfdCBpbmRl
eCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkgLT4gUGFydGlhCiAgICAgcmV0dXJuIHsgfTsKIH0K
IAorYXV0byBCM0lSR2VuZXJhdG9yOjphZGRUYWJsZVNpemUodW5zaWduZWQgdGFibGVJbmRleCwg
RXhwcmVzc2lvblR5cGUmIHJlc3VsdCkgLT4gUGFydGlhbFJlc3VsdAoreworICAgIC8vIEZJWE1F
OiBFbWl0IHRoaXMgaW5saW5lIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk4NTA2Pi4KKyAgICB1aW50MzJfdCAoKmRvU2l6ZSkoSW5zdGFuY2UqLCB1bnNpZ25lZCkg
PSBbXSAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCB0YWJsZUluZGV4KSAtPiB1aW50MzJf
dCB7CisgICAgICAgIHJldHVybiBpbnN0YW5jZS0+dGFibGUodGFibGVJbmRleCktPmxlbmd0aCgp
OworICAgIH07CisKKyAgICByZXN1bHQgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PENDYWxs
VmFsdWU+KG1fcHJvYywgdG9CM1R5cGUoSTMyKSwgb3JpZ2luKCksCisgICAgICAgIG1fY3VycmVu
dEJsb2NrLT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4obV9wcm9jLCBvcmlnaW4oKSwgdGFnQ0Z1
bmN0aW9uUHRyPHZvaWQqPihkb1NpemUsIEIzQ0NhbGxQdHJUYWcpKSwKKyAgICAgICAgaW5zdGFu
Y2VWYWx1ZSgpLCBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4obV9wcm9j
LCBvcmlnaW4oKSwgdGFibGVJbmRleCkpOworCisgICAgcmV0dXJuIHsgfTsKK30KKworYXV0byBC
M0lSR2VuZXJhdG9yOjphZGRUYWJsZUdyb3codW5zaWduZWQgdGFibGVJbmRleCwgRXhwcmVzc2lv
blR5cGUmIGZpbGwsIEV4cHJlc3Npb25UeXBlJiBkZWx0YSwgRXhwcmVzc2lvblR5cGUmIHJlc3Vs
dCkgLT4gUGFydGlhbFJlc3VsdAoreworICAgIHJlc3VsdCA9IG1fY3VycmVudEJsb2NrLT5hcHBl
bmROZXc8Q0NhbGxWYWx1ZT4obV9wcm9jLCB0b0IzVHlwZShJMzIpLCBvcmlnaW4oKSwKKyAgICAg
ICAgbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihtX3Byb2MsIG9yaWdp
bigpLCB0YWdDRnVuY3Rpb25QdHI8dm9pZCo+KCZkb1dhc21UYWJsZUdyb3csIEIzQ0NhbGxQdHJU
YWcpKSwKKyAgICAgICAgaW5zdGFuY2VWYWx1ZSgpLCBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4obV9wcm9jLCBvcmlnaW4oKSwgdGFibGVJbmRleCksIGZpbGwsIGRlbHRh
KTsKKworICAgIHJldHVybiB7IH07Cit9CisKK2F1dG8gQjNJUkdlbmVyYXRvcjo6YWRkVGFibGVG
aWxsKHVuc2lnbmVkIHRhYmxlSW5kZXgsIEV4cHJlc3Npb25UeXBlJiBvZmZzZXQsIEV4cHJlc3Np
b25UeXBlJiBmaWxsLCBFeHByZXNzaW9uVHlwZSYgY291bnQpIC0+IFBhcnRpYWxSZXN1bHQKK3sK
KyAgICBhdXRvIHJlc3VsdCA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4o
bV9wcm9jLCB0b0IzVHlwZShJMzIpLCBvcmlnaW4oKSwKKyAgICAgICAgbV9jdXJyZW50QmxvY2st
PmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihtX3Byb2MsIG9yaWdpbigpLCB0YWdDRnVuY3Rpb25Q
dHI8dm9pZCo+KCZkb1dhc21UYWJsZUZpbGwsIEIzQ0NhbGxQdHJUYWcpKSwKKyAgICAgICAgaW5z
dGFuY2VWYWx1ZSgpLCBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4obV9w
cm9jLCBvcmlnaW4oKSwgdGFibGVJbmRleCksIG9mZnNldCwgZmlsbCwgY291bnQpOworCisgICAg
eworICAgICAgICBDaGVja1ZhbHVlKiBjaGVjayA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8
Q2hlY2tWYWx1ZT4obV9wcm9jLCBDaGVjaywgb3JpZ2luKCksCisgICAgICAgICAgICBtX2N1cnJl
bnRCbG9jay0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEVxdWFsLCBvcmlnaW4oKSwgcmVzdWx0
LCBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4obV9wcm9jLCBvcmlnaW4o
KSwgMCkpKTsKKworICAgICAgICBjaGVjay0+c2V0R2VuZXJhdG9yKFs9XSAoQ0NhbGxIZWxwZXJz
JiBqaXQsIGNvbnN0IEIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7CisgICAgICAgICAg
ICB0aGlzLT5lbWl0RXhjZXB0aW9uQ2hlY2soaml0LCBFeGNlcHRpb25UeXBlOjpPdXRPZkJvdW5k
c1RhYmxlQWNjZXNzKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgcmV0dXJuIHsgfTsKK30K
KwogYXV0byBCM0lSR2VuZXJhdG9yOjpnZXRMb2NhbCh1aW50MzJfdCBpbmRleCwgRXhwcmVzc2lv
blR5cGUmIHJlc3VsdCkgLT4gUGFydGlhbFJlc3VsdAogewogICAgIEFTU0VSVChtX2xvY2Fsc1tp
bmRleF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUV4Y2Vw
dGlvblR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21FeGNlcHRpb25UeXBl
LmgKaW5kZXggOTMyODYxY2E5ZGQxZTVhYjgzNzM5NTYxNDMwNDVkMTc1MzUwMDNiYy4uNTRkYmUy
NmE5NTI2MTE1Y2UyZGEzZDI5YTJkZGQ1MTUzY2M4Mjk4NyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUV4Y2VwdGlvblR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtRXhjZXB0aW9uVHlwZS5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVz
cGFjZSBXYXNtIHsKIAogI2RlZmluZSBGT1JfRUFDSF9FWENFUFRJT04obWFjcm8pIFwKICAgICBt
YWNybyhPdXRPZkJvdW5kc01lbW9yeUFjY2VzcywgICJPdXQgb2YgYm91bmRzIG1lbW9yeSBhY2Nl
c3MiKSBcCi0gICAgbWFjcm8oT3V0T2ZCb3VuZHNUYWJsZUFjY2VzcywgICJPdXQgb2YgYm91bmRz
IHRhYmxlIGFjY2VzcyIpIFwKKyAgICBtYWNybyhPdXRPZkJvdW5kc1RhYmxlQWNjZXNzLCAiT3V0
IG9mIGJvdW5kcyB0YWJsZSBhY2Nlc3MiKSBcCiAgICAgbWFjcm8oT3V0T2ZCb3VuZHNDYWxsSW5k
aXJlY3QsICJPdXQgb2YgYm91bmRzIGNhbGxfaW5kaXJlY3QiKSBcCiAgICAgbWFjcm8oTnVsbFRh
YmxlRW50cnksICAiY2FsbF9pbmRpcmVjdCB0byBhIG51bGwgdGFibGUgZW50cnkiKSBcCiAgICAg
bWFjcm8oQmFkU2lnbmF0dXJlLCAiY2FsbF9pbmRpcmVjdCB0byBhIHNpZ25hdHVyZSB0aGF0IGRv
ZXMgbm90IG1hdGNoIikgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUZ1bmN0aW9uUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVu
Y3Rpb25QYXJzZXIuaAppbmRleCA3MjUwNTQyOGE5ZWU0NTYwNTk3ZWU3MWNkNmUzYjRlZmI5NTAy
MDFhLi4xYTc2NThjMWVmZDVhZmM4N2ZlNDNkNGUyNzNlMzBjMjkwNjU5OWZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25QYXJzZXIuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25QYXJzZXIuaApAQCAtMzAzLDYg
KzMwMyw0MyBAQCBhdXRvIEZ1bmN0aW9uUGFyc2VyPENvbnRleHQ+OjpwYXJzZUV4cHJlc3Npb24o
KSAtPiBQYXJ0aWFsUmVzdWx0CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCisgICAgY2Fz
ZSBFeHRUYWJsZTogeworICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFPcHRpb25zOjp1c2VX
ZWJBc3NlbWJseVJlZmVyZW5jZXMoKSwgInJlZmVyZW5jZXMgYXJlIG5vdCBlbmFibGVkIik7Cisg
ICAgICAgIHVpbnQ4X3QgZXh0T3A7CisgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIXBhcnNl
VUludDgoZXh0T3ApLCAiY2FuJ3QgcGFyc2UgdGFibGUgZXh0ZW5kZWQgb3Bjb2RlIik7CisgICAg
ICAgIHVuc2lnbmVkIHRhYmxlSW5kZXg7CisgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIXBh
cnNlVmFyVUludDMyKHRhYmxlSW5kZXgpLCAiY2FuJ3QgcGFyc2UgdGFibGUgaW5kZXgiKTsKKwor
ICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PEV4dFRhYmxlT3BUeXBlPihleHRPcCkpIHsKKyAg
ICAgICAgY2FzZSBFeHRUYWJsZU9wVHlwZTo6VGFibGVTaXplOiB7CisgICAgICAgICAgICBFeHBy
ZXNzaW9uVHlwZSByZXN1bHQ7CisgICAgICAgICAgICBXQVNNX1RSWV9BRERfVE9fQ09OVEVYVChh
ZGRUYWJsZVNpemUodGFibGVJbmRleCwgcmVzdWx0KSk7CisgICAgICAgICAgICBtX2V4cHJlc3Np
b25TdGFjay5hcHBlbmQocmVzdWx0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisg
ICAgICAgIGNhc2UgRXh0VGFibGVPcFR5cGU6OlRhYmxlR3JvdzogeworICAgICAgICAgICAgRXhw
cmVzc2lvblR5cGUgZmlsbCwgZGVsdGEsIHJlc3VsdDsKKyAgICAgICAgICAgIFdBU01fVFJZX1BP
UF9FWFBSRVNTSU9OX1NUQUNLX0lOVE8oZGVsdGEsICJ0YWJsZS5ncm93Iik7CisgICAgICAgICAg
ICBXQVNNX1RSWV9QT1BfRVhQUkVTU0lPTl9TVEFDS19JTlRPKGZpbGwsICJ0YWJsZS5ncm93Iik7
CisgICAgICAgICAgICBXQVNNX1RSWV9BRERfVE9fQ09OVEVYVChhZGRUYWJsZUdyb3codGFibGVJ
bmRleCwgZmlsbCwgZGVsdGEsIHJlc3VsdCkpOworICAgICAgICAgICAgbV9leHByZXNzaW9uU3Rh
Y2suYXBwZW5kKHJlc3VsdCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICBjYXNlIEV4dFRhYmxlT3BUeXBlOjpUYWJsZUZpbGw6IHsKKyAgICAgICAgICAgIEV4cHJlc3Np
b25UeXBlIG9mZnNldCwgZmlsbCwgY291bnQ7CisgICAgICAgICAgICBXQVNNX1RSWV9QT1BfRVhQ
UkVTU0lPTl9TVEFDS19JTlRPKGNvdW50LCAidGFibGUuZmlsbCIpOworICAgICAgICAgICAgV0FT
TV9UUllfUE9QX0VYUFJFU1NJT05fU1RBQ0tfSU5UTyhmaWxsLCAidGFibGUuZmlsbCIpOworICAg
ICAgICAgICAgV0FTTV9UUllfUE9QX0VYUFJFU1NJT05fU1RBQ0tfSU5UTyhvZmZzZXQsICJ0YWJs
ZS5maWxsIik7CisgICAgICAgICAgICBXQVNNX1RSWV9BRERfVE9fQ09OVEVYVChhZGRUYWJsZUZp
bGwodGFibGVJbmRleCwgb2Zmc2V0LCBmaWxsLCBjb3VudCkpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFdBU01fUEFSU0VSX0ZB
SUxfSUYodHJ1ZSwgImludmFsaWQgZXh0ZW5kZWQgdGFibGUgb3AgIiwgZXh0T3ApOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKICAg
ICBjYXNlIFJlZk51bGw6IHsKICAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRighT3B0aW9uczo6
dXNlV2ViQXNzZW1ibHlSZWZlcmVuY2VzKCksICJyZWZlcmVuY2VzIGFyZSBub3QgZW5hYmxlZCIp
OwogICAgICAgICBtX2V4cHJlc3Npb25TdGFjay5hcHBlbmQobV9jb250ZXh0LmFkZENvbnN0YW50
KEFueWZ1bmMsIEpTVmFsdWU6OmVuY29kZShqc051bGwoKSkpKTsKQEAgLTY4OCw2ICs3MjUsNyBA
QCBhdXRvIEZ1bmN0aW9uUGFyc2VyPENvbnRleHQ+OjpwYXJzZVVucmVhY2hhYmxlRXhwcmVzc2lv
bigpIC0+IFBhcnRpYWxSZXN1bHQKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKKyAgICBj
YXNlIEV4dFRhYmxlOgogICAgIGNhc2UgVGFibGVHZXQ6CiAgICAgY2FzZSBUYWJsZVNldDogewog
ICAgICAgICB1bnNpZ25lZCB0YWJsZUluZGV4OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21JbnN0YW5jZS5jcHAKaW5kZXggYzQxNTQ5YmU1MTU4NDg4MGZlYjI2MmU5ZWU3MmE5MWQ0
N2UzYjQ3Ni4uZWMxNWQ4NmVjODY3OTJkYWNjYWRmNzkyZGM4NmI1MDJkNzA5NGVlMyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuY3BwCkBAIC0xNTksNiArMTU5
LDQwIEBAIGJvb2wgc2V0V2FzbVRhYmxlRWxlbWVudChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2ln
bmVkIHRhYmxlSW5kZXgsIGludDMyX3Qgc2lnbmVkCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2lu
dDMyX3QgZG9XYXNtVGFibGVHcm93KEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgdGFibGVJ
bmRleCwgRW5jb2RlZEpTVmFsdWUgZmlsbCwgaW50MzJfdCBkZWx0YSkKK3sKKyAgICBBU1NFUlQo
dGFibGVJbmRleCA8IGluc3RhbmNlLT5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpLnRhYmxl
Q291bnQoKSk7CisgICAgYXV0byBvbGRTaXplID0gaW5zdGFuY2UtPnRhYmxlKHRhYmxlSW5kZXgp
LT5sZW5ndGgoKTsKKyAgICBpZiAoZGVsdGEgPCAwKQorICAgICAgICByZXR1cm4gb2xkU2l6ZTsK
KyAgICBhdXRvIG5ld1NpemUgPSBpbnN0YW5jZS0+dGFibGUodGFibGVJbmRleCktPmdyb3coZGVs
dGEpOworICAgIGlmICghbmV3U2l6ZSB8fCAqbmV3U2l6ZSA9PSBvbGRTaXplKQorICAgICAgICBy
ZXR1cm4gLTE7CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBvbGRTaXplOyBpIDwgaW5zdGFuY2Ut
PnRhYmxlKHRhYmxlSW5kZXgpLT5sZW5ndGgoKTsgKytpKQorICAgICAgICBzZXRXYXNtVGFibGVF
bGVtZW50KGluc3RhbmNlLCB0YWJsZUluZGV4LCBpLCBmaWxsKTsKKworICAgIHJldHVybiBvbGRT
aXplOworfQorCitib29sIGRvV2FzbVRhYmxlRmlsbChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2ln
bmVkIHRhYmxlSW5kZXgsIGludDMyX3QgdW5zYWZlT2Zmc2V0LCBFbmNvZGVkSlNWYWx1ZSBmaWxs
LCBpbnQzMl90IHVuc2FmZUNvdW50KQoreworICAgIEFTU0VSVCh0YWJsZUluZGV4IDwgaW5zdGFu
Y2UtPm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0aW9uKCkudGFibGVDb3VudCgpKTsKKyAgICBpZiAo
dW5zYWZlT2Zmc2V0IDwgMCB8fCB1bnNhZmVDb3VudCA8IDApCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIHVuc2lnbmVkIG9mZnNldCA9IHVuc2FmZU9mZnNldDsKKyAgICB1bnNpZ25lZCBj
b3VudCA9IHVuc2FmZUNvdW50OworCisgICAgaWYgKG9mZnNldCA+PSBpbnN0YW5jZS0+dGFibGUo
dGFibGVJbmRleCktPmxlbmd0aCgpIHx8IG9mZnNldCArIGNvdW50ID4gaW5zdGFuY2UtPnRhYmxl
KHRhYmxlSW5kZXgpLT5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZm9y
ICh1bnNpZ25lZCBqID0gMDsgaiA8IGNvdW50OyArK2opCisgICAgICAgIHNldFdhc21UYWJsZUVs
ZW1lbnQoaW5zdGFuY2UsIHRhYmxlSW5kZXgsIG9mZnNldCArIGosIGZpbGwpOworCisgICAgcmV0
dXJuIHRydWU7Cit9CisKIEVuY29kZWRKU1ZhbHVlIGRvV2FzbVJlZkZ1bmMoSW5zdGFuY2UqIGlu
c3RhbmNlLCB1aW50MzJfdCBpbmRleCkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gaW5zdGFuY2Ut
PmdldEZ1bmN0aW9uV3JhcHBlcihpbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21JbnN0YW5jZS5oCmluZGV4IDAxMmNkNDU3M2FhODRmOTY0NzBjYjA3MTk4YzdhNzBiYjBmM2E3
YzQuLmY0ZjM1MDg3ZTI1NmQwOTJjZTc0YjIxYjg0NDBhOTM3MjVkMTY2ODUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5jZS5oCkBAIC00NCw2ICs0NCw4IEBAIGNsYXNz
IEluc3RhbmNlOwogRW5jb2RlZEpTVmFsdWUgZ2V0V2FzbVRhYmxlRWxlbWVudChJbnN0YW5jZSos
IHVuc2lnbmVkLCBpbnQzMl90KTsKIGJvb2wgc2V0V2FzbVRhYmxlRWxlbWVudChJbnN0YW5jZSos
IHVuc2lnbmVkLCBpbnQzMl90LCBFbmNvZGVkSlNWYWx1ZSBlbmNWYWx1ZSk7CiBFbmNvZGVkSlNW
YWx1ZSBkb1dhc21SZWZGdW5jKEluc3RhbmNlKiwgdWludDMyX3QpOworaW50MzJfdCBkb1dhc21U
YWJsZUdyb3coSW5zdGFuY2UqLCB1bnNpZ25lZCwgRW5jb2RlZEpTVmFsdWUgZmlsbCwgaW50MzJf
dCBkZWx0YSk7Citib29sIGRvV2FzbVRhYmxlRmlsbChJbnN0YW5jZSosIHVuc2lnbmVkLCBpbnQz
Ml90IG9mZnNldCwgRW5jb2RlZEpTVmFsdWUgZmlsbCwgaW50MzJfdCBjb3VudCk7CiAKIGNsYXNz
IEluc3RhbmNlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEluc3RhbmNlPiwgcHVibGlj
IENhbk1ha2VXZWFrUHRyPEluc3RhbmNlPiB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsaWRhdGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbVZhbGlkYXRlLmNwcAppbmRleCBiZDIxZDgwZWYxYTUzZjM3OWIxNWM3MDg4
MjFlOGM2NzY1ZGJkZmE0Li42YTBiZDlmZmIyZjljMzZlODdjMmUxNWZlMTA0M2Q2YTU3YzUyZWUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsaWRhdGUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWxpZGF0ZS5jcHAKQEAgLTEw
OCw3ICsxMDgsOSBAQCBwdWJsaWM6CiAgICAgLy8gVGFibGVzCiAgICAgUmVzdWx0IFdBUk5fVU5V
U0VEX1JFVFVSTiBhZGRUYWJsZUdldCh1bnNpZ25lZCwgRXhwcmVzc2lvblR5cGUmIGluZGV4LCBF
eHByZXNzaW9uVHlwZSYgcmVzdWx0KTsKICAgICBSZXN1bHQgV0FSTl9VTlVTRURfUkVUVVJOIGFk
ZFRhYmxlU2V0KHVuc2lnbmVkLCBFeHByZXNzaW9uVHlwZSYgaW5kZXgsIEV4cHJlc3Npb25UeXBl
JiB2YWx1ZSk7Ci0KKyAgICBSZXN1bHQgV0FSTl9VTlVTRURfUkVUVVJOIGFkZFRhYmxlU2l6ZSh1
bnNpZ25lZCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCk7CisgICAgUmVzdWx0IFdBUk5fVU5VU0VE
X1JFVFVSTiBhZGRUYWJsZUdyb3codW5zaWduZWQsIEV4cHJlc3Npb25UeXBlJiBmaWxsLCBFeHBy
ZXNzaW9uVHlwZSYgZGVsdGEsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpOworICAgIFJlc3VsdCBX
QVJOX1VOVVNFRF9SRVRVUk4gYWRkVGFibGVGaWxsKHVuc2lnbmVkLCBFeHByZXNzaW9uVHlwZSYg
b2Zmc2V0LCBFeHByZXNzaW9uVHlwZSYgZmlsbCwgRXhwcmVzc2lvblR5cGUmIGNvdW50KTsKICAg
ICAvLyBMb2NhbHMKICAgICBSZXN1bHQgV0FSTl9VTlVTRURfUkVUVVJOIGdldExvY2FsKHVpbnQz
Ml90IGluZGV4LCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KTsKICAgICBSZXN1bHQgV0FSTl9VTlVT
RURfUkVUVVJOIHNldExvY2FsKHVpbnQzMl90IGluZGV4LCBFeHByZXNzaW9uVHlwZSB2YWx1ZSk7
CkBAIC0xOTgsNiArMjAwLDM0IEBAIGF1dG8gVmFsaWRhdGU6OmFkZFRhYmxlU2V0KHVuc2lnbmVk
IHRhYmxlSW5kZXgsIEV4cHJlc3Npb25UeXBlJiBpbmRleCwgRXhwcmVzc2lvCiAgICAgcmV0dXJu
IHsgfTsKIH0KIAorYXV0byBWYWxpZGF0ZTo6YWRkVGFibGVTaXplKHVuc2lnbmVkIHRhYmxlSW5k
ZXgsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpIC0+IFJlc3VsdAoreworICAgIHJlc3VsdCA9IFR5
cGU6OkkzMjsKKyAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKHRhYmxlSW5kZXggPj0gbV9tb2R1
bGUudGFibGVDb3VudCgpLCAidGFibGUgaW5kZXggIiwgdGFibGVJbmRleCwgIiBpcyBpbnZhbGlk
LCBsaW1pdCBpcyAiLCBtX21vZHVsZS50YWJsZUNvdW50KCkpOworCisgICAgcmV0dXJuIHsgfTsK
K30KKworYXV0byBWYWxpZGF0ZTo6YWRkVGFibGVHcm93KHVuc2lnbmVkIHRhYmxlSW5kZXgsIEV4
cHJlc3Npb25UeXBlJiBmaWxsLCBFeHByZXNzaW9uVHlwZSYgZGVsdGEsIEV4cHJlc3Npb25UeXBl
JiByZXN1bHQpIC0+IFJlc3VsdAoreworICAgIHJlc3VsdCA9IFR5cGU6OkkzMjsKKyAgICBXQVNN
X1ZBTElEQVRPUl9GQUlMX0lGKHRhYmxlSW5kZXggPj0gbV9tb2R1bGUudGFibGVDb3VudCgpLCAi
dGFibGUgaW5kZXggIiwgdGFibGVJbmRleCwgIiBpcyBpbnZhbGlkLCBsaW1pdCBpcyAiLCBtX21v
ZHVsZS50YWJsZUNvdW50KCkpOworICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIWlzU3VidHlw
ZShmaWxsLCBtX21vZHVsZS50YWJsZXNbdGFibGVJbmRleF0ud2FzbVR5cGUoKSksICJ0YWJsZS5n
cm93IGV4cGVjdHMgZmlsbCB2YWx1ZSBvZiB0eXBlICIsIG1fbW9kdWxlLnRhYmxlc1t0YWJsZUlu
ZGV4XS53YXNtVHlwZSgpLCAiIGdvdCAiLCBmaWxsKTsKKyAgICBXQVNNX1ZBTElEQVRPUl9GQUlM
X0lGKFR5cGU6OkkzMiAhPSBkZWx0YSwgInRhYmxlLmdyb3cgZXhwZWN0cyBhbiBpMzIgZGVsdGEg
dmFsdWUsIGdvdCAiLCBkZWx0YSk7CisKKyAgICByZXR1cm4geyB9OworfQorCithdXRvIFZhbGlk
YXRlOjphZGRUYWJsZUZpbGwodW5zaWduZWQgdGFibGVJbmRleCwgRXhwcmVzc2lvblR5cGUmIG9m
ZnNldCwgRXhwcmVzc2lvblR5cGUmIGZpbGwsIEV4cHJlc3Npb25UeXBlJiBjb3VudCkgLT4gUmVz
dWx0Cit7CisgICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRih0YWJsZUluZGV4ID49IG1fbW9kdWxl
LnRhYmxlQ291bnQoKSwgInRhYmxlIGluZGV4ICIsIHRhYmxlSW5kZXgsICIgaXMgaW52YWxpZCwg
bGltaXQgaXMgIiwgbV9tb2R1bGUudGFibGVDb3VudCgpKTsKKyAgICBXQVNNX1ZBTElEQVRPUl9G
QUlMX0lGKCFpc1N1YnR5cGUoZmlsbCwgbV9tb2R1bGUudGFibGVzW3RhYmxlSW5kZXhdLndhc21U
eXBlKCkpLCAidGFibGUuZmlsbCBleHBlY3RzIGZpbGwgdmFsdWUgb2YgdHlwZSAiLCBtX21vZHVs
ZS50YWJsZXNbdGFibGVJbmRleF0ud2FzbVR5cGUoKSwgIiBnb3QgIiwgZmlsbCk7CisgICAgV0FT
TV9WQUxJREFUT1JfRkFJTF9JRihUeXBlOjpJMzIgIT0gb2Zmc2V0LCAidGFibGUuZmlsbCBleHBl
Y3RzIGFuIGkzMiBvZmZzZXQgdmFsdWUsIGdvdCAiLCBvZmZzZXQpOworICAgIFdBU01fVkFMSURB
VE9SX0ZBSUxfSUYoVHlwZTo6STMyICE9IGNvdW50LCAidGFibGUuZmlsbCBleHBlY3RzIGFuIGkz
MiBjb3VudCB2YWx1ZSwgZ290ICIsIGNvdW50KTsKKworICAgIHJldHVybiB7IH07Cit9CisKIGF1
dG8gVmFsaWRhdGU6OmFkZFJlZklzTnVsbChFeHByZXNzaW9uVHlwZSYgdmFsdWUsIEV4cHJlc3Np
b25UeXBlJiByZXN1bHQpIC0+IFJlc3VsdAogewogICAgIHJlc3VsdCA9IFR5cGU6OkkzMjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2dlbmVyYXRlV2FzbU9wc0hlYWRl
ci5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2dlbmVyYXRlV2FzbU9wc0hlYWRlci5w
eQppbmRleCA0ZTlhNjY1NjYzMTk3OWQyYzkzNzhiNjM3ZTFiODhmMDY5MmI3NTFjLi43NzU2NGMz
MDNjYTMwMDkzMTYxY2IyNGQ5YmRmZmFhOTIzMjBkOTEyIDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9nZW5lcmF0ZVdhc21PcHNIZWFkZXIucHkKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vZ2VuZXJhdGVXYXNtT3BzSGVhZGVyLnB5CkBAIC01NSwxNyArNTUs
MTcgQEAgdHlwZV9kZWZpbml0aW9ucy5leHRlbmQoW3QgZm9yIHQgaW4gdHlwZU1hY3JvaXplcigp
XSkKIHR5cGVfZGVmaW5pdGlvbnMgPSAiIi5qb2luKHR5cGVfZGVmaW5pdGlvbnMpCiAKIAotZGVm
IG9wY29kZU1hY3JvaXplcihmaWx0ZXIpOgorZGVmIG9wY29kZU1hY3JvaXplcihmaWx0ZXIsIG9w
Y29kZUZpZWxkPSJ2YWx1ZSIpOgogICAgIGluYyA9IDAKICAgICBmb3Igb3AgaW4gd2FzbS5vcGNv
ZGVJdGVyYXRvcihmaWx0ZXIpOgogICAgICAgICBiM29wID0gIk9vcHMiCiAgICAgICAgIGlmIGlz
U2ltcGxlKG9wWyJvcGNvZGUiXSk6CiAgICAgICAgICAgICBiM29wID0gb3BbIm9wY29kZSJdWyJi
M29wIl0KLSAgICAgICAgeWllbGQgY3BwTWFjcm8ob3BbIm5hbWUiXSwgb3BbIm9wY29kZSJdWyJ2
YWx1ZSJdLCBiM29wLCBpbmMpCisgICAgICAgIHlpZWxkIGNwcE1hY3JvKG9wWyJuYW1lIl0sIG9w
WyJvcGNvZGUiXVtvcGNvZGVGaWVsZF0sIGIzb3AsIGluYykKICAgICAgICAgaW5jICs9IDEKIAog
ZGVmaW5lcyA9IFsiI2RlZmluZSBGT1JfRUFDSF9XQVNNX1NQRUNJQUxfT1AobWFjcm8pIl0KLWRl
ZmluZXMuZXh0ZW5kKFtvcCBmb3Igb3AgaW4gb3Bjb2RlTWFjcm9pemVyKGxhbWJkYSBvcDogbm90
IChpc1VuYXJ5KG9wKSBvciBpc0JpbmFyeShvcCkgb3Igb3BbImNhdGVnb3J5Il0gPT0gImNvbnRy
b2wiIG9yIG9wWyJjYXRlZ29yeSJdID09ICJtZW1vcnkiKSldKQorZGVmaW5lcy5leHRlbmQoW29w
IGZvciBvcCBpbiBvcGNvZGVNYWNyb2l6ZXIobGFtYmRhIG9wOiBub3QgKGlzVW5hcnkob3ApIG9y
IGlzQmluYXJ5KG9wKSBvciBvcFsiY2F0ZWdvcnkiXSA9PSAiY29udHJvbCIgb3Igb3BbImNhdGVn
b3J5Il0gPT0gIm1lbW9yeSIgb3Igb3BbImNhdGVnb3J5Il0gPT0gImV4dHRhYmxlIikpXSkKIGRl
ZmluZXMuYXBwZW5kKCJcblxuI2RlZmluZSBGT1JfRUFDSF9XQVNNX0NPTlRST0xfRkxPV19PUCht
YWNybykiKQogZGVmaW5lcy5leHRlbmQoW29wIGZvciBvcCBpbiBvcGNvZGVNYWNyb2l6ZXIobGFt
YmRhIG9wOiBvcFsiY2F0ZWdvcnkiXSA9PSAiY29udHJvbCIpXSkKIGRlZmluZXMuYXBwZW5kKCJc
blxuI2RlZmluZSBGT1JfRUFDSF9XQVNNX1NJTVBMRV9VTkFSWV9PUChtYWNybykiKQpAQCAtODAs
NiArODAsOCBAQCBkZWZpbmVzLmFwcGVuZCgiXG5cbiNkZWZpbmUgRk9SX0VBQ0hfV0FTTV9NRU1P
UllfTE9BRF9PUChtYWNybykiKQogZGVmaW5lcy5leHRlbmQoW29wIGZvciBvcCBpbiBvcGNvZGVN
YWNyb2l6ZXIobGFtYmRhIG9wOiAob3BbImNhdGVnb3J5Il0gPT0gIm1lbW9yeSIgYW5kIGxlbihv
cFsicmV0dXJuIl0pID09IDEpKV0pCiBkZWZpbmVzLmFwcGVuZCgiXG5cbiNkZWZpbmUgRk9SX0VB
Q0hfV0FTTV9NRU1PUllfU1RPUkVfT1AobWFjcm8pIikKIGRlZmluZXMuZXh0ZW5kKFtvcCBmb3Ig
b3AgaW4gb3Bjb2RlTWFjcm9pemVyKGxhbWJkYSBvcDogKG9wWyJjYXRlZ29yeSJdID09ICJtZW1v
cnkiIGFuZCBsZW4ob3BbInJldHVybiJdKSA9PSAwKSldKQorZGVmaW5lcy5hcHBlbmQoIlxuXG4j
ZGVmaW5lIEZPUl9FQUNIX1dBU01fRVhUX1RBQkxFX09QKG1hY3JvKSIpCitkZWZpbmVzLmV4dGVu
ZChbb3AgZm9yIG9wIGluIG9wY29kZU1hY3JvaXplcihsYW1iZGEgb3A6IChvcFsiY2F0ZWdvcnki
XSA9PSAiZXh0dGFibGUiKSwgImV4dGVuZGVkT3AiKV0pCiBkZWZpbmVzLmFwcGVuZCgiXG5cbiIp
CiAKIGRlZmluZXMgPSAiIi5qb2luKGRlZmluZXMpCkBAIC0yMDIsNyArMjA0LDggQEAgaW5saW5l
IFR5cGUgbGluZWFyaXplZFRvVHlwZShpbnQgaSkKICAgICBGT1JfRUFDSF9XQVNNX1VOQVJZX09Q
KG1hY3JvKSBcXAogICAgIEZPUl9FQUNIX1dBU01fQklOQVJZX09QKG1hY3JvKSBcXAogICAgIEZP
Ul9FQUNIX1dBU01fTUVNT1JZX0xPQURfT1AobWFjcm8pIFxcCi0gICAgRk9SX0VBQ0hfV0FTTV9N
RU1PUllfU1RPUkVfT1AobWFjcm8pCisgICAgRk9SX0VBQ0hfV0FTTV9NRU1PUllfU1RPUkVfT1Ao
bWFjcm8pIFxcCisgICAgbWFjcm8oRXh0VGFibGUsIDB4RkMsIE9vcHMsIDApCiAKICNkZWZpbmUg
Q1JFQVRFX0VOVU1fVkFMVUUobmFtZSwgaWQsIGIzb3AsIGluYykgbmFtZSA9IGlkLAogCkBAIC0y
MzQsNiArMjM3LDEwIEBAIGVudW0gY2xhc3MgU3RvcmVPcFR5cGUgOiB1aW50OF90IHsKICAgICBG
T1JfRUFDSF9XQVNNX01FTU9SWV9TVE9SRV9PUChDUkVBVEVfRU5VTV9WQUxVRSkKIH07CiAKK2Vu
dW0gY2xhc3MgRXh0VGFibGVPcFR5cGUgOiB1aW50OF90IHsKKyAgICBGT1JfRUFDSF9XQVNNX0VY
VF9UQUJMRV9PUChDUkVBVEVfRU5VTV9WQUxVRSkKK307CisKICN1bmRlZiBDUkVBVEVfRU5VTV9W
QUxVRQogCiBpbmxpbmUgYm9vbCBpc0NvbnRyb2xPcChPcFR5cGUgb3ApCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS93YXNtLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS93YXNtLmpzb24KaW5kZXggOTZlOGExZDIwNzcyOTkwMGQzOTUxOGIxMDk2NWU2YzU3
NmQwZjgyOC4uMGQyODBlY2Q5OTQ0Zjc0MmE4MjI4MGVjYTZmNTZjYWIwNTk3MzNiMSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vd2FzbS5qc29uCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL3dhc20uanNvbgpAQCAtNjksNiArNjksOSBAQAogICAgICAgICAi
c2V0X2dsb2JhbCI6ICAgICAgICAgIHsgImNhdGVnb3J5IjogInNwZWNpYWwiLCAgICAidmFsdWUi
OiAgMzYsICJyZXR1cm4iOiBbXSwgICAgICAgICAgICJwYXJhbWV0ZXIiOiBbImFueSJdLCAgICAg
ICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImdsb2JhbF9pbmRleCIsICAgInR5
cGUiOiAidmFydWludDMyIn1dLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIndyaXRlIGEgZ2xvYmFsIHZhcmlhYmxlIiB9LAogICAgICAg
ICAidGFibGUuZ2V0IjogICAgICAgICAgIHsgImNhdGVnb3J5IjogInNwZWNpYWwiLCAgICAidmFs
dWUiOiAgMzcsICJyZXR1cm4iOiBbImFueXJlZiJdLCAgICJwYXJhbWV0ZXIiOiBbImkzMiJdLCAg
ICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogInRhYmxlX2luZGV4IiwgICAg
InR5cGUiOiAidmFydWludDMyIn1dLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogImdldCBhIHRhYmxlIHZhbHVlIiB9LAogICAgICAgICAi
dGFibGUuc2V0IjogICAgICAgICAgIHsgImNhdGVnb3J5IjogInNwZWNpYWwiLCAgICAidmFsdWUi
OiAgMzgsICJyZXR1cm4iOiBbXSwgICAgICAgICAgICJwYXJhbWV0ZXIiOiBbImkzMiIsICJhbnly
ZWYiXSwgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogInRhYmxlX2luZGV4IiwgICAgInR5
cGUiOiAidmFydWludDMyIn1dLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogInNldCBhIHRhYmxlIHZhbHVlIiB9LAorICAgICAgICAidGFi
bGUuc2l6ZSI6ICAgICAgICAgIHsgImNhdGVnb3J5IjogImV4dHRhYmxlIiwgICAidmFsdWUiOiAg
MjUyLCAicmV0dXJuIjogWyJpMzIiXSwgICAgICJwYXJhbWV0ZXIiOiBbXSwgICAgICAgICAgICAg
ICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogInRhYmxlX2luZGV4IiwgICAgInR5cGUi
OiAidmFydWludDMyIn1dLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogImdldCB0aGUgc2l6ZSBvZiBhIHRhYmxlIiwgImV4dGVuZGVkT3Ai
OiAxNSB9LAorICAgICAgICAidGFibGUuZ3JvdyI6ICAgICAgICAgIHsgImNhdGVnb3J5IjogImV4
dHRhYmxlIiwgICAidmFsdWUiOiAgMjUyLCAicmV0dXJuIjogWyJpMzIiXSwgICAgICJwYXJhbWV0
ZXIiOiBbImFueXJlZiIsICJpMzIiXSwgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogInRh
YmxlX2luZGV4IiwgICAgInR5cGUiOiAidmFydWludDMyIn1dLCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogImdyb3cgYSB0YWJsZSBieSB0
aGUgZ2l2ZW4gZGVsdGEgYW5kIHJldHVybiB0aGUgcHJldmlvdXMgc2l6ZSwgb3IgLTEgaWYgZW5v
dWdoIHNwYWNlIGNhbm5vdCBiZSBhbGxvY2F0ZWQiLCAiZXh0ZW5kZWRPcCI6IDE2IH0sCisgICAg
ICAgICJ0YWJsZS5maWxsIjogICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiZXh0dGFibGUiLCAgICJ2
YWx1ZSI6ICAyNTIsICJyZXR1cm4iOiBbImkzMiJdLCAgICAgInBhcmFtZXRlciI6IFsiaTMyIiwg
ImFueXJlZiIsICJpMzIiXSwgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAidGFibGVfaW5kZXgiLCAg
ICAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiZmlsbCBlbnRyaWVzIFtpLGkrbikgd2l0aCB0aGUg
Z2l2ZW4gdmFsdWUiLCAiZXh0ZW5kZWRPcCI6IDE3IH0sCiAgICAgICAgICJjYWxsIjogICAgICAg
ICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY2FsbCIsICAgICAgICJ2YWx1ZSI6ICAxNiwgInJldHVy
biI6IFsiY2FsbCJdLCAgICAgInBhcmFtZXRlciI6IFsiY2FsbCJdLCAgICAgICAgICAgICAgICAg
ImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAiZnVuY3Rpb25faW5kZXgiLCAidHlwZSI6ICJ2YXJ1aW50
MzIifV0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiY2FsbCBhIGZ1bmN0aW9uIGJ5IGl0cyBpbmRleCIgfSwKICAgICAgICAgImNhbGxf
aW5kaXJlY3QiOiAgICAgICB7ICJjYXRlZ29yeSI6ICJjYWxsIiwgICAgICAgInZhbHVlIjogIDE3
LCAicmV0dXJuIjogWyJjYWxsIl0sICAgICAicGFyYW1ldGVyIjogWyJjYWxsIl0sICAgICAgICAg
ICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJ0eXBlX2luZGV4IiwgICAgICJ0eXBlIjog
InZhcnVpbnQzMiJ9LCB7Im5hbWUiOiAidGFibGVfaW5kZXgiLCJ0eXBlIjogInZhcnVpbnQzMiJ9
XSwiZGVzY3JpcHRpb24iOiAiY2FsbCBhIGZ1bmN0aW9uIGluZGlyZWN0IHdpdGggYW4gZXhwZWN0
ZWQgc2lnbmF0dXJlIiB9LAogICAgICAgICAiaTMyLmxvYWQ4X3MiOiAgICAgICAgIHsgImNhdGVn
b3J5IjogIm1lbW9yeSIsICAgICAidmFsdWUiOiAgNDQsICJyZXR1cm4iOiBbImkzMiJdLCAgICAg
ICJwYXJhbWV0ZXIiOiBbImFkZHIiXSwgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJu
YW1lIjogImZsYWdzIiwgICAgICAgICAgInR5cGUiOiAidmFydWludDMyIn0sIHsibmFtZSI6ICJv
ZmZzZXQiLCAgICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgImRlc2NyaXB0aW9uIjogImxvYWQgZnJv
bSBtZW1vcnkiIH0sCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGI0ZWUyNzMyN2JjMmJiMTE3YTc1YzAxM2VhZTJlNTliMjY3NWVlNmIuLmNm
N2UxNWRlMDI1NTRmMDRmZTE1NTM1MWRlYmY5YTExMzJmMTcwNmUgMTAwNjQ0Ci0tLSBhL0pTVGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTktMDYtMTQgIEp1c3RpbiBNaWNoYXVkICA8anVzdGluX21pY2hhdWRAYXBwbGUuY29tPgorCisg
ICAgICAgIFtXQVNNLVJlZmVyZW5jZXNdIEFkZCBzdXBwb3J0IGZvciBUYWJsZS5zaXplLCBncm93
IGFuZCBmaWxsIGluc3RydWN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk4NzYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWXVzdWtlIFN1enVr
aS4KKworICAgICAgICAqIHdhc20vQnVpbGRlcl9XZWJBc3NlbWJseUJpbmFyeS5qczoKKyAgICAg
ICAgKGNvbnN0LnB1dE9wKToKKyAgICAgICAgKiB3YXNtL3JlZmVyZW5jZXMvdGFibGVfbWlzYy5q
czogQWRkZWQuCisgICAgICAgIChUYWJsZVNpemUuRW5kLkVuZC5XZWJBc3NlbWJseSk6CisgICAg
ICAgIChHZXRMb2NhbC4wLkdldExvY2FsLjEuVGFibGVHcm93LkVuZC5FbmQuV2ViQXNzZW1ibHkp
OgorICAgICAgICAqIHdhc20vd2FzbS5qc29uOgorCiAyMDE5LTA2LTE4ICBKdXN0aW4gTWljaGF1
ZCAgPGp1c3Rpbl9taWNoYXVkQGFwcGxlLmNvbT4KIAogICAgICAgICBbV0FTTS1SZWZlcmVuY2Vz
XSBBZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgdGFibGVzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dh
c20vQnVpbGRlcl9XZWJBc3NlbWJseUJpbmFyeS5qcyBiL0pTVGVzdHMvd2FzbS9CdWlsZGVyX1dl
YkFzc2VtYmx5QmluYXJ5LmpzCmluZGV4IGNhOGZkOGY2NWY2OTZmOWI1MDk4MTBjMWM2MDJjYTRh
N2FkNGM2ZTQuLjRmM2EyM2Y3NGVjM2RjNDNlYTQ1MmE0NGYzYmFlYzJkZGQ3MzFlYTUgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvd2FzbS9CdWlsZGVyX1dlYkFzc2VtYmx5QmluYXJ5LmpzCisrKyBiL0pT
VGVzdHMvd2FzbS9CdWlsZGVyX1dlYkFzc2VtYmx5QmluYXJ5LmpzCkBAIC02MCw2ICs2MCw4IEBA
IGNvbnN0IHB1dEdsb2JhbFR5cGUgPSAoYmluLCBnbG9iYWwpID0+IHsKIAogY29uc3QgcHV0T3Ag
PSAoYmluLCBvcCkgPT4gewogICAgIHB1dChiaW4sICJ1aW50OCIsIG9wLnZhbHVlKTsKKyAgICBp
ZiAoV0FTTS5kZXNjcmlwdGlvbi5vcGNvZGVbb3AubmFtZV0uZXh0ZW5kZWRPcCkKKyAgICAgICAg
cHV0KGJpbiwgInVpbnQ4IiwgV0FTTS5kZXNjcmlwdGlvbi5vcGNvZGVbb3AubmFtZV0uZXh0ZW5k
ZWRPcCk7CiAgICAgaWYgKG9wLmFyZ3VtZW50cy5sZW5ndGggIT09IDApCiAgICAgICAgIHRocm93
IG5ldyBFcnJvcihgVW5pbXBsZW1lbnRlZDogYXJndW1lbnRzYCk7IC8vIEZJWE1FIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI3MDYKIApkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy93YXNtL3JlZmVyZW5jZXMvdGFibGVfbWlzYy5qcyBiL0pTVGVzdHMvd2FzbS9yZWZlcmVu
Y2VzL3RhYmxlX21pc2MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDIwOTVkNTJiNjBiNGRkNjg5OWI0ZGQ1ZjRj
YTYzZDQxY2Q0MTA5NgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvd2FzbS9yZWZlcmVuY2Vz
L3RhYmxlX21pc2MuanMKQEAgLTAsMCArMSwyMjUgQEAKK2ltcG9ydCAqIGFzIGFzc2VydCBmcm9t
ICcuLi9hc3NlcnQuanMnOworaW1wb3J0IEJ1aWxkZXIgZnJvbSAnLi4vQnVpbGRlci5qcyc7CisK
K3sKKyAgICBjb25zdCAkMSA9IG5ldyBXZWJBc3NlbWJseS5JbnN0YW5jZShuZXcgV2ViQXNzZW1i
bHkuTW9kdWxlKChuZXcgQnVpbGRlcigpKQorICAgICAgICAgIC5UeXBlKCkuRW5kKCkKKyAgICAg
ICAgICAuRnVuY3Rpb24oKS5FbmQoKQorICAgICAgICAgIC5UYWJsZSgpCisgICAgICAgICAgICAg
ICAgLlRhYmxlKHtpbml0aWFsOiAwLCBtYXhpbXVtOiAwLCBlbGVtZW50OiAiYW55cmVmIn0pCisg
ICAgICAgICAgICAgICAgLlRhYmxlKHtpbml0aWFsOiAyMCwgbWF4aW11bTogMzAsIGVsZW1lbnQ6
ICJhbnlyZWYifSkKKyAgICAgICAgICAuRW5kKCkKKyAgICAgICAgICAuRXhwb3J0KCkKKyAgICAg
ICAgICAgICAgLkZ1bmN0aW9uKCJ0Ymxfc2l6ZSIpCisgICAgICAgICAgICAgIC5UYWJsZSgidGJs
IiwgMSkKKyAgICAgICAgICAuRW5kKCkKKyAgICAgICAgICAuQ29kZSgpCisgICAgICAgICAgICAu
RnVuY3Rpb24oInRibF9zaXplIiwgeyBwYXJhbXM6IFtdLCByZXQ6ICJpMzIiIH0pCisgICAgICAg
ICAgICAgIC5UYWJsZVNpemUoMSkKKyAgICAgICAgICAgIC5FbmQoKQorICAgICAgICAgIC5FbmQo
KS5XZWJBc3NlbWJseSgpLmdldCgpKSk7CisgICAgZnVsbEdDKCkKKworICAgIGFzc2VydC5lcSgk
MS5leHBvcnRzLnRibF9zaXplKCksIDIwKQorICAgIGFzc2VydC5lcSgkMS5leHBvcnRzLnRibC5n
cm93KDUpLCAyMCkKKyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50Ymxfc2l6ZSgpLCAyNSkKKyAg
ICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50YmwuZ2V0KDApLCBudWxsKQorICAgIGFzc2VydC5lcSgk
MS5leHBvcnRzLnRibC5nZXQoMjQpLCBudWxsKQorfQorCithc3NlcnQudGhyb3dzKCgpID0+IG5l
dyBXZWJBc3NlbWJseS5Nb2R1bGUoKG5ldyBCdWlsZGVyKCkpCisgICAgICAuVHlwZSgpLkVuZCgp
CisgICAgICAuRnVuY3Rpb24oKS5FbmQoKQorICAgICAgLkV4cG9ydCgpCisgICAgICAgICAgLkZ1
bmN0aW9uKCJ0Ymxfc2l6ZSIpCisgICAgICAuRW5kKCkKKyAgICAgIC5Db2RlKCkKKyAgICAgICAg
LkZ1bmN0aW9uKCJ0Ymxfc2l6ZSIsIHsgcGFyYW1zOiBbXSwgcmV0OiAiaTMyIiB9KQorICAgICAg
ICAgIC5UYWJsZVNpemUoMCkKKyAgICAgICAgLkVuZCgpCisgICAgICAuRW5kKCkuV2ViQXNzZW1i
bHkoKS5nZXQoKSksIEVycm9yLCAiV2ViQXNzZW1ibHkuTW9kdWxlIGRvZXNuJ3QgdmFsaWRhdGU6
IHRhYmxlIGluZGV4IDAgaXMgaW52YWxpZCwgbGltaXQgaXMgMCwgaW4gZnVuY3Rpb24gYXQgaW5k
ZXggMCAoZXZhbHVhdGluZyAnbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZScpIikKKworeworICAgIGNv
bnN0ICQxID0gbmV3IFdlYkFzc2VtYmx5Lkluc3RhbmNlKG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUo
KG5ldyBCdWlsZGVyKCkpCisgICAgICAgICAgLlR5cGUoKS5FbmQoKQorICAgICAgICAgIC5GdW5j
dGlvbigpLkVuZCgpCisgICAgICAgICAgLlRhYmxlKCkKKyAgICAgICAgICAgICAgICAuVGFibGUo
e2luaXRpYWw6IDAsIG1heGltdW06IDAsIGVsZW1lbnQ6ICJhbnlyZWYifSkKKyAgICAgICAgICAg
ICAgICAuVGFibGUoe2luaXRpYWw6IDIwLCBtYXhpbXVtOiAzMCwgZWxlbWVudDogImFueXJlZiJ9
KQorICAgICAgICAgIC5FbmQoKQorICAgICAgICAgIC5FeHBvcnQoKQorICAgICAgICAgICAgICAu
RnVuY3Rpb24oInRibF9zaXplIikKKyAgICAgICAgICAgICAgLkZ1bmN0aW9uKCJ0YmxfZ3JvdyIp
CisgICAgICAgICAgICAgIC5UYWJsZSgidGJsIiwgMSkKKyAgICAgICAgICAuRW5kKCkKKyAgICAg
ICAgICAuQ29kZSgpCisgICAgICAgICAgICAuRnVuY3Rpb24oInRibF9zaXplIiwgeyBwYXJhbXM6
IFtdLCByZXQ6ICJpMzIiIH0pCisgICAgICAgICAgICAgIC5UYWJsZVNpemUoMSkKKyAgICAgICAg
ICAgIC5FbmQoKQorICAgICAgICAgICAgLkZ1bmN0aW9uKCJ0YmxfZ3JvdyIsIHsgcGFyYW1zOiBb
ImFueXJlZiIsICJpMzIiXSwgcmV0OiAiaTMyIiB9KQorICAgICAgICAgICAgICAgIC5HZXRMb2Nh
bCgwKQorICAgICAgICAgICAgICAgIC5HZXRMb2NhbCgxKQorICAgICAgICAgICAgICAgIC5UYWJs
ZUdyb3coMSkKKyAgICAgICAgICAgIC5FbmQoKQorICAgICAgICAgIC5FbmQoKS5XZWJBc3NlbWJs
eSgpLmdldCgpKSk7CisgICAgZnVsbEdDKCkKKworICAgIGFzc2VydC5lcSgkMS5leHBvcnRzLnRi
bF9zaXplKCksIDIwKQorICAgIGFzc2VydC5lcSgkMS5leHBvcnRzLnRibF9ncm93KCJoaSIsIDUp
LCAyMCkKKyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50Ymxfc2l6ZSgpLCAyNSkKKyAgICBhc3Nl
cnQuZXEoJDEuZXhwb3J0cy50YmwuZ2V0KDApLCBudWxsKQorICAgIGFzc2VydC5lcSgkMS5leHBv
cnRzLnRibC5nZXQoMjQpLCAiaGkiKQorCisgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJsX2dy
b3cobnVsbCwgNSksIDI1KQorICAgIGFzc2VydC5lcSgkMS5leHBvcnRzLnRibC5nZXQoMjQpLCAi
aGkiKQorICAgIGFzc2VydC5lcSgkMS5leHBvcnRzLnRibC5nZXQoMjUpLCBudWxsKQorICAgIGFz
c2VydC5lcSgkMS5leHBvcnRzLnRibF9zaXplKCksIDMwKQorICAgIGFzc2VydC5lcSgkMS5leHBv
cnRzLnRibF9ncm93KG51bGwsIDApLCAtMSkKKyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50Ymxf
Z3JvdyhudWxsLCA1KSwgLTEpCisgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJsX2dyb3cobnVs
bCwgMCksIC0xKQorfQorCithc3NlcnQudGhyb3dzKCgpID0+IG5ldyBXZWJBc3NlbWJseS5Nb2R1
bGUoKG5ldyBCdWlsZGVyKCkpCisgICAgICAuVHlwZSgpLkVuZCgpCisgICAgICAuRnVuY3Rpb24o
KS5FbmQoKQorICAgICAgLkNvZGUoKQorICAgICAgICAuRnVuY3Rpb24oInRibF9ncm93IiwgeyBw
YXJhbXM6IFsiYW55cmVmIiwgImkzMiJdLCByZXQ6ICJpMzIiIH0pCisgICAgICAgICAgICAuR2V0
TG9jYWwoMCkKKyAgICAgICAgICAgIC5HZXRMb2NhbCgxKQorICAgICAgICAgICAgLlRhYmxlR3Jv
dygwKQorICAgICAgICAuRW5kKCkKKyAgICAgIC5FbmQoKS5XZWJBc3NlbWJseSgpLmdldCgpKSwg
RXJyb3IsICJXZWJBc3NlbWJseS5Nb2R1bGUgZG9lc24ndCB2YWxpZGF0ZTogdGFibGUgaW5kZXgg
MCBpcyBpbnZhbGlkLCBsaW1pdCBpcyAwLCBpbiBmdW5jdGlvbiBhdCBpbmRleCAwIChldmFsdWF0
aW5nICduZXcgV2ViQXNzZW1ibHkuTW9kdWxlJykiKQorCithc3NlcnQudGhyb3dzKCgpID0+IG5l
dyBXZWJBc3NlbWJseS5Nb2R1bGUoKG5ldyBCdWlsZGVyKCkpCisgICAgICAuVHlwZSgpLkVuZCgp
CisgICAgICAuRnVuY3Rpb24oKS5FbmQoKQorICAgICAgLlRhYmxlKCkKKyAgICAgICAgICAgIC5U
YWJsZSh7aW5pdGlhbDogMjAsIG1heGltdW06IDMwLCBlbGVtZW50OiAiYW55cmVmIn0pCisgICAg
ICAuRW5kKCkKKyAgICAgIC5Db2RlKCkKKyAgICAgICAgLkZ1bmN0aW9uKCJ0YmxfZ3JvdyIsIHsg
cGFyYW1zOiBbImFueXJlZiIsICJpMzIiXSwgcmV0OiAiaTMyIiB9KQorICAgICAgICAgICAgLkdl
dExvY2FsKDApCisgICAgICAgICAgICAuVGFibGVHcm93KDApCisgICAgICAgIC5FbmQoKQorICAg
ICAgLkVuZCgpLldlYkFzc2VtYmx5KCkuZ2V0KCkpLCBFcnJvciwgIldlYkFzc2VtYmx5Lk1vZHVs
ZSBkb2Vzbid0IHBhcnNlIGF0IGJ5dGUgNjogY2FuJ3QgcG9wIGVtcHR5IHN0YWNrIGluIHRhYmxl
Lmdyb3csIGluIGZ1bmN0aW9uIGF0IGluZGV4IDAgKGV2YWx1YXRpbmcgJ25ldyBXZWJBc3NlbWJs
eS5Nb2R1bGUnKSIpCisKK2Fzc2VydC50aHJvd3MoKCkgPT4gbmV3IFdlYkFzc2VtYmx5Lk1vZHVs
ZSgobmV3IEJ1aWxkZXIoKSkKKyAgICAgIC5UeXBlKCkuRW5kKCkKKyAgICAgIC5GdW5jdGlvbigp
LkVuZCgpCisgICAgICAuVGFibGUoKQorICAgICAgICAgICAgLlRhYmxlKHtpbml0aWFsOiAyMCwg
bWF4aW11bTogMzAsIGVsZW1lbnQ6ICJhbnlyZWYifSkKKyAgICAgIC5FbmQoKQorICAgICAgLkNv
ZGUoKQorICAgICAgICAuRnVuY3Rpb24oInRibF9ncm93IiwgeyBwYXJhbXM6IFsiaTMyIiwgImkz
MiJdLCByZXQ6ICJpMzIiIH0pCisgICAgICAgICAgICAuR2V0TG9jYWwoMCkKKyAgICAgICAgICAg
IC5HZXRMb2NhbCgxKQorICAgICAgICAgICAgLlRhYmxlR3JvdygwKQorICAgICAgICAuRW5kKCkK
KyAgICAgIC5FbmQoKS5XZWJBc3NlbWJseSgpLmdldCgpKSwgRXJyb3IsICJXZWJBc3NlbWJseS5N
b2R1bGUgZG9lc24ndCB2YWxpZGF0ZTogdGFibGUuZ3JvdyBleHBlY3RzIGZpbGwgdmFsdWUgb2Yg
dHlwZSBBbnlyZWYgZ290IEkzMiwgaW4gZnVuY3Rpb24gYXQgaW5kZXggMCAoZXZhbHVhdGluZyAn
bmV3IFdlYkFzc2VtYmx5Lk1vZHVsZScpIikKKworeworICAgIGNvbnN0ICQxID0gbmV3IFdlYkFz
c2VtYmx5Lkluc3RhbmNlKG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoKG5ldyBCdWlsZGVyKCkpCisg
ICAgICAgICAgLlR5cGUoKS5FbmQoKQorICAgICAgICAgIC5GdW5jdGlvbigpLkVuZCgpCisgICAg
ICAgICAgLlRhYmxlKCkKKyAgICAgICAgICAgICAgICAuVGFibGUoe2luaXRpYWw6IDIwLCBtYXhp
bXVtOiAzMCwgZWxlbWVudDogImFueXJlZiJ9KQorICAgICAgICAgIC5FbmQoKQorICAgICAgICAg
IC5FeHBvcnQoKQorICAgICAgICAgICAgICAuRnVuY3Rpb24oInRibF9zaXplIikKKyAgICAgICAg
ICAgICAgLkZ1bmN0aW9uKCJ0YmxfZmlsbCIpCisgICAgICAgICAgICAgIC5UYWJsZSgidGJsIiwg
MCkKKyAgICAgICAgICAuRW5kKCkKKyAgICAgICAgICAuQ29kZSgpCisgICAgICAgICAgICAuRnVu
Y3Rpb24oInRibF9zaXplIiwgeyBwYXJhbXM6IFtdLCByZXQ6ICJpMzIiIH0pCisgICAgICAgICAg
ICAgIC5UYWJsZVNpemUoMCkKKyAgICAgICAgICAgIC5FbmQoKQorICAgICAgICAgICAgLkZ1bmN0
aW9uKCJ0YmxfZmlsbCIsIHsgcGFyYW1zOiBbImkzMiIsICJhbnlyZWYiLCAiaTMyIl0sIHJldDog
InZvaWQiIH0pCisgICAgICAgICAgICAgICAgLkdldExvY2FsKDApCisgICAgICAgICAgICAgICAg
LkdldExvY2FsKDEpCisgICAgICAgICAgICAgICAgLkdldExvY2FsKDIpCisgICAgICAgICAgICAg
ICAgLlRhYmxlRmlsbCgwKQorICAgICAgICAgICAgLkVuZCgpCisgICAgICAgICAgLkVuZCgpLldl
YkFzc2VtYmx5KCkuZ2V0KCkpKTsKKyAgICBmdWxsR0MoKQorCisgICAgYXNzZXJ0LmVxKCQxLmV4
cG9ydHMudGJsX3NpemUoKSwgMjApCisgICAgJDEuZXhwb3J0cy50YmxfZmlsbCgxLCJoaSIsMykK
KyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50YmwuZ2V0KDApLCBudWxsKQorICAgIGFzc2VydC5l
cSgkMS5leHBvcnRzLnRibC5nZXQoMSksICJoaSIpCisgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMu
dGJsLmdldCgyKSwgImhpIikKKyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50YmwuZ2V0KDMpLCAi
aGkiKQorICAgIGFzc2VydC5lcSgkMS5leHBvcnRzLnRibC5nZXQoNCksIG51bGwpCisKKyAgICAk
MS5leHBvcnRzLnRibF9maWxsKDAsbnVsbCwxKQorICAgIGFzc2VydC5lcSgkMS5leHBvcnRzLnRi
bC5nZXQoMCksIG51bGwpCisgICAgJDEuZXhwb3J0cy50YmxfZmlsbCgwLG51bGwsMCkKKworICAg
ICQxLmV4cG9ydHMudGJsX2ZpbGwoMTksInRlc3QiLDEpCisgICAgYXNzZXJ0LmVxKCQxLmV4cG9y
dHMudGJsLmdldCgxOSksICJ0ZXN0IikKKyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50YmwuZ2V0
KDE4KSwgbnVsbCkKKworICAgIGFzc2VydC50aHJvd3MoKCkgPT4gJDEuZXhwb3J0cy50YmxfZmls
bCgyMCxudWxsLDApLCBFcnJvciwgIk91dCBvZiBib3VuZHMgdGFibGUgYWNjZXNzIChldmFsdWF0
aW5nICdmdW5jKC4uLmFyZ3MpJykiKQorICAgIGFzc2VydC50aHJvd3MoKCkgPT4gJDEuZXhwb3J0
cy50YmxfZmlsbCgyMCxudWxsLDEpLCBFcnJvciwgIk91dCBvZiBib3VuZHMgdGFibGUgYWNjZXNz
IChldmFsdWF0aW5nICdmdW5jKC4uLmFyZ3MpJykiKQorICAgIGFzc2VydC50aHJvd3MoKCkgPT4g
JDEuZXhwb3J0cy50YmxfZmlsbCgxOSxudWxsLDIpLCBFcnJvciwgIk91dCBvZiBib3VuZHMgdGFi
bGUgYWNjZXNzIChldmFsdWF0aW5nICdmdW5jKC4uLmFyZ3MpJykiKQorICAgIGFzc2VydC50aHJv
d3MoKCkgPT4gJDEuZXhwb3J0cy50YmxfZmlsbCg0Mjk0OTY3Mjk1LG51bGwsMSksIEVycm9yLCAi
T3V0IG9mIGJvdW5kcyB0YWJsZSBhY2Nlc3MgKGV2YWx1YXRpbmcgJ2Z1bmMoLi4uYXJncyknKSIp
Cit9CisKK2Fzc2VydC50aHJvd3MoKCkgPT4gbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZSgobmV3IEJ1
aWxkZXIoKSkKKyAgICAgIC5UeXBlKCkuRW5kKCkKKyAgICAgIC5GdW5jdGlvbigpLkVuZCgpCisg
ICAgICAuQ29kZSgpCisgICAgICAgIC5GdW5jdGlvbigidGJsX2dyb3ciLCB7IHBhcmFtczogWyJh
bnlyZWYiLCAiaTMyIl0sIHJldDogInZvaWQiIH0pCisgICAgICAgICAgICAuR2V0TG9jYWwoMSkK
KyAgICAgICAgICAgIC5HZXRMb2NhbCgwKQorICAgICAgICAgICAgLkdldExvY2FsKDEpCisgICAg
ICAgICAgICAuVGFibGVGaWxsKDApCisgICAgICAgIC5FbmQoKQorICAgICAgLkVuZCgpLldlYkFz
c2VtYmx5KCkuZ2V0KCkpLCBFcnJvciwgIldlYkFzc2VtYmx5Lk1vZHVsZSBkb2Vzbid0IHZhbGlk
YXRlOiB0YWJsZSBpbmRleCAwIGlzIGludmFsaWQsIGxpbWl0IGlzIDAsIGluIGZ1bmN0aW9uIGF0
IGluZGV4IDAgKGV2YWx1YXRpbmcgJ25ldyBXZWJBc3NlbWJseS5Nb2R1bGUnKSIpCisKK2Fzc2Vy
dC50aHJvd3MoKCkgPT4gbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZSgobmV3IEJ1aWxkZXIoKSkKKyAg
ICAgIC5UeXBlKCkuRW5kKCkKKyAgICAgIC5GdW5jdGlvbigpLkVuZCgpCisgICAgICAuVGFibGUo
KQorICAgICAgICAgICAgLlRhYmxlKHtpbml0aWFsOiAyMCwgbWF4aW11bTogMzAsIGVsZW1lbnQ6
ICJhbnlyZWYifSkKKyAgICAgIC5FbmQoKQorICAgICAgLkNvZGUoKQorICAgICAgICAuRnVuY3Rp
b24oInRibF9ncm93IiwgeyBwYXJhbXM6IFsiYW55cmVmIiwgImkzMiJdLCByZXQ6ICJpMzIiIH0p
CisgICAgICAgICAgICAuR2V0TG9jYWwoMCkKKyAgICAgICAgICAgIC5UYWJsZUZpbGwoMCkKKyAg
ICAgICAgLkVuZCgpCisgICAgICAuRW5kKCkuV2ViQXNzZW1ibHkoKS5nZXQoKSksIEVycm9yLCAi
V2ViQXNzZW1ibHkuTW9kdWxlIGRvZXNuJ3QgcGFyc2UgYXQgYnl0ZSA2OiBjYW4ndCBwb3AgZW1w
dHkgc3RhY2sgaW4gdGFibGUuZmlsbCwgaW4gZnVuY3Rpb24gYXQgaW5kZXggMCAoZXZhbHVhdGlu
ZyAnbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZScpIikKKworeworICAgIGNvbnN0ICQxID0gbmV3IFdl
YkFzc2VtYmx5Lkluc3RhbmNlKG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoKG5ldyBCdWlsZGVyKCkp
CisgICAgICAgICAgLlR5cGUoKS5FbmQoKQorICAgICAgICAgIC5GdW5jdGlvbigpLkVuZCgpCisg
ICAgICAgICAgLlRhYmxlKCkKKyAgICAgICAgICAgICAgICAuVGFibGUoe2luaXRpYWw6IDAsIG1h
eGltdW06IDAsIGVsZW1lbnQ6ICJhbnlmdW5jIn0pCisgICAgICAgICAgICAgICAgLlRhYmxlKHtp
bml0aWFsOiAyMCwgbWF4aW11bTogMzAsIGVsZW1lbnQ6ICJhbnlmdW5jIn0pCisgICAgICAgICAg
LkVuZCgpCisgICAgICAgICAgLkV4cG9ydCgpCisgICAgICAgICAgICAgIC5GdW5jdGlvbigidGJs
X3NpemUiKQorICAgICAgICAgICAgICAuRnVuY3Rpb24oInRibF9ncm93IikKKyAgICAgICAgICAg
ICAgLlRhYmxlKCJ0YmwiLCAxKQorICAgICAgICAgIC5FbmQoKQorICAgICAgICAgIC5Db2RlKCkK
KyAgICAgICAgICAgIC5GdW5jdGlvbigidGJsX3NpemUiLCB7IHBhcmFtczogW10sIHJldDogImkz
MiIgfSkKKyAgICAgICAgICAgICAgLlRhYmxlU2l6ZSgxKQorICAgICAgICAgICAgLkVuZCgpCisg
ICAgICAgICAgICAuRnVuY3Rpb24oInRibF9ncm93IiwgeyBwYXJhbXM6IFsiaTMyIl0sIHJldDog
ImkzMiIgfSkKKyAgICAgICAgICAgICAgICAuSTMyQ29uc3QoMCkKKyAgICAgICAgICAgICAgICAu
VGFibGVHZXQoMSkKKyAgICAgICAgICAgICAgICAuR2V0TG9jYWwoMCkKKyAgICAgICAgICAgICAg
ICAuVGFibGVHcm93KDEpCisgICAgICAgICAgICAuRW5kKCkKKyAgICAgICAgICAuRW5kKCkuV2Vi
QXNzZW1ibHkoKS5nZXQoKSkpOworICAgIGZ1bGxHQygpCisKKyAgICAkMS5leHBvcnRzLnRibC5z
ZXQoMCwgJDEuZXhwb3J0cy50Ymxfc2l6ZSk7CisgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJs
X3NpemUoKSwgMjApCisgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJsX2dyb3coNSksIDIwKQor
ICAgIGFzc2VydC5lcSgkMS5leHBvcnRzLnRibF9zaXplKCksIDI1KQorICAgIGFzc2VydC5lcSgk
MS5leHBvcnRzLnRibC5nZXQoMCksICQxLmV4cG9ydHMudGJsX3NpemUpCisgICAgYXNzZXJ0LmVx
KCQxLmV4cG9ydHMudGJsLmdldCgxKSwgbnVsbCkKKyAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50
YmwuZ2V0KDI0KSwgJDEuZXhwb3J0cy50Ymxfc2l6ZSkKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMv
d2FzbS93YXNtLmpzb24gYi9KU1Rlc3RzL3dhc20vd2FzbS5qc29uCmluZGV4IDQ1MzA4ZmJiZDU3
NTMyZjVlYmExMzk1NmNhYWNkMDU1OTM0YWNiYWYuLjRhNDY5MDRmOTcxYmNlYzQyYzMwNmEyNWZj
OTMwN2QzMGI5MmM5MGYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2FzbS93YXNtLmpzb24KKysrIGIv
SlNUZXN0cy93YXNtL3dhc20uanNvbgpAQCAtNjksNiArNjksOSBAQAogICAgICAgICAic2V0X2ds
b2JhbCI6ICAgICAgICAgIHsgImNhdGVnb3J5IjogInNwZWNpYWwiLCAgICAidmFsdWUiOiAgMzYs
ICJyZXR1cm4iOiBbXSwgICAgICAgICAgICJwYXJhbWV0ZXIiOiBbImFueSJdLCAgICAgICAgICAg
ICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImdsb2JhbF9pbmRleCIsICAgInR5cGUiOiAi
dmFydWludDMyIn1dLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogIndyaXRlIGEgZ2xvYmFsIHZhcmlhYmxlIiB9LAogICAgICAgICAidGFi
bGUuZ2V0IjogICAgICAgICAgIHsgImNhdGVnb3J5IjogInNwZWNpYWwiLCAgICAidmFsdWUiOiAg
MzcsICJyZXR1cm4iOiBbImFueXJlZiJdLCAgICJwYXJhbWV0ZXIiOiBbImkzMiJdLCAgICAgICAg
ICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogInRhYmxlX2luZGV4IiwgICAgInR5cGUi
OiAidmFydWludDMyIn1dLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogImdldCBhIHRhYmxlIHZhbHVlIiB9LAogICAgICAgICAidGFibGUu
c2V0IjogICAgICAgICAgIHsgImNhdGVnb3J5IjogInNwZWNpYWwiLCAgICAidmFsdWUiOiAgMzgs
ICJyZXR1cm4iOiBbXSwgICAgICAgICAgICJwYXJhbWV0ZXIiOiBbImkzMiIsICJhbnlyZWYiXSwg
ICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogInRhYmxlX2luZGV4IiwgICAgInR5cGUiOiAi
dmFydWludDMyIn1dLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogInNldCBhIHRhYmxlIHZhbHVlIiB9LAorICAgICAgICAidGFibGUuc2l6
ZSI6ICAgICAgICAgIHsgImNhdGVnb3J5IjogImV4dHRhYmxlIiwgICAidmFsdWUiOiAgMjUyLCAi
cmV0dXJuIjogWyJpMzIiXSwgICAgICJwYXJhbWV0ZXIiOiBbXSwgICAgICAgICAgICAgICAgICAg
ICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImdsb2JhbF9pbmRleCIsICAgInR5cGUiOiAidmFy
dWludDMyIn1dLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRl
c2NyaXB0aW9uIjogImdldCB0aGUgc2l6ZSBvZiBhIHRhYmxlIiwgImV4dGVuZGVkT3AiOiAxNSB9
LAorICAgICAgICAidGFibGUuZ3JvdyI6ICAgICAgICAgIHsgImNhdGVnb3J5IjogImV4dHRhYmxl
IiwgICAidmFsdWUiOiAgMjUyLCAicmV0dXJuIjogWyJpMzIiXSwgICAgICJwYXJhbWV0ZXIiOiBb
ImFueXJlZiIsICJpMzIiXSwgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImdsb2JhbF9p
bmRleCIsICAgInR5cGUiOiAidmFydWludDMyIn1dLCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogImdyb3cgYSB0YWJsZSBieSB0aGUgZ2l2
ZW4gZGVsdGEgYW5kIHJldHVybiB0aGUgcHJldmlvdXMgc2l6ZSwgb3IgLTEgaWYgZW5vdWdoIHNw
YWNlIGNhbm5vdCBiZSBhbGxvY2F0ZWQiLCAiZXh0ZW5kZWRPcCI6IDE2IH0sCisgICAgICAgICJ0
YWJsZS5maWxsIjogICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiZXh0dGFibGUiLCAgICJ2YWx1ZSI6
ICAyNTIsICJyZXR1cm4iOiBbImkzMiJdLCAgICAgInBhcmFtZXRlciI6IFsiaTMyIiwgImFueXJl
ZiIsICJpMzIiXSwgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAiZ2xvYmFsX2luZGV4IiwgICAidHlw
ZSI6ICJ2YXJ1aW50MzIifV0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiZmlsbCBlbnRyaWVzIFtpLGkrbikgd2l0aCB0aGUgZ2l2ZW4g
dmFsdWUiLCAiZXh0ZW5kZWRPcCI6IDE3IH0sCiAgICAgICAgICJjYWxsIjogICAgICAgICAgICAg
ICAgeyAiY2F0ZWdvcnkiOiAiY2FsbCIsICAgICAgICJ2YWx1ZSI6ICAxNiwgInJldHVybiI6IFsi
Y2FsbCJdLCAgICAgInBhcmFtZXRlciI6IFsiY2FsbCJdLCAgICAgICAgICAgICAgICAgImltbWVk
aWF0ZSI6IFt7Im5hbWUiOiAiZnVuY3Rpb25faW5kZXgiLCAidHlwZSI6ICJ2YXJ1aW50MzIifV0s
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiAiY2FsbCBhIGZ1bmN0aW9uIGJ5IGl0cyBpbmRleCIgfSwKICAgICAgICAgImNhbGxfaW5kaXJl
Y3QiOiAgICAgICB7ICJjYXRlZ29yeSI6ICJjYWxsIiwgICAgICAgInZhbHVlIjogIDE3LCAicmV0
dXJuIjogWyJjYWxsIl0sICAgICAicGFyYW1ldGVyIjogWyJjYWxsIl0sICAgICAgICAgICAgICAg
ICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJ0eXBlX2luZGV4IiwgICAgICJ0eXBlIjogInZhcnVp
bnQzMiJ9LCB7Im5hbWUiOiAidGFibGVfaW5kZXgiLCJ0eXBlIjogInZhcnVpbnQzMiJ9XSwiZGVz
Y3JpcHRpb24iOiAiY2FsbCBhIGZ1bmN0aW9uIGluZGlyZWN0IHdpdGggYW4gZXhwZWN0ZWQgc2ln
bmF0dXJlIiB9LAogICAgICAgICAiaTMyLmxvYWQ4X3MiOiAgICAgICAgIHsgImNhdGVnb3J5Ijog
Im1lbW9yeSIsICAgICAidmFsdWUiOiAgNDQsICJyZXR1cm4iOiBbImkzMiJdLCAgICAgICJwYXJh
bWV0ZXIiOiBbImFkZHIiXSwgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjog
ImZsYWdzIiwgICAgICAgICAgInR5cGUiOiAidmFydWludDMyIn0sIHsibmFtZSI6ICJvZmZzZXQi
LCAgICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgImRlc2NyaXB0aW9uIjogImxvYWQgZnJvbSBtZW1v
cnkiIH0sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>