<?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>220809</bug_id>
          
          <creation_ts>2021-01-21 10:29:52 -0800</creation_ts>
          <short_desc>REGRESSION (r270874): Some React Native apps are reported broken on iOS</short_desc>
          <delta_ts>2021-01-25 18:13:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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=38970</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Shvayka">ashvayka</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>smoley</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>1721230</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-01-21 10:29:52 -0800</bug_when>
    <thetext>REGRESSION (r270874): Some React Native apps are reported broken on iOS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721233</commentid>
    <comment_count>1</comment_count>
      <attachid>418061</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-01-21 10:33:05 -0800</bug_when>
    <thetext>Created attachment 418061
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721236</commentid>
    <comment_count>2</comment_count>
      <attachid>418061</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-01-21 10:37:45 -0800</bug_when>
    <thetext>Comment on attachment 418061
Patch

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

&gt; Source/JavaScriptCore/runtime/JSObject.cpp:2001
&gt; +    bool reportAsEnumerable = !(slot.attributes() &amp; PropertyAttribute::DontEnum) || structure(vm)-&gt;typeInfo().getOwnPropertySlotIsWrongAboutDontEnum();

The flag should probably be queried from slotBase() rather than |this|.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721246</commentid>
    <comment_count>3</comment_count>
      <attachid>418064</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-01-21 11:10:50 -0800</bug_when>
    <thetext>Created attachment 418064
Patch

Query GetOwnPropertySlotIsWrongAboutDontEnum from the slotBase().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721416</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-21 16:51:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/73475533&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721632</commentid>
    <comment_count>5</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-01-22 11:05:22 -0800</bug_when>
    <thetext>I&apos;m going to test this soon and can review too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722342</commentid>
    <comment_count>6</comment_count>
      <attachid>418064</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-01-25 16:09:36 -0800</bug_when>
    <thetext>Comment on attachment 418064
Patch

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

Confirmed this fixes the React native crashes we were seeing

&gt; Source/JavaScriptCore/runtime/JSTypeInfo.h:62
&gt; +static constexpr unsigned GetOwnPropertySlotIsWrongAboutDontEnum = 1 &lt;&lt; 20;

nit, I think I&apos;d call this:
GetOwnPropertySlotMayBeWrongAboutDontEnum

since we don&apos;t know definitively, but the runtime must be conservative.

&gt; Source/WebCore/bridge/runtime_array.h:38
&gt; +    static constexpr unsigned StructureFlags = Base::StructureFlags | OverridesGetOwnPropertySlot | OverridesGetOwnPropertyNames | InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero | GetOwnPropertySlotIsWrongAboutDontEnum;

is it worth reverting these back to how they used to be and provide this flag? Or should we make them truthful? I don&apos;t think we have evidence that this part of the patch broke stuff</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722356</commentid>
    <comment_count>7</comment_count>
      <attachid>418359</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-01-25 17:27:53 -0800</bug_when>
    <thetext>Created attachment 418359
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722366</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-25 18:13:16 -0800</bug_when>
    <thetext>Committed r271873: &lt;https://trac.webkit.org/changeset/271873&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 418359.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418061</attachid>
            <date>2021-01-21 10:33:05 -0800</date>
            <delta_ts>2021-01-21 11:10:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220809-20210121203303.patch</filename>
            <type>text/plain</type>
            <size>19358</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjcxNjk4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBA
CisyMDIxLTAxLTIxICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKwor
ICAgICAgICBSRUdSRVNTSU9OIChyMjcwODc0KTogU29tZSBSZWFjdCBOYXRpdmUgYXBwcyBhcmUg
cmVwb3J0ZWQgYnJva2VuIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIwODA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgcjI3MDg3NCBmaXhlZCBmb3IvaW4gc2hhZG93aW5nIGlzc3VlIGJ5IGlu
dHJvZHVjaW5nIGFuIGludmFyaWFudDogYWxsIHByb3BlcnRpZXMKKyAgICAgICAgcmV0dXJuZWQg
YnkgZ2V0T3duKlByb3BlcnR5TmFtZXMoKSBpbiBEb250RW51bVByb3BlcnRpZXNNb2RlOjpFeGNs
dWRlIHNob3VsZCBiZQorICAgICAgICByZXBvcnRlZCBhcyBbW0VudW1lcmFibGVdXSBieSBnZXRP
d25Qcm9wZXJ0eVNsb3QoKS4gT3RoZXJ3aXNlLCBmb3IvaW4gc2tpcHMgdGhlCisgICAgICAgIHBy
b3BlcnR5LCB3aGljaCBhbG1vc3QgY2VydGFpbmx5IGNhdXNlcyB0aGUgYXBwcyB0byBicmVhay4K
KworICAgICAgICBTaW5jZSB0aGVyZSBpcyBubyB3YXkgdG8gZW5mb3JjZSB0aGlzIGludmFyaWFu
dCBmb3Igb3BhcXVlIEFQSSBvYmplY3RzIGxpa2UKKyAgICAgICAgSlNDYWxsYmFja09iamVjdCwg
dGhpcyBjaGFuZ2Ugc2tpcHMgW1tFbnVtZXJhYmxlXV0gY2hlY2sgZm9yIHRoZW0gYnkgaW50cm9k
dWNpbmcKKyAgICAgICAgR2V0T3duUHJvcGVydHlTbG90SXNXcm9uZ0Fib3V0RG9udEVudW0gb3V0
IG9mIGxpbmUgdHlwZSBpbmZvIGZsYWcuCisKKyAgICAgICAgQWxzbywgdGhpcyBwYXRjaCByZXZl
cnRzIGFsbCBjaGFuZ2VzIHRvIGdldE93blByb3BlcnR5U2xvdCgpIG92ZXJyaWRlcyBvZiByMjcw
ODc0CisgICAgICAgIHNpbmNlIHRob3NlIGFyZSBvYnNlcnZhYmxlIChlLmcuIHByb3BlcnR5SXNF
bnVtZXJhYmxlKCkpIGFuZCBubyBsb25nZXIgbmVjZXNzYXJ5LgorCisgICAgICAgICogQVBJL0pT
Q2FsbGJhY2tPYmplY3QuaDoKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9u
cy5oOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OmdldE93blByb3Bl
cnR5U2xvdCk6CisgICAgICAgICogQVBJL3Rlc3RzL3Rlc3RhcGlTY3JpcHRzL3Rlc3RhcGkuanM6
CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0
OjpoYXNFbnVtZXJhYmxlUHJvcGVydHkgY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNUeXBl
SW5mby5oOgorICAgICAgICAoSlNDOjpUeXBlSW5mbzo6Z2V0T3duUHJvcGVydHlTbG90SXNXcm9u
Z0Fib3V0RG9udEVudW0gY29uc3QpOgorCiAyMDIxLTAxLTE5ICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IEdDQyB3YXJuaW5ncwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgJKHJl
dmlzaW9uIDI3MTY4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09i
amVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjUsNyArMTI1LDcgQEAgdGVtcGxhdGUgPGNsYXNz
IFBhcmVudD4KIGNsYXNzIEpTQ2FsbGJhY2tPYmplY3QgZmluYWwgOiBwdWJsaWMgUGFyZW50IHsK
IHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gUGFyZW50OwotICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRl
c0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldE93blNwZWNpYWxQcm9wZXJ0eU5hbWVz
IHwgT3ZlcnJpZGVzR2V0Q2FsbERhdGEgfCBJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgUHJv
aGliaXRzUHJvcGVydHlDYWNoaW5nOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdCB8IE92ZXJyaWRlc0dldE93blNwZWNpYWxQcm9wZXJ0eU5hbWVzIHwgT3ZlcnJpZGVz
R2V0Q2FsbERhdGEgfCBJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVu
TGVuZ3RoSXNOb3RaZXJvIHwgSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgUHJvaGliaXRzUHJvcGVy
dHlDYWNoaW5nIHwgR2V0T3duUHJvcGVydHlTbG90SXNXcm9uZ0Fib3V0RG9udEVudW07CiAgICAg
c3RhdGljX2Fzc2VydCghKFN0cnVjdHVyZUZsYWdzICYgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0
YW5jZSksICJ1c2luZyBjdXN0b21IYXNJbnN0YW5jZSIpOwogCiAgICAgfkpTQ2FsbGJhY2tPYmpl
Y3QoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1
bmN0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja09iamVjdEZ1bmN0aW9ucy5oCShyZXZpc2lvbiAyNzE2ODkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAkod29ya2luZyBjb3B5KQpA
QCAtMTYyLDkgKzE2Miw3IEBAIGJvb2wgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpnZXRPd25Q
cm8KICAgICBSZWZQdHI8T3BhcXVlSlNTdHJpbmc+IHByb3BlcnR5TmFtZVJlZjsKICAgICAKICAg
ICBpZiAoU3RyaW5nSW1wbCogbmFtZSA9IHByb3BlcnR5TmFtZS51aWQoKSkgewotICAgICAgICAv
LyBGSVhNRTogU2V0IFJlYWRPbmx5IGNvbmRpdGlvbmFsbHksIGJhc2VkIG9uIHNldFByb3BlcnR5
IHByZXNlbmNlIGluIGNsYXNzIGluaGVyaXRhbmNlIGNoYWluLgotICAgICAgICAvLyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5OTI0Ci0gICAgICAgIHVuc2lnbmVk
IGF0dHJpYnV0ZXMgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OlJl
YWRPbmx5KTsKKyAgICAgICAgdW5zaWduZWQgYXR0cmlidXRlcyA9IFByb3BlcnR5QXR0cmlidXRl
OjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bTsKICAgICAgICAgZm9yIChK
U0NsYXNzUmVmIGpzQ2xhc3MgPSB0aGlzT2JqZWN0LT5jbGFzc1JlZigpOyBqc0NsYXNzOyBqc0Ns
YXNzID0ganNDbGFzcy0+cGFyZW50Q2xhc3MpIHsKICAgICAgICAgICAgIC8vIG9wdGlvbmFsIG9w
dGltaXphdGlvbiB0byBieXBhc3MgZ2V0UHJvcGVydHkgaW4gY2FzZXMgd2hlbiB3ZSBvbmx5IG5l
ZWQgdG8ga25vdyBpZiB0aGUgcHJvcGVydHkgZXhpc3RzCiAgICAgICAgICAgICBpZiAoSlNPYmpl
Y3RIYXNQcm9wZXJ0eUNhbGxiYWNrIGhhc1Byb3BlcnR5ID0ganNDbGFzcy0+aGFzUHJvcGVydHkp
IHsKQEAgLTE5NiwyMSArMTk0LDE5IEBAIGJvb2wgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+Ojpn
ZXRPd25Qcm8KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKE9w
YXF1ZUpTQ2xhc3NTdGF0aWNWYWx1ZXNUYWJsZSogc3RhdGljVmFsdWVzID0ganNDbGFzcy0+c3Rh
dGljVmFsdWVzKGdsb2JhbE9iamVjdCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoU3RhdGljVmFs
dWVFbnRyeSogZW50cnkgPSBzdGF0aWNWYWx1ZXMtPmdldChuYW1lKSkgewotICAgICAgICAgICAg
ICAgICAgICAvLyBGSVhNRTogZ2V0U3RhdGljVmFsdWUoKSBwZXJmb3JtcyB0aGUgc2FtZSBsb29w
ICYgY2hlY2tzIGp1c3QgdG8gYWNxdWlyZSBgZW50cnlgLgotICAgICAgICAgICAgICAgICAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5OTI1CisgICAgICAg
ICAgICAgICAgaWYgKHN0YXRpY1ZhbHVlcy0+Y29udGFpbnMobmFtZSkpIHsKICAgICAgICAgICAg
ICAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IHRoaXNPYmplY3QtPmdldFN0YXRpY1ZhbHVlKGdsb2Jh
bE9iamVjdCwgcHJvcGVydHlOYW1lKTsKICAgICAgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgZmFsc2UpOwogICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgZW50cnkt
PmF0dHJpYnV0ZXMsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNsb3Quc2V0VmFs
dWUodGhpc09iamVjdCwgYXR0cmlidXRlcywgdmFsdWUpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChPcGFxdWVKU0Ns
YXNzU3RhdGljRnVuY3Rpb25zVGFibGUqIHN0YXRpY0Z1bmN0aW9ucyA9IGpzQ2xhc3MtPnN0YXRp
Y0Z1bmN0aW9ucyhnbG9iYWxPYmplY3QpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKFN0YXRpY0Z1
bmN0aW9uRW50cnkqIGVudHJ5ID0gc3RhdGljRnVuY3Rpb25zLT5nZXQobmFtZSkpIHsKLSAgICAg
ICAgICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgZW50cnktPmF0dHJpYnV0
ZXMsIGdldFN0YXRpY0Z1bmN0aW9uR2V0dGVyKCkpOworICAgICAgICAgICAgICAgIGlmIChzdGF0
aWNGdW5jdGlvbnMtPmNvbnRhaW5zKG5hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgIHNsb3Qu
c2V0Q3VzdG9tKHRoaXNPYmplY3QsIGF0dHJpYnV0ZXMsIGdldFN0YXRpY0Z1bmN0aW9uR2V0dGVy
KCkpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rl
c3RhcGlTY3JpcHRzL3Rlc3RhcGkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS90ZXN0cy90ZXN0YXBpU2NyaXB0cy90ZXN0YXBpLmpzCShyZXZpc2lvbiAyNzE2ODkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGlTY3JpcHRzL3Rlc3Rh
cGkuanMJKHdvcmtpbmcgY29weSkKQEAgLTE0NCwxMiArMTQ0LDEyIEBAIHZhciBhbHdheXNPbmVE
ZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blAKIHNob3VsZEJlKCd0eXBlb2YgYWx3YXlzT25lRGVz
Y3JpcHRvcicsICJvYmplY3QiKTsKIHNob3VsZEJlKCdhbHdheXNPbmVEZXNjcmlwdG9yLnZhbHVl
JywgTXlPYmplY3QuYWx3YXlzT25lKTsKIHNob3VsZEJlKCdhbHdheXNPbmVEZXNjcmlwdG9yLmNv
bmZpZ3VyYWJsZScsIHRydWUpOwotc2hvdWxkQmUoJ2Fsd2F5c09uZURlc2NyaXB0b3IuZW51bWVy
YWJsZScsIHRydWUpOworc2hvdWxkQmUoJ2Fsd2F5c09uZURlc2NyaXB0b3IuZW51bWVyYWJsZScs
IGZhbHNlKTsgLy8gQWN0dWFsbHkgaXQgaXMuCiB2YXIgY2FudEZpbmREZXNjcmlwdG9yID0gT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihNeU9iamVjdCwgImNhbnRGaW5kIik7CiBzaG91
bGRCZSgndHlwZW9mIGNhbnRGaW5kRGVzY3JpcHRvcicsICJvYmplY3QiKTsKIHNob3VsZEJlKCdj
YW50RmluZERlc2NyaXB0b3IudmFsdWUnLCBNeU9iamVjdC5jYW50RmluZCk7CiBzaG91bGRCZSgn
Y2FudEZpbmREZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZScsIHRydWUpOwotc2hvdWxkQmUoJ2NhbnRG
aW5kRGVzY3JpcHRvci5lbnVtZXJhYmxlJywgdHJ1ZSk7CitzaG91bGRCZSgnY2FudEZpbmREZXNj
cmlwdG9yLmVudW1lcmFibGUnLCBmYWxzZSk7CiB0cnkgewogICAgIC8vIElmIGdldE93blByb3Bl
cnR5RGVzY3JpcHRvcigpIHJldHVybmVkIGFuIGFjY2VzcyBkZXNjcmlwdG9yLCB0aGlzIHdvdWxk
bid0IHRocm93LgogICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTXlPYmplY3Qs
ICJ0aHJvd09uR2V0Iik7CkBAIC0xNjAsNyArMTYwLDcgQEAgdmFyIG15UHJvcGVydHlOYW1lRGVz
Y3JpcHRvciA9IE9iamVjdC5nZQogc2hvdWxkQmUoJ3R5cGVvZiBteVByb3BlcnR5TmFtZURlc2Ny
aXB0b3InLCAib2JqZWN0Iik7CiBzaG91bGRCZSgnbXlQcm9wZXJ0eU5hbWVEZXNjcmlwdG9yLnZh
bHVlJywgTXlPYmplY3QubXlQcm9wZXJ0eU5hbWUpOwogc2hvdWxkQmUoJ215UHJvcGVydHlOYW1l
RGVzY3JpcHRvci5jb25maWd1cmFibGUnLCB0cnVlKTsKLXNob3VsZEJlKCdteVByb3BlcnR5TmFt
ZURlc2NyaXB0b3IuZW51bWVyYWJsZScsIHRydWUpOworc2hvdWxkQmUoJ215UHJvcGVydHlOYW1l
RGVzY3JpcHRvci5lbnVtZXJhYmxlJywgZmFsc2UpOyAvLyBBY3R1YWxseSBpdCBpcy4KIHRyeSB7
CiAgICAgLy8gaWYgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKCkgcmV0dXJuZWQgYW4gYWNjZXNz
IGRlc2NyaXB0b3IsIHRoaXMgd291bGRuJ3QgdGhyb3cuCiAgICAgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihNeU9iamVjdCwgImhhc1Byb3BlcnR5TGllIik7CkBAIC0yNDcsMjMgKzI0
NywyMyBAQCB2YXIgYmFzZUR1cERlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvCiBzaG91bGRC
ZSgndHlwZW9mIGJhc2VEdXBEZXNjcmlwdG9yJywgIm9iamVjdCIpOwogc2hvdWxkQmUoJ2Jhc2VE
dXBEZXNjcmlwdG9yLnZhbHVlJywgZGVyaXZlZC5iYXNlRHVwKTsKIHNob3VsZEJlKCdiYXNlRHVw
RGVzY3JpcHRvci5jb25maWd1cmFibGUnLCB0cnVlKTsKLXNob3VsZEJlKCdiYXNlRHVwRGVzY3Jp
cHRvci5lbnVtZXJhYmxlJywgdHJ1ZSk7CitzaG91bGRCZSgnYmFzZUR1cERlc2NyaXB0b3IuZW51
bWVyYWJsZScsIGZhbHNlKTsKIHZhciBiYXNlT25seURlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGRlcml2ZWQsICJiYXNlT25seSIpOwogc2hvdWxkQmUoJ3R5cGVv
ZiBiYXNlT25seURlc2NyaXB0b3InLCAib2JqZWN0Iik7CiBzaG91bGRCZSgnYmFzZU9ubHlEZXNj
cmlwdG9yLnZhbHVlJywgZGVyaXZlZC5iYXNlT25seSk7CiBzaG91bGRCZSgnYmFzZU9ubHlEZXNj
cmlwdG9yLmNvbmZpZ3VyYWJsZScsIHRydWUpOwotc2hvdWxkQmUoJ2Jhc2VPbmx5RGVzY3JpcHRv
ci5lbnVtZXJhYmxlJywgdHJ1ZSk7CitzaG91bGRCZSgnYmFzZU9ubHlEZXNjcmlwdG9yLmVudW1l
cmFibGUnLCBmYWxzZSk7CiBzaG91bGRCZSgnT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihkZXJpdmVkLCAicHJvdG9Pbmx5IiknLCB1bmRlZmluZWQpOwogdmFyIHByb3RvRHVwRGVzY3Jp
cHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZGVyaXZlZCwgInByb3RvRHVw
Iik7CiBzaG91bGRCZSgndHlwZW9mIHByb3RvRHVwRGVzY3JpcHRvcicsICJvYmplY3QiKTsKIHNo
b3VsZEJlKCdwcm90b0R1cERlc2NyaXB0b3IudmFsdWUnLCBkZXJpdmVkLnByb3RvRHVwKTsKIHNo
b3VsZEJlKCdwcm90b0R1cERlc2NyaXB0b3IuY29uZmlndXJhYmxlJywgdHJ1ZSk7Ci1zaG91bGRC
ZSgncHJvdG9EdXBEZXNjcmlwdG9yLmVudW1lcmFibGUnLCB0cnVlKTsKK3Nob3VsZEJlKCdwcm90
b0R1cERlc2NyaXB0b3IuZW51bWVyYWJsZScsIGZhbHNlKTsKIHZhciBkZXJpdmVkT25seURlc2Ny
aXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGRlcml2ZWQsICJkZXJpdmVk
T25seSIpOwogc2hvdWxkQmUoJ3R5cGVvZiBkZXJpdmVkT25seURlc2NyaXB0b3InLCAib2JqZWN0
Iik7CiBzaG91bGRCZSgnZGVyaXZlZE9ubHlEZXNjcmlwdG9yLnZhbHVlJywgZGVyaXZlZC5kZXJp
dmVkT25seSk7CiBzaG91bGRCZSgnZGVyaXZlZE9ubHlEZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZScs
IHRydWUpOwotc2hvdWxkQmUoJ2Rlcml2ZWRPbmx5RGVzY3JpcHRvci5lbnVtZXJhYmxlJywgdHJ1
ZSk7CitzaG91bGRCZSgnZGVyaXZlZE9ubHlEZXNjcmlwdG9yLmVudW1lcmFibGUnLCBmYWxzZSk7
CiAKIHNob3VsZEJlKCJ1bmRlZmluZWQgaW5zdGFuY2VvZiBNeU9iamVjdCIsIGZhbHNlKTsKIEV2
aWxFeGNlcHRpb25PYmplY3QuaGFzSW5zdGFuY2UgPSBmdW5jdGlvbiBmKCkgeyByZXR1cm4gZigp
OyB9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAko
cmV2aXNpb24gMjcxNjg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmpl
Y3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTk4LDcgKzE5OTgsOCBAQCBib29sIEpTT2JqZWN0
OjpoYXNFbnVtZXJhYmxlUHJvcGVydHkoSlNHCiAgICAgUHJvcGVydHlTbG90IHNsb3QodGhpcywg
UHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OkdldE93blByb3BlcnR5KTsKICAgICBi
b29sIGhhc1Byb3BlcnR5ID0gY29uc3RfY2FzdDxKU09iamVjdCo+KHRoaXMpLT5nZXRQcm9wZXJ0
eVNsb3QoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIGZhbHNlKTsKLSAgICByZXR1cm4gaGFzUHJvcGVydHkgJiYgIShzbG90
LmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CisgICAgYm9vbCBy
ZXBvcnRBc0VudW1lcmFibGUgPSAhKHNsb3QuYXR0cmlidXRlcygpICYgUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKSB8fCBzdHJ1Y3R1cmUodm0pLT50eXBlSW5mbygpLmdldE93blByb3BlcnR5
U2xvdElzV3JvbmdBYm91dERvbnRFbnVtKCk7CisgICAgcmV0dXJuIGhhc1Byb3BlcnR5ICYmIHJl
cG9ydEFzRW51bWVyYWJsZTsKIH0KIAogYm9vbCBKU09iamVjdDo6aGFzRW51bWVyYWJsZVByb3Bl
cnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSkg
Y29uc3QKQEAgLTIwMDgsNyArMjAwOSw4IEBAIGJvb2wgSlNPYmplY3Q6Omhhc0VudW1lcmFibGVQ
cm9wZXJ0eShKU0cKICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCh0aGlzLCBQcm9wZXJ0eVNsb3Q6Oklu
dGVybmFsTWV0aG9kVHlwZTo6R2V0T3duUHJvcGVydHkpOwogICAgIGJvb2wgaGFzUHJvcGVydHkg
PSBjb25zdF9jYXN0PEpTT2JqZWN0Kj4odGhpcyktPmdldFByb3BlcnR5U2xvdChnbG9iYWxPYmpl
Y3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
ZmFsc2UpOwotICAgIHJldHVybiBoYXNQcm9wZXJ0eSAmJiAhKHNsb3QuYXR0cmlidXRlcygpICYg
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKKyAgICBib29sIHJlcG9ydEFzRW51bWVyYWJs
ZSA9ICEoc2xvdC5hdHRyaWJ1dGVzKCkgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pIHx8
IHN0cnVjdHVyZSh2bSktPnR5cGVJbmZvKCkuZ2V0T3duUHJvcGVydHlTbG90SXNXcm9uZ0Fib3V0
RG9udEVudW0oKTsKKyAgICByZXR1cm4gaGFzUHJvcGVydHkgJiYgcmVwb3J0QXNFbnVtZXJhYmxl
OwogfQogCiAvLyBFQ01BIDguNi4yLjUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTVHlwZUluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1R5cGVJbmZvLmgJKHJldmlzaW9uIDI3MTY4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTVHlwZUluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtNTksNiArNTksNyBA
QCBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIEludGVyY2VwdHNHZXRPCiBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIFN0cnVjdHVyZUlzSW1tb3J0YWwgPSAxIDw8IDE3Owogc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBIYXNQdXRQcm9wZXJ0eVNlY3VyaXR5Q2hlY2sgPSAxIDw8IDE4Owogc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBPdmVycmlkZXNHZXRQcm90b3R5cGUgPSAxIDw8IDE5Owor
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBHZXRPd25Qcm9wZXJ0eVNsb3RJc1dyb25nQWJvdXRE
b250RW51bSA9IDEgPDwgMjA7CiAKIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZJ
bmxpbmVCaXRzID0gODsKIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgT3ZlcnJpZGVzR2V0UHJv
dG90eXBlT3V0T2ZMaW5lID0gT3ZlcnJpZGVzR2V0UHJvdG90eXBlID4+IG51bWJlck9mSW5saW5l
Qml0czsKQEAgLTEwNSw2ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBwcm9oaWJpdHNQcm9w
ZXJ0eUNhY2hpbmcoKSBjb25zdCB7IHJldHVybiBpc1NldE9uRmxhZ3MyPFByb2hpYml0c1Byb3Bl
cnR5Q2FjaGluZz4oKTsgfQogICAgIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmUoKSBj
b25zdCB7IHJldHVybiBpc1NldE9uRmxhZ3MyPEdldE93blByb3BlcnR5U2xvdElzSW1wdXJlPigp
OyB9CiAgICAgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5j
ZSgpIGNvbnN0IHsgcmV0dXJuIGlzU2V0T25GbGFnczI8R2V0T3duUHJvcGVydHlTbG90SXNJbXB1
cmVGb3JQcm9wZXJ0eUFic2VuY2U+KCk7IH0KKyAgICBib29sIGdldE93blByb3BlcnR5U2xvdElz
V3JvbmdBYm91dERvbnRFbnVtKCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMjxHZXRPd25Q
cm9wZXJ0eVNsb3RJc1dyb25nQWJvdXREb250RW51bT4oKTsgfQogICAgIGJvb2wgaGFzUHV0UHJv
cGVydHlTZWN1cml0eUNoZWNrKCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMjxIYXNQdXRQ
cm9wZXJ0eVNlY3VyaXR5Q2hlY2s+KCk7IH0KICAgICBib29sIG5ld0ltcHVyZVByb3BlcnR5Rmly
ZXNXYXRjaHBvaW50cygpIGNvbnN0IHsgcmV0dXJuIGlzU2V0T25GbGFnczI8TmV3SW1wdXJlUHJv
cGVydHlGaXJlc1dhdGNocG9pbnRzPigpOyB9CiAgICAgYm9vbCBpc0ltbXV0YWJsZVByb3RvdHlw
ZUV4b3RpY09iamVjdCgpIGNvbnN0IHsgcmV0dXJuIGlzU2V0T25GbGFnczI8SXNJbW11dGFibGVQ
cm90b3R5cGVFeG90aWNPYmplY3Q+KCk7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MTY4
OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE4IEBACisyMDIxLTAxLTIxICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNv
bT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjcwODc0KTogU29tZSBSZWFjdCBOYXRpdmUgYXBw
cyBhcmUgcmVwb3J0ZWQgYnJva2VuIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwODA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXIt
Y2xhc3Nlcy1vYmpjLmh0bWwKKworICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5LmNwcDoK
KyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAg
ICAoSlNDOjpSdW50aW1lQXJyYXk6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgpOgorICAgICAg
ICAqIGJyaWRnZS9ydW50aW1lX2FycmF5Lmg6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2Jq
ZWN0Lmg6CisKIDIwMjEtMDEtMjEgIEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgog
CiAgICAgICAgIFVwZGF0ZSBmb250IHdoZW4gcmVzb2x2aW5nIGxldHRlci1zcGFjaW5nOiBjYWxj
KC4uLikgdmFsdWVzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3Bw
CShyZXZpc2lvbiAyNzE2ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJh
eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMCw3ICsxMDAsNyBAQCBib29sIFJ1bnRpbWVBcnJh
eTo6Z2V0T3duUHJvcGVydHlTbG90KEpTCiAgICAgCiAgICAgT3B0aW9uYWw8dWludDMyX3Q+IGlu
ZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpOwogICAgIGlmIChpbmRleCAmJiBpbmRleC52
YWx1ZSgpIDwgdGhpc09iamVjdC0+Z2V0TGVuZ3RoKCkpIHsKLSAgICAgICAgc2xvdC5zZXRWYWx1
ZSh0aGlzT2JqZWN0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnREZWxldGUpLAorICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFByb3BlcnR5QXR0
cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtLAogICAgICAg
ICAgICAgdGhpc09iamVjdC0+Z2V0Q29uY3JldGVBcnJheSgpLT52YWx1ZUF0KGxleGljYWxHbG9i
YWxPYmplY3QsIGluZGV4LnZhbHVlKCkpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpA
QCAtMTEyLDcgKzExMiw3IEBAIGJvb2wgUnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RC
eUkKIHsKICAgICBSdW50aW1lQXJyYXkqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8UnVudGltZUFycmF5
Kj4ob2JqZWN0KTsKICAgICBpZiAoaW5kZXggPCB0aGlzT2JqZWN0LT5nZXRMZW5ndGgoKSkgewot
ICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSksCisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhp
c09iamVjdCwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0sCiAgICAgICAgICAgICB0aGlzT2JqZWN0LT5nZXRDb25jcmV0ZUFycmF5KCkt
PnZhbHVlQXQobGV4aWNhbEdsb2JhbE9iamVjdCwgaW5kZXgpKTsKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCShyZXZp
c2lvbiAyNzE2ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgUnVu
dGltZUFycmF5IGZpbmFsIDogcHVibGljIEpTQXJyYXkgewogcHVibGljOgogICAgIHVzaW5nIEJh
c2UgPSBKU0FycmF5OwotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8
IE92ZXJyaWRlc0dldE93blByb3BlcnR5TmFtZXMgfCBJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlT
bG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvOworICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRl
c0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5TmFtZXMgfCBJbnRl
cmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwg
R2V0T3duUHJvcGVydHlTbG90SXNXcm9uZ0Fib3V0RG9udEVudW07CiAgICAgc3RhdGljIGNvbnN0
ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwogCiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgQ2VsbFR5cGUsIEpTQzo6U3Vic3BhY2VBY2Nlc3M+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9vYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9vYmplY3QuaAkocmV2aXNpb24gMjcxNjg5KQorKysgU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAg
RXhjZXB0aW9uKiB0aHJvd1J1bnRpbWVPYmplY3RJbnZhbGlkQWNjZQogY2xhc3MgV0VCQ09SRV9F
WFBPUlQgUnVudGltZU9iamVjdCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoK
ICAgICB1c2luZyBCYXNlID0gSlNOb25GaW5hbE9iamVjdDsKLSAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlk
ZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eU5hbWVzIHwgT3Zl
cnJpZGVzR2V0Q2FsbERhdGE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlT
bG90IHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlOYW1lcyB8IE92ZXJyaWRlc0dldENhbGxEYXRh
IHwgR2V0T3duUHJvcGVydHlTbG90SXNXcm9uZ0Fib3V0RG9udEVudW07CiAgICAgc3RhdGljIGNv
bnN0ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwogCiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgQ2VsbFR5cGUsIEpTQzo6U3Vic3BhY2VBY2Nlc3M+CkluZGV4OiBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNp
b24gMjcxNjg5KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxMiBAQAorMjAyMS0wMS0yMSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBn
bWFpbC5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI3MDg3NCk6IFNvbWUgUmVhY3QgTmF0
aXZlIGFwcHMgYXJlIHJlcG9ydGVkIGJyb2tlbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDgwOQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L0pTTlBPYmplY3QuaDoKKwogMjAyMS0wMS0yMSAgRGF2ZSBCbGFuY2hhcmQgIDxkYXZlQGdyb3cu
Z2FtZT4KIAogICAgICAgICBNaXNzaW5nIGhlYWRlciBndGsvZ3RrLmggaW4gUG9pbnRlckxvY2tN
YW5hZ2VyWDExLmNwcApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvSlNOUE9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAkocmV2aXNpb24gMjcxNjg5KQorKysgU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBAIGNsYXNzIE5QUnVudGltZU9iamVjdE1hcDsKIGNs
YXNzIEpTTlBPYmplY3QgZmluYWwgOiBwdWJsaWMgSlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCB7
CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3Q7Ci0g
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJy
aWRlc0dldE93blByb3BlcnR5TmFtZXMgfCBKU0M6Ok92ZXJyaWRlc0dldENhbGxEYXRhOworICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1
cmVGbGFncyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlk
ZXNHZXRPd25Qcm9wZXJ0eU5hbWVzIHwgSlNDOjpPdmVycmlkZXNHZXRDYWxsRGF0YSB8IEpTQzo6
R2V0T3duUHJvcGVydHlTbG90SXNXcm9uZ0Fib3V0RG9udEVudW07CiAKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBDZWxsVHlwZSwgSlNDOjpTdWJzcGFjZUFjY2Vzcz4KICAgICBzdGF0aWMgSlNDOjpJ
c29TdWJzcGFjZSogc3Vic3BhY2VGb3IoSlNDOjpWTSYgdm0pCkluZGV4OiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAy
NzE2ODkpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxMyBAQAorMjAyMS0wMS0yMSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5j
b20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI3MDg3NCk6IFNvbWUgUmVhY3QgTmF0aXZlIGFw
cHMgYXJlIHJlcG9ydGVkIGJyb2tlbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDgwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xh
c3Nlcy1vYmpjLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9kb20v
d3JhcHBlci1jbGFzc2VzLW9iamMuaHRtbDoKKwogMjAyMS0wMS0yMSAgRnJlZGVyaWMgV2FuZyAg
PGZ3YW5nQGlnYWxpYS5jb20+CiAKICAgICAgICAgVXBkYXRlIGZvbnQgd2hlbiByZXNvbHZpbmcg
bGV0dGVyLXNwYWNpbmc6IGNhbGMoLi4uKSB2YWx1ZXMKSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtb2JqYy1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nl
cy1vYmpjLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjcxNjg5KQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1vYmpjLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMTg5LDcgKzE4OSw3IEBAIFBBU1MgdHlwZW9mIG9iakNPYmplY3RPZkNs
YXNzKCdOU0NGU3RyaW4KIFBBU1MgdHlwZW9mIG9iakNPYmplY3RPZkNsYXNzKCdXZWJTY3JpcHRP
YmplY3QnKSBpcyAnb2JqZWN0JwogUEFTUyBvYmpDT2JqZWN0T2ZDbGFzcygnTlNBcnJheScpIGlu
c3RhbmNlb2YgQXJyYXkgaXMgdHJ1ZQogUEFTUyBjb25jYXRlbmF0ZUFycmF5KG9iakNBcnJheU9m
U3RyaW5nKCkpIGlzICdvbmV0d290aHJlZScKLVBBU1Mgb2JqQ0FycmF5T2ZTdHJpbmcoKS5ldmVy
eSgoXywgaSwgYXJyKSA9PiBhcnIucHJvcGVydHlJc0VudW1lcmFibGUoaSkpIGlzIHRydWUKK1BB
U1Mgb2JqQ0FycmF5T2ZTdHJpbmcoKS5ldmVyeSgoXywgaSwgYXJyKSA9PiAhYXJyLnByb3BlcnR5
SXNFbnVtZXJhYmxlKGkpKSBpcyB0cnVlCiBQQVNTIGxldCBhcnIgPSBvYmpDQXJyYXlPZlN0cmlu
ZygpOyBhcnIubGVuZ3RoIGlzIDMKIFBBU1MgbGV0IGFyciA9IG9iakNBcnJheU9mU3RyaW5nKCk7
IGFyci5sZW5ndGggPSAwIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiBSYW5nZSBlcnJvci4K
IFBBU1MgbGV0IGFyciA9IG9iakNBcnJheU9mU3RyaW5nKCk7IGFyci5sZW5ndGggPSA1IHRocmV3
IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiBSYW5nZSBlcnJvci4KSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtb2JqYy5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtb2Jq
Yy5odG1sCShyZXZpc2lvbiAyNzE2ODkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9kb20vd3JhcHBlci1jbGFzc2VzLW9iamMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjg2LDcg
KzI4Niw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogICAgIHNob3VsZEJlVHJ1ZSgib2JqQ09iamVj
dE9mQ2xhc3MoJ05TQXJyYXknKSBpbnN0YW5jZW9mIEFycmF5Iik7CiAKICAgICBzaG91bGRCZSgi
Y29uY2F0ZW5hdGVBcnJheShvYmpDQXJyYXlPZlN0cmluZygpKSIsICInb25ldHdvdGhyZWUnIik7
Ci0gICAgc2hvdWxkQmVUcnVlKCJvYmpDQXJyYXlPZlN0cmluZygpLmV2ZXJ5KChfLCBpLCBhcnIp
ID0+IGFyci5wcm9wZXJ0eUlzRW51bWVyYWJsZShpKSkiKTsKKyAgICBzaG91bGRCZVRydWUoIm9i
akNBcnJheU9mU3RyaW5nKCkuZXZlcnkoKF8sIGksIGFycikgPT4gIWFyci5wcm9wZXJ0eUlzRW51
bWVyYWJsZShpKSkiKTsKIAogICAgIHNob3VsZEJlKCJsZXQgYXJyID0gb2JqQ0FycmF5T2ZTdHJp
bmcoKTsgYXJyLmxlbmd0aCIsICIzIik7CiAgICAgc2hvdWxkVGhyb3coImxldCBhcnIgPSBvYmpD
QXJyYXlPZlN0cmluZygpOyBhcnIubGVuZ3RoID0gMCIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418064</attachid>
            <date>2021-01-21 11:10:50 -0800</date>
            <delta_ts>2021-01-25 17:27:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220809-20210121211048.patch</filename>
            <type>text/plain</type>
            <size>19394</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjcxNjk4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBA
CisyMDIxLTAxLTIxICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKwor
ICAgICAgICBSRUdSRVNTSU9OIChyMjcwODc0KTogU29tZSBSZWFjdCBOYXRpdmUgYXBwcyBhcmUg
cmVwb3J0ZWQgYnJva2VuIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIwODA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgcjI3MDg3NCBmaXhlZCBmb3IvaW4gc2hhZG93aW5nIGlzc3VlIGJ5IGlu
dHJvZHVjaW5nIGFuIGludmFyaWFudDogYWxsIHByb3BlcnRpZXMKKyAgICAgICAgcmV0dXJuZWQg
YnkgZ2V0T3duKlByb3BlcnR5TmFtZXMoKSBpbiBEb250RW51bVByb3BlcnRpZXNNb2RlOjpFeGNs
dWRlIHNob3VsZCBiZQorICAgICAgICByZXBvcnRlZCBhcyBbW0VudW1lcmFibGVdXSBieSBnZXRP
d25Qcm9wZXJ0eVNsb3QoKS4gT3RoZXJ3aXNlLCBmb3IvaW4gc2tpcHMgdGhlCisgICAgICAgIHBy
b3BlcnR5LCB3aGljaCBhbG1vc3QgY2VydGFpbmx5IGNhdXNlcyB0aGUgYXBwcyB0byBicmVhay4K
KworICAgICAgICBTaW5jZSB0aGVyZSBpcyBubyB3YXkgdG8gZW5mb3JjZSB0aGlzIGludmFyaWFu
dCBmb3Igb3BhcXVlIEFQSSBvYmplY3RzIGxpa2UKKyAgICAgICAgSlNDYWxsYmFja09iamVjdCwg
dGhpcyBjaGFuZ2Ugc2tpcHMgW1tFbnVtZXJhYmxlXV0gY2hlY2sgZm9yIHRoZW0gYnkgaW50cm9k
dWNpbmcKKyAgICAgICAgR2V0T3duUHJvcGVydHlTbG90SXNXcm9uZ0Fib3V0RG9udEVudW0gb3V0
IG9mIGxpbmUgdHlwZSBpbmZvIGZsYWcuCisKKyAgICAgICAgQWxzbywgdGhpcyBwYXRjaCByZXZl
cnRzIGFsbCBjaGFuZ2VzIHRvIGdldE93blByb3BlcnR5U2xvdCgpIG92ZXJyaWRlcyBvZiByMjcw
ODc0CisgICAgICAgIHNpbmNlIHRob3NlIGFyZSBvYnNlcnZhYmxlIChlLmcuIHByb3BlcnR5SXNF
bnVtZXJhYmxlKCkpIGFuZCBubyBsb25nZXIgbmVjZXNzYXJ5LgorCisgICAgICAgICogQVBJL0pT
Q2FsbGJhY2tPYmplY3QuaDoKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9u
cy5oOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OmdldE93blByb3Bl
cnR5U2xvdCk6CisgICAgICAgICogQVBJL3Rlc3RzL3Rlc3RhcGlTY3JpcHRzL3Rlc3RhcGkuanM6
CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0
OjpoYXNFbnVtZXJhYmxlUHJvcGVydHkgY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNUeXBl
SW5mby5oOgorICAgICAgICAoSlNDOjpUeXBlSW5mbzo6Z2V0T3duUHJvcGVydHlTbG90SXNXcm9u
Z0Fib3V0RG9udEVudW0gY29uc3QpOgorCiAyMDIxLTAxLTE5ICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IEdDQyB3YXJuaW5ncwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgJKHJl
dmlzaW9uIDI3MTY4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09i
amVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjUsNyArMTI1LDcgQEAgdGVtcGxhdGUgPGNsYXNz
IFBhcmVudD4KIGNsYXNzIEpTQ2FsbGJhY2tPYmplY3QgZmluYWwgOiBwdWJsaWMgUGFyZW50IHsK
IHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gUGFyZW50OwotICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRl
c0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldE93blNwZWNpYWxQcm9wZXJ0eU5hbWVz
IHwgT3ZlcnJpZGVzR2V0Q2FsbERhdGEgfCBJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgUHJv
aGliaXRzUHJvcGVydHlDYWNoaW5nOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdCB8IE92ZXJyaWRlc0dldE93blNwZWNpYWxQcm9wZXJ0eU5hbWVzIHwgT3ZlcnJpZGVz
R2V0Q2FsbERhdGEgfCBJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVu
TGVuZ3RoSXNOb3RaZXJvIHwgSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgUHJvaGliaXRzUHJvcGVy
dHlDYWNoaW5nIHwgR2V0T3duUHJvcGVydHlTbG90SXNXcm9uZ0Fib3V0RG9udEVudW07CiAgICAg
c3RhdGljX2Fzc2VydCghKFN0cnVjdHVyZUZsYWdzICYgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0
YW5jZSksICJ1c2luZyBjdXN0b21IYXNJbnN0YW5jZSIpOwogCiAgICAgfkpTQ2FsbGJhY2tPYmpl
Y3QoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1
bmN0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja09iamVjdEZ1bmN0aW9ucy5oCShyZXZpc2lvbiAyNzE2ODkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAkod29ya2luZyBjb3B5KQpA
QCAtMTYyLDkgKzE2Miw3IEBAIGJvb2wgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpnZXRPd25Q
cm8KICAgICBSZWZQdHI8T3BhcXVlSlNTdHJpbmc+IHByb3BlcnR5TmFtZVJlZjsKICAgICAKICAg
ICBpZiAoU3RyaW5nSW1wbCogbmFtZSA9IHByb3BlcnR5TmFtZS51aWQoKSkgewotICAgICAgICAv
LyBGSVhNRTogU2V0IFJlYWRPbmx5IGNvbmRpdGlvbmFsbHksIGJhc2VkIG9uIHNldFByb3BlcnR5
IHByZXNlbmNlIGluIGNsYXNzIGluaGVyaXRhbmNlIGNoYWluLgotICAgICAgICAvLyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5OTI0Ci0gICAgICAgIHVuc2lnbmVk
IGF0dHJpYnV0ZXMgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OlJl
YWRPbmx5KTsKKyAgICAgICAgdW5zaWduZWQgYXR0cmlidXRlcyA9IFByb3BlcnR5QXR0cmlidXRl
OjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bTsKICAgICAgICAgZm9yIChK
U0NsYXNzUmVmIGpzQ2xhc3MgPSB0aGlzT2JqZWN0LT5jbGFzc1JlZigpOyBqc0NsYXNzOyBqc0Ns
YXNzID0ganNDbGFzcy0+cGFyZW50Q2xhc3MpIHsKICAgICAgICAgICAgIC8vIG9wdGlvbmFsIG9w
dGltaXphdGlvbiB0byBieXBhc3MgZ2V0UHJvcGVydHkgaW4gY2FzZXMgd2hlbiB3ZSBvbmx5IG5l
ZWQgdG8ga25vdyBpZiB0aGUgcHJvcGVydHkgZXhpc3RzCiAgICAgICAgICAgICBpZiAoSlNPYmpl
Y3RIYXNQcm9wZXJ0eUNhbGxiYWNrIGhhc1Byb3BlcnR5ID0ganNDbGFzcy0+aGFzUHJvcGVydHkp
IHsKQEAgLTE5NiwyMSArMTk0LDE5IEBAIGJvb2wgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+Ojpn
ZXRPd25Qcm8KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKE9w
YXF1ZUpTQ2xhc3NTdGF0aWNWYWx1ZXNUYWJsZSogc3RhdGljVmFsdWVzID0ganNDbGFzcy0+c3Rh
dGljVmFsdWVzKGdsb2JhbE9iamVjdCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoU3RhdGljVmFs
dWVFbnRyeSogZW50cnkgPSBzdGF0aWNWYWx1ZXMtPmdldChuYW1lKSkgewotICAgICAgICAgICAg
ICAgICAgICAvLyBGSVhNRTogZ2V0U3RhdGljVmFsdWUoKSBwZXJmb3JtcyB0aGUgc2FtZSBsb29w
ICYgY2hlY2tzIGp1c3QgdG8gYWNxdWlyZSBgZW50cnlgLgotICAgICAgICAgICAgICAgICAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5OTI1CisgICAgICAg
ICAgICAgICAgaWYgKHN0YXRpY1ZhbHVlcy0+Y29udGFpbnMobmFtZSkpIHsKICAgICAgICAgICAg
ICAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IHRoaXNPYmplY3QtPmdldFN0YXRpY1ZhbHVlKGdsb2Jh
bE9iamVjdCwgcHJvcGVydHlOYW1lKTsKICAgICAgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgZmFsc2UpOwogICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgZW50cnkt
PmF0dHJpYnV0ZXMsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNsb3Quc2V0VmFs
dWUodGhpc09iamVjdCwgYXR0cmlidXRlcywgdmFsdWUpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChPcGFxdWVKU0Ns
YXNzU3RhdGljRnVuY3Rpb25zVGFibGUqIHN0YXRpY0Z1bmN0aW9ucyA9IGpzQ2xhc3MtPnN0YXRp
Y0Z1bmN0aW9ucyhnbG9iYWxPYmplY3QpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKFN0YXRpY0Z1
bmN0aW9uRW50cnkqIGVudHJ5ID0gc3RhdGljRnVuY3Rpb25zLT5nZXQobmFtZSkpIHsKLSAgICAg
ICAgICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgZW50cnktPmF0dHJpYnV0
ZXMsIGdldFN0YXRpY0Z1bmN0aW9uR2V0dGVyKCkpOworICAgICAgICAgICAgICAgIGlmIChzdGF0
aWNGdW5jdGlvbnMtPmNvbnRhaW5zKG5hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgIHNsb3Qu
c2V0Q3VzdG9tKHRoaXNPYmplY3QsIGF0dHJpYnV0ZXMsIGdldFN0YXRpY0Z1bmN0aW9uR2V0dGVy
KCkpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rl
c3RhcGlTY3JpcHRzL3Rlc3RhcGkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS90ZXN0cy90ZXN0YXBpU2NyaXB0cy90ZXN0YXBpLmpzCShyZXZpc2lvbiAyNzE2ODkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGlTY3JpcHRzL3Rlc3Rh
cGkuanMJKHdvcmtpbmcgY29weSkKQEAgLTE0NCwxMiArMTQ0LDEyIEBAIHZhciBhbHdheXNPbmVE
ZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blAKIHNob3VsZEJlKCd0eXBlb2YgYWx3YXlzT25lRGVz
Y3JpcHRvcicsICJvYmplY3QiKTsKIHNob3VsZEJlKCdhbHdheXNPbmVEZXNjcmlwdG9yLnZhbHVl
JywgTXlPYmplY3QuYWx3YXlzT25lKTsKIHNob3VsZEJlKCdhbHdheXNPbmVEZXNjcmlwdG9yLmNv
bmZpZ3VyYWJsZScsIHRydWUpOwotc2hvdWxkQmUoJ2Fsd2F5c09uZURlc2NyaXB0b3IuZW51bWVy
YWJsZScsIHRydWUpOworc2hvdWxkQmUoJ2Fsd2F5c09uZURlc2NyaXB0b3IuZW51bWVyYWJsZScs
IGZhbHNlKTsgLy8gQWN0dWFsbHkgaXQgaXMuCiB2YXIgY2FudEZpbmREZXNjcmlwdG9yID0gT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihNeU9iamVjdCwgImNhbnRGaW5kIik7CiBzaG91
bGRCZSgndHlwZW9mIGNhbnRGaW5kRGVzY3JpcHRvcicsICJvYmplY3QiKTsKIHNob3VsZEJlKCdj
YW50RmluZERlc2NyaXB0b3IudmFsdWUnLCBNeU9iamVjdC5jYW50RmluZCk7CiBzaG91bGRCZSgn
Y2FudEZpbmREZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZScsIHRydWUpOwotc2hvdWxkQmUoJ2NhbnRG
aW5kRGVzY3JpcHRvci5lbnVtZXJhYmxlJywgdHJ1ZSk7CitzaG91bGRCZSgnY2FudEZpbmREZXNj
cmlwdG9yLmVudW1lcmFibGUnLCBmYWxzZSk7CiB0cnkgewogICAgIC8vIElmIGdldE93blByb3Bl
cnR5RGVzY3JpcHRvcigpIHJldHVybmVkIGFuIGFjY2VzcyBkZXNjcmlwdG9yLCB0aGlzIHdvdWxk
bid0IHRocm93LgogICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTXlPYmplY3Qs
ICJ0aHJvd09uR2V0Iik7CkBAIC0xNjAsNyArMTYwLDcgQEAgdmFyIG15UHJvcGVydHlOYW1lRGVz
Y3JpcHRvciA9IE9iamVjdC5nZQogc2hvdWxkQmUoJ3R5cGVvZiBteVByb3BlcnR5TmFtZURlc2Ny
aXB0b3InLCAib2JqZWN0Iik7CiBzaG91bGRCZSgnbXlQcm9wZXJ0eU5hbWVEZXNjcmlwdG9yLnZh
bHVlJywgTXlPYmplY3QubXlQcm9wZXJ0eU5hbWUpOwogc2hvdWxkQmUoJ215UHJvcGVydHlOYW1l
RGVzY3JpcHRvci5jb25maWd1cmFibGUnLCB0cnVlKTsKLXNob3VsZEJlKCdteVByb3BlcnR5TmFt
ZURlc2NyaXB0b3IuZW51bWVyYWJsZScsIHRydWUpOworc2hvdWxkQmUoJ215UHJvcGVydHlOYW1l
RGVzY3JpcHRvci5lbnVtZXJhYmxlJywgZmFsc2UpOyAvLyBBY3R1YWxseSBpdCBpcy4KIHRyeSB7
CiAgICAgLy8gaWYgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKCkgcmV0dXJuZWQgYW4gYWNjZXNz
IGRlc2NyaXB0b3IsIHRoaXMgd291bGRuJ3QgdGhyb3cuCiAgICAgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihNeU9iamVjdCwgImhhc1Byb3BlcnR5TGllIik7CkBAIC0yNDcsMjMgKzI0
NywyMyBAQCB2YXIgYmFzZUR1cERlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvCiBzaG91bGRC
ZSgndHlwZW9mIGJhc2VEdXBEZXNjcmlwdG9yJywgIm9iamVjdCIpOwogc2hvdWxkQmUoJ2Jhc2VE
dXBEZXNjcmlwdG9yLnZhbHVlJywgZGVyaXZlZC5iYXNlRHVwKTsKIHNob3VsZEJlKCdiYXNlRHVw
RGVzY3JpcHRvci5jb25maWd1cmFibGUnLCB0cnVlKTsKLXNob3VsZEJlKCdiYXNlRHVwRGVzY3Jp
cHRvci5lbnVtZXJhYmxlJywgdHJ1ZSk7CitzaG91bGRCZSgnYmFzZUR1cERlc2NyaXB0b3IuZW51
bWVyYWJsZScsIGZhbHNlKTsKIHZhciBiYXNlT25seURlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGRlcml2ZWQsICJiYXNlT25seSIpOwogc2hvdWxkQmUoJ3R5cGVv
ZiBiYXNlT25seURlc2NyaXB0b3InLCAib2JqZWN0Iik7CiBzaG91bGRCZSgnYmFzZU9ubHlEZXNj
cmlwdG9yLnZhbHVlJywgZGVyaXZlZC5iYXNlT25seSk7CiBzaG91bGRCZSgnYmFzZU9ubHlEZXNj
cmlwdG9yLmNvbmZpZ3VyYWJsZScsIHRydWUpOwotc2hvdWxkQmUoJ2Jhc2VPbmx5RGVzY3JpcHRv
ci5lbnVtZXJhYmxlJywgdHJ1ZSk7CitzaG91bGRCZSgnYmFzZU9ubHlEZXNjcmlwdG9yLmVudW1l
cmFibGUnLCBmYWxzZSk7CiBzaG91bGRCZSgnT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihkZXJpdmVkLCAicHJvdG9Pbmx5IiknLCB1bmRlZmluZWQpOwogdmFyIHByb3RvRHVwRGVzY3Jp
cHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZGVyaXZlZCwgInByb3RvRHVw
Iik7CiBzaG91bGRCZSgndHlwZW9mIHByb3RvRHVwRGVzY3JpcHRvcicsICJvYmplY3QiKTsKIHNo
b3VsZEJlKCdwcm90b0R1cERlc2NyaXB0b3IudmFsdWUnLCBkZXJpdmVkLnByb3RvRHVwKTsKIHNo
b3VsZEJlKCdwcm90b0R1cERlc2NyaXB0b3IuY29uZmlndXJhYmxlJywgdHJ1ZSk7Ci1zaG91bGRC
ZSgncHJvdG9EdXBEZXNjcmlwdG9yLmVudW1lcmFibGUnLCB0cnVlKTsKK3Nob3VsZEJlKCdwcm90
b0R1cERlc2NyaXB0b3IuZW51bWVyYWJsZScsIGZhbHNlKTsKIHZhciBkZXJpdmVkT25seURlc2Ny
aXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGRlcml2ZWQsICJkZXJpdmVk
T25seSIpOwogc2hvdWxkQmUoJ3R5cGVvZiBkZXJpdmVkT25seURlc2NyaXB0b3InLCAib2JqZWN0
Iik7CiBzaG91bGRCZSgnZGVyaXZlZE9ubHlEZXNjcmlwdG9yLnZhbHVlJywgZGVyaXZlZC5kZXJp
dmVkT25seSk7CiBzaG91bGRCZSgnZGVyaXZlZE9ubHlEZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZScs
IHRydWUpOwotc2hvdWxkQmUoJ2Rlcml2ZWRPbmx5RGVzY3JpcHRvci5lbnVtZXJhYmxlJywgdHJ1
ZSk7CitzaG91bGRCZSgnZGVyaXZlZE9ubHlEZXNjcmlwdG9yLmVudW1lcmFibGUnLCBmYWxzZSk7
CiAKIHNob3VsZEJlKCJ1bmRlZmluZWQgaW5zdGFuY2VvZiBNeU9iamVjdCIsIGZhbHNlKTsKIEV2
aWxFeGNlcHRpb25PYmplY3QuaGFzSW5zdGFuY2UgPSBmdW5jdGlvbiBmKCkgeyByZXR1cm4gZigp
OyB9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAko
cmV2aXNpb24gMjcxNjg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmpl
Y3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTk4LDcgKzE5OTgsOSBAQCBib29sIEpTT2JqZWN0
OjpoYXNFbnVtZXJhYmxlUHJvcGVydHkoSlNHCiAgICAgUHJvcGVydHlTbG90IHNsb3QodGhpcywg
UHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OkdldE93blByb3BlcnR5KTsKICAgICBi
b29sIGhhc1Byb3BlcnR5ID0gY29uc3RfY2FzdDxKU09iamVjdCo+KHRoaXMpLT5nZXRQcm9wZXJ0
eVNsb3QoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIGZhbHNlKTsKLSAgICByZXR1cm4gaGFzUHJvcGVydHkgJiYgIShzbG90
LmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CisgICAgaWYgKCFo
YXNQcm9wZXJ0eSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiAhKHNsb3QuYXR0
cmlidXRlcygpICYgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSB8fCAoc2xvdC5zbG90QmFz
ZSgpICYmIHNsb3Quc2xvdEJhc2UoKS0+c3RydWN0dXJlKHZtKS0+dHlwZUluZm8oKS5nZXRPd25Q
cm9wZXJ0eVNsb3RJc1dyb25nQWJvdXREb250RW51bSgpKTsKIH0KIAogYm9vbCBKU09iamVjdDo6
aGFzRW51bWVyYWJsZVByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHVuc2ln
bmVkIHByb3BlcnR5TmFtZSkgY29uc3QKQEAgLTIwMDgsNyArMjAxMCw5IEBAIGJvb2wgSlNPYmpl
Y3Q6Omhhc0VudW1lcmFibGVQcm9wZXJ0eShKU0cKICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCh0aGlz
LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0T3duUHJvcGVydHkpOwogICAg
IGJvb2wgaGFzUHJvcGVydHkgPSBjb25zdF9jYXN0PEpTT2JqZWN0Kj4odGhpcyktPmdldFByb3Bl
cnR5U2xvdChnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwotICAgIHJldHVybiBoYXNQcm9wZXJ0eSAmJiAhKHNs
b3QuYXR0cmlidXRlcygpICYgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKKyAgICBpZiAo
IWhhc1Byb3BlcnR5KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuICEoc2xvdC5h
dHRyaWJ1dGVzKCkgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pIHx8IChzbG90LnNsb3RC
YXNlKCkgJiYgc2xvdC5zbG90QmFzZSgpLT5zdHJ1Y3R1cmUodm0pLT50eXBlSW5mbygpLmdldE93
blByb3BlcnR5U2xvdElzV3JvbmdBYm91dERvbnRFbnVtKCkpOwogfQogCiAvLyBFQ01BIDguNi4y
LjUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZUluZm8uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVJbmZvLmgJKHJl
dmlzaW9uIDI3MTY4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZUlu
Zm8uaAkod29ya2luZyBjb3B5KQpAQCAtNTksNiArNTksNyBAQCBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIEludGVyY2VwdHNHZXRPCiBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVy
ZUlzSW1tb3J0YWwgPSAxIDw8IDE3Owogc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBIYXNQdXRQ
cm9wZXJ0eVNlY3VyaXR5Q2hlY2sgPSAxIDw8IDE4Owogc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBPdmVycmlkZXNHZXRQcm90b3R5cGUgPSAxIDw8IDE5Oworc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBHZXRPd25Qcm9wZXJ0eVNsb3RJc1dyb25nQWJvdXREb250RW51bSA9IDEgPDwgMjA7CiAK
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZJbmxpbmVCaXRzID0gODsKIHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgT3ZlcnJpZGVzR2V0UHJvdG90eXBlT3V0T2ZMaW5lID0gT3Zl
cnJpZGVzR2V0UHJvdG90eXBlID4+IG51bWJlck9mSW5saW5lQml0czsKQEAgLTEwNSw2ICsxMDYs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBwcm9oaWJpdHNQcm9wZXJ0eUNhY2hpbmcoKSBjb25zdCB7
IHJldHVybiBpc1NldE9uRmxhZ3MyPFByb2hpYml0c1Byb3BlcnR5Q2FjaGluZz4oKTsgfQogICAg
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmUoKSBjb25zdCB7IHJldHVybiBpc1NldE9u
RmxhZ3MyPEdldE93blByb3BlcnR5U2xvdElzSW1wdXJlPigpOyB9CiAgICAgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSgpIGNvbnN0IHsgcmV0dXJuIGlz
U2V0T25GbGFnczI8R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2U+
KCk7IH0KKyAgICBib29sIGdldE93blByb3BlcnR5U2xvdElzV3JvbmdBYm91dERvbnRFbnVtKCkg
Y29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMjxHZXRPd25Qcm9wZXJ0eVNsb3RJc1dyb25nQWJv
dXREb250RW51bT4oKTsgfQogICAgIGJvb2wgaGFzUHV0UHJvcGVydHlTZWN1cml0eUNoZWNrKCkg
Y29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMjxIYXNQdXRQcm9wZXJ0eVNlY3VyaXR5Q2hlY2s+
KCk7IH0KICAgICBib29sIG5ld0ltcHVyZVByb3BlcnR5RmlyZXNXYXRjaHBvaW50cygpIGNvbnN0
IHsgcmV0dXJuIGlzU2V0T25GbGFnczI8TmV3SW1wdXJlUHJvcGVydHlGaXJlc1dhdGNocG9pbnRz
PigpOyB9CiAgICAgYm9vbCBpc0ltbXV0YWJsZVByb3RvdHlwZUV4b3RpY09iamVjdCgpIGNvbnN0
IHsgcmV0dXJuIGlzU2V0T25GbGFnczI8SXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3Q+
KCk7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MTY4OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDIxLTAxLTIxICBB
bGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBSRUdSRVNT
SU9OIChyMjcwODc0KTogU29tZSBSZWFjdCBOYXRpdmUgYXBwcyBhcmUgcmVwb3J0ZWQgYnJva2Vu
IG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjIwODA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGVzdDogcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1vYmpjLmh0bWwKKwor
ICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6UnVudGlt
ZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoSlNDOjpSdW50aW1lQXJyYXk6
OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2Fy
cmF5Lmg6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0Lmg6CisKIDIwMjEtMDEtMjEg
IEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFVwZGF0ZSBmb250
IHdoZW4gcmVzb2x2aW5nIGxldHRlci1zcGFjaW5nOiBjYWxjKC4uLikgdmFsdWVzCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCShyZXZpc2lvbiAyNzE2ODkpCisr
KyBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEwMCw3ICsxMDAsNyBAQCBib29sIFJ1bnRpbWVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90
KEpTCiAgICAgCiAgICAgT3B0aW9uYWw8dWludDMyX3Q+IGluZGV4ID0gcGFyc2VJbmRleChwcm9w
ZXJ0eU5hbWUpOwogICAgIGlmIChpbmRleCAmJiBpbmRleC52YWx1ZSgpIDwgdGhpc09iamVjdC0+
Z2V0TGVuZ3RoKCkpIHsKLSAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUpLAorICAgICAgICBz
bG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwg
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtLAogICAgICAgICAgICAgdGhpc09iamVjdC0+Z2V0
Q29uY3JldGVBcnJheSgpLT52YWx1ZUF0KGxleGljYWxHbG9iYWxPYmplY3QsIGluZGV4LnZhbHVl
KCkpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpAQCAtMTEyLDcgKzExMiw3IEBAIGJv
b2wgUnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUkKIHsKICAgICBSdW50aW1lQXJy
YXkqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8UnVudGltZUFycmF5Kj4ob2JqZWN0KTsKICAgICBpZiAo
aW5kZXggPCB0aGlzT2JqZWN0LT5nZXRMZW5ndGgoKSkgewotICAgICAgICBzbG90LnNldFZhbHVl
KHRoaXNPYmplY3QsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dERlbGV0ZSksCisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0sCiAgICAgICAg
ICAgICB0aGlzT2JqZWN0LT5nZXRDb25jcmV0ZUFycmF5KCktPnZhbHVlQXQobGV4aWNhbEdsb2Jh
bE9iamVjdCwgaW5kZXgpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpJbmRleDogU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCShyZXZpc2lvbiAyNzE2ODkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3
ICszNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgUnVudGltZUFycmF5IGZpbmFsIDogcHVi
bGljIEpTQXJyYXkgewogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBKU0FycmF5OwotICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldE93blByb3Bl
cnR5TmFtZXMgfCBJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVu
Z3RoSXNOb3RaZXJvOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8
IE92ZXJyaWRlc0dldE93blByb3BlcnR5TmFtZXMgfCBJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlT
bG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgR2V0T3duUHJvcGVydHlTbG90SXNX
cm9uZ0Fib3V0RG9udEVudW07CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRzRGVzdHJ1
Y3Rpb24gPSB0cnVlOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIEpTQzo6U3Vi
c3BhY2VBY2Nlc3M+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3Qu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAko
cmV2aXNpb24gMjcxNjg5KQorKysgU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAgRXhjZXB0aW9uKiB0aHJvd1J1bnRp
bWVPYmplY3RJbnZhbGlkQWNjZQogY2xhc3MgV0VCQ09SRV9FWFBPUlQgUnVudGltZU9iamVjdCA6
IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gSlNO
b25GaW5hbE9iamVjdDsKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Qg
fCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eU5hbWVzIHwgT3ZlcnJpZGVzR2V0Q2FsbERhdGE7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0T3du
UHJvcGVydHlOYW1lcyB8IE92ZXJyaWRlc0dldENhbGxEYXRhIHwgR2V0T3duUHJvcGVydHlTbG90
SXNXcm9uZ0Fib3V0RG9udEVudW07CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRzRGVz
dHJ1Y3Rpb24gPSB0cnVlOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIEpTQzo6
U3Vic3BhY2VBY2Nlc3M+CkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjcxNjg5KQorKysgU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0w
MS0yMSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAgICAgICAg
UkVHUkVTU0lPTiAocjI3MDg3NCk6IFNvbWUgUmVhY3QgTmF0aXZlIGFwcHMgYXJlIHJlcG9ydGVk
IGJyb2tlbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMDgwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaDoKKwogMjAy
MS0wMS0yMSAgRGF2ZSBCbGFuY2hhcmQgIDxkYXZlQGdyb3cuZ2FtZT4KIAogICAgICAgICBNaXNz
aW5nIGhlYWRlciBndGsvZ3RrLmggaW4gUG9pbnRlckxvY2tNYW5hZ2VyWDExLmNwcApJbmRleDog
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pT
TlBPYmplY3QuaAkocmV2aXNpb24gMjcxNjg5KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0
NCw3IEBAIGNsYXNzIE5QUnVudGltZU9iamVjdE1hcDsKIGNsYXNzIEpTTlBPYmplY3QgZmluYWwg
OiBwdWJsaWMgSlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiBwdWJsaWM6CiAgICAgdXNpbmcg
QmFzZSA9IEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3Q7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpPdmVy
cmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5TmFt
ZXMgfCBKU0M6Ok92ZXJyaWRlc0dldENhbGxEYXRhOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6T3ZlcnJp
ZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eU5hbWVz
IHwgSlNDOjpPdmVycmlkZXNHZXRDYWxsRGF0YSB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNX
cm9uZ0Fib3V0RG9udEVudW07CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDZWxsVHlwZSwgSlND
OjpTdWJzcGFjZUFjY2Vzcz4KICAgICBzdGF0aWMgSlNDOjpJc29TdWJzcGFjZSogc3Vic3BhY2VG
b3IoSlNDOjpWTSYgdm0pCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzE2ODkpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0wMS0yMSAg
QWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAgICAgICAgUkVHUkVT
U0lPTiAocjI3MDg3NCk6IFNvbWUgUmVhY3QgTmF0aXZlIGFwcHMgYXJlIHJlcG9ydGVkIGJyb2tl
biBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMDgwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1vYmpjLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLW9iamMu
aHRtbDoKKwogMjAyMS0wMS0yMSAgRnJlZGVyaWMgV2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgVXBkYXRlIGZvbnQgd2hlbiByZXNvbHZpbmcgbGV0dGVyLXNwYWNpbmc6IGNhbGMo
Li4uKSB2YWx1ZXMKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFw
cGVyLWNsYXNzZXMtb2JqYy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1vYmpjLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMjcxNjg5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dy
YXBwZXItY2xhc3Nlcy1vYmpjLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTg5LDcg
KzE4OSw3IEBAIFBBU1MgdHlwZW9mIG9iakNPYmplY3RPZkNsYXNzKCdOU0NGU3RyaW4KIFBBU1Mg
dHlwZW9mIG9iakNPYmplY3RPZkNsYXNzKCdXZWJTY3JpcHRPYmplY3QnKSBpcyAnb2JqZWN0Jwog
UEFTUyBvYmpDT2JqZWN0T2ZDbGFzcygnTlNBcnJheScpIGluc3RhbmNlb2YgQXJyYXkgaXMgdHJ1
ZQogUEFTUyBjb25jYXRlbmF0ZUFycmF5KG9iakNBcnJheU9mU3RyaW5nKCkpIGlzICdvbmV0d290
aHJlZScKLVBBU1Mgb2JqQ0FycmF5T2ZTdHJpbmcoKS5ldmVyeSgoXywgaSwgYXJyKSA9PiBhcnIu
cHJvcGVydHlJc0VudW1lcmFibGUoaSkpIGlzIHRydWUKK1BBU1Mgb2JqQ0FycmF5T2ZTdHJpbmco
KS5ldmVyeSgoXywgaSwgYXJyKSA9PiAhYXJyLnByb3BlcnR5SXNFbnVtZXJhYmxlKGkpKSBpcyB0
cnVlCiBQQVNTIGxldCBhcnIgPSBvYmpDQXJyYXlPZlN0cmluZygpOyBhcnIubGVuZ3RoIGlzIDMK
IFBBU1MgbGV0IGFyciA9IG9iakNBcnJheU9mU3RyaW5nKCk7IGFyci5sZW5ndGggPSAwIHRocmV3
IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiBSYW5nZSBlcnJvci4KIFBBU1MgbGV0IGFyciA9IG9iakNB
cnJheU9mU3RyaW5nKCk7IGFyci5sZW5ndGggPSA1IHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9y
OiBSYW5nZSBlcnJvci4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93
cmFwcGVyLWNsYXNzZXMtb2JqYy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtb2JqYy5odG1sCShyZXZpc2lvbiAyNzE2
ODkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2Vz
LW9iamMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjg2LDcgKzI4Niw3IEBAIGZ1bmN0aW9uIHJ1
blRlc3QoKQogICAgIHNob3VsZEJlVHJ1ZSgib2JqQ09iamVjdE9mQ2xhc3MoJ05TQXJyYXknKSBp
bnN0YW5jZW9mIEFycmF5Iik7CiAKICAgICBzaG91bGRCZSgiY29uY2F0ZW5hdGVBcnJheShvYmpD
QXJyYXlPZlN0cmluZygpKSIsICInb25ldHdvdGhyZWUnIik7Ci0gICAgc2hvdWxkQmVUcnVlKCJv
YmpDQXJyYXlPZlN0cmluZygpLmV2ZXJ5KChfLCBpLCBhcnIpID0+IGFyci5wcm9wZXJ0eUlzRW51
bWVyYWJsZShpKSkiKTsKKyAgICBzaG91bGRCZVRydWUoIm9iakNBcnJheU9mU3RyaW5nKCkuZXZl
cnkoKF8sIGksIGFycikgPT4gIWFyci5wcm9wZXJ0eUlzRW51bWVyYWJsZShpKSkiKTsKIAogICAg
IHNob3VsZEJlKCJsZXQgYXJyID0gb2JqQ0FycmF5T2ZTdHJpbmcoKTsgYXJyLmxlbmd0aCIsICIz
Iik7CiAgICAgc2hvdWxkVGhyb3coImxldCBhcnIgPSBvYmpDQXJyYXlPZlN0cmluZygpOyBhcnIu
bGVuZ3RoID0gMCIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418359</attachid>
            <date>2021-01-25 17:27:53 -0800</date>
            <delta_ts>2021-01-25 18:13:17 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-220809-20210126032752.patch</filename>
            <type>text/plain</type>
            <size>14717</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjcxODY2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBA
CisyMDIxLTAxLTI1ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKwor
ICAgICAgICBSRUdSRVNTSU9OIChyMjcwODc0KTogU29tZSBSZWFjdCBOYXRpdmUgYXBwcyBhcmUg
cmVwb3J0ZWQgYnJva2VuIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIwODA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGku
CisKKyAgICAgICAgcjI3MDg3NCBmaXhlZCBmb3IvaW4gc2hhZG93aW5nIGlzc3VlIGJ5IGludHJv
ZHVjaW5nIGFuIGludmFyaWFudDogYSBwcm9wZXJ0eQorICAgICAgICByZXR1cm5lZCBieSBnZXRP
d24qUHJvcGVydHlOYW1lcygpIGluIERvbnRFbnVtUHJvcGVydGllc01vZGU6OkV4Y2x1ZGUgc2hv
dWxkIGJlCisgICAgICAgIHJlcG9ydGVkIGFzIFtbRW51bWVyYWJsZV1dIGJ5IGdldE93blByb3Bl
cnR5U2xvdCgpLiBPdGhlcndpc2UsIGZvci9pbiBza2lwcyB0aGUKKyAgICAgICAgcHJvcGVydHks
IHdoaWNoIGNhdXNlcyBSTiBhcHBzIHRvIGJyZWFrLgorCisgICAgICAgIFNpbmNlIHRoZXJlIGlz
IG5vIHdheSB0byBlbmZvcmNlIHRoaXMgaW52YXJpYW50IGZvciBvcGFxdWUgQVBJIG9iamVjdHMg
bGlrZQorICAgICAgICBKU0NhbGxiYWNrT2JqZWN0LCB0aGlzIGNoYW5nZSBza2lwcyBbW0VudW1l
cmFibGVdXSBjaGVjayBmb3IgdGhlbSBieSBpbnRyb2R1Y2luZworICAgICAgICBHZXRPd25Qcm9w
ZXJ0eVNsb3RNYXlCZVdyb25nQWJvdXREb250RW51bSBvdXQgb2YgbGluZSB0eXBlIGluZm8gZmxh
Zy4KKworICAgICAgICBBbHNvLCB0aGlzIHBhdGNoIHJldmVydHMgSlNDYWxsYmFja09iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90KCkgY2hhbmdlcyBvZiByMjcwODc0CisgICAgICAgIHRoYXQgYXJl
IG5vIGxvbmdlciBuZWNlc3NhcnkgYW5kIG9ic2VydmFibGUgKHZpYSBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKS4KKworICAgICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0Lmg6Cisg
ICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaDoKKyAgICAgICAgKEpTQzo6
SlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAq
IEFQSS90ZXN0cy90ZXN0YXBpU2NyaXB0cy90ZXN0YXBpLmpzOgorICAgICAgICAqIHJ1bnRpbWUv
SlNPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6aGFzRW51bWVyYWJsZVByb3Bl
cnR5IGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZUluZm8uaDoKKyAgICAgICAgKEpT
Qzo6VHlwZUluZm86OmdldE93blByb3BlcnR5U2xvdE1heUJlV3JvbmdBYm91dERvbnRFbnVtIGNv
bnN0KToKKwogMjAyMS0wMS0yNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFVwZGF0ZSBhdmFpbGFiaWxpdHkgYW5ub3RhdGlvbnMgdG8gbWF0Y2ggdGhlIG1hY09T
IDExLjAgYW5kIGlPUyAxNC4wIEdNIFNES3MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDYWxsYmFja09iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCShyZXZpc2lvbiAyNzE4NjYpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTI1
LDcgKzEyNSw3IEBAIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+CiBjbGFzcyBKU0NhbGxiYWNrT2Jq
ZWN0IGZpbmFsIDogcHVibGljIFBhcmVudCB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IFBh
cmVudDsKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFz
ZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlk
ZXNHZXRPd25TcGVjaWFsUHJvcGVydHlOYW1lcyB8IE92ZXJyaWRlc0dldENhbGxEYXRhIHwgSW50
ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8
IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IFByb2hpYml0c1Byb3BlcnR5Q2FjaGluZzsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRPd25TcGVj
aWFsUHJvcGVydHlOYW1lcyB8IE92ZXJyaWRlc0dldENhbGxEYXRhIHwgSW50ZXJjZXB0c0dldE93
blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEltcGxlbWVudHNI
YXNJbnN0YW5jZSB8IFByb2hpYml0c1Byb3BlcnR5Q2FjaGluZyB8IEdldE93blByb3BlcnR5U2xv
dE1heUJlV3JvbmdBYm91dERvbnRFbnVtOwogICAgIHN0YXRpY19hc3NlcnQoIShTdHJ1Y3R1cmVG
bGFncyAmIEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UpLCAidXNpbmcgY3VzdG9tSGFzSW5z
dGFuY2UiKTsKIAogICAgIH5KU0NhbGxiYWNrT2JqZWN0KCk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAkocmV2
aXNpb24gMjcxODY2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2Jq
ZWN0RnVuY3Rpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2Miw5ICsxNjIsNyBAQCBib29sIEpT
Q2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvCiAgICAgUmVmUHRyPE9wYXF1ZUpTU3Ry
aW5nPiBwcm9wZXJ0eU5hbWVSZWY7CiAgICAgCiAgICAgaWYgKFN0cmluZ0ltcGwqIG5hbWUgPSBw
cm9wZXJ0eU5hbWUudWlkKCkpIHsKLSAgICAgICAgLy8gRklYTUU6IFNldCBSZWFkT25seSBjb25k
aXRpb25hbGx5LCBiYXNlZCBvbiBzZXRQcm9wZXJ0eSBwcmVzZW5jZSBpbiBjbGFzcyBpbmhlcml0
YW5jZSBjaGFpbi4KLSAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxOTkyNAotICAgICAgICB1bnNpZ25lZCBhdHRyaWJ1dGVzID0gc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CisgICAgICAgIHVuc2lnbmVk
IGF0dHJpYnV0ZXMgPSBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW07CiAgICAgICAgIGZvciAoSlNDbGFzc1JlZiBqc0NsYXNzID0gdGhpc09i
amVjdC0+Y2xhc3NSZWYoKTsganNDbGFzczsganNDbGFzcyA9IGpzQ2xhc3MtPnBhcmVudENsYXNz
KSB7CiAgICAgICAgICAgICAvLyBvcHRpb25hbCBvcHRpbWl6YXRpb24gdG8gYnlwYXNzIGdldFBy
b3BlcnR5IGluIGNhc2VzIHdoZW4gd2Ugb25seSBuZWVkIHRvIGtub3cgaWYgdGhlIHByb3BlcnR5
IGV4aXN0cwogICAgICAgICAgICAgaWYgKEpTT2JqZWN0SGFzUHJvcGVydHlDYWxsYmFjayBoYXNQ
cm9wZXJ0eSA9IGpzQ2xhc3MtPmhhc1Byb3BlcnR5KSB7CkBAIC0xOTYsMjEgKzE5NCwxOSBAQCBi
b29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvCiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChPcGFxdWVKU0NsYXNzU3RhdGljVmFsdWVzVGFi
bGUqIHN0YXRpY1ZhbHVlcyA9IGpzQ2xhc3MtPnN0YXRpY1ZhbHVlcyhnbG9iYWxPYmplY3QpKSB7
Ci0gICAgICAgICAgICAgICAgaWYgKFN0YXRpY1ZhbHVlRW50cnkqIGVudHJ5ID0gc3RhdGljVmFs
dWVzLT5nZXQobmFtZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGdldFN0YXRp
Y1ZhbHVlKCkgcGVyZm9ybXMgdGhlIHNhbWUgbG9vcCAmIGNoZWNrcyBqdXN0IHRvIGFjcXVpcmUg
YGVudHJ5YC4KLSAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxOTkyNQorICAgICAgICAgICAgICAgIGlmIChzdGF0aWNWYWx1ZXMt
PmNvbnRhaW5zKG5hbWUpKSB7CiAgICAgICAgICAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSB0
aGlzT2JqZWN0LT5nZXRTdGF0aWNWYWx1ZShnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7CiAg
ICAgICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKICAg
ICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBz
bG90LnNldFZhbHVlKHRoaXNPYmplY3QsIGVudHJ5LT5hdHRyaWJ1dGVzLCB2YWx1ZSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIGF0dHJpYnV0ZXMs
IHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgCiAgICAgICAgICAgICBpZiAoT3BhcXVlSlNDbGFzc1N0YXRpY0Z1bmN0aW9uc1RhYmxlKiBz
dGF0aWNGdW5jdGlvbnMgPSBqc0NsYXNzLT5zdGF0aWNGdW5jdGlvbnMoZ2xvYmFsT2JqZWN0KSkg
ewotICAgICAgICAgICAgICAgIGlmIChTdGF0aWNGdW5jdGlvbkVudHJ5KiBlbnRyeSA9IHN0YXRp
Y0Z1bmN0aW9ucy0+Z2V0KG5hbWUpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3Vz
dG9tKHRoaXNPYmplY3QsIGVudHJ5LT5hdHRyaWJ1dGVzLCBnZXRTdGF0aWNGdW5jdGlvbkdldHRl
cigpKTsKKyAgICAgICAgICAgICAgICBpZiAoc3RhdGljRnVuY3Rpb25zLT5jb250YWlucyhuYW1l
KSkgeworICAgICAgICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBhdHRy
aWJ1dGVzLCBnZXRTdGF0aWNGdW5jdGlvbkdldHRlcigpKTsKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpU2NyaXB0cy90ZXN0YXBpLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaVNjcmlw
dHMvdGVzdGFwaS5qcwkocmV2aXNpb24gMjcxODY2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS90ZXN0cy90ZXN0YXBpU2NyaXB0cy90ZXN0YXBpLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0x
NDQsMTIgKzE0NCwxMiBAQCB2YXIgYWx3YXlzT25lRGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Q
CiBzaG91bGRCZSgndHlwZW9mIGFsd2F5c09uZURlc2NyaXB0b3InLCAib2JqZWN0Iik7CiBzaG91
bGRCZSgnYWx3YXlzT25lRGVzY3JpcHRvci52YWx1ZScsIE15T2JqZWN0LmFsd2F5c09uZSk7CiBz
aG91bGRCZSgnYWx3YXlzT25lRGVzY3JpcHRvci5jb25maWd1cmFibGUnLCB0cnVlKTsKLXNob3Vs
ZEJlKCdhbHdheXNPbmVEZXNjcmlwdG9yLmVudW1lcmFibGUnLCB0cnVlKTsKK3Nob3VsZEJlKCdh
bHdheXNPbmVEZXNjcmlwdG9yLmVudW1lcmFibGUnLCBmYWxzZSk7IC8vIEFjdHVhbGx5IGl0IGlz
LgogdmFyIGNhbnRGaW5kRGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoTXlPYmplY3QsICJjYW50RmluZCIpOwogc2hvdWxkQmUoJ3R5cGVvZiBjYW50RmluZERlc2Ny
aXB0b3InLCAib2JqZWN0Iik7CiBzaG91bGRCZSgnY2FudEZpbmREZXNjcmlwdG9yLnZhbHVlJywg
TXlPYmplY3QuY2FudEZpbmQpOwogc2hvdWxkQmUoJ2NhbnRGaW5kRGVzY3JpcHRvci5jb25maWd1
cmFibGUnLCB0cnVlKTsKLXNob3VsZEJlKCdjYW50RmluZERlc2NyaXB0b3IuZW51bWVyYWJsZScs
IHRydWUpOworc2hvdWxkQmUoJ2NhbnRGaW5kRGVzY3JpcHRvci5lbnVtZXJhYmxlJywgZmFsc2Up
OwogdHJ5IHsKICAgICAvLyBJZiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoKSByZXR1cm5lZCBh
biBhY2Nlc3MgZGVzY3JpcHRvciwgdGhpcyB3b3VsZG4ndCB0aHJvdy4KICAgICBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKE15T2JqZWN0LCAidGhyb3dPbkdldCIpOwpAQCAtMTYwLDcg
KzE2MCw3IEBAIHZhciBteVByb3BlcnR5TmFtZURlc2NyaXB0b3IgPSBPYmplY3QuZ2UKIHNob3Vs
ZEJlKCd0eXBlb2YgbXlQcm9wZXJ0eU5hbWVEZXNjcmlwdG9yJywgIm9iamVjdCIpOwogc2hvdWxk
QmUoJ215UHJvcGVydHlOYW1lRGVzY3JpcHRvci52YWx1ZScsIE15T2JqZWN0Lm15UHJvcGVydHlO
YW1lKTsKIHNob3VsZEJlKCdteVByb3BlcnR5TmFtZURlc2NyaXB0b3IuY29uZmlndXJhYmxlJywg
dHJ1ZSk7Ci1zaG91bGRCZSgnbXlQcm9wZXJ0eU5hbWVEZXNjcmlwdG9yLmVudW1lcmFibGUnLCB0
cnVlKTsKK3Nob3VsZEJlKCdteVByb3BlcnR5TmFtZURlc2NyaXB0b3IuZW51bWVyYWJsZScsIGZh
bHNlKTsgLy8gQWN0dWFsbHkgaXQgaXMuCiB0cnkgewogICAgIC8vIGlmIGdldE93blByb3BlcnR5
RGVzY3JpcHRvcigpIHJldHVybmVkIGFuIGFjY2VzcyBkZXNjcmlwdG9yLCB0aGlzIHdvdWxkbid0
IHRocm93LgogICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTXlPYmplY3QsICJo
YXNQcm9wZXJ0eUxpZSIpOwpAQCAtMjQ3LDIzICsyNDcsMjMgQEAgdmFyIGJhc2VEdXBEZXNjcmlw
dG9yID0gT2JqZWN0LmdldE93blBybwogc2hvdWxkQmUoJ3R5cGVvZiBiYXNlRHVwRGVzY3JpcHRv
cicsICJvYmplY3QiKTsKIHNob3VsZEJlKCdiYXNlRHVwRGVzY3JpcHRvci52YWx1ZScsIGRlcml2
ZWQuYmFzZUR1cCk7CiBzaG91bGRCZSgnYmFzZUR1cERlc2NyaXB0b3IuY29uZmlndXJhYmxlJywg
dHJ1ZSk7Ci1zaG91bGRCZSgnYmFzZUR1cERlc2NyaXB0b3IuZW51bWVyYWJsZScsIHRydWUpOwor
c2hvdWxkQmUoJ2Jhc2VEdXBEZXNjcmlwdG9yLmVudW1lcmFibGUnLCBmYWxzZSk7CiB2YXIgYmFz
ZU9ubHlEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkZXJpdmVk
LCAiYmFzZU9ubHkiKTsKIHNob3VsZEJlKCd0eXBlb2YgYmFzZU9ubHlEZXNjcmlwdG9yJywgIm9i
amVjdCIpOwogc2hvdWxkQmUoJ2Jhc2VPbmx5RGVzY3JpcHRvci52YWx1ZScsIGRlcml2ZWQuYmFz
ZU9ubHkpOwogc2hvdWxkQmUoJ2Jhc2VPbmx5RGVzY3JpcHRvci5jb25maWd1cmFibGUnLCB0cnVl
KTsKLXNob3VsZEJlKCdiYXNlT25seURlc2NyaXB0b3IuZW51bWVyYWJsZScsIHRydWUpOworc2hv
dWxkQmUoJ2Jhc2VPbmx5RGVzY3JpcHRvci5lbnVtZXJhYmxlJywgZmFsc2UpOwogc2hvdWxkQmUo
J09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZGVyaXZlZCwgInByb3RvT25seSIpJywg
dW5kZWZpbmVkKTsKIHZhciBwcm90b0R1cERlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGRlcml2ZWQsICJwcm90b0R1cCIpOwogc2hvdWxkQmUoJ3R5cGVvZiBwcm90
b0R1cERlc2NyaXB0b3InLCAib2JqZWN0Iik7CiBzaG91bGRCZSgncHJvdG9EdXBEZXNjcmlwdG9y
LnZhbHVlJywgZGVyaXZlZC5wcm90b0R1cCk7CiBzaG91bGRCZSgncHJvdG9EdXBEZXNjcmlwdG9y
LmNvbmZpZ3VyYWJsZScsIHRydWUpOwotc2hvdWxkQmUoJ3Byb3RvRHVwRGVzY3JpcHRvci5lbnVt
ZXJhYmxlJywgdHJ1ZSk7CitzaG91bGRCZSgncHJvdG9EdXBEZXNjcmlwdG9yLmVudW1lcmFibGUn
LCBmYWxzZSk7CiB2YXIgZGVyaXZlZE9ubHlEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihkZXJpdmVkLCAiZGVyaXZlZE9ubHkiKTsKIHNob3VsZEJlKCd0eXBlb2Yg
ZGVyaXZlZE9ubHlEZXNjcmlwdG9yJywgIm9iamVjdCIpOwogc2hvdWxkQmUoJ2Rlcml2ZWRPbmx5
RGVzY3JpcHRvci52YWx1ZScsIGRlcml2ZWQuZGVyaXZlZE9ubHkpOwogc2hvdWxkQmUoJ2Rlcml2
ZWRPbmx5RGVzY3JpcHRvci5jb25maWd1cmFibGUnLCB0cnVlKTsKLXNob3VsZEJlKCdkZXJpdmVk
T25seURlc2NyaXB0b3IuZW51bWVyYWJsZScsIHRydWUpOworc2hvdWxkQmUoJ2Rlcml2ZWRPbmx5
RGVzY3JpcHRvci5lbnVtZXJhYmxlJywgZmFsc2UpOwogCiBzaG91bGRCZSgidW5kZWZpbmVkIGlu
c3RhbmNlb2YgTXlPYmplY3QiLCBmYWxzZSk7CiBFdmlsRXhjZXB0aW9uT2JqZWN0Lmhhc0luc3Rh
bmNlID0gZnVuY3Rpb24gZigpIHsgcmV0dXJuIGYoKTsgfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAJKHJldmlzaW9uIDI3MTg2NikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTk5OCw3ICsxOTk4LDkgQEAgYm9vbCBKU09iamVjdDo6aGFzRW51bWVyYWJsZVByb3BlcnR5KEpT
RwogICAgIFByb3BlcnR5U2xvdCBzbG90KHRoaXMsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRo
b2RUeXBlOjpHZXRPd25Qcm9wZXJ0eSk7CiAgICAgYm9vbCBoYXNQcm9wZXJ0eSA9IGNvbnN0X2Nh
c3Q8SlNPYmplY3QqPih0aGlzKS0+Z2V0UHJvcGVydHlTbG90KGdsb2JhbE9iamVjdCwgcHJvcGVy
dHlOYW1lLCBzbG90KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7Ci0g
ICAgcmV0dXJuIGhhc1Byb3BlcnR5ICYmICEoc2xvdC5hdHRyaWJ1dGVzKCkgJiBQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pOworICAgIGlmICghaGFzUHJvcGVydHkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICByZXR1cm4gIShzbG90LmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSkgfHwgKHNsb3Quc2xvdEJhc2UoKSAmJiBzbG90LnNsb3RCYXNlKCktPnN0
cnVjdHVyZSh2bSktPnR5cGVJbmZvKCkuZ2V0T3duUHJvcGVydHlTbG90TWF5QmVXcm9uZ0Fib3V0
RG9udEVudW0oKSk7CiB9CiAKIGJvb2wgSlNPYmplY3Q6Omhhc0VudW1lcmFibGVQcm9wZXJ0eShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpIGNvbnN0
CkBAIC0yMDA4LDcgKzIwMTAsOSBAQCBib29sIEpTT2JqZWN0OjpoYXNFbnVtZXJhYmxlUHJvcGVy
dHkoSlNHCiAgICAgUHJvcGVydHlTbG90IHNsb3QodGhpcywgUHJvcGVydHlTbG90OjpJbnRlcm5h
bE1ldGhvZFR5cGU6OkdldE93blByb3BlcnR5KTsKICAgICBib29sIGhhc1Byb3BlcnR5ID0gY29u
c3RfY2FzdDxKU09iamVjdCo+KHRoaXMpLT5nZXRQcm9wZXJ0eVNsb3QoZ2xvYmFsT2JqZWN0LCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNl
KTsKLSAgICByZXR1cm4gaGFzUHJvcGVydHkgJiYgIShzbG90LmF0dHJpYnV0ZXMoKSAmIFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSk7CisgICAgaWYgKCFoYXNQcm9wZXJ0eSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHJldHVybiAhKHNsb3QuYXR0cmlidXRlcygpICYgUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSB8fCAoc2xvdC5zbG90QmFzZSgpICYmIHNsb3Quc2xvdEJhc2Uo
KS0+c3RydWN0dXJlKHZtKS0+dHlwZUluZm8oKS5nZXRPd25Qcm9wZXJ0eVNsb3RNYXlCZVdyb25n
QWJvdXREb250RW51bSgpKTsKIH0KIAogLy8gRUNNQSA4LjYuMi41CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlSW5mby5oCShyZXZpc2lvbiAyNzE4NjYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVJbmZvLmgJKHdvcmtpbmcgY29weSkK
QEAgLTU5LDYgKzU5LDcgQEAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBJbnRlcmNlcHRzR2V0
Twogc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVJc0ltbW9ydGFsID0gMSA8PCAx
NzsKIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgSGFzUHV0UHJvcGVydHlTZWN1cml0eUNoZWNr
ID0gMSA8PCAxODsKIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgT3ZlcnJpZGVzR2V0UHJvdG90
eXBlID0gMSA8PCAxOTsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgR2V0T3duUHJvcGVydHlT
bG90TWF5QmVXcm9uZ0Fib3V0RG9udEVudW0gPSAxIDw8IDIwOwogCiBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIG51bWJlck9mSW5saW5lQml0cyA9IDg7CiBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIE92ZXJyaWRlc0dldFByb3RvdHlwZU91dE9mTGluZSA9IE92ZXJyaWRlc0dldFByb3RvdHlw
ZSA+PiBudW1iZXJPZklubGluZUJpdHM7CkBAIC0xMDUsNiArMTA2LDcgQEAgcHVibGljOgogICAg
IGJvb2wgcHJvaGliaXRzUHJvcGVydHlDYWNoaW5nKCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZs
YWdzMjxQcm9oaWJpdHNQcm9wZXJ0eUNhY2hpbmc+KCk7IH0KICAgICBib29sIGdldE93blByb3Bl
cnR5U2xvdElzSW1wdXJlKCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMjxHZXRPd25Qcm9w
ZXJ0eVNsb3RJc0ltcHVyZT4oKTsgfQogICAgIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90SXNJbXB1
cmVGb3JQcm9wZXJ0eUFic2VuY2UoKSBjb25zdCB7IHJldHVybiBpc1NldE9uRmxhZ3MyPEdldE93
blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlPigpOyB9CisgICAgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3RNYXlCZVdyb25nQWJvdXREb250RW51bSgpIGNvbnN0IHsgcmV0dXJu
IGlzU2V0T25GbGFnczI8R2V0T3duUHJvcGVydHlTbG90TWF5QmVXcm9uZ0Fib3V0RG9udEVudW0+
KCk7IH0KICAgICBib29sIGhhc1B1dFByb3BlcnR5U2VjdXJpdHlDaGVjaygpIGNvbnN0IHsgcmV0
dXJuIGlzU2V0T25GbGFnczI8SGFzUHV0UHJvcGVydHlTZWN1cml0eUNoZWNrPigpOyB9CiAgICAg
Ym9vbCBuZXdJbXB1cmVQcm9wZXJ0eUZpcmVzV2F0Y2hwb2ludHMoKSBjb25zdCB7IHJldHVybiBp
c1NldE9uRmxhZ3MyPE5ld0ltcHVyZVByb3BlcnR5RmlyZXNXYXRjaHBvaW50cz4oKTsgfQogICAg
IGJvb2wgaXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3QoKSBjb25zdCB7IHJldHVybiBp
c1NldE9uRmxhZ3MyPElzSW1tdXRhYmxlUHJvdG90eXBlRXhvdGljT2JqZWN0PigpOyB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyNzE4NjYpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0wMS0yNSAgQWxleGV5IFNodmF5
a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI3MDg3
NCk6IFNvbWUgUmVhY3QgTmF0aXZlIGFwcHMgYXJlIHJlcG9ydGVkIGJyb2tlbiBvbiBpT1MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDgwOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IFNhYW0gQmFyYXRpLgorCisgICAgICAgICogYnJpZGdlL3J1bnRp
bWVfb2JqZWN0Lmg6CisKIDIwMjEtMDEtMjUgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29t
PgogCiAgICAgICAgIFN1cHBvcnQgcGVyY2VudGFnZXMgd2hlbiBwYXJzaW5nIGNvbG9yKHNyZ2Ig
Li4uKSBhbmQgY29sb3IoZGlzcGxheS1wMyAuLi4pIHBlci1zcGVjCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAkocmV2aXNpb24gMjcxODY2KQorKysgU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3
LDcgQEAgRXhjZXB0aW9uKiB0aHJvd1J1bnRpbWVPYmplY3RJbnZhbGlkQWNjZQogY2xhc3MgV0VC
Q09SRV9FWFBPUlQgUnVudGltZU9iamVjdCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1
YmxpYzoKICAgICB1c2luZyBCYXNlID0gSlNOb25GaW5hbE9iamVjdDsKLSAgICBzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eU5hbWVz
IHwgT3ZlcnJpZGVzR2V0Q2FsbERhdGE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJv
cGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlOYW1lcyB8IE92ZXJyaWRlc0dldENh
bGxEYXRhIHwgR2V0T3duUHJvcGVydHlTbG90TWF5QmVXcm9uZ0Fib3V0RG9udEVudW07CiAgICAg
c3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwogCiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIEpTQzo6U3Vic3BhY2VBY2Nlc3M+CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwkocmV2aXNpb24gMjcxODY2KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0wMS0yNSAgQWxleGV5IFNodmF5a2EgIDxzaHZh
aWthbGVzaEBnbWFpbC5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI3MDg3NCk6IFNvbWUg
UmVhY3QgTmF0aXZlIGFwcHMgYXJlIHJlcG9ydGVkIGJyb2tlbiBvbiBpT1MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDgwOQorCisgICAgICAgIFJl
dmlld2VkIGJ5IFNhYW0gQmFyYXRpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL0pTTlBPYmplY3QuaDoKKwogMjAyMS0wMS0yNSAgQWRpdHlhIEtlZXJ0aGkgIDxha2Vl
cnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gT2JzY3VyZWQgZWxlbWVudHMgc2hvdWxk
IG5vdCBiZSBmb2N1c2FibGUgdXNpbmcgdGhlIGFjY2Vzc29yeSBiYXIKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0
LmgJKHJldmlzaW9uIDI3MTg2NikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL0pTTlBPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQCBj
bGFzcyBOUFJ1bnRpbWVPYmplY3RNYXA7CiBjbGFzcyBKU05QT2JqZWN0IGZpbmFsIDogcHVibGlj
IEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QgewogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBK
U0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0OwotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6T3ZlcnJpZGVzR2V0
T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eU5hbWVzIHwgSlND
OjpPdmVycmlkZXNHZXRDYWxsRGF0YTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Ok92ZXJyaWRlc0dldE93
blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlOYW1lcyB8IEpTQzo6
T3ZlcnJpZGVzR2V0Q2FsbERhdGEgfCBKU0M6OkdldE93blByb3BlcnR5U2xvdE1heUJlV3JvbmdB
Ym91dERvbnRFbnVtOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIEpTQzo6U3Vi
c3BhY2VBY2Nlc3M+CiAgICAgc3RhdGljIEpTQzo6SXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9yKEpT
Qzo6Vk0mIHZtKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>