<?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>204847</bug_id>
          
          <creation_ts>2019-12-04 03:22:44 -0800</creation_ts>
          <short_desc>Add support for WebIDL set-like forEach</short_desc>
          <delta_ts>2019-12-13 12:50:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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>
          <dependson>159140</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1595434</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-04 03:22:44 -0800</bug_when>
    <thetext>Add support for WebIDL set-like forEach</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595513</commentid>
    <comment_count>1</comment_count>
      <attachid>384823</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-04 10:03:08 -0800</bug_when>
    <thetext>Created attachment 384823
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595565</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-04 13:08:36 -0800</bug_when>
    <thetext> inspector/debugger/tail-deleted-frames/tail-deleted-frames-this-value.html is failing in Mac-debug-wk1, not Mac-wk1, so probably is fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596175</commentid>
    <comment_count>3</comment_count>
      <attachid>384993</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-06 00:32:20 -0800</bug_when>
    <thetext>Created attachment 384993
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596374</commentid>
    <comment_count>4</comment_count>
      <attachid>384993</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2019-12-06 14:47:07 -0800</bug_when>
    <thetext>Comment on attachment 384993
Patch

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

This is not my area, but lgtm, but we should probably get Chris or Darin or someone else to review this as well...

&gt; Source/WebCore/bindings/js/JSDOMBindingInternals.js:39
&gt; +    @getByIdDirectPrivate(this, &quot;backingSet&quot;).forEach((value, key, map) =&gt; {

map? should this be &apos;set&apos;?

&gt; LayoutTests/platform/mac-wk1/TestExpectations:34
&gt; +

I&apos;m confused how this was affected at all</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596697</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-08 08:13:56 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebCore/bindings/js/JSDOMBindingInternals.js:39
&gt; &gt; +    @getByIdDirectPrivate(this, &quot;backingSet&quot;).forEach((value, key, map) =&gt; {
&gt; 
&gt; map? should this be &apos;set&apos;?

Right, sounds better, should not change the behaviour.

&gt; &gt; LayoutTests/platform/mac-wk1/TestExpectations:34
&gt; &gt; +
&gt; 
&gt; I&apos;m confused how this was affected at all

I don&apos;t know either, I asked Joe and Devin and apparently this depends on which methods are executed or not before or as part of the test.

If I remove the JS-built-in for the setlike foreach, the test passes again.
Maybe the test should be rewritten to be more robust.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596700</commentid>
    <comment_count>6</comment_count>
      <attachid>385123</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-08 08:15:53 -0800</bug_when>
    <thetext>Created attachment 385123
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596770</commentid>
    <comment_count>7</comment_count>
      <attachid>385136</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-09 00:05:19 -0800</bug_when>
    <thetext>Created attachment 385136
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596783</commentid>
    <comment_count>8</comment_count>
      <attachid>385136</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-09 01:47:17 -0800</bug_when>
    <thetext>Comment on attachment 385136
Patch

Worked around the inspector test failure by making the JS builtin working for both setlike and maplike.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598383</commentid>
    <comment_count>9</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-13 09:51:06 -0800</bug_when>
    <thetext>ping review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598457</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-13 12:48:22 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 385136:

imported/w3c/web-platform-tests/content-security-policy/reporting/report-same-origin-with-cookies.html bug 205216 (author: dbates@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598458</commentid>
    <comment_count>11</comment_count>
      <attachid>385136</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-13 12:49:17 -0800</bug_when>
    <thetext>Comment on attachment 385136
Patch

Clearing flags on attachment: 385136

Committed r253494: &lt;https://trac.webkit.org/changeset/253494&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598459</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-13 12:49:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598460</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-13 12:50:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/57921779&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384823</attachid>
            <date>2019-12-04 10:03:08 -0800</date>
            <delta_ts>2019-12-06 00:32:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204847-20191204190306.patch</filename>
            <type>text/plain</type>
            <size>17488</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTQwZjc4MDM5ODgyN2Q4
N2VmZmE2NWM0OWNkMzA3YWIwNDE1ZTc3Zi4uNTg1NGIzNWMwNDIxOTg3OGQwMzEyYjljMTBhYmI2
MjY0NDcxMGY4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTEyLTA0ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
V2ViSURMIHNldC1saWtlIGZvckVhY2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNDg0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IHRvIHNldGxpa2UgZm9yRWFjaCBhcyBkb25lIGZv
ciBtYXBsaWtlLgorICAgICAgICBDb3ZlcmVkIGJ5IHJlYmFzZWQgYmluZGluZyB0ZXN0cyBhbmQg
dXBkYXRlZCBsYXlvdXQgdGVzdC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGlu
Z0ludGVybmFscy5qczoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVNldExpa2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Zm9yd2FyZEZvckVhY2hDYWxsVG9CYWNraW5nU2V0KToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0RPTVNldExpa2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OmZvcndh
cmRDbGVhclRvU2V0TGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpmb3J3YXJkRm9yRWFjaFRvU2V0
TGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpmb3J3YXJkSGFzVG9TZXRMaWtlKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbToKKyAgICAgICAgKHBhcnNlU2V0TGlrZVBy
b3BlcnRpZXMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5
U2V0TGlrZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlw
ZUZ1bmN0aW9uRm9yRWFjaEJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6anNSZWFkT25seVNldExp
a2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1NldExpa2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNTZXRMaWtlUHJvdG90
eXBlRnVuY3Rpb25Gb3JFYWNoQm9keSk6CisgICAgICAgIChXZWJDb3JlOjpqc1NldExpa2VQcm90
b3R5cGVGdW5jdGlvbkZvckVhY2gpOgorCiAyMDE5LTEyLTA0ICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCB0aGUgQ1NTIGNsYW1wKCkg
ZnVuY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmlu
ZGluZ0ludGVybmFscy5qcyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGlu
Z0ludGVybmFscy5qcwppbmRleCA3ZjRlZGI3MmRhYjBiNmQyMjg1ZTRiZDg5Y2UxNzA1MDY1Mzk3
ZjRjLi40ZmEyMjI3ZWEwZTM0Yjg1YTBhYzM1MDQwZWM2ZmNiMmFkOGY3MmQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmdJbnRlcm5hbHMuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nSW50ZXJuYWxzLmpzCkBA
IC0zMyw2ICszMywxNCBAQCBmdW5jdGlvbiBtYXBMaWtlRm9yRWFjaChjYWxsYmFjaykKICAgICB9
KTsKIH0KIAorZnVuY3Rpb24gc2V0TGlrZUZvckVhY2goY2FsbGJhY2spCit7CisgICAgInVzZSBz
dHJpY3QiOworICAgIEBnZXRCeUlkRGlyZWN0UHJpdmF0ZSh0aGlzLCAiYmFja2luZ1NldCIpLmZv
ckVhY2goKHZhbHVlLCBrZXksIG1hcCkgPT4geworICAgICAgICBjYWxsYmFjayh2YWx1ZSwga2V5
LCB0aGlzKTsKKyAgICB9KTsKK30KKwogZnVuY3Rpb24gZ2V0VXNlck1lZGlhU2hpbShjb25zdHJh
aW50cywgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKQogewogICAgIHRoaXMubWVkaWFE
ZXZpY2VzLmdldFVzZXJNZWRpYShjb25zdHJhaW50cykudGhlbihzdWNjZXNzQ2FsbGJhY2ssIGVy
cm9yQ2FsbGJhY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01TZXRMaWtlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NU2V0TGlrZS5j
cHAKaW5kZXggZjFmYWIzMWZiNDYxYTQyMWMwN2IxZjBmNzU1MjUwNDRjMThlNzYxNi4uN2ZkNTFj
MTMwYjg2MzdjNzBkYjg0MjQwN2U4MDc1MmEzZDEyNTMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01TZXRMaWtlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVNldExpa2UuY3BwCkBAIC05NSw0ICs5NSwxOSBAQCBKU0M6OkpTVmFs
dWUgZm9yd2FyZEZ1bmN0aW9uQ2FsbFRvQmFja2luZ1NldChKU0M6OkpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsTwogICAgIHJldHVybiBKU0M6OmNhbGwoJmxleGljYWxHbG9iYWxPYmplY3Qs
IGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsICZiYWNraW5nU2V0LCBhcmd1bWVudHMpOwog
fQogCitKU0M6OkpTVmFsdWUgZm9yd2FyZEZvckVhY2hDYWxsVG9CYWNraW5nU2V0KEpTRE9NR2xv
YmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lJiBjYWxsRnJhbWUsIEpTQzo6
SlNPYmplY3QmIHNldExpa2UpCit7CisgICAgYXV0byogZnVuY3Rpb24gPSBnbG9iYWxPYmplY3Qu
YnVpbHRpbkludGVybmFsRnVuY3Rpb25zKCkuanNET01CaW5kaW5nSW50ZXJuYWxzKCkubV9zZXRM
aWtlRm9yRWFjaEZ1bmN0aW9uLmdldCgpOworICAgIEFTU0VSVChmdW5jdGlvbik7CisKKyAgICBK
U0M6OkNhbGxEYXRhIGNhbGxEYXRhOworICAgIEpTQzo6Q2FsbFR5cGUgY2FsbFR5cGUgPSBKU0M6
OmdldENhbGxEYXRhKGdsb2JhbE9iamVjdC52bSgpLCBmdW5jdGlvbiwgY2FsbERhdGEpOworICAg
IEFTU0VSVChjYWxsVHlwZSAhPSBKU0M6OkNhbGxUeXBlOjpOb25lKTsKKyAgICBKU0M6Ok1hcmtl
ZEFyZ3VtZW50QnVmZmVyIGFyZ3VtZW50czsKKyAgICBmb3IgKHNpemVfdCBjcHRyID0gMDsgY3B0
ciA8IGNhbGxGcmFtZS5hcmd1bWVudENvdW50KCk7ICsrY3B0cikKKyAgICAgICAgYXJndW1lbnRz
LmFwcGVuZChjYWxsRnJhbWUudW5jaGVja2VkQXJndW1lbnQoY3B0cikpOworICAgIEFTU0VSVCgh
YXJndW1lbnRzLmhhc092ZXJmbG93ZWQoKSk7CisgICAgcmV0dXJuIEpTQzo6Y2FsbCgmZ2xvYmFs
T2JqZWN0LCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCAmc2V0TGlrZSwgYXJndW1lbnRz
KTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01T
ZXRMaWtlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVNldExpa2UuaAppbmRl
eCBjODFlYTFkMmM3NGQ3NDQ1YjcwNTY3Zjk0YjIzNzA3YjcyZmExMzQ1Li4yNTNiNTc0YzlmMzUw
YWVmNzE5NmI1YTZjOTE3YTM0MTgyNGMwZDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVNldExpa2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVNldExpa2UuaApAQCAtMzUsNiArMzUsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBXRUJDT1JFX0VYUE9SVCBzdGQ6OnBhaXI8Ym9vbCwgc3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxK
U0M6OkpTT2JqZWN0Pj4gZ2V0QmFja2luZ1NldChKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpK
U09iamVjdCYgc2V0TGlrZSk7CitXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgZm9yd2FyZEZv
ckVhY2hDYWxsVG9CYWNraW5nU2V0KEpTRE9NR2xvYmFsT2JqZWN0JiwgSlNDOjpDYWxsRnJhbWUm
LCBKU0M6OkpTT2JqZWN0JiBzZXRMaWtlKTsKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSBm
b3J3YXJkQXR0cmlidXRlR2V0dGVyVG9CYWNraW5nU2V0KEpTQzo6SlNHbG9iYWxPYmplY3QmLCBK
U0M6OkpTT2JqZWN0JiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CiBXRUJDT1JFX0VYUE9SVCBK
U0M6OkpTVmFsdWUgZm9yd2FyZEZ1bmN0aW9uQ2FsbFRvQmFja2luZ1NldChKU0M6OkpTR2xvYmFs
T2JqZWN0JiwgSlNDOjpDYWxsRnJhbWUmLCBKU0M6OkpTT2JqZWN0JiwgY29uc3QgSlNDOjpJZGVu
dGlmaWVyJik7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyQmFja2luZ1NldChKU0M6OkpTR2xv
YmFsT2JqZWN0JiwgSlNDOjpKU09iamVjdCYpOwpAQCAtNDUsNyArNDYsOSBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBXcmFwcGVyQ2xhc3M+IEpTQzo6SlNWYWx1ZSBmb3J3YXJkU2l6ZVRvU2V0TGlrZShK
U0M6OkpTR2xvYmFsTwogdGVtcGxhdGU8dHlwZW5hbWUgV3JhcHBlckNsYXNzPiBKU0M6OkpTVmFs
dWUgZm9yd2FyZEVudHJpZXNUb1NldExpa2UoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6Q2Fs
bEZyYW1lJiwgV3JhcHBlckNsYXNzJik7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBXcmFwcGVyQ2xhc3M+
IEpTQzo6SlNWYWx1ZSBmb3J3YXJkS2V5c1RvU2V0TGlrZShKU0M6OkpTR2xvYmFsT2JqZWN0Jiwg
SlNDOjpDYWxsRnJhbWUmLCBXcmFwcGVyQ2xhc3MmKTsKIHRlbXBsYXRlPHR5cGVuYW1lIFdyYXBw
ZXJDbGFzcz4gSlNDOjpKU1ZhbHVlIGZvcndhcmRWYWx1ZXNUb1NldExpa2UoSlNDOjpKU0dsb2Jh
bE9iamVjdCYsIEpTQzo6Q2FsbEZyYW1lJiwgV3JhcHBlckNsYXNzJik7Cit0ZW1wbGF0ZTx0eXBl
bmFtZSBXcmFwcGVyQ2xhc3M+IEpTQzo6SlNWYWx1ZSBmb3J3YXJkRm9yRWFjaFRvU2V0TGlrZShK
U0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpDYWxsRnJhbWUmLCBXcmFwcGVyQ2xhc3MmKTsKIHRl
bXBsYXRlPHR5cGVuYW1lIFdyYXBwZXJDbGFzcz4gSlNDOjpKU1ZhbHVlIGZvcndhcmRDbGVhclRv
U2V0TGlrZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpDYWxsRnJhbWUmLCBXcmFwcGVyQ2xh
c3MmKTsKKwogdGVtcGxhdGU8dHlwZW5hbWUgV3JhcHBlckNsYXNzLCB0eXBlbmFtZSBJdGVtVHlw
ZT4gSlNDOjpKU1ZhbHVlIGZvcndhcmRIYXNUb1NldExpa2UoSlNDOjpKU0dsb2JhbE9iamVjdCYs
IEpTQzo6Q2FsbEZyYW1lJiwgV3JhcHBlckNsYXNzJiwgSXRlbVR5cGUmJik7CiB0ZW1wbGF0ZTx0
eXBlbmFtZSBXcmFwcGVyQ2xhc3MsIHR5cGVuYW1lIEl0ZW1UeXBlPiBKU0M6OkpTVmFsdWUgZm9y
d2FyZEFkZFRvU2V0TGlrZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpDYWxsRnJhbWUmLCBX
cmFwcGVyQ2xhc3MmLCBJdGVtVHlwZSYmKTsKIHRlbXBsYXRlPHR5cGVuYW1lIFdyYXBwZXJDbGFz
cywgdHlwZW5hbWUgSXRlbVR5cGU+IEpTQzo6SlNWYWx1ZSBmb3J3YXJkRGVsZXRlVG9TZXRMaWtl
KEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OkNhbGxGcmFtZSYsIFdyYXBwZXJDbGFzcyYsIEl0
ZW1UeXBlJiYpOwpAQCAtMTE0LDEwICsxMTcsMTEgQEAgdGVtcGxhdGU8dHlwZW5hbWUgV3JhcHBl
ckNsYXNzPiBpbmxpbmUgSlNDOjpKU1ZhbHVlIGZvcndhcmRWYWx1ZXNUb1NldExpa2UoSlNDOjoK
ICAgICByZXR1cm4gZm9yd2FyZEZ1bmN0aW9uQ2FsbFRvQmFja2luZ1NldChsZXhpY2FsR2xvYmFs
T2JqZWN0LCBjYWxsRnJhbWUsIGdldEFuZEluaXRpYWxpemVCYWNraW5nU2V0KGxleGljYWxHbG9i
YWxPYmplY3QsIHNldExpa2UpLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS52YWx1
ZXNQdWJsaWNOYW1lKCkpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBXcmFwcGVyQ2xhc3MsIHR5
cGVuYW1lIEl0ZW1UeXBlPiBpbmxpbmUgSlNDOjpKU1ZhbHVlIGZvcndhcmRIYXNUb1NldExpa2Uo
SlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUm
IGNhbGxGcmFtZSwgV3JhcHBlckNsYXNzJiBzZXRMaWtlLCBJdGVtVHlwZSYmKQordGVtcGxhdGU8
dHlwZW5hbWUgV3JhcHBlckNsYXNzPiBpbmxpbmUgSlNDOjpKU1ZhbHVlIGZvcndhcmRGb3JFYWNo
VG9TZXRMaWtlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6
Q2FsbEZyYW1lJiBjYWxsRnJhbWUsIFdyYXBwZXJDbGFzcyYgc2V0TGlrZSkKIHsKLSAgICBhdXRv
JiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwotICAgIHJldHVybiBmb3J3
YXJkRnVuY3Rpb25DYWxsVG9CYWNraW5nU2V0KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFt
ZSwgZ2V0QW5kSW5pdGlhbGl6ZUJhY2tpbmdTZXQobGV4aWNhbEdsb2JhbE9iamVjdCwgc2V0TGlr
ZSksIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmhhc1B1YmxpY05hbWUoKSk7Cisg
ICAgZ2V0QW5kSW5pdGlhbGl6ZUJhY2tpbmdTZXQobGV4aWNhbEdsb2JhbE9iamVjdCwgc2V0TGlr
ZSk7CisgICAgZm9yd2FyZEZvckVhY2hDYWxsVG9CYWNraW5nU2V0KCpKU0M6OmpzQ2FzdDxKU0RP
TUdsb2JhbE9iamVjdCo+KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLCBzZXRMaWtl
KTsKKyAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBXcmFwcGVyQ2xhc3M+IGlubGluZSBKU0M6OkpTVmFsdWUgZm9yd2FyZENsZWFyVG9TZXRMaWtl
KEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1l
JiBjYWxsRnJhbWUsIFdyYXBwZXJDbGFzcyYgc2V0TGlrZSkKQEAgLTEyOCw2ICsxMzIsMTIgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgV3JhcHBlckNsYXNzPiBpbmxpbmUgSlNDOjpKU1ZhbHVlIGZvcndh
cmRDbGVhclRvU2V0TGlrZShKU0M6OkoKICAgICByZXR1cm4gZm9yd2FyZEZ1bmN0aW9uQ2FsbFRv
QmFja2luZ1NldChsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGdldEFuZEluaXRpYWxp
emVCYWNraW5nU2V0KGxleGljYWxHbG9iYWxPYmplY3QsIHNldExpa2UpLCB2bS5wcm9wZXJ0eU5h
bWVzLT5jbGVhcik7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFdyYXBwZXJDbGFzcywgdHlwZW5h
bWUgSXRlbVR5cGU+IGlubGluZSBKU0M6OkpTVmFsdWUgZm9yd2FyZEhhc1RvU2V0TGlrZShKU0M6
OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSYgY2Fs
bEZyYW1lLCBXcmFwcGVyQ2xhc3MmIHNldExpa2UsIEl0ZW1UeXBlJiYpCit7CisgICAgYXV0byYg
dm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICByZXR1cm4gZm9yd2Fy
ZEZ1bmN0aW9uQ2FsbFRvQmFja2luZ1NldChsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUs
IGdldEFuZEluaXRpYWxpemVCYWNraW5nU2V0KGxleGljYWxHbG9iYWxPYmplY3QsIHNldExpa2Up
LCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5oYXNQdWJsaWNOYW1lKCkpOworfQor
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBXcmFwcGVyQ2xhc3MsIHR5cGVuYW1lIEl0ZW1UeXBlPiBpbmxp
bmUgSlNDOjpKU1ZhbHVlIGZvcndhcmRBZGRUb1NldExpa2UoSlNDOjpKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUmIGNhbGxGcmFtZSwgV3JhcHBlckNs
YXNzJiBzZXRMaWtlLCBJdGVtVHlwZSYmIGl0ZW0pCiB7CiAgICAgc2V0TGlrZS53cmFwcGVkKCku
YWRkVG9TZXRMaWtlKHN0ZDo6Zm9yd2FyZDxJdGVtVHlwZT4oaXRlbSkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0gYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQppbmRleCAzNGNlNzE5ZDU3ZDBiOTVj
MWEzZGQ2MWZmZTkxMTE0ZjY3M2Q4Y2Q3Li4xMDBjNmQ3N2I4MzEwMmFjNTliZjRiZTcxMDA4NWJm
MGQ3NGYwMTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lE
TFBhcnNlci5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNl
ci5wbQpAQCAtMjEwNSwxMiArMjEwNSwxOCBAQCBzdWIgcGFyc2VTZXRMaWtlUHJvcGVydGllcwog
ICAgICR2YWx1ZXNPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e05vdEVudW1lcmFibGV9
ID0gMTsKICAgICAkdmFsdWVzT3BlcmF0aW9uLT50eXBlKG1ha2VTaW1wbGVUeXBlKCJhbnkiKSk7
CiAKLSAgICAjIEZJWE1FOiBBZGQgc3VwcG9ydCB0byBmb3JFYWNoCisgICAgbXkgJGZvckVhY2hP
cGVyYXRpb24gPSBJRExPcGVyYXRpb24tPm5ldygpOworICAgICRmb3JFYWNoT3BlcmF0aW9uLT5u
YW1lKCJmb3JFYWNoIik7CisgICAgJGZvckVhY2hPcGVyYXRpb24tPmlzU2V0TGlrZSgxKTsKKyAg
ICAkZm9yRWFjaE9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QpOworICAgICRmb3JFYWNoT3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntFbnVt
ZXJhYmxlfSA9IDE7CisgICAgJGZvckVhY2hPcGVyYXRpb24tPnR5cGUobWFrZVNpbXBsZVR5cGUo
ImFueSIpKTsKIAogICAgIHB1c2goQHskc2V0bGlrZS0+b3BlcmF0aW9uc30sICRoYXNPcGVyYXRp
b24pOwogICAgIHB1c2goQHskc2V0bGlrZS0+b3BlcmF0aW9uc30sICRlbnRyaWVzT3BlcmF0aW9u
KTsKICAgICBwdXNoKEB7JHNldGxpa2UtPm9wZXJhdGlvbnN9LCAka2V5c09wZXJhdGlvbik7CiAg
ICAgcHVzaChAeyRzZXRsaWtlLT5vcGVyYXRpb25zfSwgJHZhbHVlc09wZXJhdGlvbik7CisgICAg
cHVzaChAeyRzZXRsaWtlLT5vcGVyYXRpb25zfSwgJGZvckVhY2hPcGVyYXRpb24pOwogCiAgICAg
cmV0dXJuICRzZXRsaWtlIGlmICRpc1JlYWRPbmx5OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seVNldExpa2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlTZXRMaWtlLmNw
cAppbmRleCAzNzJmY2M2MWVlOGMwMzA1NGRkMTAxMDQxOTlhNjllMjhhNjgxMmNmLi5hNDAwZWY3
ZmUzYzhiMWEyMGNkMGFmMGIwZDYzNjRlMmNlYzQxNWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seVNldExpa2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5U2V0TGlr
ZS5jcHAKQEAgLTUwLDYgKzUwLDcgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMoSlNDOjpKU0cKIEpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uRW50cmllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKIEpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1
bmN0aW9uS2V5cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKIEpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1
bmN0aW9uVmFsdWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBl
RnVuY3Rpb25Gb3JFYWNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwog
CiAvLyBBdHRyaWJ1dGVzCiAKQEAgLTEwOSw2ICsxMTAsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRh
YmxlVmFsdWUgSlNSZWFkT25seVNldExpa2VQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KICAgICB7
ICJlbnRyaWVzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzUmVhZE9ubHlT
ZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKSwgKGludHB0cl90KSAoMCkgfSB9LAogICAg
IHsgImtleXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNSZWFkT25seVNl
dExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAi
dmFsdWVzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzUmVhZE9ubHlTZXRM
aWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAi
Zm9yRWFjaCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1JlYWRPbmx5U2V0
TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCksIChpbnRwdHJfdCkgKDApIH0gfSwKIH07CiAK
IGNvbnN0IENsYXNzSW5mbyBKU1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZTo6c19pbmZvID0geyAi
UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZSkgfTsKQEAg
LTI1OSw2ICsyNjEsMTkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5
U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKEpTR2xvYmFsT2IKICAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTUmVhZE9ubHlTZXRMaWtlPjo6Y2FsbDxqc1JlYWRPbmx5U2V0TGlrZVByb3Rv
dHlwZUZ1bmN0aW9uVmFsdWVzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJ2YWx1ZXMiKTsKIH0KIAorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzUmVh
ZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQm9keShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBl
bmFtZSBJRExPcGVyYXRpb248SlNSZWFkT25seVNldExpa2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0
ZWRUaGlzLCBKU0M6OlRocm93U2NvcGUmIHRocm93U2NvcGUpCit7CisgICAgVU5VU0VEX1BBUkFN
KGxleGljYWxHbG9iYWxPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTShjYWxsRnJhbWUpOworICAg
IFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRv
SlM8SURMQW55Pihmb3J3YXJkRm9yRWFjaFRvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2goSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQoreworICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNSZWFkT25seVNldExpa2U+OjpjYWxsPGpzUmVhZE9ubHlT
ZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJmb3JFYWNoIik7Cit9CisKIHZvaWQgSlNSZWFkT25seVNldExpa2U6OmFu
YWx5emVIZWFwKEpTQ2VsbCogY2VsbCwgSGVhcEFuYWx5emVyJiBhbmFseXplcikKIHsKICAgICBh
dXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTUmVhZE9ubHlTZXRMaWtlKj4oY2VsbCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTZXRMaWtl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NldExpa2Uu
Y3BwCmluZGV4IGJkN2MzMGYxN2VhMmU0MmIwMzUyODM4NDUwNTM1YWE1ODhiOWIyYTAuLjEzZTE1
NzZlZDFmZDFlNTI3MGVkM2RhOGU1NWZmMWI1ZWNjZGM4ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NldExpa2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NldExpa2UuY3BwCkBAIC01MCw2
ICs1MCw3IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1NldExpa2VQcm90
b3R5cGVGdW5jdGlvbkhhcyhKU0M6OkpTR2xvYmFsT2JqCiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyhKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpDYWxsRnJhbWUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1NldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1NldExp
a2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNTZXRMaWtlUHJv
dG90eXBlRnVuY3Rpb25BZGQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNTZXRMaWtlUHJvdG90eXBlRnVu
Y3Rpb25DbGVhcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKIEpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkRl
bGV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKQEAgLTExMiw2ICsx
MTMsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNTZXRMaWtlUHJvdG90eXBlVGFi
bGVWYWx1ZXNbXSA9CiAgICAgeyAiZW50cmllcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1
bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1
bmN0aW9uPihqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMpLCAoaW50cHRyX3QpICgw
KSB9IH0sCiAgICAgeyAia2V5cyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihq
c1NldExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAg
eyAidmFsdWVzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzU2V0TGlrZVBy
b3RvdHlwZUZ1bmN0aW9uVmFsdWVzKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgImZvckVh
Y2giLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNTZXRMaWtlUHJvdG90eXBl
RnVuY3Rpb25Gb3JFYWNoKSwgKGludHB0cl90KSAoMCkgfSB9LAogICAgIHsgImFkZCIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkFk
ZCksIChpbnRwdHJfdCkgKDEpIH0gfSwKICAgICB7ICJjbGVhciIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJh
d05hdGl2ZUZ1bmN0aW9uPihqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFyKSwgKGludHB0
cl90KSAoMCkgfSB9LAogICAgIHsgImRlbGV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1
bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1
bmN0aW9uPihqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZSksIChpbnRwdHJfdCkgKDEp
IH0gfSwKQEAgLTI2NSw2ICsyNjcsMTkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1NldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0dsb2JhbE9iamVjdCogbGUKICAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTU2V0TGlrZT46OmNhbGw8anNTZXRMaWtlUHJvdG90eXBlRnVu
Y3Rpb25WYWx1ZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInZhbHVl
cyIpOwogfQogCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNTZXRMaWtlUHJv
dG90eXBlRnVuY3Rpb25Gb3JFYWNoQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRp
b248SlNTZXRMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcywgSlNDOjpUaHJvd1Njb3Bl
JiB0aHJvd1Njb3BlKQoreworICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
KyAgICBVTlVTRURfUEFSQU0oY2FsbEZyYW1lKTsKKyAgICBVTlVTRURfUEFSQU0odGhyb3dTY29w
ZSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEZvckVh
Y2hUb1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlz
KSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzU2V0TGlrZVByb3RvdHlw
ZUZ1bmN0aW9uRm9yRWFjaChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCit7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1NldExpa2U+
OjpjYWxsPGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaEJvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZm9yRWFjaCIpOworfQorCiBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25BZGRCb2R5KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxs
RnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1NldExpa2U+OjpDbGFzc1BhcmFtZXRlciBj
YXN0ZWRUaGlzLCBKU0M6OlRocm93U2NvcGUmIHRocm93U2NvcGUpCiB7CiAgICAgVU5VU0VEX1BB
UkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVlMDFlYTQ4YjQ4NWI4ZTlkOWFlYmEx
MTkyYWRmY2FkMjQzZDIwNDQuLjMzODJhYzgxZTM1ZjBhOTQzNWQ4YzZmYzAxZjM5NWIzMWQxMDEx
MDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOS0xMi0wNCAgeW91ZW5uIGZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFdlYklETCBzZXQtbGlr
ZSBmb3JFYWNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDQ4NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGpzL2RvbS9zZXRsaWtlLmh0bWw6CisKIDIwMTktMTItMDQgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IHRoZSBDU1MgY2xhbXAo
KSBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NldGxpa2UuaHRtbCBi
L0xheW91dFRlc3RzL2pzL2RvbS9zZXRsaWtlLmh0bWwKaW5kZXggYjI5NThiYjI1YTM2ZGZkYTEy
N2NhMTcyNmMwN2RlYjc0MDYyNzU1NS4uMjZhMTM2NGJhMmMzMzBlNzJlNTFlOTJmODEwMDRmNWZl
NWQ2MDczYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL3NldGxpa2UuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vc2V0bGlrZS5odG1sCkBAIC00Miw2ICs0MiwxNCBAQCB0ZXN0
KCgpID0+IHsKICAgICB9CiAgICAgYXNzZXJ0X2VxdWFscyhrZXlzVGVzdCwgInRlc3R0ZXN0MiIs
ICJrZXlzIHRlc3QiKTsKIAorICAgIGxldCBmb3JFYWNoVGVzdCA9ICIiOworICAgIHNldGxpa2Uu
Zm9yRWFjaCgoa2V5LCB2YWx1ZSwgb2JqZWN0KSA9PiB7CisgICAgICAgIGZvckVhY2hUZXN0ICs9
IGtleTsKKyAgICAgICAgZm9yRWFjaFRlc3QgKz0gdmFsdWU7CisgICAgICAgIGFzc2VydF9lcXVh
bHMob2JqZWN0LCBzZXRsaWtlKTsKKyAgICB9KTsKKyAgICBhc3NlcnRfZXF1YWxzKGZvckVhY2hU
ZXN0LCAidGVzdHRlc3R0ZXN0MnRlc3QyIiwgImZvckVhY2ggdGVzdCIpOworCiAgICAgc2V0bGlr
ZS5jbGVhcigpOwogICAgIGFzc2VydF9hcnJheV9lcXVhbHMoc2V0bGlrZS5pdGVtcygpLCBbXSk7
CiB9LCAiQmFzaWMgYWRkL3JlbW92ZS9jbGVhciBmdW5jdGlvbmFsaXR5Iik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384993</attachid>
            <date>2019-12-06 00:32:20 -0800</date>
            <delta_ts>2019-12-08 08:15:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204847-20191206093218.patch</filename>
            <type>text/plain</type>
            <size>20079</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMjAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjFmY2M2NTllMmQ3YzJl
ZGIyZmYwZjYyZDIxNzFhNjdiOTdkNjFjNi4uNjMzY2VlYzc1ZjlhZDk2YTUyZDI4YjBhNDY1ZDMz
YWMyYjY5YjhmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTEyLTA2ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
V2ViSURMIHNldC1saWtlIGZvckVhY2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNDg0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IHRvIHNldGxpa2UgZm9yRWFjaCBhcyBkb25lIGZv
ciBtYXBsaWtlLgorICAgICAgICBDb3ZlcmVkIGJ5IHJlYmFzZWQgYmluZGluZyB0ZXN0cyBhbmQg
dXBkYXRlZCBsYXlvdXQgdGVzdC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGlu
Z0ludGVybmFscy5qczoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVNldExpa2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Zm9yd2FyZEZvckVhY2hDYWxsVG9CYWNraW5nU2V0KToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0RPTVNldExpa2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OmZvcndh
cmRDbGVhclRvU2V0TGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpmb3J3YXJkRm9yRWFjaFRvU2V0
TGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpmb3J3YXJkSGFzVG9TZXRMaWtlKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbToKKyAgICAgICAgKHBhcnNlU2V0TGlrZVBy
b3BlcnRpZXMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5
U2V0TGlrZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlw
ZUZ1bmN0aW9uRm9yRWFjaEJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6anNSZWFkT25seVNldExp
a2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1NldExpa2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNTZXRMaWtlUHJvdG90
eXBlRnVuY3Rpb25Gb3JFYWNoQm9keSk6CisgICAgICAgIChXZWJDb3JlOjpqc1NldExpa2VQcm90
b3R5cGVGdW5jdGlvbkZvckVhY2gpOgorCiAyMDE5LTEyLTA1ICBaYWxhbiBCdWp0YXMgIDx6YWxh
bkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBGaXggY3NzMS9iYXNpYy9jb250YWlu
bWVudC5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJp
bmRpbmdJbnRlcm5hbHMuanMgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRp
bmdJbnRlcm5hbHMuanMKaW5kZXggN2Y0ZWRiNzJkYWIwYjZkMjI4NWU0YmQ4OWNlMTcwNTA2NTM5
N2Y0Yy4uNGZhMjIyN2VhMGUzNGI4NWEwYWMzNTA0MGVjNmZjYjJhZDhmNzJkMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nSW50ZXJuYWxzLmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZ0ludGVybmFscy5qcwpA
QCAtMzMsNiArMzMsMTQgQEAgZnVuY3Rpb24gbWFwTGlrZUZvckVhY2goY2FsbGJhY2spCiAgICAg
fSk7CiB9CiAKK2Z1bmN0aW9uIHNldExpa2VGb3JFYWNoKGNhbGxiYWNrKQoreworICAgICJ1c2Ug
c3RyaWN0IjsKKyAgICBAZ2V0QnlJZERpcmVjdFByaXZhdGUodGhpcywgImJhY2tpbmdTZXQiKS5m
b3JFYWNoKCh2YWx1ZSwga2V5LCBtYXApID0+IHsKKyAgICAgICAgY2FsbGJhY2sodmFsdWUsIGtl
eSwgdGhpcyk7CisgICAgfSk7Cit9CisKIGZ1bmN0aW9uIGdldFVzZXJNZWRpYVNoaW0oY29uc3Ry
YWludHMsIHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaykKIHsKICAgICB0aGlzLm1lZGlh
RGV2aWNlcy5nZXRVc2VyTWVkaWEoY29uc3RyYWludHMpLnRoZW4oc3VjY2Vzc0NhbGxiYWNrLCBl
cnJvckNhbGxiYWNrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NU2V0TGlrZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVNldExpa2Uu
Y3BwCmluZGV4IGYxZmFiMzFmYjQ2MWE0MjFjMDdiMWYwZjc1NTI1MDQ0YzE4ZTc2MTYuLjdmZDUx
YzEzMGI4NjM3YzcwZGI4NDI0MDdlODA3NTJhM2QxMjUzMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NU2V0TGlrZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01TZXRMaWtlLmNwcApAQCAtOTUsNCArOTUsMTkgQEAgSlNDOjpKU1Zh
bHVlIGZvcndhcmRGdW5jdGlvbkNhbGxUb0JhY2tpbmdTZXQoSlNDOjpKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE8KICAgICByZXR1cm4gSlNDOjpjYWxsKCZsZXhpY2FsR2xvYmFsT2JqZWN0
LCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCAmYmFja2luZ1NldCwgYXJndW1lbnRzKTsK
IH0KIAorSlNDOjpKU1ZhbHVlIGZvcndhcmRGb3JFYWNoQ2FsbFRvQmFja2luZ1NldChKU0RPTUds
b2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSYgY2FsbEZyYW1lLCBKU0M6
OkpTT2JqZWN0JiBzZXRMaWtlKQoreworICAgIGF1dG8qIGZ1bmN0aW9uID0gZ2xvYmFsT2JqZWN0
LmJ1aWx0aW5JbnRlcm5hbEZ1bmN0aW9ucygpLmpzRE9NQmluZGluZ0ludGVybmFscygpLm1fc2V0
TGlrZUZvckVhY2hGdW5jdGlvbi5nZXQoKTsKKyAgICBBU1NFUlQoZnVuY3Rpb24pOworCisgICAg
SlNDOjpDYWxsRGF0YSBjYWxsRGF0YTsKKyAgICBKU0M6OkNhbGxUeXBlIGNhbGxUeXBlID0gSlND
OjpnZXRDYWxsRGF0YShnbG9iYWxPYmplY3Qudm0oKSwgZnVuY3Rpb24sIGNhbGxEYXRhKTsKKyAg
ICBBU1NFUlQoY2FsbFR5cGUgIT0gSlNDOjpDYWxsVHlwZTo6Tm9uZSk7CisgICAgSlNDOjpNYXJr
ZWRBcmd1bWVudEJ1ZmZlciBhcmd1bWVudHM7CisgICAgZm9yIChzaXplX3QgY3B0ciA9IDA7IGNw
dHIgPCBjYWxsRnJhbWUuYXJndW1lbnRDb3VudCgpOyArK2NwdHIpCisgICAgICAgIGFyZ3VtZW50
cy5hcHBlbmQoY2FsbEZyYW1lLnVuY2hlY2tlZEFyZ3VtZW50KGNwdHIpKTsKKyAgICBBU1NFUlQo
IWFyZ3VtZW50cy5oYXNPdmVyZmxvd2VkKCkpOworICAgIHJldHVybiBKU0M6OmNhbGwoJmdsb2Jh
bE9iamVjdCwgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgJnNldExpa2UsIGFyZ3VtZW50
cyk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
U2V0TGlrZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01TZXRMaWtlLmgKaW5k
ZXggYzgxZWExZDJjNzRkNzQ0NWI3MDU2N2Y5NGIyMzcwN2I3MmZhMTM0NS4uY2NmY2Q2ZTMwZDRm
NmI2YWJlYTEzZTJmMzlkOGU2NjllOTI1NDVlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01TZXRMaWtlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01TZXRMaWtlLmgKQEAgLTM1LDYgKzM1LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogV0VCQ09SRV9FWFBPUlQgc3RkOjpwYWlyPGJvb2wsIHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8
SlNDOjpKU09iamVjdD4+IGdldEJhY2tpbmdTZXQoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6
SlNPYmplY3QmIHNldExpa2UpOworV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIGZvcndhcmRG
b3JFYWNoQ2FsbFRvQmFja2luZ1NldChKU0RPTUdsb2JhbE9iamVjdCYsIEpTQzo6Q2FsbEZyYW1l
JiwgSlNDOjpKU09iamVjdCYgc2V0TGlrZSk7CiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUg
Zm9yd2FyZEF0dHJpYnV0ZUdldHRlclRvQmFja2luZ1NldChKU0M6OkpTR2xvYmFsT2JqZWN0Jiwg
SlNDOjpKU09iamVjdCYsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwogV0VCQ09SRV9FWFBPUlQg
SlNDOjpKU1ZhbHVlIGZvcndhcmRGdW5jdGlvbkNhbGxUb0JhY2tpbmdTZXQoSlNDOjpKU0dsb2Jh
bE9iamVjdCYsIEpTQzo6Q2FsbEZyYW1lJiwgSlNDOjpKU09iamVjdCYsIGNvbnN0IEpTQzo6SWRl
bnRpZmllciYpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhckJhY2tpbmdTZXQoSlNDOjpKU0ds
b2JhbE9iamVjdCYsIEpTQzo6SlNPYmplY3QmKTsKQEAgLTQ1LDcgKzQ2LDkgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgV3JhcHBlckNsYXNzPiBKU0M6OkpTVmFsdWUgZm9yd2FyZFNpemVUb1NldExpa2Uo
SlNDOjpKU0dsb2JhbE8KIHRlbXBsYXRlPHR5cGVuYW1lIFdyYXBwZXJDbGFzcz4gSlNDOjpKU1Zh
bHVlIGZvcndhcmRFbnRyaWVzVG9TZXRMaWtlKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OkNh
bGxGcmFtZSYsIFdyYXBwZXJDbGFzcyYpOwogdGVtcGxhdGU8dHlwZW5hbWUgV3JhcHBlckNsYXNz
PiBKU0M6OkpTVmFsdWUgZm9yd2FyZEtleXNUb1NldExpa2UoSlNDOjpKU0dsb2JhbE9iamVjdCYs
IEpTQzo6Q2FsbEZyYW1lJiwgV3JhcHBlckNsYXNzJik7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBXcmFw
cGVyQ2xhc3M+IEpTQzo6SlNWYWx1ZSBmb3J3YXJkVmFsdWVzVG9TZXRMaWtlKEpTQzo6SlNHbG9i
YWxPYmplY3QmLCBKU0M6OkNhbGxGcmFtZSYsIFdyYXBwZXJDbGFzcyYpOwordGVtcGxhdGU8dHlw
ZW5hbWUgV3JhcHBlckNsYXNzLCB0eXBlbmFtZSBDYWxsYmFjaz4gSlNDOjpKU1ZhbHVlIGZvcndh
cmRGb3JFYWNoVG9TZXRMaWtlKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OkNhbGxGcmFtZSYs
IFdyYXBwZXJDbGFzcyYsIENhbGxiYWNrJiYpOwogdGVtcGxhdGU8dHlwZW5hbWUgV3JhcHBlckNs
YXNzPiBKU0M6OkpTVmFsdWUgZm9yd2FyZENsZWFyVG9TZXRMaWtlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QmLCBKU0M6OkNhbGxGcmFtZSYsIFdyYXBwZXJDbGFzcyYpOworCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBXcmFwcGVyQ2xhc3MsIHR5cGVuYW1lIEl0ZW1UeXBlPiBKU0M6OkpTVmFsdWUgZm9yd2FyZEhh
c1RvU2V0TGlrZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpDYWxsRnJhbWUmLCBXcmFwcGVy
Q2xhc3MmLCBJdGVtVHlwZSYmKTsKIHRlbXBsYXRlPHR5cGVuYW1lIFdyYXBwZXJDbGFzcywgdHlw
ZW5hbWUgSXRlbVR5cGU+IEpTQzo6SlNWYWx1ZSBmb3J3YXJkQWRkVG9TZXRMaWtlKEpTQzo6SlNH
bG9iYWxPYmplY3QmLCBKU0M6OkNhbGxGcmFtZSYsIFdyYXBwZXJDbGFzcyYsIEl0ZW1UeXBlJiYp
OwogdGVtcGxhdGU8dHlwZW5hbWUgV3JhcHBlckNsYXNzLCB0eXBlbmFtZSBJdGVtVHlwZT4gSlND
OjpKU1ZhbHVlIGZvcndhcmREZWxldGVUb1NldExpa2UoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpT
Qzo6Q2FsbEZyYW1lJiwgV3JhcHBlckNsYXNzJiwgSXRlbVR5cGUmJik7CkBAIC0xMTQsMTAgKzEx
NywxMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBXcmFwcGVyQ2xhc3M+IGlubGluZSBKU0M6OkpTVmFs
dWUgZm9yd2FyZFZhbHVlc1RvU2V0TGlrZShKU0M6OgogICAgIHJldHVybiBmb3J3YXJkRnVuY3Rp
b25DYWxsVG9CYWNraW5nU2V0KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgZ2V0QW5k
SW5pdGlhbGl6ZUJhY2tpbmdTZXQobGV4aWNhbEdsb2JhbE9iamVjdCwgc2V0TGlrZSksIHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnZhbHVlc1B1YmxpY05hbWUoKSk7CiB9CiAKLXRl
bXBsYXRlPHR5cGVuYW1lIFdyYXBwZXJDbGFzcywgdHlwZW5hbWUgSXRlbVR5cGU+IGlubGluZSBK
U0M6OkpTVmFsdWUgZm9yd2FyZEhhc1RvU2V0TGlrZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSYgY2FsbEZyYW1lLCBXcmFwcGVyQ2xhc3Mm
IHNldExpa2UsIEl0ZW1UeXBlJiYpCit0ZW1wbGF0ZTx0eXBlbmFtZSBXcmFwcGVyQ2xhc3MsIHR5
cGVuYW1lIENhbGxiYWNrPiBpbmxpbmUgSlNDOjpKU1ZhbHVlIGZvcndhcmRGb3JFYWNoVG9TZXRM
aWtlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZy
YW1lJiBjYWxsRnJhbWUsIFdyYXBwZXJDbGFzcyYgc2V0TGlrZSwgQ2FsbGJhY2smJikKIHsKLSAg
ICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwotICAgIHJldHVy
biBmb3J3YXJkRnVuY3Rpb25DYWxsVG9CYWNraW5nU2V0KGxleGljYWxHbG9iYWxPYmplY3QsIGNh
bGxGcmFtZSwgZ2V0QW5kSW5pdGlhbGl6ZUJhY2tpbmdTZXQobGV4aWNhbEdsb2JhbE9iamVjdCwg
c2V0TGlrZSksIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmhhc1B1YmxpY05hbWUo
KSk7CisgICAgZ2V0QW5kSW5pdGlhbGl6ZUJhY2tpbmdTZXQobGV4aWNhbEdsb2JhbE9iamVjdCwg
c2V0TGlrZSk7CisgICAgZm9yd2FyZEZvckVhY2hDYWxsVG9CYWNraW5nU2V0KCpKU0M6OmpzQ2Fz
dDxKU0RPTUdsb2JhbE9iamVjdCo+KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLCBz
ZXRMaWtlKTsKKyAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgpOwogfQogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBXcmFwcGVyQ2xhc3M+IGlubGluZSBKU0M6OkpTVmFsdWUgZm9yd2FyZENsZWFyVG9T
ZXRMaWtlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2Fs
bEZyYW1lJiBjYWxsRnJhbWUsIFdyYXBwZXJDbGFzcyYgc2V0TGlrZSkKQEAgLTEyOCw2ICsxMzIs
MTIgQEAgdGVtcGxhdGU8dHlwZW5hbWUgV3JhcHBlckNsYXNzPiBpbmxpbmUgSlNDOjpKU1ZhbHVl
IGZvcndhcmRDbGVhclRvU2V0TGlrZShKU0M6OkoKICAgICByZXR1cm4gZm9yd2FyZEZ1bmN0aW9u
Q2FsbFRvQmFja2luZ1NldChsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGdldEFuZElu
aXRpYWxpemVCYWNraW5nU2V0KGxleGljYWxHbG9iYWxPYmplY3QsIHNldExpa2UpLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5jbGVhcik7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFdyYXBwZXJDbGFzcywg
dHlwZW5hbWUgSXRlbVR5cGU+IGlubGluZSBKU0M6OkpTVmFsdWUgZm9yd2FyZEhhc1RvU2V0TGlr
ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFt
ZSYgY2FsbEZyYW1lLCBXcmFwcGVyQ2xhc3MmIHNldExpa2UsIEl0ZW1UeXBlJiYpCit7CisgICAg
YXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICByZXR1cm4g
Zm9yd2FyZEZ1bmN0aW9uQ2FsbFRvQmFja2luZ1NldChsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUsIGdldEFuZEluaXRpYWxpemVCYWNraW5nU2V0KGxleGljYWxHbG9iYWxPYmplY3QsIHNl
dExpa2UpLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5oYXNQdWJsaWNOYW1lKCkp
OworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBXcmFwcGVyQ2xhc3MsIHR5cGVuYW1lIEl0ZW1UeXBl
PiBpbmxpbmUgSlNDOjpKU1ZhbHVlIGZvcndhcmRBZGRUb1NldExpa2UoSlNDOjpKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUmIGNhbGxGcmFtZSwgV3Jh
cHBlckNsYXNzJiBzZXRMaWtlLCBJdGVtVHlwZSYmIGl0ZW0pCiB7CiAgICAgc2V0TGlrZS53cmFw
cGVkKCkuYWRkVG9TZXRMaWtlKHN0ZDo6Zm9yd2FyZDxJdGVtVHlwZT4oaXRlbSkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0gYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQppbmRleCA4ZTEyNzU5N2E3
MDRkYWEyYTIwYjZiYWMxYzI5OGE2ODg2NTRjOGUzLi44OTZkZDU0ODhjOGUwNmYxN2Y4MTIxMGZk
NzNmN2Q3Y2U3MGQxNWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0lETFBhcnNlci5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lE
TFBhcnNlci5wbQpAQCAtMjExMCwxMiArMjExMCwyMyBAQCBzdWIgcGFyc2VTZXRMaWtlUHJvcGVy
dGllcwogICAgICR2YWx1ZXNPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e05vdEVudW1l
cmFibGV9ID0gMTsKICAgICAkdmFsdWVzT3BlcmF0aW9uLT50eXBlKG1ha2VTaW1wbGVUeXBlKCJh
bnkiKSk7CiAKLSAgICAjIEZJWE1FOiBBZGQgc3VwcG9ydCB0byBmb3JFYWNoCisgICAgbXkgJGZv
ckVhY2hPcGVyYXRpb24gPSBJRExPcGVyYXRpb24tPm5ldygpOworICAgICRmb3JFYWNoT3BlcmF0
aW9uLT5uYW1lKCJmb3JFYWNoIik7CisgICAgJGZvckVhY2hPcGVyYXRpb24tPmlzU2V0TGlrZSgx
KTsKKyAgICBteSAkZm9yRWFjaEFyZ3VtZW50ID0gSURMQXJndW1lbnQtPm5ldygpOworICAgICRm
b3JFYWNoQXJndW1lbnQtPm5hbWUoImNhbGxiYWNrIik7CisgICAgJGZvckVhY2hBcmd1bWVudC0+
dHlwZShtYWtlU2ltcGxlVHlwZSgiYW55IikpOworICAgICRmb3JFYWNoQXJndW1lbnQtPmV4dGVu
ZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICBwdXNoKEB7JGZvckVh
Y2hPcGVyYXRpb24tPmFyZ3VtZW50c30sICgkZm9yRWFjaEFyZ3VtZW50KSk7CisgICAgJGZvckVh
Y2hPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsK
KyAgICAkZm9yRWFjaE9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RW51bWVyYWJsZX0g
PSAxOworICAgICRmb3JFYWNoT3BlcmF0aW9uLT50eXBlKG1ha2VTaW1wbGVUeXBlKCJhbnkiKSk7
CiAKICAgICBwdXNoKEB7JHNldGxpa2UtPm9wZXJhdGlvbnN9LCAkaGFzT3BlcmF0aW9uKTsKICAg
ICBwdXNoKEB7JHNldGxpa2UtPm9wZXJhdGlvbnN9LCAkZW50cmllc09wZXJhdGlvbik7CiAgICAg
cHVzaChAeyRzZXRsaWtlLT5vcGVyYXRpb25zfSwgJGtleXNPcGVyYXRpb24pOwogICAgIHB1c2go
QHskc2V0bGlrZS0+b3BlcmF0aW9uc30sICR2YWx1ZXNPcGVyYXRpb24pOworICAgIHB1c2goQHsk
c2V0bGlrZS0+b3BlcmF0aW9uc30sICRmb3JFYWNoT3BlcmF0aW9uKTsKIAogICAgIHJldHVybiAk
c2V0bGlrZSBpZiAkaXNSZWFkT25seTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlTZXRMaWtlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5U2V0TGlrZS5jcHAKaW5kZXgg
MzcyZmNjNjFlZThjMDMwNTRkZDEwMTA0MTk5YTY5ZTI4YTY4MTJjZi4uNTJlNjRkZWM1NDQ2MzVh
YzNkYmU5Y2MwOGI0NjAxNzUzNDQ0YWY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlTZXRMaWtlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seVNldExpa2UuY3BwCkBA
IC01MCw2ICs1MCw3IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRP
bmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKEpTQzo6SlNHCiBKU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJp
ZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CiBKU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbktl
eXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CiBKU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvblZh
bHVlcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9u
Rm9yRWFjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKIAogLy8gQXR0
cmlidXRlcwogCkBAIC0xMDksNiArMTEwLDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVl
IEpTUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiAgICAgeyAiZW50cmll
cyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1JlYWRPbmx5U2V0TGlrZVBy
b3RvdHlwZUZ1bmN0aW9uRW50cmllcyksIChpbnRwdHJfdCkgKDApIH0gfSwKICAgICB7ICJrZXlz
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzUmVhZE9ubHlTZXRMaWtlUHJv
dG90eXBlRnVuY3Rpb25LZXlzKSwgKGludHB0cl90KSAoMCkgfSB9LAogICAgIHsgInZhbHVlcyIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1JlYWRPbmx5U2V0TGlrZVByb3Rv
dHlwZUZ1bmN0aW9uVmFsdWVzKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgImZvckVhY2gi
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0g
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNSZWFkT25seVNldExpa2VQcm90
b3R5cGVGdW5jdGlvbkZvckVhY2gpLCAoaW50cHRyX3QpICgxKSB9IH0sCiB9OwogCiBjb25zdCBD
bGFzc0luZm8gSlNSZWFkT25seVNldExpa2VQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlJlYWRPbmx5
U2V0TGlrZVByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNSZWFkT25seVNldExpa2VQcm90b3R5cGUpIH07CkBAIC0yNTksNiAr
MjYxLDIzIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seVNldExpa2VQ
cm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0dsb2JhbE9iCiAgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1JlYWRPbmx5U2V0TGlrZT46OmNhbGw8anNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5j
dGlvblZhbHVlc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFsdWVz
Iik7CiB9CiAKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1JlYWRPbmx5U2V0
TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURM
T3BlcmF0aW9uPEpTUmVhZE9ubHlTZXRMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcywg
SlNDOjpUaHJvd1Njb3BlJiB0aHJvd1Njb3BlKQoreworICAgIFVOVVNFRF9QQVJBTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0oY2FsbEZyYW1lKTsKKyAgICBVTlVTRURf
UEFSQU0odGhyb3dTY29wZSk7CisgICAgaWYgKFVOTElLRUxZKGNhbGxGcmFtZS0+YXJndW1lbnRD
b3VudCgpIDwgMSkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IobGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IobGV4aWNhbEds
b2JhbE9iamVjdCkpOworICAgIGF1dG8gY2FsbGJhY2sgPSBjb252ZXJ0PElETEFueT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIFJF
VFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEZvckVhY2hUb1NldExpa2Uo
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGNh
bGxiYWNrKSkpKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5
U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit7CisgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1JlYWRPbmx5U2V0TGlrZT46OmNhbGw8anNSZWFkT25seVNldExpa2VQcm90b3R5cGVG
dW5jdGlvbkZvckVhY2hCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImZv
ckVhY2giKTsKK30KKwogdm9pZCBKU1JlYWRPbmx5U2V0TGlrZTo6YW5hbHl6ZUhlYXAoSlNDZWxs
KiBjZWxsLCBIZWFwQW5hbHl6ZXImIGFuYWx5emVyKQogewogICAgIGF1dG8qIHRoaXNPYmplY3Qg
PSBqc0Nhc3Q8SlNSZWFkT25seVNldExpa2UqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NldExpa2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2V0TGlrZS5jcHAKaW5kZXggYmQ3YzMw
ZjE3ZWEyZTQyYjAzNTI4Mzg0NTA1MzVhYTU4OGI5YjJhMC4uMTg0YzIzNzI3MzEzOTBlNzgwNTZm
OGUxNTZkMmY2ODczNjQ0NmZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTU2V0TGlrZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2V0TGlrZS5jcHAKQEAgLTUwLDYgKzUwLDcgQEAgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFz
KEpTQzo6SlNHbG9iYWxPYmoKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Nl
dExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
Q2FsbEZyYW1lKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNTZXRMaWtl
UHJvdG90eXBlRnVuY3Rpb25LZXlzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzU2V0TGlrZVByb3RvdHlw
ZUZ1bmN0aW9uVmFsdWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uRm9yRWFjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKIEpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkFk
ZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKIEpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFyKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwpAQCAtMTEyLDYgKzExMyw3IEBAIHN0YXRpYyBj
b25zdCBIYXNoVGFibGVWYWx1ZSBKU1NldExpa2VQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KICAg
ICB7ICJlbnRyaWVzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzU2V0TGlr
ZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyksIChpbnRwdHJfdCkgKDApIH0gfSwKICAgICB7ICJr
ZXlzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzU2V0TGlrZVByb3RvdHlw
ZUZ1bmN0aW9uS2V5cyksIChpbnRwdHJfdCkgKDApIH0gfSwKICAgICB7ICJ2YWx1ZXMiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25W
YWx1ZXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAiZm9yRWFjaCIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gp
LCAoaW50cHRyX3QpICgxKSB9IH0sCiAgICAgeyAiYWRkIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0
aXZlRnVuY3Rpb24+KGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQWRkKSwgKGludHB0cl90KSAo
MSkgfSB9LAogICAgIHsgImNsZWFyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24p
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+
KGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXIpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAg
ICAgeyAiZGVsZXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzU2V0TGlr
ZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKSwgKGludHB0cl90KSAoMSkgfSB9LApAQCAtMjY1LDYg
KzI2NywyMyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzU2V0TGlrZVByb3RvdHlw
ZUZ1bmN0aW9uVmFsdWVzKEpTR2xvYmFsT2JqZWN0KiBsZQogICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNTZXRMaWtlPjo6Y2FsbDxqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlc0JvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFsdWVzIik7CiB9CiAKK3N0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkZv
ckVhY2hCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1NldExpa2U+OjpD
bGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzLCBKU0M6OlRocm93U2NvcGUmIHRocm93U2NvcGUpCit7
CisgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOworICAgIFVOVVNFRF9QQVJB
TShjYWxsRnJhbWUpOworICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKKyAgICBpZiAoVU5M
SUtFTFkoY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkgPCAxKSkKKyAgICAgICAgcmV0dXJuIHRo
cm93Vk1FcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91
Z2hBcmd1bWVudHNFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KSk7CisgICAgYXV0byBjYWxsYmFj
ayA9IGNvbnZlcnQ8SURMQW55PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT51bmNo
ZWNrZWRBcmd1bWVudCgwKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBl
bmNvZGVkSlNWYWx1ZSgpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55
Pihmb3J3YXJkRm9yRWFjaFRvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoY2FsbGJhY2spKSkpOworfQorCitFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit7Cisg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1NldExpa2U+OjpjYWxsPGpzU2V0TGlrZVByb3RvdHlw
ZUZ1bmN0aW9uRm9yRWFjaEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
Zm9yRWFjaCIpOworfQorCiBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNTZXRM
aWtlUHJvdG90eXBlRnVuY3Rpb25BZGRCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJh
dGlvbjxKU1NldExpa2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzLCBKU0M6OlRocm93U2Nv
cGUmIHRocm93U2NvcGUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3Qp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDU3ZDA3NmQzYjE5NzYwZjI2ZTBmY2ZmMDI3NDdlMDI0ZTc5NTcyNzYuLmMxMjIw
NzAzMjZmZDJhYjQ5N2U4YjViMzgxODIxMWYxODZkNTQ1NzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBA
QAorMjAxOS0xMi0wNiAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIFdlYklETCBzZXQtbGlrZSBmb3JFYWNoCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ4NDcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGpzL2RvbS9tYXBsaWtlLmh0bWw6
CisgICAgICAgICoganMvZG9tL3NldGxpa2UuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMt
d2sxL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgIGluc3BlY3RvciB0ZXN0IGlzIGZhaWxpbmcg
b24gZGVidWcgV0sxIHdoZW4gdXBkYXRpbmcgYnVpbHQtaW4gaW50ZXJuYWxzLgorCiAyMDE5LTEy
LTA1ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdl
YiBJbnNwZWN0b3I6IGh0dHAvdGVzdHMvaW5zcGVjdG9yL3RhcmdldC9wYXVzZS1vbi1pbmxpbmUt
ZGVidWdnZXItc3RhdGVtZW50Lmh0bWwgaXMgY3Jhc2hpbmcgaW4gZGVidWcKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL2RvbS9tYXBsaWtlLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbWFw
bGlrZS5odG1sCmluZGV4IGMzNmU1MmRiY2IxOGY4ODA5NzI5ZDQxOWRhNDVmYzExMjllNmNiNjUu
LjVjZTM0YWQ4ZDI2MWRlZGIyNTgyOTZlMmRjMGJhYTU0MzExYzQ1NjYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2pzL2RvbS9tYXBsaWtlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21h
cGxpa2UuaHRtbApAQCAtNDgsNiArNDgsNyBAQCB0ZXN0KCgpID0+IHsKICAgICB9CiAgICAgYXNz
ZXJ0X2VxdWFscyhrZXlzVGVzdCwgInRlc3RBdGVzdEIiLCAia2V5cyB0ZXN0Iik7CiAKKyAgICBh
c3NlcnRfZXF1YWxzKG1hcGxpa2UuZm9yRWFjaC5sZW5ndGgsIDEpOwogICAgIGxldCBmb3JFYWNo
VGVzdCA9ICIiOwogICAgIG1hcGxpa2UuZm9yRWFjaCgodmFsdWUsIGtleSwgb2JqZWN0KSA9PiB7
CiAgICAgICAgIGZvckVhY2hUZXN0ICs9IGtleTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pz
L2RvbS9zZXRsaWtlLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2V0bGlrZS5odG1sCmluZGV4
IGIyOTU4YmIyNWEzNmRmZGExMjdjYTE3MjZjMDdkZWI3NDA2Mjc1NTUuLmI3NDhhOTk3NTdlMDE2
ZjFlMjVhMDM1YzVkY2Y0OTNkZGUwNjY5ZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2Rv
bS9zZXRsaWtlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NldGxpa2UuaHRtbApAQCAt
NDIsNiArNDIsMTUgQEAgdGVzdCgoKSA9PiB7CiAgICAgfQogICAgIGFzc2VydF9lcXVhbHMoa2V5
c1Rlc3QsICJ0ZXN0dGVzdDIiLCAia2V5cyB0ZXN0Iik7CiAKKyAgICBhc3NlcnRfZXF1YWxzKHNl
dGxpa2UuZm9yRWFjaC5sZW5ndGgsIDEpOworICAgIGxldCBmb3JFYWNoVGVzdCA9ICIiOworICAg
IHNldGxpa2UuZm9yRWFjaCgoa2V5LCB2YWx1ZSwgb2JqZWN0KSA9PiB7CisgICAgICAgIGZvckVh
Y2hUZXN0ICs9IGtleTsKKyAgICAgICAgZm9yRWFjaFRlc3QgKz0gdmFsdWU7CisgICAgICAgIGFz
c2VydF9lcXVhbHMob2JqZWN0LCBzZXRsaWtlKTsKKyAgICB9KTsKKyAgICBhc3NlcnRfZXF1YWxz
KGZvckVhY2hUZXN0LCAidGVzdHRlc3R0ZXN0MnRlc3QyIiwgImZvckVhY2ggdGVzdCIpOworCiAg
ICAgc2V0bGlrZS5jbGVhcigpOwogICAgIGFzc2VydF9hcnJheV9lcXVhbHMoc2V0bGlrZS5pdGVt
cygpLCBbXSk7CiB9LCAiQmFzaWMgYWRkL3JlbW92ZS9jbGVhciBmdW5jdGlvbmFsaXR5Iik7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMWQw
OTc2NDVmYjhkOTUwMWM2NGVmMDk2NzA4NWExOGIxNzIyYmYxOS4uNTY3M2Y5MTg1NDI5MDdiZmY0
MWQyN2RhYmExZjEzODNkYjFhNTFjMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzAsNiArMzAsOCBAQCBodHRwL3Rlc3RzL3NlY3VyaXR5
L2NsaXBib2FyZC9kcmFnLWRyb3AtaHRtbC1jcm9zcy1vcmlnaW4taWZyYW1lLWluLXNhbWUtb3Jp
Z2luLgogCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQteHNsLWV4dGVybmFsLWVudGl0
eS1uby1sb2dnaW5nLnhtbCBbIFBhc3MgXQogCitbIERlYnVnIF0gaW5zcGVjdG9yL2RlYnVnZ2Vy
L3RhaWwtZGVsZXRlZC1mcmFtZXMvdGFpbC1kZWxldGVkLWZyYW1lcy10aGlzLXZhbHVlLmh0bWwg
WyBQYXNzIEZhaWx1cmUgXQorCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAj
IEVuZCBwbGF0Zm9ybS1zcGVjaWZpYyBkaXJlY3Rvcmllcy4KICMvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385123</attachid>
            <date>2019-12-08 08:15:53 -0800</date>
            <delta_ts>2019-12-09 00:05:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204847-20191208171551.patch</filename>
            <type>text/plain</type>
            <size>20137</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMjcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI3YzMyOTVkNjMzMTU3
ZjAxYThhNjM3NmFkZTJmNTM3NzhlZjBmNi4uNWQ4MzhmZDI0NjI3NGM2ZjZmZWU2MDczMTUwNzEy
MjMzZmMyMmVhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTEyLTA4ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
V2ViSURMIHNldC1saWtlIGZvckVhY2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNDg0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IHRvIHNldGxpa2UgZm9yRWFjaCBhcyBkb25lIGZv
ciBtYXBsaWtlLgorICAgICAgICBDb3ZlcmVkIGJ5IHJlYmFzZWQgYmluZGluZyB0ZXN0cyBhbmQg
dXBkYXRlZCBsYXlvdXQgdGVzdC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGlu
Z0ludGVybmFscy5qczoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVNldExpa2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Zm9yd2FyZEZvckVhY2hDYWxsVG9CYWNraW5nU2V0KToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0RPTVNldExpa2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OmZvcndh
cmRDbGVhclRvU2V0TGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpmb3J3YXJkRm9yRWFjaFRvU2V0
TGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpmb3J3YXJkSGFzVG9TZXRMaWtlKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbToKKyAgICAgICAgKHBhcnNlU2V0TGlrZVBy
b3BlcnRpZXMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5
U2V0TGlrZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlw
ZUZ1bmN0aW9uRm9yRWFjaEJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6anNSZWFkT25seVNldExp
a2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1NldExpa2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNTZXRMaWtlUHJvdG90
eXBlRnVuY3Rpb25Gb3JFYWNoQm9keSk6CisgICAgICAgIChXZWJDb3JlOjpqc1NldExpa2VQcm90
b3R5cGVGdW5jdGlvbkZvckVhY2gpOgorCiAyMDE5LTEyLTA4ICB5b3Vlbm4gZmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBwb3J0IGRpZmZlcmVudCByZXNvbHV0aW9ucyBm
b3IgdmlkZW8gdHJhY2tzIGNhcHR1cmVkIGZyb20gVUlQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmdJbnRlcm5hbHMuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmdJbnRlcm5hbHMuanMKaW5kZXggN2Y0ZWRi
NzJkYWIwYjZkMjI4NWU0YmQ4OWNlMTcwNTA2NTM5N2Y0Yy4uMzc5OTgyZGRkYjljNjI4NjU5ZTI2
OWJkZmYxMWNiN2IxZDAxNjA1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nSW50ZXJuYWxzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQmluZGluZ0ludGVybmFscy5qcwpAQCAtMjgsNyArMjgsMTUgQEAKIGZ1bmN0aW9u
IG1hcExpa2VGb3JFYWNoKGNhbGxiYWNrKQogewogICAgICJ1c2Ugc3RyaWN0IjsKLSAgICBAZ2V0
QnlJZERpcmVjdFByaXZhdGUodGhpcywgImJhY2tpbmdNYXAiKS5mb3JFYWNoKCh2YWx1ZSwga2V5
LCBtYXApID0+IHsKKyAgICBAZ2V0QnlJZERpcmVjdFByaXZhdGUodGhpcywgImJhY2tpbmdNYXAi
KS5mb3JFYWNoKCh2YWx1ZSwga2V5LCBiYWNraW5nTWFwKSA9PiB7CisgICAgICAgIGNhbGxiYWNr
KHZhbHVlLCBrZXksIHRoaXMpOworICAgIH0pOworfQorCitmdW5jdGlvbiBzZXRMaWtlRm9yRWFj
aChjYWxsYmFjaykKK3sKKyAgICAidXNlIHN0cmljdCI7CisgICAgQGdldEJ5SWREaXJlY3RQcml2
YXRlKHRoaXMsICJiYWNraW5nU2V0IikuZm9yRWFjaCgodmFsdWUsIGtleSwgYmFja2luZ1NldCkg
PT4gewogICAgICAgICBjYWxsYmFjayh2YWx1ZSwga2V5LCB0aGlzKTsKICAgICB9KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NU2V0TGlrZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVNldExpa2UuY3BwCmluZGV4IDFkZTdhODFm
NmU3OTZjNmJhNTM0MTgwODdlOWNkNjFiYjZjZTU5YmQuLmY0MTY3NTE3MzU3YzQwNTIzMzA1ZjVh
Yjg2NzM0ZTY0ZjZlODM5NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NU2V0TGlrZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01T
ZXRMaWtlLmNwcApAQCAtOTYsNCArOTYsMTkgQEAgSlNDOjpKU1ZhbHVlIGZvcndhcmRGdW5jdGlv
bkNhbGxUb0JhY2tpbmdTZXQoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE8KICAg
ICByZXR1cm4gSlNDOjpjYWxsKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCBmdW5jdGlvbiwgY2FsbFR5
cGUsIGNhbGxEYXRhLCAmYmFja2luZ1NldCwgYXJndW1lbnRzKTsKIH0KIAorSlNDOjpKU1ZhbHVl
IGZvcndhcmRGb3JFYWNoQ2FsbFRvQmFja2luZ1NldChKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFs
T2JqZWN0LCBKU0M6OkNhbGxGcmFtZSYgY2FsbEZyYW1lLCBKU0M6OkpTT2JqZWN0JiBzZXRMaWtl
KQoreworICAgIGF1dG8qIGZ1bmN0aW9uID0gZ2xvYmFsT2JqZWN0LmJ1aWx0aW5JbnRlcm5hbEZ1
bmN0aW9ucygpLmpzRE9NQmluZGluZ0ludGVybmFscygpLm1fc2V0TGlrZUZvckVhY2hGdW5jdGlv
bi5nZXQoKTsKKyAgICBBU1NFUlQoZnVuY3Rpb24pOworCisgICAgSlNDOjpDYWxsRGF0YSBjYWxs
RGF0YTsKKyAgICBKU0M6OkNhbGxUeXBlIGNhbGxUeXBlID0gSlNDOjpnZXRDYWxsRGF0YShnbG9i
YWxPYmplY3Qudm0oKSwgZnVuY3Rpb24sIGNhbGxEYXRhKTsKKyAgICBBU1NFUlQoY2FsbFR5cGUg
IT0gSlNDOjpDYWxsVHlwZTo6Tm9uZSk7CisgICAgSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlciBh
cmd1bWVudHM7CisgICAgZm9yIChzaXplX3QgY3B0ciA9IDA7IGNwdHIgPCBjYWxsRnJhbWUuYXJn
dW1lbnRDb3VudCgpOyArK2NwdHIpCisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQoY2FsbEZyYW1l
LnVuY2hlY2tlZEFyZ3VtZW50KGNwdHIpKTsKKyAgICBBU1NFUlQoIWFyZ3VtZW50cy5oYXNPdmVy
Zmxvd2VkKCkpOworICAgIHJldHVybiBKU0M6OmNhbGwoJmdsb2JhbE9iamVjdCwgZnVuY3Rpb24s
IGNhbGxUeXBlLCBjYWxsRGF0YSwgJnNldExpa2UsIGFyZ3VtZW50cyk7Cit9CisKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NU2V0TGlrZS5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01TZXRMaWtlLmgKaW5kZXggMTE4OGIzNjZmMGYyMTAz
NzQ4ZGMxN2I3ZTg4NzhjYTM0YmM2NjhjZC4uNjY3YWY2MjY5NTIwYmU3Y2I2YjZlMTM2YzA3MDE5
MjA4NDM1ZmE3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01T
ZXRMaWtlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01TZXRMaWtlLmgK
QEAgLTM0LDYgKzM0LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV0VCQ09SRV9FWFBPUlQg
c3RkOjpwYWlyPGJvb2wsIHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8SlNDOjpKU09iamVjdD4+IGdl
dEJhY2tpbmdTZXQoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNPYmplY3QmIHNldExpa2Up
OworV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIGZvcndhcmRGb3JFYWNoQ2FsbFRvQmFja2lu
Z1NldChKU0RPTUdsb2JhbE9iamVjdCYsIEpTQzo6Q2FsbEZyYW1lJiwgSlNDOjpKU09iamVjdCYg
c2V0TGlrZSk7CiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgZm9yd2FyZEF0dHJpYnV0ZUdl
dHRlclRvQmFja2luZ1NldChKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpKU09iamVjdCYsIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYpOwogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIGZvcndh
cmRGdW5jdGlvbkNhbGxUb0JhY2tpbmdTZXQoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6Q2Fs
bEZyYW1lJiwgSlNDOjpKU09iamVjdCYsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwogV0VCQ09S
RV9FWFBPUlQgdm9pZCBjbGVhckJhY2tpbmdTZXQoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6
SlNPYmplY3QmKTsKQEAgLTQ0LDcgKzQ1LDkgQEAgdGVtcGxhdGU8dHlwZW5hbWUgV3JhcHBlckNs
YXNzPiBKU0M6OkpTVmFsdWUgZm9yd2FyZFNpemVUb1NldExpa2UoSlNDOjpKU0dsb2JhbE8KIHRl
bXBsYXRlPHR5cGVuYW1lIFdyYXBwZXJDbGFzcz4gSlNDOjpKU1ZhbHVlIGZvcndhcmRFbnRyaWVz
VG9TZXRMaWtlKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OkNhbGxGcmFtZSYsIFdyYXBwZXJD
bGFzcyYpOwogdGVtcGxhdGU8dHlwZW5hbWUgV3JhcHBlckNsYXNzPiBKU0M6OkpTVmFsdWUgZm9y
d2FyZEtleXNUb1NldExpa2UoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6Q2FsbEZyYW1lJiwg
V3JhcHBlckNsYXNzJik7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBXcmFwcGVyQ2xhc3M+IEpTQzo6SlNW
YWx1ZSBmb3J3YXJkVmFsdWVzVG9TZXRMaWtlKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OkNh
bGxGcmFtZSYsIFdyYXBwZXJDbGFzcyYpOwordGVtcGxhdGU8dHlwZW5hbWUgV3JhcHBlckNsYXNz
LCB0eXBlbmFtZSBDYWxsYmFjaz4gSlNDOjpKU1ZhbHVlIGZvcndhcmRGb3JFYWNoVG9TZXRMaWtl
KEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OkNhbGxGcmFtZSYsIFdyYXBwZXJDbGFzcyYsIENh
bGxiYWNrJiYpOwogdGVtcGxhdGU8dHlwZW5hbWUgV3JhcHBlckNsYXNzPiBKU0M6OkpTVmFsdWUg
Zm9yd2FyZENsZWFyVG9TZXRMaWtlKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OkNhbGxGcmFt
ZSYsIFdyYXBwZXJDbGFzcyYpOworCiB0ZW1wbGF0ZTx0eXBlbmFtZSBXcmFwcGVyQ2xhc3MsIHR5
cGVuYW1lIEl0ZW1UeXBlPiBKU0M6OkpTVmFsdWUgZm9yd2FyZEhhc1RvU2V0TGlrZShKU0M6OkpT
R2xvYmFsT2JqZWN0JiwgSlNDOjpDYWxsRnJhbWUmLCBXcmFwcGVyQ2xhc3MmLCBJdGVtVHlwZSYm
KTsKIHRlbXBsYXRlPHR5cGVuYW1lIFdyYXBwZXJDbGFzcywgdHlwZW5hbWUgSXRlbVR5cGU+IEpT
Qzo6SlNWYWx1ZSBmb3J3YXJkQWRkVG9TZXRMaWtlKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6
OkNhbGxGcmFtZSYsIFdyYXBwZXJDbGFzcyYsIEl0ZW1UeXBlJiYpOwogdGVtcGxhdGU8dHlwZW5h
bWUgV3JhcHBlckNsYXNzLCB0eXBlbmFtZSBJdGVtVHlwZT4gSlNDOjpKU1ZhbHVlIGZvcndhcmRE
ZWxldGVUb1NldExpa2UoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6Q2FsbEZyYW1lJiwgV3Jh
cHBlckNsYXNzJiwgSXRlbVR5cGUmJik7CkBAIC0xMTMsMTAgKzExNiwxMSBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBXcmFwcGVyQ2xhc3M+IGlubGluZSBKU0M6OkpTVmFsdWUgZm9yd2FyZFZhbHVlc1Rv
U2V0TGlrZShKU0M6OgogICAgIHJldHVybiBmb3J3YXJkRnVuY3Rpb25DYWxsVG9CYWNraW5nU2V0
KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgZ2V0QW5kSW5pdGlhbGl6ZUJhY2tpbmdT
ZXQobGV4aWNhbEdsb2JhbE9iamVjdCwgc2V0TGlrZSksIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLnZhbHVlc1B1YmxpY05hbWUoKSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFdy
YXBwZXJDbGFzcywgdHlwZW5hbWUgSXRlbVR5cGU+IGlubGluZSBKU0M6OkpTVmFsdWUgZm9yd2Fy
ZEhhc1RvU2V0TGlrZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U0M6OkNhbGxGcmFtZSYgY2FsbEZyYW1lLCBXcmFwcGVyQ2xhc3MmIHNldExpa2UsIEl0ZW1UeXBl
JiYpCit0ZW1wbGF0ZTx0eXBlbmFtZSBXcmFwcGVyQ2xhc3MsIHR5cGVuYW1lIENhbGxiYWNrPiBp
bmxpbmUgSlNDOjpKU1ZhbHVlIGZvcndhcmRGb3JFYWNoVG9TZXRMaWtlKEpTQzo6SlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lJiBjYWxsRnJhbWUsIFdy
YXBwZXJDbGFzcyYgc2V0TGlrZSwgQ2FsbGJhY2smJikKIHsKLSAgICBhdXRvJiB2bSA9IEpTQzo6
Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwotICAgIHJldHVybiBmb3J3YXJkRnVuY3Rpb25D
YWxsVG9CYWNraW5nU2V0KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgZ2V0QW5kSW5p
dGlhbGl6ZUJhY2tpbmdTZXQobGV4aWNhbEdsb2JhbE9iamVjdCwgc2V0TGlrZSksIHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmhhc1B1YmxpY05hbWUoKSk7CisgICAgZ2V0QW5kSW5p
dGlhbGl6ZUJhY2tpbmdTZXQobGV4aWNhbEdsb2JhbE9iamVjdCwgc2V0TGlrZSk7CisgICAgZm9y
d2FyZEZvckVhY2hDYWxsVG9CYWNraW5nU2V0KCpKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVj
dCo+KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLCBzZXRMaWtlKTsKKyAgICByZXR1
cm4gSlNDOjpqc1VuZGVmaW5lZCgpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBXcmFwcGVyQ2xh
c3M+IGlubGluZSBKU0M6OkpTVmFsdWUgZm9yd2FyZENsZWFyVG9TZXRMaWtlKEpTQzo6SlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lJiBjYWxsRnJhbWUs
IFdyYXBwZXJDbGFzcyYgc2V0TGlrZSkKQEAgLTEyNyw2ICsxMzEsMTIgQEAgdGVtcGxhdGU8dHlw
ZW5hbWUgV3JhcHBlckNsYXNzPiBpbmxpbmUgSlNDOjpKU1ZhbHVlIGZvcndhcmRDbGVhclRvU2V0
TGlrZShKU0M6OkoKICAgICByZXR1cm4gZm9yd2FyZEZ1bmN0aW9uQ2FsbFRvQmFja2luZ1NldChs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGdldEFuZEluaXRpYWxpemVCYWNraW5nU2V0
KGxleGljYWxHbG9iYWxPYmplY3QsIHNldExpa2UpLCB2bS5wcm9wZXJ0eU5hbWVzLT5jbGVhcik7
CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFdyYXBwZXJDbGFzcywgdHlwZW5hbWUgSXRlbVR5cGU+
IGlubGluZSBKU0M6OkpTVmFsdWUgZm9yd2FyZEhhc1RvU2V0TGlrZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSYgY2FsbEZyYW1lLCBXcmFw
cGVyQ2xhc3MmIHNldExpa2UsIEl0ZW1UeXBlJiYpCit7CisgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICByZXR1cm4gZm9yd2FyZEZ1bmN0aW9uQ2Fs
bFRvQmFja2luZ1NldChsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGdldEFuZEluaXRp
YWxpemVCYWNraW5nU2V0KGxleGljYWxHbG9iYWxPYmplY3QsIHNldExpa2UpLCB2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5oYXNQdWJsaWNOYW1lKCkpOworfQorCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBXcmFwcGVyQ2xhc3MsIHR5cGVuYW1lIEl0ZW1UeXBlPiBpbmxpbmUgSlNDOjpKU1Zh
bHVlIGZvcndhcmRBZGRUb1NldExpa2UoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNDOjpDYWxsRnJhbWUmIGNhbGxGcmFtZSwgV3JhcHBlckNsYXNzJiBzZXRMaWtl
LCBJdGVtVHlwZSYmIGl0ZW0pCiB7CiAgICAgc2V0TGlrZS53cmFwcGVkKCkuYWRkVG9TZXRMaWtl
KHN0ZDo6Zm9yd2FyZDxJdGVtVHlwZT4oaXRlbSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0lETFBhcnNlci5wbQppbmRleCA4ZTEyNzU5N2E3MDRkYWEyYTIwYjZiYWMxYzI5
OGE2ODg2NTRjOGUzLi44OTZkZDU0ODhjOGUwNmYxN2Y4MTIxMGZkNzNmN2Q3Y2U3MGQxNWJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQpAQCAtMjEx
MCwxMiArMjExMCwyMyBAQCBzdWIgcGFyc2VTZXRMaWtlUHJvcGVydGllcwogICAgICR2YWx1ZXNP
cGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e05vdEVudW1lcmFibGV9ID0gMTsKICAgICAk
dmFsdWVzT3BlcmF0aW9uLT50eXBlKG1ha2VTaW1wbGVUeXBlKCJhbnkiKSk7CiAKLSAgICAjIEZJ
WE1FOiBBZGQgc3VwcG9ydCB0byBmb3JFYWNoCisgICAgbXkgJGZvckVhY2hPcGVyYXRpb24gPSBJ
RExPcGVyYXRpb24tPm5ldygpOworICAgICRmb3JFYWNoT3BlcmF0aW9uLT5uYW1lKCJmb3JFYWNo
Iik7CisgICAgJGZvckVhY2hPcGVyYXRpb24tPmlzU2V0TGlrZSgxKTsKKyAgICBteSAkZm9yRWFj
aEFyZ3VtZW50ID0gSURMQXJndW1lbnQtPm5ldygpOworICAgICRmb3JFYWNoQXJndW1lbnQtPm5h
bWUoImNhbGxiYWNrIik7CisgICAgJGZvckVhY2hBcmd1bWVudC0+dHlwZShtYWtlU2ltcGxlVHlw
ZSgiYW55IikpOworICAgICRmb3JFYWNoQXJndW1lbnQtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICBwdXNoKEB7JGZvckVhY2hPcGVyYXRpb24tPmFyZ3Vt
ZW50c30sICgkZm9yRWFjaEFyZ3VtZW50KSk7CisgICAgJGZvckVhY2hPcGVyYXRpb24tPmV4dGVu
ZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAkZm9yRWFjaE9wZXJh
dGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RW51bWVyYWJsZX0gPSAxOworICAgICRmb3JFYWNo
T3BlcmF0aW9uLT50eXBlKG1ha2VTaW1wbGVUeXBlKCJhbnkiKSk7CiAKICAgICBwdXNoKEB7JHNl
dGxpa2UtPm9wZXJhdGlvbnN9LCAkaGFzT3BlcmF0aW9uKTsKICAgICBwdXNoKEB7JHNldGxpa2Ut
Pm9wZXJhdGlvbnN9LCAkZW50cmllc09wZXJhdGlvbik7CiAgICAgcHVzaChAeyRzZXRsaWtlLT5v
cGVyYXRpb25zfSwgJGtleXNPcGVyYXRpb24pOwogICAgIHB1c2goQHskc2V0bGlrZS0+b3BlcmF0
aW9uc30sICR2YWx1ZXNPcGVyYXRpb24pOworICAgIHB1c2goQHskc2V0bGlrZS0+b3BlcmF0aW9u
c30sICRmb3JFYWNoT3BlcmF0aW9uKTsKIAogICAgIHJldHVybiAkc2V0bGlrZSBpZiAkaXNSZWFk
T25seTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTUmVhZE9ubHlTZXRMaWtlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1JlYWRPbmx5U2V0TGlrZS5jcHAKaW5kZXggMzcyZmNjNjFlZThjMDMwNTRk
ZDEwMTA0MTk5YTY5ZTI4YTY4MTJjZi4uNTJlNjRkZWM1NDQ2MzVhYzNkYmU5Y2MwOGI0NjAxNzUz
NDQ0YWY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTUmVhZE9ubHlTZXRMaWtlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seVNldExpa2UuY3BwCkBAIC01MCw2ICs1MCw3IEBAIEpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlw
ZUZ1bmN0aW9uSGFzKEpTQzo6SlNHCiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKIAogLy8gQXR0cmlidXRlcwogCkBAIC0xMDks
NiArMTEwLDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTUmVhZE9ubHlTZXRMaWtl
UHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiAgICAgeyAiZW50cmllcyIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50
cmllcyksIChpbnRwdHJfdCkgKDApIH0gfSwKICAgICB7ICJrZXlzIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UmF3TmF0aXZlRnVuY3Rpb24+KGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlz
KSwgKGludHB0cl90KSAoMCkgfSB9LAogICAgIHsgInZhbHVlcyIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJh
d05hdGl2ZUZ1bmN0aW9uPihqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVz
KSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgImZvckVhY2giLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxS
YXdOYXRpdmVGdW5jdGlvbj4oanNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVh
Y2gpLCAoaW50cHRyX3QpICgxKSB9IH0sCiB9OwogCiBjb25zdCBDbGFzc0luZm8gSlNSZWFkT25s
eVNldExpa2VQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZSIs
ICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNS
ZWFkT25seVNldExpa2VQcm90b3R5cGUpIH07CkBAIC0yNTksNiArMjYxLDIzIEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvblZh
bHVlcyhKU0dsb2JhbE9iCiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1JlYWRPbmx5U2V0TGlr
ZT46OmNhbGw8anNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlc0JvZHk+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFsdWVzIik7CiB9CiAKK3N0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uRm9yRWFjaEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTUmVhZE9u
bHlTZXRMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcywgSlNDOjpUaHJvd1Njb3BlJiB0
aHJvd1Njb3BlKQoreworICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAg
ICBVTlVTRURfUEFSQU0oY2FsbEZyYW1lKTsKKyAgICBVTlVTRURfUEFSQU0odGhyb3dTY29wZSk7
CisgICAgaWYgKFVOTElLRUxZKGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpIDwgMSkpCisgICAg
ICAgIHJldHVybiB0aHJvd1ZNRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwg
Y3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCkpOworICAg
IGF1dG8gY2FsbGJhY2sgPSBjb252ZXJ0PElETEFueT4oKmxleGljYWxHbG9iYWxPYmplY3QsIGNh
bGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
dGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZSh0b0pTPElETEFueT4oZm9yd2FyZEZvckVhY2hUb1NldExpa2UoKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGNhbGxiYWNrKSkpKTsKK30KKwor
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1
bmN0aW9uRm9yRWFjaChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCit7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1JlYWRPbmx5U2V0
TGlrZT46OmNhbGw8anNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2hCb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImZvckVhY2giKTsKK30KKwogdm9p
ZCBKU1JlYWRPbmx5U2V0TGlrZTo6YW5hbHl6ZUhlYXAoSlNDZWxsKiBjZWxsLCBIZWFwQW5hbHl6
ZXImIGFuYWx5emVyKQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNSZWFkT25s
eVNldExpa2UqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1NldExpa2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTU2V0TGlrZS5jcHAKaW5kZXggYmQ3YzMwZjE3ZWEyZTQyYjAzNTI4Mzg0
NTA1MzVhYTU4OGI5YjJhMC4uMTg0YzIzNzI3MzEzOTBlNzgwNTZmOGUxNTZkMmY2ODczNjQ0NmZj
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
U2V0TGlrZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTU2V0TGlrZS5jcHAKQEAgLTUwLDYgKzUwLDcgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKEpTQzo6SlNHbG9iYWxPYmoK
IEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1NldExpa2VQcm90b3R5cGVGdW5j
dGlvbkVudHJpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CiBKU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25L
ZXlzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwogSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkFkZChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzU2V0
TGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNh
bGxGcmFtZSopOwpAQCAtMTEyLDYgKzExMyw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1
ZSBKU1NldExpa2VQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KICAgICB7ICJlbnRyaWVzIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9u
RW50cmllcyksIChpbnRwdHJfdCkgKDApIH0gfSwKICAgICB7ICJrZXlzIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyksIChp
bnRwdHJfdCkgKDApIH0gfSwKICAgICB7ICJ2YWx1ZXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRp
dmVGdW5jdGlvbj4oanNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMpLCAoaW50cHRyX3Qp
ICgwKSB9IH0sCisgICAgeyAiZm9yRWFjaCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0
aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0
aW9uPihqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpLCAoaW50cHRyX3QpICgxKSB9
IH0sCiAgICAgeyAiYWRkIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzU2V0
TGlrZVByb3RvdHlwZUZ1bmN0aW9uQWRkKSwgKGludHB0cl90KSAoMSkgfSB9LAogICAgIHsgImNs
ZWFyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzU2V0TGlrZVByb3RvdHlw
ZUZ1bmN0aW9uQ2xlYXIpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAiZGVsZXRlIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9u
RGVsZXRlKSwgKGludHB0cl90KSAoMSkgfSB9LApAQCAtMjY1LDYgKzI2NywyMyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKEpT
R2xvYmFsT2JqZWN0KiBsZQogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNTZXRMaWtlPjo6Y2Fs
bDxqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAidmFsdWVzIik7CiB9CiAKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2hCb2R5KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJh
bWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1NldExpa2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0
ZWRUaGlzLCBKU0M6OlRocm93U2NvcGUmIHRocm93U2NvcGUpCit7CisgICAgVU5VU0VEX1BBUkFN
KGxleGljYWxHbG9iYWxPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTShjYWxsRnJhbWUpOworICAg
IFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKKyAgICBpZiAoVU5MSUtFTFkoY2FsbEZyYW1lLT5h
cmd1bWVudENvdW50KCkgPCAxKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihs
ZXhpY2FsR2xvYmFsT2JqZWN0KSk7CisgICAgYXV0byBjYWxsYmFjayA9IGNvbnZlcnQ8SURMQW55
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7
CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRm9yRWFjaFRv
U2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdU
Rk1vdmUoY2FsbGJhY2spKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit7CisgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1NldExpa2U+OjpjYWxsPGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaEJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZm9yRWFjaCIpOworfQorCiBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rp
b25BZGRCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1NldExpa2U+OjpD
bGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzLCBKU0M6OlRocm93U2NvcGUmIHRocm93U2NvcGUpCiB7
CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDExOTNhZDY1
MGIwNmJjMzEwZjEyY2NjYmVmN2YzMDY2NTMyNzc5YjguLmU5MzE3NzI4NjJlN2VjNmJjM2EwNTA2
N2Q1ZjMxOTQ4MDBjNGVlM2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0xMi0wOCAgeW91
ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IFdlYklETCBzZXQtbGlrZSBmb3JFYWNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDQ4NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGpzL2RvbS9tYXBsaWtlLmh0bWw6CisgICAgICAgICoganMvZG9t
L3NldGxpa2UuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlv
bnM6CisgICAgICAgIGluc3BlY3RvciB0ZXN0IGlzIGZhaWxpbmcgb24gZGVidWcgV0sxIHdoZW4g
dXBkYXRpbmcgYnVpbHQtaW4gaW50ZXJuYWxzLgorCiAyMDE5LTEyLTA4ICB5b3Vlbm4gZmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBwb3J0IGRpZmZlcmVudCByZXNvbHV0
aW9ucyBmb3IgdmlkZW8gdHJhY2tzIGNhcHR1cmVkIGZyb20gVUlQcm9jZXNzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9kb20vbWFwbGlrZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21h
cGxpa2UuaHRtbAppbmRleCBjMzZlNTJkYmNiMThmODgwOTcyOWQ0MTlkYTQ1ZmMxMTI5ZTZjYjY1
Li41Y2UzNGFkOGQyNjFkZWRiMjU4Mjk2ZTJkYzBiYWE1NDMxMWM0NTY2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9qcy9kb20vbWFwbGlrZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9t
YXBsaWtlLmh0bWwKQEAgLTQ4LDYgKzQ4LDcgQEAgdGVzdCgoKSA9PiB7CiAgICAgfQogICAgIGFz
c2VydF9lcXVhbHMoa2V5c1Rlc3QsICJ0ZXN0QXRlc3RCIiwgImtleXMgdGVzdCIpOwogCisgICAg
YXNzZXJ0X2VxdWFscyhtYXBsaWtlLmZvckVhY2gubGVuZ3RoLCAxKTsKICAgICBsZXQgZm9yRWFj
aFRlc3QgPSAiIjsKICAgICBtYXBsaWtlLmZvckVhY2goKHZhbHVlLCBrZXksIG9iamVjdCkgPT4g
ewogICAgICAgICBmb3JFYWNoVGVzdCArPSBrZXk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9kb20vc2V0bGlrZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NldGxpa2UuaHRtbAppbmRl
eCBiMjk1OGJiMjVhMzZkZmRhMTI3Y2ExNzI2YzA3ZGViNzQwNjI3NTU1Li5iNzQ4YTk5NzU3ZTAx
NmYxZTI1YTAzNWM1ZGNmNDkzZGRlMDY2OWUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9k
b20vc2V0bGlrZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zZXRsaWtlLmh0bWwKQEAg
LTQyLDYgKzQyLDE1IEBAIHRlc3QoKCkgPT4gewogICAgIH0KICAgICBhc3NlcnRfZXF1YWxzKGtl
eXNUZXN0LCAidGVzdHRlc3QyIiwgImtleXMgdGVzdCIpOwogCisgICAgYXNzZXJ0X2VxdWFscyhz
ZXRsaWtlLmZvckVhY2gubGVuZ3RoLCAxKTsKKyAgICBsZXQgZm9yRWFjaFRlc3QgPSAiIjsKKyAg
ICBzZXRsaWtlLmZvckVhY2goKGtleSwgdmFsdWUsIG9iamVjdCkgPT4geworICAgICAgICBmb3JF
YWNoVGVzdCArPSBrZXk7CisgICAgICAgIGZvckVhY2hUZXN0ICs9IHZhbHVlOworICAgICAgICBh
c3NlcnRfZXF1YWxzKG9iamVjdCwgc2V0bGlrZSk7CisgICAgfSk7CisgICAgYXNzZXJ0X2VxdWFs
cyhmb3JFYWNoVGVzdCwgInRlc3R0ZXN0dGVzdDJ0ZXN0MiIsICJmb3JFYWNoIHRlc3QiKTsKKwog
ICAgIHNldGxpa2UuY2xlYXIoKTsKICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHNldGxpa2UuaXRl
bXMoKSwgW10pOwogfSwgIkJhc2ljIGFkZC9yZW1vdmUvY2xlYXIgZnVuY3Rpb25hbGl0eSIpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDFk
MDk3NjQ1ZmI4ZDk1MDFjNjRlZjA5NjcwODVhMThiMTcyMmJmMTkuLjU2NzNmOTE4NTQyOTA3YmZm
NDFkMjdkYWJhMWYxMzgzZGIxYTUxYzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azEvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2sxL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTMwLDYgKzMwLDggQEAgaHR0cC90ZXN0cy9zZWN1cml0
eS9jbGlwYm9hcmQvZHJhZy1kcm9wLWh0bWwtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1pbi1zYW1lLW9y
aWdpbi4KIAogaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXhzbC1leHRlcm5hbC1lbnRp
dHktbm8tbG9nZ2luZy54bWwgWyBQYXNzIF0KIAorWyBEZWJ1ZyBdIGluc3BlY3Rvci9kZWJ1Z2dl
ci90YWlsLWRlbGV0ZWQtZnJhbWVzL3RhaWwtZGVsZXRlZC1mcmFtZXMtdGhpcy12YWx1ZS5odG1s
IFsgUGFzcyBGYWlsdXJlIF0KKwogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwog
IyBFbmQgcGxhdGZvcm0tc3BlY2lmaWMgZGlyZWN0b3JpZXMuCiAjLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385136</attachid>
            <date>2019-12-09 00:05:19 -0800</date>
            <delta_ts>2019-12-13 12:49:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204847-20191209090517.patch</filename>
            <type>text/plain</type>
            <size>26318</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODllYzkxYWVhYjg5YjE0
Nzg3ZWY2OWQ5ZDg3Zjg5MmNmYWFjOTgyMC4uM2JmMmIzMzgzNjllZGI4MzFmZWYzY2RlMjE4NDA4
ZTQxYzljZjgyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE5LTEyLTA5ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
V2ViSURMIHNldC1saWtlIGZvckVhY2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNDg0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IHRvIHNldGxpa2UgZm9yRWFjaCBhcyBkb25lIGZv
ciBtYXBsaWtlLgorICAgICAgICBDb3ZlcmVkIGJ5IHJlYmFzZWQgYmluZGluZyB0ZXN0cyBhbmQg
dXBkYXRlZCBsYXlvdXQgdGVzdC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGlu
Z0ludGVybmFscy5qczoKKyAgICAgICAgKGZvckVhY2hXcmFwcGVyKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTU1hcExpa2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Zm9yd2FyZEZvckVh
Y2hDYWxsVG9CYWNraW5nTWFwKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVNldExpa2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2V0QWRhcHRlcjo6Y2xlYXIpOgorICAgICAgICAo
V2ViQ29yZTo6Zm9yd2FyZEZvckVhY2hDYWxsVG9CYWNraW5nU2V0KToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTVNldExpa2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldEFkYXB0ZXI6
OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpnZXRBbmRJbml0aWFsaXplQmFja2luZ1NldCk6Cisg
ICAgICAgIChXZWJDb3JlOjpmb3J3YXJkU2l6ZVRvU2V0TGlrZSk6CisgICAgICAgIChXZWJDb3Jl
Ojpmb3J3YXJkRW50cmllc1RvU2V0TGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpmb3J3YXJkS2V5
c1RvU2V0TGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpmb3J3YXJkVmFsdWVzVG9TZXRMaWtlKToK
KyAgICAgICAgKFdlYkNvcmU6OmZvcndhcmRGb3JFYWNoVG9TZXRMaWtlKToKKyAgICAgICAgKFdl
YkNvcmU6OmZvcndhcmRDbGVhclRvU2V0TGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpmb3J3YXJk
SGFzVG9TZXRMaWtlKToKKyAgICAgICAgKFdlYkNvcmU6OmZvcndhcmRBZGRUb1NldExpa2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Zm9yd2FyZERlbGV0ZVRvU2V0TGlrZSk6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG06CisgICAgICAgIChwYXJzZVNldExpa2VQcm9wZXJ0
aWVzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seVNldExp
a2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5j
dGlvbkZvckVhY2hCb2R5KToKKyAgICAgICAgKFdlYkNvcmU6OmpzUmVhZE9ubHlTZXRMaWtlUHJv
dG90eXBlRnVuY3Rpb25Gb3JFYWNoKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNTZXRMaWtlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzU2V0TGlrZVByb3RvdHlwZUZ1
bmN0aW9uRm9yRWFjaEJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6anNTZXRMaWtlUHJvdG90eXBl
RnVuY3Rpb25Gb3JFYWNoKToKKwogMjAxOS0xMi0wOCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIFdlYkNvcmU6OlBhdGggZW5jb2RlcnMgYW5k
IGRlY29kZXJzIGludG8gV2ViQ29yZSBmcm9tIFdlYkNvcmVBcmd1bWVudENvZGVycwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nSW50ZXJuYWxzLmpz
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nSW50ZXJuYWxzLmpzCmlu
ZGV4IDdmNGVkYjcyZGFiMGI2ZDIyODVlNGJkODljZTE3MDUwNjUzOTdmNGMuLjk3ZWRiNmY0OGU3
ZThjMmFhNGZkZWEzMzU3ZDQ0NzhiNTI1NTkwZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZ0ludGVybmFscy5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmdJbnRlcm5hbHMuanMKQEAgLTI1LDEwICsyNSwxMCBA
QAogCiAvLyBAaW50ZXJuYWwKIAotZnVuY3Rpb24gbWFwTGlrZUZvckVhY2goY2FsbGJhY2spCitm
dW5jdGlvbiBmb3JFYWNoV3JhcHBlcihtYXBMaWtlT3JTZXRMaWtlLCBjYWxsYmFjaykKIHsKICAg
ICAidXNlIHN0cmljdCI7Ci0gICAgQGdldEJ5SWREaXJlY3RQcml2YXRlKHRoaXMsICJiYWNraW5n
TWFwIikuZm9yRWFjaCgodmFsdWUsIGtleSwgbWFwKSA9PiB7CisgICAgbWFwTGlrZU9yU2V0TGlr
ZS5mb3JFYWNoKCh2YWx1ZSwga2V5LCBiYWNraW5nTWFwT3JTZXQpID0+IHsKICAgICAgICAgY2Fs
bGJhY2sodmFsdWUsIGtleSwgdGhpcyk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTU1hcExpa2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01NYXBMaWtlLmNwcAppbmRleCBlYjA5ZmU3YWVmNzZiZGZjMDlhNjA3Mzg0
ZGFlMzYxYjI4NGZlZTY3Li4yMzY0YWQ5YmExNGEyM2MyY2IzOGJhNTlkYzQwMzc0ZWYwOGIwYWFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTU1hcExpa2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NTWFwTGlrZS5jcHAKQEAgLTEw
MSwxMyArMTAxLDE4IEBAIEpTQzo6SlNWYWx1ZSBmb3J3YXJkRnVuY3Rpb25DYWxsVG9CYWNraW5n
TWFwKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPCiAKIEpTQzo6SlNWYWx1ZSBm
b3J3YXJkRm9yRWFjaENhbGxUb0JhY2tpbmdNYXAoSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9i
amVjdCwgSlNDOjpDYWxsRnJhbWUmIGNhbGxGcmFtZSwgSlNDOjpKU09iamVjdCYgbWFwTGlrZSkK
IHsKLSAgICBhdXRvKiBmdW5jdGlvbiA9IGdsb2JhbE9iamVjdC5idWlsdGluSW50ZXJuYWxGdW5j
dGlvbnMoKS5qc0RPTUJpbmRpbmdJbnRlcm5hbHMoKS5tX21hcExpa2VGb3JFYWNoRnVuY3Rpb24u
Z2V0KCk7CisgICAgYXV0byByZXN1bHQgPSBnZXRCYWNraW5nTWFwKGdsb2JhbE9iamVjdCwgbWFw
TGlrZSk7CisgICAgQVNTRVJUKCFyZXN1bHQuZmlyc3QpOworCisgICAgYXV0byogZnVuY3Rpb24g
PSBnbG9iYWxPYmplY3QuYnVpbHRpbkludGVybmFsRnVuY3Rpb25zKCkuanNET01CaW5kaW5nSW50
ZXJuYWxzKCkubV9mb3JFYWNoV3JhcHBlckZ1bmN0aW9uLmdldCgpOwogICAgIEFTU0VSVChmdW5j
dGlvbik7CiAKICAgICBKU0M6OkNhbGxEYXRhIGNhbGxEYXRhOwogICAgIGF1dG8gY2FsbFR5cGUg
PSBKU0M6OmdldENhbGxEYXRhKGdsb2JhbE9iamVjdC52bSgpLCBmdW5jdGlvbiwgY2FsbERhdGEp
OwogICAgIEFTU0VSVChjYWxsVHlwZSAhPSBKU0M6OkNhbGxUeXBlOjpOb25lKTsKKwogICAgIEpT
Qzo6TWFya2VkQXJndW1lbnRCdWZmZXIgYXJndW1lbnRzOworICAgIGFyZ3VtZW50cy5hcHBlbmQo
JnJlc3VsdC5zZWNvbmQuZ2V0KCkpOwogICAgIGZvciAoc2l6ZV90IGNwdHIgPSAwOyBjcHRyIDwg
Y2FsbEZyYW1lLmFyZ3VtZW50Q291bnQoKTsgKytjcHRyKQogICAgICAgICBhcmd1bWVudHMuYXBw
ZW5kKGNhbGxGcmFtZS51bmNoZWNrZWRBcmd1bWVudChjcHRyKSk7CiAgICAgQVNTRVJUKCFhcmd1
bWVudHMuaGFzT3ZlcmZsb3dlZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NU2V0TGlrZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVNldExpa2UuY3BwCmluZGV4IDFkZTdhODFmNmU3OTZjNmJhNTM0MTgwODdlOWNkNjFiYjZjZTU5
YmQuLjQ2MzkyZDYxYTZjYmNhMWIwNTEwODQ2NDljY2I0ZThhZmJjZmUwZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NU2V0TGlrZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01TZXRMaWtlLmNwcApAQCAtMzIsNiArMzIsMTEgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit2b2lkIERPTVNldEFkYXB0ZXI6OmNsZWFyKCkKK3sK
KyAgICBjbGVhckJhY2tpbmdTZXQobV9sZXhpY2FsR2xvYmFsT2JqZWN0LCBtX2JhY2tpbmdTZXQp
OworfQorCiBzdGQ6OnBhaXI8Ym9vbCwgc3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxKU0M6OkpTT2Jq
ZWN0Pj4gZ2V0QmFja2luZ1NldChKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0M6OkpTT2JqZWN0JiBzZXRMaWtlKQogewogICAgIGF1dG8mIHZtID0gbGV4aWNhbEds
b2JhbE9iamVjdC52bSgpOwpAQCAtOTYsNCArMTAxLDI0IEBAIEpTQzo6SlNWYWx1ZSBmb3J3YXJk
RnVuY3Rpb25DYWxsVG9CYWNraW5nU2V0KEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPCiAgICAgcmV0dXJuIEpTQzo6Y2FsbCgmbGV4aWNhbEdsb2JhbE9iamVjdCwgZnVuY3Rpb24s
IGNhbGxUeXBlLCBjYWxsRGF0YSwgJmJhY2tpbmdTZXQsIGFyZ3VtZW50cyk7CiB9CiAKK0pTQzo6
SlNWYWx1ZSBmb3J3YXJkRm9yRWFjaENhbGxUb0JhY2tpbmdTZXQoSlNET01HbG9iYWxPYmplY3Qm
IGdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUmIGNhbGxGcmFtZSwgSlNDOjpKU09iamVjdCYg
c2V0TGlrZSkKK3sKKyAgICBhdXRvIHJlc3VsdCA9IGdldEJhY2tpbmdTZXQoZ2xvYmFsT2JqZWN0
LCBzZXRMaWtlKTsKKyAgICBBU1NFUlQoIXJlc3VsdC5maXJzdCk7CisKKyAgICBhdXRvKiBmdW5j
dGlvbiA9IGdsb2JhbE9iamVjdC5idWlsdGluSW50ZXJuYWxGdW5jdGlvbnMoKS5qc0RPTUJpbmRp
bmdJbnRlcm5hbHMoKS5tX2ZvckVhY2hXcmFwcGVyRnVuY3Rpb24uZ2V0KCk7CisgICAgQVNTRVJU
KGZ1bmN0aW9uKTsKKworICAgIEpTQzo6Q2FsbERhdGEgY2FsbERhdGE7CisgICAgSlNDOjpDYWxs
VHlwZSBjYWxsVHlwZSA9IEpTQzo6Z2V0Q2FsbERhdGEoZ2xvYmFsT2JqZWN0LnZtKCksIGZ1bmN0
aW9uLCBjYWxsRGF0YSk7CisgICAgQVNTRVJUKGNhbGxUeXBlICE9IEpTQzo6Q2FsbFR5cGU6Ok5v
bmUpOworCisgICAgSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmd1bWVudHM7CisgICAgYXJn
dW1lbnRzLmFwcGVuZCgmcmVzdWx0LnNlY29uZC5nZXQoKSk7CisgICAgZm9yIChzaXplX3QgY3B0
ciA9IDA7IGNwdHIgPCBjYWxsRnJhbWUuYXJndW1lbnRDb3VudCgpOyArK2NwdHIpCisgICAgICAg
IGFyZ3VtZW50cy5hcHBlbmQoY2FsbEZyYW1lLnVuY2hlY2tlZEFyZ3VtZW50KGNwdHIpKTsKKyAg
ICBBU1NFUlQoIWFyZ3VtZW50cy5oYXNPdmVyZmxvd2VkKCkpOworICAgIHJldHVybiBKU0M6OmNh
bGwoJmdsb2JhbE9iamVjdCwgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgJnNldExpa2Us
IGFyZ3VtZW50cyk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NU2V0TGlrZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01TZXRM
aWtlLmgKaW5kZXggMTE4OGIzNjZmMGYyMTAzNzQ4ZGMxN2I3ZTg4NzhjYTM0YmM2NjhjZC4uMDcx
ODk0NGMyNmMwZDYxZTMxMDU2OGZlZWQ1NTY2MzI0OGNmMDgyNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01TZXRMaWtlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01TZXRMaWtlLmgKQEAgLTM0LDYgKzM0LDcgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogV0VCQ09SRV9FWFBPUlQgc3RkOjpwYWlyPGJvb2wsIHN0ZDo6cmVmZXJlbmNl
X3dyYXBwZXI8SlNDOjpKU09iamVjdD4+IGdldEJhY2tpbmdTZXQoSlNDOjpKU0dsb2JhbE9iamVj
dCYsIEpTQzo6SlNPYmplY3QmIHNldExpa2UpOworV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVl
IGZvcndhcmRGb3JFYWNoQ2FsbFRvQmFja2luZ1NldChKU0RPTUdsb2JhbE9iamVjdCYsIEpTQzo6
Q2FsbEZyYW1lJiwgSlNDOjpKU09iamVjdCYgc2V0TGlrZSk7CiBXRUJDT1JFX0VYUE9SVCBKU0M6
OkpTVmFsdWUgZm9yd2FyZEF0dHJpYnV0ZUdldHRlclRvQmFja2luZ1NldChKU0M6OkpTR2xvYmFs
T2JqZWN0JiwgSlNDOjpKU09iamVjdCYsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwogV0VCQ09S
RV9FWFBPUlQgSlNDOjpKU1ZhbHVlIGZvcndhcmRGdW5jdGlvbkNhbGxUb0JhY2tpbmdTZXQoSlND
OjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6Q2FsbEZyYW1lJiwgSlNDOjpKU09iamVjdCYsIGNvbnN0
IEpTQzo6SWRlbnRpZmllciYpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhckJhY2tpbmdTZXQo
SlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNPYmplY3QmKTsKQEAgLTQ0LDcgKzQ1LDkgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgV3JhcHBlckNsYXNzPiBKU0M6OkpTVmFsdWUgZm9yd2FyZFNpemVU
b1NldExpa2UoSlNDOjpKU0dsb2JhbE8KIHRlbXBsYXRlPHR5cGVuYW1lIFdyYXBwZXJDbGFzcz4g
SlNDOjpKU1ZhbHVlIGZvcndhcmRFbnRyaWVzVG9TZXRMaWtlKEpTQzo6SlNHbG9iYWxPYmplY3Qm
LCBKU0M6OkNhbGxGcmFtZSYsIFdyYXBwZXJDbGFzcyYpOwogdGVtcGxhdGU8dHlwZW5hbWUgV3Jh
cHBlckNsYXNzPiBKU0M6OkpTVmFsdWUgZm9yd2FyZEtleXNUb1NldExpa2UoSlNDOjpKU0dsb2Jh
bE9iamVjdCYsIEpTQzo6Q2FsbEZyYW1lJiwgV3JhcHBlckNsYXNzJik7CiB0ZW1wbGF0ZTx0eXBl
bmFtZSBXcmFwcGVyQ2xhc3M+IEpTQzo6SlNWYWx1ZSBmb3J3YXJkVmFsdWVzVG9TZXRMaWtlKEpT
Qzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OkNhbGxGcmFtZSYsIFdyYXBwZXJDbGFzcyYpOwordGVt
cGxhdGU8dHlwZW5hbWUgV3JhcHBlckNsYXNzLCB0eXBlbmFtZSBDYWxsYmFjaz4gSlNDOjpKU1Zh
bHVlIGZvcndhcmRGb3JFYWNoVG9TZXRMaWtlKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OkNh
bGxGcmFtZSYsIFdyYXBwZXJDbGFzcyYsIENhbGxiYWNrJiYpOwogdGVtcGxhdGU8dHlwZW5hbWUg
V3JhcHBlckNsYXNzPiBKU0M6OkpTVmFsdWUgZm9yd2FyZENsZWFyVG9TZXRMaWtlKEpTQzo6SlNH
bG9iYWxPYmplY3QmLCBKU0M6OkNhbGxGcmFtZSYsIFdyYXBwZXJDbGFzcyYpOworCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBXcmFwcGVyQ2xhc3MsIHR5cGVuYW1lIEl0ZW1UeXBlPiBKU0M6OkpTVmFsdWUg
Zm9yd2FyZEhhc1RvU2V0TGlrZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpDYWxsRnJhbWUm
LCBXcmFwcGVyQ2xhc3MmLCBJdGVtVHlwZSYmKTsKIHRlbXBsYXRlPHR5cGVuYW1lIFdyYXBwZXJD
bGFzcywgdHlwZW5hbWUgSXRlbVR5cGU+IEpTQzo6SlNWYWx1ZSBmb3J3YXJkQWRkVG9TZXRMaWtl
KEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OkNhbGxGcmFtZSYsIFdyYXBwZXJDbGFzcyYsIEl0
ZW1UeXBlJiYpOwogdGVtcGxhdGU8dHlwZW5hbWUgV3JhcHBlckNsYXNzLCB0eXBlbmFtZSBJdGVt
VHlwZT4gSlNDOjpKU1ZhbHVlIGZvcndhcmREZWxldGVUb1NldExpa2UoSlNDOjpKU0dsb2JhbE9i
amVjdCYsIEpTQzo6Q2FsbEZyYW1lJiwgV3JhcHBlckNsYXNzJiwgSXRlbVR5cGUmJik7CkBAIC01
Miw3ICs1NSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFdyYXBwZXJDbGFzcywgdHlwZW5hbWUgSXRl
bVR5cGU+IEpTQzo6SlNWYWx1ZSBmb3J3YXJkRGVsZXRlVG9TCiBjbGFzcyBET01TZXRBZGFwdGVy
IHsKIHB1YmxpYzoKICAgICBET01TZXRBZGFwdGVyKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6
OkpTT2JqZWN0Jik7Ci0gICAgdGVtcGxhdGU8Y2xhc3MgSURMVHlwZT4gdm9pZCBhZGQodHlwZW5h
bWUgSURMVHlwZTo6UGFyYW1ldGVyVHlwZSB2YWx1ZSk7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
SURMVHlwZT4gdm9pZCBhZGQodHlwZW5hbWUgSURMVHlwZTo6UGFyYW1ldGVyVHlwZSB2YWx1ZSk7
CiAgICAgdm9pZCBjbGVhcigpOwogCiBwcml2YXRlOgpAQCAtNjYsMjAgKzY5LDE2IEBAIGlubGlu
ZSBET01TZXRBZGFwdGVyOjpET01TZXRBZGFwdGVyKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTCiB7CiB9CiAKLXRlbXBsYXRlPGNsYXNzIElETFR5cGU+Ci1pbmxp
bmUgdm9pZCBET01TZXRBZGFwdGVyOjphZGQodHlwZW5hbWUgSURMVHlwZTo6UGFyYW1ldGVyVHlw
ZSB2YWx1ZSkKK3RlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+Cit2b2lkIERPTVNldEFkYXB0ZXI6
OmFkZCh0eXBlbmFtZSBJRExUeXBlOjpQYXJhbWV0ZXJUeXBlIHZhbHVlKQogewogICAgIEpTQzo6
SlNMb2NrSG9sZGVyIGxvY2tlcigmbV9sZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIGl0
ZW0gPSB0b0pTPElETFR5cGU+KG1fbGV4aWNhbEdsb2JhbE9iamVjdCwgKkpTQzo6anNDYXN0PEpT
RE9NR2xvYmFsT2JqZWN0Kj4oJm1fbGV4aWNhbEdsb2JhbE9iamVjdCksIHN0ZDo6Zm9yd2FyZDx0
eXBlbmFtZSBJRExUeXBlOjpQYXJhbWV0ZXJUeXBlPih2YWx1ZSkpOwogICAgIGFkZFRvQmFja2lu
Z1NldChtX2xleGljYWxHbG9iYWxPYmplY3QsIG1fYmFja2luZ1NldCwgaXRlbSk7CiB9CiAKLWlu
bGluZSB2b2lkIERPTVNldEFkYXB0ZXI6OmNsZWFyKCkKLXsKLSAgICBjbGVhckJhY2tpbmdTZXQo
bV9sZXhpY2FsR2xvYmFsT2JqZWN0LCBtX2JhY2tpbmdTZXQpOwotfQotCi10ZW1wbGF0ZTx0eXBl
bmFtZSBXcmFwcGVyQ2xhc3M+IGlubGluZSBKU0M6OkpTT2JqZWN0JiBnZXRBbmRJbml0aWFsaXpl
QmFja2luZ1NldChKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBXcmFw
cGVyQ2xhc3MmIHNldExpa2UpCit0ZW1wbGF0ZTx0eXBlbmFtZSBXcmFwcGVyQ2xhc3M+CitKU0M6
OkpTT2JqZWN0JiBnZXRBbmRJbml0aWFsaXplQmFja2luZ1NldChKU0M6OkpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBXcmFwcGVyQ2xhc3MmIHNldExpa2UpCiB7CiAgICAgYXV0
byBwYWlyID0gZ2V0QmFja2luZ1NldChsZXhpY2FsR2xvYmFsT2JqZWN0LCBzZXRMaWtlKTsKICAg
ICBpZiAocGFpci5maXJzdCkgewpAQCAtODksMzcgKzg4LDQzIEBAIHRlbXBsYXRlPHR5cGVuYW1l
IFdyYXBwZXJDbGFzcz4gaW5saW5lIEpTQzo6SlNPYmplY3QmIGdldEFuZEluaXRpYWxpemVCYWNr
aW5nU2V0CiAgICAgcmV0dXJuIHBhaXIuc2Vjb25kLmdldCgpOwogfQogCi10ZW1wbGF0ZTx0eXBl
bmFtZSBXcmFwcGVyQ2xhc3M+IGlubGluZSBKU0M6OkpTVmFsdWUgZm9yd2FyZFNpemVUb1NldExp
a2UoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgV3JhcHBlckNsYXNz
JiBzZXRMaWtlKQordGVtcGxhdGU8dHlwZW5hbWUgV3JhcHBlckNsYXNzPgorSlNDOjpKU1ZhbHVl
IGZvcndhcmRTaXplVG9TZXRMaWtlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIFdyYXBwZXJDbGFzcyYgc2V0TGlrZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBmb3J3YXJkQXR0cmlidXRlR2V0
dGVyVG9CYWNraW5nU2V0KGxleGljYWxHbG9iYWxPYmplY3QsIGdldEFuZEluaXRpYWxpemVCYWNr
aW5nU2V0KGxleGljYWxHbG9iYWxPYmplY3QsIHNldExpa2UpLCB2bS5wcm9wZXJ0eU5hbWVzLT5z
aXplKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgV3JhcHBlckNsYXNzPiBpbmxpbmUgSlNDOjpK
U1ZhbHVlIGZvcndhcmRFbnRyaWVzVG9TZXRMaWtlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lJiBjYWxsRnJhbWUsIFdyYXBwZXJDbGFzcyYg
c2V0TGlrZSkKK3RlbXBsYXRlPHR5cGVuYW1lIFdyYXBwZXJDbGFzcz4KK0pTQzo6SlNWYWx1ZSBm
b3J3YXJkRW50cmllc1RvU2V0TGlrZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU0M6OkNhbGxGcmFtZSYgY2FsbEZyYW1lLCBXcmFwcGVyQ2xhc3MmIHNldExpa2Up
CiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICByZXR1cm4gZm9yd2FyZEZ1bmN0aW9uQ2FsbFRvQmFja2luZ1NldChsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBjYWxsRnJhbWUsIGdldEFuZEluaXRpYWxpemVCYWNraW5nU2V0KGxleGljYWxHbG9iYWxP
YmplY3QsIHNldExpa2UpLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5lbnRyaWVz
UHVibGljTmFtZSgpKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgV3JhcHBlckNsYXNzPiBpbmxp
bmUgSlNDOjpKU1ZhbHVlIGZvcndhcmRLZXlzVG9TZXRMaWtlKEpTQzo6SlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lJiBjYWxsRnJhbWUsIFdyYXBwZXJD
bGFzcyYgc2V0TGlrZSkKK3RlbXBsYXRlPHR5cGVuYW1lIFdyYXBwZXJDbGFzcz4KK0pTQzo6SlNW
YWx1ZSBmb3J3YXJkS2V5c1RvU2V0TGlrZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSYgY2FsbEZyYW1lLCBXcmFwcGVyQ2xhc3MmIHNldExp
a2UpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICByZXR1cm4gZm9yd2FyZEZ1bmN0aW9uQ2FsbFRvQmFja2luZ1NldChsZXhpY2FsR2xvYmFs
T2JqZWN0LCBjYWxsRnJhbWUsIGdldEFuZEluaXRpYWxpemVCYWNraW5nU2V0KGxleGljYWxHbG9i
YWxPYmplY3QsIHNldExpa2UpLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5rZXlz
UHVibGljTmFtZSgpKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgV3JhcHBlckNsYXNzPiBpbmxp
bmUgSlNDOjpKU1ZhbHVlIGZvcndhcmRWYWx1ZXNUb1NldExpa2UoSlNDOjpKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUmIGNhbGxGcmFtZSwgV3JhcHBl
ckNsYXNzJiBzZXRMaWtlKQordGVtcGxhdGU8dHlwZW5hbWUgV3JhcHBlckNsYXNzPgorSlNDOjpK
U1ZhbHVlIGZvcndhcmRWYWx1ZXNUb1NldExpa2UoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUmIGNhbGxGcmFtZSwgV3JhcHBlckNsYXNzJiBz
ZXRMaWtlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgcmV0dXJuIGZvcndhcmRGdW5jdGlvbkNhbGxUb0JhY2tpbmdTZXQobGV4aWNhbEds
b2JhbE9iamVjdCwgY2FsbEZyYW1lLCBnZXRBbmRJbml0aWFsaXplQmFja2luZ1NldChsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBzZXRMaWtlKSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCku
dmFsdWVzUHVibGljTmFtZSgpKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgV3JhcHBlckNsYXNz
LCB0eXBlbmFtZSBJdGVtVHlwZT4gaW5saW5lIEpTQzo6SlNWYWx1ZSBmb3J3YXJkSGFzVG9TZXRM
aWtlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZy
YW1lJiBjYWxsRnJhbWUsIFdyYXBwZXJDbGFzcyYgc2V0TGlrZSwgSXRlbVR5cGUmJikKK3RlbXBs
YXRlPHR5cGVuYW1lIFdyYXBwZXJDbGFzcywgdHlwZW5hbWUgQ2FsbGJhY2s+CitKU0M6OkpTVmFs
dWUgZm9yd2FyZEZvckVhY2hUb1NldExpa2UoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUmIGNhbGxGcmFtZSwgV3JhcHBlckNsYXNzJiBzZXRM
aWtlLCBDYWxsYmFjayYmKQogewotICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCk7Ci0gICAgcmV0dXJuIGZvcndhcmRGdW5jdGlvbkNhbGxUb0JhY2tpbmdTZXQo
bGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBnZXRBbmRJbml0aWFsaXplQmFja2luZ1Nl
dChsZXhpY2FsR2xvYmFsT2JqZWN0LCBzZXRMaWtlKSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRp
bk5hbWVzKCkuaGFzUHVibGljTmFtZSgpKTsKKyAgICBnZXRBbmRJbml0aWFsaXplQmFja2luZ1Nl
dChsZXhpY2FsR2xvYmFsT2JqZWN0LCBzZXRMaWtlKTsKKyAgICByZXR1cm4gZm9yd2FyZEZvckVh
Y2hDYWxsVG9CYWNraW5nU2V0KCpKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLCBzZXRMaWtlKTsKIH0KIAotdGVtcGxhdGU8dHlw
ZW5hbWUgV3JhcHBlckNsYXNzPiBpbmxpbmUgSlNDOjpKU1ZhbHVlIGZvcndhcmRDbGVhclRvU2V0
TGlrZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxG
cmFtZSYgY2FsbEZyYW1lLCBXcmFwcGVyQ2xhc3MmIHNldExpa2UpCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBXcmFwcGVyQ2xhc3M+CitKU0M6OkpTVmFsdWUgZm9yd2FyZENsZWFyVG9TZXRMaWtlKEpTQzo6
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lJiBjYWxs
RnJhbWUsIFdyYXBwZXJDbGFzcyYgc2V0TGlrZSkKIHsKICAgICBzZXRMaWtlLndyYXBwZWQoKS5j
bGVhckZyb21TZXRMaWtlKCk7CiAKQEAgLTEyNyw3ICsxMzIsMTUgQEAgdGVtcGxhdGU8dHlwZW5h
bWUgV3JhcHBlckNsYXNzPiBpbmxpbmUgSlNDOjpKU1ZhbHVlIGZvcndhcmRDbGVhclRvU2V0TGlr
ZShKU0M6OkoKICAgICByZXR1cm4gZm9yd2FyZEZ1bmN0aW9uQ2FsbFRvQmFja2luZ1NldChsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGdldEFuZEluaXRpYWxpemVCYWNraW5nU2V0KGxl
eGljYWxHbG9iYWxPYmplY3QsIHNldExpa2UpLCB2bS5wcm9wZXJ0eU5hbWVzLT5jbGVhcik7CiB9
CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFdyYXBwZXJDbGFzcywgdHlwZW5hbWUgSXRlbVR5cGU+IGlu
bGluZSBKU0M6OkpTVmFsdWUgZm9yd2FyZEFkZFRvU2V0TGlrZShKU0M6OkpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSYgY2FsbEZyYW1lLCBXcmFwcGVy
Q2xhc3MmIHNldExpa2UsIEl0ZW1UeXBlJiYgaXRlbSkKK3RlbXBsYXRlPHR5cGVuYW1lIFdyYXBw
ZXJDbGFzcywgdHlwZW5hbWUgSXRlbVR5cGU+CitKU0M6OkpTVmFsdWUgZm9yd2FyZEhhc1RvU2V0
TGlrZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxG
cmFtZSYgY2FsbEZyYW1lLCBXcmFwcGVyQ2xhc3MmIHNldExpa2UsIEl0ZW1UeXBlJiYpCit7Cisg
ICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICByZXR1
cm4gZm9yd2FyZEZ1bmN0aW9uQ2FsbFRvQmFja2luZ1NldChsZXhpY2FsR2xvYmFsT2JqZWN0LCBj
YWxsRnJhbWUsIGdldEFuZEluaXRpYWxpemVCYWNraW5nU2V0KGxleGljYWxHbG9iYWxPYmplY3Qs
IHNldExpa2UpLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5oYXNQdWJsaWNOYW1l
KCkpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBXcmFwcGVyQ2xhc3MsIHR5cGVuYW1lIEl0ZW1U
eXBlPgorSlNDOjpKU1ZhbHVlIGZvcndhcmRBZGRUb1NldExpa2UoSlNDOjpKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUmIGNhbGxGcmFtZSwgV3JhcHBl
ckNsYXNzJiBzZXRMaWtlLCBJdGVtVHlwZSYmIGl0ZW0pCiB7CiAgICAgc2V0TGlrZS53cmFwcGVk
KCkuYWRkVG9TZXRMaWtlKHN0ZDo6Zm9yd2FyZDxJdGVtVHlwZT4oaXRlbSkpOwogCkBAIC0xMzYs
NyArMTQ5LDggQEAgdGVtcGxhdGU8dHlwZW5hbWUgV3JhcHBlckNsYXNzLCB0eXBlbmFtZSBJdGVt
VHlwZT4gaW5saW5lIEpTQzo6SlNWYWx1ZSBmb3J3YXJkQWQKICAgICByZXR1cm4gJnNldExpa2U7
CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFdyYXBwZXJDbGFzcywgdHlwZW5hbWUgSXRlbVR5cGU+
IGlubGluZSBKU0M6OkpTVmFsdWUgZm9yd2FyZERlbGV0ZVRvU2V0TGlrZShKU0M6OkpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSYgY2FsbEZyYW1lLCBX
cmFwcGVyQ2xhc3MmIHNldExpa2UsIEl0ZW1UeXBlJiYgaXRlbSkKK3RlbXBsYXRlPHR5cGVuYW1l
IFdyYXBwZXJDbGFzcywgdHlwZW5hbWUgSXRlbVR5cGU+CitKU0M6OkpTVmFsdWUgZm9yd2FyZERl
bGV0ZVRvU2V0TGlrZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U0M6OkNhbGxGcmFtZSYgY2FsbEZyYW1lLCBXcmFwcGVyQ2xhc3MmIHNldExpa2UsIEl0ZW1UeXBl
JiYgaXRlbSkKIHsKICAgICBhdXRvIGlzRGVsZXRlZCA9IHNldExpa2Uud3JhcHBlZCgpLnJlbW92
ZUZyb21TZXRMaWtlKHN0ZDo6Zm9yd2FyZDxJdGVtVHlwZT4oaXRlbSkpOwogICAgIFVOVVNFRF9Q
QVJBTShpc0RlbGV0ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9JRExQYXJzZXIucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBh
cnNlci5wbQppbmRleCA4ZTEyNzU5N2E3MDRkYWEyYTIwYjZiYWMxYzI5OGE2ODg2NTRjOGUzLi44
OTZkZDU0ODhjOGUwNmYxN2Y4MTIxMGZkNzNmN2Q3Y2U3MGQxNWJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQpAQCAtMjExMCwxMiArMjExMCwyMyBA
QCBzdWIgcGFyc2VTZXRMaWtlUHJvcGVydGllcwogICAgICR2YWx1ZXNPcGVyYXRpb24tPmV4dGVu
ZGVkQXR0cmlidXRlcy0+e05vdEVudW1lcmFibGV9ID0gMTsKICAgICAkdmFsdWVzT3BlcmF0aW9u
LT50eXBlKG1ha2VTaW1wbGVUeXBlKCJhbnkiKSk7CiAKLSAgICAjIEZJWE1FOiBBZGQgc3VwcG9y
dCB0byBmb3JFYWNoCisgICAgbXkgJGZvckVhY2hPcGVyYXRpb24gPSBJRExPcGVyYXRpb24tPm5l
dygpOworICAgICRmb3JFYWNoT3BlcmF0aW9uLT5uYW1lKCJmb3JFYWNoIik7CisgICAgJGZvckVh
Y2hPcGVyYXRpb24tPmlzU2V0TGlrZSgxKTsKKyAgICBteSAkZm9yRWFjaEFyZ3VtZW50ID0gSURM
QXJndW1lbnQtPm5ldygpOworICAgICRmb3JFYWNoQXJndW1lbnQtPm5hbWUoImNhbGxiYWNrIik7
CisgICAgJGZvckVhY2hBcmd1bWVudC0+dHlwZShtYWtlU2ltcGxlVHlwZSgiYW55IikpOworICAg
ICRmb3JFYWNoQXJndW1lbnQtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0KTsKKyAgICBwdXNoKEB7JGZvckVhY2hPcGVyYXRpb24tPmFyZ3VtZW50c30sICgkZm9yRWFj
aEFyZ3VtZW50KSk7CisgICAgJGZvckVhY2hPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcygk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAkZm9yRWFjaE9wZXJhdGlvbi0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57RW51bWVyYWJsZX0gPSAxOworICAgICRmb3JFYWNoT3BlcmF0aW9uLT50eXBl
KG1ha2VTaW1wbGVUeXBlKCJhbnkiKSk7CiAKICAgICBwdXNoKEB7JHNldGxpa2UtPm9wZXJhdGlv
bnN9LCAkaGFzT3BlcmF0aW9uKTsKICAgICBwdXNoKEB7JHNldGxpa2UtPm9wZXJhdGlvbnN9LCAk
ZW50cmllc09wZXJhdGlvbik7CiAgICAgcHVzaChAeyRzZXRsaWtlLT5vcGVyYXRpb25zfSwgJGtl
eXNPcGVyYXRpb24pOwogICAgIHB1c2goQHskc2V0bGlrZS0+b3BlcmF0aW9uc30sICR2YWx1ZXNP
cGVyYXRpb24pOworICAgIHB1c2goQHskc2V0bGlrZS0+b3BlcmF0aW9uc30sICRmb3JFYWNoT3Bl
cmF0aW9uKTsKIAogICAgIHJldHVybiAkc2V0bGlrZSBpZiAkaXNSZWFkT25seTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlT
ZXRMaWtlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Jl
YWRPbmx5U2V0TGlrZS5jcHAKaW5kZXggMzcyZmNjNjFlZThjMDMwNTRkZDEwMTA0MTk5YTY5ZTI4
YTY4MTJjZi4uNTJlNjRkZWM1NDQ2MzVhYzNkYmU5Y2MwOGI0NjAxNzUzNDQ0YWY5YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlT
ZXRMaWtlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNSZWFkT25seVNldExpa2UuY3BwCkBAIC01MCw2ICs1MCw3IEBAIEpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKEpT
Qzo6SlNHCiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seVNldExp
a2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seVNl
dExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seVNl
dExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpD
YWxsRnJhbWUqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5
U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKIAogLy8gQXR0cmlidXRlcwogCkBAIC0xMDksNiArMTEwLDcgQEAgc3Rh
dGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlVGFibGVW
YWx1ZXNbXSA9CiAgICAgeyAiZW50cmllcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0
aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0
aW9uPihqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyksIChpbnRwdHJf
dCkgKDApIH0gfSwKICAgICB7ICJrZXlzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rp
b24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rp
b24+KGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKSwgKGludHB0cl90KSAo
MCkgfSB9LAogICAgIHsgInZhbHVlcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9u
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9u
Pihqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKSwgKGludHB0cl90KSAo
MCkgfSB9LAorICAgIHsgImZvckVhY2giLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlv
biksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlv
bj4oanNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpLCAoaW50cHRyX3Qp
ICgxKSB9IH0sCiB9OwogCiBjb25zdCBDbGFzc0luZm8gSlNSZWFkT25seVNldExpa2VQcm90b3R5
cGU6OnNfaW5mbyA9IHsgIlJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8s
IG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNSZWFkT25seVNldExpa2VQ
cm90b3R5cGUpIH07CkBAIC0yNTksNiArMjYxLDIzIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0dsb2JhbE9i
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1JlYWRPbmx5U2V0TGlrZT46OmNhbGw8anNSZWFk
T25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAidmFsdWVzIik7CiB9CiAKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaEJvZHko
SlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTUmVhZE9ubHlTZXRMaWtlPjo6Q2xh
c3NQYXJhbWV0ZXIgY2FzdGVkVGhpcywgSlNDOjpUaHJvd1Njb3BlJiB0aHJvd1Njb3BlKQorewor
ICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0o
Y2FsbEZyYW1lKTsKKyAgICBVTlVTRURfUEFSQU0odGhyb3dTY29wZSk7CisgICAgaWYgKFVOTElL
RUxZKGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpIDwgMSkpCisgICAgICAgIHJldHVybiB0aHJv
d1ZNRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlTm90RW5vdWdo
QXJndW1lbnRzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCkpOworICAgIGF1dG8gY2FsbGJhY2sg
PSBjb252ZXJ0PElETEFueT4oKmxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+dW5jaGVj
a2VkQXJndW1lbnQoMCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5j
b2RlZEpTVmFsdWUoKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4o
Zm9yd2FyZEZvckVhY2hUb1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGNhbGxiYWNrKSkpKTsKK30KKworRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
Cit7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1JlYWRPbmx5U2V0TGlrZT46OmNhbGw8anNS
ZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2hCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgImZvckVhY2giKTsKK30KKwogdm9pZCBKU1JlYWRPbmx5U2V0
TGlrZTo6YW5hbHl6ZUhlYXAoSlNDZWxsKiBjZWxsLCBIZWFwQW5hbHl6ZXImIGFuYWx5emVyKQog
ewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNSZWFkT25seVNldExpa2UqPihjZWxs
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1NldExpa2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
U2V0TGlrZS5jcHAKaW5kZXggYmQ3YzMwZjE3ZWEyZTQyYjAzNTI4Mzg0NTA1MzVhYTU4OGI5YjJh
MC4uMTg0YzIzNzI3MzEzOTBlNzgwNTZmOGUxNTZkMmY2ODczNjQ0NmZjMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2V0TGlrZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2V0TGlrZS5jcHAK
QEAgLTUwLDYgKzUwLDcgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzU2V0
TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKEpTQzo6SlNHbG9iYWxPYmoKIEpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpDYWxsRnJhbWUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Nl
dExpa2VQcm90b3R5cGVGdW5jdGlvbkFkZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1NldExpa2VQcm90
b3R5cGVGdW5jdGlvbkNsZWFyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSop
OwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1
bmN0aW9uRGVsZXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwpAQCAt
MTEyLDYgKzExMyw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1NldExpa2VQcm90
b3R5cGVUYWJsZVZhbHVlc1tdID0KICAgICB7ICJlbnRyaWVzIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3
TmF0aXZlRnVuY3Rpb24+KGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyksIChpbnRw
dHJfdCkgKDApIH0gfSwKICAgICB7ICJrZXlzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVu
Y3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVu
Y3Rpb24+KGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyksIChpbnRwdHJfdCkgKDApIH0g
fSwKICAgICB7ICJ2YWx1ZXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNT
ZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAg
eyAiZm9yRWFjaCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1NldExpa2VQ
cm90b3R5cGVGdW5jdGlvbkZvckVhY2gpLCAoaW50cHRyX3QpICgxKSB9IH0sCiAgICAgeyAiYWRk
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzU2V0TGlrZVByb3RvdHlwZUZ1
bmN0aW9uQWRkKSwgKGludHB0cl90KSAoMSkgfSB9LAogICAgIHsgImNsZWFyIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXIp
LCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAiZGVsZXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3
TmF0aXZlRnVuY3Rpb24+KGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKSwgKGludHB0
cl90KSAoMSkgfSB9LApAQCAtMjY1LDYgKzI2NywyMyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKEpTR2xvYmFsT2JqZWN0KiBs
ZQogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNTZXRMaWtlPjo6Y2FsbDxqc1NldExpa2VQcm90
b3R5cGVGdW5jdGlvblZhbHVlc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAidmFsdWVzIik7CiB9CiAKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Nl
dExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2hCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElE
TE9wZXJhdGlvbjxKU1NldExpa2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzLCBKU0M6OlRo
cm93U2NvcGUmIHRocm93U2NvcGUpCit7CisgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxP
YmplY3QpOworICAgIFVOVVNFRF9QQVJBTShjYWxsRnJhbWUpOworICAgIFVOVVNFRF9QQVJBTSh0
aHJvd1Njb3BlKTsKKyAgICBpZiAoVU5MSUtFTFkoY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkg
PCAxKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSk7CisgICAgYXV0byBjYWxsYmFjayA9IGNvbnZlcnQ8SURMQW55PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRm9yRWFjaFRvU2V0TGlrZSgqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoY2FsbGJhY2sp
KSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzU2V0TGlrZVByb3RvdHlw
ZUZ1bmN0aW9uRm9yRWFjaChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCit7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1NldExpa2U+
OjpjYWxsPGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaEJvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZm9yRWFjaCIpOworfQorCiBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25BZGRCb2R5KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxs
RnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1NldExpa2U+OjpDbGFzc1BhcmFtZXRlciBj
YXN0ZWRUaGlzLCBKU0M6OlRocm93U2NvcGUmIHRocm93U2NvcGUpCiB7CiAgICAgVU5VU0VEX1BB
UkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDExOTNhZDY1MGIwNmJjMzEwZjEyY2Nj
YmVmN2YzMDY2NTMyNzc5YjguLmU1ZThlYWIzZTY0YjY1NDk5MGUxYmI2YzUxNTU0NDk2ZjkyMTlh
OTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0xMi0wNiAgeW91ZW5uIGZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFdlYklETCBzZXQtbGlr
ZSBmb3JFYWNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDQ4NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGpzL2RvbS9tYXBsaWtlLmh0bWw6CisgICAgICAgICoganMvZG9tL3NldGxpa2UuaHRtbDoK
KwogMjAxOS0xMi0wOCAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgU3VwcG9ydCBkaWZmZXJlbnQgcmVzb2x1dGlvbnMgZm9yIHZpZGVvIHRyYWNrcyBjYXB0dXJl
ZCBmcm9tIFVJUHJvY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21hcGxpa2Uu
aHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tYXBsaWtlLmh0bWwKaW5kZXggYzM2ZTUyZGJjYjE4
Zjg4MDk3MjlkNDE5ZGE0NWZjMTEyOWU2Y2I2NS4uZmNjMmIwMjdlNTFjMjhhODBhYTVlOGQyYWJh
NzNlOTJhMDcxOWFhNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL21hcGxpa2UuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbWFwbGlrZS5odG1sCkBAIC00OCw4ICs0OCw5IEBA
IHRlc3QoKCkgPT4gewogICAgIH0KICAgICBhc3NlcnRfZXF1YWxzKGtleXNUZXN0LCAidGVzdEF0
ZXN0QiIsICJrZXlzIHRlc3QiKTsKIAorICAgIGFzc2VydF9lcXVhbHMobWFwbGlrZS5mb3JFYWNo
Lmxlbmd0aCwgMSk7CiAgICAgbGV0IGZvckVhY2hUZXN0ID0gIiI7Ci0gICAgbWFwbGlrZS5mb3JF
YWNoKCh2YWx1ZSwga2V5LCBvYmplY3QpID0+IHsKKyAgICBjb25zdCBmb3JFYWNoUmVzdWx0ID0g
bWFwbGlrZS5mb3JFYWNoKCh2YWx1ZSwga2V5LCBvYmplY3QpID0+IHsKICAgICAgICAgZm9yRWFj
aFRlc3QgKz0ga2V5OwogICAgICAgICBmb3JFYWNoVGVzdCArPSAnLCc7CiAgICAgICAgIGZvckVh
Y2hUZXN0ICs9IHZhbHVlOwpAQCAtNTcsNiArNTgsNyBAQCB0ZXN0KCgpID0+IHsKICAgICAgICAg
YXNzZXJ0X2VxdWFscyhvYmplY3QsIG1hcGxpa2UpOwogICAgIH0pOwogICAgIGFzc2VydF9lcXVh
bHMoZm9yRWFjaFRlc3QsICJ0ZXN0QSwyIHRlc3RCLDMgIiwgImZvckVhY2ggdGVzdCIpOworICAg
IGFzc2VydF9lcXVhbHMoZm9yRWFjaFJlc3VsdCwgdW5kZWZpbmVkKTsKIAogICAgIG1hcGxpa2Uu
Y2xlYXIoKTsKICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKG1hcGxpa2UuaW5zcGVjdEtleXMoKSwg
W10pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NldGxpa2UuaHRtbCBiL0xheW91
dFRlc3RzL2pzL2RvbS9zZXRsaWtlLmh0bWwKaW5kZXggYjI5NThiYjI1YTM2ZGZkYTEyN2NhMTcy
NmMwN2RlYjc0MDYyNzU1NS4uMjhlMTJmMmJlMzJhMTgwM2U0ODgzMzVjYzI2NDI5ODQ0ZGI4NTg1
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL3NldGxpa2UuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9qcy9kb20vc2V0bGlrZS5odG1sCkBAIC00Miw2ICs0MiwxNiBAQCB0ZXN0KCgpID0+
IHsKICAgICB9CiAgICAgYXNzZXJ0X2VxdWFscyhrZXlzVGVzdCwgInRlc3R0ZXN0MiIsICJrZXlz
IHRlc3QiKTsKIAorICAgIGFzc2VydF9lcXVhbHMoc2V0bGlrZS5mb3JFYWNoLmxlbmd0aCwgMSk7
CisgICAgbGV0IGZvckVhY2hUZXN0ID0gIiI7CisgICAgY29uc3QgZm9yRWFjaFJlc3VsdCA9IHNl
dGxpa2UuZm9yRWFjaCgoa2V5LCB2YWx1ZSwgb2JqZWN0KSA9PiB7CisgICAgICAgIGZvckVhY2hU
ZXN0ICs9IGtleTsKKyAgICAgICAgZm9yRWFjaFRlc3QgKz0gdmFsdWU7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMob2JqZWN0LCBzZXRsaWtlKTsKKyAgICB9KTsKKyAgICBhc3NlcnRfZXF1YWxzKGZv
ckVhY2hUZXN0LCAidGVzdHRlc3R0ZXN0MnRlc3QyIiwgImZvckVhY2ggdGVzdCIpOworICAgIGFz
c2VydF9lcXVhbHMoZm9yRWFjaFJlc3VsdCwgdW5kZWZpbmVkKTsKKwogICAgIHNldGxpa2UuY2xl
YXIoKTsKICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHNldGxpa2UuaXRlbXMoKSwgW10pOwogfSwg
IkJhc2ljIGFkZC9yZW1vdmUvY2xlYXIgZnVuY3Rpb25hbGl0eSIpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>