<?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>233539</bug_id>
          
          <creation_ts>2021-11-27 23:11:00 -0800</creation_ts>
          <short_desc>[JSC] Add Intl.NumberFormat.formatRangeToParts</short_desc>
          <delta_ts>2021-11-29 12:30:23 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>218829</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1818065</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-27 23:11:00 -0800</bug_when>
    <thetext>[JSC] Add Intl.NumberFormat.formatRangeToParts</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818066</commentid>
    <comment_count>1</comment_count>
      <attachid>445234</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-27 23:11:14 -0800</bug_when>
    <thetext>Created attachment 445234
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818122</commentid>
    <comment_count>2</comment_count>
      <attachid>445248</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-28 21:44:17 -0800</bug_when>
    <thetext>Created attachment 445248
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818124</commentid>
    <comment_count>3</comment_count>
      <attachid>445249</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-28 22:12:35 -0800</bug_when>
    <thetext>Created attachment 445249
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818388</commentid>
    <comment_count>4</comment_count>
      <attachid>445249</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-11-29 12:11:10 -0800</bug_when>
    <thetext>Comment on attachment 445249
Patch

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

r=me, very nice.

&gt; Source/JavaScriptCore/runtime/IntlNumberFormat.cpp:1511
&gt; +        auto partValue = jsSubstring(vm, formatted, field.m_range.begin(), field.m_range.end() - field.m_range.begin());

Wonder if we should add a method to WTF::Range for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818394</commentid>
    <comment_count>5</comment_count>
      <attachid>445249</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-29 12:15:50 -0800</bug_when>
    <thetext>Comment on attachment 445249
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/IntlNumberFormat.cpp:1511
&gt;&gt; +        auto partValue = jsSubstring(vm, formatted, field.m_range.begin(), field.m_range.end() - field.m_range.begin());
&gt; 
&gt; Wonder if we should add a method to WTF::Range for this?

Added Range::distance method, which is aligned to STL&apos;s naming (begin, end, distance).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818402</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-29 12:29:13 -0800</bug_when>
    <thetext>Committed r286255 (244618@main): &lt;https://commits.webkit.org/244618@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818404</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-29 12:30:23 -0800</bug_when>
    <thetext>&lt;rdar://problem/85829885&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445234</attachid>
            <date>2021-11-27 23:11:14 -0800</date>
            <delta_ts>2021-11-28 21:44:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233539-20211128071114.patch</filename>
            <type>text/plain</type>
            <size>22193</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
ZGVlNThiZWRjZjQzNDJkMjgyY2IyMTk0N2QzYzllZWI1MDM4ZTg2Li4yMWEwMTMxMzQwNjMyOTQ3
YmFiYTM0MjIxOGRjNmE2MTY2ZmJmMGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMS0xMS0yNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBJbnRsLk51bWJlckZvcm1hdC5mb3JtYXRSYW5nZVRvUGFy
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzUz
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcnVu
dGltZS9JbnRsTnVtYmVyRm9ybWF0LmNwcDoKKyAgICAgICAgKEpTQzo6bnVtYmVyRmllbGRzUHJh
Y3RpY2FsbHlFcXVhbCk6CisgICAgICAgIChKU0M6OkludGxOdW1iZXJGb3JtYXQ6OmZvcm1hdFJh
bmdlVG9QYXJ0c0ludGVybmFsKToKKyAgICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1hdDo6Zm9y
bWF0UmFuZ2VUb1BhcnRzIGNvbnN0KToKKyAgICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1hdDo6
Zm9ybWF0VG9QYXJ0c0ludGVybmFsKToKKyAgICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1hdDo6
Zm9ybWF0VG9QYXJ0cyBjb25zdCk6CisgICAgICAgICogcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0
Lmg6CisgICAgICAgICogcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmNwcDoKKyAg
ICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1hdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgor
ICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRp
bWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdC5jcHA6CisgICAgICAgIChKU0M6OkludGxSZWxhdGl2
ZVRpbWVGb3JtYXQ6OmZvcm1hdFRvUGFydHMgY29uc3QpOgorCiAyMDIxLTExLTI2ICBBZHJpYW4g
UGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgTm9uLXVuaWZp
ZWQgYnVpbGQgZml4ZXMsIGxhdGUgTm92ZW1iZXIgMjAyMSBlZGl0aW9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXQuY3BwCmluZGV4IGQ4YjQ1
M2Y2NGYzNjMwYzYxNzA0YWMyZGFmZDBjNDQ2NjY3MzEyZGEuLmU4OGVhMzhlNjU5MzkwMzJiYzBm
ZTQ4ODk0NmZmMGY0YzY4ZTFkZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxOdW1iZXJGb3JtYXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxOdW1iZXJGb3JtYXQuY3BwCkBAIC04OTUsNiArODk1LDI1OSBAQCBKU1ZhbHVl
IEludGxOdW1iZXJGb3JtYXQ6OmZvcm1hdFJhbmdlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEludGxNYXRoZW1hdAogfQogI2VuZGlmCiAKKyNpZiBIQVZFKElDVV9VX05VTUJFUl9SQU5H
RV9GT1JNQVRURVJfRk9STUFUX1JBTkdFX1RPX1BBUlRTKQorc3RhdGljIGJvb2wgbnVtYmVyRmll
bGRzUHJhY3RpY2FsbHlFcXVhbChjb25zdCBVRm9ybWF0dGVkVmFsdWUqIGZvcm1hdHRlZFZhbHVl
LCBVRXJyb3JDb2RlJiBzdGF0dXMpCit7CisgICAgYXV0byBpdGVyYXRvciA9IHN0ZDo6dW5pcXVl
X3B0cjxVQ29uc3RyYWluZWRGaWVsZFBvc2l0aW9uLCBJQ1VEZWxldGVyPHVjZnBvc19jbG9zZT4+
KHVjZnBvc19vcGVuKCZzdGF0dXMpKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIFdlIG9ubHkgY2FyZSBhYm91dCBVRklFTERfQ0FU
RUdPUllfTlVNQkVSX1JBTkdFX1NQQU4gY2F0ZWdvcnkuCisgICAgdWNmcG9zX2NvbnN0cmFpbkNh
dGVnb3J5KGl0ZXJhdG9yLmdldCgpLCBVRklFTERfQ0FURUdPUllfTlVNQkVSX1JBTkdFX1NQQU4s
ICZzdGF0dXMpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgYm9vbCBoYXNTcGFuID0gdWZtdHZhbF9uZXh0UG9zaXRpb24oZm9ybWF0dGVk
VmFsdWUsIGl0ZXJhdG9yLmdldCgpLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1
cykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiAhaGFzU3BhbjsKK30KKwor
dm9pZCBJbnRsTnVtYmVyRm9ybWF0Ojpmb3JtYXRSYW5nZVRvUGFydHNJbnRlcm5hbChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHlsZSBzdHlsZSwgSW50bE1hdGhlbWF0aWNhbFZhbHVl
JiYgc3RhcnQsIEludGxNYXRoZW1hdGljYWxWYWx1ZSYmIGVuZCwgY29uc3QgVUZvcm1hdHRlZFZh
bHVlKiBmb3JtYXR0ZWRWYWx1ZSwgSlNBcnJheSogcGFydHMpCit7CisgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKKworICAgIFVFcnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworCisgICAgaW50MzJf
dCBmb3JtYXR0ZWRTdHJpbmdMZW5ndGggPSAwOworICAgIGNvbnN0IFVDaGFyKiBmb3JtYXR0ZWRT
dHJpbmdQb2ludGVyID0gdWZtdHZhbF9nZXRTdHJpbmcoZm9ybWF0dGVkVmFsdWUsICZmb3JtYXR0
ZWRTdHJpbmdMZW5ndGgsICZzdGF0dXMpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgewor
ICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiRmFpbGVkIHRvIGZv
cm1hdCBudW1iZXIgcmFuZ2UiX3MpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFN0cmlu
ZyByZXN1bHRTdHJpbmcoZm9ybWF0dGVkU3RyaW5nUG9pbnRlciwgZm9ybWF0dGVkU3RyaW5nTGVu
Z3RoKTsKKworICAgIC8vIFdlIGNhcmUgbXVsdGlwbGUgY2F0ZWdvcmllcyAoVUZJRUxEX0NBVEVH
T1JZX0RBVEUgYW5kIFVGSUVMRF9DQVRFR09SWV9EQVRFX0lOVEVSVkFMX1NQQU4pLgorICAgIC8v
IFNvIHdlIGRvIG5vdCBjb25zdHJhaW50IGl0ZXJhdG9yLgorICAgIGF1dG8gaXRlcmF0b3IgPSBz
dGQ6OnVuaXF1ZV9wdHI8VUNvbnN0cmFpbmVkRmllbGRQb3NpdGlvbiwgSUNVRGVsZXRlcjx1Y2Zw
b3NfY2xvc2U+Pih1Y2Zwb3Nfb3Blbigmc3RhdHVzKSk7CisgICAgaWYgKFVfRkFJTFVSRShzdGF0
dXMpKSB7CisgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJGYWls
ZWQgdG8gZm9ybWF0IG51bWJlciByYW5nZSJfcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBhdXRvIHNoYXJlZFN0cmluZyA9IGpzTm9udHJpdmlhbFN0cmluZyh2bSwgInNoYXJlZCJf
cyk7CisgICAgYXV0byBzdGFydFJhbmdlU3RyaW5nID0ganNOb250cml2aWFsU3RyaW5nKHZtLCAi
c3RhcnRSYW5nZSJfcyk7CisgICAgYXV0byBlbmRSYW5nZVN0cmluZyA9IGpzTm9udHJpdmlhbFN0
cmluZyh2bSwgImVuZFJhbmdlIl9zKTsKKyAgICBhdXRvIGxpdGVyYWxTdHJpbmcgPSBqc05vbnRy
aXZpYWxTdHJpbmcodm0sICJsaXRlcmFsIl9zKTsKKworICAgIFdURjo6UmFuZ2U8aW50MzJfdD4g
c3RhcnRSYW5nZSB7IC0xLCAtMSB9OworICAgIFdURjo6UmFuZ2U8aW50MzJfdD4gZW5kUmFuZ2Ug
eyAtMSwgLTEgfTsKKworICAgIGF1dG8gY3JlYXRlUGFydCA9IFsmXSAoSlNTdHJpbmcqIHR5cGUs
IGludDMyX3QgYmVnaW5JbmRleCwgaW50MzJfdCBsZW5ndGgpIHsKKyAgICAgICAgYXV0byBzb3Vy
Y2VUeXBlID0gWyZdKGludDMyX3QgaW5kZXgpIC0+IEpTU3RyaW5nKiB7CisgICAgICAgICAgICBp
ZiAoc3RhcnRSYW5nZS5jb250YWlucyhpbmRleCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0
YXJ0UmFuZ2VTdHJpbmc7CisgICAgICAgICAgICBpZiAoZW5kUmFuZ2UuY29udGFpbnMoaW5kZXgp
KQorICAgICAgICAgICAgICAgIHJldHVybiBlbmRSYW5nZVN0cmluZzsKKyAgICAgICAgICAgIHJl
dHVybiBzaGFyZWRTdHJpbmc7CisgICAgICAgIH07CisKKyAgICAgICAgYXV0byB2YWx1ZSA9IGpz
U3RyaW5nKHZtLCByZXN1bHRTdHJpbmcuc3Vic3RyaW5nKGJlZ2luSW5kZXgsIGxlbmd0aCkpOwor
ICAgICAgICBKU09iamVjdCogcGFydCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVj
dCk7CisgICAgICAgIHBhcnQtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+dHlwZSwg
dHlwZSk7CisgICAgICAgIHBhcnQtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+dmFs
dWUsIHZhbHVlKTsKKyAgICAgICAgcGFydC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5zb3VyY2UsIHNvdXJjZVR5cGUoYmVnaW5JbmRleCkpOworICAgICAgICByZXR1cm4gcGFydDsK
KyAgICB9OworCisgICAgaW50MzJfdCByZXN1bHRMZW5ndGggPSByZXN1bHRTdHJpbmcubGVuZ3Ro
KCk7CisgICAgaW50MzJfdCBwcmV2aW91c0VuZEluZGV4ID0gMDsKKyAgICB3aGlsZSAodHJ1ZSkg
eworICAgICAgICBib29sIG5leHQgPSB1Zm10dmFsX25leHRQb3NpdGlvbihmb3JtYXR0ZWRWYWx1
ZSwgaXRlcmF0b3IuZ2V0KCksICZzdGF0dXMpOworICAgICAgICBpZiAoVV9GQUlMVVJFKHN0YXR1
cykpIHsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJG
YWlsZWQgdG8gZm9ybWF0IG51bWJlciByYW5nZSJfcyk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKCFuZXh0KQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAg
ICAgaW50MzJfdCBjYXRlZ29yeSA9IHVjZnBvc19nZXRDYXRlZ29yeShpdGVyYXRvci5nZXQoKSwg
JnN0YXR1cyk7CisgICAgICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICAgICAg
dGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIkZhaWxlZCB0byBmb3JtYXQgbnVt
YmVyIHJhbmdlIl9zKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IGludDMyX3QgZmllbGRUeXBlID0gdWNmcG9zX2dldEZpZWxkKGl0ZXJhdG9yLmdldCgpLCAmc3Rh
dHVzKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgICAgICB0aHJv
d1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiRmFpbGVkIHRvIGZvcm1hdCBudW1iZXIg
cmFuZ2UiX3MpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaW50
MzJfdCBiZWdpbkluZGV4ID0gMDsKKyAgICAgICAgaW50MzJfdCBlbmRJbmRleCA9IDA7CisgICAg
ICAgIHVjZnBvc19nZXRJbmRleGVzKGl0ZXJhdG9yLmdldCgpLCAmYmVnaW5JbmRleCwgJmVuZElu
ZGV4LCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAg
ICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiRmFpbGVkIHRvIGZvcm1h
dCBudW1iZXIgaW50ZXJ2YWwiX3MpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgZGF0YUxvZ0xuSWYoSW50bE51bWJlckZvcm1hdEludGVybmFsOjp2ZXJib3NlLCBj
YXRlZ29yeSwgIiAiLCBmaWVsZFR5cGUsICIgKCIsIGJlZ2luSW5kZXgsICIsICIsIGVuZEluZGV4
LCAiKSIpOworCisgICAgICAgIGlmIChjYXRlZ29yeSAhPSBVRklFTERfQ0FURUdPUllfTlVNQkVS
ICYmIGNhdGVnb3J5ICE9IFVGSUVMRF9DQVRFR09SWV9OVU1CRVJfUkFOR0VfU1BBTikKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAoY2F0ZWdvcnkgPT0gVUZJRUxEX0NBVEVHT1JZ
X05VTUJFUiAmJiBmaWVsZFR5cGUgPCAwKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAg
ICAgaWYgKHByZXZpb3VzRW5kSW5kZXggPCBiZWdpbkluZGV4KSB7CisgICAgICAgICAgICBKU09i
amVjdCogcGFydCA9IGNyZWF0ZVBhcnQobGl0ZXJhbFN0cmluZywgcHJldmlvdXNFbmRJbmRleCwg
YmVnaW5JbmRleCAtIHByZXZpb3VzRW5kSW5kZXgpOworICAgICAgICAgICAgcGFydHMtPnB1c2go
Z2xvYmFsT2JqZWN0LCBwYXJ0KTsKKyAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHZvaWQoKSk7CisgICAgICAgICAgICBwcmV2aW91c0VuZEluZGV4ID0gYmVnaW5JbmRleDsK
KyAgICAgICAgfQorCisgICAgICAgIGlmIChjYXRlZ29yeSA9PSBVRklFTERfQ0FURUdPUllfTlVN
QkVSX1JBTkdFX1NQQU4pIHsKKyAgICAgICAgICAgIC8vID4gVGhlIHNwZWNpYWwgZmllbGQgY2F0
ZWdvcnkgVUZJRUxEX0NBVEVHT1JZX05VTUJFUl9SQU5HRV9TUEFOIGlzIHVzZWQgdG8gaW5kaWNh
dGUgd2hpY2ggbnVtYmVyCisgICAgICAgICAgICAvLyA+IHByaW1pdGl2ZXMgY2FtZSBmcm9tIHdo
aWNoIGFyZ3VtZW50czogMCBtZWFucyBmcm9tQ2FsZW5kYXIsIGFuZCAxIG1lYW5zIHRvQ2FsZW5k
YXIuIFRoZSBzcGFuIGNhdGVnb3J5CisgICAgICAgICAgICAvLyA+IHdpbGwgYWx3YXlzIG9jY3Vy
IGJlZm9yZSB0aGUgY29ycmVzcG9uZGluZyBmaWVsZHMgaW4gVUZJRUxEX0NBVEVHT1JZX05VTUJF
UiBpbiB0aGUgbmV4dFBvc2l0aW9uKCkgaXRlcmF0b3IuCisgICAgICAgICAgICAvLyBmcm9tIElD
VSBjb21tZW50LiBTbywgZmllbGQgMCBpcyBzdGFydFJhbmdlLCBmaWVsZCAxIGlzIGVuZFJhbmdl
LgorICAgICAgICAgICAgaWYgKCFmaWVsZFR5cGUpCisgICAgICAgICAgICAgICAgc3RhcnRSYW5n
ZSA9IFdURjo6UmFuZ2U8aW50MzJfdD4oYmVnaW5JbmRleCwgZW5kSW5kZXgpOworICAgICAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKGZpZWxkVHlwZSA9PSAxKTsKKyAgICAg
ICAgICAgICAgICBlbmRSYW5nZSA9IFdURjo6UmFuZ2U8aW50MzJfdD4oYmVnaW5JbmRleCwgZW5k
SW5kZXgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0K
KworICAgICAgICBBU1NFUlQoY2F0ZWdvcnkgPT0gVUZJRUxEX0NBVEVHT1JZX05VTUJFUik7CisK
KyAgICAgICAgYm9vbCBzaWduID0gZmFsc2U7CisgICAgICAgIEludGxNYXRoZW1hdGljYWxWYWx1
ZTo6TnVtYmVyVHlwZSBudW1iZXJUeXBlID0gc3RhcnQubnVtYmVyVHlwZSgpOworICAgICAgICBp
ZiAoc3RhcnRSYW5nZS5jb250YWlucyhiZWdpbkluZGV4KSkgeworICAgICAgICAgICAgbnVtYmVy
VHlwZSA9IHN0YXJ0Lm51bWJlclR5cGUoKTsKKyAgICAgICAgICAgIHNpZ24gPSBzdGFydC5zaWdu
KCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBudW1iZXJUeXBlID0gZW5kLm51bWJl
clR5cGUoKTsKKyAgICAgICAgICAgIHNpZ24gPSBlbmQuc2lnbigpOworICAgICAgICB9CisKKyAg
ICAgICAgYXV0byB0eXBlID0ganNTdHJpbmcodm0sIHBhcnRUeXBlU3RyaW5nKFVOdW1iZXJGb3Jt
YXRGaWVsZHMoZmllbGRUeXBlKSwgc3R5bGUsIHNpZ24sIG51bWJlclR5cGUpKTsKKyAgICAgICAg
SlNPYmplY3QqIHBhcnQgPSBjcmVhdGVQYXJ0KHR5cGUsIGJlZ2luSW5kZXgsIGVuZEluZGV4IC0g
YmVnaW5JbmRleCk7CisgICAgICAgIHBhcnRzLT5wdXNoKGdsb2JhbE9iamVjdCwgcGFydCk7Cisg
ICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CisgICAgICAgIHByZXZp
b3VzRW5kSW5kZXggPSBlbmRJbmRleDsKKyAgICB9CisKKyAgICBpZiAocHJldmlvdXNFbmRJbmRl
eCA8IHJlc3VsdExlbmd0aCkgeworICAgICAgICBKU09iamVjdCogcGFydCA9IGNyZWF0ZVBhcnQo
bGl0ZXJhbFN0cmluZywgcHJldmlvdXNFbmRJbmRleCwgcmVzdWx0TGVuZ3RoIC0gcHJldmlvdXNF
bmRJbmRleCk7CisgICAgICAgIHBhcnRzLT5wdXNoKGdsb2JhbE9iamVjdCwgcGFydCk7CisgICAg
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CisgICAgfQorfQorCitKU1Zh
bHVlIEludGxOdW1iZXJGb3JtYXQ6OmZvcm1hdFJhbmdlVG9QYXJ0cyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBkb3VibGUgc3RhcnQsIGRvdWJsZSBlbmQpIGNvbnN0Cit7CisgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKKworICAgIEFTU0VSVChtX251bWJlclJhbmdlRm9ybWF0dGVyKTsKKworICAg
IGlmIChzdGQ6OmlzbmFuKHN0YXJ0KSB8fCBzdGQ6OmlzbmFuKGVuZCkpCisgICAgICAgIHJldHVy
biB0aHJvd1JhbmdlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlBhc3NlZCBudW1iZXJzIGFy
ZSBvdXQgb2YgcmFuZ2UiX3MpOworCisgICAgaWYgKGVuZCA8IHN0YXJ0KQorICAgICAgICByZXR1
cm4gdGhyb3dSYW5nZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJzdGFydCBpcyBsYXJnZXIg
dGhhbiBlbmQiX3MpOworCisgICAgaWYgKGlzTmVnYXRpdmVaZXJvKGVuZCkgJiYgc3RhcnQgPj0g
MCkKKyAgICAgICAgcmV0dXJuIHRocm93UmFuZ2VFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAi
c3RhcnQgaXMgbGFyZ2VyIHRoYW4gZW5kIl9zKTsKKworICAgIFVFcnJvckNvZGUgc3RhdHVzID0g
VV9aRVJPX0VSUk9SOworICAgIGF1dG8gcmFuZ2UgPSBzdGQ6OnVuaXF1ZV9wdHI8VUZvcm1hdHRl
ZE51bWJlclJhbmdlLCBJQ1VEZWxldGVyPHVudW1yZl9jbG9zZVJlc3VsdD4+KHVudW1yZl9vcGVu
UmVzdWx0KCZzdGF0dXMpKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpCisgICAgICAgIHJl
dHVybiB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGZvcm1h
dCBhIHJhbmdlIl9zKTsKKworICAgIHVudW1yZl9mb3JtYXREb3VibGVSYW5nZShtX251bWJlclJh
bmdlRm9ybWF0dGVyLmdldCgpLCBzdGFydCwgZW5kLCByYW5nZS5nZXQoKSwgJnN0YXR1cyk7Cisg
ICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKQorICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3Io
Z2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBmb3JtYXQgYSByYW5nZSJfcyk7CisKKyAg
ICBhdXRvKiBmb3JtYXR0ZWRWYWx1ZSA9IHVudW1yZl9yZXN1bHRBc1ZhbHVlKHJhbmdlLmdldCgp
LCAmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpCisgICAgICAgIHJldHVybiB0
aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGZvcm1hdCBhIHJh
bmdlIl9zKTsKKworICAgIGJvb2wgZXF1YWwgPSBudW1iZXJGaWVsZHNQcmFjdGljYWxseUVxdWFs
KGZvcm1hdHRlZFZhbHVlLCBzdGF0dXMpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgewor
ICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiRmFpbGVkIHRvIGZv
cm1hdCBudW1iZXIgcmFuZ2UiX3MpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAg
IGlmIChlcXVhbCkKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBmb3JtYXRUb1Bh
cnRzKGdsb2JhbE9iamVjdCwgc3RhcnQsIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgInNoYXJlZCJf
cykpKTsKKworICAgIEpTQXJyYXkqIHBhcnRzID0gSlNBcnJheTo6dHJ5Q3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlvbihB
cnJheVdpdGhDb250aWd1b3VzKSwgMCk7CisgICAgaWYgKCFwYXJ0cykgeworICAgICAgICB0aHJv
d091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CisgICAgICAgIHJldHVybiB7
IH07CisgICAgfQorCisgICAgZm9ybWF0UmFuZ2VUb1BhcnRzSW50ZXJuYWwoZ2xvYmFsT2JqZWN0
LCBtX3N0eWxlLCBJbnRsTWF0aGVtYXRpY2FsVmFsdWUoc3RhcnQpLCBJbnRsTWF0aGVtYXRpY2Fs
VmFsdWUoZW5kKSwgZm9ybWF0dGVkVmFsdWUsIHBhcnRzKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCB7IH0pOworCisgICAgcmV0dXJuIHBhcnRzOworfQorCitKU1ZhbHVlIEludGxO
dW1iZXJGb3JtYXQ6OmZvcm1hdFJhbmdlVG9QYXJ0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBJbnRsTWF0aGVtYXRpY2FsVmFsdWUmJiBzdGFydCwgSW50bE1hdGhlbWF0aWNhbFZhbHVl
JiYgZW5kKSBjb25zdAoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBBU1NFUlQobV9udW1i
ZXJSYW5nZUZvcm1hdHRlcik7CisKKyAgICBpZiAoc3RhcnQubnVtYmVyVHlwZSgpID09IEludGxN
YXRoZW1hdGljYWxWYWx1ZTo6TnVtYmVyVHlwZTo6TmFOIHx8IGVuZC5udW1iZXJUeXBlKCkgPT0g
SW50bE1hdGhlbWF0aWNhbFZhbHVlOjpOdW1iZXJUeXBlOjpOYU4pCisgICAgICAgIHJldHVybiB0
aHJvd1JhbmdlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlBhc3NlZCBudW1iZXJzIGFyZSBv
dXQgb2YgcmFuZ2UiX3MpOworCisgICAgc3RhcnQuZW5zdXJlTm9uRG91YmxlKCk7CisgICAgY29u
c3QgYXV0byYgc3RhcnRTdHJpbmcgPSBzdGFydC5nZXRTdHJpbmcoKTsKKworICAgIGVuZC5lbnN1
cmVOb25Eb3VibGUoKTsKKyAgICBjb25zdCBhdXRvJiBlbmRTdHJpbmcgPSBlbmQuZ2V0U3RyaW5n
KCk7CisKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBhdXRvIHJh
bmdlID0gc3RkOjp1bmlxdWVfcHRyPFVGb3JtYXR0ZWROdW1iZXJSYW5nZSwgSUNVRGVsZXRlcjx1
bnVtcmZfY2xvc2VSZXN1bHQ+Pih1bnVtcmZfb3BlblJlc3VsdCgmc3RhdHVzKSk7CisgICAgaWYg
KFVfRkFJTFVSRShzdGF0dXMpKQorICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBmb3JtYXQgYSByYW5nZSJfcyk7CisKKyAgICB1bnVt
cmZfZm9ybWF0RGVjaW1hbFJhbmdlKG1fbnVtYmVyUmFuZ2VGb3JtYXR0ZXIuZ2V0KCksIHN0YXJ0
U3RyaW5nLmRhdGEoKSwgc3RhcnRTdHJpbmcubGVuZ3RoKCksIGVuZFN0cmluZy5kYXRhKCksIGVu
ZFN0cmluZy5sZW5ndGgoKSwgcmFuZ2UuZ2V0KCksICZzdGF0dXMpOworICAgIGlmIChVX0ZBSUxV
UkUoc3RhdHVzKSkKKyAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwg
c2NvcGUsICJmYWlsZWQgdG8gZm9ybWF0IGEgcmFuZ2UiX3MpOworCisgICAgYXV0byogZm9ybWF0
dGVkVmFsdWUgPSB1bnVtcmZfcmVzdWx0QXNWYWx1ZShyYW5nZS5nZXQoKSwgJnN0YXR1cyk7Cisg
ICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKQorICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3Io
Z2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBmb3JtYXQgYSByYW5nZSJfcyk7CisKKyAg
ICBib29sIGVxdWFsID0gbnVtYmVyRmllbGRzUHJhY3RpY2FsbHlFcXVhbChmb3JtYXR0ZWRWYWx1
ZSwgc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dU
eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIkZhaWxlZCB0byBmb3JtYXQgbnVtYmVyIHJh
bmdlIl9zKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBpZiAoZXF1YWwpCisg
ICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgZm9ybWF0VG9QYXJ0cyhnbG9iYWxPYmpl
Y3QsIFdURk1vdmUoc3RhcnQpLCBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJzaGFyZWQiX3MpKSk7
CisKKyAgICBKU0FycmF5KiBwYXJ0cyA9IEpTQXJyYXk6OnRyeUNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24oQXJyYXlX
aXRoQ29udGlndW91cyksIDApOworICAgIGlmICghcGFydHMpIHsKKyAgICAgICAgdGhyb3dPdXRP
Zk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOworICAgICAgICByZXR1cm4geyB9Owor
ICAgIH0KKworICAgIGZvcm1hdFJhbmdlVG9QYXJ0c0ludGVybmFsKGdsb2JhbE9iamVjdCwgbV9z
dHlsZSwgV1RGTW92ZShzdGFydCksIFdURk1vdmUoZW5kKSwgZm9ybWF0dGVkVmFsdWUsIHBhcnRz
KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworCisgICAgcmV0dXJuIHBh
cnRzOworfQorI2VuZGlmCisKIEFTQ0lJTGl0ZXJhbCBJbnRsTnVtYmVyRm9ybWF0OjpzdHlsZVN0
cmluZyhTdHlsZSBzdHlsZSkKIHsKICAgICBzd2l0Y2ggKHN0eWxlKSB7CkBAIC0xMTI0LDcgKzEz
NzcsNyBAQCB2b2lkIEludGxOdW1iZXJGb3JtYXQ6OnNldEJvdW5kRm9ybWF0KFZNJiB2bSwgSlNC
b3VuZEZ1bmN0aW9uKiBmb3JtYXQpCiAgICAgbV9ib3VuZEZvcm1hdC5zZXQodm0sIHRoaXMsIGZv
cm1hdCk7CiB9CiAKLXZvaWQgSW50bE51bWJlckZvcm1hdDo6Zm9ybWF0VG9QYXJ0c0ludGVybmFs
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0eWxlIHN0eWxlLCBib29sIHNpZ24sIElu
dGxNYXRoZW1hdGljYWxWYWx1ZTo6TnVtYmVyVHlwZSBudW1iZXJUeXBlLCBjb25zdCBTdHJpbmcm
IGZvcm1hdHRlZCwgSW50bEZpZWxkSXRlcmF0b3ImIGl0ZXJhdG9yLCBKU0FycmF5KiBwYXJ0cywg
SlNTdHJpbmcqIHVuaXQpCit2b2lkIEludGxOdW1iZXJGb3JtYXQ6OmZvcm1hdFRvUGFydHNJbnRl
cm5hbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHlsZSBzdHlsZSwgYm9vbCBzaWdu
LCBJbnRsTWF0aGVtYXRpY2FsVmFsdWU6Ok51bWJlclR5cGUgbnVtYmVyVHlwZSwgY29uc3QgU3Ry
aW5nJiBmb3JtYXR0ZWQsIEludGxGaWVsZEl0ZXJhdG9yJiBpdGVyYXRvciwgSlNBcnJheSogcGFy
dHMsIEpTU3RyaW5nKiBzb3VyY2VUeXBlLCBKU1N0cmluZyogdW5pdCkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMTE3NCwxMyArMTQyNywxNSBAQCB2b2lkIEludGxOdW1iZXJGb3JtYXQ6OmZv
cm1hdFRvUGFydHNJbnRlcm5hbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHlsZQog
ICAgICAgICBwYXJ0LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnZhbHVlLCBwYXJ0
VmFsdWUpOwogICAgICAgICBpZiAodW5pdCkKICAgICAgICAgICAgIHBhcnQtPnB1dERpcmVjdCh2
bSwgdW5pdE5hbWUsIHVuaXQpOworICAgICAgICBpZiAoc291cmNlVHlwZSkKKyAgICAgICAgICAg
IHBhcnQtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+c291cmNlLCBzb3VyY2VUeXBl
KTsKICAgICAgICAgcGFydHMtPnB1c2goZ2xvYmFsT2JqZWN0LCBwYXJ0KTsKICAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKICAgICB9CiB9CiAKIC8vIGh0dHBzOi8v
dGMzOS5naXRodWIuaW8vZWNtYTQwMi8jc2VjLWZvcm1hdG51bWJlcnRvcGFydHMKLUpTVmFsdWUg
SW50bE51bWJlckZvcm1hdDo6Zm9ybWF0VG9QYXJ0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBkb3VibGUgdmFsdWUpIGNvbnN0CitKU1ZhbHVlIEludGxOdW1iZXJGb3JtYXQ6OmZvcm1h
dFRvUGFydHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgZG91YmxlIHZhbHVlLCBKU1N0
cmluZyogc291cmNlVHlwZSkgY29uc3QKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTIyMCwx
NCArMTQ3NSwxNCBAQCBKU1ZhbHVlIEludGxOdW1iZXJGb3JtYXQ6OmZvcm1hdFRvUGFydHMoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgZG91YmxlIHZhbAogICAgIGlmICghcGFydHMpCiAg
ICAgICAgIHJldHVybiB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7
CiAKLSAgICBmb3JtYXRUb1BhcnRzSW50ZXJuYWwoZ2xvYmFsT2JqZWN0LCBtX3N0eWxlLCBzdGQ6
OnNpZ25iaXQodmFsdWUpLCBJbnRsTWF0aGVtYXRpY2FsVmFsdWU6Om51bWJlclR5cGVGcm9tRG91
YmxlKHZhbHVlKSwgcmVzdWx0U3RyaW5nLCBpdGVyYXRvciwgcGFydHMpOworICAgIGZvcm1hdFRv
UGFydHNJbnRlcm5hbChnbG9iYWxPYmplY3QsIG1fc3R5bGUsIHN0ZDo6c2lnbmJpdCh2YWx1ZSks
IEludGxNYXRoZW1hdGljYWxWYWx1ZTo6bnVtYmVyVHlwZUZyb21Eb3VibGUodmFsdWUpLCByZXN1
bHRTdHJpbmcsIGl0ZXJhdG9yLCBwYXJ0cywgc291cmNlVHlwZSk7CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIHJldHVybiBwYXJ0czsKIH0KIAogI2lmIEhBVkUo
SUNVX1VfTlVNQkVSX0ZPUk1BVFRFUikKLUpTVmFsdWUgSW50bE51bWJlckZvcm1hdDo6Zm9ybWF0
VG9QYXJ0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBJbnRsTWF0aGVtYXRpY2FsVmFs
dWUmJiB2YWx1ZSkgY29uc3QKK0pTVmFsdWUgSW50bE51bWJlckZvcm1hdDo6Zm9ybWF0VG9QYXJ0
cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBJbnRsTWF0aGVtYXRpY2FsVmFsdWUmJiB2
YWx1ZSwgSlNTdHJpbmcqIHNvdXJjZVR5cGUpIGNvbnN0CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTEyNjYsNyArMTUyMSw3IEBAIEpTVmFsdWUgSW50bE51bWJlckZvcm1hdDo6Zm9ybWF0VG9Q
YXJ0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBJbnRsTWF0aGVtCiAgICAgaWYgKCFw
YXJ0cykKICAgICAgICAgcmV0dXJuIHRocm93T3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3Qs
IHNjb3BlKTsKIAotICAgIGZvcm1hdFRvUGFydHNJbnRlcm5hbChnbG9iYWxPYmplY3QsIG1fc3R5
bGUsIHZhbHVlLnNpZ24oKSwgdmFsdWUubnVtYmVyVHlwZSgpLCByZXN1bHRTdHJpbmcsIGl0ZXJh
dG9yLCBwYXJ0cyk7CisgICAgZm9ybWF0VG9QYXJ0c0ludGVybmFsKGdsb2JhbE9iamVjdCwgbV9z
dHlsZSwgdmFsdWUuc2lnbigpLCB2YWx1ZS5udW1iZXJUeXBlKCksIHJlc3VsdFN0cmluZywgaXRl
cmF0b3IsIHBhcnRzLCBzb3VyY2VUeXBlKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB7IH0pOwogCiAgICAgcmV0dXJuIHBhcnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bE51bWJlckZvcm1hdC5oCmluZGV4IGNiNjFkYWUyZmJhYzFkMTZlYzAyZDk3
MTc0YTEzMjUyY2MwMzMwMjEuLjY1NzI4ZGM4OGU4OGEzYTExZGQ0NjY5NGQ5YTg3ZDAyNGE5Y2Rm
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJG
b3JtYXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9y
bWF0LmgKQEAgLTQ2LDYgKzQ2LDEzIEBACiAjZW5kaWYKICNlbmRpZgogCisjaWYgIWRlZmluZWQo
SEFWRV9JQ1VfVV9OVU1CRVJfUkFOR0VfRk9STUFUVEVSX0ZPUk1BVF9SQU5HRV9UT19QQVJUUykK
KyNpZiBVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA+PSA2OQorI2RlZmluZSBIQVZFX0lDVV9VX05V
TUJFUl9SQU5HRV9GT1JNQVRURVJfRk9STUFUX1JBTkdFX1RPX1BBUlRTIDEKKyNlbmRpZgorI2Vu
ZGlmCisKK3N0cnVjdCBVRm9ybWF0dGVkVmFsdWU7CiBzdHJ1Y3QgVU51bWJlckZvcm1hdHRlcjsK
IHN0cnVjdCBVTnVtYmVyUmFuZ2VGb3JtYXR0ZXI7CiAKQEAgLTE3MCw5ICsxNzcsOSBAQCBjbGFz
cyBJbnRsTnVtYmVyRm9ybWF0IGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAg
IHZvaWQgaW5pdGlhbGl6ZU51bWJlckZvcm1hdChKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgbG9j
YWxlcywgSlNWYWx1ZSBvcHRpb25zVmFsdWUpOwogICAgIEpTVmFsdWUgZm9ybWF0KEpTR2xvYmFs
T2JqZWN0KiwgZG91YmxlKSBjb25zdDsKICAgICBKU1ZhbHVlIGZvcm1hdChKU0dsb2JhbE9iamVj
dCosIEludGxNYXRoZW1hdGljYWxWYWx1ZSYmKSBjb25zdDsKLSAgICBKU1ZhbHVlIGZvcm1hdFRv
UGFydHMoSlNHbG9iYWxPYmplY3QqLCBkb3VibGUpIGNvbnN0OworICAgIEpTVmFsdWUgZm9ybWF0
VG9QYXJ0cyhKU0dsb2JhbE9iamVjdCosIGRvdWJsZSwgSlNTdHJpbmcqIHNvdXJjZVR5cGUgPSBu
dWxscHRyKSBjb25zdDsKICNpZiBIQVZFKElDVV9VX05VTUJFUl9GT1JNQVRURVIpCi0gICAgSlNW
YWx1ZSBmb3JtYXRUb1BhcnRzKEpTR2xvYmFsT2JqZWN0KiwgSW50bE1hdGhlbWF0aWNhbFZhbHVl
JiYpIGNvbnN0OworICAgIEpTVmFsdWUgZm9ybWF0VG9QYXJ0cyhKU0dsb2JhbE9iamVjdCosIElu
dGxNYXRoZW1hdGljYWxWYWx1ZSYmLCBKU1N0cmluZyogc291cmNlVHlwZSA9IG51bGxwdHIpIGNv
bnN0OwogI2VuZGlmCiAgICAgSlNPYmplY3QqIHJlc29sdmVkT3B0aW9ucyhKU0dsb2JhbE9iamVj
dCopIGNvbnN0OwogCkBAIC0xODEsMTIgKzE4OCwxOCBAQCBjbGFzcyBJbnRsTnVtYmVyRm9ybWF0
IGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIEpTVmFsdWUgZm9ybWF0UmFu
Z2UoSlNHbG9iYWxPYmplY3QqLCBJbnRsTWF0aGVtYXRpY2FsVmFsdWUmJiwgSW50bE1hdGhlbWF0
aWNhbFZhbHVlJiYpIGNvbnN0OwogI2VuZGlmCiAKKyNpZiBIQVZFKElDVV9VX05VTUJFUl9SQU5H
RV9GT1JNQVRURVJfRk9STUFUX1JBTkdFX1RPX1BBUlRTKQorICAgIEpTVmFsdWUgZm9ybWF0UmFu
Z2VUb1BhcnRzKEpTR2xvYmFsT2JqZWN0KiwgZG91YmxlLCBkb3VibGUpIGNvbnN0OworICAgIEpT
VmFsdWUgZm9ybWF0UmFuZ2VUb1BhcnRzKEpTR2xvYmFsT2JqZWN0KiwgSW50bE1hdGhlbWF0aWNh
bFZhbHVlJiYsIEludGxNYXRoZW1hdGljYWxWYWx1ZSYmKSBjb25zdDsKKyNlbmRpZgorCiAgICAg
SlNCb3VuZEZ1bmN0aW9uKiBib3VuZEZvcm1hdCgpIGNvbnN0IHsgcmV0dXJuIG1fYm91bmRGb3Jt
YXQuZ2V0KCk7IH0KICAgICB2b2lkIHNldEJvdW5kRm9ybWF0KFZNJiwgSlNCb3VuZEZ1bmN0aW9u
Kik7CiAKICAgICBlbnVtIGNsYXNzIFN0eWxlIDogdWludDhfdCB7IERlY2ltYWwsIFBlcmNlbnQs
IEN1cnJlbmN5LCBVbml0IH07CiAKLSAgICBzdGF0aWMgdm9pZCBmb3JtYXRUb1BhcnRzSW50ZXJu
YWwoSlNHbG9iYWxPYmplY3QqLCBTdHlsZSwgYm9vbCBzaWduLCBJbnRsTWF0aGVtYXRpY2FsVmFs
dWU6Ok51bWJlclR5cGUsIGNvbnN0IFN0cmluZyYgZm9ybWF0dGVkLCBJbnRsRmllbGRJdGVyYXRv
ciYsIEpTQXJyYXkqLCBKU1N0cmluZyogdW5pdCA9IG51bGxwdHIpOworICAgIHN0YXRpYyB2b2lk
IGZvcm1hdFRvUGFydHNJbnRlcm5hbChKU0dsb2JhbE9iamVjdCosIFN0eWxlLCBib29sIHNpZ24s
IEludGxNYXRoZW1hdGljYWxWYWx1ZTo6TnVtYmVyVHlwZSwgY29uc3QgU3RyaW5nJiBmb3JtYXR0
ZWQsIEludGxGaWVsZEl0ZXJhdG9yJiwgSlNBcnJheSosIEpTU3RyaW5nKiBzb3VyY2VUeXBlLCBK
U1N0cmluZyogdW5pdCA9IG51bGxwdHIpOworICAgIHN0YXRpYyB2b2lkIGZvcm1hdFJhbmdlVG9Q
YXJ0c0ludGVybmFsKEpTR2xvYmFsT2JqZWN0KiwgU3R5bGUsIEludGxNYXRoZW1hdGljYWxWYWx1
ZSYmLCBJbnRsTWF0aGVtYXRpY2FsVmFsdWUmJiwgY29uc3QgVUZvcm1hdHRlZFZhbHVlKiwgSlNB
cnJheSopOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSW50bFR5cGU+CiAgICAgZnJpZW5kIHZv
aWQgc2V0TnVtYmVyRm9ybWF0RGlnaXRPcHRpb25zKEpTR2xvYmFsT2JqZWN0KiwgSW50bFR5cGUq
LCBKU09iamVjdCosIHVuc2lnbmVkIG1pbmltdW1GcmFjdGlvbkRpZ2l0c0RlZmF1bHQsIHVuc2ln
bmVkIG1heGltdW1GcmFjdGlvbkRpZ2l0c0RlZmF1bHQsIEludGxOb3RhdGlvbik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90
eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRQ
cm90b3R5cGUuY3BwCmluZGV4IDRmOGMwZDI3NWEwM2Q3NWI2NjJjZGM1ZDk2OTBmMjU5NDI0MzFj
OTguLjhmM2ExOTY2MTMwOTdlMjdiMzRjOWU3Zjg2ZjJhMzAxYzBkOWVjNjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRQ
cm90b3R5cGUuY3BwCkBAIC00Myw2ICs0MywxMCBAQCBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihpbnRsTnVtYmVyRm9ybWF0RnVuY0Zvcm1hdCk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihpbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFJhbmdlKTsK
ICNlbmRpZgogCisjaWYgSEFWRShJQ1VfVV9OVU1CRVJfUkFOR0VfRk9STUFUVEVSX0ZPUk1BVF9S
QU5HRV9UT19QQVJUUykKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGludGxOdW1i
ZXJGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0UmFuZ2VUb1BhcnRzKTsKKyNlbmRpZgorCiB9CiAK
ICNpbmNsdWRlICJJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmx1dC5oIgpAQCAtODUsNiArODks
OSBAQCB2b2lkIEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogI2lmIEhBVkUoSUNVX1VfTlVNQkVSX1JBTkdF
X0ZPUk1BVFRFUikKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigi
Zm9ybWF0UmFuZ2UiLCBpbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFJhbmdlLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CiAj
ZW5kaWYKKyNpZiBIQVZFKElDVV9VX05VTUJFUl9SQU5HRV9GT1JNQVRURVJfRk9STUFUX1JBTkdF
X1RPX1BBUlRTKQorICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJm
b3JtYXRSYW5nZVRvUGFydHMiLCBpbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFJh
bmdlVG9QYXJ0cywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSksIDIpOworI2VuZGlmCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMt
bnVtYmVyLWZvcm1hdC1mdW5jdGlvbnMKQEAgLTE5Myw2ICsyMDAsMzggQEAgSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0VG9QYXJ0cywg
KEpTR2xvYmFsT2IKICNlbmRpZgogfQogCisjaWYgSEFWRShJQ1VfVV9OVU1CRVJfUkFOR0VfRk9S
TUFUVEVSX0ZPUk1BVF9SQU5HRV9UT19QQVJUUykKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihp
bnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFJhbmdlVG9QYXJ0cywgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOworCisgICAgLy8gRG8gbm90IHVzZSB1bndyYXBGb3JPbGRGdW5jdGlvbnMuCisg
ICAgYXV0byogbnVtYmVyRm9ybWF0ID0ganNEeW5hbWljQ2FzdDxJbnRsTnVtYmVyRm9ybWF0Kj4o
dm0sIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOworICAgIGlmIChVTkxJS0VMWSghbnVtYmVyRm9y
bWF0KSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd1R5cGVFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlLCAiSW50bC5OdW1iZXJGb3JtYXQucHJvdG90eXBlLmZvcm1hdFJhbmdl
VG9QYXJ0cyBjYWxsZWQgb24gdmFsdWUgdGhhdCdzIG5vdCBhIE51bWJlckZvcm1hdCJfcykpOwor
CisgICAgSlNWYWx1ZSBzdGFydFZhbHVlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKKyAgICBK
U1ZhbHVlIGVuZFZhbHVlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgxKTsKKworICAgIGlmIChzdGFy
dFZhbHVlLmlzVW5kZWZpbmVkKCkgfHwgZW5kVmFsdWUuaXNVbmRlZmluZWQoKSkKKyAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgInN0YXJ0IG9yIGVu
ZCBpcyB1bmRlZmluZWQiX3MpOworCisgICAgYXV0byBzdGFydCA9IHRvSW50bE1hdGhlbWF0aWNh
bFZhbHVlKGdsb2JhbE9iamVjdCwgc3RhcnRWYWx1ZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgeyB9KTsKKworICAgIGF1dG8gZW5kID0gdG9JbnRsTWF0aGVtYXRpY2FsVmFsdWUo
Z2xvYmFsT2JqZWN0LCBlbmRWYWx1ZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
eyB9KTsKKworICAgIGlmIChhdXRvIHN0YXJ0TnVtYmVyID0gc3RhcnQudHJ5R2V0RG91YmxlKCkp
IHsKKyAgICAgICAgaWYgKGF1dG8gZW5kTnVtYmVyID0gZW5kLnRyeUdldERvdWJsZSgpKQorICAg
ICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUobnVtYmVy
Rm9ybWF0LT5mb3JtYXRSYW5nZVRvUGFydHMoZ2xvYmFsT2JqZWN0LCBzdGFydE51bWJlci52YWx1
ZSgpLCBlbmROdW1iZXIudmFsdWUoKSkpKTsKKyAgICB9CisKKyAgICBSRUxFQVNFX0FORF9SRVRV
Uk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShudW1iZXJGb3JtYXQtPmZvcm1hdFJhbmdlVG9QYXJ0
cyhnbG9iYWxPYmplY3QsIFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCkpKSk7Cit9CisjZW5k
aWYKKwogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVG
dW5jUmVzb2x2ZWRPcHRpb25zLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxSZWxhdGl2ZVRpbWVG
b3JtYXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFJlbGF0aXZlVGlt
ZUZvcm1hdC5jcHAKaW5kZXggN2FhM2UzMzI2Y2U1Mjk4MTkxMWU0MGE1MTBjN2U5MWI2YTBlZDE2
Yi4uZTMyOGExYzFmNDBjNDllNjk1NDUxYTUzZDI5OWU1MjMxN2I5ZDc1NiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1h
dC5jcHAKQEAgLTMxOCw3ICszMTgsNyBAQCBKU1ZhbHVlIEludGxSZWxhdGl2ZVRpbWVGb3JtYXQ6
OmZvcm1hdFRvUGFydHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgZG91YgogICAgICAg
ICB9CiAKICAgICAgICAgSW50bEZpZWxkSXRlcmF0b3IgZmllbGRJdGVyYXRvcigqaXRlcmF0b3Iu
Z2V0KCkpOwotICAgICAgICBJbnRsTnVtYmVyRm9ybWF0Ojpmb3JtYXRUb1BhcnRzSW50ZXJuYWwo
Z2xvYmFsT2JqZWN0LCBJbnRsTnVtYmVyRm9ybWF0OjpTdHlsZTo6RGVjaW1hbCwgc3RkOjpzaWdu
Yml0KGFic1ZhbHVlKSwgSW50bE1hdGhlbWF0aWNhbFZhbHVlOjpudW1iZXJUeXBlRnJvbURvdWJs
ZShhYnNWYWx1ZSksIGZvcm1hdHRlZE51bWJlciwgZmllbGRJdGVyYXRvciwgcGFydHMsIGpzU3Ry
aW5nKHZtLCBzaW5ndWxhclVuaXQodW5pdCkudG9TdHJpbmcoKSkpOworICAgICAgICBJbnRsTnVt
YmVyRm9ybWF0Ojpmb3JtYXRUb1BhcnRzSW50ZXJuYWwoZ2xvYmFsT2JqZWN0LCBJbnRsTnVtYmVy
Rm9ybWF0OjpTdHlsZTo6RGVjaW1hbCwgc3RkOjpzaWduYml0KGFic1ZhbHVlKSwgSW50bE1hdGhl
bWF0aWNhbFZhbHVlOjpudW1iZXJUeXBlRnJvbURvdWJsZShhYnNWYWx1ZSksIGZvcm1hdHRlZE51
bWJlciwgZmllbGRJdGVyYXRvciwgcGFydHMsIG51bGxwdHIsIGpzU3RyaW5nKHZtLCBzaW5ndWxh
clVuaXQodW5pdCkudG9TdHJpbmcoKSkpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOwogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445248</attachid>
            <date>2021-11-28 21:44:17 -0800</date>
            <delta_ts>2021-11-28 22:12:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233539-20211129054416.patch</filename>
            <type>text/plain</type>
            <size>48160</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
ZGVlNThiZWRjZjQzNDJkMjgyY2IyMTk0N2QzYzllZWI1MDM4ZTg2Li5mYTczMzlhZjQwM2Y4OTM2
Y2Y2NzM5NDBjMDNjZjZhYTE3MzU5ODYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAyMS0xMS0yOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBJbnRsLk51bWJlckZvcm1hdC5mb3JtYXRSYW5nZVRvUGFy
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzUz
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcnVu
dGltZS9JbnRsTnVtYmVyRm9ybWF0LmNwcDoKKyAgICAgICAgKEpTQzo6ZmxhdHRlbkZpZWxkcyk6
CisgICAgICAgIChKU0M6Om51bWJlckZpZWxkc1ByYWN0aWNhbGx5RXF1YWwpOgorICAgICAgICAo
SlNDOjpJbnRsTnVtYmVyRm9ybWF0Ojpmb3JtYXRSYW5nZVRvUGFydHNJbnRlcm5hbCk6CisgICAg
ICAgIChKU0M6OkludGxOdW1iZXJGb3JtYXQ6OmZvcm1hdFJhbmdlVG9QYXJ0cyBjb25zdCk6Cisg
ICAgICAgIChKU0M6OkludGxOdW1iZXJGb3JtYXQ6OmZvcm1hdFRvUGFydHNJbnRlcm5hbCk6Cisg
ICAgICAgIChKU0M6OkludGxOdW1iZXJGb3JtYXQ6OmZvcm1hdFRvUGFydHMgY29uc3QpOgorICAg
ICAgICAqIHJ1bnRpbWUvSW50bE51bWJlckZvcm1hdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSW50
bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkludGxOdW1iZXJGb3Jt
YXRQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiBydW50aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3JtYXQu
Y3BwOgorICAgICAgICAoSlNDOjpJbnRsUmVsYXRpdmVUaW1lRm9ybWF0Ojpmb3JtYXRUb1BhcnRz
IGNvbnN0KToKKwogMjAyMS0xMS0yNiAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBp
Z2FsaWEuY29tPgogCiAgICAgICAgIE5vbi11bmlmaWVkIGJ1aWxkIGZpeGVzLCBsYXRlIE5vdmVt
YmVyIDIwMjEgZWRpdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50bE51bWJlckZvcm1hdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRsTnVtYmVyRm9ybWF0LmNwcAppbmRleCBkOGI0NTNmNjRmMzYzMGM2MTcwNGFjMmRhZmQwYzQ0
NjY2NzMxMmRhLi5lMzQ5YWE5ODFkOGNhY2JkNmU0ZWIyYzU3Y2FjM2IwNmY0ODY4MjU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0LmNw
cApAQCAtNzMsNyArNzMsNyBAQCB2b2lkIFVOdW1iZXJSYW5nZUZvcm1hdHRlckRlbGV0ZXI6Om9w
ZXJhdG9yKCkoVU51bWJlclJhbmdlRm9ybWF0dGVyKiBmb3JtYXR0ZXIpCiB9CiAjZW5kaWYKIAot
c3RydWN0IEludGxOdW1iZXJGb3JtYXRGaWVsZCB7CitzdHJ1Y3QgTnVtYmVyRm9ybWF0RmllbGQg
ewogICAgIGludDMyX3QgdHlwZTsKICAgICBzaXplX3Qgc2l6ZTsKIH07CkBAIC04OTUsNiArODk1
LDM1NCBAQCBKU1ZhbHVlIEludGxOdW1iZXJGb3JtYXQ6OmZvcm1hdFJhbmdlKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEludGxNYXRoZW1hdAogfQogI2VuZGlmCiAKK3N0YXRpYyBjb25z
dGV4cHIgaW50MzJfdCBsaXRlcmFsRmllbGQgPSAtMTsKK3N0cnVjdCBJbnRsTnVtYmVyRm9ybWF0
RmllbGQgeworICAgIGludDMyX3QgbV9maWVsZDsKKyAgICBXVEY6OlJhbmdlPGludDMyX3Q+IG1f
cmFuZ2U7Cit9OworCitzdGF0aWMgVmVjdG9yPEludGxOdW1iZXJGb3JtYXRGaWVsZD4gZmxhdHRl
bkZpZWxkcyhWZWN0b3I8SW50bE51bWJlckZvcm1hdEZpZWxkPiYmIGZpZWxkcywgaW50MzJfdCBm
b3JtYXR0ZWRTdHJpbmdMZW5ndGgpCit7CisgICAgLy8gSUNVIGdlbmVyYXRlcyBzZXF1ZW5jZSBv
ZiBuZXN0ZWQgZmllbGRzLCBidXQgRUNNQTQwMiByZXF1aXJlcyBub24tb3ZlcmxhcHBpbmcgc2Vx
dWVuY2Ugb2YgcGFydHMuCisgICAgLy8gVGhpcyBmdW5jdGlvbiBmbGF0dGVucyBuZXN0ZWQgZmll
bGRzIGludG8gc2VxdWVuY2Ugb2Ygbm9uLW92ZXJsYXBwaW5nIHBhcnRzLgorICAgIC8vCisgICAg
Ly8gRm9ybWF0dGVkIHN0cmluZzogIjEwMCwwMDDigJMyMCwwMDAsMDAwIgorICAgIC8vICAgICAg
ICAgICAgICAgICAgICB8ICB8ICB8IHwgfCAgIHwgIHwKKyAgICAvLyAgICAgICAgICAgICAgICAg
ICAgfCAgQiAgfCB8IEUgICBGICB8CisgICAgLy8gICAgICAgICAgICAgICAgICAgIHwgICAgIHwg
fCAgICAgICAgfAorICAgIC8vICAgICAgICAgICAgICAgICAgICArLS1DLS0rICstLS1HLS0tLSsK
KyAgICAvLyAgICAgICAgICAgICAgICAgICAgKy0tQS0tKyArLS0tRC0tLS0rCisgICAgLy8KKyAg
ICAvLyBSYW5nZXMgSUNVIGdlbmVyYXRlczoKKyAgICAvLyAgICAgQTogICAgKDAsIDcpICAgVUZJ
RUxEX0NBVEVHT1JZX05VTUJFUl9SQU5HRV9TUEFOIHN0YXJ0UmFuZ2UKKyAgICAvLyAgICAgQjog
ICAgKDMsIDQpICAgVUZJRUxEX0NBVEVHT1JZX05VTUJFUiBncm91cCAiLCIKKyAgICAvLyAgICAg
QzogICAgKDAsIDcpICAgVUZJRUxEX0NBVEVHT1JZX05VTUJFUiBpbnRlZ2VyCisgICAgLy8gICAg
IEQ6ICAgICg4LCAxOCkgIFVGSUVMRF9DQVRFR09SWV9OVU1CRVJfUkFOR0VfU1BBTiBlbmRSYW5n
ZQorICAgIC8vICAgICBFOiAgICAoMTAsIDExKSBVRklFTERfQ0FURUdPUllfTlVNQkVSIGdyb3Vw
ICIsIgorICAgIC8vICAgICBGOiAgICAoMTQsIDE1KSBVRklFTERfQ0FURUdPUllfTlVNQkVSIGdy
b3VwICIsIgorICAgIC8vICAgICBHOiAgICAoOCwgMTgpICBVRklFTERfQ0FURUdPUllfTlVNQkVS
IGludGVnZXIKKyAgICAvLworICAgIC8vIFRoZW4sIHdlIG5lZWQgdG8gZ2VuZXJhdGU6CisgICAg
Ly8gICAgIEE6ICAgICgwLCAzKSAgIHN0YXJ0UmFuZ2UgaW50ZWdlcgorICAgIC8vICAgICBCOiAg
ICAoMywgNCkgICBzdGFydFJhbmdlIGdyb3VwICIsIgorICAgIC8vICAgICBDOiAgICAoNCwgNykg
ICBzdGFydFJhbmdlIGludGVnZXIKKyAgICAvLyAgICAgRDogICAgKDcsIDgpICAgc2hhcmVkICAg
ICBsaXRlcmFsICItIgorICAgIC8vICAgICBFOiAgICAoOCwgMTApICBlbmRSYW5nZSAgIGludGVn
ZXIKKyAgICAvLyAgICAgRjogICAgKDEwLCAxMSkgZW5kUmFuZ2UgICBncm91cCAiLCIKKyAgICAv
LyAgICAgRzogICAgKDExLCAxNCkgZW5kUmFuZ2UgICBpbnRlZ2VyCisgICAgLy8gICAgIEg6ICAg
ICgxNCwgMTUpIGVuZFJhbmdlICAgZ3JvdXAgIiwiCisgICAgLy8gICAgIEk6ICAgICgxNSwgMTgp
IGVuZFJhbmdlICAgaW50ZWdlcgorCisgICAgc3RkOjpzb3J0KGZpZWxkcy5iZWdpbigpLCBmaWVs
ZHMuZW5kKCksIFtdKGF1dG8mIGxocywgYXV0byYgcmhzKSB7CisgICAgICAgIGlmIChsaHMubV9y
YW5nZS5iZWdpbigpIDwgcmhzLm1fcmFuZ2UuYmVnaW4oKSkKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICBpZiAobGhzLm1fcmFuZ2UuYmVnaW4oKSA+IHJocy5tX3JhbmdlLmJlZ2lu
KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChsaHMubV9yYW5nZS5l
bmQoKSA8IHJocy5tX3JhbmdlLmVuZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICBpZiAobGhzLm1fcmFuZ2UuZW5kKCkgPiByaHMubV9yYW5nZS5lbmQoKSkKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gbGhzLm1fZmllbGQgPCByaHMubV9maWVs
ZDsKKyAgICB9KTsKKworICAgIFZlY3RvcjxJbnRsTnVtYmVyRm9ybWF0RmllbGQ+IGZsYXR0ZW47
CisgICAgVmVjdG9yPEludGxOdW1iZXJGb3JtYXRGaWVsZD4gc3RhY2s7CisgICAgLy8gVG9wLWxl
dmVsIGZpZWxkIGNvdmVycyBlbnRpcmUgcGFydHMsIHdoaWNoIG1ha2VzIHBhcnRzICJsaXRlcmFs
Ii4KKyAgICBzdGFjay5hcHBlbmQoSW50bE51bWJlckZvcm1hdEZpZWxkIHsgbGl0ZXJhbEZpZWxk
LCB7IDAsIGZvcm1hdHRlZFN0cmluZ0xlbmd0aCB9IH0pOworCisgICAgdW5zaWduZWQgY3Vyc29y
ID0gMDsKKyAgICBpbnQzMl90IGJlZ2luID0gMDsKKyAgICB3aGlsZSAoY3Vyc29yIDwgZmllbGRz
LnNpemUoKSkgeworICAgICAgICBjb25zdCBhdXRvJiBmaWVsZCA9IGZpZWxkc1tjdXJzb3JdOwor
CisgICAgICAgIC8vIElmIHRoZSBuZXcgZmllbGQgaXMgb3V0IG9mIHRoZSBjdXJyZW50IHRvcC1t
b3N0IGZpZWxkLCByb2xsIHVwIGFuZCBpbnNlcnQgYSBmbGF0dGVuIGZpZWxkLgorICAgICAgICB3
aGlsZSAoc3RhY2subGFzdCgpLm1fcmFuZ2UuZW5kKCkgPCBmaWVsZC5tX3JhbmdlLmJlZ2luKCkp
IHsKKyAgICAgICAgICAgIGlmIChiZWdpbiA8IHN0YWNrLmxhc3QoKS5tX3JhbmdlLmVuZCgpKSB7
CisgICAgICAgICAgICAgICAgSW50bE51bWJlckZvcm1hdEZpZWxkIGZsYXR0ZW5GaWVsZCB7IHN0
YWNrLmxhc3QoKS5tX2ZpZWxkLCB7IGJlZ2luLCBzdGFjay5sYXN0KCkubV9yYW5nZS5lbmQoKSB9
IH07CisgICAgICAgICAgICAgICAgZmxhdHRlbi5hcHBlbmQoZmxhdHRlbkZpZWxkKTsKKyAgICAg
ICAgICAgICAgICBiZWdpbiA9IGZsYXR0ZW5GaWVsZC5tX3JhbmdlLmVuZCgpOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgc3RhY2sucmVtb3ZlTGFzdCgpOworICAgICAgICB9CisKKyAgICAg
ICAgLy8gSWYgdGhlIG5ldyBmaWVsZCBpcyBzdGFydGluZyB3aXRoIHRoZSBzYW1lIGluZGV4LCBk
aXZpbmcgaW50byB0aGUgbmV3IGZpZWxkIGJ5IGFkZGluZyBpdCBpbnRvIHN0YWNrLgorICAgICAg
ICBpZiAoYmVnaW4gPT0gZmllbGQubV9yYW5nZS5iZWdpbigpKSB7CisgICAgICAgICAgICBzdGFj
ay5hcHBlbmQoZmllbGQpOworICAgICAgICAgICAgKytjdXJzb3I7CisgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgcm9vbSBiZXR3ZWVu
IHRoZSBjdXJyZW50IHRvcC1tb3N0IGZpZWxkIGFuZCB0aGUgbmV3IGZpZWxkLCBpbnNlcnQgYSBm
bGF0dGVuIGZpZWxkLgorICAgICAgICBpZiAoYmVnaW4gPCBmaWVsZC5tX3JhbmdlLmJlZ2luKCkp
IHsKKyAgICAgICAgICAgIEludGxOdW1iZXJGb3JtYXRGaWVsZCBmbGF0dGVuRmllbGQgeyBzdGFj
ay5sYXN0KCkubV9maWVsZCwgeyBiZWdpbiwgZmllbGQubV9yYW5nZS5iZWdpbigpIH0gfTsKKyAg
ICAgICAgICAgIGZsYXR0ZW4uYXBwZW5kKGZsYXR0ZW5GaWVsZCk7CisgICAgICAgICAgICBzdGFj
ay5hcHBlbmQoZmllbGQpOworICAgICAgICAgICAgYmVnaW4gPSBmaWVsZC5tX3JhbmdlLmJlZ2lu
KCk7CisgICAgICAgICAgICArK2N1cnNvcjsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICB9CisgICAgfQorCisgICAgLy8gUm9sbCB1cCB0aGUgbmVzdGVkIGZpZWxkIGF0IHRoZSBlbmQg
b2YgdGhlIGZvcm1hdHRlZCBzdHJpbmcgc2VxdWVuY2UuCisgICAgd2hpbGUgKCFzdGFjay5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgaWYgKGJlZ2luIDwgc3RhY2subGFzdCgpLm1fcmFuZ2UuZW5kKCkp
IHsKKyAgICAgICAgICAgIEludGxOdW1iZXJGb3JtYXRGaWVsZCBmbGF0dGVuRmllbGQgeyBzdGFj
ay5sYXN0KCkubV9maWVsZCwgeyBiZWdpbiwgc3RhY2subGFzdCgpLm1fcmFuZ2UuZW5kKCkgfSB9
OworICAgICAgICAgICAgZmxhdHRlbi5hcHBlbmQoZmxhdHRlbkZpZWxkKTsKKyAgICAgICAgICAg
IGJlZ2luID0gZmxhdHRlbkZpZWxkLm1fcmFuZ2UuZW5kKCk7CisgICAgICAgIH0KKyAgICAgICAg
c3RhY2sucmVtb3ZlTGFzdCgpOworICAgIH0KKworICAgIHJldHVybiBmbGF0dGVuOworfQorCisj
aWYgSEFWRShJQ1VfVV9OVU1CRVJfUkFOR0VfRk9STUFUVEVSX0ZPUk1BVF9SQU5HRV9UT19QQVJU
UykKK3N0YXRpYyBib29sIG51bWJlckZpZWxkc1ByYWN0aWNhbGx5RXF1YWwoY29uc3QgVUZvcm1h
dHRlZFZhbHVlKiBmb3JtYXR0ZWRWYWx1ZSwgVUVycm9yQ29kZSYgc3RhdHVzKQoreworICAgIGF1
dG8gaXRlcmF0b3IgPSBzdGQ6OnVuaXF1ZV9wdHI8VUNvbnN0cmFpbmVkRmllbGRQb3NpdGlvbiwg
SUNVRGVsZXRlcjx1Y2Zwb3NfY2xvc2U+Pih1Y2Zwb3Nfb3Blbigmc3RhdHVzKSk7CisgICAgaWYg
KFVfRkFJTFVSRShzdGF0dXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBXZSBv
bmx5IGNhcmUgYWJvdXQgVUZJRUxEX0NBVEVHT1JZX05VTUJFUl9SQU5HRV9TUEFOIGNhdGVnb3J5
LgorICAgIHVjZnBvc19jb25zdHJhaW5DYXRlZ29yeShpdGVyYXRvci5nZXQoKSwgVUZJRUxEX0NB
VEVHT1JZX05VTUJFUl9SQU5HRV9TUEFOLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0
YXR1cykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGJvb2wgaGFzU3BhbiA9IHVmbXR2
YWxfbmV4dFBvc2l0aW9uKGZvcm1hdHRlZFZhbHVlLCBpdGVyYXRvci5nZXQoKSwgJnN0YXR1cyk7
CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICByZXR1cm4gIWhhc1NwYW47Cit9CisKK3ZvaWQgSW50bE51bWJlckZvcm1hdDo6Zm9ybWF0UmFu
Z2VUb1BhcnRzSW50ZXJuYWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3R5bGUgc3R5
bGUsIEludGxNYXRoZW1hdGljYWxWYWx1ZSYmIHN0YXJ0LCBJbnRsTWF0aGVtYXRpY2FsVmFsdWUm
JiBlbmQsIGNvbnN0IFVGb3JtYXR0ZWRWYWx1ZSogZm9ybWF0dGVkVmFsdWUsIEpTQXJyYXkqIHBh
cnRzKQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVf
WkVST19FUlJPUjsKKworICAgIGludDMyX3QgZm9ybWF0dGVkU3RyaW5nTGVuZ3RoID0gMDsKKyAg
ICBjb25zdCBVQ2hhciogZm9ybWF0dGVkU3RyaW5nUG9pbnRlciA9IHVmbXR2YWxfZ2V0U3RyaW5n
KGZvcm1hdHRlZFZhbHVlLCAmZm9ybWF0dGVkU3RyaW5nTGVuZ3RoLCAmc3RhdHVzKTsKKyAgICBp
ZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2Jq
ZWN0LCBzY29wZSwgIkZhaWxlZCB0byBmb3JtYXQgbnVtYmVyIHJhbmdlIl9zKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBTdHJpbmcgcmVzdWx0U3RyaW5nKGZvcm1hdHRlZFN0cmluZ1Bv
aW50ZXIsIGZvcm1hdHRlZFN0cmluZ0xlbmd0aCk7CisKKyAgICAvLyBXZSBjYXJlIG11bHRpcGxl
IGNhdGVnb3JpZXMgKFVGSUVMRF9DQVRFR09SWV9EQVRFIGFuZCBVRklFTERfQ0FURUdPUllfREFU
RV9JTlRFUlZBTF9TUEFOKS4KKyAgICAvLyBTbyB3ZSBkbyBub3QgY29uc3RyYWludCBpdGVyYXRv
ci4KKyAgICBhdXRvIGl0ZXJhdG9yID0gc3RkOjp1bmlxdWVfcHRyPFVDb25zdHJhaW5lZEZpZWxk
UG9zaXRpb24sIElDVURlbGV0ZXI8dWNmcG9zX2Nsb3NlPj4odWNmcG9zX29wZW4oJnN0YXR1cykp
OworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihn
bG9iYWxPYmplY3QsIHNjb3BlLCAiRmFpbGVkIHRvIGZvcm1hdCBudW1iZXIgcmFuZ2UiX3MpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBzaGFyZWRTdHJpbmcgPSBqc05vbnRy
aXZpYWxTdHJpbmcodm0sICJzaGFyZWQiX3MpOworICAgIGF1dG8gc3RhcnRSYW5nZVN0cmluZyA9
IGpzTm9udHJpdmlhbFN0cmluZyh2bSwgInN0YXJ0UmFuZ2UiX3MpOworICAgIGF1dG8gZW5kUmFu
Z2VTdHJpbmcgPSBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJlbmRSYW5nZSJfcyk7CisgICAgYXV0
byBsaXRlcmFsU3RyaW5nID0ganNOb250cml2aWFsU3RyaW5nKHZtLCAibGl0ZXJhbCJfcyk7CisK
KyAgICBXVEY6OlJhbmdlPGludDMyX3Q+IHN0YXJ0UmFuZ2UgeyAtMSwgLTEgfTsKKyAgICBXVEY6
OlJhbmdlPGludDMyX3Q+IGVuZFJhbmdlIHsgLTEsIC0xIH07CisgICAgVmVjdG9yPEludGxOdW1i
ZXJGb3JtYXRGaWVsZD4gZmllbGRzOworCisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgYm9v
bCBuZXh0ID0gdWZtdHZhbF9uZXh0UG9zaXRpb24oZm9ybWF0dGVkVmFsdWUsIGl0ZXJhdG9yLmdl
dCgpLCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAg
ICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiRmFpbGVkIHRvIGZvcm1h
dCBudW1iZXIgcmFuZ2UiX3MpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAg
ICAgIGlmICghbmV4dCkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGludDMyX3QgY2F0
ZWdvcnkgPSB1Y2Zwb3NfZ2V0Q2F0ZWdvcnkoaXRlcmF0b3IuZ2V0KCksICZzdGF0dXMpOworICAg
ICAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9y
KGdsb2JhbE9iamVjdCwgc2NvcGUsICJGYWlsZWQgdG8gZm9ybWF0IG51bWJlciByYW5nZSJfcyk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpbnQzMl90IGZpZWxk
VHlwZSA9IHVjZnBvc19nZXRGaWVsZChpdGVyYXRvci5nZXQoKSwgJnN0YXR1cyk7CisgICAgICAg
IGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSwgIkZhaWxlZCB0byBmb3JtYXQgbnVtYmVyIHJhbmdlIl9zKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGludDMyX3QgYmVnaW5JbmRl
eCA9IDA7CisgICAgICAgIGludDMyX3QgZW5kSW5kZXggPSAwOworICAgICAgICB1Y2Zwb3NfZ2V0
SW5kZXhlcyhpdGVyYXRvci5nZXQoKSwgJmJlZ2luSW5kZXgsICZlbmRJbmRleCwgJnN0YXR1cyk7
CisgICAgICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICAgICAgdGhyb3dUeXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIkZhaWxlZCB0byBmb3JtYXQgbnVtYmVyIGludGVy
dmFsIl9zKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGRhdGFM
b2dMbklmKEludGxOdW1iZXJGb3JtYXRJbnRlcm5hbDo6dmVyYm9zZSwgY2F0ZWdvcnksICIgIiwg
ZmllbGRUeXBlLCAiICgiLCBiZWdpbkluZGV4LCAiLCAiLCBlbmRJbmRleCwgIikiKTsKKworICAg
ICAgICBpZiAoY2F0ZWdvcnkgIT0gVUZJRUxEX0NBVEVHT1JZX05VTUJFUiAmJiBjYXRlZ29yeSAh
PSBVRklFTERfQ0FURUdPUllfTlVNQkVSX1JBTkdFX1NQQU4pCisgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgaWYgKGNhdGVnb3J5ID09IFVGSUVMRF9DQVRFR09SWV9OVU1CRVIgJiYgZmll
bGRUeXBlIDwgMCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlmIChjYXRlZ29y
eSA9PSBVRklFTERfQ0FURUdPUllfTlVNQkVSX1JBTkdFX1NQQU4pIHsKKyAgICAgICAgICAgIC8v
ID4gVGhlIHNwZWNpYWwgZmllbGQgY2F0ZWdvcnkgVUZJRUxEX0NBVEVHT1JZX05VTUJFUl9SQU5H
RV9TUEFOIGlzIHVzZWQgdG8gaW5kaWNhdGUgd2hpY2ggbnVtYmVyCisgICAgICAgICAgICAvLyA+
IHByaW1pdGl2ZXMgY2FtZSBmcm9tIHdoaWNoIGFyZ3VtZW50czogMCBtZWFucyBzdGFydCwgYW5k
IDEgbWVhbnMgZW5kLiBUaGUgc3BhbiBjYXRlZ29yeQorICAgICAgICAgICAgLy8gPiB3aWxsIGFs
d2F5cyBvY2N1ciBiZWZvcmUgdGhlIGNvcnJlc3BvbmRpbmcgZmllbGRzIGluIFVGSUVMRF9DQVRF
R09SWV9OVU1CRVIgaW4gdGhlIG5leHRQb3NpdGlvbigpIGl0ZXJhdG9yLgorICAgICAgICAgICAg
Ly8gZnJvbSBJQ1UgY29tbWVudC4gU28sIGZpZWxkIDAgaXMgc3RhcnRSYW5nZSwgZmllbGQgMSBp
cyBlbmRSYW5nZS4KKyAgICAgICAgICAgIGlmICghZmllbGRUeXBlKQorICAgICAgICAgICAgICAg
IHN0YXJ0UmFuZ2UgPSBXVEY6OlJhbmdlPGludDMyX3Q+KGJlZ2luSW5kZXgsIGVuZEluZGV4KTsK
KyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIEFTU0VSVChmaWVsZFR5cGUgPT0g
MSk7CisgICAgICAgICAgICAgICAgZW5kUmFuZ2UgPSBXVEY6OlJhbmdlPGludDMyX3Q+KGJlZ2lu
SW5kZXgsIGVuZEluZGV4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICB9CisKKyAgICAgICAgQVNTRVJUKGNhdGVnb3J5ID09IFVGSUVMRF9DQVRFR09SWV9O
VU1CRVIpOworCisgICAgICAgIGZpZWxkcy5hcHBlbmQoSW50bE51bWJlckZvcm1hdEZpZWxkIHsg
ZmllbGRUeXBlLCB7IGJlZ2luSW5kZXgsIGVuZEluZGV4IH0gfSk7CisgICAgfQorCisgICAgYXV0
byBmbGF0dGVuID0gZmxhdHRlbkZpZWxkcyhXVEZNb3ZlKGZpZWxkcyksIGZvcm1hdHRlZFN0cmlu
Z0xlbmd0aCk7CisKKyAgICBhdXRvIGNyZWF0ZVBhcnQgPSBbJl0gKEpTU3RyaW5nKiB0eXBlLCBp
bnQzMl90IGJlZ2luSW5kZXgsIGludDMyX3QgbGVuZ3RoKSB7CisgICAgICAgIGF1dG8gc291cmNl
VHlwZSA9IFsmXShpbnQzMl90IGluZGV4KSAtPiBKU1N0cmluZyogeworICAgICAgICAgICAgaWYg
KHN0YXJ0UmFuZ2UuY29udGFpbnMoaW5kZXgpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGFy
dFJhbmdlU3RyaW5nOworICAgICAgICAgICAgaWYgKGVuZFJhbmdlLmNvbnRhaW5zKGluZGV4KSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gZW5kUmFuZ2VTdHJpbmc7CisgICAgICAgICAgICByZXR1
cm4gc2hhcmVkU3RyaW5nOworICAgICAgICB9OworCisgICAgICAgIGF1dG8gdmFsdWUgPSBqc1N0
cmluZyh2bSwgcmVzdWx0U3RyaW5nLnN1YnN0cmluZyhiZWdpbkluZGV4LCBsZW5ndGgpKTsKKyAg
ICAgICAgSlNPYmplY3QqIHBhcnQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3Qp
OworICAgICAgICBwYXJ0LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnR5cGUsIHR5
cGUpOworICAgICAgICBwYXJ0LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnZhbHVl
LCB2YWx1ZSk7CisgICAgICAgIHBhcnQtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+
c291cmNlLCBzb3VyY2VUeXBlKGJlZ2luSW5kZXgpKTsKKyAgICAgICAgcmV0dXJuIHBhcnQ7Cisg
ICAgfTsKKworICAgIGZvciAoYXV0byYgZmllbGQgOiBmbGF0dGVuKSB7CisgICAgICAgIGJvb2wg
c2lnbiA9IGZhbHNlOworICAgICAgICBJbnRsTWF0aGVtYXRpY2FsVmFsdWU6Ok51bWJlclR5cGUg
bnVtYmVyVHlwZSA9IHN0YXJ0Lm51bWJlclR5cGUoKTsKKyAgICAgICAgaWYgKHN0YXJ0UmFuZ2Uu
Y29udGFpbnMoZmllbGQubV9yYW5nZS5iZWdpbigpKSkgeworICAgICAgICAgICAgbnVtYmVyVHlw
ZSA9IHN0YXJ0Lm51bWJlclR5cGUoKTsKKyAgICAgICAgICAgIHNpZ24gPSBzdGFydC5zaWduKCk7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBudW1iZXJUeXBlID0gZW5kLm51bWJlclR5
cGUoKTsKKyAgICAgICAgICAgIHNpZ24gPSBlbmQuc2lnbigpOworICAgICAgICB9CisgICAgICAg
IEpTU3RyaW5nKiB0eXBlID0gbnVsbHB0cjsKKyAgICAgICAgaWYgKGZpZWxkLm1fZmllbGQgPT0g
bGl0ZXJhbEZpZWxkKQorICAgICAgICAgICAgdHlwZSA9IGxpdGVyYWxTdHJpbmc7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIHR5cGUgPSBqc1N0cmluZyh2bSwgcGFydFR5cGVTdHJpbmcoVU51
bWJlckZvcm1hdEZpZWxkcyhmaWVsZC5tX2ZpZWxkKSwgc3R5bGUsIHNpZ24sIG51bWJlclR5cGUp
KTsKKyAgICAgICAgSlNPYmplY3QqIHBhcnQgPSBjcmVhdGVQYXJ0KHR5cGUsIGZpZWxkLm1fcmFu
Z2UuYmVnaW4oKSwgZmllbGQubV9yYW5nZS5lbmQoKSAtIGZpZWxkLm1fcmFuZ2UuYmVnaW4oKSk7
CisgICAgICAgIHBhcnRzLT5wdXNoKGdsb2JhbE9iamVjdCwgcGFydCk7CisgICAgICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CisgICAgfQorfQorCitKU1ZhbHVlIEludGxO
dW1iZXJGb3JtYXQ6OmZvcm1hdFJhbmdlVG9QYXJ0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBkb3VibGUgc3RhcnQsIGRvdWJsZSBlbmQpIGNvbnN0Cit7CisgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKKworICAgIEFTU0VSVChtX251bWJlclJhbmdlRm9ybWF0dGVyKTsKKworICAgIGlmIChzdGQ6
OmlzbmFuKHN0YXJ0KSB8fCBzdGQ6OmlzbmFuKGVuZCkpCisgICAgICAgIHJldHVybiB0aHJvd1Jh
bmdlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlBhc3NlZCBudW1iZXJzIGFyZSBvdXQgb2Yg
cmFuZ2UiX3MpOworCisgICAgaWYgKGVuZCA8IHN0YXJ0KQorICAgICAgICByZXR1cm4gdGhyb3dS
YW5nZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJzdGFydCBpcyBsYXJnZXIgdGhhbiBlbmQi
X3MpOworCisgICAgaWYgKGlzTmVnYXRpdmVaZXJvKGVuZCkgJiYgc3RhcnQgPj0gMCkKKyAgICAg
ICAgcmV0dXJuIHRocm93UmFuZ2VFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAic3RhcnQgaXMg
bGFyZ2VyIHRoYW4gZW5kIl9zKTsKKworICAgIFVFcnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VS
Uk9SOworICAgIGF1dG8gcmFuZ2UgPSBzdGQ6OnVuaXF1ZV9wdHI8VUZvcm1hdHRlZE51bWJlclJh
bmdlLCBJQ1VEZWxldGVyPHVudW1yZl9jbG9zZVJlc3VsdD4+KHVudW1yZl9vcGVuUmVzdWx0KCZz
dGF0dXMpKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpCisgICAgICAgIHJldHVybiB0aHJv
d1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGZvcm1hdCBhIHJhbmdl
Il9zKTsKKworICAgIHVudW1yZl9mb3JtYXREb3VibGVSYW5nZShtX251bWJlclJhbmdlRm9ybWF0
dGVyLmdldCgpLCBzdGFydCwgZW5kLCByYW5nZS5nZXQoKSwgJnN0YXR1cyk7CisgICAgaWYgKFVf
RkFJTFVSRShzdGF0dXMpKQorICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2Jq
ZWN0LCBzY29wZSwgImZhaWxlZCB0byBmb3JtYXQgYSByYW5nZSJfcyk7CisKKyAgICBhdXRvKiBm
b3JtYXR0ZWRWYWx1ZSA9IHVudW1yZl9yZXN1bHRBc1ZhbHVlKHJhbmdlLmdldCgpLCAmc3RhdHVz
KTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpCisgICAgICAgIHJldHVybiB0aHJvd1R5cGVF
cnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGZvcm1hdCBhIHJhbmdlIl9zKTsK
KworICAgIGJvb2wgZXF1YWwgPSBudW1iZXJGaWVsZHNQcmFjdGljYWxseUVxdWFsKGZvcm1hdHRl
ZFZhbHVlLCBzdGF0dXMpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0
aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiRmFpbGVkIHRvIGZvcm1hdCBudW1i
ZXIgcmFuZ2UiX3MpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIGlmIChlcXVh
bCkKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBmb3JtYXRUb1BhcnRzKGdsb2Jh
bE9iamVjdCwgc3RhcnQsIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgInNoYXJlZCJfcykpKTsKKwor
ICAgIEpTQXJyYXkqIHBhcnRzID0gSlNBcnJheTo6dHJ5Q3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qt
PmFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlvbihBcnJheVdpdGhD
b250aWd1b3VzKSwgMCk7CisgICAgaWYgKCFwYXJ0cykgeworICAgICAgICB0aHJvd091dE9mTWVt
b3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CisgICAgICAgIHJldHVybiB7IH07CisgICAg
fQorCisgICAgZm9ybWF0UmFuZ2VUb1BhcnRzSW50ZXJuYWwoZ2xvYmFsT2JqZWN0LCBtX3N0eWxl
LCBJbnRsTWF0aGVtYXRpY2FsVmFsdWUoc3RhcnQpLCBJbnRsTWF0aGVtYXRpY2FsVmFsdWUoZW5k
KSwgZm9ybWF0dGVkVmFsdWUsIHBhcnRzKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB7IH0pOworCisgICAgcmV0dXJuIHBhcnRzOworfQorCitKU1ZhbHVlIEludGxOdW1iZXJGb3Jt
YXQ6OmZvcm1hdFJhbmdlVG9QYXJ0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBJbnRs
TWF0aGVtYXRpY2FsVmFsdWUmJiBzdGFydCwgSW50bE1hdGhlbWF0aWNhbFZhbHVlJiYgZW5kKSBj
b25zdAoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBBU1NFUlQobV9udW1iZXJSYW5nZUZv
cm1hdHRlcik7CisKKyAgICBpZiAoc3RhcnQubnVtYmVyVHlwZSgpID09IEludGxNYXRoZW1hdGlj
YWxWYWx1ZTo6TnVtYmVyVHlwZTo6TmFOIHx8IGVuZC5udW1iZXJUeXBlKCkgPT0gSW50bE1hdGhl
bWF0aWNhbFZhbHVlOjpOdW1iZXJUeXBlOjpOYU4pCisgICAgICAgIHJldHVybiB0aHJvd1Jhbmdl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlBhc3NlZCBudW1iZXJzIGFyZSBvdXQgb2YgcmFu
Z2UiX3MpOworCisgICAgc3RhcnQuZW5zdXJlTm9uRG91YmxlKCk7CisgICAgY29uc3QgYXV0byYg
c3RhcnRTdHJpbmcgPSBzdGFydC5nZXRTdHJpbmcoKTsKKworICAgIGVuZC5lbnN1cmVOb25Eb3Vi
bGUoKTsKKyAgICBjb25zdCBhdXRvJiBlbmRTdHJpbmcgPSBlbmQuZ2V0U3RyaW5nKCk7CisKKyAg
ICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBhdXRvIHJhbmdlID0gc3Rk
Ojp1bmlxdWVfcHRyPFVGb3JtYXR0ZWROdW1iZXJSYW5nZSwgSUNVRGVsZXRlcjx1bnVtcmZfY2xv
c2VSZXN1bHQ+Pih1bnVtcmZfb3BlblJlc3VsdCgmc3RhdHVzKSk7CisgICAgaWYgKFVfRkFJTFVS
RShzdGF0dXMpKQorICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgImZhaWxlZCB0byBmb3JtYXQgYSByYW5nZSJfcyk7CisKKyAgICB1bnVtcmZfZm9ybWF0
RGVjaW1hbFJhbmdlKG1fbnVtYmVyUmFuZ2VGb3JtYXR0ZXIuZ2V0KCksIHN0YXJ0U3RyaW5nLmRh
dGEoKSwgc3RhcnRTdHJpbmcubGVuZ3RoKCksIGVuZFN0cmluZy5kYXRhKCksIGVuZFN0cmluZy5s
ZW5ndGgoKSwgcmFuZ2UuZ2V0KCksICZzdGF0dXMpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVz
KSkKKyAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJm
YWlsZWQgdG8gZm9ybWF0IGEgcmFuZ2UiX3MpOworCisgICAgYXV0byogZm9ybWF0dGVkVmFsdWUg
PSB1bnVtcmZfcmVzdWx0QXNWYWx1ZShyYW5nZS5nZXQoKSwgJnN0YXR1cyk7CisgICAgaWYgKFVf
RkFJTFVSRShzdGF0dXMpKQorICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2Jq
ZWN0LCBzY29wZSwgImZhaWxlZCB0byBmb3JtYXQgYSByYW5nZSJfcyk7CisKKyAgICBib29sIGVx
dWFsID0gbnVtYmVyRmllbGRzUHJhY3RpY2FsbHlFcXVhbChmb3JtYXR0ZWRWYWx1ZSwgc3RhdHVz
KTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3Io
Z2xvYmFsT2JqZWN0LCBzY29wZSwgIkZhaWxlZCB0byBmb3JtYXQgbnVtYmVyIHJhbmdlIl9zKTsK
KyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBpZiAoZXF1YWwpCisgICAgICAgIFJF
TEVBU0VfQU5EX1JFVFVSTihzY29wZSwgZm9ybWF0VG9QYXJ0cyhnbG9iYWxPYmplY3QsIFdURk1v
dmUoc3RhcnQpLCBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJzaGFyZWQiX3MpKSk7CisKKyAgICBK
U0FycmF5KiBwYXJ0cyA9IEpTQXJyYXk6OnRyeUNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5hcnJh
eVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24oQXJyYXlXaXRoQ29udGln
dW91cyksIDApOworICAgIGlmICghcGFydHMpIHsKKyAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVy
cm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKwor
ICAgIGZvcm1hdFJhbmdlVG9QYXJ0c0ludGVybmFsKGdsb2JhbE9iamVjdCwgbV9zdHlsZSwgV1RG
TW92ZShzdGFydCksIFdURk1vdmUoZW5kKSwgZm9ybWF0dGVkVmFsdWUsIHBhcnRzKTsKKyAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworCisgICAgcmV0dXJuIHBhcnRzOworfQor
I2VuZGlmCisKIEFTQ0lJTGl0ZXJhbCBJbnRsTnVtYmVyRm9ybWF0OjpzdHlsZVN0cmluZyhTdHls
ZSBzdHlsZSkKIHsKICAgICBzd2l0Y2ggKHN0eWxlKSB7CkBAIC0xMTI0LDYzICsxNDcyLDU1IEBA
IHZvaWQgSW50bE51bWJlckZvcm1hdDo6c2V0Qm91bmRGb3JtYXQoVk0mIHZtLCBKU0JvdW5kRnVu
Y3Rpb24qIGZvcm1hdCkKICAgICBtX2JvdW5kRm9ybWF0LnNldCh2bSwgdGhpcywgZm9ybWF0KTsK
IH0KIAotdm9pZCBJbnRsTnVtYmVyRm9ybWF0Ojpmb3JtYXRUb1BhcnRzSW50ZXJuYWwoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3R5bGUgc3R5bGUsIGJvb2wgc2lnbiwgSW50bE1hdGhl
bWF0aWNhbFZhbHVlOjpOdW1iZXJUeXBlIG51bWJlclR5cGUsIGNvbnN0IFN0cmluZyYgZm9ybWF0
dGVkLCBJbnRsRmllbGRJdGVyYXRvciYgaXRlcmF0b3IsIEpTQXJyYXkqIHBhcnRzLCBKU1N0cmlu
ZyogdW5pdCkKK3ZvaWQgSW50bE51bWJlckZvcm1hdDo6Zm9ybWF0VG9QYXJ0c0ludGVybmFsKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0eWxlIHN0eWxlLCBib29sIHNpZ24sIEludGxN
YXRoZW1hdGljYWxWYWx1ZTo6TnVtYmVyVHlwZSBudW1iZXJUeXBlLCBjb25zdCBTdHJpbmcmIGZv
cm1hdHRlZCwgSW50bEZpZWxkSXRlcmF0b3ImIGl0ZXJhdG9yLCBKU0FycmF5KiBwYXJ0cywgSlNT
dHJpbmcqIHNvdXJjZVR5cGUsIEpTU3RyaW5nKiB1bml0KQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAKICAgICBhdXRvIHN0cmluZ0xlbmd0aCA9IGZvcm1hdHRlZC5sZW5ndGgoKTsKIAotICAgIGlu
dDMyX3QgbGl0ZXJhbEZpZWxkVHlwZSA9IC0xOwotICAgIEludGxOdW1iZXJGb3JtYXRGaWVsZCBs
aXRlcmFsRmllbGQgeyBsaXRlcmFsRmllbGRUeXBlLCBzdHJpbmdMZW5ndGggfTsKLSAgICBWZWN0
b3I8SW50bE51bWJlckZvcm1hdEZpZWxkLCAzMj4gZmllbGRzKHN0cmluZ0xlbmd0aCwgbGl0ZXJh
bEZpZWxkKTsKLSAgICBpbnQzMl90IGJlZ2luSW5kZXggPSAwOwotICAgIGludDMyX3QgZW5kSW5k
ZXggPSAwOwotICAgIFVFcnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOwotICAgIGF1dG8g
ZmllbGRUeXBlID0gaXRlcmF0b3IubmV4dChiZWdpbkluZGV4LCBlbmRJbmRleCwgc3RhdHVzKTsK
LSAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSwgIkZhaWxlZCB0byBpdGVyYXRlIGZpZWxkIHBvc2l0aW9uIGl0ZXJh
dG9yIl9zKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICB3aGlsZSAoZmllbGRUeXBlID49
IDApIHsKLSAgICAgICAgc2l6ZV90IHNpemUgPSBlbmRJbmRleCAtIGJlZ2luSW5kZXg7Ci0gICAg
ICAgIGZvciAoYXV0byBpID0gYmVnaW5JbmRleDsgaSA8IGVuZEluZGV4OyArK2kpIHsKLSAgICAg
ICAgICAgIC8vIE9ubHkgb3ZlcnJpZGUgcHJldmlvdXMgdmFsdWUgaWYgbmV3IHZhbHVlIGlzIG1v
cmUgc3BlY2lmaWMuCi0gICAgICAgICAgICBpZiAoZmllbGRzW2ldLnNpemUgPj0gc2l6ZSkKLSAg
ICAgICAgICAgICAgICBmaWVsZHNbaV0gPSBJbnRsTnVtYmVyRm9ybWF0RmllbGQgeyBmaWVsZFR5
cGUsIHNpemUgfTsKLSAgICAgICAgfQotICAgICAgICBmaWVsZFR5cGUgPSBpdGVyYXRvci5uZXh0
KGJlZ2luSW5kZXgsIGVuZEluZGV4LCBzdGF0dXMpOworICAgIFZlY3RvcjxJbnRsTnVtYmVyRm9y
bWF0RmllbGQ+IGZpZWxkczsKKworICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgIGludDMyX3Qg
YmVnaW5JbmRleCA9IDA7CisgICAgICAgIGludDMyX3QgZW5kSW5kZXggPSAwOworICAgICAgICBV
RXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICAgICAgaW50MzJfdCBmaWVsZFR5
cGUgPSBpdGVyYXRvci5uZXh0KGJlZ2luSW5kZXgsIGVuZEluZGV4LCBzdGF0dXMpOwogICAgICAg
ICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKICAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGds
b2JhbE9iamVjdCwgc2NvcGUsICJGYWlsZWQgdG8gaXRlcmF0ZSBmaWVsZCBwb3NpdGlvbiBpdGVy
YXRvciJfcyk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyAgICAgICAgaWYgKGZp
ZWxkVHlwZSA8IDApCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBmaWVsZHMuYXBwZW5k
KEludGxOdW1iZXJGb3JtYXRGaWVsZCB7IGZpZWxkVHlwZSwgeyBiZWdpbkluZGV4LCBlbmRJbmRl
eCB9IH0pOwogICAgIH0KIAorICAgIGF1dG8gZmxhdHRlbiA9IGZsYXR0ZW5GaWVsZHMoV1RGTW92
ZShmaWVsZHMpLCBzdHJpbmdMZW5ndGgpOworCiAgICAgYXV0byBsaXRlcmFsU3RyaW5nID0ganNO
b250cml2aWFsU3RyaW5nKHZtLCAibGl0ZXJhbCJfcyk7CiAgICAgSWRlbnRpZmllciB1bml0TmFt
ZTsKICAgICBpZiAodW5pdCkKICAgICAgICAgdW5pdE5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCAidW5pdCIpOwogCi0gICAgc2l6ZV90IGN1cnJlbnRJbmRleCA9IDA7Ci0gICAgd2hp
bGUgKGN1cnJlbnRJbmRleCA8IHN0cmluZ0xlbmd0aCkgewotICAgICAgICBhdXRvIHN0YXJ0SW5k
ZXggPSBjdXJyZW50SW5kZXg7Ci0gICAgICAgIGF1dG8gZmllbGRUeXBlID0gZmllbGRzW2N1cnJl
bnRJbmRleF0udHlwZTsKLSAgICAgICAgd2hpbGUgKGN1cnJlbnRJbmRleCA8IHN0cmluZ0xlbmd0
aCAmJiBmaWVsZHNbY3VycmVudEluZGV4XS50eXBlID09IGZpZWxkVHlwZSkKLSAgICAgICAgICAg
ICsrY3VycmVudEluZGV4OwotICAgICAgICBhdXRvIHBhcnRUeXBlID0gZmllbGRUeXBlID09IGxp
dGVyYWxGaWVsZFR5cGUgPyBsaXRlcmFsU3RyaW5nIDoganNTdHJpbmcodm0sIHBhcnRUeXBlU3Ry
aW5nKFVOdW1iZXJGb3JtYXRGaWVsZHMoZmllbGRUeXBlKSwgc3R5bGUsIHNpZ24sIG51bWJlclR5
cGUpKTsKLSAgICAgICAgYXV0byBwYXJ0VmFsdWUgPSBqc1N1YnN0cmluZyh2bSwgZm9ybWF0dGVk
LCBzdGFydEluZGV4LCBjdXJyZW50SW5kZXggLSBzdGFydEluZGV4KTsKKyAgICBmb3IgKGF1dG8m
IGZpZWxkIDogZmxhdHRlbikgeworICAgICAgICBhdXRvIGZpZWxkVHlwZSA9IGZpZWxkLm1fZmll
bGQ7CisgICAgICAgIGF1dG8gcGFydFR5cGUgPSBmaWVsZFR5cGUgPT0gbGl0ZXJhbEZpZWxkID8g
bGl0ZXJhbFN0cmluZyA6IGpzU3RyaW5nKHZtLCBwYXJ0VHlwZVN0cmluZyhVTnVtYmVyRm9ybWF0
RmllbGRzKGZpZWxkVHlwZSksIHN0eWxlLCBzaWduLCBudW1iZXJUeXBlKSk7CisgICAgICAgIGF1
dG8gcGFydFZhbHVlID0ganNTdWJzdHJpbmcodm0sIGZvcm1hdHRlZCwgZmllbGQubV9yYW5nZS5i
ZWdpbigpLCBmaWVsZC5tX3JhbmdlLmVuZCgpIC0gZmllbGQubV9yYW5nZS5iZWdpbigpKTsKICAg
ICAgICAgSlNPYmplY3QqIHBhcnQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3Qp
OwogICAgICAgICBwYXJ0LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnR5cGUsIHBh
cnRUeXBlKTsKICAgICAgICAgcGFydC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT52
YWx1ZSwgcGFydFZhbHVlKTsKICAgICAgICAgaWYgKHVuaXQpCiAgICAgICAgICAgICBwYXJ0LT5w
dXREaXJlY3Qodm0sIHVuaXROYW1lLCB1bml0KTsKKyAgICAgICAgaWYgKHNvdXJjZVR5cGUpCisg
ICAgICAgICAgICBwYXJ0LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnNvdXJjZSwg
c291cmNlVHlwZSk7CiAgICAgICAgIHBhcnRzLT5wdXNoKGdsb2JhbE9iamVjdCwgcGFydCk7CiAg
ICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CiAgICAgfQogfQogCiAv
LyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWE0MDIvI3NlYy1mb3JtYXRudW1iZXJ0b3BhcnRz
Ci1KU1ZhbHVlIEludGxOdW1iZXJGb3JtYXQ6OmZvcm1hdFRvUGFydHMoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgZG91YmxlIHZhbHVlKSBjb25zdAorSlNWYWx1ZSBJbnRsTnVtYmVyRm9y
bWF0Ojpmb3JtYXRUb1BhcnRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGRvdWJsZSB2
YWx1ZSwgSlNTdHJpbmcqIHNvdXJjZVR5cGUpIGNvbnN0CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTEyMjAsMTQgKzE1NjAsMTQgQEAgSlNWYWx1ZSBJbnRsTnVtYmVyRm9ybWF0Ojpmb3JtYXRU
b1BhcnRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGRvdWJsZSB2YWwKICAgICBpZiAo
IXBhcnRzKQogICAgICAgICByZXR1cm4gdGhyb3dPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVj
dCwgc2NvcGUpOwogCi0gICAgZm9ybWF0VG9QYXJ0c0ludGVybmFsKGdsb2JhbE9iamVjdCwgbV9z
dHlsZSwgc3RkOjpzaWduYml0KHZhbHVlKSwgSW50bE1hdGhlbWF0aWNhbFZhbHVlOjpudW1iZXJU
eXBlRnJvbURvdWJsZSh2YWx1ZSksIHJlc3VsdFN0cmluZywgaXRlcmF0b3IsIHBhcnRzKTsKKyAg
ICBmb3JtYXRUb1BhcnRzSW50ZXJuYWwoZ2xvYmFsT2JqZWN0LCBtX3N0eWxlLCBzdGQ6OnNpZ25i
aXQodmFsdWUpLCBJbnRsTWF0aGVtYXRpY2FsVmFsdWU6Om51bWJlclR5cGVGcm9tRG91YmxlKHZh
bHVlKSwgcmVzdWx0U3RyaW5nLCBpdGVyYXRvciwgcGFydHMsIHNvdXJjZVR5cGUsIG51bGxwdHIp
OwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKICAgICByZXR1cm4gcGFy
dHM7CiB9CiAKICNpZiBIQVZFKElDVV9VX05VTUJFUl9GT1JNQVRURVIpCi1KU1ZhbHVlIEludGxO
dW1iZXJGb3JtYXQ6OmZvcm1hdFRvUGFydHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SW50bE1hdGhlbWF0aWNhbFZhbHVlJiYgdmFsdWUpIGNvbnN0CitKU1ZhbHVlIEludGxOdW1iZXJG
b3JtYXQ6OmZvcm1hdFRvUGFydHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSW50bE1h
dGhlbWF0aWNhbFZhbHVlJiYgdmFsdWUsIEpTU3RyaW5nKiBzb3VyY2VUeXBlKSBjb25zdAogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMjY2LDcgKzE2MDYsNyBAQCBKU1ZhbHVlIEludGxOdW1i
ZXJGb3JtYXQ6OmZvcm1hdFRvUGFydHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSW50
bE1hdGhlbQogICAgIGlmICghcGFydHMpCiAgICAgICAgIHJldHVybiB0aHJvd091dE9mTWVtb3J5
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKLSAgICBmb3JtYXRUb1BhcnRzSW50ZXJuYWwo
Z2xvYmFsT2JqZWN0LCBtX3N0eWxlLCB2YWx1ZS5zaWduKCksIHZhbHVlLm51bWJlclR5cGUoKSwg
cmVzdWx0U3RyaW5nLCBpdGVyYXRvciwgcGFydHMpOworICAgIGZvcm1hdFRvUGFydHNJbnRlcm5h
bChnbG9iYWxPYmplY3QsIG1fc3R5bGUsIHZhbHVlLnNpZ24oKSwgdmFsdWUubnVtYmVyVHlwZSgp
LCByZXN1bHRTdHJpbmcsIGl0ZXJhdG9yLCBwYXJ0cywgc291cmNlVHlwZSwgbnVsbHB0cik7CiAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIHJldHVybiBwYXJ0czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3Jt
YXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXQuaApp
bmRleCBjYjYxZGFlMmZiYWMxZDE2ZWMwMmQ5NzE3NGExMzI1MmNjMDMzMDIxLi4zMDdjNzVmNjVi
OTk3OWZmM2NmNzhlZWEwMmM0YWM4NGI0NjY0YWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdC5oCkBAIC00Niw2ICs0NiwxMyBAQAogI2Vu
ZGlmCiAjZW5kaWYKIAorI2lmICFkZWZpbmVkKEhBVkVfSUNVX1VfTlVNQkVSX1JBTkdFX0ZPUk1B
VFRFUl9GT1JNQVRfUkFOR0VfVE9fUEFSVFMpCisjaWYgVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0g
Pj0gNjkKKyNkZWZpbmUgSEFWRV9JQ1VfVV9OVU1CRVJfUkFOR0VfRk9STUFUVEVSX0ZPUk1BVF9S
QU5HRV9UT19QQVJUUyAxCisjZW5kaWYKKyNlbmRpZgorCitzdHJ1Y3QgVUZvcm1hdHRlZFZhbHVl
Owogc3RydWN0IFVOdW1iZXJGb3JtYXR0ZXI7CiBzdHJ1Y3QgVU51bWJlclJhbmdlRm9ybWF0dGVy
OwogCkBAIC0xNzAsOSArMTc3LDkgQEAgY2xhc3MgSW50bE51bWJlckZvcm1hdCBmaW5hbCA6IHB1
YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICB2b2lkIGluaXRpYWxpemVOdW1iZXJGb3JtYXQo
SlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIGxvY2FsZXMsIEpTVmFsdWUgb3B0aW9uc1ZhbHVlKTsK
ICAgICBKU1ZhbHVlIGZvcm1hdChKU0dsb2JhbE9iamVjdCosIGRvdWJsZSkgY29uc3Q7CiAgICAg
SlNWYWx1ZSBmb3JtYXQoSlNHbG9iYWxPYmplY3QqLCBJbnRsTWF0aGVtYXRpY2FsVmFsdWUmJikg
Y29uc3Q7Ci0gICAgSlNWYWx1ZSBmb3JtYXRUb1BhcnRzKEpTR2xvYmFsT2JqZWN0KiwgZG91Ymxl
KSBjb25zdDsKKyAgICBKU1ZhbHVlIGZvcm1hdFRvUGFydHMoSlNHbG9iYWxPYmplY3QqLCBkb3Vi
bGUsIEpTU3RyaW5nKiBzb3VyY2VUeXBlID0gbnVsbHB0cikgY29uc3Q7CiAjaWYgSEFWRShJQ1Vf
VV9OVU1CRVJfRk9STUFUVEVSKQotICAgIEpTVmFsdWUgZm9ybWF0VG9QYXJ0cyhKU0dsb2JhbE9i
amVjdCosIEludGxNYXRoZW1hdGljYWxWYWx1ZSYmKSBjb25zdDsKKyAgICBKU1ZhbHVlIGZvcm1h
dFRvUGFydHMoSlNHbG9iYWxPYmplY3QqLCBJbnRsTWF0aGVtYXRpY2FsVmFsdWUmJiwgSlNTdHJp
bmcqIHNvdXJjZVR5cGUgPSBudWxscHRyKSBjb25zdDsKICNlbmRpZgogICAgIEpTT2JqZWN0KiBy
ZXNvbHZlZE9wdGlvbnMoSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKIApAQCAtMTgxLDEyICsxODgs
MTggQEAgY2xhc3MgSW50bE51bWJlckZvcm1hdCBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2Jq
ZWN0IHsKICAgICBKU1ZhbHVlIGZvcm1hdFJhbmdlKEpTR2xvYmFsT2JqZWN0KiwgSW50bE1hdGhl
bWF0aWNhbFZhbHVlJiYsIEludGxNYXRoZW1hdGljYWxWYWx1ZSYmKSBjb25zdDsKICNlbmRpZgog
CisjaWYgSEFWRShJQ1VfVV9OVU1CRVJfUkFOR0VfRk9STUFUVEVSX0ZPUk1BVF9SQU5HRV9UT19Q
QVJUUykKKyAgICBKU1ZhbHVlIGZvcm1hdFJhbmdlVG9QYXJ0cyhKU0dsb2JhbE9iamVjdCosIGRv
dWJsZSwgZG91YmxlKSBjb25zdDsKKyAgICBKU1ZhbHVlIGZvcm1hdFJhbmdlVG9QYXJ0cyhKU0ds
b2JhbE9iamVjdCosIEludGxNYXRoZW1hdGljYWxWYWx1ZSYmLCBJbnRsTWF0aGVtYXRpY2FsVmFs
dWUmJikgY29uc3Q7CisjZW5kaWYKKwogICAgIEpTQm91bmRGdW5jdGlvbiogYm91bmRGb3JtYXQo
KSBjb25zdCB7IHJldHVybiBtX2JvdW5kRm9ybWF0LmdldCgpOyB9CiAgICAgdm9pZCBzZXRCb3Vu
ZEZvcm1hdChWTSYsIEpTQm91bmRGdW5jdGlvbiopOwogCiAgICAgZW51bSBjbGFzcyBTdHlsZSA6
IHVpbnQ4X3QgeyBEZWNpbWFsLCBQZXJjZW50LCBDdXJyZW5jeSwgVW5pdCB9OwogCi0gICAgc3Rh
dGljIHZvaWQgZm9ybWF0VG9QYXJ0c0ludGVybmFsKEpTR2xvYmFsT2JqZWN0KiwgU3R5bGUsIGJv
b2wgc2lnbiwgSW50bE1hdGhlbWF0aWNhbFZhbHVlOjpOdW1iZXJUeXBlLCBjb25zdCBTdHJpbmcm
IGZvcm1hdHRlZCwgSW50bEZpZWxkSXRlcmF0b3ImLCBKU0FycmF5KiwgSlNTdHJpbmcqIHVuaXQg
PSBudWxscHRyKTsKKyAgICBzdGF0aWMgdm9pZCBmb3JtYXRUb1BhcnRzSW50ZXJuYWwoSlNHbG9i
YWxPYmplY3QqLCBTdHlsZSwgYm9vbCBzaWduLCBJbnRsTWF0aGVtYXRpY2FsVmFsdWU6Ok51bWJl
clR5cGUsIGNvbnN0IFN0cmluZyYgZm9ybWF0dGVkLCBJbnRsRmllbGRJdGVyYXRvciYsIEpTQXJy
YXkqLCBKU1N0cmluZyogc291cmNlVHlwZSwgSlNTdHJpbmcqIHVuaXQpOworICAgIHN0YXRpYyB2
b2lkIGZvcm1hdFJhbmdlVG9QYXJ0c0ludGVybmFsKEpTR2xvYmFsT2JqZWN0KiwgU3R5bGUsIElu
dGxNYXRoZW1hdGljYWxWYWx1ZSYmLCBJbnRsTWF0aGVtYXRpY2FsVmFsdWUmJiwgY29uc3QgVUZv
cm1hdHRlZFZhbHVlKiwgSlNBcnJheSopOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSW50bFR5
cGU+CiAgICAgZnJpZW5kIHZvaWQgc2V0TnVtYmVyRm9ybWF0RGlnaXRPcHRpb25zKEpTR2xvYmFs
T2JqZWN0KiwgSW50bFR5cGUqLCBKU09iamVjdCosIHVuc2lnbmVkIG1pbmltdW1GcmFjdGlvbkRp
Z2l0c0RlZmF1bHQsIHVuc2lnbmVkIG1heGltdW1GcmFjdGlvbkRpZ2l0c0RlZmF1bHQsIEludGxO
b3RhdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
TnVtYmVyRm9ybWF0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwCmluZGV4IDRmOGMwZDI3NWEwM2Q3NWI2NjJj
ZGM1ZDk2OTBmMjU5NDI0MzFjOTguLjhmM2ExOTY2MTMwOTdlMjdiMzRjOWU3Zjg2ZjJhMzAxYzBk
OWVjNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1i
ZXJGb3JtYXRQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwCkBAIC00Myw2ICs0MywxMCBAQCBzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihpbnRsTnVtYmVyRm9ybWF0RnVuY0Zvcm1hdCk7CiBz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihpbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBl
RnVuY0Zvcm1hdFJhbmdlKTsKICNlbmRpZgogCisjaWYgSEFWRShJQ1VfVV9OVU1CRVJfUkFOR0Vf
Rk9STUFUVEVSX0ZPUk1BVF9SQU5HRV9UT19QQVJUUykKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0UmFuZ2VUb1BhcnRz
KTsKKyNlbmRpZgorCiB9CiAKICNpbmNsdWRlICJJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmx1
dC5oIgpAQCAtODUsNiArODksOSBAQCB2b2lkIEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGU6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogI2lmIEhBVkUo
SUNVX1VfTlVNQkVSX1JBTkdFX0ZPUk1BVFRFUikKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTigiZm9ybWF0UmFuZ2UiLCBpbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBl
RnVuY0Zvcm1hdFJhbmdlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKSwgMSk7CiAjZW5kaWYKKyNpZiBIQVZFKElDVV9VX05VTUJFUl9SQU5HRV9GT1JN
QVRURVJfRk9STUFUX1JBTkdFX1RPX1BBUlRTKQorICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKCJmb3JtYXRSYW5nZVRvUGFydHMiLCBpbnRsTnVtYmVyRm9ybWF0UHJv
dG90eXBlRnVuY0Zvcm1hdFJhbmdlVG9QYXJ0cywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIDIpOworI2VuZGlmCiB9CiAKIC8vIGh0dHBzOi8vdGMz
OS5lcy9lY21hNDAyLyNzZWMtbnVtYmVyLWZvcm1hdC1mdW5jdGlvbnMKQEAgLTE5Myw2ICsyMDAs
MzggQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVG
dW5jRm9ybWF0VG9QYXJ0cywgKEpTR2xvYmFsT2IKICNlbmRpZgogfQogCisjaWYgSEFWRShJQ1Vf
VV9OVU1CRVJfUkFOR0VfRk9STUFUVEVSX0ZPUk1BVF9SQU5HRV9UT19QQVJUUykKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihpbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFJhbmdl
VG9QYXJ0cywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgLy8gRG8gbm90IHVzZSB1bndyYXBG
b3JPbGRGdW5jdGlvbnMuCisgICAgYXV0byogbnVtYmVyRm9ybWF0ID0ganNEeW5hbWljQ2FzdDxJ
bnRsTnVtYmVyRm9ybWF0Kj4odm0sIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOworICAgIGlmIChV
TkxJS0VMWSghbnVtYmVyRm9ybWF0KSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0
aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiSW50bC5OdW1iZXJGb3JtYXQucHJv
dG90eXBlLmZvcm1hdFJhbmdlVG9QYXJ0cyBjYWxsZWQgb24gdmFsdWUgdGhhdCdzIG5vdCBhIE51
bWJlckZvcm1hdCJfcykpOworCisgICAgSlNWYWx1ZSBzdGFydFZhbHVlID0gY2FsbEZyYW1lLT5h
cmd1bWVudCgwKTsKKyAgICBKU1ZhbHVlIGVuZFZhbHVlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgx
KTsKKworICAgIGlmIChzdGFydFZhbHVlLmlzVW5kZWZpbmVkKCkgfHwgZW5kVmFsdWUuaXNVbmRl
ZmluZWQoKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgInN0YXJ0IG9yIGVuZCBpcyB1bmRlZmluZWQiX3MpOworCisgICAgYXV0byBzdGFydCA9
IHRvSW50bE1hdGhlbWF0aWNhbFZhbHVlKGdsb2JhbE9iamVjdCwgc3RhcnRWYWx1ZSk7CisgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKworICAgIGF1dG8gZW5kID0gdG9JbnRs
TWF0aGVtYXRpY2FsVmFsdWUoZ2xvYmFsT2JqZWN0LCBlbmRWYWx1ZSk7CisgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKworICAgIGlmIChhdXRvIHN0YXJ0TnVtYmVyID0gc3Rh
cnQudHJ5R2V0RG91YmxlKCkpIHsKKyAgICAgICAgaWYgKGF1dG8gZW5kTnVtYmVyID0gZW5kLnRy
eUdldERvdWJsZSgpKQorICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1Zh
bHVlOjplbmNvZGUobnVtYmVyRm9ybWF0LT5mb3JtYXRSYW5nZVRvUGFydHMoZ2xvYmFsT2JqZWN0
LCBzdGFydE51bWJlci52YWx1ZSgpLCBlbmROdW1iZXIudmFsdWUoKSkpKTsKKyAgICB9CisKKyAg
ICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShudW1iZXJGb3JtYXQt
PmZvcm1hdFJhbmdlVG9QYXJ0cyhnbG9iYWxPYmplY3QsIFdURk1vdmUoc3RhcnQpLCBXVEZNb3Zl
KGVuZCkpKSk7Cit9CisjZW5kaWYKKwogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGludGxOdW1i
ZXJGb3JtYXRQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxSZWxhdGl2ZVRpbWVGb3JtYXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdC5jcHAKaW5kZXggN2FhM2UzMzI2Y2U1Mjk4MTkxMWU0
MGE1MTBjN2U5MWI2YTBlZDE2Yi4uZTMyOGExYzFmNDBjNDllNjk1NDUxYTUzZDI5OWU1MjMxN2I5
ZDc1NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFJlbGF0
aXZlVGltZUZvcm1hdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bFJlbGF0aXZlVGltZUZvcm1hdC5jcHAKQEAgLTMxOCw3ICszMTgsNyBAQCBKU1ZhbHVlIEludGxS
ZWxhdGl2ZVRpbWVGb3JtYXQ6OmZvcm1hdFRvUGFydHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgZG91YgogICAgICAgICB9CiAKICAgICAgICAgSW50bEZpZWxkSXRlcmF0b3IgZmllbGRJ
dGVyYXRvcigqaXRlcmF0b3IuZ2V0KCkpOwotICAgICAgICBJbnRsTnVtYmVyRm9ybWF0Ojpmb3Jt
YXRUb1BhcnRzSW50ZXJuYWwoZ2xvYmFsT2JqZWN0LCBJbnRsTnVtYmVyRm9ybWF0OjpTdHlsZTo6
RGVjaW1hbCwgc3RkOjpzaWduYml0KGFic1ZhbHVlKSwgSW50bE1hdGhlbWF0aWNhbFZhbHVlOjpu
dW1iZXJUeXBlRnJvbURvdWJsZShhYnNWYWx1ZSksIGZvcm1hdHRlZE51bWJlciwgZmllbGRJdGVy
YXRvciwgcGFydHMsIGpzU3RyaW5nKHZtLCBzaW5ndWxhclVuaXQodW5pdCkudG9TdHJpbmcoKSkp
OworICAgICAgICBJbnRsTnVtYmVyRm9ybWF0Ojpmb3JtYXRUb1BhcnRzSW50ZXJuYWwoZ2xvYmFs
T2JqZWN0LCBJbnRsTnVtYmVyRm9ybWF0OjpTdHlsZTo6RGVjaW1hbCwgc3RkOjpzaWduYml0KGFi
c1ZhbHVlKSwgSW50bE1hdGhlbWF0aWNhbFZhbHVlOjpudW1iZXJUeXBlRnJvbURvdWJsZShhYnNW
YWx1ZSksIGZvcm1hdHRlZE51bWJlciwgZmllbGRJdGVyYXRvciwgcGFydHMsIG51bGxwdHIsIGpz
U3RyaW5nKHZtLCBzaW5ndWxhclVuaXQodW5pdCkudG9TdHJpbmcoKSkpOwogICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCA5N2M1NDMwNWNmN2JmNGIwMTQ5
ZDJlMzNjZmI1NGVkZjhkMDllMWRlLi5kMTZjZjUzM2EyMzdjYTllNDA5Njk0ZTE5YTU1NDgyMzc2
M2QwODhiIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTExLTI4ICBZdXN1a2UgU3V6dWtpICA8eXN1enVr
aUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gQWRkIEludGwuTnVtYmVyRm9ybWF0LmZvcm1h
dFJhbmdlVG9QYXJ0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMzNTM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBzdHJlc3MvaW50bC1udW1iZXJmb3JtYXQtZm9ybWF0LWxhcmdlLmpzOgorICAgICAg
ICAobmYuZm9ybWF0UmFuZ2VUb1BhcnRzLnNob3VsZEJlLkpTT04uc3RyaW5naWZ5Lm5mLmZvcm1h
dFJhbmdlVG9QYXJ0cyk6CisgICAgICAgIChuZi5mb3JtYXRSYW5nZVRvUGFydHMuc2hvdWxkQmUu
SlNPTi5zdHJpbmdpZnkubmYyLmZvcm1hdFJhbmdlVG9QYXJ0cyk6CisgICAgICAgICogc3RyZXNz
L2ludGwtbnVtYmVyZm9ybWF0LWZvcm1hdC1yYW5nZS12My5qczoKKyAgICAgICAgKG5mLmZvcm1h
dFJhbmdlLm5mLmZvcm1hdFJhbmdlVG9QYXJ0cy5tZXRob2RzLmZvckVhY2gpOgorICAgICAgICAo
bmYuZm9ybWF0UmFuZ2Uuc3RyaW5nX2FwcGVhcmVkX2hlcmUuZm9yRWFjaCk6IERlbGV0ZWQuCisg
ICAgICAgICogc3RyZXNzL2ludGwtbnVtYmVyZm9ybWF0LWZvcm1hdC1zdHJpbmctdjMuanM6Cisg
ICAgICAgIChuZi5mb3JtYXRSYW5nZVRvUGFydHMuc2hvdWxkQmUuSlNPTi5zdHJpbmdpZnkubmYu
Zm9ybWF0UmFuZ2VUb1BhcnRzKToKKyAgICAgICAgKG5mLmZvcm1hdFJhbmdlVG9QYXJ0cy5zaG91
bGRCZS5KU09OLnN0cmluZ2lmeS5uZjIuZm9ybWF0UmFuZ2VUb1BhcnRzKToKKyAgICAgICAgKiBz
dHJlc3MvaW50bC1udW1iZXJmb3JtYXQtZm9ybWF0LXN0cmluZy5qczoKKyAgICAgICAgKG5mLmZv
cm1hdFJhbmdlVG9QYXJ0cy5zaG91bGRCZS5KU09OLnN0cmluZ2lmeS5uZi5mb3JtYXRSYW5nZVRv
UGFydHMpOgorICAgICAgICAobmYuZm9ybWF0UmFuZ2VUb1BhcnRzLnNob3VsZEJlLkpTT04uc3Ry
aW5naWZ5Lm5mMi5mb3JtYXRSYW5nZVRvUGFydHMpOgorCiAyMDIxLTExLTI0ICBNaWNoYWVsIENh
dGFuemFybyAgPG1jYXRhbnphcm9AZ25vbWUub3JnPgogCiAgICAgICAgIFNraXAgbmV3IHN0cmVz
cyB0ZXN0IGdldC1hcnJheS1sZW5ndGgtcmV1c2UuanMgaWYgbWVtb3J5LWxpbWl0ZWQKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL2ludGwtbnVtYmVyZm9ybWF0LWZvcm1hdC1sYXJnZS5qcyBi
L0pTVGVzdHMvc3RyZXNzL2ludGwtbnVtYmVyZm9ybWF0LWZvcm1hdC1sYXJnZS5qcwppbmRleCAx
Nzk0ZjU3OWQ2OWIwMDM0MWMzOWVmZmFmZGU1OWZlNGE0OWZjNjQ0Li45Yzc5ZmQzZjFkMTYyMzlh
OGYzZTFkN2E3ZWExNGFkNDBiYWQ3MmZjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9pbnRs
LW51bWJlcmZvcm1hdC1mb3JtYXQtbGFyZ2UuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1u
dW1iZXJmb3JtYXQtZm9ybWF0LWxhcmdlLmpzCkBAIC0xMywzICsxMyw4IEBAIGZ1bmN0aW9uIHNo
b3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKICAgICBzaG91bGRCZShuZi5mb3JtYXRSYW5nZShz
dGFydCwgZW5kKSwgYDk4Nyw2NTQsMzIxLDk4Nyw2NTQsMzIx4oCTOTg3LDY1NCwzMjEsOTg3LDY1
NCwzMjJgKTsKICAgICBzaG91bGRCZShuZjIuZm9ybWF0UmFuZ2Uoc3RhcnQsIGVuZCksIGA5ODcs
NjU0LDMyMSw5ODcsNjU0LDMyMe+9njk4Nyw2NTQsMzIxLDk4Nyw2NTQsMzIyYCk7CiB9CitpZiAo
bmYuZm9ybWF0UmFuZ2VUb1BhcnRzKSB7CisgICAgc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkobmYu
Zm9ybWF0UmFuZ2VUb1BhcnRzKDAsIDMwMDAwKSksIGBbeyJ0eXBlIjoiaW50ZWdlciIsInZhbHVl
IjoiMCIsInNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJsaXRlcmFsIiwidmFsdWUiOiLi
gJMiLCJzb3VyY2UiOiJzaGFyZWQifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiIzMCIsInNv
dXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJl
bmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJh
bmdlIn1dYCk7CisgICAgc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkobmYuZm9ybWF0UmFuZ2VUb1Bh
cnRzKHN0YXJ0LCBlbmQpKSwgYFt7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiI5ODciLCJzb3Vy
Y2UiOiJzdGFydFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJz
dGFydFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiNjU0Iiwic291cmNlIjoic3Rh
cnRSYW5nZSJ9LHsidHlwZSI6Imdyb3VwIiwidmFsdWUiOiIsIiwic291cmNlIjoic3RhcnRSYW5n
ZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjMyMSIsInNvdXJjZSI6InN0YXJ0UmFuZ2Ui
fSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7InR5
cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiI5ODciLCJzb3VyY2UiOiJzdGFydFJhbmdlIn0seyJ0eXBl
IjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJzdGFydFJhbmdlIn0seyJ0eXBlIjoiaW50
ZWdlciIsInZhbHVlIjoiNjU0Iiwic291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlwZSI6Imdyb3Vw
IiwidmFsdWUiOiIsIiwic291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2
YWx1ZSI6IjMyMSIsInNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJsaXRlcmFsIiwidmFs
dWUiOiLigJMiLCJzb3VyY2UiOiJzaGFyZWQifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiI5
ODciLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6Imdyb3VwIiwidmFsdWUiOiIsIiwic291
cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiI2NTQiLCJzb3VyY2Ui
OiJlbmRSYW5nZSJ9LHsidHlwZSI6Imdyb3VwIiwidmFsdWUiOiIsIiwic291cmNlIjoiZW5kUmFu
Z2UifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiIzMjEiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9
LHsidHlwZSI6Imdyb3VwIiwidmFsdWUiOiIsIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUi
OiJpbnRlZ2VyIiwidmFsdWUiOiI5ODciLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6Imdy
b3VwIiwidmFsdWUiOiIsIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJpbnRlZ2VyIiwi
dmFsdWUiOiI2NTQiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6Imdyb3VwIiwidmFsdWUi
OiIsIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiIzMjIi
LCJzb3VyY2UiOiJlbmRSYW5nZSJ9XWApOworICAgIHNob3VsZEJlKEpTT04uc3RyaW5naWZ5KG5m
Mi5mb3JtYXRSYW5nZVRvUGFydHMoc3RhcnQsIGVuZCkpLCBgW3sidHlwZSI6ImludGVnZXIiLCJ2
YWx1ZSI6Ijk4NyIsInNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVl
IjoiLCIsInNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiI2
NTQiLCJzb3VyY2UiOiJzdGFydFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJz
b3VyY2UiOiJzdGFydFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMzIxIiwic291
cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlwZSI6Imdyb3VwIiwidmFsdWUiOiIsIiwic291cmNlIjoi
c3RhcnRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6Ijk4NyIsInNvdXJjZSI6InN0
YXJ0UmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6InN0YXJ0UmFu
Z2UifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiI2NTQiLCJzb3VyY2UiOiJzdGFydFJhbmdl
In0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJzdGFydFJhbmdlIn0seyJ0
eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMzIxIiwic291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlw
ZSI6ImxpdGVyYWwiLCJ2YWx1ZSI6Iu+9niIsInNvdXJjZSI6InNoYXJlZCJ9LHsidHlwZSI6Imlu
dGVnZXIiLCJ2YWx1ZSI6Ijk4NyIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAi
LCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1
ZSI6IjY1NCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6Iiwi
LCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjMyMSIsInNv
dXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJl
bmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6Ijk4NyIsInNvdXJjZSI6ImVuZFJh
bmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsi
dHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjY1NCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBl
IjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVn
ZXIiLCJ2YWx1ZSI6IjMyMiIsInNvdXJjZSI6ImVuZFJhbmdlIn1dYCk7Cit9CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy9pbnRsLW51bWJlcmZvcm1hdC1mb3JtYXQtcmFuZ2UtdjMuanMgYi9K
U1Rlc3RzL3N0cmVzcy9pbnRsLW51bWJlcmZvcm1hdC1mb3JtYXQtcmFuZ2UtdjMuanMKaW5kZXgg
MjIyMzdjMTcwZjE2Y2ExNmNiMjI4OTFlZWQ1YWE3NWU2MjM4MmM0Mi4uNjgyMjkyNTMxMjc0OWUw
YjcyYmUyYzg5OTNlMGY0ZWQ2MDRkNzdhNCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvaW50
bC1udW1iZXJmb3JtYXQtZm9ybWF0LXJhbmdlLXYzLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2lu
dGwtbnVtYmVyZm9ybWF0LWZvcm1hdC1yYW5nZS12My5qcwpAQCAtNTAsOCArNTAsMTMgQEAgZnVu
Y3Rpb24gc2hvdWxkTm90VGhyb3coZnVuYykgewogY29uc3QgdmFsaWRSYW5nZXMgPSBbWy0xMjM0
NSwgLTU2NzhdLCBbLTEyMzQ1LCA1Njc4OV0sIFsxMjM0NSwgNTY3ODldXTsKIAogY29uc3QgbmYg
PSBuZXcgSW50bC5OdW1iZXJGb3JtYXQoImVuIiwge3NpZ25EaXNwbGF5OiAiZXhjZXB0WmVybyJ9
KTsKLWlmIChuZi5mb3JtYXRSYW5nZSkgewotICAgIFsnZm9ybWF0UmFuZ2UnXS5mb3JFYWNoKGZ1
bmN0aW9uKG1ldGhvZCkgeworaWYgKG5mLmZvcm1hdFJhbmdlIHx8IG5mLmZvcm1hdFJhbmdlVG9Q
YXJ0cykgeworICAgIGxldCBtZXRob2RzID0gW107CisgICAgaWYgKG5mLmZvcm1hdFJhbmdlKQor
ICAgICAgICBtZXRob2RzLnB1c2goImZvcm1hdFJhbmdlIik7CisgICAgaWYgKG5mLmZvcm1hdFJh
bmdlVG9QYXJ0cykKKyAgICAgICAgbWV0aG9kcy5wdXNoKCJmb3JtYXRSYW5nZVRvUGFydHMiKTsK
KyAgICBtZXRob2RzLmZvckVhY2goZnVuY3Rpb24obWV0aG9kKSB7CiAgICAgICAgIHNob3VsZEJl
KCJmdW5jdGlvbiIsIHR5cGVvZiBuZlttZXRob2RdKTsKIAogICAgICAgICAvLyAyLiBQZXJmb3Jt
ID8gUmVxdWlyZUludGVybmFsU2xvdChuZiwgW1tJbml0aWFsaXplZE51bWJlckZvcm1hdF1dKS4K
QEAgLTEyNywxMCArMTMyLDkgQEAgZnVuY3Rpb24gc2hvdWxkTm90VGhyb3coZnVuYykgewogICAg
ICAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZF9YX3kgPSBuZlttZXRob2RdKFgsIHkpOwogICAg
ICAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZF94X1kgPSBuZlttZXRob2RdKHgsIFkpOwogICAg
ICAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZF9YX1kgPSBuZlttZXRob2RdKFgsIFkpOwotICAg
ICAgICAgICAgICAgIHNob3VsZEJlKGZvcm1hdHRlZF94X3ksIGZvcm1hdHRlZF9YX3kpOwotICAg
ICAgICAgICAgICAgIHNob3VsZEJlKGZvcm1hdHRlZF94X3ksIGZvcm1hdHRlZF94X1kpOwotICAg
ICAgICAgICAgICAgIHNob3VsZEJlKGZvcm1hdHRlZF94X3ksIGZvcm1hdHRlZF9YX1kpOwotCisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkoZm9ybWF0dGVkX3hfeSksIEpT
T04uc3RyaW5naWZ5KGZvcm1hdHRlZF9YX3kpKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZShK
U09OLnN0cmluZ2lmeShmb3JtYXR0ZWRfeF95KSwgSlNPTi5zdHJpbmdpZnkoZm9ybWF0dGVkX3hf
WSkpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKEpTT04uc3RyaW5naWZ5KGZvcm1hdHRlZF94
X3kpLCBKU09OLnN0cmluZ2lmeShmb3JtYXR0ZWRfWF9ZKSk7CiAgICAgICAgICAgICB9KTsKICAg
ICB9KTsKIH0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2ludGwtbnVtYmVyZm9ybWF0LWZv
cm1hdC1zdHJpbmctdjMuanMgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLW51bWJlcmZvcm1hdC1mb3Jt
YXQtc3RyaW5nLXYzLmpzCmluZGV4IDk1ZDViZjAxYTExZmJjNzc2Y2M5OGZiNDc5NDJjZDg3ZTZm
MmY2ZTEuLmYxMzQzMzY0Zjc3ZWNjOGM0MDgyNDg4YzRjMjJmODYwMzczZTE4ZjYgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvc3RyZXNzL2ludGwtbnVtYmVyZm9ybWF0LWZvcm1hdC1zdHJpbmctdjMuanMK
KysrIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1udW1iZXJmb3JtYXQtZm9ybWF0LXN0cmluZy12My5q
cwpAQCAtNDEsMyArNDEsNyBAQCBmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7
CiAgICAgc2hvdWxkQmUobmYuZm9ybWF0UmFuZ2Uoc3RyaW5nLCBzdHJpbmcyKSwgYDk4Nyw2NTQs
MzIxLDk4Nyw2NTQsMzIx4oCTOTg3LDY1NCwzMjEsOTg3LDY1NCwzMjJgKTsKICAgICBzaG91bGRC
ZShuZjIuZm9ybWF0UmFuZ2Uoc3RyaW5nLCBzdHJpbmcyKSwgYDk4Nyw2NTQsMzIxLDk4Nyw2NTQs
MzIx772eOTg3LDY1NCwzMjEsOTg3LDY1NCwzMjJgKTsKIH0KK2lmIChuZi5mb3JtYXRSYW5nZVRv
UGFydHMpIHsKKyAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShuZi5mb3JtYXRSYW5nZVRvUGFy
dHMoc3RyaW5nLCBzdHJpbmcyKSksIGBbeyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiOTg3Iiwi
c291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlwZSI6Imdyb3VwIiwidmFsdWUiOiIsIiwic291cmNl
Ijoic3RhcnRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjY1NCIsInNvdXJjZSI6
InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6InN0YXJ0
UmFuZ2UifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiIzMjEiLCJzb3VyY2UiOiJzdGFydFJh
bmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJzdGFydFJhbmdlIn0s
eyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiOTg3Iiwic291cmNlIjoic3RhcnRSYW5nZSJ9LHsi
dHlwZSI6Imdyb3VwIiwidmFsdWUiOiIsIiwic291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlwZSI6
ImludGVnZXIiLCJ2YWx1ZSI6IjY1NCIsInNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJn
cm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJpbnRlZ2Vy
IiwidmFsdWUiOiIzMjEiLCJzb3VyY2UiOiJzdGFydFJhbmdlIn0seyJ0eXBlIjoibGl0ZXJhbCIs
InZhbHVlIjoi4oCTIiwic291cmNlIjoic2hhcmVkIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVl
IjoiOTg3Iiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIs
InNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiNjU0Iiwic291
cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVu
ZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMzIxIiwic291cmNlIjoiZW5kUmFu
Z2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0
eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiOTg3Iiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUi
OiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdl
ciIsInZhbHVlIjoiNjU0Iiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZh
bHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoi
MzIyIiwic291cmNlIjoiZW5kUmFuZ2UifV1gKTsKKyAgICBzaG91bGRCZShKU09OLnN0cmluZ2lm
eShuZjIuZm9ybWF0UmFuZ2VUb1BhcnRzKHN0cmluZywgc3RyaW5nMikpLCBgW3sidHlwZSI6Imlu
dGVnZXIiLCJ2YWx1ZSI6Ijk4NyIsInNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJncm91
cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJpbnRlZ2VyIiwi
dmFsdWUiOiI2NTQiLCJzb3VyY2UiOiJzdGFydFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1
ZSI6IiwiLCJzb3VyY2UiOiJzdGFydFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoi
MzIxIiwic291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlwZSI6Imdyb3VwIiwidmFsdWUiOiIsIiwi
c291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6Ijk4NyIsInNv
dXJjZSI6InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6
InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiI2NTQiLCJzb3VyY2UiOiJz
dGFydFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJzdGFydFJh
bmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMzIxIiwic291cmNlIjoic3RhcnRSYW5n
ZSJ9LHsidHlwZSI6ImxpdGVyYWwiLCJ2YWx1ZSI6Iu+9niIsInNvdXJjZSI6InNoYXJlZCJ9LHsi
dHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6Ijk4NyIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBl
IjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVn
ZXIiLCJ2YWx1ZSI6IjY1NCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2
YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6
IjMyMSIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJz
b3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6Ijk4NyIsInNvdXJj
ZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRS
YW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjY1NCIsInNvdXJjZSI6ImVuZFJhbmdl
In0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlw
ZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjMyMiIsInNvdXJjZSI6ImVuZFJhbmdlIn1dYCk7Cit9CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLW51bWJlcmZvcm1hdC1mb3JtYXQtc3RyaW5n
LmpzIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1udW1iZXJmb3JtYXQtZm9ybWF0LXN0cmluZy5qcwpp
bmRleCBmYmNiZGQxODg4MTEwMDY4NjRiNDU5MTlmYjI5NDYwODFiNjcwYjQ1Li4wYTFhMWZiODM2
MDFhZGZjYjU2Nzc3YzViNDFiOGQxZWJhODI4ZmRlIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVz
cy9pbnRsLW51bWJlcmZvcm1hdC1mb3JtYXQtc3RyaW5nLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNz
L2ludGwtbnVtYmVyZm9ybWF0LWZvcm1hdC1zdHJpbmcuanMKQEAgLTE2LDMgKzE2LDEzIEBAIGZ1
bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKICAgICBzaG91bGRCZShuZjIuZm9y
bWF0UmFuZ2UoIi0wIiwgIjAiKSwgYC0wIO+9niAwYCk7CiAgICAgc2hvdWxkQmUobmYyLmZvcm1h
dFJhbmdlKCItMCIsICIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwIiksIGAtMCDvvZ4gMSwwMDAsMDAwLDAwMCwwMDAsMDAwLDAwMCwwMDAsMDAwLDAwMCwwMDAs
MDAwLDAwMCwwMDAsMDAwLDAwMGApOwogfQoraWYgKG5mLmZvcm1hdFJhbmdlVG9QYXJ0cykgewor
ICAgIHNob3VsZEJlKEpTT04uc3RyaW5naWZ5KG5mLmZvcm1hdFJhbmdlVG9QYXJ0cygiLTU0LjMy
MSIsICIrNTQuMzIxIikpLCBgW3sidHlwZSI6Im1pbnVzU2lnbiIsInZhbHVlIjoiLSIsInNvdXJj
ZSI6InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiI1NCIsInNvdXJjZSI6
InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJkZWNpbWFsIiwidmFsdWUiOiIuIiwic291cmNlIjoic3Rh
cnRSYW5nZSJ9LHsidHlwZSI6ImZyYWN0aW9uIiwidmFsdWUiOiIzMjEiLCJzb3VyY2UiOiJzdGFy
dFJhbmdlIn0seyJ0eXBlIjoibGl0ZXJhbCIsInZhbHVlIjoiIOKAkyAiLCJzb3VyY2UiOiJzaGFy
ZWQifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiI1NCIsInNvdXJjZSI6ImVuZFJhbmdlIn0s
eyJ0eXBlIjoiZGVjaW1hbCIsInZhbHVlIjoiLiIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBl
IjoiZnJhY3Rpb24iLCJ2YWx1ZSI6IjMyMSIsInNvdXJjZSI6ImVuZFJhbmdlIn1dYCk7CisgICAg
c2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkobmYuZm9ybWF0UmFuZ2VUb1BhcnRzKCItNTQuMzIxIiwg
IjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIikpLCBgW3sidHlwZSI6
Im1pbnVzU2lnbiIsInZhbHVlIjoiLSIsInNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJp
bnRlZ2VyIiwidmFsdWUiOiI1NCIsInNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJkZWNp
bWFsIiwidmFsdWUiOiIuIiwic291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlwZSI6ImZyYWN0aW9u
IiwidmFsdWUiOiIzMjEiLCJzb3VyY2UiOiJzdGFydFJhbmdlIn0seyJ0eXBlIjoibGl0ZXJhbCIs
InZhbHVlIjoiIOKAkyAiLCJzb3VyY2UiOiJzaGFyZWQifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFs
dWUiOiIyMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6Iiwi
LCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNv
dXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJl
bmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJh
bmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsi
dHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBl
IjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVn
ZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2
YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6
IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJz
b3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJj
ZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRS
YW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdl
In0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlw
ZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoi
Z3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIi
LCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1
ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAw
MCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3Vy
Y2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6
ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5n
ZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0s
eyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6
ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn1dYCk7CisgICAgc2hv
dWxkQmUoSlNPTi5zdHJpbmdpZnkobmYuZm9ybWF0UmFuZ2VUb1BhcnRzKCItMCIsICIwIikpLCBg
W3sidHlwZSI6Im1pbnVzU2lnbiIsInZhbHVlIjoiLSIsInNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7
InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiIwIiwic291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlw
ZSI6ImxpdGVyYWwiLCJ2YWx1ZSI6IiDigJMgIiwic291cmNlIjoic2hhcmVkIn0seyJ0eXBlIjoi
aW50ZWdlciIsInZhbHVlIjoiMCIsInNvdXJjZSI6ImVuZFJhbmdlIn1dYCk7CisgICAgc2hvdWxk
QmUoSlNPTi5zdHJpbmdpZnkobmYuZm9ybWF0UmFuZ2VUb1BhcnRzKCItMCIsICIxMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIikpLCBgW3sidHlwZSI6Im1pbnVz
U2lnbiIsInZhbHVlIjoiLSIsInNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJpbnRlZ2Vy
IiwidmFsdWUiOiIwIiwic291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlwZSI6ImxpdGVyYWwiLCJ2
YWx1ZSI6IiDigJMgIiwic291cmNlIjoic2hhcmVkIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVl
IjoiMSIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJz
b3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJj
ZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRS
YW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdl
In0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlw
ZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoi
Z3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIi
LCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1
ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAw
MCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3Vy
Y2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6
ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5n
ZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0s
eyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6
ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3Jv
dXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2
YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6
IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIs
InNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2Ui
OiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVu
ZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9
LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0
eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6Imlu
dGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAi
LCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1
ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6Iiwi
LCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNv
dXJjZSI6ImVuZFJhbmdlIn1dYCk7CisgICAgc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkobmYyLmZv
cm1hdFJhbmdlVG9QYXJ0cygiLTU0LjMyMSIsICIrNTQuMzIxIikpLCBgW3sidHlwZSI6Im1pbnVz
U2lnbiIsInZhbHVlIjoiLSIsInNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJpbnRlZ2Vy
IiwidmFsdWUiOiI1NCIsInNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJkZWNpbWFsIiwi
dmFsdWUiOiIuIiwic291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlwZSI6ImZyYWN0aW9uIiwidmFs
dWUiOiIzMjEiLCJzb3VyY2UiOiJzdGFydFJhbmdlIn0seyJ0eXBlIjoibGl0ZXJhbCIsInZhbHVl
IjoiIO+9niAiLCJzb3VyY2UiOiJzaGFyZWQifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiI1
NCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZGVjaW1hbCIsInZhbHVlIjoiLiIsInNv
dXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZnJhY3Rpb24iLCJ2YWx1ZSI6IjMyMSIsInNvdXJj
ZSI6ImVuZFJhbmdlIn1dYCk7CisgICAgc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkobmYyLmZvcm1h
dFJhbmdlVG9QYXJ0cygiLTU0LjMyMSIsICIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMCIpKSwgYFt7InR5cGUiOiJtaW51c1NpZ24iLCJ2YWx1ZSI6Ii0iLCJzb3VyY2Ui
OiJzdGFydFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiNTQiLCJzb3VyY2UiOiJz
dGFydFJhbmdlIn0seyJ0eXBlIjoiZGVjaW1hbCIsInZhbHVlIjoiLiIsInNvdXJjZSI6InN0YXJ0
UmFuZ2UifSx7InR5cGUiOiJmcmFjdGlvbiIsInZhbHVlIjoiMzIxIiwic291cmNlIjoic3RhcnRS
YW5nZSJ9LHsidHlwZSI6ImxpdGVyYWwiLCJ2YWx1ZSI6IiDvvZ4gIiwic291cmNlIjoic2hhcmVk
In0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMjAiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsi
dHlwZSI6Imdyb3VwIiwidmFsdWUiOiIsIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJp
bnRlZ2VyIiwidmFsdWUiOiIwMDAiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6Imdyb3Vw
IiwidmFsdWUiOiIsIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFs
dWUiOiIwMDAiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6Imdyb3VwIiwidmFsdWUiOiIs
Iiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiIwMDAiLCJz
b3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6Imdyb3VwIiwidmFsdWUiOiIsIiwic291cmNlIjoi
ZW5kUmFuZ2UifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiIwMDAiLCJzb3VyY2UiOiJlbmRS
YW5nZSJ9LHsidHlwZSI6Imdyb3VwIiwidmFsdWUiOiIsIiwic291cmNlIjoiZW5kUmFuZ2UifSx7
InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiIwMDAiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlw
ZSI6Imdyb3VwIiwidmFsdWUiOiIsIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJpbnRl
Z2VyIiwidmFsdWUiOiIwMDAiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6Imdyb3VwIiwi
dmFsdWUiOiIsIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUi
OiIwMDAiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6Imdyb3VwIiwidmFsdWUiOiIsIiwi
c291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiIwMDAiLCJzb3Vy
Y2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6Imdyb3VwIiwidmFsdWUiOiIsIiwic291cmNlIjoiZW5k
UmFuZ2UifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiIwMDAiLCJzb3VyY2UiOiJlbmRSYW5n
ZSJ9LHsidHlwZSI6Imdyb3VwIiwidmFsdWUiOiIsIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5
cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiIwMDAiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6
Imdyb3VwIiwidmFsdWUiOiIsIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJpbnRlZ2Vy
IiwidmFsdWUiOiIwMDAiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6Imdyb3VwIiwidmFs
dWUiOiIsIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiIw
MDAiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6Imdyb3VwIiwidmFsdWUiOiIsIiwic291
cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiIwMDAiLCJzb3VyY2Ui
OiJlbmRSYW5nZSJ9XWApOworICAgIHNob3VsZEJlKEpTT04uc3RyaW5naWZ5KG5mMi5mb3JtYXRS
YW5nZVRvUGFydHMoIi0wIiwgIjAiKSksIGBbeyJ0eXBlIjoibWludXNTaWduIiwidmFsdWUiOiIt
Iiwic291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAiLCJz
b3VyY2UiOiJzdGFydFJhbmdlIn0seyJ0eXBlIjoibGl0ZXJhbCIsInZhbHVlIjoiIO+9niAiLCJz
b3VyY2UiOiJzaGFyZWQifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiIwIiwic291cmNlIjoi
ZW5kUmFuZ2UifV1gKTsKKyAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShuZjIuZm9ybWF0UmFu
Z2VUb1BhcnRzKCItMCIsICIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwIikpLCBgW3sidHlwZSI6Im1pbnVzU2lnbiIsInZhbHVlIjoiLSIsInNvdXJjZSI6InN0
YXJ0UmFuZ2UifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiIwIiwic291cmNlIjoic3RhcnRS
YW5nZSJ9LHsidHlwZSI6ImxpdGVyYWwiLCJ2YWx1ZSI6IiDvvZ4gIiwic291cmNlIjoic2hhcmVk
In0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMSIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0
eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6Imlu
dGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAi
LCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1
ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6Iiwi
LCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNv
dXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJl
bmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJh
bmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsi
dHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBl
IjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVn
ZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2
YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6
IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJz
b3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJj
ZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRS
YW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdl
In0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlw
ZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoi
Z3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIi
LCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1
ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAw
MCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3Vy
Y2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6
ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5n
ZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0s
eyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6
ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn1dYCk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445249</attachid>
            <date>2021-11-28 22:12:35 -0800</date>
            <delta_ts>2021-11-29 12:11:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233539-20211129011234.patch</filename>
            <type>text/plain</type>
            <size>49065</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
ZGVlNThiZWRjZjQzNDJkMjgyY2IyMTk0N2QzYzllZWI1MDM4ZTg2Li40ODYwM2Q1ZmMyZmExNDZm
MzVjZjE0ZGM4ZDQ2MDJkZjgyZjlhY2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAyMS0xMS0yOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBJbnRsLk51bWJlckZvcm1hdC5mb3JtYXRSYW5nZVRvUGFy
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzU0
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggaW1wbGVtZW50cyBJbnRsLk51bWJlckZvcm1hdCNmb3JtYXRSYW5nZVRvUGFydHMgaWYg
SUNVIGlzIDY5IG9yIGdyZWF0ZXIuCisgICAgICAgIEl0IGFsc28gY2xlYW5zIHVwIC8gb3B0aW1p
emVzIGV4aXN0aW5nIEludGwuTnVtYmVyRm9ybWF0I2Zvcm1hdFRvUGFydHMgaW1wbGVtZW50YXRp
b24uCisKKyAgICAgICAgV2UgZmlyc3QgY29sbGVjdCBhbGwgZmllbGRzIGdlbmVyYXRlZCBieSBJ
Q1UuIEFuZCB0aGVuLCBmbGF0dGVuaW5nIG5lc3RlZCBmaWVsZHMgaW50bworICAgICAgICBub24t
b3ZlcmxhcHBpbmcgc2VxdWVuY2Ugb2YgcGFydHMgdmlhIGZsYXR0ZW5GaWVsZHMuCisKKyAgICAg
ICAgKiBydW50aW1lL0ludGxOdW1iZXJGb3JtYXQuY3BwOgorICAgICAgICAoSlNDOjpmbGF0dGVu
RmllbGRzKToKKyAgICAgICAgKEpTQzo6bnVtYmVyRmllbGRzUHJhY3RpY2FsbHlFcXVhbCk6Cisg
ICAgICAgIChKU0M6OkludGxOdW1iZXJGb3JtYXQ6OmZvcm1hdFJhbmdlVG9QYXJ0c0ludGVybmFs
KToKKyAgICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1hdDo6Zm9ybWF0UmFuZ2VUb1BhcnRzIGNv
bnN0KToKKyAgICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1hdDo6Zm9ybWF0VG9QYXJ0c0ludGVy
bmFsKToKKyAgICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1hdDo6Zm9ybWF0VG9QYXJ0cyBjb25z
dCk6CisgICAgICAgICogcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Lmg6CisgICAgICAgICogcnVu
dGltZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SW50bE51
bWJlckZvcm1hdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvSW50bFJlbGF0aXZlVGlt
ZUZvcm1hdC5jcHA6CisgICAgICAgIChKU0M6OkludGxSZWxhdGl2ZVRpbWVGb3JtYXQ6OmZvcm1h
dFRvUGFydHMgY29uc3QpOgorCiAyMDIxLTExLTI2ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8
YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgTm9uLXVuaWZpZWQgYnVpbGQgZml4ZXMsIGxh
dGUgTm92ZW1iZXIgMjAyMSBlZGl0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxOdW1iZXJGb3JtYXQuY3BwCmluZGV4IGQ4YjQ1M2Y2NGYzNjMwYzYxNzA0YWMy
ZGFmZDBjNDQ2NjY3MzEyZGEuLjI0NGQwZmMzZDk5M2UyYTJmOTMwNjliNDc1Y2E0NGI4YTMzYTIy
ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJG
b3JtYXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJG
b3JtYXQuY3BwCkBAIC03MywxMSArNzMsNiBAQCB2b2lkIFVOdW1iZXJSYW5nZUZvcm1hdHRlckRl
bGV0ZXI6Om9wZXJhdG9yKCkoVU51bWJlclJhbmdlRm9ybWF0dGVyKiBmb3JtYXR0ZXIpCiB9CiAj
ZW5kaWYKIAotc3RydWN0IEludGxOdW1iZXJGb3JtYXRGaWVsZCB7Ci0gICAgaW50MzJfdCB0eXBl
OwotICAgIHNpemVfdCBzaXplOwotfTsKLQogSW50bE51bWJlckZvcm1hdCogSW50bE51bWJlckZv
cm1hdDo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiB7CiAgICAgSW50bE51
bWJlckZvcm1hdCogZm9ybWF0ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SW50bE51bWJl
ckZvcm1hdD4odm0pKSBJbnRsTnVtYmVyRm9ybWF0KHZtLCBzdHJ1Y3R1cmUpOwpAQCAtODk1LDYg
Kzg5MCwzNjEgQEAgSlNWYWx1ZSBJbnRsTnVtYmVyRm9ybWF0Ojpmb3JtYXRSYW5nZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBJbnRsTWF0aGVtYXQKIH0KICNlbmRpZgogCitzdGF0aWMg
Y29uc3RleHByIGludDMyX3QgbGl0ZXJhbEZpZWxkID0gLTE7CitzdHJ1Y3QgSW50bE51bWJlckZv
cm1hdEZpZWxkIHsKKyAgICBpbnQzMl90IG1fZmllbGQ7CisgICAgV1RGOjpSYW5nZTxpbnQzMl90
PiBtX3JhbmdlOworfTsKKworc3RhdGljIFZlY3RvcjxJbnRsTnVtYmVyRm9ybWF0RmllbGQ+IGZs
YXR0ZW5GaWVsZHMoVmVjdG9yPEludGxOdW1iZXJGb3JtYXRGaWVsZD4mJiBmaWVsZHMsIGludDMy
X3QgZm9ybWF0dGVkU3RyaW5nTGVuZ3RoKQoreworICAgIC8vIElDVSBnZW5lcmF0ZXMgc2VxdWVu
Y2Ugb2YgbmVzdGVkIGZpZWxkcywgYnV0IEVDTUE0MDIgcmVxdWlyZXMgbm9uLW92ZXJsYXBwaW5n
IHNlcXVlbmNlIG9mIHBhcnRzLgorICAgIC8vIFRoaXMgZnVuY3Rpb24gZmxhdHRlbnMgbmVzdGVk
IGZpZWxkcyBpbnRvIHNlcXVlbmNlIG9mIG5vbi1vdmVybGFwcGluZyBwYXJ0cy4KKyAgICAvLwor
ICAgIC8vIEZvcm1hdHRlZCBzdHJpbmc6ICIxMDAsMDAw4oCTMjAsMDAwLDAwMCIKKyAgICAvLyAg
ICAgICAgICAgICAgICAgICAgfCAgfCAgfCB8IHwgICB8ICB8CisgICAgLy8gICAgICAgICAgICAg
ICAgICAgIHwgIEIgIHwgfCBFICAgRiAgfAorICAgIC8vICAgICAgICAgICAgICAgICAgICB8ICAg
ICB8IHwgICAgICAgIHwKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgKy0tQy0tKyArLS0tRy0t
LS0rCisgICAgLy8gICAgICAgICAgICAgICAgICAgICstLUEtLSsgKy0tLUQtLS0tKworICAgIC8v
CisgICAgLy8gUmFuZ2VzIElDVSBnZW5lcmF0ZXM6CisgICAgLy8gICAgIEE6ICAgICgwLCA3KSAg
IFVGSUVMRF9DQVRFR09SWV9OVU1CRVJfUkFOR0VfU1BBTiBzdGFydFJhbmdlCisgICAgLy8gICAg
IEI6ICAgICgzLCA0KSAgIFVGSUVMRF9DQVRFR09SWV9OVU1CRVIgZ3JvdXAgIiwiCisgICAgLy8g
ICAgIEM6ICAgICgwLCA3KSAgIFVGSUVMRF9DQVRFR09SWV9OVU1CRVIgaW50ZWdlcgorICAgIC8v
ICAgICBEOiAgICAoOCwgMTgpICBVRklFTERfQ0FURUdPUllfTlVNQkVSX1JBTkdFX1NQQU4gZW5k
UmFuZ2UKKyAgICAvLyAgICAgRTogICAgKDEwLCAxMSkgVUZJRUxEX0NBVEVHT1JZX05VTUJFUiBn
cm91cCAiLCIKKyAgICAvLyAgICAgRjogICAgKDE0LCAxNSkgVUZJRUxEX0NBVEVHT1JZX05VTUJF
UiBncm91cCAiLCIKKyAgICAvLyAgICAgRzogICAgKDgsIDE4KSAgVUZJRUxEX0NBVEVHT1JZX05V
TUJFUiBpbnRlZ2VyCisgICAgLy8KKyAgICAvLyBUaGVuLCB3ZSBuZWVkIHRvIGdlbmVyYXRlOgor
ICAgIC8vICAgICBBOiAgICAoMCwgMykgICBzdGFydFJhbmdlIGludGVnZXIKKyAgICAvLyAgICAg
QjogICAgKDMsIDQpICAgc3RhcnRSYW5nZSBncm91cCAiLCIKKyAgICAvLyAgICAgQzogICAgKDQs
IDcpICAgc3RhcnRSYW5nZSBpbnRlZ2VyCisgICAgLy8gICAgIEQ6ICAgICg3LCA4KSAgIHNoYXJl
ZCAgICAgbGl0ZXJhbCAiLSIKKyAgICAvLyAgICAgRTogICAgKDgsIDEwKSAgZW5kUmFuZ2UgICBp
bnRlZ2VyCisgICAgLy8gICAgIEY6ICAgICgxMCwgMTEpIGVuZFJhbmdlICAgZ3JvdXAgIiwiCisg
ICAgLy8gICAgIEc6ICAgICgxMSwgMTQpIGVuZFJhbmdlICAgaW50ZWdlcgorICAgIC8vICAgICBI
OiAgICAoMTQsIDE1KSBlbmRSYW5nZSAgIGdyb3VwICIsIgorICAgIC8vICAgICBJOiAgICAoMTUs
IDE4KSBlbmRSYW5nZSAgIGludGVnZXIKKworICAgIHN0ZDo6c29ydChmaWVsZHMuYmVnaW4oKSwg
ZmllbGRzLmVuZCgpLCBbXShhdXRvJiBsaHMsIGF1dG8mIHJocykgeworICAgICAgICBpZiAobGhz
Lm1fcmFuZ2UuYmVnaW4oKSA8IHJocy5tX3JhbmdlLmJlZ2luKCkpCisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgaWYgKGxocy5tX3JhbmdlLmJlZ2luKCkgPiByaHMubV9yYW5nZS5i
ZWdpbigpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAobGhzLm1fcmFu
Z2UuZW5kKCkgPCByaHMubV9yYW5nZS5lbmQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgaWYgKGxocy5tX3JhbmdlLmVuZCgpID4gcmhzLm1fcmFuZ2UuZW5kKCkpCisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIGxocy5tX2ZpZWxkIDwgcmhzLm1f
ZmllbGQ7CisgICAgfSk7CisKKyAgICBWZWN0b3I8SW50bE51bWJlckZvcm1hdEZpZWxkPiBmbGF0
dGVuOworICAgIFZlY3RvcjxJbnRsTnVtYmVyRm9ybWF0RmllbGQ+IHN0YWNrOworICAgIC8vIFRv
cC1sZXZlbCBmaWVsZCBjb3ZlcnMgZW50aXJlIHBhcnRzLCB3aGljaCBtYWtlcyBwYXJ0cyAibGl0
ZXJhbCIuCisgICAgc3RhY2suYXBwZW5kKEludGxOdW1iZXJGb3JtYXRGaWVsZCB7IGxpdGVyYWxG
aWVsZCwgeyAwLCBmb3JtYXR0ZWRTdHJpbmdMZW5ndGggfSB9KTsKKworICAgIHVuc2lnbmVkIGN1
cnNvciA9IDA7CisgICAgaW50MzJfdCBiZWdpbiA9IDA7CisgICAgd2hpbGUgKGN1cnNvciA8IGZp
ZWxkcy5zaXplKCkpIHsKKyAgICAgICAgY29uc3QgYXV0byYgZmllbGQgPSBmaWVsZHNbY3Vyc29y
XTsKKworICAgICAgICAvLyBJZiB0aGUgbmV3IGZpZWxkIGlzIG91dCBvZiB0aGUgY3VycmVudCB0
b3AtbW9zdCBmaWVsZCwgcm9sbCB1cCBhbmQgaW5zZXJ0IGEgZmxhdHRlbiBmaWVsZC4KKyAgICAg
ICAgLy8gQmVjYXVzZSB0aGUgdG9wLWxldmVsIGZpZWxkIGluIHRoZSBzdGFjayBjb3ZlcnMgYWxs
IGluZGV4IHJhbmdlLCB0aGlzIGNvbmRpdGlvbiBhbHdheXMgYmVjb21lcyBmYWxzZQorICAgICAg
ICAvLyBpZiBzdGFjayBzaXplIGlzIDEuCisgICAgICAgIHdoaWxlIChzdGFjay5sYXN0KCkubV9y
YW5nZS5lbmQoKSA8IGZpZWxkLm1fcmFuZ2UuYmVnaW4oKSkgeworICAgICAgICAgICAgaWYgKGJl
Z2luIDwgc3RhY2subGFzdCgpLm1fcmFuZ2UuZW5kKCkpIHsKKyAgICAgICAgICAgICAgICBJbnRs
TnVtYmVyRm9ybWF0RmllbGQgZmxhdHRlbkZpZWxkIHsgc3RhY2subGFzdCgpLm1fZmllbGQsIHsg
YmVnaW4sIHN0YWNrLmxhc3QoKS5tX3JhbmdlLmVuZCgpIH0gfTsKKyAgICAgICAgICAgICAgICBm
bGF0dGVuLmFwcGVuZChmbGF0dGVuRmllbGQpOworICAgICAgICAgICAgICAgIGJlZ2luID0gZmxh
dHRlbkZpZWxkLm1fcmFuZ2UuZW5kKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdGFj
ay5yZW1vdmVMYXN0KCk7CisgICAgICAgIH0KKyAgICAgICAgQVNTRVJUKCFzdGFjay5pc0VtcHR5
KCkpOyAvLyBBdCBsZWFzdCwgdG9wLWxldmVsIGZpZWxkIGV4aXN0cy4KKworICAgICAgICAvLyBJ
ZiB0aGUgbmV3IGZpZWxkIGlzIHN0YXJ0aW5nIHdpdGggdGhlIHNhbWUgaW5kZXgsIGRpdmluZyBp
bnRvIHRoZSBuZXcgZmllbGQgYnkgYWRkaW5nIGl0IGludG8gc3RhY2suCisgICAgICAgIGlmIChi
ZWdpbiA9PSBmaWVsZC5tX3JhbmdlLmJlZ2luKCkpIHsKKyAgICAgICAgICAgIHN0YWNrLmFwcGVu
ZChmaWVsZCk7CisgICAgICAgICAgICArK2N1cnNvcjsKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICB9CisKKyAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSByb29tIGJldHdlZW4gdGhlIGN1
cnJlbnQgdG9wLW1vc3QgZmllbGQgYW5kIHRoZSBuZXcgZmllbGQsIGluc2VydCBhIGZsYXR0ZW4g
ZmllbGQuCisgICAgICAgIGlmIChiZWdpbiA8IGZpZWxkLm1fcmFuZ2UuYmVnaW4oKSkgeworICAg
ICAgICAgICAgSW50bE51bWJlckZvcm1hdEZpZWxkIGZsYXR0ZW5GaWVsZCB7IHN0YWNrLmxhc3Qo
KS5tX2ZpZWxkLCB7IGJlZ2luLCBmaWVsZC5tX3JhbmdlLmJlZ2luKCkgfSB9OworICAgICAgICAg
ICAgZmxhdHRlbi5hcHBlbmQoZmxhdHRlbkZpZWxkKTsKKyAgICAgICAgICAgIHN0YWNrLmFwcGVu
ZChmaWVsZCk7CisgICAgICAgICAgICBiZWdpbiA9IGZpZWxkLm1fcmFuZ2UuYmVnaW4oKTsKKyAg
ICAgICAgICAgICsrY3Vyc29yOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICAvLyBSb2xsIHVwIHRoZSBuZXN0ZWQgZmllbGQgYXQgdGhlIGVuZCBvZiB0aGUg
Zm9ybWF0dGVkIHN0cmluZyBzZXF1ZW5jZS4KKyAgICAvLyBGb3IgZXhhbXBsZSwKKyAgICAvLwor
ICAgIC8vICAgICAgPC0tLS0tLS0tLS0tLUEtLS0tLS0tLS0tLS0tLT4KKyAgICAvLyAgICAgIDwt
LS0tLS0tLUItLS0tLS0tLS0tLS0+CisgICAgLy8gICAgICA8LS0tQy0tLS0+CisgICAgLy8KKyAg
ICAvLyBUaGVuLCBhZnRlciBDIGZpbmlzaGVzLCB3ZSBzaG91bGQgaW5zZXJ0IHJlbWFpbmluZyBC
IGFuZCBBLgorICAgIHdoaWxlICghc3RhY2suaXNFbXB0eSgpKSB7CisgICAgICAgIGlmIChiZWdp
biA8IHN0YWNrLmxhc3QoKS5tX3JhbmdlLmVuZCgpKSB7CisgICAgICAgICAgICBJbnRsTnVtYmVy
Rm9ybWF0RmllbGQgZmxhdHRlbkZpZWxkIHsgc3RhY2subGFzdCgpLm1fZmllbGQsIHsgYmVnaW4s
IHN0YWNrLmxhc3QoKS5tX3JhbmdlLmVuZCgpIH0gfTsKKyAgICAgICAgICAgIGZsYXR0ZW4uYXBw
ZW5kKGZsYXR0ZW5GaWVsZCk7CisgICAgICAgICAgICBiZWdpbiA9IGZsYXR0ZW5GaWVsZC5tX3Jh
bmdlLmVuZCgpOworICAgICAgICB9CisgICAgICAgIHN0YWNrLnJlbW92ZUxhc3QoKTsKKyAgICB9
CisKKyAgICByZXR1cm4gZmxhdHRlbjsKK30KKworI2lmIEhBVkUoSUNVX1VfTlVNQkVSX1JBTkdF
X0ZPUk1BVFRFUl9GT1JNQVRfUkFOR0VfVE9fUEFSVFMpCitzdGF0aWMgYm9vbCBudW1iZXJGaWVs
ZHNQcmFjdGljYWxseUVxdWFsKGNvbnN0IFVGb3JtYXR0ZWRWYWx1ZSogZm9ybWF0dGVkVmFsdWUs
IFVFcnJvckNvZGUmIHN0YXR1cykKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gc3RkOjp1bmlxdWVf
cHRyPFVDb25zdHJhaW5lZEZpZWxkUG9zaXRpb24sIElDVURlbGV0ZXI8dWNmcG9zX2Nsb3NlPj4o
dWNmcG9zX29wZW4oJnN0YXR1cykpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gV2Ugb25seSBjYXJlIGFib3V0IFVGSUVMRF9DQVRF
R09SWV9OVU1CRVJfUkFOR0VfU1BBTiBjYXRlZ29yeS4KKyAgICB1Y2Zwb3NfY29uc3RyYWluQ2F0
ZWdvcnkoaXRlcmF0b3IuZ2V0KCksIFVGSUVMRF9DQVRFR09SWV9OVU1CRVJfUkFOR0VfU1BBTiwg
JnN0YXR1cyk7CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBib29sIGhhc1NwYW4gPSB1Zm10dmFsX25leHRQb3NpdGlvbihmb3JtYXR0ZWRW
YWx1ZSwgaXRlcmF0b3IuZ2V0KCksICZzdGF0dXMpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVz
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuICFoYXNTcGFuOworfQorCit2
b2lkIEludGxOdW1iZXJGb3JtYXQ6OmZvcm1hdFJhbmdlVG9QYXJ0c0ludGVybmFsKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0eWxlIHN0eWxlLCBJbnRsTWF0aGVtYXRpY2FsVmFsdWUm
JiBzdGFydCwgSW50bE1hdGhlbWF0aWNhbFZhbHVlJiYgZW5kLCBjb25zdCBVRm9ybWF0dGVkVmFs
dWUqIGZvcm1hdHRlZFZhbHVlLCBKU0FycmF5KiBwYXJ0cykKK3sKKyAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OworCisgICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisKKyAgICBpbnQzMl90
IGZvcm1hdHRlZFN0cmluZ0xlbmd0aCA9IDA7CisgICAgY29uc3QgVUNoYXIqIGZvcm1hdHRlZFN0
cmluZ1BvaW50ZXIgPSB1Zm10dmFsX2dldFN0cmluZyhmb3JtYXR0ZWRWYWx1ZSwgJmZvcm1hdHRl
ZFN0cmluZ0xlbmd0aCwgJnN0YXR1cyk7CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7Cisg
ICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJGYWlsZWQgdG8gZm9y
bWF0IG51bWJlciByYW5nZSJfcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgU3RyaW5n
IHJlc3VsdFN0cmluZyhmb3JtYXR0ZWRTdHJpbmdQb2ludGVyLCBmb3JtYXR0ZWRTdHJpbmdMZW5n
dGgpOworCisgICAgLy8gV2UgY2FyZSBtdWx0aXBsZSBjYXRlZ29yaWVzIChVRklFTERfQ0FURUdP
UllfREFURSBhbmQgVUZJRUxEX0NBVEVHT1JZX0RBVEVfSU5URVJWQUxfU1BBTikuCisgICAgLy8g
U28gd2UgZG8gbm90IGNvbnN0cmFpbnQgaXRlcmF0b3IuCisgICAgYXV0byBpdGVyYXRvciA9IHN0
ZDo6dW5pcXVlX3B0cjxVQ29uc3RyYWluZWRGaWVsZFBvc2l0aW9uLCBJQ1VEZWxldGVyPHVjZnBv
c19jbG9zZT4+KHVjZnBvc19vcGVuKCZzdGF0dXMpKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1
cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIkZhaWxl
ZCB0byBmb3JtYXQgbnVtYmVyIHJhbmdlIl9zKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGF1dG8gc2hhcmVkU3RyaW5nID0ganNOb250cml2aWFsU3RyaW5nKHZtLCAic2hhcmVkIl9z
KTsKKyAgICBhdXRvIHN0YXJ0UmFuZ2VTdHJpbmcgPSBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJz
dGFydFJhbmdlIl9zKTsKKyAgICBhdXRvIGVuZFJhbmdlU3RyaW5nID0ganNOb250cml2aWFsU3Ry
aW5nKHZtLCAiZW5kUmFuZ2UiX3MpOworICAgIGF1dG8gbGl0ZXJhbFN0cmluZyA9IGpzTm9udHJp
dmlhbFN0cmluZyh2bSwgImxpdGVyYWwiX3MpOworCisgICAgV1RGOjpSYW5nZTxpbnQzMl90PiBz
dGFydFJhbmdlIHsgLTEsIC0xIH07CisgICAgV1RGOjpSYW5nZTxpbnQzMl90PiBlbmRSYW5nZSB7
IC0xLCAtMSB9OworICAgIFZlY3RvcjxJbnRsTnVtYmVyRm9ybWF0RmllbGQ+IGZpZWxkczsKKwor
ICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgIGJvb2wgbmV4dCA9IHVmbXR2YWxfbmV4dFBvc2l0
aW9uKGZvcm1hdHRlZFZhbHVlLCBpdGVyYXRvci5nZXQoKSwgJnN0YXR1cyk7CisgICAgICAgIGlm
IChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSwgIkZhaWxlZCB0byBmb3JtYXQgbnVtYmVyIHJhbmdlIl9zKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAoIW5leHQpCisgICAgICAgICAg
ICBicmVhazsKKworICAgICAgICBpbnQzMl90IGNhdGVnb3J5ID0gdWNmcG9zX2dldENhdGVnb3J5
KGl0ZXJhdG9yLmdldCgpLCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMp
KSB7CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiRmFp
bGVkIHRvIGZvcm1hdCBudW1iZXIgcmFuZ2UiX3MpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisKKyAgICAgICAgaW50MzJfdCBmaWVsZFR5cGUgPSB1Y2Zwb3NfZ2V0RmllbGQoaXRl
cmF0b3IuZ2V0KCksICZzdGF0dXMpOworICAgICAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsK
KyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJGYWlsZWQg
dG8gZm9ybWF0IG51bWJlciByYW5nZSJfcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICBpbnQzMl90IGJlZ2luSW5kZXggPSAwOworICAgICAgICBpbnQzMl90IGVu
ZEluZGV4ID0gMDsKKyAgICAgICAgdWNmcG9zX2dldEluZGV4ZXMoaXRlcmF0b3IuZ2V0KCksICZi
ZWdpbkluZGV4LCAmZW5kSW5kZXgsICZzdGF0dXMpOworICAgICAgICBpZiAoVV9GQUlMVVJFKHN0
YXR1cykpIHsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUs
ICJGYWlsZWQgdG8gZm9ybWF0IG51bWJlciBpbnRlcnZhbCJfcyk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKworICAgICAgICBkYXRhTG9nTG5JZihJbnRsTnVtYmVyRm9ybWF0SW50
ZXJuYWw6OnZlcmJvc2UsIGNhdGVnb3J5LCAiICIsIGZpZWxkVHlwZSwgIiAoIiwgYmVnaW5JbmRl
eCwgIiwgIiwgZW5kSW5kZXgsICIpIik7CisKKyAgICAgICAgaWYgKGNhdGVnb3J5ICE9IFVGSUVM
RF9DQVRFR09SWV9OVU1CRVIgJiYgY2F0ZWdvcnkgIT0gVUZJRUxEX0NBVEVHT1JZX05VTUJFUl9S
QU5HRV9TUEFOKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmIChjYXRlZ29yeSA9
PSBVRklFTERfQ0FURUdPUllfTlVNQkVSICYmIGZpZWxkVHlwZSA8IDApCisgICAgICAgICAgICBj
b250aW51ZTsKKworICAgICAgICBpZiAoY2F0ZWdvcnkgPT0gVUZJRUxEX0NBVEVHT1JZX05VTUJF
Ul9SQU5HRV9TUEFOKSB7CisgICAgICAgICAgICAvLyA+IFRoZSBzcGVjaWFsIGZpZWxkIGNhdGVn
b3J5IFVGSUVMRF9DQVRFR09SWV9OVU1CRVJfUkFOR0VfU1BBTiBpcyB1c2VkIHRvIGluZGljYXRl
IHdoaWNoIG51bWJlcgorICAgICAgICAgICAgLy8gPiBwcmltaXRpdmVzIGNhbWUgZnJvbSB3aGlj
aCBhcmd1bWVudHM6IDAgbWVhbnMgc3RhcnQsIGFuZCAxIG1lYW5zIGVuZC4gVGhlIHNwYW4gY2F0
ZWdvcnkKKyAgICAgICAgICAgIC8vID4gd2lsbCBhbHdheXMgb2NjdXIgYmVmb3JlIHRoZSBjb3Jy
ZXNwb25kaW5nIGZpZWxkcyBpbiBVRklFTERfQ0FURUdPUllfTlVNQkVSIGluIHRoZSBuZXh0UG9z
aXRpb24oKSBpdGVyYXRvci4KKyAgICAgICAgICAgIC8vIGZyb20gSUNVIGNvbW1lbnQuIFNvLCBm
aWVsZCAwIGlzIHN0YXJ0UmFuZ2UsIGZpZWxkIDEgaXMgZW5kUmFuZ2UuCisgICAgICAgICAgICBp
ZiAoIWZpZWxkVHlwZSkKKyAgICAgICAgICAgICAgICBzdGFydFJhbmdlID0gV1RGOjpSYW5nZTxp
bnQzMl90PihiZWdpbkluZGV4LCBlbmRJbmRleCk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAg
ICAgICAgICAgICBBU1NFUlQoZmllbGRUeXBlID09IDEpOworICAgICAgICAgICAgICAgIGVuZFJh
bmdlID0gV1RGOjpSYW5nZTxpbnQzMl90PihiZWdpbkluZGV4LCBlbmRJbmRleCk7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIEFTU0VS
VChjYXRlZ29yeSA9PSBVRklFTERfQ0FURUdPUllfTlVNQkVSKTsKKworICAgICAgICBmaWVsZHMu
YXBwZW5kKEludGxOdW1iZXJGb3JtYXRGaWVsZCB7IGZpZWxkVHlwZSwgeyBiZWdpbkluZGV4LCBl
bmRJbmRleCB9IH0pOworICAgIH0KKworICAgIGF1dG8gZmxhdHRlbiA9IGZsYXR0ZW5GaWVsZHMo
V1RGTW92ZShmaWVsZHMpLCBmb3JtYXR0ZWRTdHJpbmdMZW5ndGgpOworCisgICAgYXV0byBjcmVh
dGVQYXJ0ID0gWyZdIChKU1N0cmluZyogdHlwZSwgaW50MzJfdCBiZWdpbkluZGV4LCBpbnQzMl90
IGxlbmd0aCkgeworICAgICAgICBhdXRvIHNvdXJjZVR5cGUgPSBbJl0oaW50MzJfdCBpbmRleCkg
LT4gSlNTdHJpbmcqIHsKKyAgICAgICAgICAgIGlmIChzdGFydFJhbmdlLmNvbnRhaW5zKGluZGV4
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhcnRSYW5nZVN0cmluZzsKKyAgICAgICAgICAg
IGlmIChlbmRSYW5nZS5jb250YWlucyhpbmRleCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGVu
ZFJhbmdlU3RyaW5nOworICAgICAgICAgICAgcmV0dXJuIHNoYXJlZFN0cmluZzsKKyAgICAgICAg
fTsKKworICAgICAgICBhdXRvIHZhbHVlID0ganNTdHJpbmcodm0sIHJlc3VsdFN0cmluZy5zdWJz
dHJpbmcoYmVnaW5JbmRleCwgbGVuZ3RoKSk7CisgICAgICAgIEpTT2JqZWN0KiBwYXJ0ID0gY29u
c3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcGFydC0+cHV0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50eXBlLCB0eXBlKTsKKyAgICAgICAgcGFydC0+cHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT52YWx1ZSwgdmFsdWUpOworICAgICAgICBwYXJ0LT5w
dXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnNvdXJjZSwgc291cmNlVHlwZShiZWdpbklu
ZGV4KSk7CisgICAgICAgIHJldHVybiBwYXJ0OworICAgIH07CisKKyAgICBmb3IgKGF1dG8mIGZp
ZWxkIDogZmxhdHRlbikgeworICAgICAgICBib29sIHNpZ24gPSBmYWxzZTsKKyAgICAgICAgSW50
bE1hdGhlbWF0aWNhbFZhbHVlOjpOdW1iZXJUeXBlIG51bWJlclR5cGUgPSBzdGFydC5udW1iZXJU
eXBlKCk7CisgICAgICAgIGlmIChzdGFydFJhbmdlLmNvbnRhaW5zKGZpZWxkLm1fcmFuZ2UuYmVn
aW4oKSkpIHsKKyAgICAgICAgICAgIG51bWJlclR5cGUgPSBzdGFydC5udW1iZXJUeXBlKCk7Cisg
ICAgICAgICAgICBzaWduID0gc3RhcnQuc2lnbigpOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgbnVtYmVyVHlwZSA9IGVuZC5udW1iZXJUeXBlKCk7CisgICAgICAgICAgICBzaWduID0g
ZW5kLnNpZ24oKTsKKyAgICAgICAgfQorICAgICAgICBhdXRvIGZpZWxkVHlwZSA9IGZpZWxkLm1f
ZmllbGQ7CisgICAgICAgIGF1dG8gcGFydFR5cGUgPSBmaWVsZFR5cGUgPT0gbGl0ZXJhbEZpZWxk
ID8gbGl0ZXJhbFN0cmluZyA6IGpzU3RyaW5nKHZtLCBwYXJ0VHlwZVN0cmluZyhVTnVtYmVyRm9y
bWF0RmllbGRzKGZpZWxkVHlwZSksIHN0eWxlLCBzaWduLCBudW1iZXJUeXBlKSk7CisgICAgICAg
IEpTT2JqZWN0KiBwYXJ0ID0gY3JlYXRlUGFydChwYXJ0VHlwZSwgZmllbGQubV9yYW5nZS5iZWdp
bigpLCBmaWVsZC5tX3JhbmdlLmVuZCgpIC0gZmllbGQubV9yYW5nZS5iZWdpbigpKTsKKyAgICAg
ICAgcGFydHMtPnB1c2goZ2xvYmFsT2JqZWN0LCBwYXJ0KTsKKyAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgdm9pZCgpKTsKKyAgICB9Cit9CisKK0pTVmFsdWUgSW50bE51bWJlckZv
cm1hdDo6Zm9ybWF0UmFuZ2VUb1BhcnRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGRv
dWJsZSBzdGFydCwgZG91YmxlIGVuZCkgY29uc3QKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisg
ICAgQVNTRVJUKG1fbnVtYmVyUmFuZ2VGb3JtYXR0ZXIpOworCisgICAgaWYgKHN0ZDo6aXNuYW4o
c3RhcnQpIHx8IHN0ZDo6aXNuYW4oZW5kKSkKKyAgICAgICAgcmV0dXJuIHRocm93UmFuZ2VFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlLCAiUGFzc2VkIG51bWJlcnMgYXJlIG91dCBvZiByYW5nZSJf
cyk7CisKKyAgICBpZiAoZW5kIDwgc3RhcnQpCisgICAgICAgIHJldHVybiB0aHJvd1JhbmdlRXJy
b3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgInN0YXJ0IGlzIGxhcmdlciB0aGFuIGVuZCJfcyk7CisK
KyAgICBpZiAoaXNOZWdhdGl2ZVplcm8oZW5kKSAmJiBzdGFydCA+PSAwKQorICAgICAgICByZXR1
cm4gdGhyb3dSYW5nZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJzdGFydCBpcyBsYXJnZXIg
dGhhbiBlbmQiX3MpOworCisgICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7Cisg
ICAgYXV0byByYW5nZSA9IHN0ZDo6dW5pcXVlX3B0cjxVRm9ybWF0dGVkTnVtYmVyUmFuZ2UsIElD
VURlbGV0ZXI8dW51bXJmX2Nsb3NlUmVzdWx0Pj4odW51bXJmX29wZW5SZXN1bHQoJnN0YXR1cykp
OworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkKKyAgICAgICAgcmV0dXJuIHRocm93VHlwZUVy
cm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJmYWlsZWQgdG8gZm9ybWF0IGEgcmFuZ2UiX3MpOwor
CisgICAgdW51bXJmX2Zvcm1hdERvdWJsZVJhbmdlKG1fbnVtYmVyUmFuZ2VGb3JtYXR0ZXIuZ2V0
KCksIHN0YXJ0LCBlbmQsIHJhbmdlLmdldCgpLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJF
KHN0YXR1cykpCisgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlLCAiZmFpbGVkIHRvIGZvcm1hdCBhIHJhbmdlIl9zKTsKKworICAgIGF1dG8qIGZvcm1hdHRl
ZFZhbHVlID0gdW51bXJmX3Jlc3VsdEFzVmFsdWUocmFuZ2UuZ2V0KCksICZzdGF0dXMpOworICAg
IGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkKKyAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGds
b2JhbE9iamVjdCwgc2NvcGUsICJmYWlsZWQgdG8gZm9ybWF0IGEgcmFuZ2UiX3MpOworCisgICAg
Ym9vbCBlcXVhbCA9IG51bWJlckZpZWxkc1ByYWN0aWNhbGx5RXF1YWwoZm9ybWF0dGVkVmFsdWUs
IHN0YXR1cyk7CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIHRocm93VHlw
ZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJGYWlsZWQgdG8gZm9ybWF0IG51bWJlciByYW5n
ZSJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgaWYgKGVxdWFsKQorICAg
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGZvcm1hdFRvUGFydHMoZ2xvYmFsT2JqZWN0
LCBzdGFydCwganNOb250cml2aWFsU3RyaW5nKHZtLCAic2hhcmVkIl9zKSkpOworCisgICAgSlNB
cnJheSogcGFydHMgPSBKU0FycmF5Ojp0cnlDcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+YXJyYXlT
dHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKEFycmF5V2l0aENvbnRpZ3Vv
dXMpLCAwKTsKKyAgICBpZiAoIXBhcnRzKSB7CisgICAgICAgIHRocm93T3V0T2ZNZW1vcnlFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAg
ICBmb3JtYXRSYW5nZVRvUGFydHNJbnRlcm5hbChnbG9iYWxPYmplY3QsIG1fc3R5bGUsIEludGxN
YXRoZW1hdGljYWxWYWx1ZShzdGFydCksIEludGxNYXRoZW1hdGljYWxWYWx1ZShlbmQpLCBmb3Jt
YXR0ZWRWYWx1ZSwgcGFydHMpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7
CisKKyAgICByZXR1cm4gcGFydHM7Cit9CisKK0pTVmFsdWUgSW50bE51bWJlckZvcm1hdDo6Zm9y
bWF0UmFuZ2VUb1BhcnRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEludGxNYXRoZW1h
dGljYWxWYWx1ZSYmIHN0YXJ0LCBJbnRsTWF0aGVtYXRpY2FsVmFsdWUmJiBlbmQpIGNvbnN0Cit7
CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIEFTU0VSVChtX251bWJlclJhbmdlRm9ybWF0dGVy
KTsKKworICAgIGlmIChzdGFydC5udW1iZXJUeXBlKCkgPT0gSW50bE1hdGhlbWF0aWNhbFZhbHVl
OjpOdW1iZXJUeXBlOjpOYU4gfHwgZW5kLm51bWJlclR5cGUoKSA9PSBJbnRsTWF0aGVtYXRpY2Fs
VmFsdWU6Ok51bWJlclR5cGU6Ok5hTikKKyAgICAgICAgcmV0dXJuIHRocm93UmFuZ2VFcnJvcihn
bG9iYWxPYmplY3QsIHNjb3BlLCAiUGFzc2VkIG51bWJlcnMgYXJlIG91dCBvZiByYW5nZSJfcyk7
CisKKyAgICBzdGFydC5lbnN1cmVOb25Eb3VibGUoKTsKKyAgICBjb25zdCBhdXRvJiBzdGFydFN0
cmluZyA9IHN0YXJ0LmdldFN0cmluZygpOworCisgICAgZW5kLmVuc3VyZU5vbkRvdWJsZSgpOwor
ICAgIGNvbnN0IGF1dG8mIGVuZFN0cmluZyA9IGVuZC5nZXRTdHJpbmcoKTsKKworICAgIFVFcnJv
ckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIGF1dG8gcmFuZ2UgPSBzdGQ6OnVuaXF1
ZV9wdHI8VUZvcm1hdHRlZE51bWJlclJhbmdlLCBJQ1VEZWxldGVyPHVudW1yZl9jbG9zZVJlc3Vs
dD4+KHVudW1yZl9vcGVuUmVzdWx0KCZzdGF0dXMpKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1
cykpCisgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAi
ZmFpbGVkIHRvIGZvcm1hdCBhIHJhbmdlIl9zKTsKKworICAgIHVudW1yZl9mb3JtYXREZWNpbWFs
UmFuZ2UobV9udW1iZXJSYW5nZUZvcm1hdHRlci5nZXQoKSwgc3RhcnRTdHJpbmcuZGF0YSgpLCBz
dGFydFN0cmluZy5sZW5ndGgoKSwgZW5kU3RyaW5nLmRhdGEoKSwgZW5kU3RyaW5nLmxlbmd0aCgp
LCByYW5nZS5nZXQoKSwgJnN0YXR1cyk7CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKQorICAg
ICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0
byBmb3JtYXQgYSByYW5nZSJfcyk7CisKKyAgICBhdXRvKiBmb3JtYXR0ZWRWYWx1ZSA9IHVudW1y
Zl9yZXN1bHRBc1ZhbHVlKHJhbmdlLmdldCgpLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJF
KHN0YXR1cykpCisgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlLCAiZmFpbGVkIHRvIGZvcm1hdCBhIHJhbmdlIl9zKTsKKworICAgIGJvb2wgZXF1YWwgPSBu
dW1iZXJGaWVsZHNQcmFjdGljYWxseUVxdWFsKGZvcm1hdHRlZFZhbHVlLCBzdGF0dXMpOworICAg
IGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlLCAiRmFpbGVkIHRvIGZvcm1hdCBudW1iZXIgcmFuZ2UiX3MpOworICAgICAg
ICByZXR1cm4geyB9OworICAgIH0KKworICAgIGlmIChlcXVhbCkKKyAgICAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHNjb3BlLCBmb3JtYXRUb1BhcnRzKGdsb2JhbE9iamVjdCwgV1RGTW92ZShzdGFy
dCksIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgInNoYXJlZCJfcykpKTsKKworICAgIEpTQXJyYXkq
IHBhcnRzID0gSlNBcnJheTo6dHJ5Q3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmFycmF5U3RydWN0
dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlvbihBcnJheVdpdGhDb250aWd1b3VzKSwg
MCk7CisgICAgaWYgKCFwYXJ0cykgeworICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgZm9y
bWF0UmFuZ2VUb1BhcnRzSW50ZXJuYWwoZ2xvYmFsT2JqZWN0LCBtX3N0eWxlLCBXVEZNb3ZlKHN0
YXJ0KSwgV1RGTW92ZShlbmQpLCBmb3JtYXR0ZWRWYWx1ZSwgcGFydHMpOworICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICByZXR1cm4gcGFydHM7Cit9CisjZW5kaWYK
KwogQVNDSUlMaXRlcmFsIEludGxOdW1iZXJGb3JtYXQ6OnN0eWxlU3RyaW5nKFN0eWxlIHN0eWxl
KQogewogICAgIHN3aXRjaCAoc3R5bGUpIHsKQEAgLTExMjQsNjMgKzE0NzQsNTUgQEAgdm9pZCBJ
bnRsTnVtYmVyRm9ybWF0OjpzZXRCb3VuZEZvcm1hdChWTSYgdm0sIEpTQm91bmRGdW5jdGlvbiog
Zm9ybWF0KQogICAgIG1fYm91bmRGb3JtYXQuc2V0KHZtLCB0aGlzLCBmb3JtYXQpOwogfQogCi12
b2lkIEludGxOdW1iZXJGb3JtYXQ6OmZvcm1hdFRvUGFydHNJbnRlcm5hbChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTdHlsZSBzdHlsZSwgYm9vbCBzaWduLCBJbnRsTWF0aGVtYXRpY2Fs
VmFsdWU6Ok51bWJlclR5cGUgbnVtYmVyVHlwZSwgY29uc3QgU3RyaW5nJiBmb3JtYXR0ZWQsIElu
dGxGaWVsZEl0ZXJhdG9yJiBpdGVyYXRvciwgSlNBcnJheSogcGFydHMsIEpTU3RyaW5nKiB1bml0
KQordm9pZCBJbnRsTnVtYmVyRm9ybWF0Ojpmb3JtYXRUb1BhcnRzSW50ZXJuYWwoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgU3R5bGUgc3R5bGUsIGJvb2wgc2lnbiwgSW50bE1hdGhlbWF0
aWNhbFZhbHVlOjpOdW1iZXJUeXBlIG51bWJlclR5cGUsIGNvbnN0IFN0cmluZyYgZm9ybWF0dGVk
LCBJbnRsRmllbGRJdGVyYXRvciYgaXRlcmF0b3IsIEpTQXJyYXkqIHBhcnRzLCBKU1N0cmluZyog
c291cmNlVHlwZSwgSlNTdHJpbmcqIHVuaXQpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAg
IGF1dG8gc3RyaW5nTGVuZ3RoID0gZm9ybWF0dGVkLmxlbmd0aCgpOwogCi0gICAgaW50MzJfdCBs
aXRlcmFsRmllbGRUeXBlID0gLTE7Ci0gICAgSW50bE51bWJlckZvcm1hdEZpZWxkIGxpdGVyYWxG
aWVsZCB7IGxpdGVyYWxGaWVsZFR5cGUsIHN0cmluZ0xlbmd0aCB9OwotICAgIFZlY3RvcjxJbnRs
TnVtYmVyRm9ybWF0RmllbGQsIDMyPiBmaWVsZHMoc3RyaW5nTGVuZ3RoLCBsaXRlcmFsRmllbGQp
OwotICAgIGludDMyX3QgYmVnaW5JbmRleCA9IDA7Ci0gICAgaW50MzJfdCBlbmRJbmRleCA9IDA7
Ci0gICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7Ci0gICAgYXV0byBmaWVsZFR5
cGUgPSBpdGVyYXRvci5uZXh0KGJlZ2luSW5kZXgsIGVuZEluZGV4LCBzdGF0dXMpOwotICAgIGlm
IChVX0ZBSUxVUkUoc3RhdHVzKSkgewotICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmpl
Y3QsIHNjb3BlLCAiRmFpbGVkIHRvIGl0ZXJhdGUgZmllbGQgcG9zaXRpb24gaXRlcmF0b3IiX3Mp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIHdoaWxlIChmaWVsZFR5cGUgPj0gMCkgewot
ICAgICAgICBzaXplX3Qgc2l6ZSA9IGVuZEluZGV4IC0gYmVnaW5JbmRleDsKLSAgICAgICAgZm9y
IChhdXRvIGkgPSBiZWdpbkluZGV4OyBpIDwgZW5kSW5kZXg7ICsraSkgewotICAgICAgICAgICAg
Ly8gT25seSBvdmVycmlkZSBwcmV2aW91cyB2YWx1ZSBpZiBuZXcgdmFsdWUgaXMgbW9yZSBzcGVj
aWZpYy4KLSAgICAgICAgICAgIGlmIChmaWVsZHNbaV0uc2l6ZSA+PSBzaXplKQotICAgICAgICAg
ICAgICAgIGZpZWxkc1tpXSA9IEludGxOdW1iZXJGb3JtYXRGaWVsZCB7IGZpZWxkVHlwZSwgc2l6
ZSB9OwotICAgICAgICB9Ci0gICAgICAgIGZpZWxkVHlwZSA9IGl0ZXJhdG9yLm5leHQoYmVnaW5J
bmRleCwgZW5kSW5kZXgsIHN0YXR1cyk7CisgICAgVmVjdG9yPEludGxOdW1iZXJGb3JtYXRGaWVs
ZD4gZmllbGRzOworCisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgaW50MzJfdCBiZWdpbklu
ZGV4ID0gMDsKKyAgICAgICAgaW50MzJfdCBlbmRJbmRleCA9IDA7CisgICAgICAgIFVFcnJvckNv
ZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgICAgICBpbnQzMl90IGZpZWxkVHlwZSA9IGl0
ZXJhdG9yLm5leHQoYmVnaW5JbmRleCwgZW5kSW5kZXgsIHN0YXR1cyk7CiAgICAgICAgIGlmIChV
X0ZBSUxVUkUoc3RhdHVzKSkgewogICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2Jq
ZWN0LCBzY29wZSwgIkZhaWxlZCB0byBpdGVyYXRlIGZpZWxkIHBvc2l0aW9uIGl0ZXJhdG9yIl9z
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorICAgICAgICBpZiAoZmllbGRUeXBl
IDwgMCkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGZpZWxkcy5hcHBlbmQoSW50bE51
bWJlckZvcm1hdEZpZWxkIHsgZmllbGRUeXBlLCB7IGJlZ2luSW5kZXgsIGVuZEluZGV4IH0gfSk7
CiAgICAgfQogCisgICAgYXV0byBmbGF0dGVuID0gZmxhdHRlbkZpZWxkcyhXVEZNb3ZlKGZpZWxk
cyksIHN0cmluZ0xlbmd0aCk7CisKICAgICBhdXRvIGxpdGVyYWxTdHJpbmcgPSBqc05vbnRyaXZp
YWxTdHJpbmcodm0sICJsaXRlcmFsIl9zKTsKICAgICBJZGVudGlmaWVyIHVuaXROYW1lOwogICAg
IGlmICh1bml0KQogICAgICAgICB1bml0TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
ICJ1bml0Iik7CiAKLSAgICBzaXplX3QgY3VycmVudEluZGV4ID0gMDsKLSAgICB3aGlsZSAoY3Vy
cmVudEluZGV4IDwgc3RyaW5nTGVuZ3RoKSB7Ci0gICAgICAgIGF1dG8gc3RhcnRJbmRleCA9IGN1
cnJlbnRJbmRleDsKLSAgICAgICAgYXV0byBmaWVsZFR5cGUgPSBmaWVsZHNbY3VycmVudEluZGV4
XS50eXBlOwotICAgICAgICB3aGlsZSAoY3VycmVudEluZGV4IDwgc3RyaW5nTGVuZ3RoICYmIGZp
ZWxkc1tjdXJyZW50SW5kZXhdLnR5cGUgPT0gZmllbGRUeXBlKQotICAgICAgICAgICAgKytjdXJy
ZW50SW5kZXg7Ci0gICAgICAgIGF1dG8gcGFydFR5cGUgPSBmaWVsZFR5cGUgPT0gbGl0ZXJhbEZp
ZWxkVHlwZSA/IGxpdGVyYWxTdHJpbmcgOiBqc1N0cmluZyh2bSwgcGFydFR5cGVTdHJpbmcoVU51
bWJlckZvcm1hdEZpZWxkcyhmaWVsZFR5cGUpLCBzdHlsZSwgc2lnbiwgbnVtYmVyVHlwZSkpOwot
ICAgICAgICBhdXRvIHBhcnRWYWx1ZSA9IGpzU3Vic3RyaW5nKHZtLCBmb3JtYXR0ZWQsIHN0YXJ0
SW5kZXgsIGN1cnJlbnRJbmRleCAtIHN0YXJ0SW5kZXgpOworICAgIGZvciAoYXV0byYgZmllbGQg
OiBmbGF0dGVuKSB7CisgICAgICAgIGF1dG8gZmllbGRUeXBlID0gZmllbGQubV9maWVsZDsKKyAg
ICAgICAgYXV0byBwYXJ0VHlwZSA9IGZpZWxkVHlwZSA9PSBsaXRlcmFsRmllbGQgPyBsaXRlcmFs
U3RyaW5nIDoganNTdHJpbmcodm0sIHBhcnRUeXBlU3RyaW5nKFVOdW1iZXJGb3JtYXRGaWVsZHMo
ZmllbGRUeXBlKSwgc3R5bGUsIHNpZ24sIG51bWJlclR5cGUpKTsKKyAgICAgICAgYXV0byBwYXJ0
VmFsdWUgPSBqc1N1YnN0cmluZyh2bSwgZm9ybWF0dGVkLCBmaWVsZC5tX3JhbmdlLmJlZ2luKCks
IGZpZWxkLm1fcmFuZ2UuZW5kKCkgLSBmaWVsZC5tX3JhbmdlLmJlZ2luKCkpOwogICAgICAgICBK
U09iamVjdCogcGFydCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdCk7CiAgICAg
ICAgIHBhcnQtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+dHlwZSwgcGFydFR5cGUp
OwogICAgICAgICBwYXJ0LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnZhbHVlLCBw
YXJ0VmFsdWUpOwogICAgICAgICBpZiAodW5pdCkKICAgICAgICAgICAgIHBhcnQtPnB1dERpcmVj
dCh2bSwgdW5pdE5hbWUsIHVuaXQpOworICAgICAgICBpZiAoc291cmNlVHlwZSkKKyAgICAgICAg
ICAgIHBhcnQtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+c291cmNlLCBzb3VyY2VU
eXBlKTsKICAgICAgICAgcGFydHMtPnB1c2goZ2xvYmFsT2JqZWN0LCBwYXJ0KTsKICAgICAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKICAgICB9CiB9CiAKIC8vIGh0dHBz
Oi8vdGMzOS5naXRodWIuaW8vZWNtYTQwMi8jc2VjLWZvcm1hdG51bWJlcnRvcGFydHMKLUpTVmFs
dWUgSW50bE51bWJlckZvcm1hdDo6Zm9ybWF0VG9QYXJ0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBkb3VibGUgdmFsdWUpIGNvbnN0CitKU1ZhbHVlIEludGxOdW1iZXJGb3JtYXQ6OmZv
cm1hdFRvUGFydHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgZG91YmxlIHZhbHVlLCBK
U1N0cmluZyogc291cmNlVHlwZSkgY29uc3QKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTIy
MCwxNCArMTU2MiwxNCBAQCBKU1ZhbHVlIEludGxOdW1iZXJGb3JtYXQ6OmZvcm1hdFRvUGFydHMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgZG91YmxlIHZhbAogICAgIGlmICghcGFydHMp
CiAgICAgICAgIHJldHVybiB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29w
ZSk7CiAKLSAgICBmb3JtYXRUb1BhcnRzSW50ZXJuYWwoZ2xvYmFsT2JqZWN0LCBtX3N0eWxlLCBz
dGQ6OnNpZ25iaXQodmFsdWUpLCBJbnRsTWF0aGVtYXRpY2FsVmFsdWU6Om51bWJlclR5cGVGcm9t
RG91YmxlKHZhbHVlKSwgcmVzdWx0U3RyaW5nLCBpdGVyYXRvciwgcGFydHMpOworICAgIGZvcm1h
dFRvUGFydHNJbnRlcm5hbChnbG9iYWxPYmplY3QsIG1fc3R5bGUsIHN0ZDo6c2lnbmJpdCh2YWx1
ZSksIEludGxNYXRoZW1hdGljYWxWYWx1ZTo6bnVtYmVyVHlwZUZyb21Eb3VibGUodmFsdWUpLCBy
ZXN1bHRTdHJpbmcsIGl0ZXJhdG9yLCBwYXJ0cywgc291cmNlVHlwZSwgbnVsbHB0cik7CiAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIHJldHVybiBwYXJ0czsKIH0K
IAogI2lmIEhBVkUoSUNVX1VfTlVNQkVSX0ZPUk1BVFRFUikKLUpTVmFsdWUgSW50bE51bWJlckZv
cm1hdDo6Zm9ybWF0VG9QYXJ0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBJbnRsTWF0
aGVtYXRpY2FsVmFsdWUmJiB2YWx1ZSkgY29uc3QKK0pTVmFsdWUgSW50bE51bWJlckZvcm1hdDo6
Zm9ybWF0VG9QYXJ0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBJbnRsTWF0aGVtYXRp
Y2FsVmFsdWUmJiB2YWx1ZSwgSlNTdHJpbmcqIHNvdXJjZVR5cGUpIGNvbnN0CiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTEyNjYsNyArMTYwOCw3IEBAIEpTVmFsdWUgSW50bE51bWJlckZvcm1h
dDo6Zm9ybWF0VG9QYXJ0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBJbnRsTWF0aGVt
CiAgICAgaWYgKCFwYXJ0cykKICAgICAgICAgcmV0dXJuIHRocm93T3V0T2ZNZW1vcnlFcnJvcihn
bG9iYWxPYmplY3QsIHNjb3BlKTsKIAotICAgIGZvcm1hdFRvUGFydHNJbnRlcm5hbChnbG9iYWxP
YmplY3QsIG1fc3R5bGUsIHZhbHVlLnNpZ24oKSwgdmFsdWUubnVtYmVyVHlwZSgpLCByZXN1bHRT
dHJpbmcsIGl0ZXJhdG9yLCBwYXJ0cyk7CisgICAgZm9ybWF0VG9QYXJ0c0ludGVybmFsKGdsb2Jh
bE9iamVjdCwgbV9zdHlsZSwgdmFsdWUuc2lnbigpLCB2YWx1ZS5udW1iZXJUeXBlKCksIHJlc3Vs
dFN0cmluZywgaXRlcmF0b3IsIHBhcnRzLCBzb3VyY2VUeXBlLCBudWxscHRyKTsKICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgcmV0dXJuIHBhcnRzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdC5oCmluZGV4IGNi
NjFkYWUyZmJhYzFkMTZlYzAyZDk3MTc0YTEzMjUyY2MwMzMwMjEuLjMwN2M3NWY2NWI5OTc5ZmYz
Y2Y3OGVlYTAyYzRhYzg0YjQ2NjRhYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsTnVtYmVyRm9ybWF0LmgKQEAgLTQ2LDYgKzQ2LDEzIEBACiAjZW5kaWYKICNl
bmRpZgogCisjaWYgIWRlZmluZWQoSEFWRV9JQ1VfVV9OVU1CRVJfUkFOR0VfRk9STUFUVEVSX0ZP
Uk1BVF9SQU5HRV9UT19QQVJUUykKKyNpZiBVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA+PSA2OQor
I2RlZmluZSBIQVZFX0lDVV9VX05VTUJFUl9SQU5HRV9GT1JNQVRURVJfRk9STUFUX1JBTkdFX1RP
X1BBUlRTIDEKKyNlbmRpZgorI2VuZGlmCisKK3N0cnVjdCBVRm9ybWF0dGVkVmFsdWU7CiBzdHJ1
Y3QgVU51bWJlckZvcm1hdHRlcjsKIHN0cnVjdCBVTnVtYmVyUmFuZ2VGb3JtYXR0ZXI7CiAKQEAg
LTE3MCw5ICsxNzcsOSBAQCBjbGFzcyBJbnRsTnVtYmVyRm9ybWF0IGZpbmFsIDogcHVibGljIEpT
Tm9uRmluYWxPYmplY3QgewogICAgIHZvaWQgaW5pdGlhbGl6ZU51bWJlckZvcm1hdChKU0dsb2Jh
bE9iamVjdCosIEpTVmFsdWUgbG9jYWxlcywgSlNWYWx1ZSBvcHRpb25zVmFsdWUpOwogICAgIEpT
VmFsdWUgZm9ybWF0KEpTR2xvYmFsT2JqZWN0KiwgZG91YmxlKSBjb25zdDsKICAgICBKU1ZhbHVl
IGZvcm1hdChKU0dsb2JhbE9iamVjdCosIEludGxNYXRoZW1hdGljYWxWYWx1ZSYmKSBjb25zdDsK
LSAgICBKU1ZhbHVlIGZvcm1hdFRvUGFydHMoSlNHbG9iYWxPYmplY3QqLCBkb3VibGUpIGNvbnN0
OworICAgIEpTVmFsdWUgZm9ybWF0VG9QYXJ0cyhKU0dsb2JhbE9iamVjdCosIGRvdWJsZSwgSlNT
dHJpbmcqIHNvdXJjZVR5cGUgPSBudWxscHRyKSBjb25zdDsKICNpZiBIQVZFKElDVV9VX05VTUJF
Ul9GT1JNQVRURVIpCi0gICAgSlNWYWx1ZSBmb3JtYXRUb1BhcnRzKEpTR2xvYmFsT2JqZWN0Kiwg
SW50bE1hdGhlbWF0aWNhbFZhbHVlJiYpIGNvbnN0OworICAgIEpTVmFsdWUgZm9ybWF0VG9QYXJ0
cyhKU0dsb2JhbE9iamVjdCosIEludGxNYXRoZW1hdGljYWxWYWx1ZSYmLCBKU1N0cmluZyogc291
cmNlVHlwZSA9IG51bGxwdHIpIGNvbnN0OwogI2VuZGlmCiAgICAgSlNPYmplY3QqIHJlc29sdmVk
T3B0aW9ucyhKU0dsb2JhbE9iamVjdCopIGNvbnN0OwogCkBAIC0xODEsMTIgKzE4OCwxOCBAQCBj
bGFzcyBJbnRsTnVtYmVyRm9ybWF0IGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qgewog
ICAgIEpTVmFsdWUgZm9ybWF0UmFuZ2UoSlNHbG9iYWxPYmplY3QqLCBJbnRsTWF0aGVtYXRpY2Fs
VmFsdWUmJiwgSW50bE1hdGhlbWF0aWNhbFZhbHVlJiYpIGNvbnN0OwogI2VuZGlmCiAKKyNpZiBI
QVZFKElDVV9VX05VTUJFUl9SQU5HRV9GT1JNQVRURVJfRk9STUFUX1JBTkdFX1RPX1BBUlRTKQor
ICAgIEpTVmFsdWUgZm9ybWF0UmFuZ2VUb1BhcnRzKEpTR2xvYmFsT2JqZWN0KiwgZG91YmxlLCBk
b3VibGUpIGNvbnN0OworICAgIEpTVmFsdWUgZm9ybWF0UmFuZ2VUb1BhcnRzKEpTR2xvYmFsT2Jq
ZWN0KiwgSW50bE1hdGhlbWF0aWNhbFZhbHVlJiYsIEludGxNYXRoZW1hdGljYWxWYWx1ZSYmKSBj
b25zdDsKKyNlbmRpZgorCiAgICAgSlNCb3VuZEZ1bmN0aW9uKiBib3VuZEZvcm1hdCgpIGNvbnN0
IHsgcmV0dXJuIG1fYm91bmRGb3JtYXQuZ2V0KCk7IH0KICAgICB2b2lkIHNldEJvdW5kRm9ybWF0
KFZNJiwgSlNCb3VuZEZ1bmN0aW9uKik7CiAKICAgICBlbnVtIGNsYXNzIFN0eWxlIDogdWludDhf
dCB7IERlY2ltYWwsIFBlcmNlbnQsIEN1cnJlbmN5LCBVbml0IH07CiAKLSAgICBzdGF0aWMgdm9p
ZCBmb3JtYXRUb1BhcnRzSW50ZXJuYWwoSlNHbG9iYWxPYmplY3QqLCBTdHlsZSwgYm9vbCBzaWdu
LCBJbnRsTWF0aGVtYXRpY2FsVmFsdWU6Ok51bWJlclR5cGUsIGNvbnN0IFN0cmluZyYgZm9ybWF0
dGVkLCBJbnRsRmllbGRJdGVyYXRvciYsIEpTQXJyYXkqLCBKU1N0cmluZyogdW5pdCA9IG51bGxw
dHIpOworICAgIHN0YXRpYyB2b2lkIGZvcm1hdFRvUGFydHNJbnRlcm5hbChKU0dsb2JhbE9iamVj
dCosIFN0eWxlLCBib29sIHNpZ24sIEludGxNYXRoZW1hdGljYWxWYWx1ZTo6TnVtYmVyVHlwZSwg
Y29uc3QgU3RyaW5nJiBmb3JtYXR0ZWQsIEludGxGaWVsZEl0ZXJhdG9yJiwgSlNBcnJheSosIEpT
U3RyaW5nKiBzb3VyY2VUeXBlLCBKU1N0cmluZyogdW5pdCk7CisgICAgc3RhdGljIHZvaWQgZm9y
bWF0UmFuZ2VUb1BhcnRzSW50ZXJuYWwoSlNHbG9iYWxPYmplY3QqLCBTdHlsZSwgSW50bE1hdGhl
bWF0aWNhbFZhbHVlJiYsIEludGxNYXRoZW1hdGljYWxWYWx1ZSYmLCBjb25zdCBVRm9ybWF0dGVk
VmFsdWUqLCBKU0FycmF5Kik7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBJbnRsVHlwZT4KICAg
ICBmcmllbmQgdm9pZCBzZXROdW1iZXJGb3JtYXREaWdpdE9wdGlvbnMoSlNHbG9iYWxPYmplY3Qq
LCBJbnRsVHlwZSosIEpTT2JqZWN0KiwgdW5zaWduZWQgbWluaW11bUZyYWN0aW9uRGlnaXRzRGVm
YXVsdCwgdW5zaWduZWQgbWF4aW11bUZyYWN0aW9uRGlnaXRzRGVmYXVsdCwgSW50bE5vdGF0aW9u
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJG
b3JtYXRQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51
bWJlckZvcm1hdFByb3RvdHlwZS5jcHAKaW5kZXggNGY4YzBkMjc1YTAzZDc1YjY2MmNkYzVkOTY5
MGYyNTk0MjQzMWM5OC4uOGYzYTE5NjYxMzA5N2UyN2IzNGM5ZTdmODZmMmEzMDFjMGQ5ZWM2MCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1h
dFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51
bWJlckZvcm1hdFByb3RvdHlwZS5jcHAKQEAgLTQzLDYgKzQzLDEwIEBAIHN0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGludGxOdW1iZXJGb3JtYXRGdW5jRm9ybWF0KTsKIHN0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVGdW5jRm9y
bWF0UmFuZ2UpOwogI2VuZGlmCiAKKyNpZiBIQVZFKElDVV9VX05VTUJFUl9SQU5HRV9GT1JNQVRU
RVJfRk9STUFUX1JBTkdFX1RPX1BBUlRTKQorc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oaW50bE51bWJlckZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRSYW5nZVRvUGFydHMpOworI2Vu
ZGlmCisKIH0KIAogI2luY2x1ZGUgIkludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUubHV0LmgiCkBA
IC04NSw2ICs4OSw5IEBAIHZvaWQgSW50bE51bWJlckZvcm1hdFByb3RvdHlwZTo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAjaWYgSEFWRShJQ1VfVV9O
VU1CRVJfUkFOR0VfRk9STUFUVEVSKQogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9U
UkFOU0lUSU9OKCJmb3JtYXRSYW5nZSIsIGludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVGdW5jRm9y
bWF0UmFuZ2UsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pLCAxKTsKICNlbmRpZgorI2lmIEhBVkUoSUNVX1VfTlVNQkVSX1JBTkdFX0ZPUk1BVFRFUl9G
T1JNQVRfUkFOR0VfVE9fUEFSVFMpCisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RS
QU5TSVRJT04oImZvcm1hdFJhbmdlVG9QYXJ0cyIsIGludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVG
dW5jRm9ybWF0UmFuZ2VUb1BhcnRzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKSwgMik7CisjZW5kaWYKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2Vj
bWE0MDIvI3NlYy1udW1iZXItZm9ybWF0LWZ1bmN0aW9ucwpAQCAtMTkzLDYgKzIwMCwzOCBAQCBK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oaW50bE51bWJlckZvcm1hdFByb3RvdHlwZUZ1bmNGb3Jt
YXRUb1BhcnRzLCAoSlNHbG9iYWxPYgogI2VuZGlmCiB9CiAKKyNpZiBIQVZFKElDVV9VX05VTUJF
Ul9SQU5HRV9GT1JNQVRURVJfRk9STUFUX1JBTkdFX1RPX1BBUlRTKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0UmFuZ2VUb1BhcnRz
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQor
eworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICAvLyBEbyBub3QgdXNlIHVud3JhcEZvck9sZEZ1
bmN0aW9ucy4KKyAgICBhdXRvKiBudW1iZXJGb3JtYXQgPSBqc0R5bmFtaWNDYXN0PEludGxOdW1i
ZXJGb3JtYXQqPih2bSwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CisgICAgaWYgKFVOTElLRUxZ
KCFudW1iZXJGb3JtYXQpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93VHlw
ZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUu
Zm9ybWF0UmFuZ2VUb1BhcnRzIGNhbGxlZCBvbiB2YWx1ZSB0aGF0J3Mgbm90IGEgTnVtYmVyRm9y
bWF0Il9zKSk7CisKKyAgICBKU1ZhbHVlIHN0YXJ0VmFsdWUgPSBjYWxsRnJhbWUtPmFyZ3VtZW50
KDApOworICAgIEpTVmFsdWUgZW5kVmFsdWUgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpOworCisg
ICAgaWYgKHN0YXJ0VmFsdWUuaXNVbmRlZmluZWQoKSB8fCBlbmRWYWx1ZS5pc1VuZGVmaW5lZCgp
KQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAi
c3RhcnQgb3IgZW5kIGlzIHVuZGVmaW5lZCJfcyk7CisKKyAgICBhdXRvIHN0YXJ0ID0gdG9JbnRs
TWF0aGVtYXRpY2FsVmFsdWUoZ2xvYmFsT2JqZWN0LCBzdGFydFZhbHVlKTsKKyAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworCisgICAgYXV0byBlbmQgPSB0b0ludGxNYXRoZW1h
dGljYWxWYWx1ZShnbG9iYWxPYmplY3QsIGVuZFZhbHVlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCB7IH0pOworCisgICAgaWYgKGF1dG8gc3RhcnROdW1iZXIgPSBzdGFydC50cnlH
ZXREb3VibGUoKSkgeworICAgICAgICBpZiAoYXV0byBlbmROdW1iZXIgPSBlbmQudHJ5R2V0RG91
YmxlKCkpCisgICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVu
Y29kZShudW1iZXJGb3JtYXQtPmZvcm1hdFJhbmdlVG9QYXJ0cyhnbG9iYWxPYmplY3QsIHN0YXJ0
TnVtYmVyLnZhbHVlKCksIGVuZE51bWJlci52YWx1ZSgpKSkpOworICAgIH0KKworICAgIFJFTEVB
U0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKG51bWJlckZvcm1hdC0+Zm9ybWF0
UmFuZ2VUb1BhcnRzKGdsb2JhbE9iamVjdCwgV1RGTW92ZShzdGFydCksIFdURk1vdmUoZW5kKSkp
KTsKK30KKyNlbmRpZgorCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oaW50bE51bWJlckZvcm1h
dFByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFJl
bGF0aXZlVGltZUZvcm1hdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
UmVsYXRpdmVUaW1lRm9ybWF0LmNwcAppbmRleCA3YWEzZTMzMjZjZTUyOTgxOTExZTQwYTUxMGM3
ZTkxYjZhMGVkMTZiLi5lMzI4YTFjMWY0MGM0OWU2OTU0NTFhNTNkMjk5ZTUyMzE3YjlkNzU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUmVsYXRpdmVUaW1l
Rm9ybWF0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUmVsYXRp
dmVUaW1lRm9ybWF0LmNwcApAQCAtMzE4LDcgKzMxOCw3IEBAIEpTVmFsdWUgSW50bFJlbGF0aXZl
VGltZUZvcm1hdDo6Zm9ybWF0VG9QYXJ0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBk
b3ViCiAgICAgICAgIH0KIAogICAgICAgICBJbnRsRmllbGRJdGVyYXRvciBmaWVsZEl0ZXJhdG9y
KCppdGVyYXRvci5nZXQoKSk7Ci0gICAgICAgIEludGxOdW1iZXJGb3JtYXQ6OmZvcm1hdFRvUGFy
dHNJbnRlcm5hbChnbG9iYWxPYmplY3QsIEludGxOdW1iZXJGb3JtYXQ6OlN0eWxlOjpEZWNpbWFs
LCBzdGQ6OnNpZ25iaXQoYWJzVmFsdWUpLCBJbnRsTWF0aGVtYXRpY2FsVmFsdWU6Om51bWJlclR5
cGVGcm9tRG91YmxlKGFic1ZhbHVlKSwgZm9ybWF0dGVkTnVtYmVyLCBmaWVsZEl0ZXJhdG9yLCBw
YXJ0cywganNTdHJpbmcodm0sIHNpbmd1bGFyVW5pdCh1bml0KS50b1N0cmluZygpKSk7CisgICAg
ICAgIEludGxOdW1iZXJGb3JtYXQ6OmZvcm1hdFRvUGFydHNJbnRlcm5hbChnbG9iYWxPYmplY3Qs
IEludGxOdW1iZXJGb3JtYXQ6OlN0eWxlOjpEZWNpbWFsLCBzdGQ6OnNpZ25iaXQoYWJzVmFsdWUp
LCBJbnRsTWF0aGVtYXRpY2FsVmFsdWU6Om51bWJlclR5cGVGcm9tRG91YmxlKGFic1ZhbHVlKSwg
Zm9ybWF0dGVkTnVtYmVyLCBmaWVsZEl0ZXJhdG9yLCBwYXJ0cywgbnVsbHB0ciwganNTdHJpbmco
dm0sIHNpbmd1bGFyVW5pdCh1bml0KS50b1N0cmluZygpKSk7CiAgICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5n
ZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDk3YzU0MzA1Y2Y3YmY0YjAxNDlkMmUzM2Nm
YjU0ZWRmOGQwOWUxZGUuLmQxNmNmNTMzYTIzN2NhOWU0MDk2OTRlMTlhNTU0ODIzNzYzZDA4OGIg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMjEtMTEtMjggIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBBZGQgSW50bC5OdW1iZXJGb3JtYXQuZm9ybWF0UmFuZ2VU
b1BhcnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzM1MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHN0cmVzcy9pbnRsLW51bWJlcmZvcm1hdC1mb3JtYXQtbGFyZ2UuanM6CisgICAgICAgIChuZi5m
b3JtYXRSYW5nZVRvUGFydHMuc2hvdWxkQmUuSlNPTi5zdHJpbmdpZnkubmYuZm9ybWF0UmFuZ2VU
b1BhcnRzKToKKyAgICAgICAgKG5mLmZvcm1hdFJhbmdlVG9QYXJ0cy5zaG91bGRCZS5KU09OLnN0
cmluZ2lmeS5uZjIuZm9ybWF0UmFuZ2VUb1BhcnRzKToKKyAgICAgICAgKiBzdHJlc3MvaW50bC1u
dW1iZXJmb3JtYXQtZm9ybWF0LXJhbmdlLXYzLmpzOgorICAgICAgICAobmYuZm9ybWF0UmFuZ2Uu
bmYuZm9ybWF0UmFuZ2VUb1BhcnRzLm1ldGhvZHMuZm9yRWFjaCk6CisgICAgICAgIChuZi5mb3Jt
YXRSYW5nZS5zdHJpbmdfYXBwZWFyZWRfaGVyZS5mb3JFYWNoKTogRGVsZXRlZC4KKyAgICAgICAg
KiBzdHJlc3MvaW50bC1udW1iZXJmb3JtYXQtZm9ybWF0LXN0cmluZy12My5qczoKKyAgICAgICAg
KG5mLmZvcm1hdFJhbmdlVG9QYXJ0cy5zaG91bGRCZS5KU09OLnN0cmluZ2lmeS5uZi5mb3JtYXRS
YW5nZVRvUGFydHMpOgorICAgICAgICAobmYuZm9ybWF0UmFuZ2VUb1BhcnRzLnNob3VsZEJlLkpT
T04uc3RyaW5naWZ5Lm5mMi5mb3JtYXRSYW5nZVRvUGFydHMpOgorICAgICAgICAqIHN0cmVzcy9p
bnRsLW51bWJlcmZvcm1hdC1mb3JtYXQtc3RyaW5nLmpzOgorICAgICAgICAobmYuZm9ybWF0UmFu
Z2VUb1BhcnRzLnNob3VsZEJlLkpTT04uc3RyaW5naWZ5Lm5mLmZvcm1hdFJhbmdlVG9QYXJ0cyk6
CisgICAgICAgIChuZi5mb3JtYXRSYW5nZVRvUGFydHMuc2hvdWxkQmUuSlNPTi5zdHJpbmdpZnku
bmYyLmZvcm1hdFJhbmdlVG9QYXJ0cyk6CisKIDIwMjEtMTEtMjQgIE1pY2hhZWwgQ2F0YW56YXJv
ICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CiAKICAgICAgICAgU2tpcCBuZXcgc3RyZXNzIHRlc3Qg
Z2V0LWFycmF5LWxlbmd0aC1yZXVzZS5qcyBpZiBtZW1vcnktbGltaXRlZApkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9zdHJlc3MvaW50bC1udW1iZXJmb3JtYXQtZm9ybWF0LWxhcmdlLmpzIGIvSlNUZXN0
cy9zdHJlc3MvaW50bC1udW1iZXJmb3JtYXQtZm9ybWF0LWxhcmdlLmpzCmluZGV4IDE3OTRmNTc5
ZDY5YjAwMzQxYzM5ZWZmYWZkZTU5ZmU0YTQ5ZmM2NDQuLjljNzlmZDNmMWQxNjIzOWE4ZjNlMWQ3
YTdlYTE0YWQ0MGJhZDcyZmMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2ludGwtbnVtYmVy
Zm9ybWF0LWZvcm1hdC1sYXJnZS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLW51bWJlcmZv
cm1hdC1mb3JtYXQtbGFyZ2UuanMKQEAgLTEzLDMgKzEzLDggQEAgZnVuY3Rpb24gc2hvdWxkQmUo
YWN0dWFsLCBleHBlY3RlZCkgewogICAgIHNob3VsZEJlKG5mLmZvcm1hdFJhbmdlKHN0YXJ0LCBl
bmQpLCBgOTg3LDY1NCwzMjEsOTg3LDY1NCwzMjHigJM5ODcsNjU0LDMyMSw5ODcsNjU0LDMyMmAp
OwogICAgIHNob3VsZEJlKG5mMi5mb3JtYXRSYW5nZShzdGFydCwgZW5kKSwgYDk4Nyw2NTQsMzIx
LDk4Nyw2NTQsMzIx772eOTg3LDY1NCwzMjEsOTg3LDY1NCwzMjJgKTsKIH0KK2lmIChuZi5mb3Jt
YXRSYW5nZVRvUGFydHMpIHsKKyAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShuZi5mb3JtYXRS
YW5nZVRvUGFydHMoMCwgMzAwMDApKSwgYFt7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiIwIiwi
c291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlwZSI6ImxpdGVyYWwiLCJ2YWx1ZSI6IuKAkyIsInNv
dXJjZSI6InNoYXJlZCJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjMwIiwic291cmNlIjoi
ZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdl
In0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5kUmFuZ2UifV1g
KTsKKyAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShuZi5mb3JtYXRSYW5nZVRvUGFydHMoc3Rh
cnQsIGVuZCkpLCBgW3sidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6Ijk4NyIsInNvdXJjZSI6InN0
YXJ0UmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6InN0YXJ0UmFu
Z2UifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiI2NTQiLCJzb3VyY2UiOiJzdGFydFJhbmdl
In0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJzdGFydFJhbmdlIn0seyJ0
eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMzIxIiwic291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlw
ZSI6Imdyb3VwIiwidmFsdWUiOiIsIiwic291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlwZSI6Imlu
dGVnZXIiLCJ2YWx1ZSI6Ijk4NyIsInNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJncm91
cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJpbnRlZ2VyIiwi
dmFsdWUiOiI2NTQiLCJzb3VyY2UiOiJzdGFydFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1
ZSI6IiwiLCJzb3VyY2UiOiJzdGFydFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoi
MzIxIiwic291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlwZSI6ImxpdGVyYWwiLCJ2YWx1ZSI6IuKA
kyIsInNvdXJjZSI6InNoYXJlZCJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6Ijk4NyIsInNv
dXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJl
bmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjY1NCIsInNvdXJjZSI6ImVuZFJh
bmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsi
dHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjMyMSIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBl
IjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVn
ZXIiLCJ2YWx1ZSI6Ijk4NyIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2
YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6
IjY1NCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJz
b3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjMyMiIsInNvdXJj
ZSI6ImVuZFJhbmdlIn1dYCk7CisgICAgc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkobmYyLmZvcm1h
dFJhbmdlVG9QYXJ0cyhzdGFydCwgZW5kKSksIGBbeyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoi
OTg3Iiwic291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlwZSI6Imdyb3VwIiwidmFsdWUiOiIsIiwi
c291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjY1NCIsInNv
dXJjZSI6InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6
InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiIzMjEiLCJzb3VyY2UiOiJz
dGFydFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJzdGFydFJh
bmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiOTg3Iiwic291cmNlIjoic3RhcnRSYW5n
ZSJ9LHsidHlwZSI6Imdyb3VwIiwidmFsdWUiOiIsIiwic291cmNlIjoic3RhcnRSYW5nZSJ9LHsi
dHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjY1NCIsInNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7InR5
cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJp
bnRlZ2VyIiwidmFsdWUiOiIzMjEiLCJzb3VyY2UiOiJzdGFydFJhbmdlIn0seyJ0eXBlIjoibGl0
ZXJhbCIsInZhbHVlIjoi772eIiwic291cmNlIjoic2hhcmVkIn0seyJ0eXBlIjoiaW50ZWdlciIs
InZhbHVlIjoiOTg3Iiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVl
IjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiNjU0
Iiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJj
ZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMzIxIiwic291cmNlIjoi
ZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdl
In0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiOTg3Iiwic291cmNlIjoiZW5kUmFuZ2UifSx7
InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoi
aW50ZWdlciIsInZhbHVlIjoiNjU0Iiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91
cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZh
bHVlIjoiMzIyIiwic291cmNlIjoiZW5kUmFuZ2UifV1gKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL2ludGwtbnVtYmVyZm9ybWF0LWZvcm1hdC1yYW5nZS12My5qcyBiL0pTVGVzdHMv
c3RyZXNzL2ludGwtbnVtYmVyZm9ybWF0LWZvcm1hdC1yYW5nZS12My5qcwppbmRleCAyMjIzN2Mx
NzBmMTZjYTE2Y2IyMjg5MWVlZDVhYTc1ZTYyMzgyYzQyLi42ODIyOTI1MzEyNzQ5ZTBiNzJiZTJj
ODk5M2UwZjRlZDYwNGQ3N2E0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLW51bWJl
cmZvcm1hdC1mb3JtYXQtcmFuZ2UtdjMuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1udW1i
ZXJmb3JtYXQtZm9ybWF0LXJhbmdlLXYzLmpzCkBAIC01MCw4ICs1MCwxMyBAQCBmdW5jdGlvbiBz
aG91bGROb3RUaHJvdyhmdW5jKSB7CiBjb25zdCB2YWxpZFJhbmdlcyA9IFtbLTEyMzQ1LCAtNTY3
OF0sIFstMTIzNDUsIDU2Nzg5XSwgWzEyMzQ1LCA1Njc4OV1dOwogCiBjb25zdCBuZiA9IG5ldyBJ
bnRsLk51bWJlckZvcm1hdCgiZW4iLCB7c2lnbkRpc3BsYXk6ICJleGNlcHRaZXJvIn0pOwotaWYg
KG5mLmZvcm1hdFJhbmdlKSB7Ci0gICAgWydmb3JtYXRSYW5nZSddLmZvckVhY2goZnVuY3Rpb24o
bWV0aG9kKSB7CitpZiAobmYuZm9ybWF0UmFuZ2UgfHwgbmYuZm9ybWF0UmFuZ2VUb1BhcnRzKSB7
CisgICAgbGV0IG1ldGhvZHMgPSBbXTsKKyAgICBpZiAobmYuZm9ybWF0UmFuZ2UpCisgICAgICAg
IG1ldGhvZHMucHVzaCgiZm9ybWF0UmFuZ2UiKTsKKyAgICBpZiAobmYuZm9ybWF0UmFuZ2VUb1Bh
cnRzKQorICAgICAgICBtZXRob2RzLnB1c2goImZvcm1hdFJhbmdlVG9QYXJ0cyIpOworICAgIG1l
dGhvZHMuZm9yRWFjaChmdW5jdGlvbihtZXRob2QpIHsKICAgICAgICAgc2hvdWxkQmUoImZ1bmN0
aW9uIiwgdHlwZW9mIG5mW21ldGhvZF0pOwogCiAgICAgICAgIC8vIDIuIFBlcmZvcm0gPyBSZXF1
aXJlSW50ZXJuYWxTbG90KG5mLCBbW0luaXRpYWxpemVkTnVtYmVyRm9ybWF0XV0pLgpAQCAtMTI3
LDEwICsxMzIsOSBAQCBmdW5jdGlvbiBzaG91bGROb3RUaHJvdyhmdW5jKSB7CiAgICAgICAgICAg
ICAgICAgY29uc3QgZm9ybWF0dGVkX1hfeSA9IG5mW21ldGhvZF0oWCwgeSk7CiAgICAgICAgICAg
ICAgICAgY29uc3QgZm9ybWF0dGVkX3hfWSA9IG5mW21ldGhvZF0oeCwgWSk7CiAgICAgICAgICAg
ICAgICAgY29uc3QgZm9ybWF0dGVkX1hfWSA9IG5mW21ldGhvZF0oWCwgWSk7Ci0gICAgICAgICAg
ICAgICAgc2hvdWxkQmUoZm9ybWF0dGVkX3hfeSwgZm9ybWF0dGVkX1hfeSk7Ci0gICAgICAgICAg
ICAgICAgc2hvdWxkQmUoZm9ybWF0dGVkX3hfeSwgZm9ybWF0dGVkX3hfWSk7Ci0gICAgICAgICAg
ICAgICAgc2hvdWxkQmUoZm9ybWF0dGVkX3hfeSwgZm9ybWF0dGVkX1hfWSk7Ci0KKyAgICAgICAg
ICAgICAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShmb3JtYXR0ZWRfeF95KSwgSlNPTi5zdHJp
bmdpZnkoZm9ybWF0dGVkX1hfeSkpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKEpTT04uc3Ry
aW5naWZ5KGZvcm1hdHRlZF94X3kpLCBKU09OLnN0cmluZ2lmeShmb3JtYXR0ZWRfeF9ZKSk7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkoZm9ybWF0dGVkX3hfeSksIEpT
T04uc3RyaW5naWZ5KGZvcm1hdHRlZF9YX1kpKTsKICAgICAgICAgICAgIH0pOwogICAgIH0pOwog
fQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvaW50bC1udW1iZXJmb3JtYXQtZm9ybWF0LXN0
cmluZy12My5qcyBiL0pTVGVzdHMvc3RyZXNzL2ludGwtbnVtYmVyZm9ybWF0LWZvcm1hdC1zdHJp
bmctdjMuanMKaW5kZXggOTVkNWJmMDFhMTFmYmM3NzZjYzk4ZmI0Nzk0MmNkODdlNmYyZjZlMS4u
ZjEzNDMzNjRmNzdlY2M4YzQwODI0ODhjNGMyMmY4NjAzNzNlMThmNiAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy9zdHJlc3MvaW50bC1udW1iZXJmb3JtYXQtZm9ybWF0LXN0cmluZy12My5qcworKysgYi9K
U1Rlc3RzL3N0cmVzcy9pbnRsLW51bWJlcmZvcm1hdC1mb3JtYXQtc3RyaW5nLXYzLmpzCkBAIC00
MSwzICs0MSw3IEBAIGZ1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKICAgICBz
aG91bGRCZShuZi5mb3JtYXRSYW5nZShzdHJpbmcsIHN0cmluZzIpLCBgOTg3LDY1NCwzMjEsOTg3
LDY1NCwzMjHigJM5ODcsNjU0LDMyMSw5ODcsNjU0LDMyMmApOwogICAgIHNob3VsZEJlKG5mMi5m
b3JtYXRSYW5nZShzdHJpbmcsIHN0cmluZzIpLCBgOTg3LDY1NCwzMjEsOTg3LDY1NCwzMjHvvZ45
ODcsNjU0LDMyMSw5ODcsNjU0LDMyMmApOwogfQoraWYgKG5mLmZvcm1hdFJhbmdlVG9QYXJ0cykg
eworICAgIHNob3VsZEJlKEpTT04uc3RyaW5naWZ5KG5mLmZvcm1hdFJhbmdlVG9QYXJ0cyhzdHJp
bmcsIHN0cmluZzIpKSwgYFt7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiI5ODciLCJzb3VyY2Ui
OiJzdGFydFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJzdGFy
dFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiNjU0Iiwic291cmNlIjoic3RhcnRS
YW5nZSJ9LHsidHlwZSI6Imdyb3VwIiwidmFsdWUiOiIsIiwic291cmNlIjoic3RhcnRSYW5nZSJ9
LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjMyMSIsInNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7
InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7InR5cGUi
OiJpbnRlZ2VyIiwidmFsdWUiOiI5ODciLCJzb3VyY2UiOiJzdGFydFJhbmdlIn0seyJ0eXBlIjoi
Z3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJzdGFydFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdl
ciIsInZhbHVlIjoiNjU0Iiwic291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlwZSI6Imdyb3VwIiwi
dmFsdWUiOiIsIiwic291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1
ZSI6IjMyMSIsInNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJsaXRlcmFsIiwidmFsdWUi
OiLigJMiLCJzb3VyY2UiOiJzaGFyZWQifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiI5ODci
LCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6Imdyb3VwIiwidmFsdWUiOiIsIiwic291cmNl
IjoiZW5kUmFuZ2UifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiI2NTQiLCJzb3VyY2UiOiJl
bmRSYW5nZSJ9LHsidHlwZSI6Imdyb3VwIiwidmFsdWUiOiIsIiwic291cmNlIjoiZW5kUmFuZ2Ui
fSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiIzMjEiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsi
dHlwZSI6Imdyb3VwIiwidmFsdWUiOiIsIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJp
bnRlZ2VyIiwidmFsdWUiOiI5ODciLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6Imdyb3Vw
IiwidmFsdWUiOiIsIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFs
dWUiOiI2NTQiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6Imdyb3VwIiwidmFsdWUiOiIs
Iiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiIzMjIiLCJz
b3VyY2UiOiJlbmRSYW5nZSJ9XWApOworICAgIHNob3VsZEJlKEpTT04uc3RyaW5naWZ5KG5mMi5m
b3JtYXRSYW5nZVRvUGFydHMoc3RyaW5nLCBzdHJpbmcyKSksIGBbeyJ0eXBlIjoiaW50ZWdlciIs
InZhbHVlIjoiOTg3Iiwic291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlwZSI6Imdyb3VwIiwidmFs
dWUiOiIsIiwic291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6
IjY1NCIsInNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIs
InNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiIzMjEiLCJz
b3VyY2UiOiJzdGFydFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2Ui
OiJzdGFydFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiOTg3Iiwic291cmNlIjoi
c3RhcnRSYW5nZSJ9LHsidHlwZSI6Imdyb3VwIiwidmFsdWUiOiIsIiwic291cmNlIjoic3RhcnRS
YW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjY1NCIsInNvdXJjZSI6InN0YXJ0UmFu
Z2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7
InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiIzMjEiLCJzb3VyY2UiOiJzdGFydFJhbmdlIn0seyJ0
eXBlIjoibGl0ZXJhbCIsInZhbHVlIjoi772eIiwic291cmNlIjoic2hhcmVkIn0seyJ0eXBlIjoi
aW50ZWdlciIsInZhbHVlIjoiOTg3Iiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91
cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZh
bHVlIjoiNjU0Iiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoi
LCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMzIxIiwi
c291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6
ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiOTg3Iiwic291cmNlIjoiZW5k
UmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0s
eyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiNjU0Iiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5
cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50
ZWdlciIsInZhbHVlIjoiMzIyIiwic291cmNlIjoiZW5kUmFuZ2UifV1gKTsKK30KZGlmZiAtLWdp
dCBhL0pTVGVzdHMvc3RyZXNzL2ludGwtbnVtYmVyZm9ybWF0LWZvcm1hdC1zdHJpbmcuanMgYi9K
U1Rlc3RzL3N0cmVzcy9pbnRsLW51bWJlcmZvcm1hdC1mb3JtYXQtc3RyaW5nLmpzCmluZGV4IGZi
Y2JkZDE4ODgxMTAwNjg2NGI0NTkxOWZiMjk0NjA4MWI2NzBiNDUuLjBhMWExZmI4MzYwMWFkZmNi
NTY3NzdjNWI0MWI4ZDFlYmE4MjhmZGUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2ludGwt
bnVtYmVyZm9ybWF0LWZvcm1hdC1zdHJpbmcuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1u
dW1iZXJmb3JtYXQtZm9ybWF0LXN0cmluZy5qcwpAQCAtMTYsMyArMTYsMTMgQEAgZnVuY3Rpb24g
c2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgewogICAgIHNob3VsZEJlKG5mMi5mb3JtYXRSYW5n
ZSgiLTAiLCAiMCIpLCBgLTAg772eIDBgKTsKICAgICBzaG91bGRCZShuZjIuZm9ybWF0UmFuZ2Uo
Ii0wIiwgIjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiKSwg
YC0wIO+9niAxLDAwMCwwMDAsMDAwLDAwMCwwMDAsMDAwLDAwMCwwMDAsMDAwLDAwMCwwMDAsMDAw
LDAwMCwwMDAsMDAwYCk7CiB9CitpZiAobmYuZm9ybWF0UmFuZ2VUb1BhcnRzKSB7CisgICAgc2hv
dWxkQmUoSlNPTi5zdHJpbmdpZnkobmYuZm9ybWF0UmFuZ2VUb1BhcnRzKCItNTQuMzIxIiwgIis1
NC4zMjEiKSksIGBbeyJ0eXBlIjoibWludXNTaWduIiwidmFsdWUiOiItIiwic291cmNlIjoic3Rh
cnRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjU0Iiwic291cmNlIjoic3RhcnRS
YW5nZSJ9LHsidHlwZSI6ImRlY2ltYWwiLCJ2YWx1ZSI6Ii4iLCJzb3VyY2UiOiJzdGFydFJhbmdl
In0seyJ0eXBlIjoiZnJhY3Rpb24iLCJ2YWx1ZSI6IjMyMSIsInNvdXJjZSI6InN0YXJ0UmFuZ2Ui
fSx7InR5cGUiOiJsaXRlcmFsIiwidmFsdWUiOiIg4oCTICIsInNvdXJjZSI6InNoYXJlZCJ9LHsi
dHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjU0Iiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUi
OiJkZWNpbWFsIiwidmFsdWUiOiIuIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJmcmFj
dGlvbiIsInZhbHVlIjoiMzIxIiwic291cmNlIjoiZW5kUmFuZ2UifV1gKTsKKyAgICBzaG91bGRC
ZShKU09OLnN0cmluZ2lmeShuZi5mb3JtYXRSYW5nZVRvUGFydHMoIi01NC4zMjEiLCAiMjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiKSksIGBbeyJ0eXBlIjoibWludXNT
aWduIiwidmFsdWUiOiItIiwic291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIi
LCJ2YWx1ZSI6IjU0Iiwic291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlwZSI6ImRlY2ltYWwiLCJ2
YWx1ZSI6Ii4iLCJzb3VyY2UiOiJzdGFydFJhbmdlIn0seyJ0eXBlIjoiZnJhY3Rpb24iLCJ2YWx1
ZSI6IjMyMSIsInNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJsaXRlcmFsIiwidmFsdWUi
OiIg4oCTICIsInNvdXJjZSI6InNoYXJlZCJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjIw
Iiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJj
ZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoi
ZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdl
In0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5kUmFuZ2UifSx7
InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoi
aW50ZWdlciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91
cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZh
bHVlIjoiMDAwIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoi
LCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAwIiwi
c291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6
ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5k
UmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0s
eyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5
cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50
ZWdlciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIs
InZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVl
IjoiMDAwIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIs
InNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAwIiwic291
cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVu
ZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5kUmFu
Z2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0
eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUi
OiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdl
ciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5kUmFuZ2UifV1gKTsKKyAgICBzaG91bGRCZShK
U09OLnN0cmluZ2lmeShuZi5mb3JtYXRSYW5nZVRvUGFydHMoIi0wIiwgIjAiKSksIGBbeyJ0eXBl
IjoibWludXNTaWduIiwidmFsdWUiOiItIiwic291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlwZSI6
ImludGVnZXIiLCJ2YWx1ZSI6IjAiLCJzb3VyY2UiOiJzdGFydFJhbmdlIn0seyJ0eXBlIjoibGl0
ZXJhbCIsInZhbHVlIjoiIOKAkyAiLCJzb3VyY2UiOiJzaGFyZWQifSx7InR5cGUiOiJpbnRlZ2Vy
IiwidmFsdWUiOiIwIiwic291cmNlIjoiZW5kUmFuZ2UifV1gKTsKKyAgICBzaG91bGRCZShKU09O
LnN0cmluZ2lmeShuZi5mb3JtYXRSYW5nZVRvUGFydHMoIi0wIiwgIjEwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiKSksIGBbeyJ0eXBlIjoibWludXNTaWduIiwi
dmFsdWUiOiItIiwic291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1
ZSI6IjAiLCJzb3VyY2UiOiJzdGFydFJhbmdlIn0seyJ0eXBlIjoibGl0ZXJhbCIsInZhbHVlIjoi
IOKAkyAiLCJzb3VyY2UiOiJzaGFyZWQifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiIxIiwi
c291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6
ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5k
UmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0s
eyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5
cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50
ZWdlciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIs
InZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVl
IjoiMDAwIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIs
InNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAwIiwic291
cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVu
ZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5kUmFu
Z2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0
eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUi
OiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdl
ciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZh
bHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoi
MDAwIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNv
dXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAwIiwic291cmNl
IjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJh
bmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5kUmFuZ2Ui
fSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBl
IjoiaW50ZWdlciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJn
cm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIs
InZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVl
IjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAw
Iiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJj
ZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoi
ZW5kUmFuZ2UifV1gKTsKKyAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShuZjIuZm9ybWF0UmFu
Z2VUb1BhcnRzKCItNTQuMzIxIiwgIis1NC4zMjEiKSksIGBbeyJ0eXBlIjoibWludXNTaWduIiwi
dmFsdWUiOiItIiwic291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1
ZSI6IjU0Iiwic291cmNlIjoic3RhcnRSYW5nZSJ9LHsidHlwZSI6ImRlY2ltYWwiLCJ2YWx1ZSI6
Ii4iLCJzb3VyY2UiOiJzdGFydFJhbmdlIn0seyJ0eXBlIjoiZnJhY3Rpb24iLCJ2YWx1ZSI6IjMy
MSIsInNvdXJjZSI6InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJsaXRlcmFsIiwidmFsdWUiOiIg772e
ICIsInNvdXJjZSI6InNoYXJlZCJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjU0Iiwic291
cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJkZWNpbWFsIiwidmFsdWUiOiIuIiwic291cmNlIjoi
ZW5kUmFuZ2UifSx7InR5cGUiOiJmcmFjdGlvbiIsInZhbHVlIjoiMzIxIiwic291cmNlIjoiZW5k
UmFuZ2UifV1gKTsKKyAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShuZjIuZm9ybWF0UmFuZ2VU
b1BhcnRzKCItNTQuMzIxIiwgIjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwIikpLCBgW3sidHlwZSI6Im1pbnVzU2lnbiIsInZhbHVlIjoiLSIsInNvdXJjZSI6InN0YXJ0
UmFuZ2UifSx7InR5cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiI1NCIsInNvdXJjZSI6InN0YXJ0UmFu
Z2UifSx7InR5cGUiOiJkZWNpbWFsIiwidmFsdWUiOiIuIiwic291cmNlIjoic3RhcnRSYW5nZSJ9
LHsidHlwZSI6ImZyYWN0aW9uIiwidmFsdWUiOiIzMjEiLCJzb3VyY2UiOiJzdGFydFJhbmdlIn0s
eyJ0eXBlIjoibGl0ZXJhbCIsInZhbHVlIjoiIO+9niAiLCJzb3VyY2UiOiJzaGFyZWQifSx7InR5
cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiIyMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoi
Z3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIi
LCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1
ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAw
MCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3Vy
Y2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6
ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5n
ZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0s
eyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6
ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3Jv
dXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2
YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6
IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIs
InNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2Ui
OiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVu
ZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9
LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0
eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6Imlu
dGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAi
LCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1
ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6Iiwi
LCJzb3VyY2UiOiJlbmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNv
dXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiZ3JvdXAiLCJ2YWx1ZSI6IiwiLCJzb3VyY2UiOiJl
bmRSYW5nZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAwMCIsInNvdXJjZSI6ImVuZFJh
bmdlIn1dYCk7CisgICAgc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkobmYyLmZvcm1hdFJhbmdlVG9Q
YXJ0cygiLTAiLCAiMCIpKSwgYFt7InR5cGUiOiJtaW51c1NpZ24iLCJ2YWx1ZSI6Ii0iLCJzb3Vy
Y2UiOiJzdGFydFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMCIsInNvdXJjZSI6
InN0YXJ0UmFuZ2UifSx7InR5cGUiOiJsaXRlcmFsIiwidmFsdWUiOiIg772eICIsInNvdXJjZSI6
InNoYXJlZCJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAiLCJzb3VyY2UiOiJlbmRSYW5n
ZSJ9XWApOworICAgIHNob3VsZEJlKEpTT04uc3RyaW5naWZ5KG5mMi5mb3JtYXRSYW5nZVRvUGFy
dHMoIi0wIiwgIjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAi
KSksIGBbeyJ0eXBlIjoibWludXNTaWduIiwidmFsdWUiOiItIiwic291cmNlIjoic3RhcnRSYW5n
ZSJ9LHsidHlwZSI6ImludGVnZXIiLCJ2YWx1ZSI6IjAiLCJzb3VyY2UiOiJzdGFydFJhbmdlIn0s
eyJ0eXBlIjoibGl0ZXJhbCIsInZhbHVlIjoiIO+9niAiLCJzb3VyY2UiOiJzaGFyZWQifSx7InR5
cGUiOiJpbnRlZ2VyIiwidmFsdWUiOiIxIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJn
cm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIs
InZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVl
IjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAw
Iiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJj
ZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoi
ZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdl
In0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5kUmFuZ2UifSx7
InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoi
aW50ZWdlciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91
cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZh
bHVlIjoiMDAwIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoi
LCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAwIiwi
c291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6
ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5k
UmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0s
eyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5
cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50
ZWdlciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIs
InZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVl
IjoiMDAwIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIs
InNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAwIiwic291
cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVu
ZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5kUmFu
Z2UifSx7InR5cGUiOiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0
eXBlIjoiaW50ZWdlciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5kUmFuZ2UifSx7InR5cGUi
OiJncm91cCIsInZhbHVlIjoiLCIsInNvdXJjZSI6ImVuZFJhbmdlIn0seyJ0eXBlIjoiaW50ZWdl
ciIsInZhbHVlIjoiMDAwIiwic291cmNlIjoiZW5kUmFuZ2UifV1gKTsKK30K
</data>
<flag name="review"
          id="470395"
          type_id="1"
          status="+"
          setter="ross.kirsling"
    />
          </attachment>
      

    </bug>

</bugzilla>