<?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>173867</bug_id>
          
          <creation_ts>2017-06-26 23:38:25 -0700</creation_ts>
          <short_desc>RegExp.prototype[@@replace] relies on globals and doesn&apos;t perform ToLength</short_desc>
          <delta_ts>2020-03-25 19:25:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=209323</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>benjamin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>jfbastien</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1323085</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-06-26 23:38:25 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323247</commentid>
    <comment_count>1</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-06-27 14:23:15 -0700</bug_when>
    <thetext>I think this is observable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634011</commentid>
    <comment_count>2</comment_count>
      <attachid>394532</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-03-25 13:07:39 -0700</bug_when>
    <thetext>Created attachment 394532
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634021</commentid>
    <comment_count>3</comment_count>
      <attachid>394535</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-03-25 13:21:53 -0700</bug_when>
    <thetext>Created attachment 394535
Patch

Add a few UNUSED_PARAM, drop extra JSC_HOST_CALL. I wonder if we need to ALWAYS_INLINE string*Impl()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634025</commentid>
    <comment_count>4</comment_count>
      <attachid>394535</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-25 13:27:45 -0700</bug_when>
    <thetext>Comment on attachment 394535
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:14
&gt; +        b) Removes `lastPosition` checks/updates, as there are none in the spec, and it was
&gt; +           equivalent to checking `nextSourcePosition`.

Nice catch. I wondered about this in my earlier patch but evidently didn&apos;t think about it long enough to realize it wasn&apos;t helping at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634032</commentid>
    <comment_count>5</comment_count>
      <attachid>394541</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-03-25 13:38:08 -0700</bug_when>
    <thetext>Created attachment 394541
Patch

Set correct &apos;length&apos; of builtinStringSubstringInternal&apos;s JSFunction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634038</commentid>
    <comment_count>6</comment_count>
      <attachid>394541</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-25 13:54:45 -0700</bug_when>
    <thetext>Comment on attachment 394541
Patch

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

&gt; Source/JavaScriptCore/runtime/StringPrototype.cpp:1136
&gt; +    JSValue position = callFrame-&gt;argument(1);
&gt; +    UNUSED_PARAM(position);
&gt; +    ASSERT(position.isUndefined() || position.isNumber());

Here and below, if this is just for a non-release ASSERT, I suppose it&apos;d be okay get the argument twice instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634110</commentid>
    <comment_count>7</comment_count>
      <attachid>394561</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-03-25 16:28:54 -0700</bug_when>
    <thetext>Created attachment 394561
Patch

Drop UNUSED_PARAM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634175</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-25 19:24:34 -0700</bug_when>
    <thetext>Committed r259029: &lt;https://trac.webkit.org/changeset/259029&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 394561.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634176</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-25 19:25:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/60900492&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394532</attachid>
            <date>2020-03-25 13:07:39 -0700</date>
            <delta_ts>2020-03-25 13:21:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173867-20200325220737.patch</filename>
            <type>text/plain</type>
            <size>21434</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4OTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
Yjc0NGE5YzUzMjBiZWJiMzJiMDI4ZGI1NjY0NWMwZWZjYzUxZmEwLi5lYzNhMzA2NDU5MzliNmU0
OTZiNzJmZjNjNTc3NzYwYmU0OTNhOTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAyMC0wMy0yNSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgUmVnRXhwLnByb3RvdHlwZVtAQHJlcGxhY2VdIHJlbGllcyBvbiBn
bG9iYWxzIGFuZCBkb2Vzbid0IHBlcmZvcm0gVG9MZW5ndGgKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mzg2NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlOgorCisgICAgICAgIGEpIEFk
ZHMgImxhc3RJbmRleCIgVG9MZW5ndGggY29lcmNpb24gWzFdLCB3aGljaCBpcyBvYnNlcnZhYmxl
LCB1bmxpa2UgVG9MZW5ndGggY29lcmNpb24KKyAgICAgICAgICAgb2YgUmVnRXhwRXhlYyByZXN1
bHQgWzJdIHRoYXQgd2Ugb21pdCwganVzdCBsaWtlIHRoZSBvbmUgaW4gQEBzcGxpdCBbM10uCisK
KyAgICAgICAgYikgUmVtb3ZlcyBgbGFzdFBvc2l0aW9uYCBjaGVja3MvdXBkYXRlcywgYXMgdGhl
cmUgYXJlIG5vbmUgaW4gdGhlIHNwZWMsIGFuZCBpdCB3YXMKKyAgICAgICAgICAgZXF1aXZhbGVu
dCB0byBjaGVja2luZyBgbmV4dFNvdXJjZVBvc2l0aW9uYC4KKworICAgICAgICBjKSBSZW1vdmVz
IHJlbGlhbmNlIG9mIEBAcmVwbGFjZSBvbiBnbG9iYWxzIGFuZCBhbHNvIHJlcGxhY2VzIEBzdHJp
bmdTdWJzdHJJbnRlcm5hbAorICAgICAgICAgICBidWlsdC1pbiB3aXRoIEBzdHJpbmdTdWJzdHJp
bmdJbnRlcm5hbCwgYXMgdGhlIGZvcm1lciBpcyBBbm5leCBCIGFuZCBhY2NlcHRzIHNpemUKKyAg
ICAgICAgICAgYXMgMm5kIHBhcmFtdGVyLCB3aGljaCBpcyBub3QgdmVyeSBoYW5keSBiZWNhdXNl
IEVDTUEtMjYyIHVzdWFsbHkgc2F5cyAic3Vic3RyaW5nCisgICAgICAgICAgIG9mIFMgY29uc2lz
dGluZyBvZiB0aGUgY29kZSB1bml0cyBhdCBpbmRpY2VzIFggKGluY2x1c2l2ZSkgdGhyb3VnaCBZ
IChleGNsdXNpdmUpIi4KKworICAgICAgICBbMV06IGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNz
ZWMtcmVnZXhwLnByb3RvdHlwZS1AQHJlcGxhY2UgKHN0ZXAgMTEuYy5paWkuMi5hKQorICAgICAg
ICBbMl06IGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVnZXhwLnByb3RvdHlwZS1AQHJl
cGxhY2UgKHN0ZXAgMTQuYSkKKyAgICAgICAgWzNdOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8j
c2VjLXJlZ2V4cC5wcm90b3R5cGUtQEBzcGxpdCAoc3RlcCAxOS5kLml2LjYpCisKKyAgICAgICAg
KiBidWlsdGlucy9CdWlsdGluTmFtZXMuaDoKKyAgICAgICAgKiBidWlsdGlucy9SZWdFeHBQcm90
b3R5cGUuanM6CisgICAgICAgIChnZXRTdWJzdGl0dXRpb24pOgorICAgICAgICAoU3ltYm9sLnJl
cGxhY2UpOgorICAgICAgICAoU3ltYm9sLnNwbGl0KToKKyAgICAgICAgKiBidWlsdGlucy9TdHJp
bmdQcm90b3R5cGUuanM6CisgICAgICAgIChnbG9iYWxQcml2YXRlLnJlcGVhdENoYXJhY3RlcnNT
bG93UGF0aCk6CisgICAgICAgICogYnl0ZWNvZGUvTGlua1RpbWVDb25zdGFudC5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9i
amVjdDo6aW5pdCk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwOgorICAg
ICAgICAoSlNDOjpzdHJpbmdJbmRleE9mSW1wbCk6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3Rv
RnVuY0luZGV4T2YpOgorICAgICAgICAoSlNDOjpidWlsdGluU3RyaW5nSW5kZXhPZkludGVybmFs
KToKKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jU3Vic3RyKToKKyAgICAgICAgKEpTQzo6
c3RyaW5nU3Vic3RyaW5nSW1wbCk6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1N1YnN0
cmluZyk6CisgICAgICAgIChKU0M6OmJ1aWx0aW5TdHJpbmdTdWJzdHJpbmdJbnRlcm5hbCk6Cisg
ICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1N1YnN0ckltcGwpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpidWlsdGluU3RyaW5nU3Vic3RySW50ZXJuYWwpOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmg6CisKIDIwMjAtMDMtMjQgIEtlaXRoIE1pbGxlciAg
PGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGlzRW1wdHkgQXNzZW1ibHlI
ZWxwZXJzIGZ1bmN0aW9uIGFuZCBhZGQgaXNOb3RFbXB0eQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCmluZGV4IDE2ZmYxZjk2YmFkZmFlMzQ3Y2Y3YmZi
MzI1NTcyMmY5MGExZDk2MDIuLjE5NzBjOWY0MzA2MDg3MjFhMmEzMjU2YjI2ZTJlNDZiM2M4M2E2
ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFt
ZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgK
QEAgLTE1OSw4ICsxNTksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBtYWNybyhyZWdFeHBTdHJp
bmdJdGVyYXRvclVuaWNvZGUpIFwKICAgICBtYWNybyhyZWdFeHBTdHJpbmdJdGVyYXRvckRvbmUp
IFwKICAgICBtYWNybyhzdHJpbmdJbmNsdWRlc0ludGVybmFsKSBcCisgICAgbWFjcm8oc3RyaW5n
SW5kZXhPZkludGVybmFsKSBcCiAgICAgbWFjcm8oc3RyaW5nU3BsaXRGYXN0KSBcCi0gICAgbWFj
cm8oc3RyaW5nU3Vic3RySW50ZXJuYWwpIFwKKyAgICBtYWNybyhzdHJpbmdTdWJzdHJpbmdJbnRl
cm5hbCkgXAogICAgIG1hY3JvKG1ha2VCb3VuZEZ1bmN0aW9uKSBcCiAgICAgbWFjcm8oaGFzT3du
TGVuZ3RoUHJvcGVydHkpIFwKICAgICBtYWNybyhpbXBvcnRNb2R1bGUpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9SZWdFeHBQcm90b3R5cGUuanMgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUmVnRXhwUHJvdG90eXBlLmpzCmluZGV4IDI1NmJj
NWI0YjM2MDhlNzJiZTliMjc1MDU1ZmMyZGU4NzdhYTFjMjkuLjY5MjI0NDc5ZTdhY2U4MmQwYTEz
YzM4ZGVmMDVmZjA2YTBkNzYxZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
dWlsdGlucy9SZWdFeHBQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1
aWx0aW5zL1JlZ0V4cFByb3RvdHlwZS5qcwpAQCAtMTkxLDE0ICsxOTEsMTQgQEAgZnVuY3Rpb24g
cmVwbGFjZShzdHJBcmcsIHJlcGxhY2UpCiAgICAgICAgIHZhciByZXN1bHQgPSAiIjsKICAgICAg
ICAgdmFyIGxhc3RTdGFydCA9IDA7CiAKLSAgICAgICAgZm9yICh2YXIgc3RhcnQgPSAwOyBzdGFy
dCA9IHJlcGxhY2VtZW50LmluZGV4T2YoIiQiLCBsYXN0U3RhcnQpLCBzdGFydCAhPT0gLTE7IGxh
c3RTdGFydCA9IHN0YXJ0KSB7CisgICAgICAgIGZvciAodmFyIHN0YXJ0ID0gMDsgc3RhcnQgPSBA
c3RyaW5nSW5kZXhPZkludGVybmFsLkBjYWxsKHJlcGxhY2VtZW50LCAiJCIsIGxhc3RTdGFydCks
IHN0YXJ0ICE9PSAtMTsgbGFzdFN0YXJ0ID0gc3RhcnQpIHsKICAgICAgICAgICAgIGlmIChzdGFy
dCAtIGxhc3RTdGFydCA+IDApCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgcmVw
bGFjZW1lbnQuc3Vic3RyaW5nKGxhc3RTdGFydCwgc3RhcnQpOworICAgICAgICAgICAgICAgIHJl
c3VsdCA9IHJlc3VsdCArIEBzdHJpbmdTdWJzdHJpbmdJbnRlcm5hbC5AY2FsbChyZXBsYWNlbWVu
dCwgbGFzdFN0YXJ0LCBzdGFydCk7CiAgICAgICAgICAgICBzdGFydCsrOwotICAgICAgICAgICAg
dmFyIGNoID0gcmVwbGFjZW1lbnQuY2hhckF0KHN0YXJ0KTsKLSAgICAgICAgICAgIGlmIChjaCA9
PT0gIiIpCisgICAgICAgICAgICBpZiAoc3RhcnQgPj0gcmVwbGFjZW1lbnRMZW5ndGgpCiAgICAg
ICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgIiQiOwogICAgICAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICAgICAgdmFyIGNoID0gcmVwbGFjZW1lbnRbc3RhcnRdOwogICAgICAgICAgICAg
ICAgIHN3aXRjaCAoY2gpCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGNhc2Ug
IiQiOgpAQCAtMjExLDIwICsyMTEsMjAgQEAgZnVuY3Rpb24gcmVwbGFjZShzdHJBcmcsIHJlcGxh
Y2UpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgImAi
OgogICAgICAgICAgICAgICAgICAgICBpZiAocG9zaXRpb24gPiAwKQotICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgc3RyLnN1YnN0cmluZygwLCBwb3NpdGlvbik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKyBAc3RyaW5nU3Vic3RyaW5n
SW50ZXJuYWwuQGNhbGwoc3RyLCAwLCBwb3NpdGlvbik7CiAgICAgICAgICAgICAgICAgICAgIHN0
YXJ0Kys7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2Ug
IiciOgogICAgICAgICAgICAgICAgICAgICBpZiAodGFpbFBvcyA8IHN0cmluZ0xlbmd0aCkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCArIHN0ci5zdWJzdHJpbmcodGFp
bFBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKyBAc3RyaW5n
U3Vic3RyaW5nSW50ZXJuYWwuQGNhbGwoc3RyLCB0YWlsUG9zKTsKICAgICAgICAgICAgICAgICAg
ICAgc3RhcnQrKzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAg
Y2FzZSAiPCI6CiAgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lZENhcHR1cmVzICE9PSBAdW5k
ZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZ3JvdXBOYW1lU3RhcnRJbmRl
eCA9IHN0YXJ0ICsgMTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBncm91cE5hbWVFbmRJ
bmRleCA9IHJlcGxhY2VtZW50LmluZGV4T2YoIj4iLCBncm91cE5hbWVTdGFydEluZGV4KTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHZhciBncm91cE5hbWVFbmRJbmRleCA9IEBzdHJpbmdJbmRl
eE9mSW50ZXJuYWwuQGNhbGwocmVwbGFjZW1lbnQsICI+IiwgZ3JvdXBOYW1lU3RhcnRJbmRleCk7
CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXBOYW1lRW5kSW5kZXggIT09IC0xKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3VwTmFtZSA9IHJlcGxhY2VtZW50
LnN1YnN0cmluZyhncm91cE5hbWVTdGFydEluZGV4LCBncm91cE5hbWVFbmRJbmRleCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3VwTmFtZSA9IEBzdHJpbmdTdWJzdHJpbmdJ
bnRlcm5hbC5AY2FsbChyZXBsYWNlbWVudCwgZ3JvdXBOYW1lU3RhcnRJbmRleCwgZ3JvdXBOYW1l
RW5kSW5kZXgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjYXB0dXJlID0gbmFt
ZWRDYXB0dXJlc1tncm91cE5hbWVdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChj
YXB0dXJlICE9PSBAdW5kZWZpbmVkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXN1bHQgPSByZXN1bHQgKyBAdG9TdHJpbmcoY2FwdHVyZSk7CkBAIC0yMzgsMTkgKzIzOCwxOSBA
QCBmdW5jdGlvbiByZXBsYWNlKHN0ckFyZywgcmVwbGFjZSkKICAgICAgICAgICAgICAgICAgICAg
c3RhcnQrKzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgZGVm
YXVsdDoKLSAgICAgICAgICAgICAgICAgICAgdmFyIGNoQ29kZSA9IGNoLmNoYXJDb2RlQXQoMCk7
CisgICAgICAgICAgICAgICAgICAgIHZhciBjaENvZGUgPSBjaC5AY2hhckNvZGVBdCgwKTsKICAg
ICAgICAgICAgICAgICAgICAgaWYgKGNoQ29kZSA+PSAweDMwICYmIGNoQ29kZSA8PSAweDM5KSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgb3JpZ2luYWxTdGFydCA9IHN0YXJ0IC0gMTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0Kys7CiAKICAgICAgICAgICAgICAgICAgICAg
ICAgIHZhciBuID0gY2hDb2RlIC0gMHgzMDsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChu
ID4gbSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCArIHJl
cGxhY2VtZW50LnN1YnN0cmluZyhvcmlnaW5hbFN0YXJ0LCBzdGFydCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgQHN0cmluZ1N1YnN0cmluZ0ludGVybmFs
LkBjYWxsKHJlcGxhY2VtZW50LCBvcmlnaW5hbFN0YXJ0LCBzdGFydCk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChzdGFydCA8IHJlcGxhY2VtZW50TGVuZ3RoKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5leHRDaENvZGUgPSByZXBsYWNlbWVudC5jaGFy
Q29kZUF0KHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmV4dENoQ29k
ZSA9IHJlcGxhY2VtZW50LkBjaGFyQ29kZUF0KHN0YXJ0KTsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAobmV4dENoQ29kZSA+PSAweDMwICYmIG5leHRDaENvZGUgPD0gMHgzOSkgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbm4gPSAxMCAqIG4gKyBuZXh0Q2hD
b2RlIC0gMHgzMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5uIDw9IG0p
IHsKQEAgLTI2MSw3ICsyNjEsNyBAQCBmdW5jdGlvbiByZXBsYWNlKHN0ckFyZywgcmVwbGFjZSkK
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KG4gPT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAr
IHJlcGxhY2VtZW50LnN1YnN0cmluZyhvcmlnaW5hbFN0YXJ0LCBzdGFydCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgQHN0cmluZ1N1YnN0cmluZ0ludGVy
bmFsLkBjYWxsKHJlcGxhY2VtZW50LCBvcmlnaW5hbFN0YXJ0LCBzdGFydCk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAKQEAg
LTI3NSw3ICsyNzUsNyBAQCBmdW5jdGlvbiByZXBsYWNlKHN0ckFyZywgcmVwbGFjZSkKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIHJldHVybiByZXN1bHQgKyByZXBsYWNlbWVu
dC5zdWJzdHJpbmcobGFzdFN0YXJ0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdCArIEBzdHJpbmdT
dWJzdHJpbmdJbnRlcm5hbC5AY2FsbChyZXBsYWNlbWVudCwgbGFzdFN0YXJ0KTsKICAgICB9CiAK
ICAgICBpZiAoIUBpc09iamVjdCh0aGlzKSkKQEAgLTMxMywxNSArMzEzLDE2IEBAIGZ1bmN0aW9u
IHJlcGxhY2Uoc3RyQXJnLCByZXBsYWNlKQogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAg
ICAgICAgdmFyIG1hdGNoU3RyID0gQHRvU3RyaW5nKHJlc3VsdFswXSk7CiAKLSAgICAgICAgICAg
ICAgICBpZiAoIW1hdGNoU3RyLmxlbmd0aCkKLSAgICAgICAgICAgICAgICAgICAgcmVnZXhwLmxh
c3RJbmRleCA9IEBhZHZhbmNlU3RyaW5nSW5kZXgoc3RyLCByZWdleHAubGFzdEluZGV4LCB1bmlj
b2RlKTsKKyAgICAgICAgICAgICAgICBpZiAoIW1hdGNoU3RyLmxlbmd0aCkgeworICAgICAgICAg
ICAgICAgICAgICB2YXIgdGhpc0luZGV4ID0gQHRvTGVuZ3RoKHJlZ2V4cC5sYXN0SW5kZXgpOwor
ICAgICAgICAgICAgICAgICAgICByZWdleHAubGFzdEluZGV4ID0gQGFkdmFuY2VTdHJpbmdJbmRl
eChzdHIsIHRoaXNJbmRleCwgdW5pY29kZSk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAgICAgfQogCiAgICAgdmFyIGFjY3VtdWxhdGVkUmVzdWx0ID0gIiI7
CiAgICAgdmFyIG5leHRTb3VyY2VQb3NpdGlvbiA9IDA7Ci0gICAgdmFyIGxhc3RQb3NpdGlvbiA9
IDA7CiAKICAgICBmb3IgKHZhciBpID0gMCwgcmVzdWx0TGlzdExlbmd0aCA9IHJlc3VsdExpc3Qu
bGVuZ3RoOyBpIDwgcmVzdWx0TGlzdExlbmd0aDsgKytpKSB7CiAgICAgICAgIHZhciByZXN1bHQg
PSByZXN1bHRMaXN0W2ldOwpAQCAtMzQ2LDcgKzM0NywxMCBAQCBmdW5jdGlvbiByZXBsYWNlKHN0
ckFyZywgcmVwbGFjZSkKICAgICAgICAgdmFyIG5hbWVkQ2FwdHVyZXMgPSByZXN1bHQuZ3JvdXBz
OwogCiAgICAgICAgIGlmIChmdW5jdGlvbmFsUmVwbGFjZSkgewotICAgICAgICAgICAgdmFyIHJl
cGxhY2VyQXJncyA9IFsgbWF0Y2hlZCBdLmNvbmNhdChjYXB0dXJlcyk7CisgICAgICAgICAgICB2
YXIgcmVwbGFjZXJBcmdzID0gWyBtYXRjaGVkIF07CisgICAgICAgICAgICBmb3IgKHZhciBqID0g
MDsgaiA8IGNhcHR1cmVzLmxlbmd0aDsgaisrKQorICAgICAgICAgICAgICAgIHJlcGxhY2VyQXJn
cy5AcHVzaChjYXB0dXJlc1tqXSk7CisKICAgICAgICAgICAgIHJlcGxhY2VyQXJncy5AcHVzaChw
b3NpdGlvbik7CiAgICAgICAgICAgICByZXBsYWNlckFyZ3MuQHB1c2goc3RyKTsKIApAQCAtMzYy
LDE3ICszNjYsMTYgQEAgZnVuY3Rpb24gcmVwbGFjZShzdHJBcmcsIHJlcGxhY2UpCiAgICAgICAg
ICAgICByZXBsYWNlbWVudCA9IGdldFN1YnN0aXR1dGlvbihtYXRjaGVkLCBzdHIsIHBvc2l0aW9u
LCBjYXB0dXJlcywgbmFtZWRDYXB0dXJlcywgcmVwbGFjZSk7CiAgICAgICAgIH0KIAotICAgICAg
ICBpZiAocG9zaXRpb24gPj0gbmV4dFNvdXJjZVBvc2l0aW9uICYmIHBvc2l0aW9uID49IGxhc3RQ
b3NpdGlvbikgewotICAgICAgICAgICAgYWNjdW11bGF0ZWRSZXN1bHQgPSBhY2N1bXVsYXRlZFJl
c3VsdCArIHN0ci5zdWJzdHJpbmcobmV4dFNvdXJjZVBvc2l0aW9uLCBwb3NpdGlvbikgKyByZXBs
YWNlbWVudDsKKyAgICAgICAgaWYgKHBvc2l0aW9uID49IG5leHRTb3VyY2VQb3NpdGlvbikgewor
ICAgICAgICAgICAgYWNjdW11bGF0ZWRSZXN1bHQgPSBhY2N1bXVsYXRlZFJlc3VsdCArIEBzdHJp
bmdTdWJzdHJpbmdJbnRlcm5hbC5AY2FsbChzdHIsIG5leHRTb3VyY2VQb3NpdGlvbiwgcG9zaXRp
b24pICsgcmVwbGFjZW1lbnQ7CiAgICAgICAgICAgICBuZXh0U291cmNlUG9zaXRpb24gPSBwb3Np
dGlvbiArIG1hdGNoTGVuZ3RoOwotICAgICAgICAgICAgbGFzdFBvc2l0aW9uID0gcG9zaXRpb247
CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAobmV4dFNvdXJjZVBvc2l0aW9uID49IHN0cmlu
Z0xlbmd0aCkKICAgICAgICAgcmV0dXJuICBhY2N1bXVsYXRlZFJlc3VsdDsKIAotICAgIHJldHVy
biBhY2N1bXVsYXRlZFJlc3VsdCArIHN0ci5zdWJzdHJpbmcobmV4dFNvdXJjZVBvc2l0aW9uKTsK
KyAgICByZXR1cm4gYWNjdW11bGF0ZWRSZXN1bHQgKyBAc3RyaW5nU3Vic3RyaW5nSW50ZXJuYWwu
QGNhbGwoc3RyLCBuZXh0U291cmNlUG9zaXRpb24pOwogfQogCiAvLyAyMS4yLjUuOSBSZWdFeHAu
cHJvdG90eXBlW0BAc2VhcmNoXSAoc3RyaW5nKQpAQCAtNTYyLDcgKzU2NSw3IEBAIGZ1bmN0aW9u
IHNwbGl0KHN0cmluZywgbGltaXQpCiAgICAgICAgICAgICAvLyBpdi4gRWxzZSBlICE9IHAsCiAg
ICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAvLyAxLiBMZXQgVCBiZSBhIFN0cmlu
ZyB2YWx1ZSBlcXVhbCB0byB0aGUgc3Vic3RyaW5nIG9mIFMgY29uc2lzdGluZyBvZiB0aGUgZWxl
bWVudHMgYXQgaW5kaWNlcyBwIChpbmNsdXNpdmUpIHRocm91Z2ggcSAoZXhjbHVzaXZlKS4KLSAg
ICAgICAgICAgICAgICB2YXIgc3ViU3RyID0gQHN0cmluZ1N1YnN0ckludGVybmFsLkBjYWxsKHN0
ciwgcG9zaXRpb24sIG1hdGNoUG9zaXRpb24gLSBwb3NpdGlvbik7CisgICAgICAgICAgICAgICAg
dmFyIHN1YlN0ciA9IEBzdHJpbmdTdWJzdHJpbmdJbnRlcm5hbC5AY2FsbChzdHIsIHBvc2l0aW9u
LCBtYXRjaFBvc2l0aW9uKTsKICAgICAgICAgICAgICAgICAvLyAyLiBQZXJmb3JtICEgQ3JlYXRl
RGF0YVByb3BlcnR5KEEsICEgVG9TdHJpbmcobGVuZ3RoQSksIFQpLgogICAgICAgICAgICAgICAg
IC8vIDMuIExldCBsZW5ndGhBIGJlIGxlbmd0aEEgKyAxLgogICAgICAgICAgICAgICAgIEBwdXRC
eVZhbERpcmVjdChyZXN1bHQsIHJlc3VsdC5sZW5ndGgsIHN1YlN0cik7CkBAIC01OTcsNyArNjAw
LDcgQEAgZnVuY3Rpb24gc3BsaXQoc3RyaW5nLCBsaW1pdCkKICAgICAgICAgfQogICAgIH0KICAg
ICAvLyAyMC4gTGV0IFQgYmUgYSBTdHJpbmcgdmFsdWUgZXF1YWwgdG8gdGhlIHN1YnN0cmluZyBv
ZiBTIGNvbnNpc3Rpbmcgb2YgdGhlIGVsZW1lbnRzIGF0IGluZGljZXMgcCAoaW5jbHVzaXZlKSB0
aHJvdWdoIHNpemUgKGV4Y2x1c2l2ZSkuCi0gICAgdmFyIHJlbWFpbmluZ1N0ciA9IEBzdHJpbmdT
dWJzdHJJbnRlcm5hbC5AY2FsbChzdHIsIHBvc2l0aW9uLCBzaXplKTsKKyAgICB2YXIgcmVtYWlu
aW5nU3RyID0gQHN0cmluZ1N1YnN0cmluZ0ludGVybmFsLkBjYWxsKHN0ciwgcG9zaXRpb24sIHNp
emUpOwogICAgIC8vIDIxLiBQZXJmb3JtICEgQ3JlYXRlRGF0YVByb3BlcnR5KEEsICEgVG9TdHJp
bmcobGVuZ3RoQSksIFQpLgogICAgIEBwdXRCeVZhbERpcmVjdChyZXN1bHQsIHJlc3VsdC5sZW5n
dGgsIHJlbWFpbmluZ1N0cik7CiAgICAgLy8gMjIuIFJldHVybiBBLgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1N0cmluZ1Byb3RvdHlwZS5qcyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdQcm90b3R5cGUuanMKaW5kZXggOWQ2Y2FkY2Ux
ZGNiZmRlZDJkMjViZjkyODBjYTczZjBiZDBiZjFiZi4uNjllNjNkM2Y3N2FjMWUzNGRhMmFlZjgz
YzY0ZjJjOTM3NzgzOTNmNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL1N0cmluZ1Byb3RvdHlwZS5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvU3RyaW5nUHJvdG90eXBlLmpzCkBAIC0xMTMsNyArMTEzLDcgQEAgZnVuY3Rpb24gcmVwZWF0
Q2hhcmFjdGVyc1Nsb3dQYXRoKHN0cmluZywgY291bnQpCiAgICAgICAgIG9wZXJhbmQgKz0gb3Bl
cmFuZDsKICAgICB9CiAgICAgaWYgKHJlbWFpbmluZ0NoYXJhY3RlcnMpCi0gICAgICAgIHJlc3Vs
dCArPSBAc3RyaW5nU3Vic3RySW50ZXJuYWwuQGNhbGwoc3RyaW5nLCAwLCByZW1haW5pbmdDaGFy
YWN0ZXJzKTsKKyAgICAgICAgcmVzdWx0ICs9IEBzdHJpbmdTdWJzdHJpbmdJbnRlcm5hbC5AY2Fs
bChzdHJpbmcsIDAsIHJlbWFpbmluZ0NoYXJhY3RlcnMpOwogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MaW5rVGltZUNv
bnN0YW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGlua1RpbWVDb25zdGFu
dC5oCmluZGV4IDkwMWRmMGIxYTAyNmUyNmZmZjU0YzIwMDgxOWZjNGRiYzM2NmY1NTAuLjkxNjIx
YjE4ZDVkZjNhMjI4ZjU1YTE4Y2Q3MGM3MTM0MTM3YWYxNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MaW5rVGltZUNvbnN0YW50LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xpbmtUaW1lQ29uc3RhbnQuaApAQCAtOTAsOCArOTAsOSBA
QCBjbGFzcyBKU0dsb2JhbE9iamVjdDsKICAgICB2KHJlZ0V4cFByb3RvdHlwZVN5bWJvbFJlcGxh
Y2UsIG51bGxwdHIpIFwKICAgICB2KHJlZ0V4cFRlc3RGYXN0LCBudWxscHRyKSBcCiAgICAgdihz
dHJpbmdJbmNsdWRlc0ludGVybmFsLCBudWxscHRyKSBcCisgICAgdihzdHJpbmdJbmRleE9mSW50
ZXJuYWwsIG51bGxwdHIpIFwKICAgICB2KHN0cmluZ1NwbGl0RmFzdCwgbnVsbHB0cikgXAotICAg
IHYoc3RyaW5nU3Vic3RySW50ZXJuYWwsIG51bGxwdHIpIFwKKyAgICB2KHN0cmluZ1N1YnN0cmlu
Z0ludGVybmFsLCBudWxscHRyKSBcCiAgICAgdihtYWtlQm91bmRGdW5jdGlvbiwgbnVsbHB0cikg
XAogICAgIHYoaGFzT3duTGVuZ3RoUHJvcGVydHksIG51bGxwdHIpIFwKICAgICB2KGRhdGVUaW1l
Rm9ybWF0LCBudWxscHRyKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5jcHAKaW5kZXggOTIxODRmMDEzMmZlNTE0MWNiOThhYTU2MTk1NzViNWI2
MzIwNTc0Ni4uNjAzMGI2Y2Y0MDU3NGQ4MTZiYjhkODM4NzZiMzg5N2MxYzUyMDgyZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAt
MTE0MiwxMSArMTE0MiwxNCBAQCBjYXBpdGFsTmFtZSAjIyBDb25zdHJ1Y3RvciogbG93ZXJOYW1l
ICMjIENvbnN0cnVjdG9yID0gZmVhdHVyZUZsYWcgPyBjYXBpdGFsTmFtZQogICAgIG1fbGlua1Rp
bWVDb25zdGFudHNbc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KExpbmtUaW1lQ29uc3RhbnQ6OnN0cmlu
Z0luY2x1ZGVzSW50ZXJuYWwpXS5pbml0TGF0ZXIoW10gKGNvbnN0IEluaXRpYWxpemVyPEpTQ2Vs
bD4mIGluaXQpIHsKICAgICAgICAgICAgIGluaXQuc2V0KEpTRnVuY3Rpb246OmNyZWF0ZShpbml0
LnZtLCBqc0Nhc3Q8SlNHbG9iYWxPYmplY3QqPihpbml0Lm93bmVyKSwgMSwgU3RyaW5nKCksIGJ1
aWx0aW5TdHJpbmdJbmNsdWRlc0ludGVybmFsKSk7CiAgICAgICAgIH0pOworICAgIG1fbGlua1Rp
bWVDb25zdGFudHNbc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KExpbmtUaW1lQ29uc3RhbnQ6OnN0cmlu
Z0luZGV4T2ZJbnRlcm5hbCldLmluaXRMYXRlcihbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlNDZWxs
PiYgaW5pdCkgeworICAgICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGluaXQu
dm0sIGpzQ2FzdDxKU0dsb2JhbE9iamVjdCo+KGluaXQub3duZXIpLCAxLCBTdHJpbmcoKSwgYnVp
bHRpblN0cmluZ0luZGV4T2ZJbnRlcm5hbCkpOworICAgICAgICB9KTsKICAgICBtX2xpbmtUaW1l
Q29uc3RhbnRzW3N0YXRpY19jYXN0PHVuc2lnbmVkPihMaW5rVGltZUNvbnN0YW50OjpzdHJpbmdT
cGxpdEZhc3QpXS5pbml0TGF0ZXIoW10gKGNvbnN0IEluaXRpYWxpemVyPEpTQ2VsbD4mIGluaXQp
IHsKICAgICAgICAgICAgIGluaXQuc2V0KEpTRnVuY3Rpb246OmNyZWF0ZShpbml0LnZtLCBqc0Nh
c3Q8SlNHbG9iYWxPYmplY3QqPihpbml0Lm93bmVyKSwgMiwgU3RyaW5nKCksIHN0cmluZ1Byb3Rv
RnVuY1NwbGl0RmFzdCkpOwogICAgICAgICB9KTsKLSAgICBtX2xpbmtUaW1lQ29uc3RhbnRzW3N0
YXRpY19jYXN0PHVuc2lnbmVkPihMaW5rVGltZUNvbnN0YW50OjpzdHJpbmdTdWJzdHJJbnRlcm5h
bCldLmluaXRMYXRlcihbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlNDZWxsPiYgaW5pdCkgewotICAg
ICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGluaXQudm0sIGpzQ2FzdDxKU0ds
b2JhbE9iamVjdCo+KGluaXQub3duZXIpLCAyLCBTdHJpbmcoKSwgYnVpbHRpblN0cmluZ1N1YnN0
ckludGVybmFsKSk7CisgICAgbV9saW5rVGltZUNvbnN0YW50c1tzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oTGlua1RpbWVDb25zdGFudDo6c3RyaW5nU3Vic3RyaW5nSW50ZXJuYWwpXS5pbml0TGF0ZXIo
W10gKGNvbnN0IEluaXRpYWxpemVyPEpTQ2VsbD4mIGluaXQpIHsKKyAgICAgICAgICAgIGluaXQu
c2V0KEpTRnVuY3Rpb246OmNyZWF0ZShpbml0LnZtLCBqc0Nhc3Q8SlNHbG9iYWxPYmplY3QqPihp
bml0Lm93bmVyKSwgMSwgU3RyaW5nKCksIGJ1aWx0aW5TdHJpbmdTdWJzdHJpbmdJbnRlcm5hbCkp
OwogICAgICAgICB9KTsKIAogICAgIC8vIEZ1bmN0aW9uIHByb3RvdHlwZSBoZWxwZXJzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKaW5k
ZXggZmQzOGQ2ZjAwNTk5OWZlYTczZmVkOGNmN2Q0ZWQyZmY1ZDBjYTA5OC4uMGNhODc5YTBkMjJl
Y2U3ZjA1ZjE3NDY1YWIyZDJhNDNlYjM5OGNmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCkBAIC0xMDc2LDcgKzEwNzYsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0NvZGVQb2ludEF0KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9G
dW5jSW5kZXhPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ0luZGV4T2ZJ
bXBsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMTIzLDYgKzExMjMsMjAgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNJbmRleE9mKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHJlc3VsdCkp
OwogfQogCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0luZGV4
T2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit7
CisgICAgcmV0dXJuIHN0cmluZ0luZGV4T2ZJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsK
K30KKworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBidWlsdGluU3RyaW5nSW5kZXhPZklu
dGVybmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQoreworICAgIEFTU0VSVChjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpLmlzU3RyaW5nKCkpOworICAg
IEpTVmFsdWUgcG9zaXRpb24gPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpOworICAgIEFTU0VSVChw
b3NpdGlvbi5pc1VuZGVmaW5lZCgpIHx8IHBvc2l0aW9uLmlzTnVtYmVyKCkpOworCisgICAgcmV0
dXJuIHN0cmluZ0luZGV4T2ZJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKK30KKwogRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNMYXN0SW5kZXhPZihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0xMzY1LDcgKzEzNzksNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1NwbGl0RmFzdChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0K
IAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHN0cmluZ1Byb3RvRnVuY1N1YnN0ckltcGwoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1N1YnN0cihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtMTQwOSwyNiArMTQyMyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBzdHJpbmdQcm90
b0Z1bmNTdWJzdHJJbXBsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1N1YnN0cmluZyh2bSwgdVN0cmluZywgc3Vic3RyaW5nU3Rh
cnQsIHN1YnN0cmluZ0xlbmd0aCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IHN0cmluZ1Byb3RvRnVuY1N1YnN0cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKLXsKLSAgICByZXR1cm4gc3RyaW5nUHJvdG9GdW5jU3Vic3RySW1w
bChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgYnVpbHRpblN0cmluZ1N1YnN0ckludGVybmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQotewotICAgIC8vIEBzdWJzdHJJbnRlcm5hbCBz
aG91bGQgbm90IGhhdmUgYW55IG9ic2VydmFibGUgc2lkZSBlZmZlY3RzIChlLmcuIGl0IHNob3Vs
ZCBub3QgY2FsbAotICAgIC8vIEdldE1ldGhvZCguLi4sIEBAdG9QcmltaXRpdmUpIG9uIHRoZSB0
aGlzVmFsdWUpLgotCi0gICAgLy8gSXQgaXMgb2sgdG8gdXNlIHRoZSBkZWZhdWx0IHN0cmluZ1By
b3RvRnVuY1N1YnN0ciBhcyB0aGUgaW1wbGVtZW50YXRpb24gb2YKLSAgICAvLyBAc3Vic3RySW50
ZXJuYWwgYmVjYXVzZSBAc3Vic3RySW50ZXJuYWwgd2lsbCBvbmx5IGJlIGNhbGxlZCBieSBidWls
dGlucywgd2hpY2ggd2lsbAotICAgIC8vIGd1YXJhbnRlZSB0aGF0IHdlIG9ubHkgcGFzcyBpdCBh
IHN0cmluZyB0aGlzVmFsdWUuIEFzIGEgcmVzdWx0LCBzdHJpbmdQcm90b0Z1bmNTdWJzdHIKLSAg
ICAvLyB3aWxsIG5vdCBuZWVkIHRvIGNhbGwgdG9TdHJpbmcoKSBvbiB0aGUgdGhpc1ZhbHVlLCBh
bmQgdGhlcmUgd2lsbCBiZSBubyBvYnNlcnZhYmxlCi0gICAgLy8gc2lkZS1lZmZlY3RzLgotICAg
IEFTU0VSVChjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpLmlzU3RyaW5nKCkpOwotICAgIHJldHVybiBz
dHJpbmdQcm90b0Z1bmNTdWJzdHJJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKLX0KLQot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTdWJzdHJpbmcoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdTdWJzdHJpbmdJbXBsKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0xNDcyLDYgKzE0NjcsMjAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBzdHJpbmdQcm90b0Z1bmNTdWJzdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc1N1YnN0cmlu
ZyhnbG9iYWxPYmplY3QsIGpzU3RyaW5nLCBzdWJzdHJpbmdTdGFydCwgc3Vic3RyaW5nTGVuZ3Ro
KSkpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1N1
YnN0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK3sKKyAgICByZXR1cm4gc3RyaW5nU3Vic3RyaW5nSW1wbChnbG9iYWxPYmplY3QsIGNhbGxG
cmFtZSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYnVpbHRpblN0cmluZ1N1
YnN0cmluZ0ludGVybmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQoreworICAgIEFTU0VSVChjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpLmlzU3RyaW5n
KCkpOworICAgIEFTU0VSVChjYWxsRnJhbWUtPmFyZ3VtZW50KDApLmlzTnVtYmVyKCkpOworICAg
IEpTVmFsdWUgZW5kID0gY2FsbEZyYW1lLT5hcmd1bWVudCgxKTsKKyAgICBBU1NFUlQoZW5kLmlz
VW5kZWZpbmVkKCkgfHwgZW5kLmlzTnVtYmVyKCkpOworICAgIHJldHVybiBzdHJpbmdTdWJzdHJp
bmdJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsgICAKK30KKwogRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNUb0xvd2VyQ2FzZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmlu
Z1Byb3RvdHlwZS5oCmluZGV4IGJkMDhhOGQ0M2EzMzNkMzljNGQwNzMxMTI0Yjk1OTRkNDRkNWFh
ZjkuLjUzN2IwZDFjNGQ3OTRhNjk0MzY5MzM0YjkyOTkyYWQxN2EzZDA2ZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oCkBAIC02MCw3ICs2
MCw4IEBAIHZvaWQgc3Vic3RpdHV0ZUJhY2tyZWZlcmVuY2VzKFN0cmluZ0J1aWxkZXImIHJlc3Vs
dCwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudCwKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgc3RyaW5nUHJvdG9GdW5jUmVwZWF0Q2hhcmFjdGVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1NwbGl0
RmFzdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGJ1aWx0aW5TdHJpbmdTdWJzdHJJbnRlcm5hbChKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBidWlsdGluU3RyaW5nU3Vi
c3RyaW5nSW50ZXJuYWwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgYnVpbHRpblN0cmluZ0luY2x1ZGVzSW50ZXJuYWwoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYnVpbHRp
blN0cmluZ0luZGV4T2ZJbnRlcm5hbChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggNWIwY2M0YjI5YTJhNDliNTdjN2YwNzk4ODJjYTY5YTdjYmIyZWY4
ZS4uOTRlNjRlYWY1Nzg2NzI2MTk5ZDcxNjg5NjNiOTZkMGMzZTg0MWI2MSAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBA
QAorMjAyMC0wMy0yNSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisK
KyAgICAgICAgUmVnRXhwLnByb3RvdHlwZVtAQHJlcGxhY2VdIHJlbGllcyBvbiBnbG9iYWxzIGFu
ZCBkb2Vzbid0IHBlcmZvcm0gVG9MZW5ndGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3Mzg2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbDogTWFyayA0IHRl
c3QgY2FzZXMgYXMgcGFzc2luZy4KKwogMjAyMC0wMy0yNCAgQWxleGV5IFNodmF5a2EgIDxzaHZh
aWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgVXBkYXRlIHRlc3QyNjIgdG8gY29tbWl0IDc5
MTQ2ZTVjZjQ4ZApkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1s
IGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCmluZGV4IGVlOTFlMWE1NjgxYTE2
OTg2MjJlMWZjMTM1M2RhYWE3ODg2YjBjMmYuLjQyOTI0NjY0YWQyMWEyM2JlNGEwNTNkNGZjODYw
OWEyZDY4OGI0NjYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFt
bAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKQEAgLTE2NTEsMTIgKzE2
NTEsNiBAQCB0ZXN0L2J1aWx0LWlucy9SZWdFeHAvcHJvdG8tZnJvbS1jdG9yLXJlYWxtLmpzOgog
dGVzdC9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlwZS9TeW1ib2wubWF0Y2gvYnVpbHRpbi1pbmZl
ci11bmljb2RlLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFs
dWUowqvvv73CuywgwqtudWxswrspIHRvIGJlIHRydWUnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2
MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqvvv73CuywgwqtudWxswrspIHRvIGJlIHRydWUn
Ci10ZXN0L2J1aWx0LWlucy9SZWdFeHAvcHJvdG90eXBlL1N5bWJvbC5yZXBsYWNlL2NvZXJjZS1s
YXN0aW5kZXguanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1
ZSjCqzE4MDE0Mzk4NTA5NDgxOTg0wrssIMKrOTAwNzE5OTI1NDc0MDk5MsK7KSB0byBiZSB0cnVl
JwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrMTgw
MTQzOTg1MDk0ODE5ODTCuywgwqs5MDA3MTk5MjU0NzQwOTkywrspIHRvIGJlIHRydWUnCi10ZXN0
L2J1aWx0LWlucy9SZWdFeHAvcHJvdG90eXBlL1N5bWJvbC5yZXBsYWNlL3BvaXNvbmVkLXN0ZGxp
Yi5qczoKLSAgZGVmYXVsdDogJ1R5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhIGZ1bmN0aW9u
JwotICBzdHJpY3QgbW9kZTogJ1R5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhIGZ1bmN0aW9u
JwogdGVzdC9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlwZS9TeW1ib2wuc2VhcmNoL3NldC1sYXN0
aW5kZXgtaW5pdC1zYW1ldmFsdWUuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVj
dGVkIFNhbWVWYWx1ZSjCqzDCuywgwqswwrspIHRvIGJlIHRydWUnCiAgIHN0cmljdCBtb2RlOiAn
VGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqswwrssIMKrMMK7KSB0byBiZSB0cnVl
Jwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394535</attachid>
            <date>2020-03-25 13:21:53 -0700</date>
            <delta_ts>2020-03-25 13:38:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173867-20200325222151.patch</filename>
            <type>text/plain</type>
            <size>21459</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4OTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
Yjc0NGE5YzUzMjBiZWJiMzJiMDI4ZGI1NjY0NWMwZWZjYzUxZmEwLi5lYzNhMzA2NDU5MzliNmU0
OTZiNzJmZjNjNTc3NzYwYmU0OTNhOTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAyMC0wMy0yNSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgUmVnRXhwLnByb3RvdHlwZVtAQHJlcGxhY2VdIHJlbGllcyBvbiBn
bG9iYWxzIGFuZCBkb2Vzbid0IHBlcmZvcm0gVG9MZW5ndGgKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mzg2NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlOgorCisgICAgICAgIGEpIEFk
ZHMgImxhc3RJbmRleCIgVG9MZW5ndGggY29lcmNpb24gWzFdLCB3aGljaCBpcyBvYnNlcnZhYmxl
LCB1bmxpa2UgVG9MZW5ndGggY29lcmNpb24KKyAgICAgICAgICAgb2YgUmVnRXhwRXhlYyByZXN1
bHQgWzJdIHRoYXQgd2Ugb21pdCwganVzdCBsaWtlIHRoZSBvbmUgaW4gQEBzcGxpdCBbM10uCisK
KyAgICAgICAgYikgUmVtb3ZlcyBgbGFzdFBvc2l0aW9uYCBjaGVja3MvdXBkYXRlcywgYXMgdGhl
cmUgYXJlIG5vbmUgaW4gdGhlIHNwZWMsIGFuZCBpdCB3YXMKKyAgICAgICAgICAgZXF1aXZhbGVu
dCB0byBjaGVja2luZyBgbmV4dFNvdXJjZVBvc2l0aW9uYC4KKworICAgICAgICBjKSBSZW1vdmVz
IHJlbGlhbmNlIG9mIEBAcmVwbGFjZSBvbiBnbG9iYWxzIGFuZCBhbHNvIHJlcGxhY2VzIEBzdHJp
bmdTdWJzdHJJbnRlcm5hbAorICAgICAgICAgICBidWlsdC1pbiB3aXRoIEBzdHJpbmdTdWJzdHJp
bmdJbnRlcm5hbCwgYXMgdGhlIGZvcm1lciBpcyBBbm5leCBCIGFuZCBhY2NlcHRzIHNpemUKKyAg
ICAgICAgICAgYXMgMm5kIHBhcmFtdGVyLCB3aGljaCBpcyBub3QgdmVyeSBoYW5keSBiZWNhdXNl
IEVDTUEtMjYyIHVzdWFsbHkgc2F5cyAic3Vic3RyaW5nCisgICAgICAgICAgIG9mIFMgY29uc2lz
dGluZyBvZiB0aGUgY29kZSB1bml0cyBhdCBpbmRpY2VzIFggKGluY2x1c2l2ZSkgdGhyb3VnaCBZ
IChleGNsdXNpdmUpIi4KKworICAgICAgICBbMV06IGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNz
ZWMtcmVnZXhwLnByb3RvdHlwZS1AQHJlcGxhY2UgKHN0ZXAgMTEuYy5paWkuMi5hKQorICAgICAg
ICBbMl06IGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVnZXhwLnByb3RvdHlwZS1AQHJl
cGxhY2UgKHN0ZXAgMTQuYSkKKyAgICAgICAgWzNdOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8j
c2VjLXJlZ2V4cC5wcm90b3R5cGUtQEBzcGxpdCAoc3RlcCAxOS5kLml2LjYpCisKKyAgICAgICAg
KiBidWlsdGlucy9CdWlsdGluTmFtZXMuaDoKKyAgICAgICAgKiBidWlsdGlucy9SZWdFeHBQcm90
b3R5cGUuanM6CisgICAgICAgIChnZXRTdWJzdGl0dXRpb24pOgorICAgICAgICAoU3ltYm9sLnJl
cGxhY2UpOgorICAgICAgICAoU3ltYm9sLnNwbGl0KToKKyAgICAgICAgKiBidWlsdGlucy9TdHJp
bmdQcm90b3R5cGUuanM6CisgICAgICAgIChnbG9iYWxQcml2YXRlLnJlcGVhdENoYXJhY3RlcnNT
bG93UGF0aCk6CisgICAgICAgICogYnl0ZWNvZGUvTGlua1RpbWVDb25zdGFudC5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9i
amVjdDo6aW5pdCk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwOgorICAg
ICAgICAoSlNDOjpzdHJpbmdJbmRleE9mSW1wbCk6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3Rv
RnVuY0luZGV4T2YpOgorICAgICAgICAoSlNDOjpidWlsdGluU3RyaW5nSW5kZXhPZkludGVybmFs
KToKKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jU3Vic3RyKToKKyAgICAgICAgKEpTQzo6
c3RyaW5nU3Vic3RyaW5nSW1wbCk6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1N1YnN0
cmluZyk6CisgICAgICAgIChKU0M6OmJ1aWx0aW5TdHJpbmdTdWJzdHJpbmdJbnRlcm5hbCk6Cisg
ICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1N1YnN0ckltcGwpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpidWlsdGluU3RyaW5nU3Vic3RySW50ZXJuYWwpOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmg6CisKIDIwMjAtMDMtMjQgIEtlaXRoIE1pbGxlciAg
PGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGlzRW1wdHkgQXNzZW1ibHlI
ZWxwZXJzIGZ1bmN0aW9uIGFuZCBhZGQgaXNOb3RFbXB0eQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCmluZGV4IDE2ZmYxZjk2YmFkZmFlMzQ3Y2Y3YmZi
MzI1NTcyMmY5MGExZDk2MDIuLjE5NzBjOWY0MzA2MDg3MjFhMmEzMjU2YjI2ZTJlNDZiM2M4M2E2
ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFt
ZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgK
QEAgLTE1OSw4ICsxNTksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBtYWNybyhyZWdFeHBTdHJp
bmdJdGVyYXRvclVuaWNvZGUpIFwKICAgICBtYWNybyhyZWdFeHBTdHJpbmdJdGVyYXRvckRvbmUp
IFwKICAgICBtYWNybyhzdHJpbmdJbmNsdWRlc0ludGVybmFsKSBcCisgICAgbWFjcm8oc3RyaW5n
SW5kZXhPZkludGVybmFsKSBcCiAgICAgbWFjcm8oc3RyaW5nU3BsaXRGYXN0KSBcCi0gICAgbWFj
cm8oc3RyaW5nU3Vic3RySW50ZXJuYWwpIFwKKyAgICBtYWNybyhzdHJpbmdTdWJzdHJpbmdJbnRl
cm5hbCkgXAogICAgIG1hY3JvKG1ha2VCb3VuZEZ1bmN0aW9uKSBcCiAgICAgbWFjcm8oaGFzT3du
TGVuZ3RoUHJvcGVydHkpIFwKICAgICBtYWNybyhpbXBvcnRNb2R1bGUpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9SZWdFeHBQcm90b3R5cGUuanMgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUmVnRXhwUHJvdG90eXBlLmpzCmluZGV4IDI1NmJj
NWI0YjM2MDhlNzJiZTliMjc1MDU1ZmMyZGU4NzdhYTFjMjkuLjY5MjI0NDc5ZTdhY2U4MmQwYTEz
YzM4ZGVmMDVmZjA2YTBkNzYxZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
dWlsdGlucy9SZWdFeHBQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1
aWx0aW5zL1JlZ0V4cFByb3RvdHlwZS5qcwpAQCAtMTkxLDE0ICsxOTEsMTQgQEAgZnVuY3Rpb24g
cmVwbGFjZShzdHJBcmcsIHJlcGxhY2UpCiAgICAgICAgIHZhciByZXN1bHQgPSAiIjsKICAgICAg
ICAgdmFyIGxhc3RTdGFydCA9IDA7CiAKLSAgICAgICAgZm9yICh2YXIgc3RhcnQgPSAwOyBzdGFy
dCA9IHJlcGxhY2VtZW50LmluZGV4T2YoIiQiLCBsYXN0U3RhcnQpLCBzdGFydCAhPT0gLTE7IGxh
c3RTdGFydCA9IHN0YXJ0KSB7CisgICAgICAgIGZvciAodmFyIHN0YXJ0ID0gMDsgc3RhcnQgPSBA
c3RyaW5nSW5kZXhPZkludGVybmFsLkBjYWxsKHJlcGxhY2VtZW50LCAiJCIsIGxhc3RTdGFydCks
IHN0YXJ0ICE9PSAtMTsgbGFzdFN0YXJ0ID0gc3RhcnQpIHsKICAgICAgICAgICAgIGlmIChzdGFy
dCAtIGxhc3RTdGFydCA+IDApCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgcmVw
bGFjZW1lbnQuc3Vic3RyaW5nKGxhc3RTdGFydCwgc3RhcnQpOworICAgICAgICAgICAgICAgIHJl
c3VsdCA9IHJlc3VsdCArIEBzdHJpbmdTdWJzdHJpbmdJbnRlcm5hbC5AY2FsbChyZXBsYWNlbWVu
dCwgbGFzdFN0YXJ0LCBzdGFydCk7CiAgICAgICAgICAgICBzdGFydCsrOwotICAgICAgICAgICAg
dmFyIGNoID0gcmVwbGFjZW1lbnQuY2hhckF0KHN0YXJ0KTsKLSAgICAgICAgICAgIGlmIChjaCA9
PT0gIiIpCisgICAgICAgICAgICBpZiAoc3RhcnQgPj0gcmVwbGFjZW1lbnRMZW5ndGgpCiAgICAg
ICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgIiQiOwogICAgICAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICAgICAgdmFyIGNoID0gcmVwbGFjZW1lbnRbc3RhcnRdOwogICAgICAgICAgICAg
ICAgIHN3aXRjaCAoY2gpCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGNhc2Ug
IiQiOgpAQCAtMjExLDIwICsyMTEsMjAgQEAgZnVuY3Rpb24gcmVwbGFjZShzdHJBcmcsIHJlcGxh
Y2UpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgImAi
OgogICAgICAgICAgICAgICAgICAgICBpZiAocG9zaXRpb24gPiAwKQotICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgc3RyLnN1YnN0cmluZygwLCBwb3NpdGlvbik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKyBAc3RyaW5nU3Vic3RyaW5n
SW50ZXJuYWwuQGNhbGwoc3RyLCAwLCBwb3NpdGlvbik7CiAgICAgICAgICAgICAgICAgICAgIHN0
YXJ0Kys7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2Ug
IiciOgogICAgICAgICAgICAgICAgICAgICBpZiAodGFpbFBvcyA8IHN0cmluZ0xlbmd0aCkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCArIHN0ci5zdWJzdHJpbmcodGFp
bFBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKyBAc3RyaW5n
U3Vic3RyaW5nSW50ZXJuYWwuQGNhbGwoc3RyLCB0YWlsUG9zKTsKICAgICAgICAgICAgICAgICAg
ICAgc3RhcnQrKzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAg
Y2FzZSAiPCI6CiAgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lZENhcHR1cmVzICE9PSBAdW5k
ZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZ3JvdXBOYW1lU3RhcnRJbmRl
eCA9IHN0YXJ0ICsgMTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBncm91cE5hbWVFbmRJ
bmRleCA9IHJlcGxhY2VtZW50LmluZGV4T2YoIj4iLCBncm91cE5hbWVTdGFydEluZGV4KTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHZhciBncm91cE5hbWVFbmRJbmRleCA9IEBzdHJpbmdJbmRl
eE9mSW50ZXJuYWwuQGNhbGwocmVwbGFjZW1lbnQsICI+IiwgZ3JvdXBOYW1lU3RhcnRJbmRleCk7
CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXBOYW1lRW5kSW5kZXggIT09IC0xKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3VwTmFtZSA9IHJlcGxhY2VtZW50
LnN1YnN0cmluZyhncm91cE5hbWVTdGFydEluZGV4LCBncm91cE5hbWVFbmRJbmRleCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3VwTmFtZSA9IEBzdHJpbmdTdWJzdHJpbmdJ
bnRlcm5hbC5AY2FsbChyZXBsYWNlbWVudCwgZ3JvdXBOYW1lU3RhcnRJbmRleCwgZ3JvdXBOYW1l
RW5kSW5kZXgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjYXB0dXJlID0gbmFt
ZWRDYXB0dXJlc1tncm91cE5hbWVdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChj
YXB0dXJlICE9PSBAdW5kZWZpbmVkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXN1bHQgPSByZXN1bHQgKyBAdG9TdHJpbmcoY2FwdHVyZSk7CkBAIC0yMzgsMTkgKzIzOCwxOSBA
QCBmdW5jdGlvbiByZXBsYWNlKHN0ckFyZywgcmVwbGFjZSkKICAgICAgICAgICAgICAgICAgICAg
c3RhcnQrKzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgZGVm
YXVsdDoKLSAgICAgICAgICAgICAgICAgICAgdmFyIGNoQ29kZSA9IGNoLmNoYXJDb2RlQXQoMCk7
CisgICAgICAgICAgICAgICAgICAgIHZhciBjaENvZGUgPSBjaC5AY2hhckNvZGVBdCgwKTsKICAg
ICAgICAgICAgICAgICAgICAgaWYgKGNoQ29kZSA+PSAweDMwICYmIGNoQ29kZSA8PSAweDM5KSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgb3JpZ2luYWxTdGFydCA9IHN0YXJ0IC0gMTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0Kys7CiAKICAgICAgICAgICAgICAgICAgICAg
ICAgIHZhciBuID0gY2hDb2RlIC0gMHgzMDsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChu
ID4gbSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCArIHJl
cGxhY2VtZW50LnN1YnN0cmluZyhvcmlnaW5hbFN0YXJ0LCBzdGFydCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgQHN0cmluZ1N1YnN0cmluZ0ludGVybmFs
LkBjYWxsKHJlcGxhY2VtZW50LCBvcmlnaW5hbFN0YXJ0LCBzdGFydCk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChzdGFydCA8IHJlcGxhY2VtZW50TGVuZ3RoKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5leHRDaENvZGUgPSByZXBsYWNlbWVudC5jaGFy
Q29kZUF0KHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmV4dENoQ29k
ZSA9IHJlcGxhY2VtZW50LkBjaGFyQ29kZUF0KHN0YXJ0KTsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAobmV4dENoQ29kZSA+PSAweDMwICYmIG5leHRDaENvZGUgPD0gMHgzOSkgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbm4gPSAxMCAqIG4gKyBuZXh0Q2hD
b2RlIC0gMHgzMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5uIDw9IG0p
IHsKQEAgLTI2MSw3ICsyNjEsNyBAQCBmdW5jdGlvbiByZXBsYWNlKHN0ckFyZywgcmVwbGFjZSkK
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KG4gPT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAr
IHJlcGxhY2VtZW50LnN1YnN0cmluZyhvcmlnaW5hbFN0YXJ0LCBzdGFydCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgQHN0cmluZ1N1YnN0cmluZ0ludGVy
bmFsLkBjYWxsKHJlcGxhY2VtZW50LCBvcmlnaW5hbFN0YXJ0LCBzdGFydCk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAKQEAg
LTI3NSw3ICsyNzUsNyBAQCBmdW5jdGlvbiByZXBsYWNlKHN0ckFyZywgcmVwbGFjZSkKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIHJldHVybiByZXN1bHQgKyByZXBsYWNlbWVu
dC5zdWJzdHJpbmcobGFzdFN0YXJ0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdCArIEBzdHJpbmdT
dWJzdHJpbmdJbnRlcm5hbC5AY2FsbChyZXBsYWNlbWVudCwgbGFzdFN0YXJ0KTsKICAgICB9CiAK
ICAgICBpZiAoIUBpc09iamVjdCh0aGlzKSkKQEAgLTMxMywxNSArMzEzLDE2IEBAIGZ1bmN0aW9u
IHJlcGxhY2Uoc3RyQXJnLCByZXBsYWNlKQogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAg
ICAgICAgdmFyIG1hdGNoU3RyID0gQHRvU3RyaW5nKHJlc3VsdFswXSk7CiAKLSAgICAgICAgICAg
ICAgICBpZiAoIW1hdGNoU3RyLmxlbmd0aCkKLSAgICAgICAgICAgICAgICAgICAgcmVnZXhwLmxh
c3RJbmRleCA9IEBhZHZhbmNlU3RyaW5nSW5kZXgoc3RyLCByZWdleHAubGFzdEluZGV4LCB1bmlj
b2RlKTsKKyAgICAgICAgICAgICAgICBpZiAoIW1hdGNoU3RyLmxlbmd0aCkgeworICAgICAgICAg
ICAgICAgICAgICB2YXIgdGhpc0luZGV4ID0gQHRvTGVuZ3RoKHJlZ2V4cC5sYXN0SW5kZXgpOwor
ICAgICAgICAgICAgICAgICAgICByZWdleHAubGFzdEluZGV4ID0gQGFkdmFuY2VTdHJpbmdJbmRl
eChzdHIsIHRoaXNJbmRleCwgdW5pY29kZSk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAgICAgfQogCiAgICAgdmFyIGFjY3VtdWxhdGVkUmVzdWx0ID0gIiI7
CiAgICAgdmFyIG5leHRTb3VyY2VQb3NpdGlvbiA9IDA7Ci0gICAgdmFyIGxhc3RQb3NpdGlvbiA9
IDA7CiAKICAgICBmb3IgKHZhciBpID0gMCwgcmVzdWx0TGlzdExlbmd0aCA9IHJlc3VsdExpc3Qu
bGVuZ3RoOyBpIDwgcmVzdWx0TGlzdExlbmd0aDsgKytpKSB7CiAgICAgICAgIHZhciByZXN1bHQg
PSByZXN1bHRMaXN0W2ldOwpAQCAtMzQ2LDcgKzM0NywxMCBAQCBmdW5jdGlvbiByZXBsYWNlKHN0
ckFyZywgcmVwbGFjZSkKICAgICAgICAgdmFyIG5hbWVkQ2FwdHVyZXMgPSByZXN1bHQuZ3JvdXBz
OwogCiAgICAgICAgIGlmIChmdW5jdGlvbmFsUmVwbGFjZSkgewotICAgICAgICAgICAgdmFyIHJl
cGxhY2VyQXJncyA9IFsgbWF0Y2hlZCBdLmNvbmNhdChjYXB0dXJlcyk7CisgICAgICAgICAgICB2
YXIgcmVwbGFjZXJBcmdzID0gWyBtYXRjaGVkIF07CisgICAgICAgICAgICBmb3IgKHZhciBqID0g
MDsgaiA8IGNhcHR1cmVzLmxlbmd0aDsgaisrKQorICAgICAgICAgICAgICAgIHJlcGxhY2VyQXJn
cy5AcHVzaChjYXB0dXJlc1tqXSk7CisKICAgICAgICAgICAgIHJlcGxhY2VyQXJncy5AcHVzaChw
b3NpdGlvbik7CiAgICAgICAgICAgICByZXBsYWNlckFyZ3MuQHB1c2goc3RyKTsKIApAQCAtMzYy
LDE3ICszNjYsMTYgQEAgZnVuY3Rpb24gcmVwbGFjZShzdHJBcmcsIHJlcGxhY2UpCiAgICAgICAg
ICAgICByZXBsYWNlbWVudCA9IGdldFN1YnN0aXR1dGlvbihtYXRjaGVkLCBzdHIsIHBvc2l0aW9u
LCBjYXB0dXJlcywgbmFtZWRDYXB0dXJlcywgcmVwbGFjZSk7CiAgICAgICAgIH0KIAotICAgICAg
ICBpZiAocG9zaXRpb24gPj0gbmV4dFNvdXJjZVBvc2l0aW9uICYmIHBvc2l0aW9uID49IGxhc3RQ
b3NpdGlvbikgewotICAgICAgICAgICAgYWNjdW11bGF0ZWRSZXN1bHQgPSBhY2N1bXVsYXRlZFJl
c3VsdCArIHN0ci5zdWJzdHJpbmcobmV4dFNvdXJjZVBvc2l0aW9uLCBwb3NpdGlvbikgKyByZXBs
YWNlbWVudDsKKyAgICAgICAgaWYgKHBvc2l0aW9uID49IG5leHRTb3VyY2VQb3NpdGlvbikgewor
ICAgICAgICAgICAgYWNjdW11bGF0ZWRSZXN1bHQgPSBhY2N1bXVsYXRlZFJlc3VsdCArIEBzdHJp
bmdTdWJzdHJpbmdJbnRlcm5hbC5AY2FsbChzdHIsIG5leHRTb3VyY2VQb3NpdGlvbiwgcG9zaXRp
b24pICsgcmVwbGFjZW1lbnQ7CiAgICAgICAgICAgICBuZXh0U291cmNlUG9zaXRpb24gPSBwb3Np
dGlvbiArIG1hdGNoTGVuZ3RoOwotICAgICAgICAgICAgbGFzdFBvc2l0aW9uID0gcG9zaXRpb247
CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAobmV4dFNvdXJjZVBvc2l0aW9uID49IHN0cmlu
Z0xlbmd0aCkKICAgICAgICAgcmV0dXJuICBhY2N1bXVsYXRlZFJlc3VsdDsKIAotICAgIHJldHVy
biBhY2N1bXVsYXRlZFJlc3VsdCArIHN0ci5zdWJzdHJpbmcobmV4dFNvdXJjZVBvc2l0aW9uKTsK
KyAgICByZXR1cm4gYWNjdW11bGF0ZWRSZXN1bHQgKyBAc3RyaW5nU3Vic3RyaW5nSW50ZXJuYWwu
QGNhbGwoc3RyLCBuZXh0U291cmNlUG9zaXRpb24pOwogfQogCiAvLyAyMS4yLjUuOSBSZWdFeHAu
cHJvdG90eXBlW0BAc2VhcmNoXSAoc3RyaW5nKQpAQCAtNTYyLDcgKzU2NSw3IEBAIGZ1bmN0aW9u
IHNwbGl0KHN0cmluZywgbGltaXQpCiAgICAgICAgICAgICAvLyBpdi4gRWxzZSBlICE9IHAsCiAg
ICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAvLyAxLiBMZXQgVCBiZSBhIFN0cmlu
ZyB2YWx1ZSBlcXVhbCB0byB0aGUgc3Vic3RyaW5nIG9mIFMgY29uc2lzdGluZyBvZiB0aGUgZWxl
bWVudHMgYXQgaW5kaWNlcyBwIChpbmNsdXNpdmUpIHRocm91Z2ggcSAoZXhjbHVzaXZlKS4KLSAg
ICAgICAgICAgICAgICB2YXIgc3ViU3RyID0gQHN0cmluZ1N1YnN0ckludGVybmFsLkBjYWxsKHN0
ciwgcG9zaXRpb24sIG1hdGNoUG9zaXRpb24gLSBwb3NpdGlvbik7CisgICAgICAgICAgICAgICAg
dmFyIHN1YlN0ciA9IEBzdHJpbmdTdWJzdHJpbmdJbnRlcm5hbC5AY2FsbChzdHIsIHBvc2l0aW9u
LCBtYXRjaFBvc2l0aW9uKTsKICAgICAgICAgICAgICAgICAvLyAyLiBQZXJmb3JtICEgQ3JlYXRl
RGF0YVByb3BlcnR5KEEsICEgVG9TdHJpbmcobGVuZ3RoQSksIFQpLgogICAgICAgICAgICAgICAg
IC8vIDMuIExldCBsZW5ndGhBIGJlIGxlbmd0aEEgKyAxLgogICAgICAgICAgICAgICAgIEBwdXRC
eVZhbERpcmVjdChyZXN1bHQsIHJlc3VsdC5sZW5ndGgsIHN1YlN0cik7CkBAIC01OTcsNyArNjAw
LDcgQEAgZnVuY3Rpb24gc3BsaXQoc3RyaW5nLCBsaW1pdCkKICAgICAgICAgfQogICAgIH0KICAg
ICAvLyAyMC4gTGV0IFQgYmUgYSBTdHJpbmcgdmFsdWUgZXF1YWwgdG8gdGhlIHN1YnN0cmluZyBv
ZiBTIGNvbnNpc3Rpbmcgb2YgdGhlIGVsZW1lbnRzIGF0IGluZGljZXMgcCAoaW5jbHVzaXZlKSB0
aHJvdWdoIHNpemUgKGV4Y2x1c2l2ZSkuCi0gICAgdmFyIHJlbWFpbmluZ1N0ciA9IEBzdHJpbmdT
dWJzdHJJbnRlcm5hbC5AY2FsbChzdHIsIHBvc2l0aW9uLCBzaXplKTsKKyAgICB2YXIgcmVtYWlu
aW5nU3RyID0gQHN0cmluZ1N1YnN0cmluZ0ludGVybmFsLkBjYWxsKHN0ciwgcG9zaXRpb24sIHNp
emUpOwogICAgIC8vIDIxLiBQZXJmb3JtICEgQ3JlYXRlRGF0YVByb3BlcnR5KEEsICEgVG9TdHJp
bmcobGVuZ3RoQSksIFQpLgogICAgIEBwdXRCeVZhbERpcmVjdChyZXN1bHQsIHJlc3VsdC5sZW5n
dGgsIHJlbWFpbmluZ1N0cik7CiAgICAgLy8gMjIuIFJldHVybiBBLgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1N0cmluZ1Byb3RvdHlwZS5qcyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdQcm90b3R5cGUuanMKaW5kZXggOWQ2Y2FkY2Ux
ZGNiZmRlZDJkMjViZjkyODBjYTczZjBiZDBiZjFiZi4uNjllNjNkM2Y3N2FjMWUzNGRhMmFlZjgz
YzY0ZjJjOTM3NzgzOTNmNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL1N0cmluZ1Byb3RvdHlwZS5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvU3RyaW5nUHJvdG90eXBlLmpzCkBAIC0xMTMsNyArMTEzLDcgQEAgZnVuY3Rpb24gcmVwZWF0
Q2hhcmFjdGVyc1Nsb3dQYXRoKHN0cmluZywgY291bnQpCiAgICAgICAgIG9wZXJhbmQgKz0gb3Bl
cmFuZDsKICAgICB9CiAgICAgaWYgKHJlbWFpbmluZ0NoYXJhY3RlcnMpCi0gICAgICAgIHJlc3Vs
dCArPSBAc3RyaW5nU3Vic3RySW50ZXJuYWwuQGNhbGwoc3RyaW5nLCAwLCByZW1haW5pbmdDaGFy
YWN0ZXJzKTsKKyAgICAgICAgcmVzdWx0ICs9IEBzdHJpbmdTdWJzdHJpbmdJbnRlcm5hbC5AY2Fs
bChzdHJpbmcsIDAsIHJlbWFpbmluZ0NoYXJhY3RlcnMpOwogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MaW5rVGltZUNv
bnN0YW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGlua1RpbWVDb25zdGFu
dC5oCmluZGV4IDkwMWRmMGIxYTAyNmUyNmZmZjU0YzIwMDgxOWZjNGRiYzM2NmY1NTAuLjkxNjIx
YjE4ZDVkZjNhMjI4ZjU1YTE4Y2Q3MGM3MTM0MTM3YWYxNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MaW5rVGltZUNvbnN0YW50LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xpbmtUaW1lQ29uc3RhbnQuaApAQCAtOTAsOCArOTAsOSBA
QCBjbGFzcyBKU0dsb2JhbE9iamVjdDsKICAgICB2KHJlZ0V4cFByb3RvdHlwZVN5bWJvbFJlcGxh
Y2UsIG51bGxwdHIpIFwKICAgICB2KHJlZ0V4cFRlc3RGYXN0LCBudWxscHRyKSBcCiAgICAgdihz
dHJpbmdJbmNsdWRlc0ludGVybmFsLCBudWxscHRyKSBcCisgICAgdihzdHJpbmdJbmRleE9mSW50
ZXJuYWwsIG51bGxwdHIpIFwKICAgICB2KHN0cmluZ1NwbGl0RmFzdCwgbnVsbHB0cikgXAotICAg
IHYoc3RyaW5nU3Vic3RySW50ZXJuYWwsIG51bGxwdHIpIFwKKyAgICB2KHN0cmluZ1N1YnN0cmlu
Z0ludGVybmFsLCBudWxscHRyKSBcCiAgICAgdihtYWtlQm91bmRGdW5jdGlvbiwgbnVsbHB0cikg
XAogICAgIHYoaGFzT3duTGVuZ3RoUHJvcGVydHksIG51bGxwdHIpIFwKICAgICB2KGRhdGVUaW1l
Rm9ybWF0LCBudWxscHRyKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5jcHAKaW5kZXggOTIxODRmMDEzMmZlNTE0MWNiOThhYTU2MTk1NzViNWI2
MzIwNTc0Ni4uNjAzMGI2Y2Y0MDU3NGQ4MTZiYjhkODM4NzZiMzg5N2MxYzUyMDgyZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAt
MTE0MiwxMSArMTE0MiwxNCBAQCBjYXBpdGFsTmFtZSAjIyBDb25zdHJ1Y3RvciogbG93ZXJOYW1l
ICMjIENvbnN0cnVjdG9yID0gZmVhdHVyZUZsYWcgPyBjYXBpdGFsTmFtZQogICAgIG1fbGlua1Rp
bWVDb25zdGFudHNbc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KExpbmtUaW1lQ29uc3RhbnQ6OnN0cmlu
Z0luY2x1ZGVzSW50ZXJuYWwpXS5pbml0TGF0ZXIoW10gKGNvbnN0IEluaXRpYWxpemVyPEpTQ2Vs
bD4mIGluaXQpIHsKICAgICAgICAgICAgIGluaXQuc2V0KEpTRnVuY3Rpb246OmNyZWF0ZShpbml0
LnZtLCBqc0Nhc3Q8SlNHbG9iYWxPYmplY3QqPihpbml0Lm93bmVyKSwgMSwgU3RyaW5nKCksIGJ1
aWx0aW5TdHJpbmdJbmNsdWRlc0ludGVybmFsKSk7CiAgICAgICAgIH0pOworICAgIG1fbGlua1Rp
bWVDb25zdGFudHNbc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KExpbmtUaW1lQ29uc3RhbnQ6OnN0cmlu
Z0luZGV4T2ZJbnRlcm5hbCldLmluaXRMYXRlcihbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlNDZWxs
PiYgaW5pdCkgeworICAgICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGluaXQu
dm0sIGpzQ2FzdDxKU0dsb2JhbE9iamVjdCo+KGluaXQub3duZXIpLCAxLCBTdHJpbmcoKSwgYnVp
bHRpblN0cmluZ0luZGV4T2ZJbnRlcm5hbCkpOworICAgICAgICB9KTsKICAgICBtX2xpbmtUaW1l
Q29uc3RhbnRzW3N0YXRpY19jYXN0PHVuc2lnbmVkPihMaW5rVGltZUNvbnN0YW50OjpzdHJpbmdT
cGxpdEZhc3QpXS5pbml0TGF0ZXIoW10gKGNvbnN0IEluaXRpYWxpemVyPEpTQ2VsbD4mIGluaXQp
IHsKICAgICAgICAgICAgIGluaXQuc2V0KEpTRnVuY3Rpb246OmNyZWF0ZShpbml0LnZtLCBqc0Nh
c3Q8SlNHbG9iYWxPYmplY3QqPihpbml0Lm93bmVyKSwgMiwgU3RyaW5nKCksIHN0cmluZ1Byb3Rv
RnVuY1NwbGl0RmFzdCkpOwogICAgICAgICB9KTsKLSAgICBtX2xpbmtUaW1lQ29uc3RhbnRzW3N0
YXRpY19jYXN0PHVuc2lnbmVkPihMaW5rVGltZUNvbnN0YW50OjpzdHJpbmdTdWJzdHJJbnRlcm5h
bCldLmluaXRMYXRlcihbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlNDZWxsPiYgaW5pdCkgewotICAg
ICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGluaXQudm0sIGpzQ2FzdDxKU0ds
b2JhbE9iamVjdCo+KGluaXQub3duZXIpLCAyLCBTdHJpbmcoKSwgYnVpbHRpblN0cmluZ1N1YnN0
ckludGVybmFsKSk7CisgICAgbV9saW5rVGltZUNvbnN0YW50c1tzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oTGlua1RpbWVDb25zdGFudDo6c3RyaW5nU3Vic3RyaW5nSW50ZXJuYWwpXS5pbml0TGF0ZXIo
W10gKGNvbnN0IEluaXRpYWxpemVyPEpTQ2VsbD4mIGluaXQpIHsKKyAgICAgICAgICAgIGluaXQu
c2V0KEpTRnVuY3Rpb246OmNyZWF0ZShpbml0LnZtLCBqc0Nhc3Q8SlNHbG9iYWxPYmplY3QqPihp
bml0Lm93bmVyKSwgMSwgU3RyaW5nKCksIGJ1aWx0aW5TdHJpbmdTdWJzdHJpbmdJbnRlcm5hbCkp
OwogICAgICAgICB9KTsKIAogICAgIC8vIEZ1bmN0aW9uIHByb3RvdHlwZSBoZWxwZXJzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKaW5k
ZXggZmQzOGQ2ZjAwNTk5OWZlYTczZmVkOGNmN2Q0ZWQyZmY1ZDBjYTA5OC4uYjU5ZDE0YmE2MzM0
ODRjMmZmMTcwMDZlMTBjMzk2NWI3NjJkYzdkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCkBAIC0xMDc2LDcgKzEwNzYsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0NvZGVQb2ludEF0KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9G
dW5jSW5kZXhPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBzdHJpbmdJbmRleE9mSW1wbChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMTEyMyw2ICsxMTIzLDIxIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgc3RyaW5nUHJvdG9GdW5jSW5kZXhPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihyZXN1bHQpKTsKIH0KIAorRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNJbmRleE9mKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQoreworICAgIHJldHVybiBz
dHJpbmdJbmRleE9mSW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7Cit9CisKK0VuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgYnVpbHRpblN0cmluZ0luZGV4T2ZJbnRlcm5hbChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3sKKyAgICBBU1NF
UlQoY2FsbEZyYW1lLT50aGlzVmFsdWUoKS5pc1N0cmluZygpKTsKKyAgICBKU1ZhbHVlIHBvc2l0
aW9uID0gY2FsbEZyYW1lLT5hcmd1bWVudCgxKTsKKyAgICBVTlVTRURfUEFSQU0ocG9zaXRpb24p
OworICAgIEFTU0VSVChwb3NpdGlvbi5pc1VuZGVmaW5lZCgpIHx8IHBvc2l0aW9uLmlzTnVtYmVy
KCkpOworCisgICAgcmV0dXJuIHN0cmluZ0luZGV4T2ZJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZy
YW1lKTsKK30KKwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNM
YXN0SW5kZXhPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0xMzY1LDcgKzEz
ODAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1NwbGl0
RmFzdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUocmVzdWx0KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHN0cmluZ1Byb3RvRnVuY1N1
YnN0ckltcGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1N1YnN0cihK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMTQwOSwyNiArMTQyNCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBzdHJpbmdQcm90b0Z1bmNTdWJzdHJJbXBsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N1YnN0cmluZyh2bSwgdVN0cmlu
Zywgc3Vic3RyaW5nU3RhcnQsIHN1YnN0cmluZ0xlbmd0aCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1N1YnN0cihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKLXsKLSAgICByZXR1cm4gc3RyaW5nUHJv
dG9GdW5jU3Vic3RySW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7Ci19Ci0KLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgYnVpbHRpblN0cmluZ1N1YnN0ckludGVybmFsKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQotewotICAgIC8vIEBz
dWJzdHJJbnRlcm5hbCBzaG91bGQgbm90IGhhdmUgYW55IG9ic2VydmFibGUgc2lkZSBlZmZlY3Rz
IChlLmcuIGl0IHNob3VsZCBub3QgY2FsbAotICAgIC8vIEdldE1ldGhvZCguLi4sIEBAdG9Qcmlt
aXRpdmUpIG9uIHRoZSB0aGlzVmFsdWUpLgotCi0gICAgLy8gSXQgaXMgb2sgdG8gdXNlIHRoZSBk
ZWZhdWx0IHN0cmluZ1Byb3RvRnVuY1N1YnN0ciBhcyB0aGUgaW1wbGVtZW50YXRpb24gb2YKLSAg
ICAvLyBAc3Vic3RySW50ZXJuYWwgYmVjYXVzZSBAc3Vic3RySW50ZXJuYWwgd2lsbCBvbmx5IGJl
IGNhbGxlZCBieSBidWlsdGlucywgd2hpY2ggd2lsbAotICAgIC8vIGd1YXJhbnRlZSB0aGF0IHdl
IG9ubHkgcGFzcyBpdCBhIHN0cmluZyB0aGlzVmFsdWUuIEFzIGEgcmVzdWx0LCBzdHJpbmdQcm90
b0Z1bmNTdWJzdHIKLSAgICAvLyB3aWxsIG5vdCBuZWVkIHRvIGNhbGwgdG9TdHJpbmcoKSBvbiB0
aGUgdGhpc1ZhbHVlLCBhbmQgdGhlcmUgd2lsbCBiZSBubyBvYnNlcnZhYmxlCi0gICAgLy8gc2lk
ZS1lZmZlY3RzLgotICAgIEFTU0VSVChjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpLmlzU3RyaW5nKCkp
OwotICAgIHJldHVybiBzdHJpbmdQcm90b0Z1bmNTdWJzdHJJbXBsKGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1
bmNTdWJzdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc3RyaW5nU3Vic3RyaW5nSW1wbChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMTQ3Miw2ICsxNDY4LDIxIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgc3RyaW5nUHJvdG9GdW5jU3Vic3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNTdWJzdHJp
bmcoZ2xvYmFsT2JqZWN0LCBqc1N0cmluZywgc3Vic3RyaW5nU3RhcnQsIHN1YnN0cmluZ0xlbmd0
aCkpKTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNT
dWJzdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCit7CisgICAgcmV0dXJuIHN0cmluZ1N1YnN0cmluZ0ltcGwoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJ1aWx0aW5TdHJpbmdT
dWJzdHJpbmdJbnRlcm5hbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK3sKKyAgICBBU1NFUlQoY2FsbEZyYW1lLT50aGlzVmFsdWUoKS5pc1N0cmlu
ZygpKTsKKyAgICBBU1NFUlQoY2FsbEZyYW1lLT5hcmd1bWVudCgwKS5pc051bWJlcigpKTsKKyAg
ICBKU1ZhbHVlIGVuZCA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMSk7CisgICAgVU5VU0VEX1BBUkFN
KGVuZCk7CisgICAgQVNTRVJUKGVuZC5pc1VuZGVmaW5lZCgpIHx8IGVuZC5pc051bWJlcigpKTsK
KyAgICByZXR1cm4gc3RyaW5nU3Vic3RyaW5nSW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7
ICAgCit9CisKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jVG9M
b3dlckNhc2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaAppbmRleCBiZDA4YThkNDNhMzMz
ZDM5YzRkMDczMTEyNGI5NTk0ZDQ0ZDVhYWY5Li41MzdiMGQxYzRkNzk0YTY5NDM2OTMzNGI5Mjk5
MmFkMTdhM2QwNmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdQcm90b3R5cGUuaApAQCAtNjAsNyArNjAsOCBAQCB2b2lkIHN1YnN0aXR1dGVCYWNrcmVmZXJl
bmNlcyhTdHJpbmdCdWlsZGVyJiByZXN1bHQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnQsCiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1JlcGVhdENoYXJhY3Rl
cihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBzdHJpbmdQcm90b0Z1bmNTcGxpdEZhc3QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBidWlsdGluU3RyaW5nU3Vic3RySW50
ZXJuYWwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK0VuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgYnVpbHRpblN0cmluZ1N1YnN0cmluZ0ludGVybmFsKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJ1aWx0aW5TdHJpbmdJ
bmNsdWRlc0ludGVybmFsKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGJ1aWx0aW5TdHJpbmdJbmRleE9mSW50ZXJuYWwoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9K
U1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDViMGNjNGIyOWEyYTQ5
YjU3YzdmMDc5ODgyY2E2OWE3Y2JiMmVmOGUuLjk0ZTY0ZWFmNTc4NjcyNjE5OWQ3MTY4OTYzYjk2
ZDBjM2U4NDFiNjEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDMtMjUgIEFsZXhleSBTaHZheWthICA8
c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIFJlZ0V4cC5wcm90b3R5cGVbQEByZXBs
YWNlXSByZWxpZXMgb24gZ2xvYmFscyBhbmQgZG9lc24ndCBwZXJmb3JtIFRvTGVuZ3RoCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzM4NjcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3QyNjIvZXhw
ZWN0YXRpb25zLnlhbWw6IE1hcmsgNCB0ZXN0IGNhc2VzIGFzIHBhc3NpbmcuCisKIDIwMjAtMDMt
MjQgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIFVw
ZGF0ZSB0ZXN0MjYyIHRvIGNvbW1pdCA3OTE0NmU1Y2Y0OGQKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
dGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMu
eWFtbAppbmRleCBlZTkxZTFhNTY4MWExNjk4NjIyZTFmYzEzNTNkYWFhNzg4NmIwYzJmLi40Mjky
NDY2NGFkMjFhMjNiZTRhMDUzZDRmYzg2MDlhMmQ2ODhiNDY2IDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0
aW9ucy55YW1sCkBAIC0xNjUxLDEyICsxNjUxLDYgQEAgdGVzdC9idWlsdC1pbnMvUmVnRXhwL3By
b3RvLWZyb20tY3Rvci1yZWFsbS5qczoKIHRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9wcm90b3R5cGUv
U3ltYm9sLm1hdGNoL2J1aWx0aW4taW5mZXItdW5pY29kZS5qczoKICAgZGVmYXVsdDogJ1Rlc3Qy
NjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKr77+9wrssIMKrbnVsbMK7KSB0byBiZSB0cnVl
JwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKr77+9
wrssIMKrbnVsbMK7KSB0byBiZSB0cnVlJwotdGVzdC9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlw
ZS9TeW1ib2wucmVwbGFjZS9jb2VyY2UtbGFzdGluZGV4LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2
MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqsxODAxNDM5ODUwOTQ4MTk4NMK7LCDCqzkwMDcx
OTkyNTQ3NDA5OTLCuykgdG8gYmUgdHJ1ZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6
IEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzE4MDE0Mzk4NTA5NDgxOTg0wrssIMKrOTAwNzE5OTI1NDc0
MDk5MsK7KSB0byBiZSB0cnVlJwotdGVzdC9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlwZS9TeW1i
b2wucmVwbGFjZS9wb2lzb25lZC1zdGRsaWIuanM6Ci0gIGRlZmF1bHQ6ICdUeXBlRXJyb3I6IHVu
ZGVmaW5lZCBpcyBub3QgYSBmdW5jdGlvbicKLSAgc3RyaWN0IG1vZGU6ICdUeXBlRXJyb3I6IHVu
ZGVmaW5lZCBpcyBub3QgYSBmdW5jdGlvbicKIHRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9wcm90b3R5
cGUvU3ltYm9sLnNlYXJjaC9zZXQtbGFzdGluZGV4LWluaXQtc2FtZXZhbHVlLmpzOgogICBkZWZh
dWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqswwrssIMKrMMK7KSB0byBi
ZSB0cnVlJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVl
KMKrMMK7LCDCqzDCuykgdG8gYmUgdHJ1ZScK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394541</attachid>
            <date>2020-03-25 13:38:08 -0700</date>
            <delta_ts>2020-03-25 16:28:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173867-20200325223806.patch</filename>
            <type>text/plain</type>
            <size>21459</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4OTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
Yjc0NGE5YzUzMjBiZWJiMzJiMDI4ZGI1NjY0NWMwZWZjYzUxZmEwLi5lYzNhMzA2NDU5MzliNmU0
OTZiNzJmZjNjNTc3NzYwYmU0OTNhOTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAyMC0wMy0yNSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgUmVnRXhwLnByb3RvdHlwZVtAQHJlcGxhY2VdIHJlbGllcyBvbiBn
bG9iYWxzIGFuZCBkb2Vzbid0IHBlcmZvcm0gVG9MZW5ndGgKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mzg2NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlOgorCisgICAgICAgIGEpIEFk
ZHMgImxhc3RJbmRleCIgVG9MZW5ndGggY29lcmNpb24gWzFdLCB3aGljaCBpcyBvYnNlcnZhYmxl
LCB1bmxpa2UgVG9MZW5ndGggY29lcmNpb24KKyAgICAgICAgICAgb2YgUmVnRXhwRXhlYyByZXN1
bHQgWzJdIHRoYXQgd2Ugb21pdCwganVzdCBsaWtlIHRoZSBvbmUgaW4gQEBzcGxpdCBbM10uCisK
KyAgICAgICAgYikgUmVtb3ZlcyBgbGFzdFBvc2l0aW9uYCBjaGVja3MvdXBkYXRlcywgYXMgdGhl
cmUgYXJlIG5vbmUgaW4gdGhlIHNwZWMsIGFuZCBpdCB3YXMKKyAgICAgICAgICAgZXF1aXZhbGVu
dCB0byBjaGVja2luZyBgbmV4dFNvdXJjZVBvc2l0aW9uYC4KKworICAgICAgICBjKSBSZW1vdmVz
IHJlbGlhbmNlIG9mIEBAcmVwbGFjZSBvbiBnbG9iYWxzIGFuZCBhbHNvIHJlcGxhY2VzIEBzdHJp
bmdTdWJzdHJJbnRlcm5hbAorICAgICAgICAgICBidWlsdC1pbiB3aXRoIEBzdHJpbmdTdWJzdHJp
bmdJbnRlcm5hbCwgYXMgdGhlIGZvcm1lciBpcyBBbm5leCBCIGFuZCBhY2NlcHRzIHNpemUKKyAg
ICAgICAgICAgYXMgMm5kIHBhcmFtdGVyLCB3aGljaCBpcyBub3QgdmVyeSBoYW5keSBiZWNhdXNl
IEVDTUEtMjYyIHVzdWFsbHkgc2F5cyAic3Vic3RyaW5nCisgICAgICAgICAgIG9mIFMgY29uc2lz
dGluZyBvZiB0aGUgY29kZSB1bml0cyBhdCBpbmRpY2VzIFggKGluY2x1c2l2ZSkgdGhyb3VnaCBZ
IChleGNsdXNpdmUpIi4KKworICAgICAgICBbMV06IGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNz
ZWMtcmVnZXhwLnByb3RvdHlwZS1AQHJlcGxhY2UgKHN0ZXAgMTEuYy5paWkuMi5hKQorICAgICAg
ICBbMl06IGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVnZXhwLnByb3RvdHlwZS1AQHJl
cGxhY2UgKHN0ZXAgMTQuYSkKKyAgICAgICAgWzNdOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8j
c2VjLXJlZ2V4cC5wcm90b3R5cGUtQEBzcGxpdCAoc3RlcCAxOS5kLml2LjYpCisKKyAgICAgICAg
KiBidWlsdGlucy9CdWlsdGluTmFtZXMuaDoKKyAgICAgICAgKiBidWlsdGlucy9SZWdFeHBQcm90
b3R5cGUuanM6CisgICAgICAgIChnZXRTdWJzdGl0dXRpb24pOgorICAgICAgICAoU3ltYm9sLnJl
cGxhY2UpOgorICAgICAgICAoU3ltYm9sLnNwbGl0KToKKyAgICAgICAgKiBidWlsdGlucy9TdHJp
bmdQcm90b3R5cGUuanM6CisgICAgICAgIChnbG9iYWxQcml2YXRlLnJlcGVhdENoYXJhY3RlcnNT
bG93UGF0aCk6CisgICAgICAgICogYnl0ZWNvZGUvTGlua1RpbWVDb25zdGFudC5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9i
amVjdDo6aW5pdCk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwOgorICAg
ICAgICAoSlNDOjpzdHJpbmdJbmRleE9mSW1wbCk6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3Rv
RnVuY0luZGV4T2YpOgorICAgICAgICAoSlNDOjpidWlsdGluU3RyaW5nSW5kZXhPZkludGVybmFs
KToKKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jU3Vic3RyKToKKyAgICAgICAgKEpTQzo6
c3RyaW5nU3Vic3RyaW5nSW1wbCk6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1N1YnN0
cmluZyk6CisgICAgICAgIChKU0M6OmJ1aWx0aW5TdHJpbmdTdWJzdHJpbmdJbnRlcm5hbCk6Cisg
ICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1N1YnN0ckltcGwpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpidWlsdGluU3RyaW5nU3Vic3RySW50ZXJuYWwpOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmg6CisKIDIwMjAtMDMtMjQgIEtlaXRoIE1pbGxlciAg
PGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGlzRW1wdHkgQXNzZW1ibHlI
ZWxwZXJzIGZ1bmN0aW9uIGFuZCBhZGQgaXNOb3RFbXB0eQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCmluZGV4IDE2ZmYxZjk2YmFkZmFlMzQ3Y2Y3YmZi
MzI1NTcyMmY5MGExZDk2MDIuLjE5NzBjOWY0MzA2MDg3MjFhMmEzMjU2YjI2ZTJlNDZiM2M4M2E2
ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFt
ZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgK
QEAgLTE1OSw4ICsxNTksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBtYWNybyhyZWdFeHBTdHJp
bmdJdGVyYXRvclVuaWNvZGUpIFwKICAgICBtYWNybyhyZWdFeHBTdHJpbmdJdGVyYXRvckRvbmUp
IFwKICAgICBtYWNybyhzdHJpbmdJbmNsdWRlc0ludGVybmFsKSBcCisgICAgbWFjcm8oc3RyaW5n
SW5kZXhPZkludGVybmFsKSBcCiAgICAgbWFjcm8oc3RyaW5nU3BsaXRGYXN0KSBcCi0gICAgbWFj
cm8oc3RyaW5nU3Vic3RySW50ZXJuYWwpIFwKKyAgICBtYWNybyhzdHJpbmdTdWJzdHJpbmdJbnRl
cm5hbCkgXAogICAgIG1hY3JvKG1ha2VCb3VuZEZ1bmN0aW9uKSBcCiAgICAgbWFjcm8oaGFzT3du
TGVuZ3RoUHJvcGVydHkpIFwKICAgICBtYWNybyhpbXBvcnRNb2R1bGUpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9SZWdFeHBQcm90b3R5cGUuanMgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUmVnRXhwUHJvdG90eXBlLmpzCmluZGV4IDI1NmJj
NWI0YjM2MDhlNzJiZTliMjc1MDU1ZmMyZGU4NzdhYTFjMjkuLjY5MjI0NDc5ZTdhY2U4MmQwYTEz
YzM4ZGVmMDVmZjA2YTBkNzYxZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
dWlsdGlucy9SZWdFeHBQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1
aWx0aW5zL1JlZ0V4cFByb3RvdHlwZS5qcwpAQCAtMTkxLDE0ICsxOTEsMTQgQEAgZnVuY3Rpb24g
cmVwbGFjZShzdHJBcmcsIHJlcGxhY2UpCiAgICAgICAgIHZhciByZXN1bHQgPSAiIjsKICAgICAg
ICAgdmFyIGxhc3RTdGFydCA9IDA7CiAKLSAgICAgICAgZm9yICh2YXIgc3RhcnQgPSAwOyBzdGFy
dCA9IHJlcGxhY2VtZW50LmluZGV4T2YoIiQiLCBsYXN0U3RhcnQpLCBzdGFydCAhPT0gLTE7IGxh
c3RTdGFydCA9IHN0YXJ0KSB7CisgICAgICAgIGZvciAodmFyIHN0YXJ0ID0gMDsgc3RhcnQgPSBA
c3RyaW5nSW5kZXhPZkludGVybmFsLkBjYWxsKHJlcGxhY2VtZW50LCAiJCIsIGxhc3RTdGFydCks
IHN0YXJ0ICE9PSAtMTsgbGFzdFN0YXJ0ID0gc3RhcnQpIHsKICAgICAgICAgICAgIGlmIChzdGFy
dCAtIGxhc3RTdGFydCA+IDApCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgcmVw
bGFjZW1lbnQuc3Vic3RyaW5nKGxhc3RTdGFydCwgc3RhcnQpOworICAgICAgICAgICAgICAgIHJl
c3VsdCA9IHJlc3VsdCArIEBzdHJpbmdTdWJzdHJpbmdJbnRlcm5hbC5AY2FsbChyZXBsYWNlbWVu
dCwgbGFzdFN0YXJ0LCBzdGFydCk7CiAgICAgICAgICAgICBzdGFydCsrOwotICAgICAgICAgICAg
dmFyIGNoID0gcmVwbGFjZW1lbnQuY2hhckF0KHN0YXJ0KTsKLSAgICAgICAgICAgIGlmIChjaCA9
PT0gIiIpCisgICAgICAgICAgICBpZiAoc3RhcnQgPj0gcmVwbGFjZW1lbnRMZW5ndGgpCiAgICAg
ICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgIiQiOwogICAgICAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICAgICAgdmFyIGNoID0gcmVwbGFjZW1lbnRbc3RhcnRdOwogICAgICAgICAgICAg
ICAgIHN3aXRjaCAoY2gpCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGNhc2Ug
IiQiOgpAQCAtMjExLDIwICsyMTEsMjAgQEAgZnVuY3Rpb24gcmVwbGFjZShzdHJBcmcsIHJlcGxh
Y2UpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgImAi
OgogICAgICAgICAgICAgICAgICAgICBpZiAocG9zaXRpb24gPiAwKQotICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgc3RyLnN1YnN0cmluZygwLCBwb3NpdGlvbik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKyBAc3RyaW5nU3Vic3RyaW5n
SW50ZXJuYWwuQGNhbGwoc3RyLCAwLCBwb3NpdGlvbik7CiAgICAgICAgICAgICAgICAgICAgIHN0
YXJ0Kys7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2Ug
IiciOgogICAgICAgICAgICAgICAgICAgICBpZiAodGFpbFBvcyA8IHN0cmluZ0xlbmd0aCkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCArIHN0ci5zdWJzdHJpbmcodGFp
bFBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKyBAc3RyaW5n
U3Vic3RyaW5nSW50ZXJuYWwuQGNhbGwoc3RyLCB0YWlsUG9zKTsKICAgICAgICAgICAgICAgICAg
ICAgc3RhcnQrKzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAg
Y2FzZSAiPCI6CiAgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lZENhcHR1cmVzICE9PSBAdW5k
ZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZ3JvdXBOYW1lU3RhcnRJbmRl
eCA9IHN0YXJ0ICsgMTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBncm91cE5hbWVFbmRJ
bmRleCA9IHJlcGxhY2VtZW50LmluZGV4T2YoIj4iLCBncm91cE5hbWVTdGFydEluZGV4KTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHZhciBncm91cE5hbWVFbmRJbmRleCA9IEBzdHJpbmdJbmRl
eE9mSW50ZXJuYWwuQGNhbGwocmVwbGFjZW1lbnQsICI+IiwgZ3JvdXBOYW1lU3RhcnRJbmRleCk7
CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXBOYW1lRW5kSW5kZXggIT09IC0xKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3VwTmFtZSA9IHJlcGxhY2VtZW50
LnN1YnN0cmluZyhncm91cE5hbWVTdGFydEluZGV4LCBncm91cE5hbWVFbmRJbmRleCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3VwTmFtZSA9IEBzdHJpbmdTdWJzdHJpbmdJ
bnRlcm5hbC5AY2FsbChyZXBsYWNlbWVudCwgZ3JvdXBOYW1lU3RhcnRJbmRleCwgZ3JvdXBOYW1l
RW5kSW5kZXgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjYXB0dXJlID0gbmFt
ZWRDYXB0dXJlc1tncm91cE5hbWVdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChj
YXB0dXJlICE9PSBAdW5kZWZpbmVkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXN1bHQgPSByZXN1bHQgKyBAdG9TdHJpbmcoY2FwdHVyZSk7CkBAIC0yMzgsMTkgKzIzOCwxOSBA
QCBmdW5jdGlvbiByZXBsYWNlKHN0ckFyZywgcmVwbGFjZSkKICAgICAgICAgICAgICAgICAgICAg
c3RhcnQrKzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgZGVm
YXVsdDoKLSAgICAgICAgICAgICAgICAgICAgdmFyIGNoQ29kZSA9IGNoLmNoYXJDb2RlQXQoMCk7
CisgICAgICAgICAgICAgICAgICAgIHZhciBjaENvZGUgPSBjaC5AY2hhckNvZGVBdCgwKTsKICAg
ICAgICAgICAgICAgICAgICAgaWYgKGNoQ29kZSA+PSAweDMwICYmIGNoQ29kZSA8PSAweDM5KSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgb3JpZ2luYWxTdGFydCA9IHN0YXJ0IC0gMTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0Kys7CiAKICAgICAgICAgICAgICAgICAgICAg
ICAgIHZhciBuID0gY2hDb2RlIC0gMHgzMDsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChu
ID4gbSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCArIHJl
cGxhY2VtZW50LnN1YnN0cmluZyhvcmlnaW5hbFN0YXJ0LCBzdGFydCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgQHN0cmluZ1N1YnN0cmluZ0ludGVybmFs
LkBjYWxsKHJlcGxhY2VtZW50LCBvcmlnaW5hbFN0YXJ0LCBzdGFydCk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChzdGFydCA8IHJlcGxhY2VtZW50TGVuZ3RoKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5leHRDaENvZGUgPSByZXBsYWNlbWVudC5jaGFy
Q29kZUF0KHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmV4dENoQ29k
ZSA9IHJlcGxhY2VtZW50LkBjaGFyQ29kZUF0KHN0YXJ0KTsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAobmV4dENoQ29kZSA+PSAweDMwICYmIG5leHRDaENvZGUgPD0gMHgzOSkgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbm4gPSAxMCAqIG4gKyBuZXh0Q2hD
b2RlIC0gMHgzMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5uIDw9IG0p
IHsKQEAgLTI2MSw3ICsyNjEsNyBAQCBmdW5jdGlvbiByZXBsYWNlKHN0ckFyZywgcmVwbGFjZSkK
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KG4gPT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAr
IHJlcGxhY2VtZW50LnN1YnN0cmluZyhvcmlnaW5hbFN0YXJ0LCBzdGFydCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgQHN0cmluZ1N1YnN0cmluZ0ludGVy
bmFsLkBjYWxsKHJlcGxhY2VtZW50LCBvcmlnaW5hbFN0YXJ0LCBzdGFydCk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAKQEAg
LTI3NSw3ICsyNzUsNyBAQCBmdW5jdGlvbiByZXBsYWNlKHN0ckFyZywgcmVwbGFjZSkKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIHJldHVybiByZXN1bHQgKyByZXBsYWNlbWVu
dC5zdWJzdHJpbmcobGFzdFN0YXJ0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdCArIEBzdHJpbmdT
dWJzdHJpbmdJbnRlcm5hbC5AY2FsbChyZXBsYWNlbWVudCwgbGFzdFN0YXJ0KTsKICAgICB9CiAK
ICAgICBpZiAoIUBpc09iamVjdCh0aGlzKSkKQEAgLTMxMywxNSArMzEzLDE2IEBAIGZ1bmN0aW9u
IHJlcGxhY2Uoc3RyQXJnLCByZXBsYWNlKQogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAg
ICAgICAgdmFyIG1hdGNoU3RyID0gQHRvU3RyaW5nKHJlc3VsdFswXSk7CiAKLSAgICAgICAgICAg
ICAgICBpZiAoIW1hdGNoU3RyLmxlbmd0aCkKLSAgICAgICAgICAgICAgICAgICAgcmVnZXhwLmxh
c3RJbmRleCA9IEBhZHZhbmNlU3RyaW5nSW5kZXgoc3RyLCByZWdleHAubGFzdEluZGV4LCB1bmlj
b2RlKTsKKyAgICAgICAgICAgICAgICBpZiAoIW1hdGNoU3RyLmxlbmd0aCkgeworICAgICAgICAg
ICAgICAgICAgICB2YXIgdGhpc0luZGV4ID0gQHRvTGVuZ3RoKHJlZ2V4cC5sYXN0SW5kZXgpOwor
ICAgICAgICAgICAgICAgICAgICByZWdleHAubGFzdEluZGV4ID0gQGFkdmFuY2VTdHJpbmdJbmRl
eChzdHIsIHRoaXNJbmRleCwgdW5pY29kZSk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAgICAgfQogCiAgICAgdmFyIGFjY3VtdWxhdGVkUmVzdWx0ID0gIiI7
CiAgICAgdmFyIG5leHRTb3VyY2VQb3NpdGlvbiA9IDA7Ci0gICAgdmFyIGxhc3RQb3NpdGlvbiA9
IDA7CiAKICAgICBmb3IgKHZhciBpID0gMCwgcmVzdWx0TGlzdExlbmd0aCA9IHJlc3VsdExpc3Qu
bGVuZ3RoOyBpIDwgcmVzdWx0TGlzdExlbmd0aDsgKytpKSB7CiAgICAgICAgIHZhciByZXN1bHQg
PSByZXN1bHRMaXN0W2ldOwpAQCAtMzQ2LDcgKzM0NywxMCBAQCBmdW5jdGlvbiByZXBsYWNlKHN0
ckFyZywgcmVwbGFjZSkKICAgICAgICAgdmFyIG5hbWVkQ2FwdHVyZXMgPSByZXN1bHQuZ3JvdXBz
OwogCiAgICAgICAgIGlmIChmdW5jdGlvbmFsUmVwbGFjZSkgewotICAgICAgICAgICAgdmFyIHJl
cGxhY2VyQXJncyA9IFsgbWF0Y2hlZCBdLmNvbmNhdChjYXB0dXJlcyk7CisgICAgICAgICAgICB2
YXIgcmVwbGFjZXJBcmdzID0gWyBtYXRjaGVkIF07CisgICAgICAgICAgICBmb3IgKHZhciBqID0g
MDsgaiA8IGNhcHR1cmVzLmxlbmd0aDsgaisrKQorICAgICAgICAgICAgICAgIHJlcGxhY2VyQXJn
cy5AcHVzaChjYXB0dXJlc1tqXSk7CisKICAgICAgICAgICAgIHJlcGxhY2VyQXJncy5AcHVzaChw
b3NpdGlvbik7CiAgICAgICAgICAgICByZXBsYWNlckFyZ3MuQHB1c2goc3RyKTsKIApAQCAtMzYy
LDE3ICszNjYsMTYgQEAgZnVuY3Rpb24gcmVwbGFjZShzdHJBcmcsIHJlcGxhY2UpCiAgICAgICAg
ICAgICByZXBsYWNlbWVudCA9IGdldFN1YnN0aXR1dGlvbihtYXRjaGVkLCBzdHIsIHBvc2l0aW9u
LCBjYXB0dXJlcywgbmFtZWRDYXB0dXJlcywgcmVwbGFjZSk7CiAgICAgICAgIH0KIAotICAgICAg
ICBpZiAocG9zaXRpb24gPj0gbmV4dFNvdXJjZVBvc2l0aW9uICYmIHBvc2l0aW9uID49IGxhc3RQ
b3NpdGlvbikgewotICAgICAgICAgICAgYWNjdW11bGF0ZWRSZXN1bHQgPSBhY2N1bXVsYXRlZFJl
c3VsdCArIHN0ci5zdWJzdHJpbmcobmV4dFNvdXJjZVBvc2l0aW9uLCBwb3NpdGlvbikgKyByZXBs
YWNlbWVudDsKKyAgICAgICAgaWYgKHBvc2l0aW9uID49IG5leHRTb3VyY2VQb3NpdGlvbikgewor
ICAgICAgICAgICAgYWNjdW11bGF0ZWRSZXN1bHQgPSBhY2N1bXVsYXRlZFJlc3VsdCArIEBzdHJp
bmdTdWJzdHJpbmdJbnRlcm5hbC5AY2FsbChzdHIsIG5leHRTb3VyY2VQb3NpdGlvbiwgcG9zaXRp
b24pICsgcmVwbGFjZW1lbnQ7CiAgICAgICAgICAgICBuZXh0U291cmNlUG9zaXRpb24gPSBwb3Np
dGlvbiArIG1hdGNoTGVuZ3RoOwotICAgICAgICAgICAgbGFzdFBvc2l0aW9uID0gcG9zaXRpb247
CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAobmV4dFNvdXJjZVBvc2l0aW9uID49IHN0cmlu
Z0xlbmd0aCkKICAgICAgICAgcmV0dXJuICBhY2N1bXVsYXRlZFJlc3VsdDsKIAotICAgIHJldHVy
biBhY2N1bXVsYXRlZFJlc3VsdCArIHN0ci5zdWJzdHJpbmcobmV4dFNvdXJjZVBvc2l0aW9uKTsK
KyAgICByZXR1cm4gYWNjdW11bGF0ZWRSZXN1bHQgKyBAc3RyaW5nU3Vic3RyaW5nSW50ZXJuYWwu
QGNhbGwoc3RyLCBuZXh0U291cmNlUG9zaXRpb24pOwogfQogCiAvLyAyMS4yLjUuOSBSZWdFeHAu
cHJvdG90eXBlW0BAc2VhcmNoXSAoc3RyaW5nKQpAQCAtNTYyLDcgKzU2NSw3IEBAIGZ1bmN0aW9u
IHNwbGl0KHN0cmluZywgbGltaXQpCiAgICAgICAgICAgICAvLyBpdi4gRWxzZSBlICE9IHAsCiAg
ICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAvLyAxLiBMZXQgVCBiZSBhIFN0cmlu
ZyB2YWx1ZSBlcXVhbCB0byB0aGUgc3Vic3RyaW5nIG9mIFMgY29uc2lzdGluZyBvZiB0aGUgZWxl
bWVudHMgYXQgaW5kaWNlcyBwIChpbmNsdXNpdmUpIHRocm91Z2ggcSAoZXhjbHVzaXZlKS4KLSAg
ICAgICAgICAgICAgICB2YXIgc3ViU3RyID0gQHN0cmluZ1N1YnN0ckludGVybmFsLkBjYWxsKHN0
ciwgcG9zaXRpb24sIG1hdGNoUG9zaXRpb24gLSBwb3NpdGlvbik7CisgICAgICAgICAgICAgICAg
dmFyIHN1YlN0ciA9IEBzdHJpbmdTdWJzdHJpbmdJbnRlcm5hbC5AY2FsbChzdHIsIHBvc2l0aW9u
LCBtYXRjaFBvc2l0aW9uKTsKICAgICAgICAgICAgICAgICAvLyAyLiBQZXJmb3JtICEgQ3JlYXRl
RGF0YVByb3BlcnR5KEEsICEgVG9TdHJpbmcobGVuZ3RoQSksIFQpLgogICAgICAgICAgICAgICAg
IC8vIDMuIExldCBsZW5ndGhBIGJlIGxlbmd0aEEgKyAxLgogICAgICAgICAgICAgICAgIEBwdXRC
eVZhbERpcmVjdChyZXN1bHQsIHJlc3VsdC5sZW5ndGgsIHN1YlN0cik7CkBAIC01OTcsNyArNjAw
LDcgQEAgZnVuY3Rpb24gc3BsaXQoc3RyaW5nLCBsaW1pdCkKICAgICAgICAgfQogICAgIH0KICAg
ICAvLyAyMC4gTGV0IFQgYmUgYSBTdHJpbmcgdmFsdWUgZXF1YWwgdG8gdGhlIHN1YnN0cmluZyBv
ZiBTIGNvbnNpc3Rpbmcgb2YgdGhlIGVsZW1lbnRzIGF0IGluZGljZXMgcCAoaW5jbHVzaXZlKSB0
aHJvdWdoIHNpemUgKGV4Y2x1c2l2ZSkuCi0gICAgdmFyIHJlbWFpbmluZ1N0ciA9IEBzdHJpbmdT
dWJzdHJJbnRlcm5hbC5AY2FsbChzdHIsIHBvc2l0aW9uLCBzaXplKTsKKyAgICB2YXIgcmVtYWlu
aW5nU3RyID0gQHN0cmluZ1N1YnN0cmluZ0ludGVybmFsLkBjYWxsKHN0ciwgcG9zaXRpb24sIHNp
emUpOwogICAgIC8vIDIxLiBQZXJmb3JtICEgQ3JlYXRlRGF0YVByb3BlcnR5KEEsICEgVG9TdHJp
bmcobGVuZ3RoQSksIFQpLgogICAgIEBwdXRCeVZhbERpcmVjdChyZXN1bHQsIHJlc3VsdC5sZW5n
dGgsIHJlbWFpbmluZ1N0cik7CiAgICAgLy8gMjIuIFJldHVybiBBLgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1N0cmluZ1Byb3RvdHlwZS5qcyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdQcm90b3R5cGUuanMKaW5kZXggOWQ2Y2FkY2Ux
ZGNiZmRlZDJkMjViZjkyODBjYTczZjBiZDBiZjFiZi4uNjllNjNkM2Y3N2FjMWUzNGRhMmFlZjgz
YzY0ZjJjOTM3NzgzOTNmNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL1N0cmluZ1Byb3RvdHlwZS5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvU3RyaW5nUHJvdG90eXBlLmpzCkBAIC0xMTMsNyArMTEzLDcgQEAgZnVuY3Rpb24gcmVwZWF0
Q2hhcmFjdGVyc1Nsb3dQYXRoKHN0cmluZywgY291bnQpCiAgICAgICAgIG9wZXJhbmQgKz0gb3Bl
cmFuZDsKICAgICB9CiAgICAgaWYgKHJlbWFpbmluZ0NoYXJhY3RlcnMpCi0gICAgICAgIHJlc3Vs
dCArPSBAc3RyaW5nU3Vic3RySW50ZXJuYWwuQGNhbGwoc3RyaW5nLCAwLCByZW1haW5pbmdDaGFy
YWN0ZXJzKTsKKyAgICAgICAgcmVzdWx0ICs9IEBzdHJpbmdTdWJzdHJpbmdJbnRlcm5hbC5AY2Fs
bChzdHJpbmcsIDAsIHJlbWFpbmluZ0NoYXJhY3RlcnMpOwogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MaW5rVGltZUNv
bnN0YW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGlua1RpbWVDb25zdGFu
dC5oCmluZGV4IDkwMWRmMGIxYTAyNmUyNmZmZjU0YzIwMDgxOWZjNGRiYzM2NmY1NTAuLjkxNjIx
YjE4ZDVkZjNhMjI4ZjU1YTE4Y2Q3MGM3MTM0MTM3YWYxNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MaW5rVGltZUNvbnN0YW50LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xpbmtUaW1lQ29uc3RhbnQuaApAQCAtOTAsOCArOTAsOSBA
QCBjbGFzcyBKU0dsb2JhbE9iamVjdDsKICAgICB2KHJlZ0V4cFByb3RvdHlwZVN5bWJvbFJlcGxh
Y2UsIG51bGxwdHIpIFwKICAgICB2KHJlZ0V4cFRlc3RGYXN0LCBudWxscHRyKSBcCiAgICAgdihz
dHJpbmdJbmNsdWRlc0ludGVybmFsLCBudWxscHRyKSBcCisgICAgdihzdHJpbmdJbmRleE9mSW50
ZXJuYWwsIG51bGxwdHIpIFwKICAgICB2KHN0cmluZ1NwbGl0RmFzdCwgbnVsbHB0cikgXAotICAg
IHYoc3RyaW5nU3Vic3RySW50ZXJuYWwsIG51bGxwdHIpIFwKKyAgICB2KHN0cmluZ1N1YnN0cmlu
Z0ludGVybmFsLCBudWxscHRyKSBcCiAgICAgdihtYWtlQm91bmRGdW5jdGlvbiwgbnVsbHB0cikg
XAogICAgIHYoaGFzT3duTGVuZ3RoUHJvcGVydHksIG51bGxwdHIpIFwKICAgICB2KGRhdGVUaW1l
Rm9ybWF0LCBudWxscHRyKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5jcHAKaW5kZXggOTIxODRmMDEzMmZlNTE0MWNiOThhYTU2MTk1NzViNWI2
MzIwNTc0Ni4uNmNlMTg0YWUxNTllNDgyZjExZTAzMGY2ZDM5ZWM4NTYwMmJlOTYwZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAt
MTE0MiwxMSArMTE0MiwxNCBAQCBjYXBpdGFsTmFtZSAjIyBDb25zdHJ1Y3RvciogbG93ZXJOYW1l
ICMjIENvbnN0cnVjdG9yID0gZmVhdHVyZUZsYWcgPyBjYXBpdGFsTmFtZQogICAgIG1fbGlua1Rp
bWVDb25zdGFudHNbc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KExpbmtUaW1lQ29uc3RhbnQ6OnN0cmlu
Z0luY2x1ZGVzSW50ZXJuYWwpXS5pbml0TGF0ZXIoW10gKGNvbnN0IEluaXRpYWxpemVyPEpTQ2Vs
bD4mIGluaXQpIHsKICAgICAgICAgICAgIGluaXQuc2V0KEpTRnVuY3Rpb246OmNyZWF0ZShpbml0
LnZtLCBqc0Nhc3Q8SlNHbG9iYWxPYmplY3QqPihpbml0Lm93bmVyKSwgMSwgU3RyaW5nKCksIGJ1
aWx0aW5TdHJpbmdJbmNsdWRlc0ludGVybmFsKSk7CiAgICAgICAgIH0pOworICAgIG1fbGlua1Rp
bWVDb25zdGFudHNbc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KExpbmtUaW1lQ29uc3RhbnQ6OnN0cmlu
Z0luZGV4T2ZJbnRlcm5hbCldLmluaXRMYXRlcihbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlNDZWxs
PiYgaW5pdCkgeworICAgICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGluaXQu
dm0sIGpzQ2FzdDxKU0dsb2JhbE9iamVjdCo+KGluaXQub3duZXIpLCAxLCBTdHJpbmcoKSwgYnVp
bHRpblN0cmluZ0luZGV4T2ZJbnRlcm5hbCkpOworICAgICAgICB9KTsKICAgICBtX2xpbmtUaW1l
Q29uc3RhbnRzW3N0YXRpY19jYXN0PHVuc2lnbmVkPihMaW5rVGltZUNvbnN0YW50OjpzdHJpbmdT
cGxpdEZhc3QpXS5pbml0TGF0ZXIoW10gKGNvbnN0IEluaXRpYWxpemVyPEpTQ2VsbD4mIGluaXQp
IHsKICAgICAgICAgICAgIGluaXQuc2V0KEpTRnVuY3Rpb246OmNyZWF0ZShpbml0LnZtLCBqc0Nh
c3Q8SlNHbG9iYWxPYmplY3QqPihpbml0Lm93bmVyKSwgMiwgU3RyaW5nKCksIHN0cmluZ1Byb3Rv
RnVuY1NwbGl0RmFzdCkpOwogICAgICAgICB9KTsKLSAgICBtX2xpbmtUaW1lQ29uc3RhbnRzW3N0
YXRpY19jYXN0PHVuc2lnbmVkPihMaW5rVGltZUNvbnN0YW50OjpzdHJpbmdTdWJzdHJJbnRlcm5h
bCldLmluaXRMYXRlcihbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlNDZWxsPiYgaW5pdCkgewotICAg
ICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGluaXQudm0sIGpzQ2FzdDxKU0ds
b2JhbE9iamVjdCo+KGluaXQub3duZXIpLCAyLCBTdHJpbmcoKSwgYnVpbHRpblN0cmluZ1N1YnN0
ckludGVybmFsKSk7CisgICAgbV9saW5rVGltZUNvbnN0YW50c1tzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oTGlua1RpbWVDb25zdGFudDo6c3RyaW5nU3Vic3RyaW5nSW50ZXJuYWwpXS5pbml0TGF0ZXIo
W10gKGNvbnN0IEluaXRpYWxpemVyPEpTQ2VsbD4mIGluaXQpIHsKKyAgICAgICAgICAgIGluaXQu
c2V0KEpTRnVuY3Rpb246OmNyZWF0ZShpbml0LnZtLCBqc0Nhc3Q8SlNHbG9iYWxPYmplY3QqPihp
bml0Lm93bmVyKSwgMiwgU3RyaW5nKCksIGJ1aWx0aW5TdHJpbmdTdWJzdHJpbmdJbnRlcm5hbCkp
OwogICAgICAgICB9KTsKIAogICAgIC8vIEZ1bmN0aW9uIHByb3RvdHlwZSBoZWxwZXJzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKaW5k
ZXggZmQzOGQ2ZjAwNTk5OWZlYTczZmVkOGNmN2Q0ZWQyZmY1ZDBjYTA5OC4uYjU5ZDE0YmE2MzM0
ODRjMmZmMTcwMDZlMTBjMzk2NWI3NjJkYzdkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCkBAIC0xMDc2LDcgKzEwNzYsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0NvZGVQb2ludEF0KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9G
dW5jSW5kZXhPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBzdHJpbmdJbmRleE9mSW1wbChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMTEyMyw2ICsxMTIzLDIxIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgc3RyaW5nUHJvdG9GdW5jSW5kZXhPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihyZXN1bHQpKTsKIH0KIAorRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNJbmRleE9mKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQoreworICAgIHJldHVybiBz
dHJpbmdJbmRleE9mSW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7Cit9CisKK0VuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgYnVpbHRpblN0cmluZ0luZGV4T2ZJbnRlcm5hbChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3sKKyAgICBBU1NF
UlQoY2FsbEZyYW1lLT50aGlzVmFsdWUoKS5pc1N0cmluZygpKTsKKyAgICBKU1ZhbHVlIHBvc2l0
aW9uID0gY2FsbEZyYW1lLT5hcmd1bWVudCgxKTsKKyAgICBVTlVTRURfUEFSQU0ocG9zaXRpb24p
OworICAgIEFTU0VSVChwb3NpdGlvbi5pc1VuZGVmaW5lZCgpIHx8IHBvc2l0aW9uLmlzTnVtYmVy
KCkpOworCisgICAgcmV0dXJuIHN0cmluZ0luZGV4T2ZJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZy
YW1lKTsKK30KKwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNM
YXN0SW5kZXhPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0xMzY1LDcgKzEz
ODAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1NwbGl0
RmFzdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUocmVzdWx0KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHN0cmluZ1Byb3RvRnVuY1N1
YnN0ckltcGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1N1YnN0cihK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMTQwOSwyNiArMTQyNCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBzdHJpbmdQcm90b0Z1bmNTdWJzdHJJbXBsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N1YnN0cmluZyh2bSwgdVN0cmlu
Zywgc3Vic3RyaW5nU3RhcnQsIHN1YnN0cmluZ0xlbmd0aCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1N1YnN0cihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKLXsKLSAgICByZXR1cm4gc3RyaW5nUHJv
dG9GdW5jU3Vic3RySW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7Ci19Ci0KLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgYnVpbHRpblN0cmluZ1N1YnN0ckludGVybmFsKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQotewotICAgIC8vIEBz
dWJzdHJJbnRlcm5hbCBzaG91bGQgbm90IGhhdmUgYW55IG9ic2VydmFibGUgc2lkZSBlZmZlY3Rz
IChlLmcuIGl0IHNob3VsZCBub3QgY2FsbAotICAgIC8vIEdldE1ldGhvZCguLi4sIEBAdG9Qcmlt
aXRpdmUpIG9uIHRoZSB0aGlzVmFsdWUpLgotCi0gICAgLy8gSXQgaXMgb2sgdG8gdXNlIHRoZSBk
ZWZhdWx0IHN0cmluZ1Byb3RvRnVuY1N1YnN0ciBhcyB0aGUgaW1wbGVtZW50YXRpb24gb2YKLSAg
ICAvLyBAc3Vic3RySW50ZXJuYWwgYmVjYXVzZSBAc3Vic3RySW50ZXJuYWwgd2lsbCBvbmx5IGJl
IGNhbGxlZCBieSBidWlsdGlucywgd2hpY2ggd2lsbAotICAgIC8vIGd1YXJhbnRlZSB0aGF0IHdl
IG9ubHkgcGFzcyBpdCBhIHN0cmluZyB0aGlzVmFsdWUuIEFzIGEgcmVzdWx0LCBzdHJpbmdQcm90
b0Z1bmNTdWJzdHIKLSAgICAvLyB3aWxsIG5vdCBuZWVkIHRvIGNhbGwgdG9TdHJpbmcoKSBvbiB0
aGUgdGhpc1ZhbHVlLCBhbmQgdGhlcmUgd2lsbCBiZSBubyBvYnNlcnZhYmxlCi0gICAgLy8gc2lk
ZS1lZmZlY3RzLgotICAgIEFTU0VSVChjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpLmlzU3RyaW5nKCkp
OwotICAgIHJldHVybiBzdHJpbmdQcm90b0Z1bmNTdWJzdHJJbXBsKGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1
bmNTdWJzdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc3RyaW5nU3Vic3RyaW5nSW1wbChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMTQ3Miw2ICsxNDY4LDIxIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgc3RyaW5nUHJvdG9GdW5jU3Vic3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNTdWJzdHJp
bmcoZ2xvYmFsT2JqZWN0LCBqc1N0cmluZywgc3Vic3RyaW5nU3RhcnQsIHN1YnN0cmluZ0xlbmd0
aCkpKTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNT
dWJzdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCit7CisgICAgcmV0dXJuIHN0cmluZ1N1YnN0cmluZ0ltcGwoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJ1aWx0aW5TdHJpbmdT
dWJzdHJpbmdJbnRlcm5hbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK3sKKyAgICBBU1NFUlQoY2FsbEZyYW1lLT50aGlzVmFsdWUoKS5pc1N0cmlu
ZygpKTsKKyAgICBBU1NFUlQoY2FsbEZyYW1lLT5hcmd1bWVudCgwKS5pc051bWJlcigpKTsKKyAg
ICBKU1ZhbHVlIGVuZCA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMSk7CisgICAgVU5VU0VEX1BBUkFN
KGVuZCk7CisgICAgQVNTRVJUKGVuZC5pc1VuZGVmaW5lZCgpIHx8IGVuZC5pc051bWJlcigpKTsK
KyAgICByZXR1cm4gc3RyaW5nU3Vic3RyaW5nSW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7
ICAgCit9CisKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jVG9M
b3dlckNhc2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaAppbmRleCBiZDA4YThkNDNhMzMz
ZDM5YzRkMDczMTEyNGI5NTk0ZDQ0ZDVhYWY5Li41MzdiMGQxYzRkNzk0YTY5NDM2OTMzNGI5Mjk5
MmFkMTdhM2QwNmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdQcm90b3R5cGUuaApAQCAtNjAsNyArNjAsOCBAQCB2b2lkIHN1YnN0aXR1dGVCYWNrcmVmZXJl
bmNlcyhTdHJpbmdCdWlsZGVyJiByZXN1bHQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnQsCiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1JlcGVhdENoYXJhY3Rl
cihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBzdHJpbmdQcm90b0Z1bmNTcGxpdEZhc3QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBidWlsdGluU3RyaW5nU3Vic3RySW50
ZXJuYWwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK0VuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgYnVpbHRpblN0cmluZ1N1YnN0cmluZ0ludGVybmFsKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJ1aWx0aW5TdHJpbmdJ
bmNsdWRlc0ludGVybmFsKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGJ1aWx0aW5TdHJpbmdJbmRleE9mSW50ZXJuYWwoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9K
U1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDViMGNjNGIyOWEyYTQ5
YjU3YzdmMDc5ODgyY2E2OWE3Y2JiMmVmOGUuLjk0ZTY0ZWFmNTc4NjcyNjE5OWQ3MTY4OTYzYjk2
ZDBjM2U4NDFiNjEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDMtMjUgIEFsZXhleSBTaHZheWthICA8
c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIFJlZ0V4cC5wcm90b3R5cGVbQEByZXBs
YWNlXSByZWxpZXMgb24gZ2xvYmFscyBhbmQgZG9lc24ndCBwZXJmb3JtIFRvTGVuZ3RoCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzM4NjcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3QyNjIvZXhw
ZWN0YXRpb25zLnlhbWw6IE1hcmsgNCB0ZXN0IGNhc2VzIGFzIHBhc3NpbmcuCisKIDIwMjAtMDMt
MjQgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIFVw
ZGF0ZSB0ZXN0MjYyIHRvIGNvbW1pdCA3OTE0NmU1Y2Y0OGQKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
dGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMu
eWFtbAppbmRleCBlZTkxZTFhNTY4MWExNjk4NjIyZTFmYzEzNTNkYWFhNzg4NmIwYzJmLi40Mjky
NDY2NGFkMjFhMjNiZTRhMDUzZDRmYzg2MDlhMmQ2ODhiNDY2IDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0
aW9ucy55YW1sCkBAIC0xNjUxLDEyICsxNjUxLDYgQEAgdGVzdC9idWlsdC1pbnMvUmVnRXhwL3By
b3RvLWZyb20tY3Rvci1yZWFsbS5qczoKIHRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9wcm90b3R5cGUv
U3ltYm9sLm1hdGNoL2J1aWx0aW4taW5mZXItdW5pY29kZS5qczoKICAgZGVmYXVsdDogJ1Rlc3Qy
NjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKr77+9wrssIMKrbnVsbMK7KSB0byBiZSB0cnVl
JwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKr77+9
wrssIMKrbnVsbMK7KSB0byBiZSB0cnVlJwotdGVzdC9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlw
ZS9TeW1ib2wucmVwbGFjZS9jb2VyY2UtbGFzdGluZGV4LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2
MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqsxODAxNDM5ODUwOTQ4MTk4NMK7LCDCqzkwMDcx
OTkyNTQ3NDA5OTLCuykgdG8gYmUgdHJ1ZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6
IEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzE4MDE0Mzk4NTA5NDgxOTg0wrssIMKrOTAwNzE5OTI1NDc0
MDk5MsK7KSB0byBiZSB0cnVlJwotdGVzdC9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlwZS9TeW1i
b2wucmVwbGFjZS9wb2lzb25lZC1zdGRsaWIuanM6Ci0gIGRlZmF1bHQ6ICdUeXBlRXJyb3I6IHVu
ZGVmaW5lZCBpcyBub3QgYSBmdW5jdGlvbicKLSAgc3RyaWN0IG1vZGU6ICdUeXBlRXJyb3I6IHVu
ZGVmaW5lZCBpcyBub3QgYSBmdW5jdGlvbicKIHRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9wcm90b3R5
cGUvU3ltYm9sLnNlYXJjaC9zZXQtbGFzdGluZGV4LWluaXQtc2FtZXZhbHVlLmpzOgogICBkZWZh
dWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqswwrssIMKrMMK7KSB0byBi
ZSB0cnVlJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVl
KMKrMMK7LCDCqzDCuykgdG8gYmUgdHJ1ZScK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394561</attachid>
            <date>2020-03-25 16:28:54 -0700</date>
            <delta_ts>2020-03-25 19:24:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173867-20200326012853.patch</filename>
            <type>text/plain</type>
            <size>21478</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MjlkZGE2M2RjYjBiMmRjY2Y4ZDU0ZGZlOGM2YTlmYTQ1N2NiZTJmLi5jZmFhZTY0ZGQ0NTNlNDZl
MjBhMTQ2YzcxMzEwNDgyMzA2YjFiZTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAyMC0wMy0yNSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgUmVnRXhwLnByb3RvdHlwZVtAQHJlcGxhY2VdIHJlbGllcyBvbiBn
bG9iYWxzIGFuZCBkb2Vzbid0IHBlcmZvcm0gVG9MZW5ndGgKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mzg2NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlOgorCisgICAgICAgIGEpIEFk
ZHMgImxhc3RJbmRleCIgVG9MZW5ndGggY29lcmNpb24gWzFdLCB3aGljaCBpcyBvYnNlcnZhYmxl
LCB1bmxpa2UgVG9MZW5ndGggY29lcmNpb24KKyAgICAgICAgICAgb2YgUmVnRXhwRXhlYyByZXN1
bHQgWzJdIHRoYXQgd2Ugb21pdCwganVzdCBsaWtlIHRoZSBvbmUgaW4gQEBzcGxpdCBbM10uCisK
KyAgICAgICAgYikgUmVtb3ZlcyBgbGFzdFBvc2l0aW9uYCBjaGVja3MvdXBkYXRlcywgYXMgdGhl
cmUgYXJlIG5vbmUgaW4gdGhlIHNwZWMsIGFuZCBpdCB3YXMKKyAgICAgICAgICAgZXF1aXZhbGVu
dCB0byBjaGVja2luZyBgbmV4dFNvdXJjZVBvc2l0aW9uYC4KKworICAgICAgICBjKSBSZW1vdmVz
IHJlbGlhbmNlIG9mIEBAcmVwbGFjZSBvbiBnbG9iYWxzIGFuZCBhbHNvIHJlcGxhY2VzIEBzdHJp
bmdTdWJzdHJJbnRlcm5hbAorICAgICAgICAgICBidWlsdC1pbiB3aXRoIEBzdHJpbmdTdWJzdHJp
bmdJbnRlcm5hbCwgYXMgdGhlIGZvcm1lciBpcyBBbm5leCBCIGFuZCBhY2NlcHRzIHNpemUKKyAg
ICAgICAgICAgYXMgMm5kIHBhcmFtdGVyLCB3aGljaCBpcyBub3QgdmVyeSBoYW5keSBiZWNhdXNl
IEVDTUEtMjYyIHVzdWFsbHkgc2F5cyAic3Vic3RyaW5nCisgICAgICAgICAgIG9mIFMgY29uc2lz
dGluZyBvZiB0aGUgY29kZSB1bml0cyBhdCBpbmRpY2VzIFggKGluY2x1c2l2ZSkgdGhyb3VnaCBZ
IChleGNsdXNpdmUpIi4KKworICAgICAgICBbMV06IGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNz
ZWMtcmVnZXhwLnByb3RvdHlwZS1AQHJlcGxhY2UgKHN0ZXAgMTEuYy5paWkuMi5hKQorICAgICAg
ICBbMl06IGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVnZXhwLnByb3RvdHlwZS1AQHJl
cGxhY2UgKHN0ZXAgMTQuYSkKKyAgICAgICAgWzNdOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8j
c2VjLXJlZ2V4cC5wcm90b3R5cGUtQEBzcGxpdCAoc3RlcCAxOS5kLml2LjYpCisKKyAgICAgICAg
KiBidWlsdGlucy9CdWlsdGluTmFtZXMuaDoKKyAgICAgICAgKiBidWlsdGlucy9SZWdFeHBQcm90
b3R5cGUuanM6CisgICAgICAgIChnZXRTdWJzdGl0dXRpb24pOgorICAgICAgICAoU3ltYm9sLnJl
cGxhY2UpOgorICAgICAgICAoU3ltYm9sLnNwbGl0KToKKyAgICAgICAgKiBidWlsdGlucy9TdHJp
bmdQcm90b3R5cGUuanM6CisgICAgICAgIChnbG9iYWxQcml2YXRlLnJlcGVhdENoYXJhY3RlcnNT
bG93UGF0aCk6CisgICAgICAgICogYnl0ZWNvZGUvTGlua1RpbWVDb25zdGFudC5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9i
amVjdDo6aW5pdCk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwOgorICAg
ICAgICAoSlNDOjpzdHJpbmdJbmRleE9mSW1wbCk6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3Rv
RnVuY0luZGV4T2YpOgorICAgICAgICAoSlNDOjpidWlsdGluU3RyaW5nSW5kZXhPZkludGVybmFs
KToKKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jU3Vic3RyKToKKyAgICAgICAgKEpTQzo6
c3RyaW5nU3Vic3RyaW5nSW1wbCk6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1N1YnN0
cmluZyk6CisgICAgICAgIChKU0M6OmJ1aWx0aW5TdHJpbmdTdWJzdHJpbmdJbnRlcm5hbCk6Cisg
ICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1N1YnN0ckltcGwpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpidWlsdGluU3RyaW5nU3Vic3RySW50ZXJuYWwpOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmg6CisKIDIwMjAtMDMtMjUgIEFsZXhleSBTaHZheWth
ICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIFxiIGVzY2FwZXMgaW5zaWRlIGNo
YXJhY3RlciBjbGFzc2VzIHNob3VsZCBiZSB2YWxpZCBpbiBVbmljb2RlIHBhdHRlcm5zCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKaW5kZXggMTZmZjFm
OTZiYWRmYWUzNDdjZjdiZmIzMjU1NzIyZjkwYTFkOTYwMi4uMTk3MGM5ZjQzMDYwODcyMWEyYTMy
NTZiMjZlMmU0NmIzYzgzYTZkMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1
aWx0aW5zL0J1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlu
cy9CdWlsdGluTmFtZXMuaApAQCAtMTU5LDggKzE1OSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
IG1hY3JvKHJlZ0V4cFN0cmluZ0l0ZXJhdG9yVW5pY29kZSkgXAogICAgIG1hY3JvKHJlZ0V4cFN0
cmluZ0l0ZXJhdG9yRG9uZSkgXAogICAgIG1hY3JvKHN0cmluZ0luY2x1ZGVzSW50ZXJuYWwpIFwK
KyAgICBtYWNybyhzdHJpbmdJbmRleE9mSW50ZXJuYWwpIFwKICAgICBtYWNybyhzdHJpbmdTcGxp
dEZhc3QpIFwKLSAgICBtYWNybyhzdHJpbmdTdWJzdHJJbnRlcm5hbCkgXAorICAgIG1hY3JvKHN0
cmluZ1N1YnN0cmluZ0ludGVybmFsKSBcCiAgICAgbWFjcm8obWFrZUJvdW5kRnVuY3Rpb24pIFwK
ICAgICBtYWNybyhoYXNPd25MZW5ndGhQcm9wZXJ0eSkgXAogICAgIG1hY3JvKGltcG9ydE1vZHVs
ZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1JlZ0V4cFBy
b3RvdHlwZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9SZWdFeHBQcm90b3R5
cGUuanMKaW5kZXggMTNkNTllY2JiZTZkNWM4YjMzYmQ5ZjhlY2MwZTRkYjFmODU5NjNkNC4uYjcx
ZDZjZGMzMjMxY2FlMjJjNDAzNDViZDVhMjE5YjE2OTU1N2QyOCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1JlZ0V4cFByb3RvdHlwZS5qcworKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUmVnRXhwUHJvdG90eXBlLmpzCkBAIC0xOTEsMTQgKzE5
MSwxNCBAQCBmdW5jdGlvbiByZXBsYWNlKHN0ckFyZywgcmVwbGFjZSkKICAgICAgICAgdmFyIHJl
c3VsdCA9ICIiOwogICAgICAgICB2YXIgbGFzdFN0YXJ0ID0gMDsKIAotICAgICAgICBmb3IgKHZh
ciBzdGFydCA9IDA7IHN0YXJ0ID0gcmVwbGFjZW1lbnQuaW5kZXhPZigiJCIsIGxhc3RTdGFydCks
IHN0YXJ0ICE9PSAtMTsgbGFzdFN0YXJ0ID0gc3RhcnQpIHsKKyAgICAgICAgZm9yICh2YXIgc3Rh
cnQgPSAwOyBzdGFydCA9IEBzdHJpbmdJbmRleE9mSW50ZXJuYWwuQGNhbGwocmVwbGFjZW1lbnQs
ICIkIiwgbGFzdFN0YXJ0KSwgc3RhcnQgIT09IC0xOyBsYXN0U3RhcnQgPSBzdGFydCkgewogICAg
ICAgICAgICAgaWYgKHN0YXJ0IC0gbGFzdFN0YXJ0ID4gMCkKLSAgICAgICAgICAgICAgICByZXN1
bHQgPSByZXN1bHQgKyByZXBsYWNlbWVudC5zdWJzdHJpbmcobGFzdFN0YXJ0LCBzdGFydCk7Cisg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgQHN0cmluZ1N1YnN0cmluZ0ludGVybmFs
LkBjYWxsKHJlcGxhY2VtZW50LCBsYXN0U3RhcnQsIHN0YXJ0KTsKICAgICAgICAgICAgIHN0YXJ0
Kys7Ci0gICAgICAgICAgICB2YXIgY2ggPSByZXBsYWNlbWVudC5jaGFyQXQoc3RhcnQpOwotICAg
ICAgICAgICAgaWYgKGNoID09PSAiIikKKyAgICAgICAgICAgIGlmIChzdGFydCA+PSByZXBsYWNl
bWVudExlbmd0aCkKICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKyAiJCI7CiAgICAg
ICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICB2YXIgY2ggPSByZXBsYWNlbWVudFtzdGFy
dF07CiAgICAgICAgICAgICAgICAgc3dpdGNoIChjaCkKICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgY2FzZSAiJCI6CkBAIC0yMTEsMjAgKzIxMSwyMCBAQCBmdW5jdGlvbiByZXBs
YWNlKHN0ckFyZywgcmVwbGFjZSkKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICAgICAgY2FzZSAiYCI6CiAgICAgICAgICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA+IDAp
Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKyBzdHIuc3Vic3RyaW5n
KDAsIHBvc2l0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAr
IEBzdHJpbmdTdWJzdHJpbmdJbnRlcm5hbC5AY2FsbChzdHIsIDAsIHBvc2l0aW9uKTsKICAgICAg
ICAgICAgICAgICAgICAgc3RhcnQrKzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICAgICAgY2FzZSAiJyI6CiAgICAgICAgICAgICAgICAgICAgIGlmICh0YWlsUG9zIDwg
c3RyaW5nTGVuZ3RoKQotICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsg
c3RyLnN1YnN0cmluZyh0YWlsUG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9
IHJlc3VsdCArIEBzdHJpbmdTdWJzdHJpbmdJbnRlcm5hbC5AY2FsbChzdHIsIHRhaWxQb3MpOwog
ICAgICAgICAgICAgICAgICAgICBzdGFydCsrOwogICAgICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgICAgICBjYXNlICI8IjoKICAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWVk
Q2FwdHVyZXMgIT09IEB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBn
cm91cE5hbWVTdGFydEluZGV4ID0gc3RhcnQgKyAxOwotICAgICAgICAgICAgICAgICAgICAgICAg
dmFyIGdyb3VwTmFtZUVuZEluZGV4ID0gcmVwbGFjZW1lbnQuaW5kZXhPZigiPiIsIGdyb3VwTmFt
ZVN0YXJ0SW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3VwTmFtZUVuZElu
ZGV4ID0gQHN0cmluZ0luZGV4T2ZJbnRlcm5hbC5AY2FsbChyZXBsYWNlbWVudCwgIj4iLCBncm91
cE5hbWVTdGFydEluZGV4KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChncm91cE5hbWVF
bmRJbmRleCAhPT0gLTEpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZ3JvdXBO
YW1lID0gcmVwbGFjZW1lbnQuc3Vic3RyaW5nKGdyb3VwTmFtZVN0YXJ0SW5kZXgsIGdyb3VwTmFt
ZUVuZEluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZ3JvdXBOYW1lID0g
QHN0cmluZ1N1YnN0cmluZ0ludGVybmFsLkBjYWxsKHJlcGxhY2VtZW50LCBncm91cE5hbWVTdGFy
dEluZGV4LCBncm91cE5hbWVFbmRJbmRleCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dmFyIGNhcHR1cmUgPSBuYW1lZENhcHR1cmVzW2dyb3VwTmFtZV07CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKGNhcHR1cmUgIT09IEB1bmRlZmluZWQpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCArIEB0b1N0cmluZyhjYXB0dXJlKTsKQEAg
LTIzOCwxOSArMjM4LDE5IEBAIGZ1bmN0aW9uIHJlcGxhY2Uoc3RyQXJnLCByZXBsYWNlKQogICAg
ICAgICAgICAgICAgICAgICBzdGFydCsrOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICB2YXIgY2hDb2RlID0g
Y2guY2hhckNvZGVBdCgwKTsKKyAgICAgICAgICAgICAgICAgICAgdmFyIGNoQ29kZSA9IGNoLkBj
aGFyQ29kZUF0KDApOwogICAgICAgICAgICAgICAgICAgICBpZiAoY2hDb2RlID49IDB4MzAgJiYg
Y2hDb2RlIDw9IDB4MzkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBvcmlnaW5hbFN0
YXJ0ID0gc3RhcnQgLSAxOwogICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQrKzsKIAogICAg
ICAgICAgICAgICAgICAgICAgICAgdmFyIG4gPSBjaENvZGUgLSAweDMwOwogICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKG4gPiBtKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz
dWx0ID0gcmVzdWx0ICsgcmVwbGFjZW1lbnQuc3Vic3RyaW5nKG9yaWdpbmFsU3RhcnQsIHN0YXJ0
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKyBAc3RyaW5n
U3Vic3RyaW5nSW50ZXJuYWwuQGNhbGwocmVwbGFjZW1lbnQsIG9yaWdpbmFsU3RhcnQsIHN0YXJ0
KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KIAogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0IDwgcmVwbGFjZW1l
bnRMZW5ndGgpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmV4dENoQ29kZSA9
IHJlcGxhY2VtZW50LmNoYXJDb2RlQXQoc3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHZhciBuZXh0Q2hDb2RlID0gcmVwbGFjZW1lbnQuQGNoYXJDb2RlQXQoc3RhcnQpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0Q2hDb2RlID49IDB4MzAgJiYgbmV4dENo
Q29kZSA8PSAweDM5KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBubiA9
IDEwICogbiArIG5leHRDaENvZGUgLSAweDMwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAobm4gPD0gbSkgewpAQCAtMjYxLDcgKzI2MSw3IEBAIGZ1bmN0aW9uIHJlcGxhY2Uo
c3RyQXJnLCByZXBsYWNlKQogICAgICAgICAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAobiA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzdWx0ID0gcmVzdWx0ICsgcmVwbGFjZW1lbnQuc3Vic3RyaW5nKG9yaWdpbmFsU3RhcnQsIHN0
YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKyBAc3Ry
aW5nU3Vic3RyaW5nSW50ZXJuYWwuQGNhbGwocmVwbGFjZW1lbnQsIG9yaWdpbmFsU3RhcnQsIHN0
YXJ0KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KIApAQCAtMjc1LDcgKzI3NSw3IEBAIGZ1bmN0aW9uIHJlcGxhY2Uoc3RyQXJn
LCByZXBsYWNlKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgcmV0dXJuIHJl
c3VsdCArIHJlcGxhY2VtZW50LnN1YnN0cmluZyhsYXN0U3RhcnQpOworICAgICAgICByZXR1cm4g
cmVzdWx0ICsgQHN0cmluZ1N1YnN0cmluZ0ludGVybmFsLkBjYWxsKHJlcGxhY2VtZW50LCBsYXN0
U3RhcnQpOwogICAgIH0KIAogICAgIGlmICghQGlzT2JqZWN0KHRoaXMpKQpAQCAtMzEzLDE1ICsz
MTMsMTYgQEAgZnVuY3Rpb24gcmVwbGFjZShzdHJBcmcsIHJlcGxhY2UpCiAgICAgICAgICAgICBl
bHNlIHsKICAgICAgICAgICAgICAgICB2YXIgbWF0Y2hTdHIgPSBAdG9TdHJpbmcocmVzdWx0WzBd
KTsKIAotICAgICAgICAgICAgICAgIGlmICghbWF0Y2hTdHIubGVuZ3RoKQotICAgICAgICAgICAg
ICAgICAgICByZWdleHAubGFzdEluZGV4ID0gQGFkdmFuY2VTdHJpbmdJbmRleChzdHIsIHJlZ2V4
cC5sYXN0SW5kZXgsIHVuaWNvZGUpOworICAgICAgICAgICAgICAgIGlmICghbWF0Y2hTdHIubGVu
Z3RoKSB7CisgICAgICAgICAgICAgICAgICAgIHZhciB0aGlzSW5kZXggPSBAdG9MZW5ndGgocmVn
ZXhwLmxhc3RJbmRleCk7CisgICAgICAgICAgICAgICAgICAgIHJlZ2V4cC5sYXN0SW5kZXggPSBA
YWR2YW5jZVN0cmluZ0luZGV4KHN0ciwgdGhpc0luZGV4LCB1bmljb2RlKTsKKyAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKICAgICB2YXIgYWNjdW11
bGF0ZWRSZXN1bHQgPSAiIjsKICAgICB2YXIgbmV4dFNvdXJjZVBvc2l0aW9uID0gMDsKLSAgICB2
YXIgbGFzdFBvc2l0aW9uID0gMDsKIAogICAgIGZvciAodmFyIGkgPSAwLCByZXN1bHRMaXN0TGVu
Z3RoID0gcmVzdWx0TGlzdC5sZW5ndGg7IGkgPCByZXN1bHRMaXN0TGVuZ3RoOyArK2kpIHsKICAg
ICAgICAgdmFyIHJlc3VsdCA9IHJlc3VsdExpc3RbaV07CkBAIC0zNDYsNyArMzQ3LDEwIEBAIGZ1
bmN0aW9uIHJlcGxhY2Uoc3RyQXJnLCByZXBsYWNlKQogICAgICAgICB2YXIgbmFtZWRDYXB0dXJl
cyA9IHJlc3VsdC5ncm91cHM7CiAKICAgICAgICAgaWYgKGZ1bmN0aW9uYWxSZXBsYWNlKSB7Ci0g
ICAgICAgICAgICB2YXIgcmVwbGFjZXJBcmdzID0gWyBtYXRjaGVkIF0uY29uY2F0KGNhcHR1cmVz
KTsKKyAgICAgICAgICAgIHZhciByZXBsYWNlckFyZ3MgPSBbIG1hdGNoZWQgXTsKKyAgICAgICAg
ICAgIGZvciAodmFyIGogPSAwOyBqIDwgY2FwdHVyZXMubGVuZ3RoOyBqKyspCisgICAgICAgICAg
ICAgICAgcmVwbGFjZXJBcmdzLkBwdXNoKGNhcHR1cmVzW2pdKTsKKwogICAgICAgICAgICAgcmVw
bGFjZXJBcmdzLkBwdXNoKHBvc2l0aW9uKTsKICAgICAgICAgICAgIHJlcGxhY2VyQXJncy5AcHVz
aChzdHIpOwogCkBAIC0zNjIsMTcgKzM2NiwxNiBAQCBmdW5jdGlvbiByZXBsYWNlKHN0ckFyZywg
cmVwbGFjZSkKICAgICAgICAgICAgIHJlcGxhY2VtZW50ID0gZ2V0U3Vic3RpdHV0aW9uKG1hdGNo
ZWQsIHN0ciwgcG9zaXRpb24sIGNhcHR1cmVzLCBuYW1lZENhcHR1cmVzLCByZXBsYWNlKTsKICAg
ICAgICAgfQogCi0gICAgICAgIGlmIChwb3NpdGlvbiA+PSBuZXh0U291cmNlUG9zaXRpb24gJiYg
cG9zaXRpb24gPj0gbGFzdFBvc2l0aW9uKSB7Ci0gICAgICAgICAgICBhY2N1bXVsYXRlZFJlc3Vs
dCA9IGFjY3VtdWxhdGVkUmVzdWx0ICsgc3RyLnN1YnN0cmluZyhuZXh0U291cmNlUG9zaXRpb24s
IHBvc2l0aW9uKSArIHJlcGxhY2VtZW50OworICAgICAgICBpZiAocG9zaXRpb24gPj0gbmV4dFNv
dXJjZVBvc2l0aW9uKSB7CisgICAgICAgICAgICBhY2N1bXVsYXRlZFJlc3VsdCA9IGFjY3VtdWxh
dGVkUmVzdWx0ICsgQHN0cmluZ1N1YnN0cmluZ0ludGVybmFsLkBjYWxsKHN0ciwgbmV4dFNvdXJj
ZVBvc2l0aW9uLCBwb3NpdGlvbikgKyByZXBsYWNlbWVudDsKICAgICAgICAgICAgIG5leHRTb3Vy
Y2VQb3NpdGlvbiA9IHBvc2l0aW9uICsgbWF0Y2hMZW5ndGg7Ci0gICAgICAgICAgICBsYXN0UG9z
aXRpb24gPSBwb3NpdGlvbjsKICAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChuZXh0U291cmNl
UG9zaXRpb24gPj0gc3RyaW5nTGVuZ3RoKQogICAgICAgICByZXR1cm4gIGFjY3VtdWxhdGVkUmVz
dWx0OwogCi0gICAgcmV0dXJuIGFjY3VtdWxhdGVkUmVzdWx0ICsgc3RyLnN1YnN0cmluZyhuZXh0
U291cmNlUG9zaXRpb24pOworICAgIHJldHVybiBhY2N1bXVsYXRlZFJlc3VsdCArIEBzdHJpbmdT
dWJzdHJpbmdJbnRlcm5hbC5AY2FsbChzdHIsIG5leHRTb3VyY2VQb3NpdGlvbik7CiB9CiAKIC8v
IDIxLjIuNS45IFJlZ0V4cC5wcm90b3R5cGVbQEBzZWFyY2hdIChzdHJpbmcpCkBAIC01NjIsNyAr
NTY1LDcgQEAgZnVuY3Rpb24gc3BsaXQoc3RyaW5nLCBsaW1pdCkKICAgICAgICAgICAgIC8vIGl2
LiBFbHNlIGUgIT0gcCwKICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIC8vIDEu
IExldCBUIGJlIGEgU3RyaW5nIHZhbHVlIGVxdWFsIHRvIHRoZSBzdWJzdHJpbmcgb2YgUyBjb25z
aXN0aW5nIG9mIHRoZSBlbGVtZW50cyBhdCBpbmRpY2VzIHAgKGluY2x1c2l2ZSkgdGhyb3VnaCBx
IChleGNsdXNpdmUpLgotICAgICAgICAgICAgICAgIHZhciBzdWJTdHIgPSBAc3RyaW5nU3Vic3Ry
SW50ZXJuYWwuQGNhbGwoc3RyLCBwb3NpdGlvbiwgbWF0Y2hQb3NpdGlvbiAtIHBvc2l0aW9uKTsK
KyAgICAgICAgICAgICAgICB2YXIgc3ViU3RyID0gQHN0cmluZ1N1YnN0cmluZ0ludGVybmFsLkBj
YWxsKHN0ciwgcG9zaXRpb24sIG1hdGNoUG9zaXRpb24pOwogICAgICAgICAgICAgICAgIC8vIDIu
IFBlcmZvcm0gISBDcmVhdGVEYXRhUHJvcGVydHkoQSwgISBUb1N0cmluZyhsZW5ndGhBKSwgVCku
CiAgICAgICAgICAgICAgICAgLy8gMy4gTGV0IGxlbmd0aEEgYmUgbGVuZ3RoQSArIDEuCiAgICAg
ICAgICAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KHJlc3VsdCwgcmVzdWx0Lmxlbmd0aCwgc3ViU3Ry
KTsKQEAgLTU5Nyw3ICs2MDAsNyBAQCBmdW5jdGlvbiBzcGxpdChzdHJpbmcsIGxpbWl0KQogICAg
ICAgICB9CiAgICAgfQogICAgIC8vIDIwLiBMZXQgVCBiZSBhIFN0cmluZyB2YWx1ZSBlcXVhbCB0
byB0aGUgc3Vic3RyaW5nIG9mIFMgY29uc2lzdGluZyBvZiB0aGUgZWxlbWVudHMgYXQgaW5kaWNl
cyBwIChpbmNsdXNpdmUpIHRocm91Z2ggc2l6ZSAoZXhjbHVzaXZlKS4KLSAgICB2YXIgcmVtYWlu
aW5nU3RyID0gQHN0cmluZ1N1YnN0ckludGVybmFsLkBjYWxsKHN0ciwgcG9zaXRpb24sIHNpemUp
OworICAgIHZhciByZW1haW5pbmdTdHIgPSBAc3RyaW5nU3Vic3RyaW5nSW50ZXJuYWwuQGNhbGwo
c3RyLCBwb3NpdGlvbiwgc2l6ZSk7CiAgICAgLy8gMjEuIFBlcmZvcm0gISBDcmVhdGVEYXRhUHJv
cGVydHkoQSwgISBUb1N0cmluZyhsZW5ndGhBKSwgVCkuCiAgICAgQHB1dEJ5VmFsRGlyZWN0KHJl
c3VsdCwgcmVzdWx0Lmxlbmd0aCwgcmVtYWluaW5nU3RyKTsKICAgICAvLyAyMi4gUmV0dXJuIEEu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvU3RyaW5nUHJvdG90
eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1N0cmluZ1Byb3RvdHlwZS5q
cwppbmRleCA5ZDZjYWRjZTFkY2JmZGVkMmQyNWJmOTI4MGNhNzNmMGJkMGJmMWJmLi42OWU2M2Qz
Zjc3YWMxZTM0ZGEyYWVmODNjNjRmMmM5Mzc3ODM5M2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnVpbHRpbnMvU3RyaW5nUHJvdG90eXBlLmpzCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdQcm90b3R5cGUuanMKQEAgLTExMyw3ICsxMTMsNyBA
QCBmdW5jdGlvbiByZXBlYXRDaGFyYWN0ZXJzU2xvd1BhdGgoc3RyaW5nLCBjb3VudCkKICAgICAg
ICAgb3BlcmFuZCArPSBvcGVyYW5kOwogICAgIH0KICAgICBpZiAocmVtYWluaW5nQ2hhcmFjdGVy
cykKLSAgICAgICAgcmVzdWx0ICs9IEBzdHJpbmdTdWJzdHJJbnRlcm5hbC5AY2FsbChzdHJpbmcs
IDAsIHJlbWFpbmluZ0NoYXJhY3RlcnMpOworICAgICAgICByZXN1bHQgKz0gQHN0cmluZ1N1YnN0
cmluZ0ludGVybmFsLkBjYWxsKHN0cmluZywgMCwgcmVtYWluaW5nQ2hhcmFjdGVycyk7CiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0xpbmtUaW1lQ29uc3RhbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9MaW5rVGltZUNvbnN0YW50LmgKaW5kZXggOTAxZGYwYjFhMDI2ZTI2ZmZmNTRjMjAwODE5ZmM0
ZGJjMzY2ZjU1MC4uOTE2MjFiMThkNWRmM2EyMjhmNTVhMThjZDcwYzcxMzQxMzdhZjE1ZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xpbmtUaW1lQ29uc3RhbnQu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGlua1RpbWVDb25zdGFudC5o
CkBAIC05MCw4ICs5MCw5IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0OwogICAgIHYocmVnRXhwUHJv
dG90eXBlU3ltYm9sUmVwbGFjZSwgbnVsbHB0cikgXAogICAgIHYocmVnRXhwVGVzdEZhc3QsIG51
bGxwdHIpIFwKICAgICB2KHN0cmluZ0luY2x1ZGVzSW50ZXJuYWwsIG51bGxwdHIpIFwKKyAgICB2
KHN0cmluZ0luZGV4T2ZJbnRlcm5hbCwgbnVsbHB0cikgXAogICAgIHYoc3RyaW5nU3BsaXRGYXN0
LCBudWxscHRyKSBcCi0gICAgdihzdHJpbmdTdWJzdHJJbnRlcm5hbCwgbnVsbHB0cikgXAorICAg
IHYoc3RyaW5nU3Vic3RyaW5nSW50ZXJuYWwsIG51bGxwdHIpIFwKICAgICB2KG1ha2VCb3VuZEZ1
bmN0aW9uLCBudWxscHRyKSBcCiAgICAgdihoYXNPd25MZW5ndGhQcm9wZXJ0eSwgbnVsbHB0cikg
XAogICAgIHYoZGF0ZVRpbWVGb3JtYXQsIG51bGxwdHIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCA5MjE4NGYwMTMyZmU1MTQx
Y2I5OGFhNTYxOTU3NWI1YjYzMjA1NzQ2Li42Y2UxODRhZTE1OWU0ODJmMTFlMDMwZjZkMzllYzg1
NjAyYmU5NjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuY3BwCkBAIC0xMTQyLDExICsxMTQyLDE0IEBAIGNhcGl0YWxOYW1lICMjIENvbnN0
cnVjdG9yKiBsb3dlck5hbWUgIyMgQ29uc3RydWN0b3IgPSBmZWF0dXJlRmxhZyA/IGNhcGl0YWxO
YW1lCiAgICAgbV9saW5rVGltZUNvbnN0YW50c1tzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTGlua1Rp
bWVDb25zdGFudDo6c3RyaW5nSW5jbHVkZXNJbnRlcm5hbCldLmluaXRMYXRlcihbXSAoY29uc3Qg
SW5pdGlhbGl6ZXI8SlNDZWxsPiYgaW5pdCkgewogICAgICAgICAgICAgaW5pdC5zZXQoSlNGdW5j
dGlvbjo6Y3JlYXRlKGluaXQudm0sIGpzQ2FzdDxKU0dsb2JhbE9iamVjdCo+KGluaXQub3duZXIp
LCAxLCBTdHJpbmcoKSwgYnVpbHRpblN0cmluZ0luY2x1ZGVzSW50ZXJuYWwpKTsKICAgICAgICAg
fSk7CisgICAgbV9saW5rVGltZUNvbnN0YW50c1tzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTGlua1Rp
bWVDb25zdGFudDo6c3RyaW5nSW5kZXhPZkludGVybmFsKV0uaW5pdExhdGVyKFtdIChjb25zdCBJ
bml0aWFsaXplcjxKU0NlbGw+JiBpbml0KSB7CisgICAgICAgICAgICBpbml0LnNldChKU0Z1bmN0
aW9uOjpjcmVhdGUoaW5pdC52bSwganNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4oaW5pdC5vd25lciks
IDEsIFN0cmluZygpLCBidWlsdGluU3RyaW5nSW5kZXhPZkludGVybmFsKSk7CisgICAgICAgIH0p
OwogICAgIG1fbGlua1RpbWVDb25zdGFudHNbc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KExpbmtUaW1l
Q29uc3RhbnQ6OnN0cmluZ1NwbGl0RmFzdCldLmluaXRMYXRlcihbXSAoY29uc3QgSW5pdGlhbGl6
ZXI8SlNDZWxsPiYgaW5pdCkgewogICAgICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3Jl
YXRlKGluaXQudm0sIGpzQ2FzdDxKU0dsb2JhbE9iamVjdCo+KGluaXQub3duZXIpLCAyLCBTdHJp
bmcoKSwgc3RyaW5nUHJvdG9GdW5jU3BsaXRGYXN0KSk7CiAgICAgICAgIH0pOwotICAgIG1fbGlu
a1RpbWVDb25zdGFudHNbc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KExpbmtUaW1lQ29uc3RhbnQ6OnN0
cmluZ1N1YnN0ckludGVybmFsKV0uaW5pdExhdGVyKFtdIChjb25zdCBJbml0aWFsaXplcjxKU0Nl
bGw+JiBpbml0KSB7Ci0gICAgICAgICAgICBpbml0LnNldChKU0Z1bmN0aW9uOjpjcmVhdGUoaW5p
dC52bSwganNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4oaW5pdC5vd25lciksIDIsIFN0cmluZygpLCBi
dWlsdGluU3RyaW5nU3Vic3RySW50ZXJuYWwpKTsKKyAgICBtX2xpbmtUaW1lQ29uc3RhbnRzW3N0
YXRpY19jYXN0PHVuc2lnbmVkPihMaW5rVGltZUNvbnN0YW50OjpzdHJpbmdTdWJzdHJpbmdJbnRl
cm5hbCldLmluaXRMYXRlcihbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlNDZWxsPiYgaW5pdCkgewor
ICAgICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGluaXQudm0sIGpzQ2FzdDxK
U0dsb2JhbE9iamVjdCo+KGluaXQub3duZXIpLCAyLCBTdHJpbmcoKSwgYnVpbHRpblN0cmluZ1N1
YnN0cmluZ0ludGVybmFsKSk7CiAgICAgICAgIH0pOwogCiAgICAgLy8gRnVuY3Rpb24gcHJvdG90
eXBlIGhlbHBlcnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
UHJvdG90eXBlLmNwcAppbmRleCBmZDM4ZDZmMDA1OTk5ZmVhNzNmZWQ4Y2Y3ZDRlZDJmZjVkMGNh
MDk4Li40ZmVkNjZiZDY1MWZmNjUwZTg5MmYzMTY0ZWQzMWNmY2NkYzE3YTQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKQEAgLTEw
NzYsNyArMTA3Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9G
dW5jQ29kZVBvaW50QXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBzdHJpbmdQcm90b0Z1bmNJbmRleE9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorc3RhdGljIEVuY29kZWRKU1ZhbHVlIHN0cmluZ0luZGV4
T2ZJbXBsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMTIzLDYgKzExMjMsMTkgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNJbmRleE9mKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHJlc3Vs
dCkpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0lu
ZGV4T2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
Cit7CisgICAgcmV0dXJuIHN0cmluZ0luZGV4T2ZJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1l
KTsKK30KKworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBidWlsdGluU3RyaW5nSW5kZXhP
ZkludGVybmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQoreworICAgIEFTU0VSVChjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpLmlzU3RyaW5nKCkpOwor
ICAgIEFTU0VSVChjYWxsRnJhbWUtPmFyZ3VtZW50KDApLmlzU3RyaW5nKCkpOworICAgIEFTU0VS
VChjYWxsRnJhbWUtPmFyZ3VtZW50KDEpLmlzTnVtYmVyKCkgfHwgY2FsbEZyYW1lLT5hcmd1bWVu
dCgxKS5pc1VuZGVmaW5lZCgpKTsKKyAgICByZXR1cm4gc3RyaW5nSW5kZXhPZkltcGwoZ2xvYmFs
T2JqZWN0LCBjYWxsRnJhbWUpOworfQorCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0
cmluZ1Byb3RvRnVuY0xhc3RJbmRleE9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
QEAgLTEzNjUsNyArMTM3OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5n
UHJvdG9GdW5jU3BsaXRGYXN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgc3Ry
aW5nUHJvdG9GdW5jU3Vic3RySW1wbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJv
dG9GdW5jU3Vic3RyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNDA5LDI2ICsxNDIyLDcgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIHN0cmluZ1Byb3RvRnVuY1N1YnN0ckltcGwoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2EKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3Vic3Ry
aW5nKHZtLCB1U3RyaW5nLCBzdWJzdHJpbmdTdGFydCwgc3Vic3RyaW5nTGVuZ3RoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3Vic3RyKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQotewotICAgIHJl
dHVybiBzdHJpbmdQcm90b0Z1bmNTdWJzdHJJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsK
LX0KLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBidWlsdGluU3RyaW5nU3Vic3RySW50
ZXJuYWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
Ci17Ci0gICAgLy8gQHN1YnN0ckludGVybmFsIHNob3VsZCBub3QgaGF2ZSBhbnkgb2JzZXJ2YWJs
ZSBzaWRlIGVmZmVjdHMgKGUuZy4gaXQgc2hvdWxkIG5vdCBjYWxsCi0gICAgLy8gR2V0TWV0aG9k
KC4uLiwgQEB0b1ByaW1pdGl2ZSkgb24gdGhlIHRoaXNWYWx1ZSkuCi0KLSAgICAvLyBJdCBpcyBv
ayB0byB1c2UgdGhlIGRlZmF1bHQgc3RyaW5nUHJvdG9GdW5jU3Vic3RyIGFzIHRoZSBpbXBsZW1l
bnRhdGlvbiBvZgotICAgIC8vIEBzdWJzdHJJbnRlcm5hbCBiZWNhdXNlIEBzdWJzdHJJbnRlcm5h
bCB3aWxsIG9ubHkgYmUgY2FsbGVkIGJ5IGJ1aWx0aW5zLCB3aGljaCB3aWxsCi0gICAgLy8gZ3Vh
cmFudGVlIHRoYXQgd2Ugb25seSBwYXNzIGl0IGEgc3RyaW5nIHRoaXNWYWx1ZS4gQXMgYSByZXN1
bHQsIHN0cmluZ1Byb3RvRnVuY1N1YnN0cgotICAgIC8vIHdpbGwgbm90IG5lZWQgdG8gY2FsbCB0
b1N0cmluZygpIG9uIHRoZSB0aGlzVmFsdWUsIGFuZCB0aGVyZSB3aWxsIGJlIG5vIG9ic2VydmFi
bGUKLSAgICAvLyBzaWRlLWVmZmVjdHMuCi0gICAgQVNTRVJUKGNhbGxGcmFtZS0+dGhpc1ZhbHVl
KCkuaXNTdHJpbmcoKSk7Ci0gICAgcmV0dXJuIHN0cmluZ1Byb3RvRnVuY1N1YnN0ckltcGwoZ2xv
YmFsT2JqZWN0LCBjYWxsRnJhbWUpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IHN0cmluZ1Byb3RvRnVuY1N1YnN0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBzdHJpbmdTdWJzdHJp
bmdJbXBsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNDcyLDYgKzE0NjYsMTkgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTdWJzdHJpbmcoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVu
Y29kZShqc1N1YnN0cmluZyhnbG9iYWxPYmplY3QsIGpzU3RyaW5nLCBzdWJzdHJpbmdTdGFydCwg
c3Vic3RyaW5nTGVuZ3RoKSkpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0
cmluZ1Byb3RvRnVuY1N1YnN0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK3sKKyAgICByZXR1cm4gc3RyaW5nU3Vic3RyaW5nSW1wbChnbG9i
YWxPYmplY3QsIGNhbGxGcmFtZSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
YnVpbHRpblN0cmluZ1N1YnN0cmluZ0ludGVybmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQoreworICAgIEFTU0VSVChjYWxsRnJhbWUtPnRoaXNW
YWx1ZSgpLmlzU3RyaW5nKCkpOworICAgIEFTU0VSVChjYWxsRnJhbWUtPmFyZ3VtZW50KDApLmlz
TnVtYmVyKCkpOworICAgIEFTU0VSVChjYWxsRnJhbWUtPmFyZ3VtZW50KDEpLmlzTnVtYmVyKCkg
fHwgY2FsbEZyYW1lLT5hcmd1bWVudCgxKS5pc1VuZGVmaW5lZCgpKTsKKyAgICByZXR1cm4gc3Ry
aW5nU3Vic3RyaW5nSW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7ICAgCit9CisKIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jVG9Mb3dlckNhc2UoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdQcm90b3R5cGUuaAppbmRleCBiZDA4YThkNDNhMzMzZDM5YzRkMDczMTEyNGI5
NTk0ZDQ0ZDVhYWY5Li41MzdiMGQxYzRkNzk0YTY5NDM2OTMzNGI5Mjk5MmFkMTdhM2QwNmZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaApA
QCAtNjAsNyArNjAsOCBAQCB2b2lkIHN1YnN0aXR1dGVCYWNrcmVmZXJlbmNlcyhTdHJpbmdCdWls
ZGVyJiByZXN1bHQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnQsCiBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1JlcGVhdENoYXJhY3RlcihKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90
b0Z1bmNTcGxpdEZhc3QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBidWlsdGluU3RyaW5nU3Vic3RySW50ZXJuYWwoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYnVpbHRp
blN0cmluZ1N1YnN0cmluZ0ludGVybmFsKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJ1aWx0aW5TdHJpbmdJbmNsdWRlc0ludGVybmFs
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGJ1aWx0aW5TdHJpbmdJbmRleE9mSW50ZXJuYWwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxv
ZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDA2YmQzZmVjNjYyMjJhMWI2ZWQ2OGUxOGEwMGZh
OTFhZGU4NGRlMjEuLjViMTAyMDU0MjNmMGY2MDg3MzA2MDVhOTIwZGY2ZmM4MjdiNmFlOTUgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTIgQEAKKzIwMjAtMDMtMjUgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21h
aWwuY29tPgorCisgICAgICAgIFJlZ0V4cC5wcm90b3R5cGVbQEByZXBsYWNlXSByZWxpZXMgb24g
Z2xvYmFscyBhbmQgZG9lc24ndCBwZXJmb3JtIFRvTGVuZ3RoCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzM4NjcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6
IE1hcmsgNCB0ZXN0IGNhc2VzIGFzIHBhc3NpbmcuCisKIDIwMjAtMDMtMjUgIEFsZXhleSBTaHZh
eWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIFxiIGVzY2FwZXMgaW5zaWRl
IGNoYXJhY3RlciBjbGFzc2VzIHNob3VsZCBiZSB2YWxpZCBpbiBVbmljb2RlIHBhdHRlcm5zCmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwgYi9KU1Rlc3RzL3Rl
c3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKaW5kZXggNGU0OWU2YjczZDUzYjBhMWM1MmExZTEzOGE4
MTM4YjZjYThjOGNlYy4uNzI2Nzk1ZTg5YjNmOTU3ZDY4NDhmYTU0ZWFjNjk0NzFhOWFhYTBkMyAx
MDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCisrKyBiL0pTVGVz
dHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbApAQCAtMTY1NCwxMiArMTY1NCw2IEBAIHRlc3Qv
YnVpbHQtaW5zL1JlZ0V4cC9wcm90by1mcm9tLWN0b3ItcmVhbG0uanM6CiB0ZXN0L2J1aWx0LWlu
cy9SZWdFeHAvcHJvdG90eXBlL1N5bWJvbC5tYXRjaC9idWlsdGluLWluZmVyLXVuaWNvZGUuanM6
CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq++/vcK7LCDC
q251bGzCuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVj
dGVkIFNhbWVWYWx1ZSjCq++/vcK7LCDCq251bGzCuykgdG8gYmUgdHJ1ZScKLXRlc3QvYnVpbHQt
aW5zL1JlZ0V4cC9wcm90b3R5cGUvU3ltYm9sLnJlcGxhY2UvY29lcmNlLWxhc3RpbmRleC5qczoK
LSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrMTgwMTQzOTg1
MDk0ODE5ODTCuywgwqs5MDA3MTk5MjU0NzQwOTkywrspIHRvIGJlIHRydWUnCi0gIHN0cmljdCBt
b2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqsxODAxNDM5ODUwOTQ4MTk4
NMK7LCDCqzkwMDcxOTkyNTQ3NDA5OTLCuykgdG8gYmUgdHJ1ZScKLXRlc3QvYnVpbHQtaW5zL1Jl
Z0V4cC9wcm90b3R5cGUvU3ltYm9sLnJlcGxhY2UvcG9pc29uZWQtc3RkbGliLmpzOgotICBkZWZh
dWx0OiAnVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGEgZnVuY3Rpb24nCi0gIHN0cmljdCBt
b2RlOiAnVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGEgZnVuY3Rpb24nCiB0ZXN0L2J1aWx0
LWlucy9SZWdFeHAvcHJvdG90eXBlL1N5bWJvbC5zZWFyY2gvc2V0LWxhc3RpbmRleC1pbml0LXNh
bWV2YWx1ZS5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVl
KMKrMMK7LCDCqzDCuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6
IEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzDCuywgwqswwrspIHRvIGJlIHRydWUnCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>