<?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>53975</bug_id>
          
          <creation_ts>2011-02-07 21:21:35 -0800</creation_ts>
          <short_desc>Events should propagate through IDBDatabase (for IDBRequest and IDBTransaction)</short_desc>
          <delta_ts>2011-02-08 19:18:46 -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>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeremy Orlow">jorlow</reporter>
          <assigned_to name="Jeremy Orlow">jorlow</assigned_to>
          <cc>andreip</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dgrogan</cc>
    
    <cc>hans</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zmo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>347064</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-02-07 21:21:35 -0800</bug_when>
    <thetext>Events should propagate through IDBDatabase (for IDBRequest and IDBTransaction)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347065</commentid>
    <comment_count>1</comment_count>
      <attachid>81580</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-02-07 21:24:06 -0800</bug_when>
    <thetext>Created attachment 81580
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347067</commentid>
    <comment_count>2</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-02-07 21:24:37 -0800</bug_when>
    <thetext>please review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347085</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-07 21:57:11 -0800</bug_when>
    <thetext>Attachment 81580 did not build on chromium:
Build output: http://queues.webkit.org/results/7740009</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347215</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-08 00:46:19 -0800</bug_when>
    <thetext>Attachment 81580 did not build on chromium:
Build output: http://queues.webkit.org/results/7828007</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347753</commentid>
    <comment_count>5</comment_count>
      <attachid>81708</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-02-08 15:47:58 -0800</bug_when>
    <thetext>Created attachment 81708
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347775</commentid>
    <comment_count>6</comment_count>
      <attachid>81708</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-02-08 16:05:16 -0800</bug_when>
    <thetext>Comment on attachment 81708
Patch

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

&gt; Source/WebCore/storage/IDBDatabase.cpp:143
&gt; +ScriptExecutionContext* IDBDatabase::scriptExecutionContext() const
&gt; +{
&gt; +    return ActiveDOMObject::scriptExecutionContext();
&gt; +}

Is there a reason we&apos;re overriding this if we&apos;re just calling straight to ActiveDOMObject?

&gt; Source/WebCore/storage/IDBRequest.cpp:150
&gt; +        // If there ever are events that are associated with a database but not have a

Grammar nit: &quot;but not have&quot; -&gt; &quot;but do not have&quot;

&gt; Source/WebCore/storage/IDBTransaction.cpp:116
&gt; +ScriptExecutionContext* IDBTransaction::scriptExecutionContext() const
&gt; +{
&gt; +    return ActiveDOMObject::scriptExecutionContext();
&gt; +}
&gt; +

Same as above: is there a reason for this?  Am I missing something obvious?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347818</commentid>
    <comment_count>7</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-02-08 17:01:57 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 81708 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=81708&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/storage/IDBDatabase.cpp:143
&gt; &gt; +ScriptExecutionContext* IDBDatabase::scriptExecutionContext() const
&gt; &gt; +{
&gt; &gt; +    return ActiveDOMObject::scriptExecutionContext();
&gt; &gt; +}
&gt; 
&gt; Is there a reason we&apos;re overriding this if we&apos;re just calling straight to ActiveDOMObject?

In eventTarget.h:
virtual ScriptExecutionContext* scriptExecutionContext() const = 0;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347877</commentid>
    <comment_count>8</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-02-08 18:14:29 -0800</bug_when>
    <thetext>Committed r78005: &lt;http://trac.webkit.org/changeset/78005&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347893</commentid>
    <comment_count>9</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-02-08 19:18:46 -0800</bug_when>
    <thetext>storage/indexeddb/request-event-propagation.html
storage/indexeddb/transaction-event-propagation.html

are failing on chromium+webkit bots.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81580</attachid>
            <date>2011-02-07 21:24:06 -0800</date>
            <delta_ts>2011-02-08 15:47:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53975-20110207212405.patch</filename>
            <type>text/plain</type>
            <size>40042</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzNDgwM2EzMDc2ZGNmZTcwMDk2OGQ2MDYxMGMyYjMwYTM3OGEyZWZiLi40NDM5MjQy
YWIzMGM2MzBiOTVlMTBiYzA1ZTIzY2RhMDRiY2U5ODhiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAK
KzIwMTEtMDItMDcgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXZlbnRzIHNob3VsZCBw
cm9wYWdhdGUgdGhyb3VnaCBJREJEYXRhYmFzZSAoZm9yIElEQlJlcXVlc3QgYW5kIElEQlRyYW5z
YWN0aW9uKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTM5NzUKKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy5o
dG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtZXZlbnQtcHJvcGFnYXRp
b24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtZXZl
bnQtcHJvcGFnYXRpb24uaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2Fj
dGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFuZC1vYmplY3RzdG9yZS1jYWxscy5odG1sOgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWJhc2ljcy5odG1sOgorICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWV2ZW50LXByb3BhZ2F0aW9uLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24t
ZXZlbnQtcHJvcGFnYXRpb24uaHRtbDogQWRkZWQuCisKIDIwMTEtMDItMDQgIEplcmVteSBPcmxv
dyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTmF0ZSBDaGFw
aW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9y
ZS1iYXNpY3MuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3Jl
LWJhc2ljcy5odG1sCmluZGV4IGRlZWM3YTMxNjBjNGIwYzA4MDI1NGExMDlmNjZmZjk3ZjEyZDMx
NDguLjQ2Yjc3MWUwM2VjMmFiZmM3ZmQ3OGI5MGUyOGNjMDMzZDQ0Zjg1ODggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy5odG1s
CkBAIC0xNzksNyArMTc5LDcgQEAgZnVuY3Rpb24gYWRkU3VjY2VzcygpCiAgICAgcmVzdWx0ID0g
ZXZhbEFuZExvZygiZXZlbnQuc291cmNlLmFkZCh7eDogJ2Zvbyd9LCAnenp6JykiKTsKICAgICB2
ZXJpZnlSZXN1bHQocmVzdWx0KTsKICAgICByZXN1bHQub25zdWNjZXNzID0gdW5leHBlY3RlZFN1
Y2Nlc3NDYWxsYmFjazsKLSAgICByZXN1bHQub25lcnJvciA9IGFkZEFnYWluRmFpbHVyZTsKKyAg
ICByZXN1bHQuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBhZGRBZ2FpbkZhaWx1cmUsIGZhbHNl
KTsKIH0KIAogZnVuY3Rpb24gYWRkQWdhaW5GYWlsdXJlKCkKQEAgLTE5OCw3ICsxOTgsNyBAQCBm
dW5jdGlvbiBhZGRBZ2FpbkZhaWx1cmUoKQogICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coInN0b3Jl
LmFkZCh7eDogJ290aGVydmFsdWUnfSwgbnVsbCkiKTsKICAgICB2ZXJpZnlSZXN1bHQocmVzdWx0
KTsKICAgICByZXN1bHQub25zdWNjZXNzID0gdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFjazsKLSAg
ICByZXN1bHQub25lcnJvciA9IGFkZFdpdGhOdWxsS2V5RmFpbHVyZTsKKyAgICByZXN1bHQuYWRk
RXZlbnRMaXN0ZW5lcignZXJyb3InLCBhZGRXaXRoTnVsbEtleUZhaWx1cmUsIHRydWUpOwogfQog
CiBmdW5jdGlvbiBhZGRXaXRoTnVsbEtleUZhaWx1cmUoKQpAQCAtMjMzLDcgKzIzMyw3IEBAIGZ1
bmN0aW9uIGFkZFdpdGhOdWxsSW5kZXhGYWlsdXJlKCkKIAogICAgIHJlc3VsdCA9IGV2YWxBbmRM
b2coInN0b3JlLmdldCgna2V5JykiKTsKICAgICB2ZXJpZnlSZXN1bHQocmVzdWx0KTsKLSAgICBy
ZXN1bHQub25zdWNjZXNzID0gZ2V0U3VjY2VzczsKKyAgICByZXN1bHQuYWRkRXZlbnRMaXN0ZW5l
cignc3VjY2VzcycsIGdldFN1Y2Nlc3MsIHRydWUpOwogICAgIHJlc3VsdC5vbmVycm9yID0gdW5l
eHBlY3RlZEVycm9yQ2FsbGJhY2s7CiB9CiAKQEAgLTI0NSw3ICsyNDUsNyBAQCBmdW5jdGlvbiBn
ZXRTdWNjZXNzKCkKIAogICAgIHZhciBzdG9yZSA9IGV2YWxBbmRMb2coInN0b3JlID0gZXZlbnQu
c291cmNlIik7CiAgICAgcmVzdWx0ID0gZXZhbEFuZExvZygic3RvcmUuZ2V0KHRlc3REYXRlKSIp
OwotICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBnZXRTdWNjZXNzRGF0ZUtleTsKKyAgICByZXN1bHQu
YWRkRXZlbnRMaXN0ZW5lcignc3VjY2VzcycsIGdldFN1Y2Nlc3NEYXRlS2V5LCBmYWxzZSk7CiAg
ICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKIH0KIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdh
dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXF1ZXN0
LWV2ZW50LXByb3BhZ2F0aW9uLWV4cGVjdGVkLnR4dAppbmRleCBhMWE1Y2QyMGY4NDRlZTdiOTFl
MGFlZjk4OTk0ZjU1ZDI4NDgxOWIxLi5kZWRhNmE3MDdiZTg0NjIxZTc4MDIxYzZiZDY1M2QwNWRm
ZDRlMjA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXF1ZXN0
LWV2ZW50LXByb3BhZ2F0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXF1ZXN0LWV2ZW50LXByb3BhZ2F0aW9uLWV4cGVjdGVkLnR4dApAQCAtNjIs
MjggKzYyLDU2IEBAIHRyYW5zLm9uYWJvcnQgPSB0cmFuc2FjdGlvbkFib3J0ZWQyCiB0cmFucy5v
bmNvbXBsZXRlID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2sKIHRyYW5zLmFkZEV2ZW50TGlzdGVu
ZXIoJ2Vycm9yJywgZXJyb3JDYXB0dXJlQ2FsbGJhY2ssIHRydWUpCiB0cmFucy5hZGRFdmVudExp
c3RlbmVyKCdlcnJvcicsIGVycm9yQnViYmxlQ2FsbGJhY2ssIGZhbHNlKQordHJhbnMuYWRkRXZl
bnRMaXN0ZW5lcignc3VjY2VzcycsIHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2ssIHRydWUpCit0
cmFucy5hZGRFdmVudExpc3RlbmVyKCdzdWNjZXNzJywgdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFj
aywgZmFsc2UpCitkYi5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGRiRXJyb3JDYXB0dXJlQ2Fs
bGJhY2ssIHRydWUpCitkYi5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGRiRXJyb3JCdWJibGVD
YWxsYmFjaywgZmFsc2UpCitkYi5hZGRFdmVudExpc3RlbmVyKCdzdWNjZXNzJywgdW5leHBlY3Rl
ZFN1Y2Nlc3NDYWxsYmFjaywgdHJ1ZSkKK2RiLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Y2Nlc3MnLCB1
bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrLCBmYWxzZSkKIHN0b3JlID0gdHJhbnMub2JqZWN0U3Rv
cmUoJ3N0b3JlTmFtZScpCiBzdG9yZS5hZGQoe3g6ICd2YWx1ZScsIHk6ICd6enonfSwgJ2tleScp
CiAKK0luIElEQkRhdGFiYXNlIGVycm9yIGNhcHR1cmUKK1BBU1MgZGJDYXB0dXJlRmlyZWQgaXMg
ZmFsc2UKK1BBU1MgY2FwdHVyZUZpcmVkIGlzIGZhbHNlCitQQVNTIHJlcXVlc3RGaXJlZCBpcyBm
YWxzZQorUEFTUyBidWJibGVGaXJlZCBpcyBmYWxzZQorUEFTUyBkYkJ1YmJsZUZpcmVkIGlzIGZh
bHNlCisKIEluIElEQlRyYW5zYWN0aW9uIGVycm9yIGNhcHR1cmUKK1BBU1MgZGJDYXB0dXJlRmly
ZWQgaXMgdHJ1ZQogUEFTUyBjYXB0dXJlRmlyZWQgaXMgZmFsc2UKIFBBU1MgcmVxdWVzdEZpcmVk
IGlzIGZhbHNlCiBQQVNTIGJ1YmJsZUZpcmVkIGlzIGZhbHNlCitQQVNTIGRiQnViYmxlRmlyZWQg
aXMgZmFsc2UKIAogSW4gSURCUmVxdWVzdCBoYW5kbGVyCitQQVNTIGRiQ2FwdHVyZUZpcmVkIGlz
IHRydWUKIFBBU1MgY2FwdHVyZUZpcmVkIGlzIHRydWUKIFBBU1MgcmVxdWVzdEZpcmVkIGlzIGZh
bHNlCiBQQVNTIGJ1YmJsZUZpcmVkIGlzIGZhbHNlCitQQVNTIGRiQnViYmxlRmlyZWQgaXMgZmFs
c2UKIAogSW4gSURCVHJhbnNhY3Rpb24gZXJyb3IgYnViYmxlCitQQVNTIGRiQ2FwdHVyZUZpcmVk
IGlzIHRydWUKIFBBU1MgY2FwdHVyZUZpcmVkIGlzIHRydWUKIFBBU1MgcmVxdWVzdEZpcmVkIGlz
IHRydWUKIFBBU1MgYnViYmxlRmlyZWQgaXMgZmFsc2UKK1BBU1MgZGJCdWJibGVGaXJlZCBpcyBm
YWxzZQorCitJbiBJREJEYXRhYmFzZSBlcnJvciBidWJibGUKK1BBU1MgZGJDYXB0dXJlRmlyZWQg
aXMgdHJ1ZQorUEFTUyBjYXB0dXJlRmlyZWQgaXMgdHJ1ZQorUEFTUyByZXF1ZXN0RmlyZWQgaXMg
dHJ1ZQorUEFTUyBidWJibGVGaXJlZCBpcyB0cnVlCitQQVNTIGRiQnViYmxlRmlyZWQgaXMgZmFs
c2UKIAogVHJhbnNhY3Rpb24gYWJvcnRlZAorUEFTUyBkYkNhcHR1cmVGaXJlZCBpcyB0cnVlCiBQ
QVNTIGNhcHR1cmVGaXJlZCBpcyB0cnVlCiBQQVNTIHJlcXVlc3RGaXJlZCBpcyB0cnVlCiBQQVNT
IGJ1YmJsZUZpcmVkIGlzIHRydWUKK1BBU1MgZGJCdWJibGVGaXJlZCBpcyB0cnVlCiAKIFZlcmlm
aW5nIHN1Y2Nlc3MuCiB0cmFucyA9IGRiLnRyYW5zYWN0aW9uKFtdLCB3ZWJraXRJREJUcmFuc2Fj
dGlvbi5SRUFEX1dSSVRFKQpAQCAtOTEsMjMgKzExOSw0NiBAQCB0cmFucy5vbmNvbXBsZXRlID0g
dHJhbnNhY3Rpb25Db21wbGV0ZQogdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxi
YWNrCiB0cmFucy5hZGRFdmVudExpc3RlbmVyKCdzdWNjZXNzJywgc3VjY2Vzc0NhcHR1cmVDYWxs
YmFjaywgdHJ1ZSkKIHRyYW5zLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Y2Nlc3MnLCBzdWNjZXNzQnVi
YmxlQ2FsbGJhY2ssIGZhbHNlKQordHJhbnMuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjaywgdHJ1ZSkKK3RyYW5zLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9y
JywgdW5leHBlY3RlZEVycm9yQ2FsbGJhY2ssIGZhbHNlKQorZGIucmVtb3ZlRXZlbnRMaXN0ZW5l
cignZXJyb3InLCBkYkVycm9yQ2FwdHVyZUNhbGxiYWNrLCB0cnVlKQorZGIucmVtb3ZlRXZlbnRM
aXN0ZW5lcignZXJyb3InLCBkYkVycm9yQnViYmxlQ2FsbGJhY2ssIGZhbHNlKQorZGIucmVtb3Zl
RXZlbnRMaXN0ZW5lcignc3VjY2VzcycsIHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2ssIHRydWUp
CitkYi5yZW1vdmVFdmVudExpc3RlbmVyKCdzdWNjZXNzJywgdW5leHBlY3RlZFN1Y2Nlc3NDYWxs
YmFjaywgZmFsc2UpCitkYi5hZGRFdmVudExpc3RlbmVyKCdzdWNjZXNzJywgZGJTdWNjZXNzQ2Fw
dHVyZUNhbGxiYWNrLCB0cnVlKQorZGIuYWRkRXZlbnRMaXN0ZW5lcignc3VjY2VzcycsIGRiU3Vj
Y2Vzc0J1YmJsZUNhbGxiYWNrLCBmYWxzZSkKK2RiLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywg
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2ssIHRydWUpCitkYi5hZGRFdmVudExpc3RlbmVyKCdlcnJv
cicsIHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrLCBmYWxzZSkKIHN0b3JlID0gdHJhbnMub2JqZWN0
U3RvcmUoJ3N0b3JlTmFtZScpCiBzdG9yZS5hZGQoe3g6ICd2YWx1ZScsIHk6ICd6enonfSwgJ2tl
eTInKQogCitJbiBJREJEYXRhYmFzZSBzdWNjZXNzIGNhcHR1cmUKK1BBU1MgZGJDYXB0dXJlRmly
ZWQgaXMgZmFsc2UKK1BBU1MgY2FwdHVyZUZpcmVkIGlzIGZhbHNlCitQQVNTIHJlcXVlc3RGaXJl
ZCBpcyBmYWxzZQorUEFTUyBidWJibGVGaXJlZCBpcyBmYWxzZQorUEFTUyBkYkJ1YmJsZUZpcmVk
IGlzIGZhbHNlCisKIEluIElEQlRyYW5zYWN0aW9uIHN1Y2Nlc3MgY2FwdHVyZQorUEFTUyBkYkNh
cHR1cmVGaXJlZCBpcyB0cnVlCiBQQVNTIGNhcHR1cmVGaXJlZCBpcyBmYWxzZQogUEFTUyByZXF1
ZXN0RmlyZWQgaXMgZmFsc2UKIFBBU1MgYnViYmxlRmlyZWQgaXMgZmFsc2UKK1BBU1MgZGJCdWJi
bGVGaXJlZCBpcyBmYWxzZQogCiBJbiBJREJSZXF1ZXN0IGhhbmRsZXIKK1BBU1MgZGJDYXB0dXJl
RmlyZWQgaXMgdHJ1ZQogUEFTUyBjYXB0dXJlRmlyZWQgaXMgdHJ1ZQogUEFTUyByZXF1ZXN0Rmly
ZWQgaXMgZmFsc2UKIFBBU1MgYnViYmxlRmlyZWQgaXMgZmFsc2UKK1BBU1MgZGJCdWJibGVGaXJl
ZCBpcyBmYWxzZQogCiBUcmFuc2FjdGlvbiBjb21wbGV0ZWQKK1BBU1MgZGJDYXB0dXJlRmlyZWQg
aXMgdHJ1ZQogUEFTUyBjYXB0dXJlRmlyZWQgaXMgdHJ1ZQogUEFTUyByZXF1ZXN0RmlyZWQgaXMg
dHJ1ZQogUEFTUyBidWJibGVGaXJlZCBpcyBmYWxzZQorUEFTUyBkYkJ1YmJsZUZpcmVkIGlzIGZh
bHNlCiAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi5odG1s
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlv
bi5odG1sCmluZGV4IGUxMjg0YjYxYTAxNzQ1NGEyZjkxMzRlNDIxMzEwNzNlMTAyNTk3NGEuLjg3
ZjZhMmQ5YjI2MGVkZDMzNTUyN2Y1OWI0MzJlNDAxM2NkNjJiMGQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtZXZlbnQtcHJvcGFnYXRpb24uaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXF1ZXN0LWV2ZW50LXByb3BhZ2F0
aW9uLmh0bWwKQEAgLTgyLDIyICs4Miw0NCBAQCBmdW5jdGlvbiB0cmFuc2FjdGlvbkFib3J0ZWQo
KQogICAgIGV2YWxBbmRMb2coInRyYW5zLm9uY29tcGxldGUgPSB1bmV4cGVjdGVkQWJvcnRDYWxs
YmFjayIpOwogICAgIGV2YWxBbmRMb2coInRyYW5zLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywg
ZXJyb3JDYXB0dXJlQ2FsbGJhY2ssIHRydWUpIik7CiAgICAgZXZhbEFuZExvZygidHJhbnMuYWRk
RXZlbnRMaXN0ZW5lcignZXJyb3InLCBlcnJvckJ1YmJsZUNhbGxiYWNrLCBmYWxzZSkiKTsKKyAg
ICBldmFsQW5kTG9nKCJ0cmFucy5hZGRFdmVudExpc3RlbmVyKCdzdWNjZXNzJywgdW5leHBlY3Rl
ZFN1Y2Nlc3NDYWxsYmFjaywgdHJ1ZSkiKTsKKyAgICBldmFsQW5kTG9nKCJ0cmFucy5hZGRFdmVu
dExpc3RlbmVyKCdzdWNjZXNzJywgdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFjaywgZmFsc2UpIik7
CisgICAgZXZhbEFuZExvZygiZGIuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBkYkVycm9yQ2Fw
dHVyZUNhbGxiYWNrLCB0cnVlKSIpOworICAgIGV2YWxBbmRMb2coImRiLmFkZEV2ZW50TGlzdGVu
ZXIoJ2Vycm9yJywgZGJFcnJvckJ1YmJsZUNhbGxiYWNrLCBmYWxzZSkiKTsKKyAgICBldmFsQW5k
TG9nKCJkYi5hZGRFdmVudExpc3RlbmVyKCdzdWNjZXNzJywgdW5leHBlY3RlZFN1Y2Nlc3NDYWxs
YmFjaywgdHJ1ZSkiKTsKKyAgICBldmFsQW5kTG9nKCJkYi5hZGRFdmVudExpc3RlbmVyKCdzdWNj
ZXNzJywgdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFjaywgZmFsc2UpIik7CiAgICAgc3RvcmUgPSBl
dmFsQW5kTG9nKCJzdG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOwogICAg
IHJlc3VsdCA9IGV2YWxBbmRMb2coInN0b3JlLmFkZCh7eDogJ3ZhbHVlJywgeTogJ3p6eid9LCAn
a2V5JykiKTsKICAgICByZXN1bHQub25zdWNjZXNzID0gdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFj
azsKICAgICByZXN1bHQub25lcnJvciA9IGVycm9yRmlyZWRDYWxsYmFjazsKKyAgICBkYkNhcHR1
cmVGaXJlZCA9IGZhbHNlOwogICAgIGNhcHR1cmVGaXJlZCA9IGZhbHNlOwogICAgIHJlcXVlc3RG
aXJlZCA9IGZhbHNlOwogICAgIGJ1YmJsZUZpcmVkID0gZmFsc2U7CisgICAgZGJCdWJibGVGaXJl
ZCA9IGZhbHNlOworfQorCitmdW5jdGlvbiBkYkVycm9yQ2FwdHVyZUNhbGxiYWNrKCkKK3sKKyAg
ICBkZWJ1ZygiIik7CisgICAgZGVidWcoIkluIElEQkRhdGFiYXNlIGVycm9yIGNhcHR1cmUiKTsK
KyAgICBzaG91bGRCZUZhbHNlKCJkYkNhcHR1cmVGaXJlZCIpOworICAgIHNob3VsZEJlRmFsc2Uo
ImNhcHR1cmVGaXJlZCIpOworICAgIHNob3VsZEJlRmFsc2UoInJlcXVlc3RGaXJlZCIpOworICAg
IHNob3VsZEJlRmFsc2UoImJ1YmJsZUZpcmVkIik7CisgICAgc2hvdWxkQmVGYWxzZSgiZGJCdWJi
bGVGaXJlZCIpOworICAgIGRiQ2FwdHVyZUZpcmVkID0gdHJ1ZTsKIH0KIAogZnVuY3Rpb24gZXJy
b3JDYXB0dXJlQ2FsbGJhY2soKQogewogICAgIGRlYnVnKCIiKTsKICAgICBkZWJ1ZygiSW4gSURC
VHJhbnNhY3Rpb24gZXJyb3IgY2FwdHVyZSIpOworICAgIHNob3VsZEJlVHJ1ZSgiZGJDYXB0dXJl
RmlyZWQiKTsKICAgICBzaG91bGRCZUZhbHNlKCJjYXB0dXJlRmlyZWQiKTsKICAgICBzaG91bGRC
ZUZhbHNlKCJyZXF1ZXN0RmlyZWQiKTsKICAgICBzaG91bGRCZUZhbHNlKCJidWJibGVGaXJlZCIp
OworICAgIHNob3VsZEJlRmFsc2UoImRiQnViYmxlRmlyZWQiKTsKICAgICBjYXB0dXJlRmlyZWQg
PSB0cnVlOwogfQogCkBAIC0xMDUsOSArMTI3LDExIEBAIGZ1bmN0aW9uIGVycm9yRmlyZWRDYWxs
YmFjaygpCiB7CiAgICAgZGVidWcoIiIpOwogICAgIGRlYnVnKCJJbiBJREJSZXF1ZXN0IGhhbmRs
ZXIiKTsKKyAgICBzaG91bGRCZVRydWUoImRiQ2FwdHVyZUZpcmVkIik7CiAgICAgc2hvdWxkQmVU
cnVlKCJjYXB0dXJlRmlyZWQiKTsKICAgICBzaG91bGRCZUZhbHNlKCJyZXF1ZXN0RmlyZWQiKTsK
ICAgICBzaG91bGRCZUZhbHNlKCJidWJibGVGaXJlZCIpOworICAgIHNob3VsZEJlRmFsc2UoImRi
QnViYmxlRmlyZWQiKTsKICAgICByZXF1ZXN0RmlyZWQgPSB0cnVlOwogfQogCkBAIC0xMTUsMTkg
KzEzOSwzNSBAQCBmdW5jdGlvbiBlcnJvckJ1YmJsZUNhbGxiYWNrKCkKIHsKICAgICBkZWJ1Zygi
Iik7CiAgICAgZGVidWcoIkluIElEQlRyYW5zYWN0aW9uIGVycm9yIGJ1YmJsZSIpOworICAgIHNo
b3VsZEJlVHJ1ZSgiZGJDYXB0dXJlRmlyZWQiKTsKICAgICBzaG91bGRCZVRydWUoImNhcHR1cmVG
aXJlZCIpOwogICAgIHNob3VsZEJlVHJ1ZSgicmVxdWVzdEZpcmVkIik7CiAgICAgc2hvdWxkQmVG
YWxzZSgiYnViYmxlRmlyZWQiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJkYkJ1YmJsZUZpcmVkIik7
CiAgICAgYnViYmxlRmlyZWQgPSB0cnVlOwogfQogCitmdW5jdGlvbiBkYkVycm9yQnViYmxlQ2Fs
bGJhY2soKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiSW4gSURCRGF0YWJhc2UgZXJy
b3IgYnViYmxlIik7CisgICAgc2hvdWxkQmVUcnVlKCJkYkNhcHR1cmVGaXJlZCIpOworICAgIHNo
b3VsZEJlVHJ1ZSgiY2FwdHVyZUZpcmVkIik7CisgICAgc2hvdWxkQmVUcnVlKCJyZXF1ZXN0Rmly
ZWQiKTsKKyAgICBzaG91bGRCZVRydWUoImJ1YmJsZUZpcmVkIik7CisgICAgc2hvdWxkQmVGYWxz
ZSgiZGJCdWJibGVGaXJlZCIpOworICAgIGRiQnViYmxlRmlyZWQgPSB0cnVlOworfQorCiBmdW5j
dGlvbiB0cmFuc2FjdGlvbkFib3J0ZWQyKCkKIHsKICAgICBkZWJ1ZygiIik7CiAgICAgZGVidWco
IlRyYW5zYWN0aW9uIGFib3J0ZWQiKTsKKyAgICBzaG91bGRCZVRydWUoImRiQ2FwdHVyZUZpcmVk
Iik7CiAgICAgc2hvdWxkQmVUcnVlKCJjYXB0dXJlRmlyZWQiKTsKICAgICBzaG91bGRCZVRydWUo
InJlcXVlc3RGaXJlZCIpOwogICAgIHNob3VsZEJlVHJ1ZSgiYnViYmxlRmlyZWQiKTsKKyAgICBz
aG91bGRCZVRydWUoImRiQnViYmxlRmlyZWQiKTsKICAgICBkZWJ1ZygiIik7CiAgICAgZGVidWco
IlZlcmlmaW5nIHN1Y2Nlc3MuIik7CiAgICAgdHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGRi
LnRyYW5zYWN0aW9uKFtdLCB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKSIpOwpAQCAt
MTM1LDIyICsxNzUsNDggQEAgZnVuY3Rpb24gdHJhbnNhY3Rpb25BYm9ydGVkMigpCiAgICAgZXZh
bEFuZExvZygidHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrIik7CiAgICAg
ZXZhbEFuZExvZygidHJhbnMuYWRkRXZlbnRMaXN0ZW5lcignc3VjY2VzcycsIHN1Y2Nlc3NDYXB0
dXJlQ2FsbGJhY2ssIHRydWUpIik7CiAgICAgZXZhbEFuZExvZygidHJhbnMuYWRkRXZlbnRMaXN0
ZW5lcignc3VjY2VzcycsIHN1Y2Nlc3NCdWJibGVDYWxsYmFjaywgZmFsc2UpIik7CisgICAgZXZh
bEFuZExvZygidHJhbnMuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjaywgdHJ1ZSkiKTsKKyAgICBldmFsQW5kTG9nKCJ0cmFucy5hZGRFdmVudExpc3RlbmVy
KCdlcnJvcicsIHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrLCBmYWxzZSkiKTsKKyAgICBldmFsQW5k
TG9nKCJkYi5yZW1vdmVFdmVudExpc3RlbmVyKCdlcnJvcicsIGRiRXJyb3JDYXB0dXJlQ2FsbGJh
Y2ssIHRydWUpIik7CisgICAgZXZhbEFuZExvZygiZGIucmVtb3ZlRXZlbnRMaXN0ZW5lcignZXJy
b3InLCBkYkVycm9yQnViYmxlQ2FsbGJhY2ssIGZhbHNlKSIpOworICAgIGV2YWxBbmRMb2coImRi
LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3N1Y2Nlc3MnLCB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNr
LCB0cnVlKSIpOworICAgIGV2YWxBbmRMb2coImRiLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3N1Y2Nl
c3MnLCB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrLCBmYWxzZSkiKTsKKyAgICBldmFsQW5kTG9n
KCJkYi5hZGRFdmVudExpc3RlbmVyKCdzdWNjZXNzJywgZGJTdWNjZXNzQ2FwdHVyZUNhbGxiYWNr
LCB0cnVlKSIpOworICAgIGV2YWxBbmRMb2coImRiLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Y2Nlc3Mn
LCBkYlN1Y2Nlc3NCdWJibGVDYWxsYmFjaywgZmFsc2UpIik7CisgICAgZXZhbEFuZExvZygiZGIu
YWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjaywgdHJ1ZSki
KTsKKyAgICBldmFsQW5kTG9nKCJkYi5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrLCBmYWxzZSkiKTsKICAgICBzdG9yZSA9IGV2YWxBbmRMb2coInN0b3Jl
ID0gdHJhbnMub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpIik7CiAgICAgcmVzdWx0ID0gZXZhbEFu
ZExvZygic3RvcmUuYWRkKHt4OiAndmFsdWUnLCB5OiAnenp6J30sICdrZXkyJykiKTsKICAgICBy
ZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogICAgIHJlc3VsdC5vbnN1
Y2Nlc3MgPSBzdWNjZXNzRmlyZWRDYWxsYmFjazsKKyAgICBkYkNhcHR1cmVGaXJlZCA9IGZhbHNl
OwogICAgIGNhcHR1cmVGaXJlZCA9IGZhbHNlOwogICAgIHJlcXVlc3RGaXJlZCA9IGZhbHNlOwog
ICAgIGJ1YmJsZUZpcmVkID0gZmFsc2U7CisgICAgZGJCdWJibGVGaXJlZCA9IGZhbHNlOworfQor
CitmdW5jdGlvbiBkYlN1Y2Nlc3NDYXB0dXJlQ2FsbGJhY2soKQoreworICAgIGRlYnVnKCIiKTsK
KyAgICBkZWJ1ZygiSW4gSURCRGF0YWJhc2Ugc3VjY2VzcyBjYXB0dXJlIik7CisgICAgc2hvdWxk
QmVGYWxzZSgiZGJDYXB0dXJlRmlyZWQiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJjYXB0dXJlRmly
ZWQiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJyZXF1ZXN0RmlyZWQiKTsKKyAgICBzaG91bGRCZUZh
bHNlKCJidWJibGVGaXJlZCIpOworICAgIHNob3VsZEJlRmFsc2UoImRiQnViYmxlRmlyZWQiKTsK
KyAgICBkYkNhcHR1cmVGaXJlZCA9IHRydWU7CiB9CiAKIGZ1bmN0aW9uIHN1Y2Nlc3NDYXB0dXJl
Q2FsbGJhY2soKQogewogICAgIGRlYnVnKCIiKTsKICAgICBkZWJ1ZygiSW4gSURCVHJhbnNhY3Rp
b24gc3VjY2VzcyBjYXB0dXJlIik7CisgICAgc2hvdWxkQmVUcnVlKCJkYkNhcHR1cmVGaXJlZCIp
OwogICAgIHNob3VsZEJlRmFsc2UoImNhcHR1cmVGaXJlZCIpOwogICAgIHNob3VsZEJlRmFsc2Uo
InJlcXVlc3RGaXJlZCIpOwogICAgIHNob3VsZEJlRmFsc2UoImJ1YmJsZUZpcmVkIik7CisgICAg
c2hvdWxkQmVGYWxzZSgiZGJCdWJibGVGaXJlZCIpOwogICAgIGNhcHR1cmVGaXJlZCA9IHRydWU7
CiB9CiAKQEAgLTE1OCw5ICsyMjQsMTEgQEAgZnVuY3Rpb24gc3VjY2Vzc0ZpcmVkQ2FsbGJhY2so
KQogewogICAgIGRlYnVnKCIiKTsKICAgICBkZWJ1ZygiSW4gSURCUmVxdWVzdCBoYW5kbGVyIik7
CisgICAgc2hvdWxkQmVUcnVlKCJkYkNhcHR1cmVGaXJlZCIpOwogICAgIHNob3VsZEJlVHJ1ZSgi
Y2FwdHVyZUZpcmVkIik7CiAgICAgc2hvdWxkQmVGYWxzZSgicmVxdWVzdEZpcmVkIik7CiAgICAg
c2hvdWxkQmVGYWxzZSgiYnViYmxlRmlyZWQiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJkYkJ1YmJs
ZUZpcmVkIik7CiAgICAgcmVxdWVzdEZpcmVkID0gdHJ1ZTsKIH0KIApAQCAtMTY4LDE3ICsyMzYs
MjcgQEAgZnVuY3Rpb24gc3VjY2Vzc0J1YmJsZUNhbGxiYWNrKCkKIHsKICAgICBkZWJ1ZygiIik7
CiAgICAgZGVidWcoIkluIElEQlRyYW5zYWN0aW9uIHN1Y2Nlc3MgYnViYmxlIik7Ci0gICAgdGVz
dEZhaWxlZCgiU3VjY2VzcyBjYXB0dXJlIGNhbGxiYWNrIHNob3VsZCBOT1QgZmlyZSIpOworICAg
IHRlc3RGYWlsZWQoIlN1Y2Nlc3MgYnViYmxlIGNhbGxiYWNrIHNob3VsZCBOT1QgZmlyZSIpOwog
ICAgIGJ1YmJsZUZpcmVkID0gdHJ1ZTsKIH0KIAorZnVuY3Rpb24gZGJTdWNjZXNzQnViYmxlQ2Fs
bGJhY2soKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiSW4gSURCRGF0YWJhc2Ugc3Vj
Y2VzcyBidWJibGUiKTsKKyAgICB0ZXN0RmFpbGVkKCJTdWNjZXNzIGJ1YmJsZSBjYWxsYmFjayBz
aG91bGQgTk9UIGZpcmUiKTsKKyAgICBkYkJ1YmJsZUZpcmVkID0gdHJ1ZTsKK30KKwogZnVuY3Rp
b24gdHJhbnNhY3Rpb25Db21wbGV0ZSgpCiB7CiAgICAgZGVidWcoIiIpOwogICAgIGRlYnVnKCJU
cmFuc2FjdGlvbiBjb21wbGV0ZWQiKTsKKyAgICBzaG91bGRCZVRydWUoImRiQ2FwdHVyZUZpcmVk
Iik7CiAgICAgc2hvdWxkQmVUcnVlKCJjYXB0dXJlRmlyZWQiKTsKICAgICBzaG91bGRCZVRydWUo
InJlcXVlc3RGaXJlZCIpOwogICAgIHNob3VsZEJlRmFsc2UoImJ1YmJsZUZpcmVkIik7CisgICAg
c2hvdWxkQmVGYWxzZSgiZGJCdWJibGVGaXJlZCIpOwogICAgIGRlYnVnKCIiKTsKIAogICAgIGRv
bmUoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0
aW9uLWFuZC1vYmplY3RzdG9yZS1jYWxscy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMtZXhwZWN0ZWQu
dHh0CmluZGV4IDAyOGZmNzJmMmI4Y2Q2NmJmMGYyZDRlYjNlYTgxNDQyODA4NWFjY2YuLjM2Y2Ew
MWU0MmY1N2ZlOThkYWRiMGVhNTdjYmVhMGZjMmQ4OThiNDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFuZC1vYmplY3RzdG9yZS1jYWxscy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rp
b24tYW5kLW9iamVjdHN0b3JlLWNhbGxzLWV4cGVjdGVkLnR4dApAQCAtMTcsNyArMTcsNyBAQCB0
cmFucyA9IGV2ZW50LnJlc3VsdAogRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KIGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCdhJykKIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdiJykKLXRyYW5zLm9uY29t
cGxldGUgPSBjcmVhdGVkCit0cmFucy5hZGRFdmVudExpc3RlbmVyKCdjb21wbGV0ZScsIGNyZWF0
ZWQsIHRydWUpCiAKIHRyYW5zID0gZGIudHJhbnNhY3Rpb24oWydhJ10pCiB0cmFucy5vYmplY3RT
dG9yZSgnYScpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFu
c2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFuZC1vYmplY3RzdG9yZS1jYWxscy5odG1sCmluZGV4IDk0
Yjk5M2UzNzM3YzEzNjU2NDliMjVkNjUxOTliMmIwZjdkNzZjODYuLjE0NGRmNGZiODE2ODEyZDE2
YTk3OTkyZjYxODIyNTdiOTkyMGFkYWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFuZC1vYmplY3RzdG9yZS1jYWxscy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFuZC1vYmplY3RzdG9yZS1j
YWxscy5odG1sCkBAIC00Myw3ICs0Myw3IEBAIGZ1bmN0aW9uIGNsZWFuZWQoKQogewogICAgIGV2
YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdhJykiKTsKICAgICBldmFsQW5kTG9nKCJk
Yi5jcmVhdGVPYmplY3RTdG9yZSgnYicpIik7Ci0gICAgZXZhbEFuZExvZygidHJhbnMub25jb21w
bGV0ZSA9IGNyZWF0ZWQiKTsKKyAgICBldmFsQW5kTG9nKCJ0cmFucy5hZGRFdmVudExpc3RlbmVy
KCdjb21wbGV0ZScsIGNyZWF0ZWQsIHRydWUpIik7CiAgICAgZGVidWcoIiIpOwogfQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1iYXNpY3Mu
aHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWJhc2ljcy5o
dG1sCmluZGV4IDg5OTVlNmQxM2E4M2FiZGYyMjk3ODRhOWQxMDY0ODVmNzM0NTFhNTMuLjk2MjYx
Mjk2MGFhMDJjZDc2Y2U1OTNiMjgzMjQ4NmFkNGU0ODUyODUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWJhc2ljcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWJhc2ljcy5odG1sCkBAIC01NSw3
ICs1NSw3IEBAIGZ1bmN0aW9uIGFkZFJlbW92ZUlEQk9iamVjdHMoKQogICAgIHZlcmlmeVN1Y2Nl
c3NFdmVudChldmVudCk7DQogICAgIHZhciB0cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZXZl
bnQucmVzdWx0Iik7DQogICAgIHNob3VsZEJlVHJ1ZSgidHJhbnMgIT09IG51bGwiKTsNCi0gICAg
dHJhbnMub25hYm9ydCA9IHRlc3RTZXRWZXJzaW9uQWJvcnQyOw0KKyAgICB0cmFucy5hZGRFdmVu
dExpc3RlbmVyKCdhYm9ydCcsIHRlc3RTZXRWZXJzaW9uQWJvcnQyLCB0cnVlKTsNCiAgICAgdHJh
bnMub25jb21wbGV0ZSA9IHVuZXhwZWN0ZWRDb21wbGV0ZUNhbGxiYWNrOw0KIA0KICAgICB2YXIg
c3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZUZh
aWwnLCBudWxsKSIpOw0KQEAgLTgwLDcgKzgwLDcgQEAgZnVuY3Rpb24gYWRkUmVtb3ZlQWRkSURC
T2JqZWN0cygpCiAgICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2ZW50KTsNCiAgICAgdmFyIHRyYW5z
ID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC5yZXN1bHQiKTsNCiAgICAgc2hvdWxkQmVUcnVl
KCJ0cmFucyAhPT0gbnVsbCIpOw0KLSAgICB0cmFucy5vbmFib3J0ID0gdGVzdFNldFZlcnNpb25B
Ym9ydDM7DQorICAgIHRyYW5zLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgdGVzdFNldFZlcnNp
b25BYm9ydDMsIGZhbHNlKTsNCiAgICAgdHJhbnMub25jb21wbGV0ZSA9IHVuZXhwZWN0ZWRDb21w
bGV0ZUNhbGxiYWNrOw0KIA0KICAgICB2YXIgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZUZhaWwnLCBudWxsKSIpOw0KQEAgLTIwOSw3ICsyMDks
NyBAQCBmdW5jdGlvbiBzZXRWZXJzaW9uU3VjY2VzcygpCiAgICAgd2luZG93LnRyYW5zID0gZXZh
bEFuZExvZygidHJhbnMgPSBldmVudC5yZXN1bHQiKTsNCiAgICAgc2hvdWxkQmVUcnVlKCJ0cmFu
cyAhPT0gbnVsbCIpOw0KICAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJh
Y2s7DQotICAgIHRyYW5zLm9uY29tcGxldGUgPSBjb21wbGV0ZUNhbGxiYWNrOw0KKyAgICB0cmFu
cy5hZGRFdmVudExpc3RlbmVyKCdjb21wbGV0ZScsIGNvbXBsZXRlQ2FsbGJhY2ssIGZhbHNlKTsN
CiAgICAgd2luZG93LmNvbXBsZXRlRXZlbnRGaXJlZCA9IGZhbHNlOw0KIA0KICAgICBkZWxldGVB
bGxPYmplY3RTdG9yZXMoZGIsIGNyZWF0ZU9iamVjdFN0b3JlQW5kU3RhcnRUcmFuc2FjdGlvbik7
DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24t
ZXZlbnQtcHJvcGFnYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvdHJhbnNhY3Rpb24tZXZlbnQtcHJvcGFnYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjlkMDRiMGEwNjk3NGE0OWNhYzU0YzQ5OWFhYTU0YWM0ZjYzNjFiMTUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1ldmVudC1w
cm9wYWdhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3OSBAQAorVGVzdCBldmVudCBwcm9w
b2dhdGlvbiBvbiBJREJUcmFuc2FjdGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK3dlYmtpdEluZGV4ZWREQi5vcGVuKCduYW1lJykKK1BBU1MgJ29uc3VjY2VzcycgaW4gcmVz
dWx0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCitQQVNTICdyZWFk
eVN0YXRlJyBpbiByZXN1bHQgaXMgdHJ1ZQorQW4gZXZlbnQgc2hvdWxkIGZpcmUgc2hvcnRseS4u
LgorCitkYiA9IGV2ZW50LnJlc3VsdAorZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKQorUEFT
UyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gcmVzdWx0
IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVlCitBbiBldmVudCBz
aG91bGQgZmlyZSBzaG9ydGx5Li4uCisKK3RyYW5zID0gZXZlbnQucmVzdWx0CitQQVNTIHRyYW5z
ICE9PSBudWxsIGlzIHRydWUKK3RyYW5zLm9uY29tcGxldGUgPSBzdGFydFRlc3QKK0RlbGV0ZWQg
YWxsIG9iamVjdCBzdG9yZXMuCitzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5h
bWUnLCBudWxsKQorc3RvcmUuYWRkKHt4OiAndmFsdWUnLCB5OiAnenp6J30sICdrZXknKQorVmVy
aWZpbmcgYWJvcnQKK3RyYW5zID0gZGIudHJhbnNhY3Rpb24oW10sIHdlYmtpdElEQlRyYW5zYWN0
aW9uLlJFQURfV1JJVEUpCit0cmFucy5vbmFib3J0ID0gYWJvcnRGaXJlZENhbGxiYWNrCit0cmFu
cy5vbmNvbXBsZXRlID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2sKK2RiLmFkZEV2ZW50TGlzdGVu
ZXIoJ2Fib3J0JywgZGJBYm9ydENhcHR1cmVDYWxsYmFjaywgdHJ1ZSkKK2RiLmFkZEV2ZW50TGlz
dGVuZXIoJ2Fib3J0JywgZGJBYm9ydEJ1YmJsZUNhbGxiYWNrLCBmYWxzZSkKK2RiLmFkZEV2ZW50
TGlzdGVuZXIoJ2NvbXBsZXRlJywgdW5leHBlY3RlZENvbXBsZXRlQ2FsbGJhY2ssIHRydWUpCitk
Yi5hZGRFdmVudExpc3RlbmVyKCdjb21wbGV0ZScsIHVuZXhwZWN0ZWRDb21wbGV0ZUNhbGxiYWNr
LCBmYWxzZSkKK3N0b3JlID0gdHJhbnMub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCitzdG9yZS5h
ZGQoe3g6ICd2YWx1ZScsIHk6ICd6enonfSwgJ2tleScpCisKK0luIElEQkRhdGFiYXNlIGFib3J0
IGNhcHR1cmUKK1BBU1MgZGJDYXB0dXJlRmlyZWQgaXMgZmFsc2UKK1BBU1MgYWJvcnRGaXJlZCBp
cyBmYWxzZQorUEFTUyBkYkJ1YmJsZUZpcmVkMSBpcyBmYWxzZQorCitJbiBhYm9ydCBoYW5kbGVy
CitQQVNTIGRiQ2FwdHVyZUZpcmVkIGlzIHRydWUKK1BBU1MgYWJvcnRGaXJlZCBpcyBmYWxzZQor
UEFTUyBkYkJ1YmJsZUZpcmVkMSBpcyBmYWxzZQorCitJbiBJREJEYXRhYmFzZSBlcnJvciBidWJi
bGUKK1BBU1MgZGJDYXB0dXJlRmlyZWQgaXMgdHJ1ZQorUEFTUyBhYm9ydEZpcmVkIGlzIHRydWUK
K1BBU1MgZGJCdWJibGVGaXJlZDEgaXMgZmFsc2UKKworVmVyaWZpbmcgc3VjY2Vzcy4KK3RyYW5z
ID0gZGIudHJhbnNhY3Rpb24oW10sIHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCit0
cmFucy5vbmNvbXBsZXRlID0gY29tcGxldGVGaXJlZENhbGxiYWNrCit0cmFucy5vbmFib3J0ID0g
dW5leHBlY3RlZEFib3J0Q2FsbGJhY2sKK2RiLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywg
ZGJBYm9ydENhcHR1cmVDYWxsYmFjaywgdHJ1ZSkKK2RiLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fi
b3J0JywgZGJBYm9ydEJ1YmJsZUNhbGxiYWNrLCBmYWxzZSkKK2RiLnJlbW92ZUV2ZW50TGlzdGVu
ZXIoJ2NvbXBsZXRlJywgdW5leHBlY3RlZENvbXBsZXRlQ2FsbGJhY2ssIHRydWUpCitkYi5yZW1v
dmVFdmVudExpc3RlbmVyKCdjb21wbGV0ZScsIHVuZXhwZWN0ZWRDb21wbGV0ZUNhbGxiYWNrLCBm
YWxzZSkKK2RiLmFkZEV2ZW50TGlzdGVuZXIoJ2NvbXBsZXRlJywgZGJDb21wbGV0ZUNhcHR1cmVD
YWxsYmFjaywgdHJ1ZSkKK2RiLmFkZEV2ZW50TGlzdGVuZXIoJ2NvbXBsZXRlJywgZGJDb21wbGV0
ZUJ1YmJsZUNhbGxiYWNrLCBmYWxzZSkKK2RiLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgdW5l
eHBlY3RlZEFib3J0Q2FsbGJhY2ssIHRydWUpCitkYi5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcs
IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrLCBmYWxzZSkKK3N0b3JlID0gdHJhbnMub2JqZWN0U3Rv
cmUoJ3N0b3JlTmFtZScpCitzdG9yZS5hZGQoe3g6ICd2YWx1ZScsIHk6ICd6enonfSwgJ2tleTIn
KQorCitJbiBJREJEYXRhYmFzZSBjb21wbGV0ZSBjYXB0dXJlCitQQVNTIGRiQ2FwdHVyZUZpcmVk
IGlzIGZhbHNlCitQQVNTIGNvbXBsZXRlRmlyZWQgaXMgZmFsc2UKK1BBU1MgZGJCdWJibGVGaXJl
ZDIgaXMgZmFsc2UKKworSW4gSURCUmVxdWVzdCBoYW5kbGVyCitQQVNTIGRiQ2FwdHVyZUZpcmVk
IGlzIHRydWUKK1BBU1MgY29tcGxldGVGaXJlZCBpcyBmYWxzZQorUEFTUyBkYkJ1YmJsZUZpcmVk
MiBpcyBmYWxzZQorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNh
Y3Rpb24tZXZlbnQtcHJvcGFnYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3RyYW5zYWN0aW9uLWV2ZW50LXByb3BhZ2F0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzMxNjQ2
YWIwZDNmMzIxNGQwYjhjNjQ0MjdhZWY5YzM0Y2RlMmM1NQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWV2ZW50LXByb3BhZ2F0aW9u
Lmh0bWwKQEAgLTAsMCArMSwxNTMgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUZXN0IGV2
ZW50IHByb3BvZ2F0aW9uIG9uIElEQlRyYW5zYWN0aW9uLiIpOworaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJ3ZWJraXRJ
bmRleGVkREIub3BlbignbmFtZScpIik7CisgICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7CisgICAg
cmVzdWx0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb247CisgICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gc2V0VmVyc2lvbigpCit7CisgICAg
ZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnJlc3VsdCIpOworCisgICAgcmVzdWx0ID0gZXZh
bEFuZExvZygiZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKSIpOworICAgIHZlcmlmeVJlc3Vs
dChyZXN1bHQpOworICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBkZWxldGVFeGlzdGluZzsKKyAgICBy
ZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBk
ZWxldGVFeGlzdGluZygpCit7CisgICAgd2luZG93LnRyYW5zID0gZXZhbEFuZExvZygidHJhbnMg
PSBldmVudC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZVRydWUoInRyYW5zICE9PSBudWxsIik7Cisg
ICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOworICAgIGV2YWxBbmRM
b2coInRyYW5zLm9uY29tcGxldGUgPSBzdGFydFRlc3QiKTsKKworICAgIGRlbGV0ZUFsbE9iamVj
dFN0b3JlcyhkYiwgY3JlYXRlT2JqZWN0U3RvcmUpOworfQorCitmdW5jdGlvbiBjcmVhdGVPYmpl
Y3RTdG9yZSgpCit7CisgICAgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCdzdG9yZU5hbWUnLCBudWxsKSIpOworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2co
InN0b3JlLmFkZCh7eDogJ3ZhbHVlJywgeTogJ3p6eid9LCAna2V5JykiKTsKKyAgICByZXN1bHQu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBzdGFydFRl
c3QoKQoreworICAgIGRlYnVnKCJWZXJpZmluZyBhYm9ydCIpOworICAgIHRyYW5zID0gZXZhbEFu
ZExvZygidHJhbnMgPSBkYi50cmFuc2FjdGlvbihbXSwgd2Via2l0SURCVHJhbnNhY3Rpb24uUkVB
RF9XUklURSkiKTsKKyAgICBldmFsQW5kTG9nKCJ0cmFucy5vbmFib3J0ID0gYWJvcnRGaXJlZENh
bGxiYWNrIik7CisgICAgZXZhbEFuZExvZygidHJhbnMub25jb21wbGV0ZSA9IHVuZXhwZWN0ZWRB
Ym9ydENhbGxiYWNrIik7CisgICAgZXZhbEFuZExvZygiZGIuYWRkRXZlbnRMaXN0ZW5lcignYWJv
cnQnLCBkYkFib3J0Q2FwdHVyZUNhbGxiYWNrLCB0cnVlKSIpOworICAgIGV2YWxBbmRMb2coImRi
LmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgZGJBYm9ydEJ1YmJsZUNhbGxiYWNrLCBmYWxzZSki
KTsKKyAgICBldmFsQW5kTG9nKCJkYi5hZGRFdmVudExpc3RlbmVyKCdjb21wbGV0ZScsIHVuZXhw
ZWN0ZWRDb21wbGV0ZUNhbGxiYWNrLCB0cnVlKSIpOworICAgIGV2YWxBbmRMb2coImRiLmFkZEV2
ZW50TGlzdGVuZXIoJ2NvbXBsZXRlJywgdW5leHBlY3RlZENvbXBsZXRlQ2FsbGJhY2ssIGZhbHNl
KSIpOworICAgIHN0b3JlID0gZXZhbEFuZExvZygic3RvcmUgPSB0cmFucy5vYmplY3RTdG9yZSgn
c3RvcmVOYW1lJykiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yZS5hZGQoe3g6ICd2YWx1ZScsIHk6
ICd6enonfSwgJ2tleScpIik7CisgICAgZGJDYXB0dXJlRmlyZWQgPSBmYWxzZTsKKyAgICBhYm9y
dEZpcmVkID0gZmFsc2U7CisgICAgZGJCdWJibGVGaXJlZDEgPSBmYWxzZTsKK30KKworZnVuY3Rp
b24gZGJBYm9ydENhcHR1cmVDYWxsYmFjaygpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVn
KCJJbiBJREJEYXRhYmFzZSBhYm9ydCBjYXB0dXJlIik7CisgICAgc2hvdWxkQmVGYWxzZSgiZGJD
YXB0dXJlRmlyZWQiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJhYm9ydEZpcmVkIik7CisgICAgc2hv
dWxkQmVGYWxzZSgiZGJCdWJibGVGaXJlZDEiKTsKKyAgICBkYkNhcHR1cmVGaXJlZCA9IHRydWU7
Cit9CisKK2Z1bmN0aW9uIGFib3J0RmlyZWRDYWxsYmFjaygpCit7CisgICAgZGVidWcoIiIpOwor
ICAgIGRlYnVnKCJJbiBhYm9ydCBoYW5kbGVyIik7CisgICAgc2hvdWxkQmVUcnVlKCJkYkNhcHR1
cmVGaXJlZCIpOworICAgIHNob3VsZEJlRmFsc2UoImFib3J0RmlyZWQiKTsKKyAgICBzaG91bGRC
ZUZhbHNlKCJkYkJ1YmJsZUZpcmVkMSIpOworICAgIGFib3J0RmlyZWQgPSB0cnVlOworfQorCitm
dW5jdGlvbiBkYkFib3J0QnViYmxlQ2FsbGJhY2soKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBk
ZWJ1ZygiSW4gSURCRGF0YWJhc2UgZXJyb3IgYnViYmxlIik7CisgICAgc2hvdWxkQmVUcnVlKCJk
YkNhcHR1cmVGaXJlZCIpOworICAgIHNob3VsZEJlVHJ1ZSgiYWJvcnRGaXJlZCIpOworICAgIHNo
b3VsZEJlRmFsc2UoImRiQnViYmxlRmlyZWQxIik7CisgICAgZGJCdWJibGVGaXJlZDEgPSB0cnVl
OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiVmVyaWZpbmcgc3VjY2Vzcy4iKTsKKyAgICB0
cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24oW10sIHdlYmtpdElEQlRy
YW5zYWN0aW9uLlJFQURfV1JJVEUpIik7CisgICAgZXZhbEFuZExvZygidHJhbnMub25jb21wbGV0
ZSA9IGNvbXBsZXRlRmlyZWRDYWxsYmFjayIpOworICAgIGV2YWxBbmRMb2coInRyYW5zLm9uYWJv
cnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjayIpOworICAgIGV2YWxBbmRMb2coImRiLnJlbW92
ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgZGJBYm9ydENhcHR1cmVDYWxsYmFjaywgdHJ1ZSkiKTsK
KyAgICBldmFsQW5kTG9nKCJkYi5yZW1vdmVFdmVudExpc3RlbmVyKCdhYm9ydCcsIGRiQWJvcnRC
dWJibGVDYWxsYmFjaywgZmFsc2UpIik7CisgICAgZXZhbEFuZExvZygiZGIucmVtb3ZlRXZlbnRM
aXN0ZW5lcignY29tcGxldGUnLCB1bmV4cGVjdGVkQ29tcGxldGVDYWxsYmFjaywgdHJ1ZSkiKTsK
KyAgICBldmFsQW5kTG9nKCJkYi5yZW1vdmVFdmVudExpc3RlbmVyKCdjb21wbGV0ZScsIHVuZXhw
ZWN0ZWRDb21wbGV0ZUNhbGxiYWNrLCBmYWxzZSkiKTsKKyAgICBldmFsQW5kTG9nKCJkYi5hZGRF
dmVudExpc3RlbmVyKCdjb21wbGV0ZScsIGRiQ29tcGxldGVDYXB0dXJlQ2FsbGJhY2ssIHRydWUp
Iik7CisgICAgZXZhbEFuZExvZygiZGIuYWRkRXZlbnRMaXN0ZW5lcignY29tcGxldGUnLCBkYkNv
bXBsZXRlQnViYmxlQ2FsbGJhY2ssIGZhbHNlKSIpOworICAgIGV2YWxBbmRMb2coImRiLmFkZEV2
ZW50TGlzdGVuZXIoJ2Fib3J0JywgdW5leHBlY3RlZEFib3J0Q2FsbGJhY2ssIHRydWUpIik7Cisg
ICAgZXZhbEFuZExvZygiZGIuYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCB1bmV4cGVjdGVkQWJv
cnRDYWxsYmFjaywgZmFsc2UpIik7CisgICAgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IHRy
YW5zLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOworICAgIGV2YWxBbmRMb2coInN0b3JlLmFk
ZCh7eDogJ3ZhbHVlJywgeTogJ3p6eid9LCAna2V5MicpIik7CisgICAgZGJDYXB0dXJlRmlyZWQg
PSBmYWxzZTsKKyAgICBjb21wbGV0ZUZpcmVkID0gZmFsc2U7CisgICAgZGJCdWJibGVGaXJlZDIg
PSBmYWxzZTsKK30KKworZnVuY3Rpb24gZGJDb21wbGV0ZUNhcHR1cmVDYWxsYmFjaygpCit7Cisg
ICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJJbiBJREJEYXRhYmFzZSBjb21wbGV0ZSBjYXB0dXJl
Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiZGJDYXB0dXJlRmlyZWQiKTsKKyAgICBzaG91bGRCZUZh
bHNlKCJjb21wbGV0ZUZpcmVkIik7CisgICAgc2hvdWxkQmVGYWxzZSgiZGJCdWJibGVGaXJlZDIi
KTsKKyAgICBkYkNhcHR1cmVGaXJlZCA9IHRydWU7Cit9CisKK2Z1bmN0aW9uIGNvbXBsZXRlRmly
ZWRDYWxsYmFjaygpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJJbiBJREJSZXF1ZXN0
IGhhbmRsZXIiKTsKKyAgICBzaG91bGRCZVRydWUoImRiQ2FwdHVyZUZpcmVkIik7CisgICAgc2hv
dWxkQmVGYWxzZSgiY29tcGxldGVGaXJlZCIpOworICAgIHNob3VsZEJlRmFsc2UoImRiQnViYmxl
RmlyZWQyIik7CisgICAgY29tcGxldGVGaXJlZCA9IHRydWU7CisgICAgZGVidWcoIiIpOworICAg
IGRvbmUoKTsKK30KKworZnVuY3Rpb24gZGJDb21wbGV0ZUJ1YmJsZUNhbGxiYWNrKCkKK3sKKyAg
ICBkZWJ1ZygiIik7CisgICAgZGVidWcoIkluIElEQkRhdGFiYXNlIGNvbXBsZXRlIGJ1YmJsZSIp
OworICAgIHRlc3RGYWlsZWQoIkNvbXBsZXRlIGJ1YmJsZSBjYWxsYmFjayBzaG91bGQgTk9UIGZp
cmUiKTsKKyAgICBkYkJ1YmJsZUZpcmVkMiA9IHRydWU7Cit9CisKK3Rlc3QoKTsKKwordmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDliZjVjMDkyNWU1NjNmZDA2MWNhZTlhOTE0MjQ0OWUyZWY1ZjY5MDkuLmQz
ZTdkOThlZmFiODY5OTFmMThiMDFmNzhmNmNiOWRhY2JmZmY3NTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAxMS0wMi0wNyAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFdmVu
dHMgc2hvdWxkIHByb3BhZ2F0ZSB0aHJvdWdoIElEQkRhdGFiYXNlIChmb3IgSURCUmVxdWVzdCBh
bmQgSURCVHJhbnNhY3Rpb24pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01Mzk3NQorCisgICAgICAgIFRoZSB0aGlyZCBjaGFuZ2UgaW4gdGhlIHNlcmll
cyBvZiBvdmVyaGF1bGluZyBJbmRleGVkREIncyBldmVudCBtb2RlbCB0byBtYXRjaAorICAgICAg
ICB0aGUgc3BlYyAoYXQgbGVhc3QgdGhlIHZlcnNpb24gaW4gb3VyIGhlYWRzIGFuZCBidWdzKS4K
KworICAgICAgICBUZXN0OiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1ldmVudC1wcm9w
YWdhdGlvbi5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VjhET01XcmFwcGVyOjpjb252ZXJ0RXZlbnRUYXJnZXRUb1Y4T2Jq
ZWN0KToKKyAgICAgICAgKiBkb20vRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnQ6
OmlzSURCQWJvcnRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudDo6aXNJREJDb21wbGV0
ZUV2ZW50KToKKyAgICAgICAgKiBkb20vRXZlbnQuaDoKKyAgICAgICAgKiBkb20vRXZlbnRUYXJn
ZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6OnRvSURCRGF0YWJhc2UpOgor
ICAgICAgICAqIGRvbS9FdmVudFRhcmdldC5oOgorICAgICAgICAqIHN0b3JhZ2UvSURCRGF0YWJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2U6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpJREJEYXRhYmFzZTo6SURCRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6
SURCRGF0YWJhc2U6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
SURCRGF0YWJhc2U6OmV2ZW50VGFyZ2V0RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRh
YmFzZTo6ZW5zdXJlRXZlbnRUYXJnZXREYXRhKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQkRhdGFi
YXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6dG9JREJEYXRhYmFzZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6cmVmRXZlbnRUYXJnZXQpOgorICAgICAgICAo
V2ViQ29yZTo6SURCRGF0YWJhc2U6OmRlcmVmRXZlbnRUYXJnZXQpOgorICAgICAgICAqIHN0b3Jh
Z2UvSURCRGF0YWJhc2UuaWRsOgorICAgICAgICAqIHN0b3JhZ2UvSURCUmVxdWVzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3MpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudCk6CisgICAgICAgICogc3RvcmFnZS9JREJUcmFu
c2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6YmFja2VuZCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6ZGIpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCVHJhbnNhY3Rpb246Om9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRy
YW5zYWN0aW9uOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlRyYW5zYWN0aW9uOjpkaXNwYXRjaEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5z
YWN0aW9uOjplbnF1ZXVlRXZlbnQpOgorICAgICAgICAqIHN0b3JhZ2UvSURCVHJhbnNhY3Rpb24u
aDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpkaXNwYXRjaEV2ZW50KToKKwog
MjAxMS0wMi0wNCAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBOYXRlIENoYXBpbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OERPTVdyYXBwZXIuY3BwCmluZGV4IGI1MWM1YTU1MWZiODc3NTMwZmEyOGJlOTk4YzA2M2UwMzll
NGMwMGYuLmI0MzkyNzQ3YWMwZTA0YjU3NTJjZTg0NmExOGY2N2Q5N2QwMGJkYjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcApAQCAtNTEsNiArNTEsNyBA
QAogI2luY2x1ZGUgIlY4RmlsZVdyaXRlci5oIgogI2luY2x1ZGUgIlY4SFRNTENvbGxlY3Rpb24u
aCIKICNpbmNsdWRlICJWOEhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIlY4SURCRGF0YWJhc2Uu
aCIKICNpbmNsdWRlICJWOElEQlJlcXVlc3QuaCIKICNpbmNsdWRlICJWOElEQlRyYW5zYWN0aW9u
LmgiCiAjaW5jbHVkZSAiVjhJc29sYXRlZENvbnRleHQuaCIKQEAgLTM4MSw2ICszODIsOCBAQCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhET01XcmFwcGVyOjpjb252ZXJ0RXZlbnRUYXJnZXRUb1Y4
T2JqZWN0KEV2ZW50VGFyZ2V0KiB0YQogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKKyAgICBpZiAoSURCRGF0YWJhc2UqIGlkYkRhdGFiYXNlID0gdGFyZ2V0LT50b0lEQkRh
dGFiYXNlKCkpCisgICAgICAgIHJldHVybiB0b1Y4KGlkYkRhdGFiYXNlKTsKICAgICBpZiAoSURC
UmVxdWVzdCogaWRiUmVxdWVzdCA9IHRhcmdldC0+dG9JREJSZXF1ZXN0KCkpCiAgICAgICAgIHJl
dHVybiB0b1Y4KGlkYlJlcXVlc3QpOwogICAgIGlmIChJREJUcmFuc2FjdGlvbiogaWRiVHJhbnNh
Y3Rpb24gPSB0YXJnZXQtPnRvSURCVHJhbnNhY3Rpb24oKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuY3BwCmluZGV4
IDBlMTFjNjk1Yjg0ZGI1YmUwZDg3YmM1ZGE3ZjY1NTUzMGEzNmQ2NTQuLmJkYzFjNTgwNzQ5MDQ0
MDIzMTY5OWU5Njc0NWFhZjIzNDkzYTk0YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcApAQCAtMTkzLDYg
KzE5MywxNiBAQCBib29sIEV2ZW50Ojppc1N0b3JhZ2VFdmVudCgpIGNvbnN0CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorYm9vbCBFdmVudDo6aXNJREJBYm9ydEV2ZW50
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZlbnQ6OmlzSURCQ29t
cGxldGVFdmVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIEV2ZW50
Ojppc0lEQkVycm9yRXZlbnQoKSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
LmgKaW5kZXggNDViODc5ZGE3ODgzNzkzNTliNmQ4OTRlYTY2NzRlMzllYzExY2JiOC4uODFmOWU2
YjI5MDhlMWJhODdmMjgzZmYxZjZmMTdlNTI4MDc2NDM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgKQEAgLTEy
Niw2ICsxMjYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBp
c1N0b3JhZ2VFdmVudCgpIGNvbnN0OwogI2VuZGlmCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCisgICAgICAgIHZpcnR1YWwgYm9vbCBpc0lEQkFib3J0RXZlbnQoKSBjb25zdDsKKyAgICAg
ICAgdmlydHVhbCBib29sIGlzSURCQ29tcGxldGVFdmVudCgpIGNvbnN0OwogICAgICAgICB2aXJ0
dWFsIGJvb2wgaXNJREJFcnJvckV2ZW50KCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBp
c0lEQlN1Y2Nlc3NFdmVudCgpIGNvbnN0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0
LmNwcAppbmRleCA1ZjJmOGE3MTZhODQwY2NlOTA1NDVlMzIxYzM4NDZmYjJmZTg5ODk4Li5lZDU5
OTVjZDBkMmNkOWI0NzVkNzU4NjNjM2FjNDk5ZGVhZmIwZmZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dFRhcmdldC5jcHAKQEAgLTE4MSw2ICsxODEsMTAgQEAgRmlsZVdyaXRlciogRXZlbnRUYXJnZXQ6
OnRvRmlsZVdyaXRlcigpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQor
SURCRGF0YWJhc2UqIEV2ZW50VGFyZ2V0Ojp0b0lEQkRhdGFiYXNlKCkKK3sKKyAgICByZXR1cm4g
MDsKK30KIElEQlJlcXVlc3QqIEV2ZW50VGFyZ2V0Ojp0b0lEQlJlcXVlc3QoKQogewogICAgIHJl
dHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAppbmRleCA4MWVlYjdmYzJkZjkxNjMwMzE2
ZWIzMjlhZGM0NzNkZDY4M2YwMGRlLi5hMDM4MDFiY2JkNTAwZTRkYmNlODk1MWNkNDc2YjRkM2Q3
MDhhOGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaApAQCAtNDksNiArNDksNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRXZlbnRTb3VyY2U7CiAgICAgY2xhc3MgRmlsZVJl
YWRlcjsKICAgICBjbGFzcyBGaWxlV3JpdGVyOworICAgIGNsYXNzIElEQkRhdGFiYXNlOwogICAg
IGNsYXNzIElEQlJlcXVlc3Q7CiAgICAgY2xhc3MgSURCVHJhbnNhY3Rpb247CiAgICAgY2xhc3Mg
SmF2YVNjcmlwdEF1ZGlvTm9kZTsKQEAgLTEzOCw2ICsxMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAgICAgICB2aXJ0
dWFsIElEQkRhdGFiYXNlKiB0b0lEQkRhdGFiYXNlKCk7CiAgICAgICAgIHZpcnR1YWwgSURCUmVx
dWVzdCogdG9JREJSZXF1ZXN0KCk7CiAgICAgICAgIHZpcnR1YWwgSURCVHJhbnNhY3Rpb24qIHRv
SURCVHJhbnNhY3Rpb24oKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9JREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNl
LmNwcAppbmRleCA2Y2EyZjQyZmJjOWM1Mjg2ZGVmNGJmMWNjYjBjODEzNmRjZmMwMWJjLi40MjIw
N2MzOGE1MWE0ZTE4YzRhZDk5NGE3YzEyNzAwM2FmOTBkODA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL0lEQkRhdGFiYXNlLmNwcApAQCAtNDEsOCArNDEsMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1JREJEYXRhYmFzZTo6SURCRGF0YWJhc2UoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJh
Y2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQpCi0gICAgOiBtX2JhY2tlbmQoYmFja2VuZCkKK1Bhc3NS
ZWZQdHI8SURCRGF0YWJhc2U+IElEQkRhdGFiYXNlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IGRh
dGFiYXNlKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCRGF0YWJhc2UoY29udGV4dCwg
ZGF0YWJhc2UpKTsKK30KKworSURCRGF0YWJhc2U6OklEQkRhdGFiYXNlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNl
PiBiYWNrZW5kKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCisgICAgLCBt
X2JhY2tlbmQoYmFja2VuZCkKICAgICAsIG1fbm9OZXdUcmFuc2FjdGlvbnMoZmFsc2UpCiB7CiAg
ICAgLy8gV2UgcGFzcyBhIHJlZmVyZW5jZSBvZiB0aGlzIG9iamVjdCBiZWZvcmUgaXQgY2FuIGJl
IGFkb3B0ZWQuCkBAIC0xMzEsNiArMTM3LDIxIEBAIHZvaWQgSURCRGF0YWJhc2U6OmNsb3NlKCkK
ICAgICBtX25vTmV3VHJhbnNhY3Rpb25zID0gdHJ1ZTsKIH0KIAorU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogSURCRGF0YWJhc2U6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAoreworICAg
IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKK30KKwor
RXZlbnRUYXJnZXREYXRhKiBJREJEYXRhYmFzZTo6ZXZlbnRUYXJnZXREYXRhKCkKK3sKKyAgICBy
ZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOworfQorCitFdmVudFRhcmdldERhdGEqIElEQkRhdGFi
YXNlOjplbnN1cmVFdmVudFRhcmdldERhdGEoKQoreworICAgIHJldHVybiAmbV9ldmVudFRhcmdl
dERhdGE7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJE
YXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZS5oCmluZGV4IGQ4
MmVhZDNlNDM5MTJlOWE5NDNkZDE3Nzc5MmMxYzA4MzQzZDNjMGUuLjk1MWE4NmQ4YWI2ZWM2NTkx
NzJhYjNjYTliOGNhNzcyMzdiZmQ3MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvSURCRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNl
LmgKQEAgLTI2LDcgKzI2LDkgQEAKICNpZm5kZWYgSURCRGF0YWJhc2VfaAogI2RlZmluZSBJREJE
YXRhYmFzZV9oCiAKKyNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJET01T
dHJpbmdMaXN0LmgiCisjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJFeGNlcHRp
b25Db2RlLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5j
bHVkZSAiSURCT2JqZWN0U3RvcmUuaCIKQEAgLTQyLDE0ICs0NCwxMCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIElEQkFueTsKIGNsYXNzIElEQlJlcXVlc3Q7Ci1jbGFzcyBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OwogCi1jbGFzcyBJREJEYXRhYmFzZSA6IHB1YmxpYyBSZWZDb3VudGVk
PElEQkRhdGFiYXNlPiB7CitjbGFzcyBJREJEYXRhYmFzZSA6IHB1YmxpYyBSZWZDb3VudGVkPElE
QkRhdGFiYXNlPiwgcHVibGljIEV2ZW50VGFyZ2V0LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJEYXRhYmFzZT4gY3JlYXRlKFBhc3NS
ZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBkYXRhYmFzZSkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCRGF0YWJhc2UoZGF0YWJhc2UpKTsKLSAgICB9Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8SURCRGF0YWJhc2U+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+KTsKICAgICB+
SURCRGF0YWJhc2UoKTsKIAogICAgIHZvaWQgc2V0U2V0VmVyc2lvblRyYW5zYWN0aW9uKElEQlRy
YW5zYWN0aW9uKik7CkBAIC03MCwxMyArNjgsMzEgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8
SURCUmVxdWVzdD4gc2V0VmVyc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3Ry
aW5nJiB2ZXJzaW9uLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBjbG9zZSgpOwogCisgICAg
REVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihhYm9ydCk7CisgICAgREVGSU5FX0FUVFJJ
QlVURV9FVkVOVF9MSVNURU5FUihlcnJvcik7CisKKyAgICAvLyBFdmVudFRhcmdldAorICAgIHZp
cnR1YWwgSURCRGF0YWJhc2UqIHRvSURCRGF0YWJhc2UoKSB7IHJldHVybiB0aGlzOyB9CisgICAg
dmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkg
Y29uc3Q7CisKKyAgICB1c2luZyBSZWZDb3VudGVkPElEQkRhdGFiYXNlPjo6cmVmOworICAgIHVz
aW5nIFJlZkNvdW50ZWQ8SURCRGF0YWJhc2U+OjpkZXJlZjsKKwogcHJpdmF0ZToKLSAgICBJREJE
YXRhYmFzZShQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4pOworICAgIElE
QkRhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNl
QmFja2VuZEludGVyZmFjZT4pOworCisgICAgLy8gRXZlbnRUYXJnZXQKKyAgICB2aXJ0dWFsIHZv
aWQgcmVmRXZlbnRUYXJnZXQoKSB7IHJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZl
bnRUYXJnZXQoKSB7IGRlcmVmKCk7IH0KKyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZXZl
bnRUYXJnZXREYXRhKCk7CisgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGVuc3VyZUV2ZW50
VGFyZ2V0RGF0YSgpOwogCiAgICAgUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4g
bV9iYWNrZW5kOwogICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4gbV9zZXRWZXJzaW9uVHJhbnNh
Y3Rpb247CiAKICAgICBib29sIG1fbm9OZXdUcmFuc2FjdGlvbnM7CisKKyAgICBFdmVudFRhcmdl
dERhdGEgbV9ldmVudFRhcmdldERhdGE7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2UuaWRsCmluZGV4IDk0OTZjZTBiNTAzNjhiZDg0
YWNhMTI4ZjY1Zjk4OTY3MzIzNzYyM2EuLjM5MjIxNDQ0OWVlZjk3MTkyMDQ4YzljMzQ4NzE4OWEy
NGIyMzFhYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2Uu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2UuaWRsCkBAIC0yNiwx
MiArMjYsMTYgQEAKIG1vZHVsZSBzdG9yYWdlIHsKIAogICAgIGludGVyZmFjZSBbCi0gICAgICAg
IENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UKKyAgICAgICAgQ29uZGl0aW9uYWw9SU5ERVhF
RF9EQVRBQkFTRSwKKyAgICAgICAgRXZlbnRUYXJnZXQKICAgICBdIElEQkRhdGFiYXNlIHsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZlcnNpb247CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmdMaXN0IG9iamVjdFN0b3JlTmFtZXM7CiAKKyAgICAgICAgYXR0cmlidXRlIEV2
ZW50TGlzdGVuZXIgb25hYm9ydDsKKyAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25l
cnJvcjsKKwogICAgICAgICBJREJPYmplY3RTdG9yZSBjcmVhdGVPYmplY3RTdG9yZShpbiBET01T
dHJpbmcgbmFtZSwgaW4gW09wdGlvbmFsXSBPcHRpb25zT2JqZWN0IG9wdGlvbnMpCiAgICAgICAg
ICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBkZWxldGVP
YmplY3RTdG9yZShpbiBET01TdHJpbmcgbmFtZSkKQEAgLTQxLDYgKzQ1LDE2IEBAIG1vZHVsZSBz
dG9yYWdlIHsKICAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlRy
YW5zYWN0aW9uIHRyYW5zYWN0aW9uKGluIFtPcHRpb25hbF0gRE9NU3RyaW5nTGlzdCBzdG9yZU5h
bWVzLCBpbiBbT3B0aW9uYWxdIHVuc2lnbmVkIHNob3J0IG1vZGUpCiAgICAgICAgICAgICByYWlz
ZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBjbG9zZSgpOworCisgICAg
ICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQorICAgICAgICB2b2lkIGFkZEV2ZW50TGlzdGVu
ZXIoaW4gRE9NU3RyaW5nIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBF
dmVudExpc3RlbmVyIGxpc3RlbmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
Ym9vbGVhbiB1c2VDYXB0dXJlKTsKKyAgICAgICAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKGlu
IERPTVN0cmluZyB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZl
bnRMaXN0ZW5lciBsaXN0ZW5lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChpbiBF
dmVudCBldnQpIAorICAgICAgICAgICAgcmFpc2VzKEV2ZW50RXhjZXB0aW9uKTsKICAgICB9Owog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmNwcAppbmRleCBjOWY5YWVmYTk3YTE1
M2YxNjFmMGY1NTQ5MTIxZTQ4ZTFkYjM1ODEyLi5iODNkM2ZhNzQzMWE4MmFhZWUxYWVkMTE4ZmZi
NjRlYzcyZGZjNmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5jcHAKQEAgLTkx
LDcgKzkxLDcgQEAgdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJz
b3JCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kKQogCiB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2Vz
cyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCkKIHsKLSAg
ICBlbnF1ZXVlRXZlbnQoSURCU3VjY2Vzc0V2ZW50OjpjcmVhdGUobV9zb3VyY2UsIElEQkFueTo6
Y3JlYXRlKElEQkRhdGFiYXNlOjpjcmVhdGUoYmFja2VuZCkpKSk7CisgICAgZW5xdWV1ZUV2ZW50
KElEQlN1Y2Nlc3NFdmVudDo6Y3JlYXRlKG1fc291cmNlLCBJREJBbnk6OmNyZWF0ZShJREJEYXRh
YmFzZTo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgYmFja2VuZCkpKSk7CiB9CiAK
IHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW50
ZXJmYWNlPiBiYWNrZW5kKQpAQCAtMTM4LDE0ICsxMzgsMTkgQEAgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogSURCUmVxdWVzdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0CiAKIGJvb2wg
SURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKIHsKKyAg
ICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBBU1NFUlQoZXZlbnQtPnRh
cmdldCgpID09IHRoaXMpOwogICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPCBET05FKTsKICAgICBt
X3JlYWR5U3RhdGUgPSBET05FOwogCiAgICAgVmVjdG9yPFJlZlB0cjxFdmVudFRhcmdldD4gPiB0
YXJnZXRzOwogICAgIHRhcmdldHMuYXBwZW5kKHRoaXMpOwotICAgIEFTU0VSVChldmVudC0+dGFy
Z2V0KCkgPT0gdGhpcyk7Ci0gICAgaWYgKG1fdHJhbnNhY3Rpb24pCisgICAgaWYgKG1fdHJhbnNh
Y3Rpb24pIHsKICAgICAgICAgdGFyZ2V0cy5hcHBlbmQobV90cmFuc2FjdGlvbik7CisgICAgICAg
IC8vIElmIHRoZXJlIGV2ZXIgYXJlIGV2ZW50cyB0aGF0IGFyZSBhc3NvY2lhdGVkIHdpdGggYSBk
YXRhYmFzZSBidXQgbm90IGhhdmUgYQorICAgICAgICAvLyB0cmFuc2FjdGlvbiwgdGhlbiB0aGlz
IHdpbGwgbm90IHdvcmsuCisgICAgICAgIHRhcmdldHMuYXBwZW5kKG1fdHJhbnNhY3Rpb24tPmRi
KCkpOworICAgIH0KIAogICAgIEFTU0VSVChldmVudC0+aXNJREJFcnJvckV2ZW50KCkgfHwgZXZl
bnQtPmlzSURCU3VjY2Vzc0V2ZW50KCkpOwogICAgIGJvb2wgZG9udFByZXZlbnREZWZhdWx0ID0g
c3RhdGljX2Nhc3Q8SURCRXZlbnQqPihldmVudC5nZXQoKSktPmRpc3BhdGNoKHRhcmdldHMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJUcmFuc2FjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5zYWN0aW9uLmNwcAppbmRleCA5ZTg5YWFiZGEy
MTViMTQyNmQ5MjY1M2UxMGM0YzAxOGQ2NDVjMWQwLi4yNmFmMjE3M2M0OTAzYmU0YTNiZDY2MjQw
OTc1ZDkzNDgwZjhkZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlRy
YW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5zYWN0aW9u
LmNwcApAQCAtNjIsMTkgKzYyLDIzIEBAIElEQlRyYW5zYWN0aW9uOjp+SURCVHJhbnNhY3Rpb24o
KQogewogfQogCitJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIElEQlRyYW5zYWN0aW9u
OjpiYWNrZW5kKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9iYWNrZW5kLmdldCgpOworfQorCiB1
bnNpZ25lZCBzaG9ydCBJREJUcmFuc2FjdGlvbjo6bW9kZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fbW9kZTsKIH0KIAotSURCRGF0YWJhc2UqIElEQlRyYW5zYWN0aW9uOjpkYigpCitJREJEYXRh
YmFzZSogSURCVHJhbnNhY3Rpb246OmRiKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9kYXRhYmFz
ZS5nZXQoKTsKIH0KIAogUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4gSURCVHJhbnNhY3Rpb246
Om9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0g
ICAgLy8gRklYTUU6IEl0J2QgYmUgYmV0dGVyIChiZWNhdXNlIGl0J3MgbW9yZSBkZXRlcm1pbmlz
dGljKSBpZiB3ZSBkaWRuJ3Qgc3RhcnQgdGhyb3dpbmcgdGhpcyB1bnRpbCB0aGUgY29tcGxldGUg
b3IgYWJvcnQgZXZlbnQgZmlyZXMuCiAgICAgaWYgKG1fZmluaXNoZWQpIHsKICAgICAgICAgZWMg
PSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6Tk9UX0FMTE9XRURfRVJSOwogICAgICAgICByZXR1cm4g
MDsKQEAgLTk1LDExICs5OSw2IEBAIHZvaWQgSURCVHJhbnNhY3Rpb246OmFib3J0KCkKICAgICAg
ICAgbV9iYWNrZW5kLT5hYm9ydCgpOwogfQogCi1TY3JpcHRFeGVjdXRpb25Db250ZXh0KiBJREJU
cmFuc2FjdGlvbjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwotfQotCiB2b2lkIElE
QlRyYW5zYWN0aW9uOjpvbkFib3J0KCkKIHsKICAgICBlbnF1ZXVlRXZlbnQoSURCQWJvcnRFdmVu
dDo6Y3JlYXRlKElEQkFueTo6Y3JlYXRlKHRoaXMpKSk7CkBAIC0xMTAsNiArMTA5LDI2IEBAIHZv
aWQgSURCVHJhbnNhY3Rpb246Om9uQ29tcGxldGUoKQogICAgIGVucXVldWVFdmVudChJREJDb21w
bGV0ZUV2ZW50OjpjcmVhdGUoSURCQW55OjpjcmVhdGUodGhpcykpKTsKIH0KIAorU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogSURCVHJhbnNhY3Rpb246OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBj
b25zdAoreworICAgIHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKTsKK30KKworYm9vbCBJREJUcmFuc2FjdGlvbjo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRy
PEV2ZW50PiBldmVudCkKK3sKKyAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsK
KyAgICBBU1NFUlQoZXZlbnQtPnRhcmdldCgpID09IHRoaXMpOworICAgIEFTU0VSVCghbV9maW5p
c2hlZCk7CisgICAgbV9maW5pc2hlZCA9IHRydWU7CisKKyAgICBWZWN0b3I8UmVmUHRyPEV2ZW50
VGFyZ2V0PiA+IHRhcmdldHM7CisgICAgdGFyZ2V0cy5hcHBlbmQodGhpcyk7CisgICAgdGFyZ2V0
cy5hcHBlbmQoZGIoKSk7CisKKyAgICBBU1NFUlQoZXZlbnQtPmlzSURCQWJvcnRFdmVudCgpIHx8
IGV2ZW50LT5pc0lEQkNvbXBsZXRlRXZlbnQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PElE
QkV2ZW50Kj4oZXZlbnQuZ2V0KCkpLT5kaXNwYXRjaCh0YXJnZXRzKTsKK30KKwogYm9vbCBJREJU
cmFuc2FjdGlvbjo6Y2FuU3VzcGVuZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuICFtX2JhY2tlbmQ7
CkBAIC0xMzEsOSArMTUwLDYgQEAgdm9pZCBJREJUcmFuc2FjdGlvbjo6ZW5xdWV1ZUV2ZW50KFBh
c3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQogICAgIGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQoIW1fZmluaXNoZWQpOwotICAgIG1fZmlu
aXNoZWQgPSB0cnVlOwotCiAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNE
b2N1bWVudCgpKTsKICAgICBFdmVudFF1ZXVlKiBldmVudFF1ZXVlID0gc3RhdGljX2Nhc3Q8RG9j
dW1lbnQqPihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpLT5ldmVudFF1ZXVlKCk7CiAgICAgZXZl
bnQtPnNldFRhcmdldCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
SURCVHJhbnNhY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCVHJhbnNhY3Rpb24u
aAppbmRleCAzOGRiM2I2ZWQwZDc0MDcxYTU4YzBjODdjZGQ5YTg5ODlmNDZhODA3Li42NjhmZDk2
NzdhMjA4MDc1Y2VmOWRjMzkwYTJkMmU2MWU1YWRkOWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0lEQlRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9JREJUcmFuc2FjdGlvbi5oCkBAIC01MywxMCArNTMsMTAgQEAgcHVibGljOgogICAgICAgICBW
RVJTSU9OX0NIQU5HRSA9IDIKICAgICB9OwogCi0gICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlKiBiYWNrZW5kKCkgY29uc3QgeyByZXR1cm4gbV9iYWNrZW5kLmdldCgpOyB9CisgICAg
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiBiYWNrZW5kKCkgY29uc3Q7CiAKICAgICB1
bnNpZ25lZCBzaG9ydCBtb2RlKCkgY29uc3Q7Ci0gICAgSURCRGF0YWJhc2UqIGRiKCk7CisgICAg
SURCRGF0YWJhc2UqIGRiKCkgY29uc3Q7CiAgICAgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4g
b2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9p
ZCBhYm9ydCgpOwogCkBAIC03MSw2ICs3MSw4IEBAIHB1YmxpYzoKICAgICAvLyBFdmVudFRhcmdl
dAogICAgIHZpcnR1YWwgSURCVHJhbnNhY3Rpb24qIHRvSURCVHJhbnNhY3Rpb24oKSB7IHJldHVy
biB0aGlzOyB9CiAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGRpc3BhdGNoRXZlbnQoUGFz
c1JlZlB0cjxFdmVudD4pOworICAgIGJvb2wgZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50
PiBldmVudCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIEV2ZW50VGFyZ2V0OjpkaXNwYXRj
aEV2ZW50KGV2ZW50LCBlYyk7IH0KIAogICAgIC8vIEFjdGl2ZURPTU9iamVjdAogICAgIHZpcnR1
YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81708</attachid>
            <date>2011-02-08 15:47:58 -0800</date>
            <delta_ts>2011-02-08 16:05:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53975-20110208154757.patch</filename>
            <type>text/plain</type>
            <size>40240</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzNDgwM2EzMDc2ZGNmZTcwMDk2OGQ2MDYxMGMyYjMwYTM3OGEyZWZiLi40NDM5MjQy
YWIzMGM2MzBiOTVlMTBiYzA1ZTIzY2RhMDRiY2U5ODhiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAK
KzIwMTEtMDItMDcgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXZlbnRzIHNob3VsZCBw
cm9wYWdhdGUgdGhyb3VnaCBJREJEYXRhYmFzZSAoZm9yIElEQlJlcXVlc3QgYW5kIElEQlRyYW5z
YWN0aW9uKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTM5NzUKKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy5o
dG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtZXZlbnQtcHJvcGFnYXRp
b24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtZXZl
bnQtcHJvcGFnYXRpb24uaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2Fj
dGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFuZC1vYmplY3RzdG9yZS1jYWxscy5odG1sOgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWJhc2ljcy5odG1sOgorICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWV2ZW50LXByb3BhZ2F0aW9uLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24t
ZXZlbnQtcHJvcGFnYXRpb24uaHRtbDogQWRkZWQuCisKIDIwMTEtMDItMDQgIEplcmVteSBPcmxv
dyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTmF0ZSBDaGFw
aW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9y
ZS1iYXNpY3MuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3Jl
LWJhc2ljcy5odG1sCmluZGV4IGRlZWM3YTMxNjBjNGIwYzA4MDI1NGExMDlmNjZmZjk3ZjEyZDMx
NDguLjQ2Yjc3MWUwM2VjMmFiZmM3ZmQ3OGI5MGUyOGNjMDMzZDQ0Zjg1ODggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy5odG1s
CkBAIC0xNzksNyArMTc5LDcgQEAgZnVuY3Rpb24gYWRkU3VjY2VzcygpCiAgICAgcmVzdWx0ID0g
ZXZhbEFuZExvZygiZXZlbnQuc291cmNlLmFkZCh7eDogJ2Zvbyd9LCAnenp6JykiKTsKICAgICB2
ZXJpZnlSZXN1bHQocmVzdWx0KTsKICAgICByZXN1bHQub25zdWNjZXNzID0gdW5leHBlY3RlZFN1
Y2Nlc3NDYWxsYmFjazsKLSAgICByZXN1bHQub25lcnJvciA9IGFkZEFnYWluRmFpbHVyZTsKKyAg
ICByZXN1bHQuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBhZGRBZ2FpbkZhaWx1cmUsIGZhbHNl
KTsKIH0KIAogZnVuY3Rpb24gYWRkQWdhaW5GYWlsdXJlKCkKQEAgLTE5OCw3ICsxOTgsNyBAQCBm
dW5jdGlvbiBhZGRBZ2FpbkZhaWx1cmUoKQogICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coInN0b3Jl
LmFkZCh7eDogJ290aGVydmFsdWUnfSwgbnVsbCkiKTsKICAgICB2ZXJpZnlSZXN1bHQocmVzdWx0
KTsKICAgICByZXN1bHQub25zdWNjZXNzID0gdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFjazsKLSAg
ICByZXN1bHQub25lcnJvciA9IGFkZFdpdGhOdWxsS2V5RmFpbHVyZTsKKyAgICByZXN1bHQuYWRk
RXZlbnRMaXN0ZW5lcignZXJyb3InLCBhZGRXaXRoTnVsbEtleUZhaWx1cmUsIHRydWUpOwogfQog
CiBmdW5jdGlvbiBhZGRXaXRoTnVsbEtleUZhaWx1cmUoKQpAQCAtMjMzLDcgKzIzMyw3IEBAIGZ1
bmN0aW9uIGFkZFdpdGhOdWxsSW5kZXhGYWlsdXJlKCkKIAogICAgIHJlc3VsdCA9IGV2YWxBbmRM
b2coInN0b3JlLmdldCgna2V5JykiKTsKICAgICB2ZXJpZnlSZXN1bHQocmVzdWx0KTsKLSAgICBy
ZXN1bHQub25zdWNjZXNzID0gZ2V0U3VjY2VzczsKKyAgICByZXN1bHQuYWRkRXZlbnRMaXN0ZW5l
cignc3VjY2VzcycsIGdldFN1Y2Nlc3MsIHRydWUpOwogICAgIHJlc3VsdC5vbmVycm9yID0gdW5l
eHBlY3RlZEVycm9yQ2FsbGJhY2s7CiB9CiAKQEAgLTI0NSw3ICsyNDUsNyBAQCBmdW5jdGlvbiBn
ZXRTdWNjZXNzKCkKIAogICAgIHZhciBzdG9yZSA9IGV2YWxBbmRMb2coInN0b3JlID0gZXZlbnQu
c291cmNlIik7CiAgICAgcmVzdWx0ID0gZXZhbEFuZExvZygic3RvcmUuZ2V0KHRlc3REYXRlKSIp
OwotICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBnZXRTdWNjZXNzRGF0ZUtleTsKKyAgICByZXN1bHQu
YWRkRXZlbnRMaXN0ZW5lcignc3VjY2VzcycsIGdldFN1Y2Nlc3NEYXRlS2V5LCBmYWxzZSk7CiAg
ICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKIH0KIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdh
dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXF1ZXN0
LWV2ZW50LXByb3BhZ2F0aW9uLWV4cGVjdGVkLnR4dAppbmRleCBhMWE1Y2QyMGY4NDRlZTdiOTFl
MGFlZjk4OTk0ZjU1ZDI4NDgxOWIxLi5kZWRhNmE3MDdiZTg0NjIxZTc4MDIxYzZiZDY1M2QwNWRm
ZDRlMjA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXF1ZXN0
LWV2ZW50LXByb3BhZ2F0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXF1ZXN0LWV2ZW50LXByb3BhZ2F0aW9uLWV4cGVjdGVkLnR4dApAQCAtNjIs
MjggKzYyLDU2IEBAIHRyYW5zLm9uYWJvcnQgPSB0cmFuc2FjdGlvbkFib3J0ZWQyCiB0cmFucy5v
bmNvbXBsZXRlID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2sKIHRyYW5zLmFkZEV2ZW50TGlzdGVu
ZXIoJ2Vycm9yJywgZXJyb3JDYXB0dXJlQ2FsbGJhY2ssIHRydWUpCiB0cmFucy5hZGRFdmVudExp
c3RlbmVyKCdlcnJvcicsIGVycm9yQnViYmxlQ2FsbGJhY2ssIGZhbHNlKQordHJhbnMuYWRkRXZl
bnRMaXN0ZW5lcignc3VjY2VzcycsIHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2ssIHRydWUpCit0
cmFucy5hZGRFdmVudExpc3RlbmVyKCdzdWNjZXNzJywgdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFj
aywgZmFsc2UpCitkYi5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGRiRXJyb3JDYXB0dXJlQ2Fs
bGJhY2ssIHRydWUpCitkYi5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGRiRXJyb3JCdWJibGVD
YWxsYmFjaywgZmFsc2UpCitkYi5hZGRFdmVudExpc3RlbmVyKCdzdWNjZXNzJywgdW5leHBlY3Rl
ZFN1Y2Nlc3NDYWxsYmFjaywgdHJ1ZSkKK2RiLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Y2Nlc3MnLCB1
bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrLCBmYWxzZSkKIHN0b3JlID0gdHJhbnMub2JqZWN0U3Rv
cmUoJ3N0b3JlTmFtZScpCiBzdG9yZS5hZGQoe3g6ICd2YWx1ZScsIHk6ICd6enonfSwgJ2tleScp
CiAKK0luIElEQkRhdGFiYXNlIGVycm9yIGNhcHR1cmUKK1BBU1MgZGJDYXB0dXJlRmlyZWQgaXMg
ZmFsc2UKK1BBU1MgY2FwdHVyZUZpcmVkIGlzIGZhbHNlCitQQVNTIHJlcXVlc3RGaXJlZCBpcyBm
YWxzZQorUEFTUyBidWJibGVGaXJlZCBpcyBmYWxzZQorUEFTUyBkYkJ1YmJsZUZpcmVkIGlzIGZh
bHNlCisKIEluIElEQlRyYW5zYWN0aW9uIGVycm9yIGNhcHR1cmUKK1BBU1MgZGJDYXB0dXJlRmly
ZWQgaXMgdHJ1ZQogUEFTUyBjYXB0dXJlRmlyZWQgaXMgZmFsc2UKIFBBU1MgcmVxdWVzdEZpcmVk
IGlzIGZhbHNlCiBQQVNTIGJ1YmJsZUZpcmVkIGlzIGZhbHNlCitQQVNTIGRiQnViYmxlRmlyZWQg
aXMgZmFsc2UKIAogSW4gSURCUmVxdWVzdCBoYW5kbGVyCitQQVNTIGRiQ2FwdHVyZUZpcmVkIGlz
IHRydWUKIFBBU1MgY2FwdHVyZUZpcmVkIGlzIHRydWUKIFBBU1MgcmVxdWVzdEZpcmVkIGlzIGZh
bHNlCiBQQVNTIGJ1YmJsZUZpcmVkIGlzIGZhbHNlCitQQVNTIGRiQnViYmxlRmlyZWQgaXMgZmFs
c2UKIAogSW4gSURCVHJhbnNhY3Rpb24gZXJyb3IgYnViYmxlCitQQVNTIGRiQ2FwdHVyZUZpcmVk
IGlzIHRydWUKIFBBU1MgY2FwdHVyZUZpcmVkIGlzIHRydWUKIFBBU1MgcmVxdWVzdEZpcmVkIGlz
IHRydWUKIFBBU1MgYnViYmxlRmlyZWQgaXMgZmFsc2UKK1BBU1MgZGJCdWJibGVGaXJlZCBpcyBm
YWxzZQorCitJbiBJREJEYXRhYmFzZSBlcnJvciBidWJibGUKK1BBU1MgZGJDYXB0dXJlRmlyZWQg
aXMgdHJ1ZQorUEFTUyBjYXB0dXJlRmlyZWQgaXMgdHJ1ZQorUEFTUyByZXF1ZXN0RmlyZWQgaXMg
dHJ1ZQorUEFTUyBidWJibGVGaXJlZCBpcyB0cnVlCitQQVNTIGRiQnViYmxlRmlyZWQgaXMgZmFs
c2UKIAogVHJhbnNhY3Rpb24gYWJvcnRlZAorUEFTUyBkYkNhcHR1cmVGaXJlZCBpcyB0cnVlCiBQ
QVNTIGNhcHR1cmVGaXJlZCBpcyB0cnVlCiBQQVNTIHJlcXVlc3RGaXJlZCBpcyB0cnVlCiBQQVNT
IGJ1YmJsZUZpcmVkIGlzIHRydWUKK1BBU1MgZGJCdWJibGVGaXJlZCBpcyB0cnVlCiAKIFZlcmlm
aW5nIHN1Y2Nlc3MuCiB0cmFucyA9IGRiLnRyYW5zYWN0aW9uKFtdLCB3ZWJraXRJREJUcmFuc2Fj
dGlvbi5SRUFEX1dSSVRFKQpAQCAtOTEsMjMgKzExOSw0NiBAQCB0cmFucy5vbmNvbXBsZXRlID0g
dHJhbnNhY3Rpb25Db21wbGV0ZQogdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxi
YWNrCiB0cmFucy5hZGRFdmVudExpc3RlbmVyKCdzdWNjZXNzJywgc3VjY2Vzc0NhcHR1cmVDYWxs
YmFjaywgdHJ1ZSkKIHRyYW5zLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Y2Nlc3MnLCBzdWNjZXNzQnVi
YmxlQ2FsbGJhY2ssIGZhbHNlKQordHJhbnMuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjaywgdHJ1ZSkKK3RyYW5zLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9y
JywgdW5leHBlY3RlZEVycm9yQ2FsbGJhY2ssIGZhbHNlKQorZGIucmVtb3ZlRXZlbnRMaXN0ZW5l
cignZXJyb3InLCBkYkVycm9yQ2FwdHVyZUNhbGxiYWNrLCB0cnVlKQorZGIucmVtb3ZlRXZlbnRM
aXN0ZW5lcignZXJyb3InLCBkYkVycm9yQnViYmxlQ2FsbGJhY2ssIGZhbHNlKQorZGIucmVtb3Zl
RXZlbnRMaXN0ZW5lcignc3VjY2VzcycsIHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2ssIHRydWUp
CitkYi5yZW1vdmVFdmVudExpc3RlbmVyKCdzdWNjZXNzJywgdW5leHBlY3RlZFN1Y2Nlc3NDYWxs
YmFjaywgZmFsc2UpCitkYi5hZGRFdmVudExpc3RlbmVyKCdzdWNjZXNzJywgZGJTdWNjZXNzQ2Fw
dHVyZUNhbGxiYWNrLCB0cnVlKQorZGIuYWRkRXZlbnRMaXN0ZW5lcignc3VjY2VzcycsIGRiU3Vj
Y2Vzc0J1YmJsZUNhbGxiYWNrLCBmYWxzZSkKK2RiLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywg
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2ssIHRydWUpCitkYi5hZGRFdmVudExpc3RlbmVyKCdlcnJv
cicsIHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrLCBmYWxzZSkKIHN0b3JlID0gdHJhbnMub2JqZWN0
U3RvcmUoJ3N0b3JlTmFtZScpCiBzdG9yZS5hZGQoe3g6ICd2YWx1ZScsIHk6ICd6enonfSwgJ2tl
eTInKQogCitJbiBJREJEYXRhYmFzZSBzdWNjZXNzIGNhcHR1cmUKK1BBU1MgZGJDYXB0dXJlRmly
ZWQgaXMgZmFsc2UKK1BBU1MgY2FwdHVyZUZpcmVkIGlzIGZhbHNlCitQQVNTIHJlcXVlc3RGaXJl
ZCBpcyBmYWxzZQorUEFTUyBidWJibGVGaXJlZCBpcyBmYWxzZQorUEFTUyBkYkJ1YmJsZUZpcmVk
IGlzIGZhbHNlCisKIEluIElEQlRyYW5zYWN0aW9uIHN1Y2Nlc3MgY2FwdHVyZQorUEFTUyBkYkNh
cHR1cmVGaXJlZCBpcyB0cnVlCiBQQVNTIGNhcHR1cmVGaXJlZCBpcyBmYWxzZQogUEFTUyByZXF1
ZXN0RmlyZWQgaXMgZmFsc2UKIFBBU1MgYnViYmxlRmlyZWQgaXMgZmFsc2UKK1BBU1MgZGJCdWJi
bGVGaXJlZCBpcyBmYWxzZQogCiBJbiBJREJSZXF1ZXN0IGhhbmRsZXIKK1BBU1MgZGJDYXB0dXJl
RmlyZWQgaXMgdHJ1ZQogUEFTUyBjYXB0dXJlRmlyZWQgaXMgdHJ1ZQogUEFTUyByZXF1ZXN0Rmly
ZWQgaXMgZmFsc2UKIFBBU1MgYnViYmxlRmlyZWQgaXMgZmFsc2UKK1BBU1MgZGJCdWJibGVGaXJl
ZCBpcyBmYWxzZQogCiBUcmFuc2FjdGlvbiBjb21wbGV0ZWQKK1BBU1MgZGJDYXB0dXJlRmlyZWQg
aXMgdHJ1ZQogUEFTUyBjYXB0dXJlRmlyZWQgaXMgdHJ1ZQogUEFTUyByZXF1ZXN0RmlyZWQgaXMg
dHJ1ZQogUEFTUyBidWJibGVGaXJlZCBpcyBmYWxzZQorUEFTUyBkYkJ1YmJsZUZpcmVkIGlzIGZh
bHNlCiAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi5odG1s
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlv
bi5odG1sCmluZGV4IGUxMjg0YjYxYTAxNzQ1NGEyZjkxMzRlNDIxMzEwNzNlMTAyNTk3NGEuLjg3
ZjZhMmQ5YjI2MGVkZDMzNTUyN2Y1OWI0MzJlNDAxM2NkNjJiMGQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtZXZlbnQtcHJvcGFnYXRpb24uaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXF1ZXN0LWV2ZW50LXByb3BhZ2F0
aW9uLmh0bWwKQEAgLTgyLDIyICs4Miw0NCBAQCBmdW5jdGlvbiB0cmFuc2FjdGlvbkFib3J0ZWQo
KQogICAgIGV2YWxBbmRMb2coInRyYW5zLm9uY29tcGxldGUgPSB1bmV4cGVjdGVkQWJvcnRDYWxs
YmFjayIpOwogICAgIGV2YWxBbmRMb2coInRyYW5zLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywg
ZXJyb3JDYXB0dXJlQ2FsbGJhY2ssIHRydWUpIik7CiAgICAgZXZhbEFuZExvZygidHJhbnMuYWRk
RXZlbnRMaXN0ZW5lcignZXJyb3InLCBlcnJvckJ1YmJsZUNhbGxiYWNrLCBmYWxzZSkiKTsKKyAg
ICBldmFsQW5kTG9nKCJ0cmFucy5hZGRFdmVudExpc3RlbmVyKCdzdWNjZXNzJywgdW5leHBlY3Rl
ZFN1Y2Nlc3NDYWxsYmFjaywgdHJ1ZSkiKTsKKyAgICBldmFsQW5kTG9nKCJ0cmFucy5hZGRFdmVu
dExpc3RlbmVyKCdzdWNjZXNzJywgdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFjaywgZmFsc2UpIik7
CisgICAgZXZhbEFuZExvZygiZGIuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBkYkVycm9yQ2Fw
dHVyZUNhbGxiYWNrLCB0cnVlKSIpOworICAgIGV2YWxBbmRMb2coImRiLmFkZEV2ZW50TGlzdGVu
ZXIoJ2Vycm9yJywgZGJFcnJvckJ1YmJsZUNhbGxiYWNrLCBmYWxzZSkiKTsKKyAgICBldmFsQW5k
TG9nKCJkYi5hZGRFdmVudExpc3RlbmVyKCdzdWNjZXNzJywgdW5leHBlY3RlZFN1Y2Nlc3NDYWxs
YmFjaywgdHJ1ZSkiKTsKKyAgICBldmFsQW5kTG9nKCJkYi5hZGRFdmVudExpc3RlbmVyKCdzdWNj
ZXNzJywgdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFjaywgZmFsc2UpIik7CiAgICAgc3RvcmUgPSBl
dmFsQW5kTG9nKCJzdG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOwogICAg
IHJlc3VsdCA9IGV2YWxBbmRMb2coInN0b3JlLmFkZCh7eDogJ3ZhbHVlJywgeTogJ3p6eid9LCAn
a2V5JykiKTsKICAgICByZXN1bHQub25zdWNjZXNzID0gdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFj
azsKICAgICByZXN1bHQub25lcnJvciA9IGVycm9yRmlyZWRDYWxsYmFjazsKKyAgICBkYkNhcHR1
cmVGaXJlZCA9IGZhbHNlOwogICAgIGNhcHR1cmVGaXJlZCA9IGZhbHNlOwogICAgIHJlcXVlc3RG
aXJlZCA9IGZhbHNlOwogICAgIGJ1YmJsZUZpcmVkID0gZmFsc2U7CisgICAgZGJCdWJibGVGaXJl
ZCA9IGZhbHNlOworfQorCitmdW5jdGlvbiBkYkVycm9yQ2FwdHVyZUNhbGxiYWNrKCkKK3sKKyAg
ICBkZWJ1ZygiIik7CisgICAgZGVidWcoIkluIElEQkRhdGFiYXNlIGVycm9yIGNhcHR1cmUiKTsK
KyAgICBzaG91bGRCZUZhbHNlKCJkYkNhcHR1cmVGaXJlZCIpOworICAgIHNob3VsZEJlRmFsc2Uo
ImNhcHR1cmVGaXJlZCIpOworICAgIHNob3VsZEJlRmFsc2UoInJlcXVlc3RGaXJlZCIpOworICAg
IHNob3VsZEJlRmFsc2UoImJ1YmJsZUZpcmVkIik7CisgICAgc2hvdWxkQmVGYWxzZSgiZGJCdWJi
bGVGaXJlZCIpOworICAgIGRiQ2FwdHVyZUZpcmVkID0gdHJ1ZTsKIH0KIAogZnVuY3Rpb24gZXJy
b3JDYXB0dXJlQ2FsbGJhY2soKQogewogICAgIGRlYnVnKCIiKTsKICAgICBkZWJ1ZygiSW4gSURC
VHJhbnNhY3Rpb24gZXJyb3IgY2FwdHVyZSIpOworICAgIHNob3VsZEJlVHJ1ZSgiZGJDYXB0dXJl
RmlyZWQiKTsKICAgICBzaG91bGRCZUZhbHNlKCJjYXB0dXJlRmlyZWQiKTsKICAgICBzaG91bGRC
ZUZhbHNlKCJyZXF1ZXN0RmlyZWQiKTsKICAgICBzaG91bGRCZUZhbHNlKCJidWJibGVGaXJlZCIp
OworICAgIHNob3VsZEJlRmFsc2UoImRiQnViYmxlRmlyZWQiKTsKICAgICBjYXB0dXJlRmlyZWQg
PSB0cnVlOwogfQogCkBAIC0xMDUsOSArMTI3LDExIEBAIGZ1bmN0aW9uIGVycm9yRmlyZWRDYWxs
YmFjaygpCiB7CiAgICAgZGVidWcoIiIpOwogICAgIGRlYnVnKCJJbiBJREJSZXF1ZXN0IGhhbmRs
ZXIiKTsKKyAgICBzaG91bGRCZVRydWUoImRiQ2FwdHVyZUZpcmVkIik7CiAgICAgc2hvdWxkQmVU
cnVlKCJjYXB0dXJlRmlyZWQiKTsKICAgICBzaG91bGRCZUZhbHNlKCJyZXF1ZXN0RmlyZWQiKTsK
ICAgICBzaG91bGRCZUZhbHNlKCJidWJibGVGaXJlZCIpOworICAgIHNob3VsZEJlRmFsc2UoImRi
QnViYmxlRmlyZWQiKTsKICAgICByZXF1ZXN0RmlyZWQgPSB0cnVlOwogfQogCkBAIC0xMTUsMTkg
KzEzOSwzNSBAQCBmdW5jdGlvbiBlcnJvckJ1YmJsZUNhbGxiYWNrKCkKIHsKICAgICBkZWJ1Zygi
Iik7CiAgICAgZGVidWcoIkluIElEQlRyYW5zYWN0aW9uIGVycm9yIGJ1YmJsZSIpOworICAgIHNo
b3VsZEJlVHJ1ZSgiZGJDYXB0dXJlRmlyZWQiKTsKICAgICBzaG91bGRCZVRydWUoImNhcHR1cmVG
aXJlZCIpOwogICAgIHNob3VsZEJlVHJ1ZSgicmVxdWVzdEZpcmVkIik7CiAgICAgc2hvdWxkQmVG
YWxzZSgiYnViYmxlRmlyZWQiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJkYkJ1YmJsZUZpcmVkIik7
CiAgICAgYnViYmxlRmlyZWQgPSB0cnVlOwogfQogCitmdW5jdGlvbiBkYkVycm9yQnViYmxlQ2Fs
bGJhY2soKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiSW4gSURCRGF0YWJhc2UgZXJy
b3IgYnViYmxlIik7CisgICAgc2hvdWxkQmVUcnVlKCJkYkNhcHR1cmVGaXJlZCIpOworICAgIHNo
b3VsZEJlVHJ1ZSgiY2FwdHVyZUZpcmVkIik7CisgICAgc2hvdWxkQmVUcnVlKCJyZXF1ZXN0Rmly
ZWQiKTsKKyAgICBzaG91bGRCZVRydWUoImJ1YmJsZUZpcmVkIik7CisgICAgc2hvdWxkQmVGYWxz
ZSgiZGJCdWJibGVGaXJlZCIpOworICAgIGRiQnViYmxlRmlyZWQgPSB0cnVlOworfQorCiBmdW5j
dGlvbiB0cmFuc2FjdGlvbkFib3J0ZWQyKCkKIHsKICAgICBkZWJ1ZygiIik7CiAgICAgZGVidWco
IlRyYW5zYWN0aW9uIGFib3J0ZWQiKTsKKyAgICBzaG91bGRCZVRydWUoImRiQ2FwdHVyZUZpcmVk
Iik7CiAgICAgc2hvdWxkQmVUcnVlKCJjYXB0dXJlRmlyZWQiKTsKICAgICBzaG91bGRCZVRydWUo
InJlcXVlc3RGaXJlZCIpOwogICAgIHNob3VsZEJlVHJ1ZSgiYnViYmxlRmlyZWQiKTsKKyAgICBz
aG91bGRCZVRydWUoImRiQnViYmxlRmlyZWQiKTsKICAgICBkZWJ1ZygiIik7CiAgICAgZGVidWco
IlZlcmlmaW5nIHN1Y2Nlc3MuIik7CiAgICAgdHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGRi
LnRyYW5zYWN0aW9uKFtdLCB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKSIpOwpAQCAt
MTM1LDIyICsxNzUsNDggQEAgZnVuY3Rpb24gdHJhbnNhY3Rpb25BYm9ydGVkMigpCiAgICAgZXZh
bEFuZExvZygidHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrIik7CiAgICAg
ZXZhbEFuZExvZygidHJhbnMuYWRkRXZlbnRMaXN0ZW5lcignc3VjY2VzcycsIHN1Y2Nlc3NDYXB0
dXJlQ2FsbGJhY2ssIHRydWUpIik7CiAgICAgZXZhbEFuZExvZygidHJhbnMuYWRkRXZlbnRMaXN0
ZW5lcignc3VjY2VzcycsIHN1Y2Nlc3NCdWJibGVDYWxsYmFjaywgZmFsc2UpIik7CisgICAgZXZh
bEFuZExvZygidHJhbnMuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjaywgdHJ1ZSkiKTsKKyAgICBldmFsQW5kTG9nKCJ0cmFucy5hZGRFdmVudExpc3RlbmVy
KCdlcnJvcicsIHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrLCBmYWxzZSkiKTsKKyAgICBldmFsQW5k
TG9nKCJkYi5yZW1vdmVFdmVudExpc3RlbmVyKCdlcnJvcicsIGRiRXJyb3JDYXB0dXJlQ2FsbGJh
Y2ssIHRydWUpIik7CisgICAgZXZhbEFuZExvZygiZGIucmVtb3ZlRXZlbnRMaXN0ZW5lcignZXJy
b3InLCBkYkVycm9yQnViYmxlQ2FsbGJhY2ssIGZhbHNlKSIpOworICAgIGV2YWxBbmRMb2coImRi
LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3N1Y2Nlc3MnLCB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNr
LCB0cnVlKSIpOworICAgIGV2YWxBbmRMb2coImRiLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3N1Y2Nl
c3MnLCB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrLCBmYWxzZSkiKTsKKyAgICBldmFsQW5kTG9n
KCJkYi5hZGRFdmVudExpc3RlbmVyKCdzdWNjZXNzJywgZGJTdWNjZXNzQ2FwdHVyZUNhbGxiYWNr
LCB0cnVlKSIpOworICAgIGV2YWxBbmRMb2coImRiLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Y2Nlc3Mn
LCBkYlN1Y2Nlc3NCdWJibGVDYWxsYmFjaywgZmFsc2UpIik7CisgICAgZXZhbEFuZExvZygiZGIu
YWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjaywgdHJ1ZSki
KTsKKyAgICBldmFsQW5kTG9nKCJkYi5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrLCBmYWxzZSkiKTsKICAgICBzdG9yZSA9IGV2YWxBbmRMb2coInN0b3Jl
ID0gdHJhbnMub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpIik7CiAgICAgcmVzdWx0ID0gZXZhbEFu
ZExvZygic3RvcmUuYWRkKHt4OiAndmFsdWUnLCB5OiAnenp6J30sICdrZXkyJykiKTsKICAgICBy
ZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogICAgIHJlc3VsdC5vbnN1
Y2Nlc3MgPSBzdWNjZXNzRmlyZWRDYWxsYmFjazsKKyAgICBkYkNhcHR1cmVGaXJlZCA9IGZhbHNl
OwogICAgIGNhcHR1cmVGaXJlZCA9IGZhbHNlOwogICAgIHJlcXVlc3RGaXJlZCA9IGZhbHNlOwog
ICAgIGJ1YmJsZUZpcmVkID0gZmFsc2U7CisgICAgZGJCdWJibGVGaXJlZCA9IGZhbHNlOworfQor
CitmdW5jdGlvbiBkYlN1Y2Nlc3NDYXB0dXJlQ2FsbGJhY2soKQoreworICAgIGRlYnVnKCIiKTsK
KyAgICBkZWJ1ZygiSW4gSURCRGF0YWJhc2Ugc3VjY2VzcyBjYXB0dXJlIik7CisgICAgc2hvdWxk
QmVGYWxzZSgiZGJDYXB0dXJlRmlyZWQiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJjYXB0dXJlRmly
ZWQiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJyZXF1ZXN0RmlyZWQiKTsKKyAgICBzaG91bGRCZUZh
bHNlKCJidWJibGVGaXJlZCIpOworICAgIHNob3VsZEJlRmFsc2UoImRiQnViYmxlRmlyZWQiKTsK
KyAgICBkYkNhcHR1cmVGaXJlZCA9IHRydWU7CiB9CiAKIGZ1bmN0aW9uIHN1Y2Nlc3NDYXB0dXJl
Q2FsbGJhY2soKQogewogICAgIGRlYnVnKCIiKTsKICAgICBkZWJ1ZygiSW4gSURCVHJhbnNhY3Rp
b24gc3VjY2VzcyBjYXB0dXJlIik7CisgICAgc2hvdWxkQmVUcnVlKCJkYkNhcHR1cmVGaXJlZCIp
OwogICAgIHNob3VsZEJlRmFsc2UoImNhcHR1cmVGaXJlZCIpOwogICAgIHNob3VsZEJlRmFsc2Uo
InJlcXVlc3RGaXJlZCIpOwogICAgIHNob3VsZEJlRmFsc2UoImJ1YmJsZUZpcmVkIik7CisgICAg
c2hvdWxkQmVGYWxzZSgiZGJCdWJibGVGaXJlZCIpOwogICAgIGNhcHR1cmVGaXJlZCA9IHRydWU7
CiB9CiAKQEAgLTE1OCw5ICsyMjQsMTEgQEAgZnVuY3Rpb24gc3VjY2Vzc0ZpcmVkQ2FsbGJhY2so
KQogewogICAgIGRlYnVnKCIiKTsKICAgICBkZWJ1ZygiSW4gSURCUmVxdWVzdCBoYW5kbGVyIik7
CisgICAgc2hvdWxkQmVUcnVlKCJkYkNhcHR1cmVGaXJlZCIpOwogICAgIHNob3VsZEJlVHJ1ZSgi
Y2FwdHVyZUZpcmVkIik7CiAgICAgc2hvdWxkQmVGYWxzZSgicmVxdWVzdEZpcmVkIik7CiAgICAg
c2hvdWxkQmVGYWxzZSgiYnViYmxlRmlyZWQiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJkYkJ1YmJs
ZUZpcmVkIik7CiAgICAgcmVxdWVzdEZpcmVkID0gdHJ1ZTsKIH0KIApAQCAtMTY4LDE3ICsyMzYs
MjcgQEAgZnVuY3Rpb24gc3VjY2Vzc0J1YmJsZUNhbGxiYWNrKCkKIHsKICAgICBkZWJ1ZygiIik7
CiAgICAgZGVidWcoIkluIElEQlRyYW5zYWN0aW9uIHN1Y2Nlc3MgYnViYmxlIik7Ci0gICAgdGVz
dEZhaWxlZCgiU3VjY2VzcyBjYXB0dXJlIGNhbGxiYWNrIHNob3VsZCBOT1QgZmlyZSIpOworICAg
IHRlc3RGYWlsZWQoIlN1Y2Nlc3MgYnViYmxlIGNhbGxiYWNrIHNob3VsZCBOT1QgZmlyZSIpOwog
ICAgIGJ1YmJsZUZpcmVkID0gdHJ1ZTsKIH0KIAorZnVuY3Rpb24gZGJTdWNjZXNzQnViYmxlQ2Fs
bGJhY2soKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiSW4gSURCRGF0YWJhc2Ugc3Vj
Y2VzcyBidWJibGUiKTsKKyAgICB0ZXN0RmFpbGVkKCJTdWNjZXNzIGJ1YmJsZSBjYWxsYmFjayBz
aG91bGQgTk9UIGZpcmUiKTsKKyAgICBkYkJ1YmJsZUZpcmVkID0gdHJ1ZTsKK30KKwogZnVuY3Rp
b24gdHJhbnNhY3Rpb25Db21wbGV0ZSgpCiB7CiAgICAgZGVidWcoIiIpOwogICAgIGRlYnVnKCJU
cmFuc2FjdGlvbiBjb21wbGV0ZWQiKTsKKyAgICBzaG91bGRCZVRydWUoImRiQ2FwdHVyZUZpcmVk
Iik7CiAgICAgc2hvdWxkQmVUcnVlKCJjYXB0dXJlRmlyZWQiKTsKICAgICBzaG91bGRCZVRydWUo
InJlcXVlc3RGaXJlZCIpOwogICAgIHNob3VsZEJlRmFsc2UoImJ1YmJsZUZpcmVkIik7CisgICAg
c2hvdWxkQmVGYWxzZSgiZGJCdWJibGVGaXJlZCIpOwogICAgIGRlYnVnKCIiKTsKIAogICAgIGRv
bmUoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0
aW9uLWFuZC1vYmplY3RzdG9yZS1jYWxscy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMtZXhwZWN0ZWQu
dHh0CmluZGV4IDAyOGZmNzJmMmI4Y2Q2NmJmMGYyZDRlYjNlYTgxNDQyODA4NWFjY2YuLjM2Y2Ew
MWU0MmY1N2ZlOThkYWRiMGVhNTdjYmVhMGZjMmQ4OThiNDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFuZC1vYmplY3RzdG9yZS1jYWxscy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rp
b24tYW5kLW9iamVjdHN0b3JlLWNhbGxzLWV4cGVjdGVkLnR4dApAQCAtMTcsNyArMTcsNyBAQCB0
cmFucyA9IGV2ZW50LnJlc3VsdAogRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KIGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCdhJykKIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdiJykKLXRyYW5zLm9uY29t
cGxldGUgPSBjcmVhdGVkCit0cmFucy5hZGRFdmVudExpc3RlbmVyKCdjb21wbGV0ZScsIGNyZWF0
ZWQsIHRydWUpCiAKIHRyYW5zID0gZGIudHJhbnNhY3Rpb24oWydhJ10pCiB0cmFucy5vYmplY3RT
dG9yZSgnYScpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFu
c2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFuZC1vYmplY3RzdG9yZS1jYWxscy5odG1sCmluZGV4IDk0
Yjk5M2UzNzM3YzEzNjU2NDliMjVkNjUxOTliMmIwZjdkNzZjODYuLjE0NGRmNGZiODE2ODEyZDE2
YTk3OTkyZjYxODIyNTdiOTkyMGFkYWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFuZC1vYmplY3RzdG9yZS1jYWxscy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFuZC1vYmplY3RzdG9yZS1j
YWxscy5odG1sCkBAIC00Myw3ICs0Myw3IEBAIGZ1bmN0aW9uIGNsZWFuZWQoKQogewogICAgIGV2
YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdhJykiKTsKICAgICBldmFsQW5kTG9nKCJk
Yi5jcmVhdGVPYmplY3RTdG9yZSgnYicpIik7Ci0gICAgZXZhbEFuZExvZygidHJhbnMub25jb21w
bGV0ZSA9IGNyZWF0ZWQiKTsKKyAgICBldmFsQW5kTG9nKCJ0cmFucy5hZGRFdmVudExpc3RlbmVy
KCdjb21wbGV0ZScsIGNyZWF0ZWQsIHRydWUpIik7CiAgICAgZGVidWcoIiIpOwogfQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1iYXNpY3Mu
aHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWJhc2ljcy5o
dG1sCmluZGV4IDg5OTVlNmQxM2E4M2FiZGYyMjk3ODRhOWQxMDY0ODVmNzM0NTFhNTMuLjk2MjYx
Mjk2MGFhMDJjZDc2Y2U1OTNiMjgzMjQ4NmFkNGU0ODUyODUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWJhc2ljcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWJhc2ljcy5odG1sCkBAIC01NSw3
ICs1NSw3IEBAIGZ1bmN0aW9uIGFkZFJlbW92ZUlEQk9iamVjdHMoKQogICAgIHZlcmlmeVN1Y2Nl
c3NFdmVudChldmVudCk7DQogICAgIHZhciB0cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZXZl
bnQucmVzdWx0Iik7DQogICAgIHNob3VsZEJlVHJ1ZSgidHJhbnMgIT09IG51bGwiKTsNCi0gICAg
dHJhbnMub25hYm9ydCA9IHRlc3RTZXRWZXJzaW9uQWJvcnQyOw0KKyAgICB0cmFucy5hZGRFdmVu
dExpc3RlbmVyKCdhYm9ydCcsIHRlc3RTZXRWZXJzaW9uQWJvcnQyLCB0cnVlKTsNCiAgICAgdHJh
bnMub25jb21wbGV0ZSA9IHVuZXhwZWN0ZWRDb21wbGV0ZUNhbGxiYWNrOw0KIA0KICAgICB2YXIg
c3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZUZh
aWwnLCBudWxsKSIpOw0KQEAgLTgwLDcgKzgwLDcgQEAgZnVuY3Rpb24gYWRkUmVtb3ZlQWRkSURC
T2JqZWN0cygpCiAgICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2ZW50KTsNCiAgICAgdmFyIHRyYW5z
ID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC5yZXN1bHQiKTsNCiAgICAgc2hvdWxkQmVUcnVl
KCJ0cmFucyAhPT0gbnVsbCIpOw0KLSAgICB0cmFucy5vbmFib3J0ID0gdGVzdFNldFZlcnNpb25B
Ym9ydDM7DQorICAgIHRyYW5zLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgdGVzdFNldFZlcnNp
b25BYm9ydDMsIGZhbHNlKTsNCiAgICAgdHJhbnMub25jb21wbGV0ZSA9IHVuZXhwZWN0ZWRDb21w
bGV0ZUNhbGxiYWNrOw0KIA0KICAgICB2YXIgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZUZhaWwnLCBudWxsKSIpOw0KQEAgLTIwOSw3ICsyMDks
NyBAQCBmdW5jdGlvbiBzZXRWZXJzaW9uU3VjY2VzcygpCiAgICAgd2luZG93LnRyYW5zID0gZXZh
bEFuZExvZygidHJhbnMgPSBldmVudC5yZXN1bHQiKTsNCiAgICAgc2hvdWxkQmVUcnVlKCJ0cmFu
cyAhPT0gbnVsbCIpOw0KICAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJh
Y2s7DQotICAgIHRyYW5zLm9uY29tcGxldGUgPSBjb21wbGV0ZUNhbGxiYWNrOw0KKyAgICB0cmFu
cy5hZGRFdmVudExpc3RlbmVyKCdjb21wbGV0ZScsIGNvbXBsZXRlQ2FsbGJhY2ssIGZhbHNlKTsN
CiAgICAgd2luZG93LmNvbXBsZXRlRXZlbnRGaXJlZCA9IGZhbHNlOw0KIA0KICAgICBkZWxldGVB
bGxPYmplY3RTdG9yZXMoZGIsIGNyZWF0ZU9iamVjdFN0b3JlQW5kU3RhcnRUcmFuc2FjdGlvbik7
DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24t
ZXZlbnQtcHJvcGFnYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvdHJhbnNhY3Rpb24tZXZlbnQtcHJvcGFnYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjlkMDRiMGEwNjk3NGE0OWNhYzU0YzQ5OWFhYTU0YWM0ZjYzNjFiMTUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1ldmVudC1w
cm9wYWdhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3OSBAQAorVGVzdCBldmVudCBwcm9w
b2dhdGlvbiBvbiBJREJUcmFuc2FjdGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK3dlYmtpdEluZGV4ZWREQi5vcGVuKCduYW1lJykKK1BBU1MgJ29uc3VjY2VzcycgaW4gcmVz
dWx0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCitQQVNTICdyZWFk
eVN0YXRlJyBpbiByZXN1bHQgaXMgdHJ1ZQorQW4gZXZlbnQgc2hvdWxkIGZpcmUgc2hvcnRseS4u
LgorCitkYiA9IGV2ZW50LnJlc3VsdAorZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKQorUEFT
UyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gcmVzdWx0
IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVlCitBbiBldmVudCBz
aG91bGQgZmlyZSBzaG9ydGx5Li4uCisKK3RyYW5zID0gZXZlbnQucmVzdWx0CitQQVNTIHRyYW5z
ICE9PSBudWxsIGlzIHRydWUKK3RyYW5zLm9uY29tcGxldGUgPSBzdGFydFRlc3QKK0RlbGV0ZWQg
YWxsIG9iamVjdCBzdG9yZXMuCitzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5h
bWUnLCBudWxsKQorc3RvcmUuYWRkKHt4OiAndmFsdWUnLCB5OiAnenp6J30sICdrZXknKQorVmVy
aWZpbmcgYWJvcnQKK3RyYW5zID0gZGIudHJhbnNhY3Rpb24oW10sIHdlYmtpdElEQlRyYW5zYWN0
aW9uLlJFQURfV1JJVEUpCit0cmFucy5vbmFib3J0ID0gYWJvcnRGaXJlZENhbGxiYWNrCit0cmFu
cy5vbmNvbXBsZXRlID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2sKK2RiLmFkZEV2ZW50TGlzdGVu
ZXIoJ2Fib3J0JywgZGJBYm9ydENhcHR1cmVDYWxsYmFjaywgdHJ1ZSkKK2RiLmFkZEV2ZW50TGlz
dGVuZXIoJ2Fib3J0JywgZGJBYm9ydEJ1YmJsZUNhbGxiYWNrLCBmYWxzZSkKK2RiLmFkZEV2ZW50
TGlzdGVuZXIoJ2NvbXBsZXRlJywgdW5leHBlY3RlZENvbXBsZXRlQ2FsbGJhY2ssIHRydWUpCitk
Yi5hZGRFdmVudExpc3RlbmVyKCdjb21wbGV0ZScsIHVuZXhwZWN0ZWRDb21wbGV0ZUNhbGxiYWNr
LCBmYWxzZSkKK3N0b3JlID0gdHJhbnMub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCitzdG9yZS5h
ZGQoe3g6ICd2YWx1ZScsIHk6ICd6enonfSwgJ2tleScpCisKK0luIElEQkRhdGFiYXNlIGFib3J0
IGNhcHR1cmUKK1BBU1MgZGJDYXB0dXJlRmlyZWQgaXMgZmFsc2UKK1BBU1MgYWJvcnRGaXJlZCBp
cyBmYWxzZQorUEFTUyBkYkJ1YmJsZUZpcmVkMSBpcyBmYWxzZQorCitJbiBhYm9ydCBoYW5kbGVy
CitQQVNTIGRiQ2FwdHVyZUZpcmVkIGlzIHRydWUKK1BBU1MgYWJvcnRGaXJlZCBpcyBmYWxzZQor
UEFTUyBkYkJ1YmJsZUZpcmVkMSBpcyBmYWxzZQorCitJbiBJREJEYXRhYmFzZSBlcnJvciBidWJi
bGUKK1BBU1MgZGJDYXB0dXJlRmlyZWQgaXMgdHJ1ZQorUEFTUyBhYm9ydEZpcmVkIGlzIHRydWUK
K1BBU1MgZGJCdWJibGVGaXJlZDEgaXMgZmFsc2UKKworVmVyaWZpbmcgc3VjY2Vzcy4KK3RyYW5z
ID0gZGIudHJhbnNhY3Rpb24oW10sIHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCit0
cmFucy5vbmNvbXBsZXRlID0gY29tcGxldGVGaXJlZENhbGxiYWNrCit0cmFucy5vbmFib3J0ID0g
dW5leHBlY3RlZEFib3J0Q2FsbGJhY2sKK2RiLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywg
ZGJBYm9ydENhcHR1cmVDYWxsYmFjaywgdHJ1ZSkKK2RiLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fi
b3J0JywgZGJBYm9ydEJ1YmJsZUNhbGxiYWNrLCBmYWxzZSkKK2RiLnJlbW92ZUV2ZW50TGlzdGVu
ZXIoJ2NvbXBsZXRlJywgdW5leHBlY3RlZENvbXBsZXRlQ2FsbGJhY2ssIHRydWUpCitkYi5yZW1v
dmVFdmVudExpc3RlbmVyKCdjb21wbGV0ZScsIHVuZXhwZWN0ZWRDb21wbGV0ZUNhbGxiYWNrLCBm
YWxzZSkKK2RiLmFkZEV2ZW50TGlzdGVuZXIoJ2NvbXBsZXRlJywgZGJDb21wbGV0ZUNhcHR1cmVD
YWxsYmFjaywgdHJ1ZSkKK2RiLmFkZEV2ZW50TGlzdGVuZXIoJ2NvbXBsZXRlJywgZGJDb21wbGV0
ZUJ1YmJsZUNhbGxiYWNrLCBmYWxzZSkKK2RiLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgdW5l
eHBlY3RlZEFib3J0Q2FsbGJhY2ssIHRydWUpCitkYi5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcs
IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrLCBmYWxzZSkKK3N0b3JlID0gdHJhbnMub2JqZWN0U3Rv
cmUoJ3N0b3JlTmFtZScpCitzdG9yZS5hZGQoe3g6ICd2YWx1ZScsIHk6ICd6enonfSwgJ2tleTIn
KQorCitJbiBJREJEYXRhYmFzZSBjb21wbGV0ZSBjYXB0dXJlCitQQVNTIGRiQ2FwdHVyZUZpcmVk
IGlzIGZhbHNlCitQQVNTIGNvbXBsZXRlRmlyZWQgaXMgZmFsc2UKK1BBU1MgZGJCdWJibGVGaXJl
ZDIgaXMgZmFsc2UKKworSW4gSURCUmVxdWVzdCBoYW5kbGVyCitQQVNTIGRiQ2FwdHVyZUZpcmVk
IGlzIHRydWUKK1BBU1MgY29tcGxldGVGaXJlZCBpcyBmYWxzZQorUEFTUyBkYkJ1YmJsZUZpcmVk
MiBpcyBmYWxzZQorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNh
Y3Rpb24tZXZlbnQtcHJvcGFnYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3RyYW5zYWN0aW9uLWV2ZW50LXByb3BhZ2F0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzMxNjQ2
YWIwZDNmMzIxNGQwYjhjNjQ0MjdhZWY5YzM0Y2RlMmM1NQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWV2ZW50LXByb3BhZ2F0aW9u
Lmh0bWwKQEAgLTAsMCArMSwxNTMgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUZXN0IGV2
ZW50IHByb3BvZ2F0aW9uIG9uIElEQlRyYW5zYWN0aW9uLiIpOworaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJ3ZWJraXRJ
bmRleGVkREIub3BlbignbmFtZScpIik7CisgICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7CisgICAg
cmVzdWx0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb247CisgICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gc2V0VmVyc2lvbigpCit7CisgICAg
ZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnJlc3VsdCIpOworCisgICAgcmVzdWx0ID0gZXZh
bEFuZExvZygiZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKSIpOworICAgIHZlcmlmeVJlc3Vs
dChyZXN1bHQpOworICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBkZWxldGVFeGlzdGluZzsKKyAgICBy
ZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBk
ZWxldGVFeGlzdGluZygpCit7CisgICAgd2luZG93LnRyYW5zID0gZXZhbEFuZExvZygidHJhbnMg
PSBldmVudC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZVRydWUoInRyYW5zICE9PSBudWxsIik7Cisg
ICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOworICAgIGV2YWxBbmRM
b2coInRyYW5zLm9uY29tcGxldGUgPSBzdGFydFRlc3QiKTsKKworICAgIGRlbGV0ZUFsbE9iamVj
dFN0b3JlcyhkYiwgY3JlYXRlT2JqZWN0U3RvcmUpOworfQorCitmdW5jdGlvbiBjcmVhdGVPYmpl
Y3RTdG9yZSgpCit7CisgICAgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCdzdG9yZU5hbWUnLCBudWxsKSIpOworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2co
InN0b3JlLmFkZCh7eDogJ3ZhbHVlJywgeTogJ3p6eid9LCAna2V5JykiKTsKKyAgICByZXN1bHQu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBzdGFydFRl
c3QoKQoreworICAgIGRlYnVnKCJWZXJpZmluZyBhYm9ydCIpOworICAgIHRyYW5zID0gZXZhbEFu
ZExvZygidHJhbnMgPSBkYi50cmFuc2FjdGlvbihbXSwgd2Via2l0SURCVHJhbnNhY3Rpb24uUkVB
RF9XUklURSkiKTsKKyAgICBldmFsQW5kTG9nKCJ0cmFucy5vbmFib3J0ID0gYWJvcnRGaXJlZENh
bGxiYWNrIik7CisgICAgZXZhbEFuZExvZygidHJhbnMub25jb21wbGV0ZSA9IHVuZXhwZWN0ZWRB
Ym9ydENhbGxiYWNrIik7CisgICAgZXZhbEFuZExvZygiZGIuYWRkRXZlbnRMaXN0ZW5lcignYWJv
cnQnLCBkYkFib3J0Q2FwdHVyZUNhbGxiYWNrLCB0cnVlKSIpOworICAgIGV2YWxBbmRMb2coImRi
LmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgZGJBYm9ydEJ1YmJsZUNhbGxiYWNrLCBmYWxzZSki
KTsKKyAgICBldmFsQW5kTG9nKCJkYi5hZGRFdmVudExpc3RlbmVyKCdjb21wbGV0ZScsIHVuZXhw
ZWN0ZWRDb21wbGV0ZUNhbGxiYWNrLCB0cnVlKSIpOworICAgIGV2YWxBbmRMb2coImRiLmFkZEV2
ZW50TGlzdGVuZXIoJ2NvbXBsZXRlJywgdW5leHBlY3RlZENvbXBsZXRlQ2FsbGJhY2ssIGZhbHNl
KSIpOworICAgIHN0b3JlID0gZXZhbEFuZExvZygic3RvcmUgPSB0cmFucy5vYmplY3RTdG9yZSgn
c3RvcmVOYW1lJykiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yZS5hZGQoe3g6ICd2YWx1ZScsIHk6
ICd6enonfSwgJ2tleScpIik7CisgICAgZGJDYXB0dXJlRmlyZWQgPSBmYWxzZTsKKyAgICBhYm9y
dEZpcmVkID0gZmFsc2U7CisgICAgZGJCdWJibGVGaXJlZDEgPSBmYWxzZTsKK30KKworZnVuY3Rp
b24gZGJBYm9ydENhcHR1cmVDYWxsYmFjaygpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVn
KCJJbiBJREJEYXRhYmFzZSBhYm9ydCBjYXB0dXJlIik7CisgICAgc2hvdWxkQmVGYWxzZSgiZGJD
YXB0dXJlRmlyZWQiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJhYm9ydEZpcmVkIik7CisgICAgc2hv
dWxkQmVGYWxzZSgiZGJCdWJibGVGaXJlZDEiKTsKKyAgICBkYkNhcHR1cmVGaXJlZCA9IHRydWU7
Cit9CisKK2Z1bmN0aW9uIGFib3J0RmlyZWRDYWxsYmFjaygpCit7CisgICAgZGVidWcoIiIpOwor
ICAgIGRlYnVnKCJJbiBhYm9ydCBoYW5kbGVyIik7CisgICAgc2hvdWxkQmVUcnVlKCJkYkNhcHR1
cmVGaXJlZCIpOworICAgIHNob3VsZEJlRmFsc2UoImFib3J0RmlyZWQiKTsKKyAgICBzaG91bGRC
ZUZhbHNlKCJkYkJ1YmJsZUZpcmVkMSIpOworICAgIGFib3J0RmlyZWQgPSB0cnVlOworfQorCitm
dW5jdGlvbiBkYkFib3J0QnViYmxlQ2FsbGJhY2soKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBk
ZWJ1ZygiSW4gSURCRGF0YWJhc2UgZXJyb3IgYnViYmxlIik7CisgICAgc2hvdWxkQmVUcnVlKCJk
YkNhcHR1cmVGaXJlZCIpOworICAgIHNob3VsZEJlVHJ1ZSgiYWJvcnRGaXJlZCIpOworICAgIHNo
b3VsZEJlRmFsc2UoImRiQnViYmxlRmlyZWQxIik7CisgICAgZGJCdWJibGVGaXJlZDEgPSB0cnVl
OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiVmVyaWZpbmcgc3VjY2Vzcy4iKTsKKyAgICB0
cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24oW10sIHdlYmtpdElEQlRy
YW5zYWN0aW9uLlJFQURfV1JJVEUpIik7CisgICAgZXZhbEFuZExvZygidHJhbnMub25jb21wbGV0
ZSA9IGNvbXBsZXRlRmlyZWRDYWxsYmFjayIpOworICAgIGV2YWxBbmRMb2coInRyYW5zLm9uYWJv
cnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjayIpOworICAgIGV2YWxBbmRMb2coImRiLnJlbW92
ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgZGJBYm9ydENhcHR1cmVDYWxsYmFjaywgdHJ1ZSkiKTsK
KyAgICBldmFsQW5kTG9nKCJkYi5yZW1vdmVFdmVudExpc3RlbmVyKCdhYm9ydCcsIGRiQWJvcnRC
dWJibGVDYWxsYmFjaywgZmFsc2UpIik7CisgICAgZXZhbEFuZExvZygiZGIucmVtb3ZlRXZlbnRM
aXN0ZW5lcignY29tcGxldGUnLCB1bmV4cGVjdGVkQ29tcGxldGVDYWxsYmFjaywgdHJ1ZSkiKTsK
KyAgICBldmFsQW5kTG9nKCJkYi5yZW1vdmVFdmVudExpc3RlbmVyKCdjb21wbGV0ZScsIHVuZXhw
ZWN0ZWRDb21wbGV0ZUNhbGxiYWNrLCBmYWxzZSkiKTsKKyAgICBldmFsQW5kTG9nKCJkYi5hZGRF
dmVudExpc3RlbmVyKCdjb21wbGV0ZScsIGRiQ29tcGxldGVDYXB0dXJlQ2FsbGJhY2ssIHRydWUp
Iik7CisgICAgZXZhbEFuZExvZygiZGIuYWRkRXZlbnRMaXN0ZW5lcignY29tcGxldGUnLCBkYkNv
bXBsZXRlQnViYmxlQ2FsbGJhY2ssIGZhbHNlKSIpOworICAgIGV2YWxBbmRMb2coImRiLmFkZEV2
ZW50TGlzdGVuZXIoJ2Fib3J0JywgdW5leHBlY3RlZEFib3J0Q2FsbGJhY2ssIHRydWUpIik7Cisg
ICAgZXZhbEFuZExvZygiZGIuYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCB1bmV4cGVjdGVkQWJv
cnRDYWxsYmFjaywgZmFsc2UpIik7CisgICAgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IHRy
YW5zLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOworICAgIGV2YWxBbmRMb2coInN0b3JlLmFk
ZCh7eDogJ3ZhbHVlJywgeTogJ3p6eid9LCAna2V5MicpIik7CisgICAgZGJDYXB0dXJlRmlyZWQg
PSBmYWxzZTsKKyAgICBjb21wbGV0ZUZpcmVkID0gZmFsc2U7CisgICAgZGJCdWJibGVGaXJlZDIg
PSBmYWxzZTsKK30KKworZnVuY3Rpb24gZGJDb21wbGV0ZUNhcHR1cmVDYWxsYmFjaygpCit7Cisg
ICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJJbiBJREJEYXRhYmFzZSBjb21wbGV0ZSBjYXB0dXJl
Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiZGJDYXB0dXJlRmlyZWQiKTsKKyAgICBzaG91bGRCZUZh
bHNlKCJjb21wbGV0ZUZpcmVkIik7CisgICAgc2hvdWxkQmVGYWxzZSgiZGJCdWJibGVGaXJlZDIi
KTsKKyAgICBkYkNhcHR1cmVGaXJlZCA9IHRydWU7Cit9CisKK2Z1bmN0aW9uIGNvbXBsZXRlRmly
ZWRDYWxsYmFjaygpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJJbiBJREJSZXF1ZXN0
IGhhbmRsZXIiKTsKKyAgICBzaG91bGRCZVRydWUoImRiQ2FwdHVyZUZpcmVkIik7CisgICAgc2hv
dWxkQmVGYWxzZSgiY29tcGxldGVGaXJlZCIpOworICAgIHNob3VsZEJlRmFsc2UoImRiQnViYmxl
RmlyZWQyIik7CisgICAgY29tcGxldGVGaXJlZCA9IHRydWU7CisgICAgZGVidWcoIiIpOworICAg
IGRvbmUoKTsKK30KKworZnVuY3Rpb24gZGJDb21wbGV0ZUJ1YmJsZUNhbGxiYWNrKCkKK3sKKyAg
ICBkZWJ1ZygiIik7CisgICAgZGVidWcoIkluIElEQkRhdGFiYXNlIGNvbXBsZXRlIGJ1YmJsZSIp
OworICAgIHRlc3RGYWlsZWQoIkNvbXBsZXRlIGJ1YmJsZSBjYWxsYmFjayBzaG91bGQgTk9UIGZp
cmUiKTsKKyAgICBkYkJ1YmJsZUZpcmVkMiA9IHRydWU7Cit9CisKK3Rlc3QoKTsKKwordmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDliZjVjMDkyNWU1NjNmZDA2MWNhZTlhOTE0MjQ0OWUyZWY1ZjY5MDkuLmQz
ZTdkOThlZmFiODY5OTFmMThiMDFmNzhmNmNiOWRhY2JmZmY3NTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAxMS0wMi0wNyAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFdmVu
dHMgc2hvdWxkIHByb3BhZ2F0ZSB0aHJvdWdoIElEQkRhdGFiYXNlIChmb3IgSURCUmVxdWVzdCBh
bmQgSURCVHJhbnNhY3Rpb24pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01Mzk3NQorCisgICAgICAgIFRoZSB0aGlyZCBjaGFuZ2UgaW4gdGhlIHNlcmll
cyBvZiBvdmVyaGF1bGluZyBJbmRleGVkREIncyBldmVudCBtb2RlbCB0byBtYXRjaAorICAgICAg
ICB0aGUgc3BlYyAoYXQgbGVhc3QgdGhlIHZlcnNpb24gaW4gb3VyIGhlYWRzIGFuZCBidWdzKS4K
KworICAgICAgICBUZXN0OiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1ldmVudC1wcm9w
YWdhdGlvbi5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VjhET01XcmFwcGVyOjpjb252ZXJ0RXZlbnRUYXJnZXRUb1Y4T2Jq
ZWN0KToKKyAgICAgICAgKiBkb20vRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnQ6
OmlzSURCQWJvcnRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudDo6aXNJREJDb21wbGV0
ZUV2ZW50KToKKyAgICAgICAgKiBkb20vRXZlbnQuaDoKKyAgICAgICAgKiBkb20vRXZlbnRUYXJn
ZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6OnRvSURCRGF0YWJhc2UpOgor
ICAgICAgICAqIGRvbS9FdmVudFRhcmdldC5oOgorICAgICAgICAqIHN0b3JhZ2UvSURCRGF0YWJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2U6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpJREJEYXRhYmFzZTo6SURCRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6
SURCRGF0YWJhc2U6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
SURCRGF0YWJhc2U6OmV2ZW50VGFyZ2V0RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRh
YmFzZTo6ZW5zdXJlRXZlbnRUYXJnZXREYXRhKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQkRhdGFi
YXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6dG9JREJEYXRhYmFzZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6cmVmRXZlbnRUYXJnZXQpOgorICAgICAgICAo
V2ViQ29yZTo6SURCRGF0YWJhc2U6OmRlcmVmRXZlbnRUYXJnZXQpOgorICAgICAgICAqIHN0b3Jh
Z2UvSURCRGF0YWJhc2UuaWRsOgorICAgICAgICAqIHN0b3JhZ2UvSURCUmVxdWVzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3MpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudCk6CisgICAgICAgICogc3RvcmFnZS9JREJUcmFu
c2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6YmFja2VuZCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6ZGIpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCVHJhbnNhY3Rpb246Om9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRy
YW5zYWN0aW9uOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlRyYW5zYWN0aW9uOjpkaXNwYXRjaEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5z
YWN0aW9uOjplbnF1ZXVlRXZlbnQpOgorICAgICAgICAqIHN0b3JhZ2UvSURCVHJhbnNhY3Rpb24u
aDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpkaXNwYXRjaEV2ZW50KToKKwog
MjAxMS0wMi0wNCAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBOYXRlIENoYXBpbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OERPTVdyYXBwZXIuY3BwCmluZGV4IGI1MWM1YTU1MWZiODc3NTMwZmEyOGJlOTk4YzA2M2UwMzll
NGMwMGYuLmI0MzkyNzQ3YWMwZTA0YjU3NTJjZTg0NmExOGY2N2Q5N2QwMGJkYjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcApAQCAtNTEsNiArNTEsNyBA
QAogI2luY2x1ZGUgIlY4RmlsZVdyaXRlci5oIgogI2luY2x1ZGUgIlY4SFRNTENvbGxlY3Rpb24u
aCIKICNpbmNsdWRlICJWOEhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIlY4SURCRGF0YWJhc2Uu
aCIKICNpbmNsdWRlICJWOElEQlJlcXVlc3QuaCIKICNpbmNsdWRlICJWOElEQlRyYW5zYWN0aW9u
LmgiCiAjaW5jbHVkZSAiVjhJc29sYXRlZENvbnRleHQuaCIKQEAgLTM4MSw2ICszODIsOCBAQCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhET01XcmFwcGVyOjpjb252ZXJ0RXZlbnRUYXJnZXRUb1Y4
T2JqZWN0KEV2ZW50VGFyZ2V0KiB0YQogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKKyAgICBpZiAoSURCRGF0YWJhc2UqIGlkYkRhdGFiYXNlID0gdGFyZ2V0LT50b0lEQkRh
dGFiYXNlKCkpCisgICAgICAgIHJldHVybiB0b1Y4KGlkYkRhdGFiYXNlKTsKICAgICBpZiAoSURC
UmVxdWVzdCogaWRiUmVxdWVzdCA9IHRhcmdldC0+dG9JREJSZXF1ZXN0KCkpCiAgICAgICAgIHJl
dHVybiB0b1Y4KGlkYlJlcXVlc3QpOwogICAgIGlmIChJREJUcmFuc2FjdGlvbiogaWRiVHJhbnNh
Y3Rpb24gPSB0YXJnZXQtPnRvSURCVHJhbnNhY3Rpb24oKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuY3BwCmluZGV4
IDBlMTFjNjk1Yjg0ZGI1YmUwZDg3YmM1ZGE3ZjY1NTUzMGEzNmQ2NTQuLmJkYzFjNTgwNzQ5MDQ0
MDIzMTY5OWU5Njc0NWFhZjIzNDkzYTk0YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcApAQCAtMTkzLDYg
KzE5MywxNiBAQCBib29sIEV2ZW50Ojppc1N0b3JhZ2VFdmVudCgpIGNvbnN0CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorYm9vbCBFdmVudDo6aXNJREJBYm9ydEV2ZW50
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZlbnQ6OmlzSURCQ29t
cGxldGVFdmVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIEV2ZW50
Ojppc0lEQkVycm9yRXZlbnQoKSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
LmgKaW5kZXggNDViODc5ZGE3ODgzNzkzNTliNmQ4OTRlYTY2NzRlMzllYzExY2JiOC4uODFmOWU2
YjI5MDhlMWJhODdmMjgzZmYxZjZmMTdlNTI4MDc2NDM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgKQEAgLTEy
Niw2ICsxMjYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBp
c1N0b3JhZ2VFdmVudCgpIGNvbnN0OwogI2VuZGlmCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCisgICAgICAgIHZpcnR1YWwgYm9vbCBpc0lEQkFib3J0RXZlbnQoKSBjb25zdDsKKyAgICAg
ICAgdmlydHVhbCBib29sIGlzSURCQ29tcGxldGVFdmVudCgpIGNvbnN0OwogICAgICAgICB2aXJ0
dWFsIGJvb2wgaXNJREJFcnJvckV2ZW50KCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBp
c0lEQlN1Y2Nlc3NFdmVudCgpIGNvbnN0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0
LmNwcAppbmRleCA1ZjJmOGE3MTZhODQwY2NlOTA1NDVlMzIxYzM4NDZmYjJmZTg5ODk4Li5lZDU5
OTVjZDBkMmNkOWI0NzVkNzU4NjNjM2FjNDk5ZGVhZmIwZmZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dFRhcmdldC5jcHAKQEAgLTE4MSw2ICsxODEsMTAgQEAgRmlsZVdyaXRlciogRXZlbnRUYXJnZXQ6
OnRvRmlsZVdyaXRlcigpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQor
SURCRGF0YWJhc2UqIEV2ZW50VGFyZ2V0Ojp0b0lEQkRhdGFiYXNlKCkKK3sKKyAgICByZXR1cm4g
MDsKK30KIElEQlJlcXVlc3QqIEV2ZW50VGFyZ2V0Ojp0b0lEQlJlcXVlc3QoKQogewogICAgIHJl
dHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAppbmRleCA4MWVlYjdmYzJkZjkxNjMwMzE2
ZWIzMjlhZGM0NzNkZDY4M2YwMGRlLi5hMDM4MDFiY2JkNTAwZTRkYmNlODk1MWNkNDc2YjRkM2Q3
MDhhOGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaApAQCAtNDksNiArNDksNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRXZlbnRTb3VyY2U7CiAgICAgY2xhc3MgRmlsZVJl
YWRlcjsKICAgICBjbGFzcyBGaWxlV3JpdGVyOworICAgIGNsYXNzIElEQkRhdGFiYXNlOwogICAg
IGNsYXNzIElEQlJlcXVlc3Q7CiAgICAgY2xhc3MgSURCVHJhbnNhY3Rpb247CiAgICAgY2xhc3Mg
SmF2YVNjcmlwdEF1ZGlvTm9kZTsKQEAgLTEzOCw2ICsxMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAgICAgICB2aXJ0
dWFsIElEQkRhdGFiYXNlKiB0b0lEQkRhdGFiYXNlKCk7CiAgICAgICAgIHZpcnR1YWwgSURCUmVx
dWVzdCogdG9JREJSZXF1ZXN0KCk7CiAgICAgICAgIHZpcnR1YWwgSURCVHJhbnNhY3Rpb24qIHRv
SURCVHJhbnNhY3Rpb24oKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9JREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNl
LmNwcAppbmRleCA2Y2EyZjQyZmJjOWM1Mjg2ZGVmNGJmMWNjYjBjODEzNmRjZmMwMWJjLi40MjIw
N2MzOGE1MWE0ZTE4YzRhZDk5NGE3YzEyNzAwM2FmOTBkODA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL0lEQkRhdGFiYXNlLmNwcApAQCAtNDEsOCArNDEsMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1JREJEYXRhYmFzZTo6SURCRGF0YWJhc2UoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJh
Y2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQpCi0gICAgOiBtX2JhY2tlbmQoYmFja2VuZCkKK1Bhc3NS
ZWZQdHI8SURCRGF0YWJhc2U+IElEQkRhdGFiYXNlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IGRh
dGFiYXNlKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCRGF0YWJhc2UoY29udGV4dCwg
ZGF0YWJhc2UpKTsKK30KKworSURCRGF0YWJhc2U6OklEQkRhdGFiYXNlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNl
PiBiYWNrZW5kKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCisgICAgLCBt
X2JhY2tlbmQoYmFja2VuZCkKICAgICAsIG1fbm9OZXdUcmFuc2FjdGlvbnMoZmFsc2UpCiB7CiAg
ICAgLy8gV2UgcGFzcyBhIHJlZmVyZW5jZSBvZiB0aGlzIG9iamVjdCBiZWZvcmUgaXQgY2FuIGJl
IGFkb3B0ZWQuCkBAIC0xMzEsNiArMTM3LDIxIEBAIHZvaWQgSURCRGF0YWJhc2U6OmNsb3NlKCkK
ICAgICBtX25vTmV3VHJhbnNhY3Rpb25zID0gdHJ1ZTsKIH0KIAorU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogSURCRGF0YWJhc2U6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAoreworICAg
IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKK30KKwor
RXZlbnRUYXJnZXREYXRhKiBJREJEYXRhYmFzZTo6ZXZlbnRUYXJnZXREYXRhKCkKK3sKKyAgICBy
ZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOworfQorCitFdmVudFRhcmdldERhdGEqIElEQkRhdGFi
YXNlOjplbnN1cmVFdmVudFRhcmdldERhdGEoKQoreworICAgIHJldHVybiAmbV9ldmVudFRhcmdl
dERhdGE7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJE
YXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZS5oCmluZGV4IGQ4
MmVhZDNlNDM5MTJlOWE5NDNkZDE3Nzc5MmMxYzA4MzQzZDNjMGUuLjMzZWI0YjA4MjliZmM3Y2U0
YTUzMGIzYzViY2FkOWIzZTQ0NmNmMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvSURCRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNl
LmgKQEAgLTI2LDcgKzI2LDEwIEBACiAjaWZuZGVmIElEQkRhdGFiYXNlX2gKICNkZWZpbmUgSURC
RGF0YWJhc2VfaAogCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRE9N
U3RyaW5nTGlzdC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnRUYXJnZXQu
aCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VCYWNr
ZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmUuaCIKQEAgLTQyLDE0ICs0
NSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIElEQkFueTsKIGNsYXNzIElEQlJl
cXVlc3Q7Ci1jbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCi1jbGFzcyBJREJEYXRhYmFz
ZSA6IHB1YmxpYyBSZWZDb3VudGVkPElEQkRhdGFiYXNlPiB7CitjbGFzcyBJREJEYXRhYmFzZSA6
IHB1YmxpYyBSZWZDb3VudGVkPElEQkRhdGFiYXNlPiwgcHVibGljIEV2ZW50VGFyZ2V0LCBwdWJs
aWMgQWN0aXZlRE9NT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJE
YXRhYmFzZT4gY3JlYXRlKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBk
YXRhYmFzZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCRGF0YWJhc2Uo
ZGF0YWJhc2UpKTsKLSAgICB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCRGF0YWJhc2U+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tl
bmRJbnRlcmZhY2U+KTsKICAgICB+SURCRGF0YWJhc2UoKTsKIAogICAgIHZvaWQgc2V0U2V0VmVy
c2lvblRyYW5zYWN0aW9uKElEQlRyYW5zYWN0aW9uKik7CkBAIC03MCwxMyArNjksMzEgQEAgcHVi
bGljOgogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gc2V0VmVyc2lvbihTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBFeGNlcHRpb25Db2RlJik7CiAgICAg
dm9pZCBjbG9zZSgpOwogCisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihhYm9y
dCk7CisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihlcnJvcik7CisKKyAgICAv
LyBFdmVudFRhcmdldAorICAgIHZpcnR1YWwgSURCRGF0YWJhc2UqIHRvSURCRGF0YWJhc2UoKSB7
IHJldHVybiB0aGlzOyB9CisgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Q7CisKKyAgICB1c2luZyBSZWZDb3VudGVkPElEQkRh
dGFiYXNlPjo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ8SURCRGF0YWJhc2U+OjpkZXJlZjsK
KwogcHJpdmF0ZToKLSAgICBJREJEYXRhYmFzZShQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2Vu
ZEludGVyZmFjZT4pOworICAgIElEQkRhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQ
YXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4pOworCisgICAgLy8gRXZlbnRU
YXJnZXQKKyAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSB7IHJlZigpOyB9CisgICAg
dmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSB7IGRlcmVmKCk7IH0KKyAgICB2aXJ0dWFs
IEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRhKCk7CisgICAgdmlydHVhbCBFdmVudFRh
cmdldERhdGEqIGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpOwogCiAgICAgUmVmUHRyPElEQkRhdGFi
YXNlQmFja2VuZEludGVyZmFjZT4gbV9iYWNrZW5kOwogICAgIFJlZlB0cjxJREJUcmFuc2FjdGlv
bj4gbV9zZXRWZXJzaW9uVHJhbnNhY3Rpb247CiAKICAgICBib29sIG1fbm9OZXdUcmFuc2FjdGlv
bnM7CisKKyAgICBFdmVudFRhcmdldERhdGEgbV9ldmVudFRhcmdldERhdGE7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lE
QkRhdGFiYXNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2UuaWRsCmlu
ZGV4IDk0OTZjZTBiNTAzNjhiZDg0YWNhMTI4ZjY1Zjk4OTY3MzIzNzYyM2EuLjM5MjIxNDQ0OWVl
Zjk3MTkyMDQ4YzljMzQ4NzE4OWEyNGIyMzFhYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvSURCRGF0YWJhc2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURC
RGF0YWJhc2UuaWRsCkBAIC0yNiwxMiArMjYsMTYgQEAKIG1vZHVsZSBzdG9yYWdlIHsKIAogICAg
IGludGVyZmFjZSBbCi0gICAgICAgIENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UKKyAgICAg
ICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRSwKKyAgICAgICAgRXZlbnRUYXJnZXQKICAg
ICBdIElEQkRhdGFiYXNlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBu
YW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZlcnNpb247CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmdMaXN0IG9iamVjdFN0b3JlTmFtZXM7CiAK
KyAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25hYm9ydDsKKyAgICAgICAgYXR0cmli
dXRlIEV2ZW50TGlzdGVuZXIgb25lcnJvcjsKKwogICAgICAgICBJREJPYmplY3RTdG9yZSBjcmVh
dGVPYmplY3RTdG9yZShpbiBET01TdHJpbmcgbmFtZSwgaW4gW09wdGlvbmFsXSBPcHRpb25zT2Jq
ZWN0IG9wdGlvbnMpCiAgICAgICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsK
ICAgICAgICAgdm9pZCBkZWxldGVPYmplY3RTdG9yZShpbiBET01TdHJpbmcgbmFtZSkKQEAgLTQx
LDYgKzQ1LDE2IEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRdIElEQlRyYW5zYWN0aW9uIHRyYW5zYWN0aW9uKGluIFtPcHRpb25hbF0g
RE9NU3RyaW5nTGlzdCBzdG9yZU5hbWVzLCBpbiBbT3B0aW9uYWxdIHVuc2lnbmVkIHNob3J0IG1v
ZGUpCiAgICAgICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKICAgICAgICAg
dm9pZCBjbG9zZSgpOworCisgICAgICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQorICAgICAg
ICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiB1c2VDYXB0dXJlKTsKKyAgICAgICAgdm9pZCBy
ZW1vdmVFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgIGJvb2xl
YW4gZGlzcGF0Y2hFdmVudChpbiBFdmVudCBldnQpIAorICAgICAgICAgICAgcmFpc2VzKEV2ZW50
RXhjZXB0aW9uKTsKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL0lEQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmNw
cAppbmRleCBjOWY5YWVmYTk3YTE1M2YxNjFmMGY1NTQ5MTIxZTQ4ZTFkYjM1ODEyLi5iODNkM2Zh
NzQzMWE4MmFhZWUxYWVkMTE4ZmZiNjRlYzcyZGZjNmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
SURCUmVxdWVzdC5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nl
c3MoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kKQogCiB2b2lk
IElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVy
ZmFjZT4gYmFja2VuZCkKIHsKLSAgICBlbnF1ZXVlRXZlbnQoSURCU3VjY2Vzc0V2ZW50OjpjcmVh
dGUobV9zb3VyY2UsIElEQkFueTo6Y3JlYXRlKElEQkRhdGFiYXNlOjpjcmVhdGUoYmFja2VuZCkp
KSk7CisgICAgZW5xdWV1ZUV2ZW50KElEQlN1Y2Nlc3NFdmVudDo6Y3JlYXRlKG1fc291cmNlLCBJ
REJBbnk6OmNyZWF0ZShJREJEYXRhYmFzZTo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSwgYmFja2VuZCkpKSk7CiB9CiAKIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQ
dHI8SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kKQpAQCAtMTM4LDE0ICsxMzgsMTkg
QEAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogSURCUmVxdWVzdDo6c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpIGNvbnN0CiAKIGJvb2wgSURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRy
PEV2ZW50PiBldmVudCkKIHsKKyAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsK
KyAgICBBU1NFUlQoZXZlbnQtPnRhcmdldCgpID09IHRoaXMpOwogICAgIEFTU0VSVChtX3JlYWR5
U3RhdGUgPCBET05FKTsKICAgICBtX3JlYWR5U3RhdGUgPSBET05FOwogCiAgICAgVmVjdG9yPFJl
ZlB0cjxFdmVudFRhcmdldD4gPiB0YXJnZXRzOwogICAgIHRhcmdldHMuYXBwZW5kKHRoaXMpOwot
ICAgIEFTU0VSVChldmVudC0+dGFyZ2V0KCkgPT0gdGhpcyk7Ci0gICAgaWYgKG1fdHJhbnNhY3Rp
b24pCisgICAgaWYgKG1fdHJhbnNhY3Rpb24pIHsKICAgICAgICAgdGFyZ2V0cy5hcHBlbmQobV90
cmFuc2FjdGlvbik7CisgICAgICAgIC8vIElmIHRoZXJlIGV2ZXIgYXJlIGV2ZW50cyB0aGF0IGFy
ZSBhc3NvY2lhdGVkIHdpdGggYSBkYXRhYmFzZSBidXQgbm90IGhhdmUgYQorICAgICAgICAvLyB0
cmFuc2FjdGlvbiwgdGhlbiB0aGlzIHdpbGwgbm90IHdvcmsuCisgICAgICAgIHRhcmdldHMuYXBw
ZW5kKG1fdHJhbnNhY3Rpb24tPmRiKCkpOworICAgIH0KIAogICAgIEFTU0VSVChldmVudC0+aXNJ
REJFcnJvckV2ZW50KCkgfHwgZXZlbnQtPmlzSURCU3VjY2Vzc0V2ZW50KCkpOwogICAgIGJvb2wg
ZG9udFByZXZlbnREZWZhdWx0ID0gc3RhdGljX2Nhc3Q8SURCRXZlbnQqPihldmVudC5nZXQoKSkt
PmRpc3BhdGNoKHRhcmdldHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9J
REJUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5zYWN0aW9u
LmNwcAppbmRleCA5ZTg5YWFiZGEyMTViMTQyNmQ5MjY1M2UxMGM0YzAxOGQ2NDVjMWQwLi4yNmFm
MjE3M2M0OTAzYmU0YTNiZDY2MjQwOTc1ZDkzNDgwZjhkZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0lEQlRyYW5zYWN0aW9uLmNwcApAQCAtNjIsMTkgKzYyLDIzIEBAIElEQlRyYW5zYWN0
aW9uOjp+SURCVHJhbnNhY3Rpb24oKQogewogfQogCitJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRl
cmZhY2UqIElEQlRyYW5zYWN0aW9uOjpiYWNrZW5kKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9i
YWNrZW5kLmdldCgpOworfQorCiB1bnNpZ25lZCBzaG9ydCBJREJUcmFuc2FjdGlvbjo6bW9kZSgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fbW9kZTsKIH0KIAotSURCRGF0YWJhc2UqIElEQlRyYW5z
YWN0aW9uOjpkYigpCitJREJEYXRhYmFzZSogSURCVHJhbnNhY3Rpb246OmRiKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9kYXRhYmFzZS5nZXQoKTsKIH0KIAogUGFzc1JlZlB0cjxJREJPYmplY3RT
dG9yZT4gSURCVHJhbnNhY3Rpb246Om9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgLy8gRklYTUU6IEl0J2QgYmUgYmV0dGVyIChiZWNhdXNl
IGl0J3MgbW9yZSBkZXRlcm1pbmlzdGljKSBpZiB3ZSBkaWRuJ3Qgc3RhcnQgdGhyb3dpbmcgdGhp
cyB1bnRpbCB0aGUgY29tcGxldGUgb3IgYWJvcnQgZXZlbnQgZmlyZXMuCiAgICAgaWYgKG1fZmlu
aXNoZWQpIHsKICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6Tk9UX0FMTE9XRURf
RVJSOwogICAgICAgICByZXR1cm4gMDsKQEAgLTk1LDExICs5OSw2IEBAIHZvaWQgSURCVHJhbnNh
Y3Rpb246OmFib3J0KCkKICAgICAgICAgbV9iYWNrZW5kLT5hYm9ydCgpOwogfQogCi1TY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBJREJUcmFuc2FjdGlvbjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpOwotfQotCiB2b2lkIElEQlRyYW5zYWN0aW9uOjpvbkFib3J0KCkKIHsKICAgICBlbnF1
ZXVlRXZlbnQoSURCQWJvcnRFdmVudDo6Y3JlYXRlKElEQkFueTo6Y3JlYXRlKHRoaXMpKSk7CkBA
IC0xMTAsNiArMTA5LDI2IEBAIHZvaWQgSURCVHJhbnNhY3Rpb246Om9uQ29tcGxldGUoKQogICAg
IGVucXVldWVFdmVudChJREJDb21wbGV0ZUV2ZW50OjpjcmVhdGUoSURCQW55OjpjcmVhdGUodGhp
cykpKTsKIH0KIAorU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogSURCVHJhbnNhY3Rpb246OnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAoreworICAgIHJldHVybiBBY3RpdmVET01PYmplY3Q6
OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKK30KKworYm9vbCBJREJUcmFuc2FjdGlvbjo6ZGlz
cGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKK3sKKyAgICBBU1NFUlQoc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBBU1NFUlQoZXZlbnQtPnRhcmdldCgpID09IHRoaXMp
OworICAgIEFTU0VSVCghbV9maW5pc2hlZCk7CisgICAgbV9maW5pc2hlZCA9IHRydWU7CisKKyAg
ICBWZWN0b3I8UmVmUHRyPEV2ZW50VGFyZ2V0PiA+IHRhcmdldHM7CisgICAgdGFyZ2V0cy5hcHBl
bmQodGhpcyk7CisgICAgdGFyZ2V0cy5hcHBlbmQoZGIoKSk7CisKKyAgICBBU1NFUlQoZXZlbnQt
PmlzSURCQWJvcnRFdmVudCgpIHx8IGV2ZW50LT5pc0lEQkNvbXBsZXRlRXZlbnQoKSk7CisgICAg
cmV0dXJuIHN0YXRpY19jYXN0PElEQkV2ZW50Kj4oZXZlbnQuZ2V0KCkpLT5kaXNwYXRjaCh0YXJn
ZXRzKTsKK30KKwogYm9vbCBJREJUcmFuc2FjdGlvbjo6Y2FuU3VzcGVuZCgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuICFtX2JhY2tlbmQ7CkBAIC0xMzEsOSArMTUwLDYgQEAgdm9pZCBJREJUcmFuc2Fj
dGlvbjo6ZW5xdWV1ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQogICAgIGlmICghc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQoIW1f
ZmluaXNoZWQpOwotICAgIG1fZmluaXNoZWQgPSB0cnVlOwotCiAgICAgQVNTRVJUKHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1bWVudCgpKTsKICAgICBFdmVudFF1ZXVlKiBldmVudFF1
ZXVlID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpLT5l
dmVudFF1ZXVlKCk7CiAgICAgZXZlbnQtPnNldFRhcmdldCh0aGlzKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCVHJhbnNhY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvSURCVHJhbnNhY3Rpb24uaAppbmRleCAzOGRiM2I2ZWQwZDc0MDcxYTU4YzBjODdjZGQ5
YTg5ODlmNDZhODA3Li5hMWFlODRhMGJmMGY4NzVkNWI2YjYzNzBjYzQxMzA1MDhlMmU3NzJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5zYWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJUcmFuc2FjdGlvbi5oCkBAIC0zMCw2ICszMCw3IEBA
CiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJET01TdHJpbmdMaXN0
LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCiAjaW5j
bHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCkBAIC01MywxMCAr
NTQsMTAgQEAgcHVibGljOgogICAgICAgICBWRVJTSU9OX0NIQU5HRSA9IDIKICAgICB9OwogCi0g
ICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiBiYWNrZW5kKCkgY29uc3QgeyByZXR1
cm4gbV9iYWNrZW5kLmdldCgpOyB9CisgICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
KiBiYWNrZW5kKCkgY29uc3Q7CiAKICAgICB1bnNpZ25lZCBzaG9ydCBtb2RlKCkgY29uc3Q7Ci0g
ICAgSURCRGF0YWJhc2UqIGRiKCk7CisgICAgSURCRGF0YWJhc2UqIGRiKCkgY29uc3Q7CiAgICAg
UGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4gb2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1l
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBhYm9ydCgpOwogCkBAIC03MSw2ICs3Miw4IEBA
IHB1YmxpYzoKICAgICAvLyBFdmVudFRhcmdldAogICAgIHZpcnR1YWwgSURCVHJhbnNhY3Rpb24q
IHRvSURCVHJhbnNhY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9CiAgICAgdmlydHVhbCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Q7CisgICAgdmly
dHVhbCBib29sIGRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pOworICAgIGJvb2wgZGlz
cGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsg
cmV0dXJuIEV2ZW50VGFyZ2V0OjpkaXNwYXRjaEV2ZW50KGV2ZW50LCBlYyk7IH0KIAogICAgIC8v
IEFjdGl2ZURPTU9iamVjdAogICAgIHZpcnR1YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Q7Cg==
</data>
<flag name="review"
          id="73317"
          type_id="1"
          status="+"
          setter="japhet"
    />
          </attachment>
      

    </bug>

</bugzilla>