<?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>65682</bug_id>
          
          <creation_ts>2011-08-04 05:06:07 -0700</creation_ts>
          <short_desc>Web Inspector: Rename sourceId -&gt; scriptId in the protocol and the source code.</short_desc>
          <delta_ts>2011-08-04 06:07:45 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>446434</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-04 05:06:07 -0700</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446436</commentid>
    <comment_count>1</comment_count>
      <attachid>102897</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-04 05:16:09 -0700</bug_when>
    <thetext>Created attachment 102897
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446438</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-04 05:19:58 -0700</bug_when>
    <thetext>Attachment 102897 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/http...&quot; exit_code: 1

Source/WebCore/inspector/InspectorDebuggerAgent.cpp:184:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorDebuggerAgent.cpp:214:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorDebuggerAgent.cpp:318:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorDebuggerAgent.cpp:318:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorDebuggerAgent.h:85:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorDebuggerAgent.h:90:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorDebuggerAgent.h:90:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Total errors found: 7 in 22 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446441</commentid>
    <comment_count>3</comment_count>
      <attachid>102897</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-08-04 05:25:55 -0700</bug_when>
    <thetext>Comment on attachment 102897
Patch

Please split this change into two: sourceId-&gt;scriptId rename and the breakpoint url regex related change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446442</commentid>
    <comment_count>4</comment_count>
      <attachid>102899</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-04 05:29:25 -0700</bug_when>
    <thetext>Created attachment 102899
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446443</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-04 05:30:42 -0700</bug_when>
    <thetext>Attachment 102899 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/http...&quot; exit_code: 1

Source/WebCore/inspector/InspectorDebuggerAgent.cpp:184:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorDebuggerAgent.cpp:214:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorDebuggerAgent.cpp:318:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorDebuggerAgent.cpp:318:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorDebuggerAgent.h:85:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorDebuggerAgent.h:90:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorDebuggerAgent.h:90:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Total errors found: 7 in 22 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446450</commentid>
    <comment_count>6</comment_count>
      <attachid>102901</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-04 06:01:06 -0700</bug_when>
    <thetext>Created attachment 102901
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446451</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-04 06:03:20 -0700</bug_when>
    <thetext>Attachment 102901 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/http...&quot; exit_code: 1

Source/WebCore/inspector/InspectorDebuggerAgent.cpp:208:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorDebuggerAgent.cpp:312:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorDebuggerAgent.cpp:312:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorDebuggerAgent.h:90:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InspectorDebuggerAgent.h:90:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Total errors found: 5 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446455</commentid>
    <comment_count>8</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-04 06:07:45 -0700</bug_when>
    <thetext>Committed r92369: &lt;http://trac.webkit.org/changeset/92369&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102897</attachid>
            <date>2011-08-04 05:16:09 -0700</date>
            <delta_ts>2011-08-04 05:29:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65682-20110804161607.patch</filename>
            <type>text/plain</type>
            <size>57606</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIzNjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmOTA5ODY1ZGE3OWRlNGQ2ZjM5NDE4
MjMzZmNmMDE4YjAyZTg0ZTY3Li5hN2JiMzFmMDk0YWE2OGE1OGI3ZDE1ZDkwZjU3Y2RlZjdhMjM0
YzhmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDgtMDQgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlbmFtZSBzb3Vy
Y2VJZCB0byBzY3JpcHRJZCBpbiB0aGUgcHJvdG9jb2wgYW5kIGluc3BlY3RvciBjb2RlLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2ODIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanM6CisgICAgICAgIChpbml0aWFsaXplX0RlYnVnZ2Vy
VGVzdCk6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXNldC1icmVha3Bv
aW50LXJlZ2V4LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZGVi
dWdnZXItc2V0LWJyZWFrcG9pbnQtcmVnZXguaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVi
dWdnZXIvc291cmNlLWZpbGUuaHRtbDoKKwogMjAxMS0wOC0wNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0
aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFRlc3QgcHJvZ3Jlc3Npb24gYWZ0ZXIgPGh0dHA6Ly90
cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzkyMzQxPi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzCmluZGV4IGZkMDgyNGY2Y2E3NGQ0ZmMz
NDdmNjA0Y2YwNTE2NDgwMTM1MDE5MzQuLmIzMzc3MjIzM2UyOGIwNGU2MWQ2YjczNTM0OGNjNzYw
NmQwYjgyZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXItdGVzdC5qcwpAQCAtMTA3LDcgKzEwNyw3IEBAIEluc3BlY3RvclRlc3QuY2FwdHVyZVN0
YWNrVHJhY2UgPSBmdW5jdGlvbihjYWxsRnJhbWVzKQogICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJDYWxsIHN0YWNrOiIpOwogICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2FsbEZyYW1lcy5s
ZW5ndGg7IGkrKykgewogICAgICAgICB2YXIgZnJhbWUgPSBjYWxsRnJhbWVzW2ldOwotICAgICAg
ICB2YXIgc2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9yU291cmNl
SUQoZnJhbWUubG9jYXRpb24uc291cmNlSWQpOworICAgICAgICB2YXIgc2NyaXB0ID0gV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9yU291cmNlSUQoZnJhbWUubG9jYXRpb24uc2Ny
aXB0SWQpOwogICAgICAgICB2YXIgdXJsOwogICAgICAgICB2YXIgbGluZU51bWJlcjsKICAgICAg
ICAgaWYgKHNjcmlwdCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2RlYnVnZ2VyLXNldC1icmVha3BvaW50LXJlZ2V4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1zZXQtYnJlYWtwb2ludC1yZWdleC1leHBl
Y3RlZC50eHQKaW5kZXggMzM3OGFhMDljODk5MzEwYjI4OTA2M2U3YWVkM2UzOTJiZGRkYjIwMC4u
MzMyY2FiMDdmYjY5YmNmMWUwYTg0NGI1ZTE3ZmVkZDJkMDg5YzRiYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXNldC1icmVha3BvaW50LXJlZ2V4
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdn
ZXItc2V0LWJyZWFrcG9pbnQtcmVnZXgtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsMjAgQEAKIFRl
c3RzIERlYnVnZ2VyLnNldEJyZWFrcG9pbnRCeVVybCB3aXRoIGlzUmVnZXggc2V0IHRvIHRydWUu
CiAKIERlYnVnZ2VyIHdhcyBlbmFibGVkLgorCitSdW5uaW5nOiB0ZXN0U2V0Tm9uZU9mVVJMQW5k
UmVnZXgKK3sKKyAgICBjb2RlIDogLTMyMDAwCisgICAgbWVzc2FnZSA6ICJFaXRoZXIgdXJsIG9y
IHVybFJlZ2V4IG11c3QgYmUgc3BlY2lmaWVkLiIKK30KKworUnVubmluZzogdGVzdFNldEJvdGhV
UkxBbmRSZWdleAoreworICAgIGNvZGUgOiAtMzIwMDAKKyAgICBtZXNzYWdlIDogIkVpdGhlciB1
cmwgb3IgdXJsUmVnZXggbXVzdCBiZSBzcGVjaWZpZWQuIgorfQorCitSdW5uaW5nOiB0ZXN0U2V0
QnlSZWdleAogU2V0IHRpbWVyIGZvciB0ZXN0IGZ1bmN0aW9uLgogU2NyaXB0IGV4ZWN1dGlvbiBw
YXVzZWQuCiBDYWxsIHN0YWNrOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL2RlYnVnZ2VyLXNldC1icmVha3BvaW50LXJlZ2V4Lmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc2V0LWJyZWFrcG9pbnQtcmVnZXguaHRtbAppbmRl
eCA1NTY1ZmM1N2U5NDE1MzNlZTI1MmI1YjZmMWI4ZWMwMTM0OTI0ZDA3Li42MGUwNzM4ZjMwN2U3
OTUwYmUyODgxMjIyMmVjMzc2NTQ5NTljYmZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc2V0LWJyZWFrcG9pbnQtcmVnZXguaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc2V0LWJyZWFrcG9pbnQtcmVn
ZXguaHRtbApAQCAtMTUsMjYgKzE1LDUzIEBAIGZ1bmN0aW9uIGZvbygpCiAKIGZ1bmN0aW9uIHRl
c3QoKQogewotICAgIEluc3BlY3RvclRlc3Quc3RhcnREZWJ1Z2dlclRlc3Qoc3RlcDEpOwotCi0g
ICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgdmFyIGNvbHVtbk51bWJlciA9IHVu
ZGVmaW5lZDsKLSAgICAgICAgdmFyIGNvbmRpdGlvbiA9IHVuZGVmaW5lZDsKLSAgICAgICAgdmFy
IGlzUmVnZXggPSB0cnVlOwotICAgICAgICBEZWJ1Z2dlckFnZW50LnNldEJyZWFrcG9pbnRCeVVy
bCgiZGVidWdnZXItc2V0LWJyZWFrcG9pbnQuKiIsIDgsIGNvbHVtbk51bWJlciwgY29uZGl0aW9u
LCBpc1JlZ2V4LCBzdGVwMik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0RnVuY3Rpb25BbmRXYWl0VW50aWxQYXVzZWQo
c3RlcDMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAzKGNhbGxGcmFtZXMpCi0gICAgewot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNhcHR1cmVTdGFja1RyYWNlKGNhbGxGcmFtZXMpOwotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlRGVidWdnZXJUZXN0KCk7Ci0gICAgfQorICAgIElu
c3BlY3RvclRlc3QucnVuRGVidWdnZXJUZXN0U3VpdGUoWworICAgICAgICBmdW5jdGlvbiB0ZXN0
U2V0Tm9uZU9mVVJMQW5kUmVnZXgobmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIHVy
bCA9ICJkZWJ1Z2dlci1zZXQtYnJlYWtwb2ludC5qcyI7CisgICAgICAgICAgICB2YXIgdXJsUmVn
ZXggPSAiZGVidWdnZXItc2V0LWJyZWFrcG9pbnQuKiI7CisgICAgICAgICAgICBEZWJ1Z2dlckFn
ZW50LnNldEJyZWFrcG9pbnRCeVVybCh1bmRlZmluZWQsIHVuZGVmaW5lZCwgMSwgc3RlcDIpOwor
CisgICAgICAgICAgICBmdW5jdGlvbiBzdGVwMihyZXN1bHQpCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wKHJlc3VsdCk7CisgICAgICAgICAgICAgICAg
bmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICB9LAorCisgICAgICAgIGZ1bmN0aW9uIHRl
c3RTZXRCb3RoVVJMQW5kUmVnZXgobmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIHVy
bCA9ICJkZWJ1Z2dlci1zZXQtYnJlYWtwb2ludC5qcyI7CisgICAgICAgICAgICB2YXIgdXJsUmVn
ZXggPSAiZGVidWdnZXItc2V0LWJyZWFrcG9pbnQuKiI7CisgICAgICAgICAgICBEZWJ1Z2dlckFn
ZW50LnNldEJyZWFrcG9pbnRCeVVybCh1cmwsIHVybFJlZ2V4LCAxLCBzdGVwMik7CisKKyAgICAg
ICAgICAgIGZ1bmN0aW9uIHN0ZXAyKHJlc3VsdCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmR1bXAocmVzdWx0KTsKKyAgICAgICAgICAgICAgICBuZXh0KCk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisKKyAgICAgICAgZnVuY3Rpb24gdGVzdFNldEJ5
UmVnZXgobmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIHVybCA9IHVuZGVmaW5lZDsK
KyAgICAgICAgICAgIHZhciB1cmxSZWdleCA9ICJkZWJ1Z2dlci1zZXQtYnJlYWtwb2ludC4qIjsK
KyAgICAgICAgICAgIHZhciBjb2x1bW5OdW1iZXIgPSB1bmRlZmluZWQ7CisgICAgICAgICAgICB2
YXIgY29uZGl0aW9uID0gdW5kZWZpbmVkOworICAgICAgICAgICAgRGVidWdnZXJBZ2VudC5zZXRC
cmVha3BvaW50QnlVcmwodXJsLCB1cmxSZWdleCwgOCwgY29sdW1uTnVtYmVyLCBjb25kaXRpb24s
IHN0ZXAyKTsKKworICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIocmVzdWx0KQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucnVuVGVzdEZ1bmN0aW9uQW5kV2Fp
dFVudGlsUGF1c2VkKHN0ZXAzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAg
ICBmdW5jdGlvbiBzdGVwMyhjYWxsRnJhbWVzKQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuY2FwdHVyZVN0YWNrVHJhY2UoY2FsbEZyYW1lcyk7CisgICAgICAg
ICAgICAgICAgbmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgXSk7CiB9CiAK
IDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Nv
dXJjZS1maWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc291cmNlLWZp
bGUuaHRtbAppbmRleCA4NDJhOWYzODFlNTEzODA1NzhjNGM3NjMwNWY5YTJkNGY2YjNjYTExLi4y
OGFkNjIxYmNhZjgwYWFiOGEwZTY1ZTkxNTRlMGY4OWZiNGVjNjc5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc291cmNlLWZpbGUuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc291cmNlLWZpbGUuaHRtbApAQCAtMzgsNyArMzgsNyBA
QCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIGNoZWNrUmF3TG9jYXRpb24oc2NyaXB0
LCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGxvY2F0aW9uKQogICAgIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoc2NyaXB0LnNvdXJjZUlkLCBsb2NhdGlvbi5zb3VyY2VJ
ZCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHNjcmlwdC5zY3JpcHRJZCwg
bG9jYXRpb24uc2NyaXB0SWQpOwogICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhs
aW5lTnVtYmVyLCBsb2NhdGlvbi5saW5lTnVtYmVyKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
c3NlcnRFcXVhbHMoY29sdW1uTnVtYmVyLCBsb2NhdGlvbi5jb2x1bW5OdW1iZXIpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5YzM4MjEyOTEwNTBlYzAyMGEzNjAxODM0NThkYjI0ZmEzZWJkYmYzLi43
NTM2MDVmN2QzNTM2ZjQ5NTJmZmM0MzE4MzZhYzA0NTBmMDk3YWVlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNjkgQEAKKzIwMTEtMDgtMDQgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUu
Y29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlbmFtZSBzb3VyY2VJZCB0byBzY3JpcHRJ
ZCBpbiB0aGUgcHJvdG9jb2wgYW5kIGluc3BlY3RvciBjb2RlLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2ODIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNv
dXJjZS5qczoKKyAgICAgICAgKCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29u
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29uc29sZUFnZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50Lmg6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckRPTUFnZW50OjpidWlsZE9iamVjdEZvckV2ZW50TGlzdGVuZXIpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNldEJyZWFrcG9pbnRCeVVybCk6CisgICAg
ICAgIChXZWJDb3JlOjpwYXJzZUxvY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQ6OnNldEJyZWFrcG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6Y29udGludWVUb0xvY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnJlc29sdmVCcmVha3BvaW50KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNldFNjcmlwdFNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpnZXRTY3JpcHRTb3VyY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlkUGFyc2VTb3VyY2UpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBsKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgICog
aW5zcGVjdG9yL1NjcmlwdERlYnVnTGlzdGVuZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL0RlYnVnZ2VyTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJN
b2RlbC5wcm90b3R5cGUuc2V0QnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVi
dWdnZXJNb2RlbC5wcm90b3R5cGUuc2NyaXB0Rm9yU291cmNlSUQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlLnF1ZXJ5U2NyaXB0cyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUuc2V0U2NyaXB0U291cmNlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5fZGlkRWRpdFNjcmlw
dFNvdXJjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUu
X3BhcnNlZFNjcmlwdFNvdXJjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJEaXNw
YXRjaGVyLnByb3RvdHlwZS5zY3JpcHRQYXJzZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyRGlzcGF0Y2hlci5wcm90b3R5cGUuYnJlYWtwb2ludFJlc29sdmVkKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUucmVn
aXN0ZXJBbmNob3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9u
TW9kZWwucHJvdG90eXBlLl91cGRhdGVBbmNob3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLnNldFNjcmlwdFNvdXJjZS5kaWRSZWNl
aXZlU291cmNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1v
ZGVsLnByb3RvdHlwZS5zZXRTY3JpcHRTb3VyY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl9zZXRCcmVha3BvaW50SW5EZWJ1Z2dl
ci5kaWRHZXRTY3JpcHRMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX3NldEJyZWFrcG9pbnRJbkRlYnVnZ2VyKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5f
YnJlYWtwb2ludEFkZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRh
dGlvbk1vZGVsLnByb3RvdHlwZS5zZXQgX2RlYnVnZ2VyUGF1c2VkKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fc291cmNlRmlsZUZv
clNjcmlwdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2Rl
bC5wcm90b3R5cGUuX3NjcmlwdEZvclNvdXJjZUZpbGVJZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX2NyZWF0ZVNvdXJjZUZpbGVJ
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJlc2VuYXRpb25DYWxsRnJhbWUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlByZXNlbmF0aW9uQ2FsbEZyYW1lLnByb3RvdHlwZS5zb3VyY2VMaW5l
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V2ZW50TGlzdGVuZXJzU2lkZWJhclBh
bmUuanM6CisgICAgICAgICguKToKKyAgICAgICAgKCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TY3JpcHQucHJvdG90eXBlLnJlcXVlc3RTb3VyY2UpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlNjcmlwdC5wcm90b3R5cGUuZWRpdFNvdXJjZSk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGaWxlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlJhd1NvdXJjZUNvZGUucHJvdG90eXBlLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLnByb3RvdHlwZS5mb3JjZUxvYWRDb250ZW50
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLnByb3RvdHlwZS5fY29uY2F0
ZW5hdGVTY3JpcHRzQ29udGVudCk6CisKIDIwMTEtMDgtMDMgIEFsaWNlIEJveGhhbGwgIDxhYm94
aGFsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQW4gZWxlbWVudCB3aXRoIHJvbGU9dGV4dGJv
eCBzaG91bGQgaGF2ZSBzZXR0YWJsZSBBWFZhbHVlIHVubGVzcyByZWFkLW9ubHkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwppbmRleCBhYzMz
YTEyODBjYjIwNzUxMTMxNzM0N2YyMDY3MjJlZjgyNWIwMWM2Li5hNDFiZDdlZjdlNWRiYzI5ZGVm
MmYyYTljZjVmNDZhZWUyMDAzMjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0U291cmNlLmpzCkBAIC00ODEsNyArNDgxLDcgQEAgSW5qZWN0ZWRTY3Jp
cHQuQ2FsbEZyYW1lUHJveHkgPSBmdW5jdGlvbihvcmRpbmFsLCBjYWxsRnJhbWUpCiB7CiAgICAg
dGhpcy5pZCA9ICJ7XCJvcmRpbmFsXCI6IiArIG9yZGluYWwgKyAiLFwiaW5qZWN0ZWRTY3JpcHRJ
ZFwiOiIgKyBpbmplY3RlZFNjcmlwdElkICsgIn0iOwogICAgIHRoaXMuZnVuY3Rpb25OYW1lID0g
KGNhbGxGcmFtZS50eXBlID09PSAiZnVuY3Rpb24iID8gY2FsbEZyYW1lLmZ1bmN0aW9uTmFtZSA6
ICIiKTsKLSAgICB0aGlzLmxvY2F0aW9uID0geyBzb3VyY2VJZDogU3RyaW5nKGNhbGxGcmFtZS5z
b3VyY2VJRCksIGxpbmVOdW1iZXI6IGNhbGxGcmFtZS5saW5lLCBjb2x1bW5OdW1iZXI6IGNhbGxG
cmFtZS5jb2x1bW4gfTsKKyAgICB0aGlzLmxvY2F0aW9uID0geyBzY3JpcHRJZDogU3RyaW5nKGNh
bGxGcmFtZS5zb3VyY2VJRCksIGxpbmVOdW1iZXI6IGNhbGxGcmFtZS5saW5lLCBjb2x1bW5OdW1i
ZXI6IGNhbGxGcmFtZS5jb2x1bW4gfTsKICAgICB0aGlzLnNjb3BlQ2hhaW4gPSB0aGlzLl93cmFw
U2NvcGVDaGFpbihjYWxsRnJhbWUpOwogICAgIHRoaXMudGhpcyA9IGluamVjdGVkU2NyaXB0Ll93
cmFwT2JqZWN0KGNhbGxGcmFtZS50aGlzT2JqZWN0LCAiYmFja3RyYWNlIik7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggODlkNWVkZTRhYTJhMDJiOGU0ZmFh
NGMxNGQ0ZTI4ZWMwYWRmYzQ3NC4uOWM1OGZhYjZkMDg5MGM4OWMzOTBhNTMxMTAzZjIzYmE1OTEx
YzdkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29u
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtMzMxLDcg
KzMzMSw3IEBACiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidGV4dCIsICJ0eXBlIjog
InN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJNZXNzYWdlIHRleHQuIiB9LAogICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogIm5ldHdvcmtJZGVudGlmaWVyIiwgInR5cGUiOiAiaW50ZWdlciIs
ICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJJZGVudGlmaWVyIG9mIHRoZSBuZXR3
b3JrIHJlcXVlc3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb25zb2xlIG1lc3NhZ2UuIiB9LAogICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBhcmFtZXRlcnMiLCAidHlwZSI6ICJhcnJheSIs
ICJpdGVtcyI6IHsgIiRyZWYiOiAiUnVudGltZS5SZW1vdGVPYmplY3QiIH0sICJkZXNjcmlwdGlv
biI6ICJNZXNzYWdlIHBhcmFtZXRlcnMgaW4gY2FzZSBvZiB0aGUgZm9ybWF0dGVkIG1lc3NhZ2Uu
IiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0YWNrVHJhY2UiLCAiJHJlZiI6
ICJTdGFja1RyYWNlIiwgImRlc2NyaXB0aW9uIjogIlN0YWNrIHRyYWNlIGZvciBhc3NlcnQgYW5k
IGVycm9yIG1lc3NhZ2VzLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzdGFj
a1RyYWNlIiwgIiRyZWYiOiAiU3RhY2tUcmFjZSIsICJkZXNjcmlwdGlvbiI6ICJTdGFjayB0cmFj
ZSBmb3IgYXNzZXJ0IGFuZCBlcnJvciBtZXNzYWdlcy4iIH0KICAgICAgICAgICAgICAgICBdCiAg
ICAgICAgICAgICB9LAogICAgICAgICAgICAgewpAQCAtMTQ1OSwxMCArMTQ1OSwxNSBAQAogICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiRGVidWdnZXIgZG9tYWluIGV4cG9zZXMgSmF2YVNjcmlwdCBk
ZWJ1Z2dpbmcgZnVuY3Rpb25zLiBJdCBhbGxvd3Mgc2V0dGluZyBhbmQgcmVtb3ZpbmcgYnJlYWtw
b2ludHMsIHN0ZXBwaW5nIHRocm91Z2ggZXhlY3V0aW9uLCBleHBsb3Jpbmcgc3RhY2sgdHJhY2Vz
LCBldGMuIiwKICAgICAgICAgInR5cGVzIjogWwogICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICJpZCI6ICJTY3JpcHRJZCIsCisgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwK
KyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVW5pcXVlIHNjcmlwdCBpZGVudGlmaWVy
LiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgImlkIjog
IkxvY2F0aW9uIiwKICAgICAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAg
ICAgICAgICJwcm9wZXJ0aWVzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNv
dXJjZUlkIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlNjcmlwdCBpZGVudGlm
aWVyIGFzIHJlcG9ydGVkIGJ5IHRoZSA8Y29kZT5zY3JpcHRQYXJzZWQ8L2NvZGU+IiB9LAorICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNjcmlwdElkIiwgIiRyZWYiOiAiU2NyaXB0SWQi
LCAiZGVzY3JpcHRpb24iOiAiU2NyaXB0IGlkZW50aWZpZXIgYXMgcmVwb3J0ZWQgaW4gdGhlIDxj
b2RlPkRlYnVnZ2VyLnNjcmlwdFBhcnNlZDwvY29kZT4uIiB9LAogICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImxpbmVOdW1iZXIiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9u
IjogIkxpbmUgbnVtYmVyIGluIHRoZSBzY3JpcHQuIiB9LAogICAgICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImNvbHVtbk51bWJlciIsICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwiOiB0
cnVlLCAiZGVzY3JpcHRpb24iOiAiQ29sdW1uIG51bWJlciBpbiB0aGUgc2NyaXB0LiIgfQogICAg
ICAgICAgICAgICAgIF0sCkBAIC0xNDcyLDIyICsxNDc3LDIyIEBACiAgICAgICAgICAgICAgICAg
ImlkIjogIkNhbGxGcmFtZSIsCiAgICAgICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAg
ICAgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJpZCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJDYWxsIGZyYW1lIGlk
ZW50aWZpZXIuIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZ1bmN0aW9uTmFt
ZSIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJOYW1lIG9mIHRoZSBmdW5jdGlv
biBjYWxsZWQgb24gdGhpcyBmcmFtZS4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiaWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiQ2FsbCBmcmFtZSBpZGVu
dGlmaWVyLiBUaGlzIGlkZW50aWZpZXIgaXMgb25seSB2YWxpZCB3aGlsZSB0aGUgdmlydHVhbCBt
YWNoaW5lIGlzIHBhdXNlZC4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnVu
Y3Rpb25OYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIk5hbWUgb2YgdGhl
IEphdmFTY3JpcHQgZnVuY3Rpb24gY2FsbGVkIG9uIHRoaXMgY2FsbCBmcmFtZS4iIH0sCiAgICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibG9jYXRpb24iLCAiJHJlZiI6ICJMb2NhdGlvbiIs
ICJkZXNjcmlwdGlvbiI6ICJMb2NhdGlvbiBpbiB0aGUgc291cmNlIGNvZGUuIiB9LAotICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInNjb3BlQ2hhaW4iLCAidHlwZSI6ICJhcnJheSIsICJp
dGVtcyI6IHsgIiRyZWYiOiAiU2NvcGUiIH0sICJkZXNjcmlwdGlvbiI6ICJTY29wZSBjaGFpbiBm
b3IgZ2l2ZW4gY2FsbCBmcmFtZS4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
c2NvcGVDaGFpbiIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJTY29wZSIg
fSwgImRlc2NyaXB0aW9uIjogIlNjb3BlIGNoYWluIGZvciB0aGlzIGNhbGwgZnJhbWUuIiB9LAog
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInRoaXMiLCAiJHJlZiI6ICJSdW50aW1lLlJl
bW90ZU9iamVjdCIsICJkZXNjcmlwdGlvbiI6ICI8Y29kZT50aGlzPC9jb2RlPiBvYmplY3QgZm9y
IHRoaXMgY2FsbCBmcmFtZS4iIH0KICAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6ICJEZWJ1Z2dlciBjYWxsIGZyYW1lLiBBcnJheSBvZiBjYWxsIGZyYW1l
cyBmb3JtIGNhbGwgc3RhY2suIgorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJKYXZh
U2NyaXB0IGNhbGwgZnJhbWUuIEFycmF5IG9mIGNhbGwgZnJhbWVzIGZvcm0gdGhlIGNhbGwgc3Rh
Y2suIgogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAiaWQi
OiAiU2NvcGUiLAogICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAg
ICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidHlw
ZSIsICJ0eXBlIjogInN0cmluZyIsICJlbnVtIjogWyJnbG9iYWwiLCAibG9jYWwiLCAid2l0aCIs
ICJjbG9zdXJlIiwgImNhdGNoIl0sICJkZXNjcmlwdGlvbiI6ICJTY29wZSB0eXBlLiIgfSwKLSAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvYmplY3QiLCAiJHJlZiI6ICJSdW50aW1lLlJl
bW90ZU9iamVjdCIsICJkZXNjcmlwdGlvbiI6ICJPYmplY3QgcmVwcmVzZW50aW5nIHRoZSBzY29w
ZS4iIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvYmplY3QiLCAiJHJlZiI6ICJS
dW50aW1lLlJlbW90ZU9iamVjdCIsICJkZXNjcmlwdGlvbiI6ICJPYmplY3QgcmVwcmVzZW50aW5n
IHRoZSBzY29wZS4gRm9yIDxjb2RlPmdsb2JhbDwvY29kZT4gYW5kIDxjb2RlPndpdGg8L2NvZGU+
IHNjb3BlcyBpdCByZXByZXNlbnRzIHRoZSBhY3R1YWwgb2JqZWN0OyBmb3IgdGhlIHJlc3Qgb2Yg
dGhlIHNjb3BlcywgaXQgaXMgYXJ0aWZpY2lhbCB0cmFuc2llbnQgb2JqZWN0IGVudW1lcmF0aW5n
IHNjb3BlIHZhcmlhYmxlcyBhcyBpdHMgcHJvcGVydGllcy4iIH0KICAgICAgICAgICAgICAgICBd
LAotICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEZWJ1Z2dlciBjYWxsIGZyYW1lLiBB
cnJheSBvZiBjYWxsIGZyYW1lcyBmb3JtIGNhbGwgc3RhY2suIgorICAgICAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJTY29wZSBkZXNjcmlwdGlvbi4iCiAgICAgICAgICAgICB9CiAgICAgICAg
IF0sCiAgICAgICAgICJjb21tYW5kcyI6IFsKQEAgLTE1MDksMTcgKzE1MTQsMTcgQEAKICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJzZXRCcmVha3BvaW50QnlVcmwiLAog
ICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInVybCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJVUkwgb2YgdGhl
IHJlc291cmNlIHRvIHNldCBicmVha3BvaW50IG9uLiIgfSwKKyAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVz
Y3JpcHRpb24iOiAiVVJMIG9mIHRoZSByZXNvdXJjZXMgdG8gc2V0IGJyZWFrcG9pbnQgb24uIiB9
LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVybFJlZ2V4IiwgInR5cGUiOiAic3Ry
aW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlJlZ2V4IHBhdHRlcm4gZm9y
IHRoZSBVUkxzIG9mIHRoZSByZXNvdXJjZXMgdG8gc2V0IGJyZWFrcG9pbnRzIG9uLiBFaXRoZXIg
PGNvZGU+dXJsPC9jb2RlPiBvciA8Y29kZT51cmxSZWdleDwvY29kZT4gbXVzdCBiZSBzcGVjaWZp
ZWQuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImxpbmVOdW1iZXIiLCAidHlw
ZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIkxpbmUgbnVtYmVyIHRvIHNldCBicmVha3Bv
aW50IGF0LiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb2x1bW5OdW1iZXIi
LCAidHlwZSI6ICJpbnRlZ2VyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIk9m
ZnNldCBpbiB0aGUgbGluZSB0byBzZXQgYnJlYWtwb2ludCBhdC4iIH0sCi0gICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiY29uZGl0aW9uIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFs
IjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkV4cHJlc3Npb24gdG8gdXNlIGFzIGEgYnJlYWtwb2lu
dCBjb25kaXRpb24uIFdoZW4gc3BlY2lmaWVkLCBkZWJ1Z2dlciB3aWxsIG9ubHkgc3RvcCBvbiB0
aGUgYnJlYWtwb2ludCBpZiB0aGlzIGV4cHJlc3Npb24gZXZhbHVhdGVzIHRvIHRydWUuIiB9LAot
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlzUmVnZXgiLCAidHlwZSI6ICJib29sZWFu
IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIklmIHRydWUsIGdpdmVuIDxjb2Rl
PnVybDwvY29kZT4gaXMgY29uc2lkZXJlZCB0byBiZSBhIHJlZ3VsYXIgZXhwcmVzc2lvbi4iIH0K
KyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb25kaXRpb24iLCAidHlwZSI6ICJzdHJp
bmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiRXhwcmVzc2lvbiB0byB1c2Ug
YXMgYSBicmVha3BvaW50IGNvbmRpdGlvbi4gV2hlbiBzcGVjaWZpZWQsIGRlYnVnZ2VyIHdpbGwg
b25seSBzdG9wIG9uIHRoZSBicmVha3BvaW50IGlmIHRoaXMgZXhwcmVzc2lvbiBldmFsdWF0ZXMg
dG8gdHJ1ZS4iIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJyZXR1cm5z
IjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJyZWFrcG9pbnRJZCIsICJ0eXBl
IjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgY3JlYXRlZCBicmVha3BvaW50
IGZvciBmdXJ0aGVyIG1hbmlwdWxhdGlvbnMuIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImxvY2F0aW9ucyIsICJvcHRpb25hbCI6IHRydWUsICJ0eXBlIjogImFycmF5IiwgIml0
ZW1zIjogeyAiJHJlZiI6ICJMb2NhdGlvbiJ9LCAiZGVzY3JpcHRpb24iOiAiTGlzdCBvZiB0aGUg
bG9jYXRpb25zIHRoaXMgYnJlYWtwb2ludCByZXNvbHZlZCBpbnRvLiIgfQorICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImJyZWFrcG9pbnRJZCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNj
cmlwdGlvbiI6ICJJZCBvZiB0aGUgY3JlYXRlZCBicmVha3BvaW50IGZvciBmdXJ0aGVyIHJlZmVy
ZW5jZS4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibG9jYXRpb25zIiwgIm9w
dGlvbmFsIjogdHJ1ZSwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIkxvY2F0
aW9uIn0sICJkZXNjcmlwdGlvbiI6ICJMaXN0IG9mIHRoZSBsb2NhdGlvbnMgdGhpcyBicmVha3Bv
aW50IHJlc29sdmVkIGludG8gdXBvbiBhZGRpdGlvbi4iIH0KICAgICAgICAgICAgICAgICBdLAot
ICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTZXRzIEphdmFTY3JpcHQgYnJlYWtwb2lu
dCBhdCBhIGdpdmVuIGxvY2F0aW9uIHNwZWNpZmllZCBieSBVUkwuIFRoaXMgYnJlYWtwb2ludCB3
aWxsIHN1cnZpdmUgcGFnZSByZWxvYWQuIgorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
ICJTZXRzIEphdmFTY3JpcHQgYnJlYWtwb2ludCBhdCBnaXZlbiBsb2NhdGlvbiBzcGVjaWZpZWQg
ZWl0aGVyIGJ5IFVSTCBvciBVUkwgcmVnZXguIE9uY2UgdGhpcyBjb21tYW5kIGlzIGlzc3VlZCwg
YWxsIGV4aXN0aW5nIHBhcnNlZCBzY3JpcHRzIHdpbGwgaGF2ZSBicmVha3BvaW50cyByZXNvbHZl
ZCBhbmQgcmV0dXJuZWQgaW4gPGNvZGU+bG9jYXRpb25zPC9jb2RlPiBwcm9wZXJ0eS4gRnVydGhl
ciBtYXRjaGluZyBzY3JpcHQgcGFyc2luZyB3aWxsIHJlc3VsdCBpbiBzdWJzZXF1ZW50IDxjb2Rl
PkRlYnVnZ2VyLmJyZWFrcG9pbnRSZXNvbHZlZDwvY29kZT4gZXZlbnRzIGlzc3VlZC4gVGhpcyBs
b2dpY2FsIGJyZWFrcG9pbnQgd2lsbCBzdXJ2aXZlIHBhZ2UgcmVsb2Fkcy4iCiAgICAgICAgICAg
ICB9LAogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogInNldEJyZWFrcG9p
bnQiLApAQCAtMTU3MCw3ICsxNTc1LDcgQEAKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAibmFtZSI6ICJzZXRTY3JpcHRTb3VyY2UiLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJz
IjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNvdXJjZUlkIiwgInR5cGUiOiAi
c3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBzY3JpcHQgdG8gZWRpdC4iIH0sCisg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2NyaXB0SWQiLCAiJHJlZiI6ICJTY3JpcHRJ
ZCIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgc2NyaXB0IHRvIGVkaXQuIiB9LAogICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInNjcmlwdFNvdXJjZSIsICJ0eXBlIjogInN0cmluZyIs
ICJkZXNjcmlwdGlvbiI6ICJOZXcgY29udGVudCBvZiB0aGUgc2NyaXB0LiIgfSwKICAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJwcmV2aWV3IiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRp
b25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICIgSWYgdHJ1ZSB0aGUgY2hhbmdlIHdpbGwgbm90
IGFjdHVhbGx5IGJlIGFwcGxpZWQuIFByZXZpZXcgbW9kZSBtYXkgYmUgdXNlZCB0byBnZXQgcmVz
dWx0IGRlc2NyaXB0aW9uIHdpdGhvdXQgYWN0dWFsbHkgbW9kaWZ5aW5nIHRoZSBjb2RlLiIgfQog
ICAgICAgICAgICAgICAgIF0sCkBAIC0xNTgzLDcgKzE1ODgsNyBAQAogICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICJuYW1lIjogImdldFNjcmlwdFNvdXJjZSIsCiAgICAgICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic291cmNl
SWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiSWQgb2YgdGhlIHNjcmlwdCB0
byBnZXQgc291cmNlIGZvci4iIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzY3Jp
cHRJZCIsICIkcmVmIjogIlNjcmlwdElkIiwgImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBzY3Jp
cHQgdG8gZ2V0IHNvdXJjZSBmb3IuIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAg
ICAgICAicmV0dXJucyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzY3JpcHRT
b3VyY2UiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiU2NyaXB0IHNvdXJjZS4i
IH0KQEAgLTE2MjQsNyArMTYyOSw3IEBACiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
Im5hbWUiOiAic2NyaXB0UGFyc2VkIiwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsK
LSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzb3VyY2VJZCIsICJ0eXBlIjogInN0cmlu
ZyIsICJkZXNjcmlwdGlvbiI6ICJJZGVudGlmaWVyIG9mIHRoZSBzY3JpcHQgcGFyc2VkLiIgfSwK
KyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzY3JpcHRJZCIsICIkcmVmIjogIlNjcmlw
dElkIiwgImRlc2NyaXB0aW9uIjogIklkZW50aWZpZXIgb2YgdGhlIHNjcmlwdCBwYXJzZWQuIiB9
LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVybCIsICJ0eXBlIjogInN0cmluZyIs
ICJkZXNjcmlwdGlvbiI6ICJVUkwgb2YgdGhlIHNjcmlwdCBwYXJzZWQgKGlmIGFueSkuIiB9LAog
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0YXJ0TGluZSIsICJ0eXBlIjogImludGVn
ZXIiLCAiZGVzY3JpcHRpb24iOiAiTGluZSBvZmZzZXQgb2YgdGhlIHNjcmlwdCB3aXRoaW4gdGhl
IHJlc291cmNlIHdpdGggZ2l2ZW4gVVJMIChmb3Igc2NyaXB0IHRhZ3MpLiIgfSwKICAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJzdGFydENvbHVtbiIsICJ0eXBlIjogImludGVnZXIiLCAi
ZGVzY3JpcHRpb24iOiAiQ29sdW1uIG9mZnNldCBvZiB0aGUgc2NyaXB0IHdpdGhpbiB0aGUgcmVz
b3VyY2Ugd2l0aCBnaXZlbiBVUkwuIiB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAppbmRleCAwODY3Yzk2ZGNlYTA4ZjA2MzJlNWQ3
ZDcyODU0NDQwY2QwNGVhNDg3Li5lOTRiY2E5NjkyMmM1ODIyYjBmMWMzZjM5ZDhjNThkODI2MTVj
ZjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29s
ZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29s
ZUFnZW50LmNwcApAQCAtMTQyLDExICsxNDIsMTEgQEAgdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdl
bnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXAK
ICAgICBhZGRDb25zb2xlTWVzc2FnZShhZG9wdFB0cihuZXcgQ29uc29sZU1lc3NhZ2Uoc291cmNl
LCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgYXJndW1lbnRzLCBjYWxsU3RhY2spKSk7CiB9CiAKLXZv
aWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3Vy
Y2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJ
ZCkKK3ZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKE1lc3Nh
Z2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBz
Y3JpcHRJZCkKIHsKICAgICBpZiAoIW1faW5zcGVjdG9yQWdlbnQtPmVuYWJsZWQoKSkKICAgICAg
ICAgcmV0dXJuOwotICAgIGFkZENvbnNvbGVNZXNzYWdlKGFkb3B0UHRyKG5ldyBDb25zb2xlTWVz
c2FnZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VJZCkp
KTsKKyAgICBhZGRDb25zb2xlTWVzc2FnZShhZG9wdFB0cihuZXcgQ29uc29sZU1lc3NhZ2Uoc291
cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgc2NyaXB0SWQpKSk7CiB9CiAK
IHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpzdGFydFRpbWluZyhjb25zdCBTdHJpbmcmIHRp
dGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNv
bGVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2Vu
dC5oCmluZGV4IGNkOTY1YjFhY2M0OTZmYmI5ZTEyNmM5YmVmNGQzZDljODUzYTMyNDMuLjgzOWY5
NTAwNWQzZDFhZmU4YTUxNDc2NzYyOThmMjJjODFjM2U4ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKQEAgLTY4LDcgKzY4LDcgQEAg
cHVibGljOgogICAgIHZvaWQgY2xlYXJGcm9udGVuZCgpOwogCiAgICAgdm9pZCBhZGRNZXNzYWdl
VG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRy
PFNjcmlwdENhbGxTdGFjaz4pOwotICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdl
U291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlSWQpOworICAgIHZvaWQg
YWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0
cmluZyYgc2NyaXB0SWQpOwogCiAgICAgdm9pZCBzdGFydFRpbWluZyhjb25zdCBTdHJpbmcmIHRp
dGxlKTsKICAgICB2b2lkIHN0b3BUaW1pbmcoY29uc3QgU3RyaW5nJiB0aXRsZSwgUGFzc1JlZlB0
cjxTY3JpcHRDYWxsU3RhY2s+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oCmluZGV4IGRlNDMxN2QzMjc4
ZTBlZjYxM2Q1YTM3NTgyMTVjYzY2MWJjZGFkNTAuLjhhNDA4NTlmZTFkM2FmZDM2Nzg3NzM4YmM5
YTFkZWY5MGRjZWY0NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaApAQCAtNDYsMTEgKzQ2LDExIEBA
IGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29s
ZShQYWdlKiBwYWdlLCBNZXNzYWdlU291CiAjZW5kaWYKIH0KIAotaW5saW5lIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKFBhZ2UqIHBhZ2UsIE1lc3Nh
Z2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBz
b3VyY2VJZCkKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2Fn
ZVRvQ29uc29sZShQYWdlKiBwYWdlLCBNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUg
dHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVk
IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc2NyaXB0SWQpCiB7CiAjaWYgRU5BQkxFKElOU1BF
Q1RPUikKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9
IGluc3RydW1lbnRpbmdBZ2VudHNGb3JQYWdlKHBhZ2UpKQotICAgICAgICBhZGRNZXNzYWdlVG9D
b25zb2xlSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNz
YWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VJZCk7CisgICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGVJ
bXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGxp
bmVOdW1iZXIsIHNjcmlwdElkKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCBjMDAzNDcxMDQ0OGZjNWQ3ZjJiZmZk
ZWU2YTEzMTBhYjkzMDg5OTFjLi5jOTA2ZTFmMjJkNTk5MWNkM2FiNzNhMjA3NTAyZGRhOWIyZGJh
ZGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5j
cHAKQEAgLTEyMzIsNyArMTIzMiw3IEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBJbnNw
ZWN0b3JET01BZ2VudDo6YnVpbGRPYmplY3RGb3JFdmVudExpc3RlbmVyKGNvbnN0CiAgICAgaW50
IGxpbmVOdW1iZXI7CiAgICAgaWYgKGV2ZW50TGlzdGVuZXJIYW5kbGVyTG9jYXRpb24obm9kZS0+
ZG9jdW1lbnQoKSwgZXZlbnRMaXN0ZW5lci5nZXQoKSwgc291cmNlTmFtZSwgbGluZU51bWJlcikp
IHsKICAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gbG9jYXRpb24gPSBJbnNwZWN0b3JP
YmplY3Q6OmNyZWF0ZSgpOwotICAgICAgICBsb2NhdGlvbi0+c2V0U3RyaW5nKCJzb3VyY2VJZCIs
IHNvdXJjZU5hbWUpOworICAgICAgICBsb2NhdGlvbi0+c2V0U3RyaW5nKCJzY3JpcHRJZCIsIHNv
dXJjZU5hbWUpOwogICAgICAgICBsb2NhdGlvbi0+c2V0TnVtYmVyKCJsaW5lTnVtYmVyIiwgbGlu
ZU51bWJlcik7CiAgICAgICAgIHZhbHVlLT5zZXRPYmplY3QoImxvY2F0aW9uIiwgbG9jYXRpb24p
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1
Z2dlckFnZW50LmNwcAppbmRleCBmMjhlYTU0NTE1YzE5YTQ3NTdhYjRiMWQ5MTRiNmM2ZDU1YmQ0
NmQ0Li5iNjI1NWM5YTcwNWM1M2ZiYTQ1OTE3YjIxMWVmODg5N2YxMDY4NmVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCkBA
IC0xODEsMTEgKzE4MSwxNyBAQCBzdGF0aWMgYm9vbCBtYXRjaGVzKGNvbnN0IFN0cmluZyYgdXJs
LCBjb25zdCBTdHJpbmcmIHBhdHRlcm4sIGJvb2wgaXNSZWdleCkKICAgICByZXR1cm4gdXJsID09
IHBhdHRlcm47CiB9CiAKLXZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2V0QnJlYWtwb2lu
dEJ5VXJsKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiB1cmwsIGludCBsaW5lTnVtYmVyLCBj
b25zdCBpbnQqIGNvbnN0IG9wdGlvbmFsQ29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcqIGNvbnN0
IG9wdGlvbmFsQ29uZGl0aW9uLCBjb25zdCBib29sKiBjb25zdCBvcHRpb25hbElzUmVnZXgsIFN0
cmluZyogb3V0QnJlYWtwb2ludElkLCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBsb2NhdGlvbnMp
Cit2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNldEJyZWFrcG9pbnRCeVVybChFcnJvclN0
cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyogY29uc3Qgb3B0aW9uYWxVUkwsIGNvbnN0
IFN0cmluZyogY29uc3Qgb3B0aW9uYWxVUkxSZWdleCwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IGlu
dCogY29uc3Qgb3B0aW9uYWxDb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyogY29uc3Qgb3B0aW9u
YWxDb25kaXRpb24sIFN0cmluZyogb3V0QnJlYWtwb2ludElkLCBSZWZQdHI8SW5zcGVjdG9yQXJy
YXk+KiBsb2NhdGlvbnMpCiB7CisgICAgaWYgKCFvcHRpb25hbFVSTCA9PSAhb3B0aW9uYWxVUkxS
ZWdleCkgeworICAgICAgICAqZXJyb3JTdHJpbmcgPSAiRWl0aGVyIHVybCBvciB1cmxSZWdleCBt
dXN0IGJlIHNwZWNpZmllZC4iOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgU3RyaW5n
IHVybCA9IG9wdGlvbmFsVVJMID8gKm9wdGlvbmFsVVJMIDogKm9wdGlvbmFsVVJMUmVnZXg7CiAg
ICAgaW50IGNvbHVtbk51bWJlciA9IG9wdGlvbmFsQ29sdW1uTnVtYmVyID8gKm9wdGlvbmFsQ29s
dW1uTnVtYmVyIDogMDsKICAgICBTdHJpbmcgY29uZGl0aW9uID0gb3B0aW9uYWxDb25kaXRpb24g
PyAqb3B0aW9uYWxDb25kaXRpb24gOiAiIjsKLSAgICBib29sIGlzUmVnZXggPSBvcHRpb25hbElz
UmVnZXggPyAqb3B0aW9uYWxJc1JlZ2V4IDogZmFsc2U7CisgICAgYm9vbCBpc1JlZ2V4ID0gb3B0
aW9uYWxVUkxSZWdleDsKIAogICAgIFN0cmluZyBicmVha3BvaW50SWQgPSAoaXNSZWdleCA/ICIv
IiArIHVybCArICIvIiA6IHVybCkgKyAnOicgKyBTdHJpbmc6Om51bWJlcihsaW5lTnVtYmVyKSAr
ICc6JyArIFN0cmluZzo6bnVtYmVyKGNvbHVtbk51bWJlcik7CiAgICAgUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gYnJlYWtwb2ludHNDb29raWUgPSBtX2luc3BlY3RvclN0YXRlLT5nZXRPYmplY3Qo
RGVidWdnZXJBZ2VudFN0YXRlOjpqYXZhU2NyaXB0QnJlYWtwb2ludHMpOwpAQCAtMjA1LDExICsy
MTEsMTEgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzZXRCcmVha3BvaW50QnlVcmwo
RXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHVybCwKICAgICAqb3V0QnJlYWtwb2ludElkID0g
YnJlYWtwb2ludElkOwogfQogCi1zdGF0aWMgYm9vbCBwYXJzZUxvY2F0aW9uKEVycm9yU3RyaW5n
KiBlcnJvclN0cmluZywgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gbG9jYXRpb24sIFN0cmluZyog
c291cmNlSWQsIGludCogbGluZU51bWJlciwgaW50KiBjb2x1bW5OdW1iZXIpCitzdGF0aWMgYm9v
bCBwYXJzZUxvY2F0aW9uKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gbG9jYXRpb24sIFN0cmluZyogc2NyaXB0SWQsIGludCogbGluZU51bWJlciwgaW50
KiBjb2x1bW5OdW1iZXIpCiB7Ci0gICAgaWYgKCFsb2NhdGlvbi0+Z2V0U3RyaW5nKCJzb3VyY2VJ
ZCIsIHNvdXJjZUlkKSB8fCAhbG9jYXRpb24tPmdldE51bWJlcigibGluZU51bWJlciIsIGxpbmVO
dW1iZXIpKSB7CisgICAgaWYgKCFsb2NhdGlvbi0+Z2V0U3RyaW5nKCJzY3JpcHRJZCIsIHNjcmlw
dElkKSB8fCAhbG9jYXRpb24tPmdldE51bWJlcigibGluZU51bWJlciIsIGxpbmVOdW1iZXIpKSB7
CiAgICAgICAgIC8vIEZJWE1FOiByZXBsYWNlIHdpdGggaW5wdXQgdmFsaWRhdGlvbi4KLSAgICAg
ICAgKmVycm9yU3RyaW5nID0gInNvdXJjZUlkIGFuZCBsaW5lTnVtYmVyIGFyZSByZXF1aXJlZC4i
OworICAgICAgICAqZXJyb3JTdHJpbmcgPSAic2NyaXB0SWQgYW5kIGxpbmVOdW1iZXIgYXJlIHJl
cXVpcmVkLiI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgKmNvbHVtbk51bWJl
ciA9IDA7CkBAIC0yMTksMjAgKzIyNSwyMCBAQCBzdGF0aWMgYm9vbCBwYXJzZUxvY2F0aW9uKEVy
cm9yU3RyaW5nKiBlcnJvclN0cmluZywgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gbG9jYQogCiB2
b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNldEJyZWFrcG9pbnQoRXJyb3JTdHJpbmcqIGVy
cm9yU3RyaW5nLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gbG9jYXRpb24sIGNvbnN0IFN0
cmluZyogY29uc3Qgb3B0aW9uYWxDb25kaXRpb24sIFN0cmluZyogb3V0QnJlYWtwb2ludElkLCBS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogYWN0dWFsTG9jYXRpb24pCiB7Ci0gICAgU3RyaW5nIHNv
dXJjZUlkOworICAgIFN0cmluZyBzY3JpcHRJZDsKICAgICBpbnQgbGluZU51bWJlcjsKICAgICBp
bnQgY29sdW1uTnVtYmVyOwogCi0gICAgaWYgKCFwYXJzZUxvY2F0aW9uKGVycm9yU3RyaW5nLCBs
b2NhdGlvbiwgJnNvdXJjZUlkLCAmbGluZU51bWJlciwgJmNvbHVtbk51bWJlcikpCisgICAgaWYg
KCFwYXJzZUxvY2F0aW9uKGVycm9yU3RyaW5nLCBsb2NhdGlvbiwgJnNjcmlwdElkLCAmbGluZU51
bWJlciwgJmNvbHVtbk51bWJlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFN0cmluZyBjb25k
aXRpb24gPSBvcHRpb25hbENvbmRpdGlvbiA/ICpvcHRpb25hbENvbmRpdGlvbiA6IGVtcHR5U3Ry
aW5nKCk7CiAKLSAgICBTdHJpbmcgYnJlYWtwb2ludElkID0gc291cmNlSWQgKyAnOicgKyBTdHJp
bmc6Om51bWJlcihsaW5lTnVtYmVyKSArICc6JyArIFN0cmluZzo6bnVtYmVyKGNvbHVtbk51bWJl
cik7CisgICAgU3RyaW5nIGJyZWFrcG9pbnRJZCA9IHNjcmlwdElkICsgJzonICsgU3RyaW5nOjpu
dW1iZXIobGluZU51bWJlcikgKyAnOicgKyBTdHJpbmc6Om51bWJlcihjb2x1bW5OdW1iZXIpOwog
ICAgIGlmIChtX2JyZWFrcG9pbnRJZFRvRGVidWdTZXJ2ZXJCcmVha3BvaW50SWRzLmZpbmQoYnJl
YWtwb2ludElkKSAhPSBtX2JyZWFrcG9pbnRJZFRvRGVidWdTZXJ2ZXJCcmVha3BvaW50SWRzLmVu
ZCgpKQogICAgICAgICByZXR1cm47CiAgICAgU2NyaXB0QnJlYWtwb2ludCBicmVha3BvaW50KGxp
bmVOdW1iZXIsIGNvbHVtbk51bWJlciwgY29uZGl0aW9uKTsKLSAgICAqYWN0dWFsTG9jYXRpb24g
PSByZXNvbHZlQnJlYWtwb2ludChicmVha3BvaW50SWQsIHNvdXJjZUlkLCBicmVha3BvaW50KTsK
KyAgICAqYWN0dWFsTG9jYXRpb24gPSByZXNvbHZlQnJlYWtwb2ludChicmVha3BvaW50SWQsIHNj
cmlwdElkLCBicmVha3BvaW50KTsKICAgICBpZiAoKmFjdHVhbExvY2F0aW9uKQogICAgICAgICAq
b3V0QnJlYWtwb2ludElkID0gYnJlYWtwb2ludElkOwogICAgIGVsc2UKQEAgLTI2MCwyMSArMjY2
LDIxIEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6Y29udGludWVUb0xvY2F0aW9uKEVy
cm9yU3RyaW5nKiBlcnJvclN0cmluZywgUGFzc1JlCiAgICAgICAgIG1fY29udGludWVUb0xvY2F0
aW9uQnJlYWtwb2ludElkID0gIiI7CiAgICAgfQogCi0gICAgU3RyaW5nIHNvdXJjZUlkOworICAg
IFN0cmluZyBzY3JpcHRJZDsKICAgICBpbnQgbGluZU51bWJlcjsKICAgICBpbnQgY29sdW1uTnVt
YmVyOwogCi0gICAgaWYgKCFwYXJzZUxvY2F0aW9uKGVycm9yU3RyaW5nLCBsb2NhdGlvbiwgJnNv
dXJjZUlkLCAmbGluZU51bWJlciwgJmNvbHVtbk51bWJlcikpCisgICAgaWYgKCFwYXJzZUxvY2F0
aW9uKGVycm9yU3RyaW5nLCBsb2NhdGlvbiwgJnNjcmlwdElkLCAmbGluZU51bWJlciwgJmNvbHVt
bk51bWJlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFNjcmlwdEJyZWFrcG9pbnQgYnJlYWtw
b2ludChsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsICIiKTsKLSAgICBtX2NvbnRpbnVlVG9Mb2Nh
dGlvbkJyZWFrcG9pbnRJZCA9IHNjcmlwdERlYnVnU2VydmVyKCkuc2V0QnJlYWtwb2ludChzb3Vy
Y2VJZCwgYnJlYWtwb2ludCwgJmxpbmVOdW1iZXIsICZjb2x1bW5OdW1iZXIpOworICAgIG1fY29u
dGludWVUb0xvY2F0aW9uQnJlYWtwb2ludElkID0gc2NyaXB0RGVidWdTZXJ2ZXIoKS5zZXRCcmVh
a3BvaW50KHNjcmlwdElkLCBicmVha3BvaW50LCAmbGluZU51bWJlciwgJmNvbHVtbk51bWJlcik7
CiAgICAgcmVzdW1lKGVycm9yU3RyaW5nKTsKIH0KIAotUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnJlc29sdmVCcmVha3BvaW50KGNvbnN0IFN0cmlu
ZyYgYnJlYWtwb2ludElkLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlkLCBjb25zdCBTY3JpcHRCcmVh
a3BvaW50JiBicmVha3BvaW50KQorUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IEluc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQ6OnJlc29sdmVCcmVha3BvaW50KGNvbnN0IFN0cmluZyYgYnJlYWtwb2lu
dElkLCBjb25zdCBTdHJpbmcmIHNjcmlwdElkLCBjb25zdCBTY3JpcHRCcmVha3BvaW50JiBicmVh
a3BvaW50KQogewotICAgIFNjcmlwdHNNYXA6Oml0ZXJhdG9yIHNjcmlwdEl0ZXJhdG9yID0gbV9z
Y3JpcHRzLmZpbmQoc291cmNlSWQpOworICAgIFNjcmlwdHNNYXA6Oml0ZXJhdG9yIHNjcmlwdEl0
ZXJhdG9yID0gbV9zY3JpcHRzLmZpbmQoc2NyaXB0SWQpOwogICAgIGlmIChzY3JpcHRJdGVyYXRv
ciA9PSBtX3NjcmlwdHMuZW5kKCkpCiAgICAgICAgIHJldHVybiAwOwogICAgIFNjcmlwdCYgc2Ny
aXB0ID0gc2NyaXB0SXRlcmF0b3ItPnNlY29uZDsKQEAgLTI4Myw3ICsyODksNyBAQCBQYXNzUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6cmVzb2x2ZUJyZWFr
cG9pbnQoY29uc3QgU3RyaQogCiAgICAgaW50IGFjdHVhbExpbmVOdW1iZXI7CiAgICAgaW50IGFj
dHVhbENvbHVtbk51bWJlcjsKLSAgICBTdHJpbmcgZGVidWdTZXJ2ZXJCcmVha3BvaW50SWQgPSBz
Y3JpcHREZWJ1Z1NlcnZlcigpLnNldEJyZWFrcG9pbnQoc291cmNlSWQsIGJyZWFrcG9pbnQsICZh
Y3R1YWxMaW5lTnVtYmVyLCAmYWN0dWFsQ29sdW1uTnVtYmVyKTsKKyAgICBTdHJpbmcgZGVidWdT
ZXJ2ZXJCcmVha3BvaW50SWQgPSBzY3JpcHREZWJ1Z1NlcnZlcigpLnNldEJyZWFrcG9pbnQoc2Ny
aXB0SWQsIGJyZWFrcG9pbnQsICZhY3R1YWxMaW5lTnVtYmVyLCAmYWN0dWFsQ29sdW1uTnVtYmVy
KTsKICAgICBpZiAoZGVidWdTZXJ2ZXJCcmVha3BvaW50SWQuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm4gMDsKIApAQCAtMjkzLDcgKzI5OSw3IEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpyZXNvbHZlQnJlYWtwb2ludChjb25zdCBTdHJpCiAg
ICAgZGVidWdTZXJ2ZXJCcmVha3BvaW50SWRzSXRlcmF0b3ItPnNlY29uZC5hcHBlbmQoZGVidWdT
ZXJ2ZXJCcmVha3BvaW50SWQpOwogCiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gbG9jYXRp
b24gPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwotICAgIGxvY2F0aW9uLT5zZXRTdHJpbmco
InNvdXJjZUlkIiwgc291cmNlSWQpOworICAgIGxvY2F0aW9uLT5zZXRTdHJpbmcoInNjcmlwdElk
Iiwgc2NyaXB0SWQpOwogICAgIGxvY2F0aW9uLT5zZXROdW1iZXIoImxpbmVOdW1iZXIiLCBhY3R1
YWxMaW5lTnVtYmVyKTsKICAgICBsb2NhdGlvbi0+c2V0TnVtYmVyKCJjb2x1bW5OdW1iZXIiLCBh
Y3R1YWxDb2x1bW5OdW1iZXIpOwogICAgIHJldHVybiBsb2NhdGlvbjsKQEAgLTMwOSwxMSArMzE1
LDExIEBAIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gc2NyaXB0VG9JbnNwZWN0
b3JPYmplY3QoU2NyaXB0T2JqZWN0IHNjcmlwdE9iCiAgICAgcmV0dXJuIHZhbHVlLT5hc09iamVj
dCgpOwogfQogCi12b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNldFNjcmlwdFNvdXJjZShF
cnJvclN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmluZyYgc291cmNlSWQsIGNvbnN0IFN0cmluZyYg
bmV3Q29udGVudCwgY29uc3QgYm9vbCogY29uc3QgcHJldmlldywgUmVmUHRyPEluc3BlY3RvckFy
cmF5PiogbmV3Q2FsbEZyYW1lcywgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCkKK3Zv
aWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2V0U2NyaXB0U291cmNlKEVycm9yU3RyaW5nKiBl
cnJvciwgY29uc3QgU3RyaW5nJiBzY3JpcHRJZCwgY29uc3QgU3RyaW5nJiBuZXdDb250ZW50LCBj
b25zdCBib29sKiBjb25zdCBwcmV2aWV3LCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBuZXdDYWxs
RnJhbWVzLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0KQogewogICAgIGJvb2wgcHJl
dmlld09ubHkgPSBwcmV2aWV3ICYmICpwcmV2aWV3OwogICAgIFNjcmlwdE9iamVjdCByZXN1bHRP
YmplY3Q7Ci0gICAgaWYgKCFzY3JpcHREZWJ1Z1NlcnZlcigpLnNldFNjcmlwdFNvdXJjZShzb3Vy
Y2VJZCwgbmV3Q29udGVudCwgcHJldmlld09ubHksIGVycm9yLCAmbV9jdXJyZW50Q2FsbFN0YWNr
LCAmcmVzdWx0T2JqZWN0KSkKKyAgICBpZiAoIXNjcmlwdERlYnVnU2VydmVyKCkuc2V0U2NyaXB0
U291cmNlKHNjcmlwdElkLCBuZXdDb250ZW50LCBwcmV2aWV3T25seSwgZXJyb3IsICZtX2N1cnJl
bnRDYWxsU3RhY2ssICZyZXN1bHRPYmplY3QpKQogICAgICAgICByZXR1cm47CiAgICAgKm5ld0Nh
bGxGcmFtZXMgPSBjdXJyZW50Q2FsbEZyYW1lcygpOwogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IG9iamVjdCA9IHNjcmlwdFRvSW5zcGVjdG9yT2JqZWN0KHJlc3VsdE9iamVjdCk7CkBAIC0z
MjEsOSArMzI3LDkgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzZXRTY3JpcHRTb3Vy
Y2UoRXJyb3JTdHJpbmcqIGVycm9yLCBjb25zdCBTdHJpbmcmIHMKICAgICAgICAgKnJlc3VsdCA9
IG9iamVjdDsKIH0KIAotdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpnZXRTY3JpcHRTb3Vy
Y2UoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlkLCBTdHJpbmcqIHNjcmlwdFNv
dXJjZSkKK3ZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6Z2V0U2NyaXB0U291cmNlKEVycm9y
U3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzY3JpcHRJZCwgU3RyaW5nKiBzY3JpcHRTb3VyY2UpCiB7
Ci0gICAgKnNjcmlwdFNvdXJjZSA9IG1fc2NyaXB0cy5nZXQoc291cmNlSWQpLnNvdXJjZTsKKyAg
ICAqc2NyaXB0U291cmNlID0gbV9zY3JpcHRzLmdldChzY3JpcHRJZCkuc291cmNlOwogfQogCiB2
b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNjaGVkdWxlUGF1c2VPbk5leHRTdGF0ZW1lbnQo
RGVidWdnZXJFdmVudFR5cGUgdHlwZSwgUGFzc1JlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gZGF0YSkK
QEAgLTQxMywxMiArNDE5LDEyIEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IEluc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQ6OmN1cnJlbnRDYWxsRnJhbWVzKCkKIAogLy8gSmF2YVNjcmlwdERlYnVn
TGlzdGVuZXIgZnVuY3Rpb25zCiAKLXZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlkUGFy
c2VTb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2VJZCwgY29uc3QgU2NyaXB0JiBzY3JpcHQpCit2
b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRpZFBhcnNlU291cmNlKGNvbnN0IFN0cmluZyYg
c2NyaXB0SWQsIGNvbnN0IFNjcmlwdCYgc2NyaXB0KQogewogICAgIC8vIERvbid0IHNlbmQgc2Ny
aXB0IGNvbnRlbnQgdG8gdGhlIGZyb250IGVuZCB1bnRpbCBpdCdzIHJlYWxseSBuZWVkZWQuCi0g
ICAgbV9mcm9udGVuZC0+c2NyaXB0UGFyc2VkKHNvdXJjZUlkLCBzY3JpcHQudXJsLCBzY3JpcHQu
c3RhcnRMaW5lLCBzY3JpcHQuc3RhcnRDb2x1bW4sIHNjcmlwdC5lbmRMaW5lLCBzY3JpcHQuZW5k
Q29sdW1uLCBzY3JpcHQuaXNDb250ZW50U2NyaXB0KTsKKyAgICBtX2Zyb250ZW5kLT5zY3JpcHRQ
YXJzZWQoc2NyaXB0SWQsIHNjcmlwdC51cmwsIHNjcmlwdC5zdGFydExpbmUsIHNjcmlwdC5zdGFy
dENvbHVtbiwgc2NyaXB0LmVuZExpbmUsIHNjcmlwdC5lbmRDb2x1bW4sIHNjcmlwdC5pc0NvbnRl
bnRTY3JpcHQpOwogCi0gICAgbV9zY3JpcHRzLnNldChzb3VyY2VJZCwgc2NyaXB0KTsKKyAgICBt
X3NjcmlwdHMuc2V0KHNjcmlwdElkLCBzY3JpcHQpOwogCiAgICAgaWYgKHNjcmlwdC51cmwuaXNF
bXB0eSgpKQogICAgICAgICByZXR1cm47CkBAIC00MzYsNyArNDQyLDcgQEAgdm9pZCBJbnNwZWN0
b3JEZWJ1Z2dlckFnZW50OjpkaWRQYXJzZVNvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJjZUlkLCBj
b25zdCBTY3JpcHQKICAgICAgICAgYnJlYWtwb2ludE9iamVjdC0+Z2V0TnVtYmVyKCJsaW5lTnVt
YmVyIiwgJmJyZWFrcG9pbnQubGluZU51bWJlcik7CiAgICAgICAgIGJyZWFrcG9pbnRPYmplY3Qt
PmdldE51bWJlcigiY29sdW1uTnVtYmVyIiwgJmJyZWFrcG9pbnQuY29sdW1uTnVtYmVyKTsKICAg
ICAgICAgYnJlYWtwb2ludE9iamVjdC0+Z2V0U3RyaW5nKCJjb25kaXRpb24iLCAmYnJlYWtwb2lu
dC5jb25kaXRpb24pOwotICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBsb2NhdGlvbiA9
IHJlc29sdmVCcmVha3BvaW50KGl0LT5maXJzdCwgc291cmNlSWQsIGJyZWFrcG9pbnQpOworICAg
ICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBsb2NhdGlvbiA9IHJlc29sdmVCcmVha3BvaW50
KGl0LT5maXJzdCwgc2NyaXB0SWQsIGJyZWFrcG9pbnQpOwogICAgICAgICBpZiAobG9jYXRpb24p
CiAgICAgICAgICAgICBtX2Zyb250ZW5kLT5icmVha3BvaW50UmVzb2x2ZWQoaXQtPmZpcnN0LCBs
b2NhdGlvbik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JEZWJ1Z2dlckFnZW50LmgKaW5kZXggMTg2MDZiNjc2N2M2MzZhNzQyZTUwYTFmMWJlY2Y1MTc5
NzE5MDMxZS4uNTFlYTI1OTAzZDgwODhhMDE1ZTc3MTAxYThmMzMwYmI5MzNlN2E5MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCkBA
IC04MiwxMyArODIsMTMgQEAgcHVibGljOgogICAgIC8vIFBhcnQgb2YgdGhlIHByb3RvY29sLgog
ICAgIHZvaWQgc2V0QnJlYWtwb2ludHNBY3RpdmUoRXJyb3JTdHJpbmcqLCBib29sIGFjdGl2ZSk7
CiAKLSAgICB2b2lkIHNldEJyZWFrcG9pbnRCeVVybChFcnJvclN0cmluZyosIGNvbnN0IFN0cmlu
ZyYgdXJsLCBpbnQgbGluZU51bWJlciwgY29uc3QgaW50KiBjb25zdCBvcHRpb25hbENvbHVtbk51
bWJlciwgY29uc3QgU3RyaW5nKiBjb25zdCBvcHRpb25hbENvbmRpdGlvbiwgY29uc3QgYm9vbCog
Y29uc3Qgb3B0aW9uYWxJc1JlZ2V4LCBTdHJpbmcqIGJyZWFrcG9pbnRJZCwgUmVmUHRyPEluc3Bl
Y3RvckFycmF5PiogbG9jYXRpb25zKTsKKyAgICB2b2lkIHNldEJyZWFrcG9pbnRCeVVybChFcnJv
clN0cmluZyosIGNvbnN0IFN0cmluZyogY29uc3Qgb3B0aW9uYWxVUkwsIGNvbnN0IFN0cmluZyog
Y29uc3Qgb3B0aW9uYWxVUkxSZWdleCwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IGludCogY29uc3Qg
b3B0aW9uYWxDb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyogY29uc3Qgb3B0aW9uYWxDb25kaXRp
b24sIFN0cmluZyogYnJlYWtwb2ludElkLCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBsb2NhdGlv
bnMpOwogICAgIHZvaWQgc2V0QnJlYWtwb2ludChFcnJvclN0cmluZyosIFBhc3NSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiBsb2NhdGlvbiwgY29uc3QgU3RyaW5nKiBjb25zdCBvcHRpb25hbENvbmRp
dGlvbiwgU3RyaW5nKiBicmVha3BvaW50SWQsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBhY3R1
YWxMb2NhdGlvbik7CiAgICAgdm9pZCByZW1vdmVCcmVha3BvaW50KEVycm9yU3RyaW5nKiwgY29u
c3QgU3RyaW5nJiBicmVha3BvaW50SWQpOwogICAgIHZvaWQgY29udGludWVUb0xvY2F0aW9uKEVy
cm9yU3RyaW5nKiwgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGxvY2F0aW9uKTsKIAotICAg
IHZvaWQgc2V0U2NyaXB0U291cmNlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzb3VyY2VJ
ZCwgY29uc3QgU3RyaW5nJiBuZXdDb250ZW50LCBjb25zdCBib29sKiBjb25zdCBwcmV2aWV3LCBS
ZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBuZXdDYWxsRnJhbWVzLCBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiogcmVzdWx0KTsKLSAgICB2b2lkIGdldFNjcmlwdFNvdXJjZShFcnJvclN0cmluZyosIGNv
bnN0IFN0cmluZyYgc291cmNlSWQsIFN0cmluZyogc2NyaXB0U291cmNlKTsKKyAgICB2b2lkIHNl
dFNjcmlwdFNvdXJjZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc2NyaXB0SWQsIGNvbnN0
IFN0cmluZyYgbmV3Q29udGVudCwgY29uc3QgYm9vbCogY29uc3QgcHJldmlldywgUmVmUHRyPElu
c3BlY3RvckFycmF5PiogbmV3Q2FsbEZyYW1lcywgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJl
c3VsdCk7CisgICAgdm9pZCBnZXRTY3JpcHRTb3VyY2UoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJp
bmcmIHNjcmlwdElkLCBTdHJpbmcqIHNjcmlwdFNvdXJjZSk7CiAgICAgdm9pZCBzY2hlZHVsZVBh
dXNlT25OZXh0U3RhdGVtZW50KERlYnVnZ2VyRXZlbnRUeXBlIHR5cGUsIFBhc3NSZWZQdHI8SW5z
cGVjdG9yVmFsdWU+IGRhdGEpOwogICAgIHZvaWQgY2FuY2VsUGF1c2VPbk5leHRTdGF0ZW1lbnQo
KTsKICAgICB2b2lkIGJyZWFrUHJvZ3JhbShEZWJ1Z2dlckV2ZW50VHlwZSB0eXBlLCBQYXNzUmVm
UHRyPEluc3BlY3RvclZhbHVlPiBkYXRhKTsKQEAgLTEyMiwxMiArMTIyLDEyIEBAIHByaXZhdGU6
CiAKICAgICBQYXNzUmVmUHRyPEluc3BlY3RvckFycmF5PiBjdXJyZW50Q2FsbEZyYW1lcygpOwog
Ci0gICAgdmlydHVhbCB2b2lkIGRpZFBhcnNlU291cmNlKGNvbnN0IFN0cmluZyYgc291cmNlSWQs
IGNvbnN0IFNjcmlwdCYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRQYXJzZVNvdXJjZShjb25zdCBT
dHJpbmcmIHNjcmlwdElkLCBjb25zdCBTY3JpcHQmKTsKICAgICB2aXJ0dWFsIHZvaWQgZmFpbGVk
VG9QYXJzZVNvdXJjZShjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBkYXRhLCBpbnQg
Zmlyc3RMaW5lLCBpbnQgZXJyb3JMaW5lLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZFBhdXNlKFNjcmlwdFN0YXRlKiwgY29uc3QgU2NyaXB0VmFsdWUm
IGNhbGxGcmFtZXMsIGNvbnN0IFNjcmlwdFZhbHVlJiBleGNlcHRpb24pOwogICAgIHZpcnR1YWwg
dm9pZCBkaWRDb250aW51ZSgpOwogCi0gICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJl
c29sdmVCcmVha3BvaW50KGNvbnN0IFN0cmluZyYgYnJlYWtwb2ludElkLCBjb25zdCBTdHJpbmcm
IHNvdXJjZUlkLCBjb25zdCBTY3JpcHRCcmVha3BvaW50Jik7CisgICAgUGFzc1JlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IHJlc29sdmVCcmVha3BvaW50KGNvbnN0IFN0cmluZyYgYnJlYWtwb2ludElk
LCBjb25zdCBTdHJpbmcmIHNjcmlwdElkLCBjb25zdCBTY3JpcHRCcmVha3BvaW50Jik7CiAgICAg
dm9pZCBjbGVhcigpOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgU2NyaXB0PiBTY3Jp
cHRzTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmNwcAppbmRleCBjMGRhMzExY2U4MjNlYTU1YjU4YTZkM2NjOGY2NmViMTZi
OTIyNGU2Li40YTk5NzMyZDVhZTliODdiNTVjODg3ZWU3MjRmYjQ4YjkzNTkzZGYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcApAQCAtNjg3LDEwICs2ODcsMTAgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3QKICAgICAg
ICAgY29uc29sZUFnZW50LT5hZGRNZXNzYWdlVG9Db25zb2xlKHNvdXJjZSwgdHlwZSwgbGV2ZWws
IG1lc3NhZ2UsIGFyZ3VtZW50cywgY2FsbFN0YWNrKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbmdBZ2VudHMsIE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0
eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQg
bGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJZCkKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlw
ZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxp
bmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc2NyaXB0SWQpCiB7CiAgICAgaWYgKEluc3BlY3RvckNv
bnNvbGVBZ2VudCogY29uc29sZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9y
Q29uc29sZUFnZW50KCkpCi0gICAgICAgIGNvbnNvbGVBZ2VudC0+YWRkTWVzc2FnZVRvQ29uc29s
ZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VJZCk7Cisg
ICAgICAgIGNvbnNvbGVBZ2VudC0+YWRkTWVzc2FnZVRvQ29uc29sZShzb3VyY2UsIHR5cGUsIGxl
dmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzY3JpcHRJZCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlQ291bnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGlu
c3RydW1lbnRpbmdBZ2VudHMsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMs
IFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBzdGFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCA0YTJiNjBlNGFi
M2Y0OGM4OTAzMjViZjFjMDViNGJlNWIxZDdlODNmLi41OTY2NDg1YTI2Y2NlNmQwZDUzZmRmZDcy
MzFjZGMyNzRjMzY1OGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC0yNzYsNyArMjc2LDcgQEAgcHJpdmF0ZToKICAg
ICBzdGF0aWMgdm9pZCBkaWRXcml0ZUhUTUxJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbkNvb2tpZSYsIHVuc2lnbmVkIGludCBlbmRMaW5lKTsKIAogICAgIHN0YXRpYyB2b2lkIGFk
ZE1lc3NhZ2VUb0NvbnNvbGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBNZXNzYWdlU291cmNl
LCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NS
ZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKLSAg
ICBzdGF0aWMgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
KiwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlkKTsK
KyAgICBzdGF0aWMgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzKiwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNjcmlwdElk
KTsKICAgICBzdGF0aWMgdm9pZCBjb25zb2xlQ291bnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
LCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNr
Pik7CiAgICAgc3RhdGljIHZvaWQgc3RhcnRDb25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzKiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CiAgICAgc3RhdGljIHZvaWQgc3RvcENvbnNv
bGVUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBQ
YXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1NjcmlwdERlYnVnTGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9TY3JpcHREZWJ1Z0xpc3RlbmVyLmgKaW5kZXggYzI3NDQxMjVmYzg4MTVmODVlZWE0NDlmNmJl
ZDZiYmVmYWYzMmU0Ni4uNzI4MTNkZWRjZjc4NTk0NjI5NTFkZmVjOTAxN2U0NTdlZWQzZWMxOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1NjcmlwdERlYnVnTGlzdGVuZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0RGVidWdMaXN0ZW5lci5oCkBA
IC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgflNjcmlwdERlYnVnTGlzdGVu
ZXIoKSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBkaWRQYXJzZVNvdXJjZShjb25zdCBTdHJpbmcm
IHNvdXJjZUlkLCBjb25zdCBTY3JpcHQmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFBhcnNl
U291cmNlKGNvbnN0IFN0cmluZyYgc2NyaXB0SWQsIGNvbnN0IFNjcmlwdCYpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgZmFpbGVkVG9QYXJzZVNvdXJjZShjb25zdCBTdHJpbmcmIHVybCwgY29uc3Qg
U3RyaW5nJiBkYXRhLCBpbnQgZmlyc3RMaW5lLCBpbnQgZXJyb3JMaW5lLCBjb25zdCBTdHJpbmcm
IGVycm9yTWVzc2FnZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRQYXVzZShTY3JpcHRTdGF0
ZSosIGNvbnN0IFNjcmlwdFZhbHVlJiBjYWxsRnJhbWVzLCBjb25zdCBTY3JpcHRWYWx1ZSYgZXhj
ZXB0aW9uKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbnRpbnVlKCkgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCmlu
ZGV4IGNmMzQwYzhlMzg5ODliYmFmZjBkNTg5ZWQ4MTczMThkODgyZWQ5ZGMuLjdhNTJiOTFkNDgx
Y2Q4NmY4MzhlYjFmZGEwMzM0NWMwM2RhNmUyOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMKQEAgLTg5LDcgKzg5LDcgQEAg
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgaWYg
KGNhbGxiYWNrKQogICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycm9yID8gbnVsbCA6IGJyZWFr
cG9pbnRJZCwgbG9jYXRpb25zKTsKICAgICAgICAgfQotICAgICAgICBEZWJ1Z2dlckFnZW50LnNl
dEJyZWFrcG9pbnRCeVVybCh1cmwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgY29uZGl0aW9u
LCBkaWRTZXRCcmVha3BvaW50LmJpbmQodGhpcykpOworICAgICAgICBEZWJ1Z2dlckFnZW50LnNl
dEJyZWFrcG9pbnRCeVVybCh1cmwsIHVuZGVmaW5lZCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVy
LCBjb25kaXRpb24sIGRpZFNldEJyZWFrcG9pbnQuYmluZCh0aGlzKSk7CiAgICAgICAgIFdlYklu
c3BlY3Rvci51c2VyTWV0cmljcy5TY3JpcHRzQnJlYWtwb2ludFNldC5yZWNvcmQoKTsKICAgICB9
LAogCkBAIC0xMjYsOSArMTI2LDkgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90
eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5fc2NyaXB0czsKICAgICB9LAogCi0gICAgc2Ny
aXB0Rm9yU291cmNlSUQ6IGZ1bmN0aW9uKHNvdXJjZUlkKQorICAgIHNjcmlwdEZvclNvdXJjZUlE
OiBmdW5jdGlvbihzY3JpcHRJZCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9zY3JpcHRz
W3NvdXJjZUlkXTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3NjcmlwdHNbc2NyaXB0SWRdOwogICAg
IH0sCiAKICAgICBzY3JpcHRzRm9yVVJMOiBmdW5jdGlvbih1cmwpCkBAIC0xMzksMjAgKzEzOSwy
MCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgcXVlcnlT
Y3JpcHRzOiBmdW5jdGlvbihmaWx0ZXIpCiAgICAgewogICAgICAgICB2YXIgc2NyaXB0cyA9IFtd
OwotICAgICAgICBmb3IgKHZhciBzb3VyY2VJZCBpbiB0aGlzLl9zY3JpcHRzKSB7Ci0gICAgICAg
ICAgICB2YXIgc2NyaXB0ID0gdGhpcy5fc2NyaXB0c1tzb3VyY2VJZF07CisgICAgICAgIGZvciAo
dmFyIHNjcmlwdElkIGluIHRoaXMuX3NjcmlwdHMpIHsKKyAgICAgICAgICAgIHZhciBzY3JpcHQg
PSB0aGlzLl9zY3JpcHRzW3NjcmlwdElkXTsKICAgICAgICAgICAgIGlmIChmaWx0ZXIoc2NyaXB0
KSkKICAgICAgICAgICAgICAgICBzY3JpcHRzLnB1c2goc2NyaXB0KTsKICAgICAgICAgfQogICAg
ICAgICByZXR1cm4gc2NyaXB0czsKICAgICB9LAogCi0gICAgc2V0U2NyaXB0U291cmNlOiBmdW5j
dGlvbihzb3VyY2VJZCwgbmV3U291cmNlLCBjYWxsYmFjaykKKyAgICBzZXRTY3JpcHRTb3VyY2U6
IGZ1bmN0aW9uKHNjcmlwdElkLCBuZXdTb3VyY2UsIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAg
dGhpcy5fc2NyaXB0c1tzb3VyY2VJZF0uZWRpdFNvdXJjZShuZXdTb3VyY2UsIHRoaXMuX2RpZEVk
aXRTY3JpcHRTb3VyY2UuYmluZCh0aGlzLCBzb3VyY2VJZCwgbmV3U291cmNlLCBjYWxsYmFjaykp
OworICAgICAgICB0aGlzLl9zY3JpcHRzW3NjcmlwdElkXS5lZGl0U291cmNlKG5ld1NvdXJjZSwg
dGhpcy5fZGlkRWRpdFNjcmlwdFNvdXJjZS5iaW5kKHRoaXMsIHNjcmlwdElkLCBuZXdTb3VyY2Us
IGNhbGxiYWNrKSk7CiAgICAgfSwKIAotICAgIF9kaWRFZGl0U2NyaXB0U291cmNlOiBmdW5jdGlv
bihzb3VyY2VJZCwgbmV3U291cmNlLCBjYWxsYmFjaywgZXJyb3IsIGNhbGxGcmFtZXMpCisgICAg
X2RpZEVkaXRTY3JpcHRTb3VyY2U6IGZ1bmN0aW9uKHNjcmlwdElkLCBuZXdTb3VyY2UsIGNhbGxi
YWNrLCBlcnJvciwgY2FsbEZyYW1lcykKICAgICB7CiAgICAgICAgIGlmICghZXJyb3IgJiYgY2Fs
bEZyYW1lcyAmJiBjYWxsRnJhbWVzLmxlbmd0aCkKICAgICAgICAgICAgIHRoaXMuX2RlYnVnZ2Vy
UGF1c2VkRGV0YWlscy5jYWxsRnJhbWVzID0gY2FsbEZyYW1lczsKQEAgLTE4MSwxMCArMTgxLDEw
IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhp
cy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZl
bnRzLkRlYnVnZ2VyUmVzdW1lZCk7CiAgICAgfSwKIAotICAgIF9wYXJzZWRTY3JpcHRTb3VyY2U6
IGZ1bmN0aW9uKHNvdXJjZUlkLCBzb3VyY2VVUkwsIHN0YXJ0TGluZSwgc3RhcnRDb2x1bW4sIGVu
ZExpbmUsIGVuZENvbHVtbiwgaXNDb250ZW50U2NyaXB0KQorICAgIF9wYXJzZWRTY3JpcHRTb3Vy
Y2U6IGZ1bmN0aW9uKHNjcmlwdElkLCBzb3VyY2VVUkwsIHN0YXJ0TGluZSwgc3RhcnRDb2x1bW4s
IGVuZExpbmUsIGVuZENvbHVtbiwgaXNDb250ZW50U2NyaXB0KQogICAgIHsKLSAgICAgICAgdmFy
IHNjcmlwdCA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0KHNvdXJjZUlkLCBzb3VyY2VVUkwsIHN0
YXJ0TGluZSwgc3RhcnRDb2x1bW4sIGVuZExpbmUsIGVuZENvbHVtbiwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIGlzQ29udGVudFNjcmlwdCk7Ci0gICAgICAgIHRoaXMuX3NjcmlwdHNbc291cmNlSWRd
ID0gc2NyaXB0OworICAgICAgICB2YXIgc2NyaXB0ID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHQo
c2NyaXB0SWQsIHNvdXJjZVVSTCwgc3RhcnRMaW5lLCBzdGFydENvbHVtbiwgZW5kTGluZSwgZW5k
Q29sdW1uLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgaXNDb250ZW50U2NyaXB0KTsKKyAgICAgICAg
dGhpcy5fc2NyaXB0c1tzY3JpcHRJZF0gPSBzY3JpcHQ7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hF
dmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5QYXJzZWRT
Y3JpcHRTb3VyY2UsIHNjcmlwdCk7CiAgICAgfSwKIApAQCAtMjI5LDkgKzIyOSw5IEBAIFdlYklu
c3BlY3Rvci5EZWJ1Z2dlckRpc3BhdGNoZXIucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9k
ZWJ1Z2dlck1vZGVsLl9kZWJ1Z2dlcldhc0Rpc2FibGVkKCk7CiAgICAgfSwKIAotICAgIHNjcmlw
dFBhcnNlZDogZnVuY3Rpb24oc291cmNlSWQsIHNvdXJjZVVSTCwgc3RhcnRMaW5lLCBzdGFydENv
bHVtbiwgZW5kTGluZSwgZW5kQ29sdW1uLCBpc0NvbnRlbnRTY3JpcHQpCisgICAgc2NyaXB0UGFy
c2VkOiBmdW5jdGlvbihzY3JpcHRJZCwgc291cmNlVVJMLCBzdGFydExpbmUsIHN0YXJ0Q29sdW1u
LCBlbmRMaW5lLCBlbmRDb2x1bW4sIGlzQ29udGVudFNjcmlwdCkKICAgICB7Ci0gICAgICAgIHRo
aXMuX2RlYnVnZ2VyTW9kZWwuX3BhcnNlZFNjcmlwdFNvdXJjZShzb3VyY2VJZCwgc291cmNlVVJM
LCBzdGFydExpbmUsIHN0YXJ0Q29sdW1uLCBlbmRMaW5lLCBlbmRDb2x1bW4sIGlzQ29udGVudFNj
cmlwdCk7CisgICAgICAgIHRoaXMuX2RlYnVnZ2VyTW9kZWwuX3BhcnNlZFNjcmlwdFNvdXJjZShz
Y3JpcHRJZCwgc291cmNlVVJMLCBzdGFydExpbmUsIHN0YXJ0Q29sdW1uLCBlbmRMaW5lLCBlbmRD
b2x1bW4sIGlzQ29udGVudFNjcmlwdCk7CiAgICAgfSwKIAogICAgIHNjcmlwdEZhaWxlZFRvUGFy
c2U6IGZ1bmN0aW9uKHNvdXJjZVVSTCwgc291cmNlLCBzdGFydGluZ0xpbmUsIGVycm9yTGluZSwg
ZXJyb3JNZXNzYWdlKQpAQCAtMjM5LDggKzIzOSw4IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlckRp
c3BhdGNoZXIucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9kZWJ1Z2dlck1vZGVsLl9mYWls
ZWRUb1BhcnNlU2NyaXB0U291cmNlKHNvdXJjZVVSTCwgc291cmNlLCBzdGFydGluZ0xpbmUsIGVy
cm9yTGluZSwgZXJyb3JNZXNzYWdlKTsKICAgICB9LAogCi0gICAgYnJlYWtwb2ludFJlc29sdmVk
OiBmdW5jdGlvbihicmVha3BvaW50SWQsIHNvdXJjZUlkLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1i
ZXIpCisgICAgYnJlYWtwb2ludFJlc29sdmVkOiBmdW5jdGlvbihicmVha3BvaW50SWQsIHNjcmlw
dElkLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpCiAgICAgewotICAgICAgICB0aGlzLl9kZWJ1
Z2dlck1vZGVsLl9icmVha3BvaW50UmVzb2x2ZWQoYnJlYWtwb2ludElkLCBzb3VyY2VJZCwgbGlu
ZU51bWJlciwgY29sdW1uTnVtYmVyKTsKKyAgICAgICAgdGhpcy5fZGVidWdnZXJNb2RlbC5fYnJl
YWtwb2ludFJlc29sdmVkKGJyZWFrcG9pbnRJZCwgc2NyaXB0SWQsIGxpbmVOdW1iZXIsIGNvbHVt
bk51bWJlcik7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCmluZGV4IDMz
MGE0NTQ2ZjAwNDhhODg3ZDg0NmRiMDcyMDQ3MDI1ZDkyODA0YTUuLmE4YjU2NTQ0ZmVhZGEwYmQz
M2EwYjIzYzM0OWZkMjQ1MGYzMWQ1ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMK
QEAgLTg2LDkgKzg2LDkgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwu
cHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5fc291cmNlRmlsZXNbdGhpcy5fY3Jl
YXRlU291cmNlRmlsZUlkKHNjcmlwdFVSTCldOwogICAgIH0sCiAKLSAgICBfc2NyaXB0TG9jYXRp
b25Ub1VJTG9jYXRpb246IGZ1bmN0aW9uKHNvdXJjZVVSTCwgc291cmNlSWQsIGxpbmVOdW1iZXIs
IGNvbHVtbk51bWJlciwgY2FsbGJhY2spCisgICAgX3NjcmlwdExvY2F0aW9uVG9VSUxvY2F0aW9u
OiBmdW5jdGlvbihzb3VyY2VVUkwsIHNjcmlwdElkLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIs
IGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSB0aGlzLl9zb3VyY2VG
aWxlRm9yU2NyaXB0KHNvdXJjZVVSTCwgc291cmNlSWQpOworICAgICAgICB2YXIgc291cmNlRmls
ZSA9IHRoaXMuX3NvdXJjZUZpbGVGb3JTY3JpcHQoc291cmNlVVJMLCBzY3JpcHRJZCk7CiAKICAg
ICAgICAgZnVuY3Rpb24gZGlkQ3JlYXRlU291cmNlTWFwcGluZygpCiAgICAgICAgIHsKQEAgLTEx
OSwyMCArMTE5LDIwIEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fc291cmNlRmlsZXNbc291cmNlRmlsZUlkXS5yZXF1
ZXN0Q29udGVudChjYWxsYmFjayk7CiAgICAgfSwKIAotICAgIHJlZ2lzdGVyQW5jaG9yOiBmdW5j
dGlvbihzb3VyY2VVUkwsIHNvdXJjZUlkLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHVwZGF0
ZUhhbmRsZXIpCisgICAgcmVnaXN0ZXJBbmNob3I6IGZ1bmN0aW9uKHNvdXJjZVVSTCwgc2NyaXB0
SWQsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgdXBkYXRlSGFuZGxlcikKICAgICB7Ci0gICAg
ICAgIHZhciBhbmNob3IgPSB7IHNvdXJjZVVSTDogc291cmNlVVJMLCBzb3VyY2VJZDogc291cmNl
SWQsIGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcjogY29sdW1uTnVtYmVyLCB1
cGRhdGVIYW5kbGVyOiB1cGRhdGVIYW5kbGVyIH07CisgICAgICAgIHZhciBhbmNob3IgPSB7IHNv
dXJjZVVSTDogc291cmNlVVJMLCBzY3JpcHRJZDogc2NyaXB0SWQsIGxpbmVOdW1iZXI6IGxpbmVO
dW1iZXIsIGNvbHVtbk51bWJlcjogY29sdW1uTnVtYmVyLCB1cGRhdGVIYW5kbGVyOiB1cGRhdGVI
YW5kbGVyIH07CiAgICAgICAgIHRoaXMuX2FuY2hvcnMucHVzaChhbmNob3IpOwogICAgICAgICB0
aGlzLl91cGRhdGVBbmNob3IoYW5jaG9yKTsKICAgICB9LAogCiAgICAgX3VwZGF0ZUFuY2hvcjog
ZnVuY3Rpb24oYW5jaG9yKQogICAgIHsKLSAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSB0aGlzLl9z
b3VyY2VGaWxlRm9yU2NyaXB0KGFuY2hvci5zb3VyY2VVUkwsIGFuY2hvci5zb3VyY2VJZCk7Cisg
ICAgICAgIHZhciBzb3VyY2VGaWxlID0gdGhpcy5fc291cmNlRmlsZUZvclNjcmlwdChhbmNob3Iu
c291cmNlVVJMLCBhbmNob3Iuc2NyaXB0SWQpOwogICAgICAgICBpZiAoIXNvdXJjZUZpbGUpCiAg
ICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdGhpcy5fc2NyaXB0TG9jYXRpb25Ub1VJTG9j
YXRpb24oYW5jaG9yLnNvdXJjZVVSTCwgYW5jaG9yLnNvdXJjZUlkLCBhbmNob3IubGluZU51bWJl
ciwgYW5jaG9yLmNvbHVtbk51bWJlciwgYW5jaG9yLnVwZGF0ZUhhbmRsZXIpOworICAgICAgICB0
aGlzLl9zY3JpcHRMb2NhdGlvblRvVUlMb2NhdGlvbihhbmNob3Iuc291cmNlVVJMLCBhbmNob3Iu
c2NyaXB0SWQsIGFuY2hvci5saW5lTnVtYmVyLCBhbmNob3IuY29sdW1uTnVtYmVyLCBhbmNob3Iu
dXBkYXRlSGFuZGxlcik7CiAgICAgfSwKIAogICAgIF9wYXJzZWRTY3JpcHRTb3VyY2U6IGZ1bmN0
aW9uKGV2ZW50KQpAQCAtMTQ3LDcgKzE0Nyw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNl
bnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKIAogICAgIF9hZGRTY3JpcHQ6IGZ1bmN0aW9uKHNj
cmlwdCkKICAgICB7Ci0gICAgICAgIHZhciBzb3VyY2VGaWxlSWQgPSB0aGlzLl9jcmVhdGVTb3Vy
Y2VGaWxlSWQoc2NyaXB0LnNvdXJjZVVSTCwgc2NyaXB0LnNvdXJjZUlkKTsKKyAgICAgICAgdmFy
IHNvdXJjZUZpbGVJZCA9IHRoaXMuX2NyZWF0ZVNvdXJjZUZpbGVJZChzY3JpcHQuc291cmNlVVJM
LCBzY3JpcHQuc2NyaXB0SWQpOwogICAgICAgICB2YXIgc291cmNlRmlsZSA9IHRoaXMuX3NvdXJj
ZUZpbGVzW3NvdXJjZUZpbGVJZF07CiAgICAgICAgIGlmIChzb3VyY2VGaWxlKSB7CiAgICAgICAg
ICAgICBzb3VyY2VGaWxlLmFkZFNjcmlwdChzY3JpcHQpOwpAQCAtMjE3LDcgKzIxNyw3IEBAIFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgdmFyIG9sZFNvdXJjZSA9IHNvdXJjZUZpbGUucmVxdWVzdENvbnRlbnQoZGlkUmVjZWl2ZVNv
dXJjZS5iaW5kKHRoaXMpKTsKICAgICAgICAgZnVuY3Rpb24gZGlkUmVjZWl2ZVNvdXJjZShvbGRT
b3VyY2UpCiAgICAgICAgIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVs
LnNldFNjcmlwdFNvdXJjZShzY3JpcHQuc291cmNlSWQsIG5ld1NvdXJjZSwgZGlkRWRpdFNjcmlw
dFNvdXJjZS5iaW5kKHRoaXMsIG9sZFNvdXJjZSkpOworICAgICAgICAgICAgV2ViSW5zcGVjdG9y
LmRlYnVnZ2VyTW9kZWwuc2V0U2NyaXB0U291cmNlKHNjcmlwdC5zY3JpcHRJZCwgbmV3U291cmNl
LCBkaWRFZGl0U2NyaXB0U291cmNlLmJpbmQodGhpcywgb2xkU291cmNlKSk7CiAgICAgICAgIH0K
ICAgICB9LAogCkBAIC0zODMsMTEgKzM4MywxMSBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVz
ZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgZnVuY3Rpb24gZGlkR2V0U2Ny
aXB0TG9jYXRpb24obG9jYXRpb24pCiAgICAgICAgIHsKLSAgICAgICAgICAgIHZhciBzY3JpcHQg
PSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JTb3VyY2VJRChsb2NhdGlvbi5z
b3VyY2VJZCk7CisgICAgICAgICAgICB2YXIgc2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2Vy
TW9kZWwuc2NyaXB0Rm9yU291cmNlSUQobG9jYXRpb24uc2NyaXB0SWQpOwogICAgICAgICAgICAg
aWYgKHNjcmlwdC5zb3VyY2VVUkwpCiAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTW9kZWwuc2V0QnJlYWtwb2ludChzY3JpcHQuc291cmNlVVJMLCBsb2NhdGlvbi5saW5lTnVt
YmVyLCBsb2NhdGlvbi5jb2x1bW5OdW1iZXIsIGJyZWFrcG9pbnQuY29uZGl0aW9uLCBkaWRTZXRC
cmVha3BvaW50LmJpbmQodGhpcykpOwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgbG9jYXRpb24uc291cmNlSWQgPSBzY3JpcHQuc291cmNlSWQ7CisgICAgICAgICAgICAgICAg
bG9jYXRpb24uc2NyaXB0SWQgPSBzY3JpcHQuc2NyaXB0SWQ7CiAgICAgICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2V0QnJlYWtwb2ludEJ5U291cmNlSWQobG9jYXRpb24s
IGJyZWFrcG9pbnQuY29uZGl0aW9uLCBkaWRTZXRCcmVha3BvaW50LmJpbmQodGhpcykpOwogICAg
ICAgICAgICAgfQogICAgICAgICB9CkBAIC00OTEsNyArNDkxLDcgQEAgV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICB9CiAgICAgICAg
IC8vIFJlZmluZSBsaW5lIG51bWJlciBiYXNlZCBvbiByZXNvbHZlZCBsb2NhdGlvbi4KICAgICAg
ICAgaWYgKGJyZWFrcG9pbnQubG9jYXRpb24pCi0gICAgICAgICAgICB0aGlzLl9zY3JpcHRMb2Nh
dGlvblRvVUlMb2NhdGlvbihudWxsLCBicmVha3BvaW50LmxvY2F0aW9uLnNvdXJjZUlkLCBicmVh
a3BvaW50LmxvY2F0aW9uLmxpbmVOdW1iZXIsIGJyZWFrcG9pbnQubG9jYXRpb24uY29sdW1uTnVt
YmVyLCBkaWRHZXRVSUxvY2F0aW9uLmJpbmQodGhpcykpOworICAgICAgICAgICAgdGhpcy5fc2Ny
aXB0TG9jYXRpb25Ub1VJTG9jYXRpb24obnVsbCwgYnJlYWtwb2ludC5sb2NhdGlvbi5zY3JpcHRJ
ZCwgYnJlYWtwb2ludC5sb2NhdGlvbi5saW5lTnVtYmVyLCBicmVha3BvaW50LmxvY2F0aW9uLmNv
bHVtbk51bWJlciwgZGlkR2V0VUlMb2NhdGlvbi5iaW5kKHRoaXMpKTsKICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgdXBkYXRlU291cmNlRmlsZUJyZWFrcG9pbnRzQW5kRGlzcGF0Y2hFdmVudC5j
YWxsKHRoaXMpOwogICAgIH0sCkBAIC01ODQsOSArNTg0LDkgQEAgV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGNhbGxGcmFtZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIHZhciBjYWxsRnJh
bWUgPSBjYWxsRnJhbWVzW2ldOwogICAgICAgICAgICAgdmFyIHNvdXJjZUZpbGU7Ci0gICAgICAg
ICAgICB2YXIgc2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9yU291
cmNlSUQoY2FsbEZyYW1lLmxvY2F0aW9uLnNvdXJjZUlkKTsKKyAgICAgICAgICAgIHZhciBzY3Jp
cHQgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JTb3VyY2VJRChjYWxsRnJh
bWUubG9jYXRpb24uc2NyaXB0SWQpOwogICAgICAgICAgICAgaWYgKHNjcmlwdCkKLSAgICAgICAg
ICAgICAgICBzb3VyY2VGaWxlID0gdGhpcy5fc291cmNlRmlsZUZvclNjcmlwdChzY3JpcHQuc291
cmNlVVJMLCBzY3JpcHQuc291cmNlSWQpOworICAgICAgICAgICAgICAgIHNvdXJjZUZpbGUgPSB0
aGlzLl9zb3VyY2VGaWxlRm9yU2NyaXB0KHNjcmlwdC5zb3VyY2VVUkwsIHNjcmlwdC5zY3JpcHRJ
ZCk7CiAgICAgICAgICAgICB0aGlzLl9wcmVzZW50YXRpb25DYWxsRnJhbWVzLnB1c2gobmV3IFdl
Ykluc3BlY3Rvci5QcmVzZW5hdGlvbkNhbGxGcmFtZShjYWxsRnJhbWUsIGksIHRoaXMsIHNvdXJj
ZUZpbGUpKTsKICAgICAgICAgfQogICAgICAgICB2YXIgZGV0YWlscyA9IFdlYkluc3BlY3Rvci5k
ZWJ1Z2dlck1vZGVsLmRlYnVnZ2VyUGF1c2VkRGV0YWlsczsKQEAgLTYxNCwyNiArNjE0LDI2IEBA
IFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgcmV0dXJuIHRoaXMuX3ByZXNlbnRhdGlvbkNhbGxGcmFtZXNbdGhpcy5fc2VsZWN0ZWRD
YWxsRnJhbWVJbmRleF07CiAgICAgfSwKIAotICAgIF9zb3VyY2VGaWxlRm9yU2NyaXB0OiBmdW5j
dGlvbihzb3VyY2VVUkwsIHNvdXJjZUlkKQorICAgIF9zb3VyY2VGaWxlRm9yU2NyaXB0OiBmdW5j
dGlvbihzb3VyY2VVUkwsIHNjcmlwdElkKQogICAgIHsKICAgICAgICAgaWYgKCFzb3VyY2VVUkwp
Ci0gICAgICAgICAgICBzb3VyY2VVUkwgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3Jp
cHRGb3JTb3VyY2VJRChzb3VyY2VJZCkuc291cmNlVVJMOwotICAgICAgICByZXR1cm4gdGhpcy5f
c291cmNlRmlsZXNbdGhpcy5fY3JlYXRlU291cmNlRmlsZUlkKHNvdXJjZVVSTCwgc291cmNlSWQp
XTsKKyAgICAgICAgICAgIHNvdXJjZVVSTCA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNj
cmlwdEZvclNvdXJjZUlEKHNjcmlwdElkKS5zb3VyY2VVUkw7CisgICAgICAgIHJldHVybiB0aGlz
Ll9zb3VyY2VGaWxlc1t0aGlzLl9jcmVhdGVTb3VyY2VGaWxlSWQoc291cmNlVVJMLCBzY3JpcHRJ
ZCldOwogICAgIH0sCiAKICAgICBfc2NyaXB0Rm9yU291cmNlRmlsZUlkOiBmdW5jdGlvbihzb3Vy
Y2VGaWxlSWQpCiAgICAgewogICAgICAgICBmdW5jdGlvbiBmaWx0ZXIoc2NyaXB0KQogICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gdGhpcy5fY3JlYXRlU291cmNlRmlsZUlkKHNjcmlwdC5z
b3VyY2VVUkwsIHNjcmlwdC5zb3VyY2VJZCkgPT09IHNvdXJjZUZpbGVJZDsKKyAgICAgICAgICAg
IHJldHVybiB0aGlzLl9jcmVhdGVTb3VyY2VGaWxlSWQoc2NyaXB0LnNvdXJjZVVSTCwgc2NyaXB0
LnNjcmlwdElkKSA9PT0gc291cmNlRmlsZUlkOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBX
ZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5xdWVyeVNjcmlwdHMoZmlsdGVyLmJpbmQodGhpcykp
WzBdOwogICAgIH0sCiAKLSAgICBfY3JlYXRlU291cmNlRmlsZUlkOiBmdW5jdGlvbihzb3VyY2VV
UkwsIHNvdXJjZUlkKQorICAgIF9jcmVhdGVTb3VyY2VGaWxlSWQ6IGZ1bmN0aW9uKHNvdXJjZVVS
TCwgc2NyaXB0SWQpCiAgICAgewogICAgICAgICB2YXIgcHJlZml4ID0gdGhpcy5fZm9ybWF0U291
cmNlRmlsZXMgPyAiZGVvYmZ1c2NhdGVkOiIgOiAiIjsKLSAgICAgICAgcmV0dXJuIHByZWZpeCAr
IChzb3VyY2VVUkwgfHwgc291cmNlSWQpOworICAgICAgICByZXR1cm4gcHJlZml4ICsgKHNvdXJj
ZVVSTCB8fCBzY3JpcHRJZCk7CiAgICAgfSwKIAogICAgIF9yZXNldDogZnVuY3Rpb24oKQpAQCAt
NzIyLDcgKzcyMiw3IEBAIFdlYkluc3BlY3Rvci5QcmVzZW5hdGlvbkNhbGxGcmFtZSA9IGZ1bmN0
aW9uKGNhbGxGcmFtZSwgaW5kZXgsIG1vZGVsLCBzb3VyY2VGaWxlCiAgICAgdGhpcy5faW5kZXgg
PSBpbmRleDsKICAgICB0aGlzLl9tb2RlbCA9IG1vZGVsOwogICAgIHRoaXMuX3NvdXJjZUZpbGUg
PSBzb3VyY2VGaWxlOwotICAgIHRoaXMuX3NjcmlwdCA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1v
ZGVsLnNjcmlwdEZvclNvdXJjZUlEKGNhbGxGcmFtZS5sb2NhdGlvbi5zb3VyY2VJZCk7CisgICAg
dGhpcy5fc2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9yU291cmNl
SUQoY2FsbEZyYW1lLmxvY2F0aW9uLnNjcmlwdElkKTsKIH0KIAogV2ViSW5zcGVjdG9yLlByZXNl
bmF0aW9uQ2FsbEZyYW1lLnByb3RvdHlwZSA9IHsKQEAgLTc4MSw3ICs3ODEsNyBAQCBXZWJJbnNw
ZWN0b3IuUHJlc2VuYXRpb25DYWxsRnJhbWUucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAg
dmFyIGxvY2F0aW9uID0gdGhpcy5fY2FsbEZyYW1lLmxvY2F0aW9uOwogICAgICAgICBpZiAoIXRo
aXMuaXNJbnRlcm5hbFNjcmlwdCkKLSAgICAgICAgICAgIHRoaXMuX21vZGVsLl9zY3JpcHRMb2Nh
dGlvblRvVUlMb2NhdGlvbihudWxsLCBsb2NhdGlvbi5zb3VyY2VJZCwgbG9jYXRpb24ubGluZU51
bWJlciwgbG9jYXRpb24uY29sdW1uTnVtYmVyLCBjYWxsYmFjayk7CisgICAgICAgICAgICB0aGlz
Ll9tb2RlbC5fc2NyaXB0TG9jYXRpb25Ub1VJTG9jYXRpb24obnVsbCwgbG9jYXRpb24uc2NyaXB0
SWQsIGxvY2F0aW9uLmxpbmVOdW1iZXIsIGxvY2F0aW9uLmNvbHVtbk51bWJlciwgY2FsbGJhY2sp
OwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjYWxsYmFjayh1bmRlZmluZWQsIGxvY2F0aW9u
LmxpbmVOdW1iZXIpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFuZS5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFuZS5qcwppbmRleCAz
MzMyM2IwZDk0MjU0YjBmNThlZGNmZjMyYjkwYjQxZTVlODIyMDU1Li5lZGFjMDMzZGQ2MTVkZGYw
M2I4MWJkMjZhMDY1ZTliOGUxMTMxMTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0V2ZW50TGlzdGVuZXJzU2lkZWJhclBhbmUuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FdmVudExpc3RlbmVyc1NpZGViYXJQYW5lLmpz
CkBAIC0yMDIsNyArMjAyLDcgQEAgV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXJCYXIucHJvdG90
eXBlID0gewogICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmV2ZW50TGlzdGVuZXIuaGFuZGxl
ckJvZHkgIT09ICJ1bmRlZmluZWQiKQogICAgICAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaChX
ZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVydHkuZnJvbVByaW1pdGl2ZVZhbHVlKCJsaXN0
ZW5lckJvZHkiLCB0aGlzLmV2ZW50TGlzdGVuZXIuaGFuZGxlckJvZHkpKTsKICAgICAgICAgICAg
IGlmICh0aGlzLmV2ZW50TGlzdGVuZXIubG9jYXRpb24pIHsKLSAgICAgICAgICAgICAgICBwcm9w
ZXJ0aWVzLnB1c2goV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5LmZyb21QcmltaXRp
dmVWYWx1ZSgic291cmNlTmFtZSIsIHRoaXMuZXZlbnRMaXN0ZW5lci5sb2NhdGlvbi5zb3VyY2VJ
ZCkpOworICAgICAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaChXZWJJbnNwZWN0b3IuUmVtb3Rl
T2JqZWN0UHJvcGVydHkuZnJvbVByaW1pdGl2ZVZhbHVlKCJzb3VyY2VOYW1lIiwgdGhpcy5ldmVu
dExpc3RlbmVyLmxvY2F0aW9uLnNjcmlwdElkKSk7CiAgICAgICAgICAgICAgICAgcHJvcGVydGll
cy5wdXNoKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3RQcm9wZXJ0eS5mcm9tUHJpbWl0aXZlVmFs
dWUoImxpbmVOdW1iZXIiLCB0aGlzLmV2ZW50TGlzdGVuZXIubG9jYXRpb24ubGluZU51bWJlcikp
OwogICAgICAgICAgICAgfQogCkBAIC0yMzYsNyArMjM2LDcgQEAgV2ViSW5zcGVjdG9yLkV2ZW50
TGlzdGVuZXJCYXIucHJvdG90eXBlID0gewogICAgICAgICAvLyBSZXF1aXJlcyB0aGF0IEZ1bmN0
aW9uLnRvU3RyaW5nKCkgcmV0dXJuIGF0IGxlYXN0IHRoZSBmdW5jdGlvbidzIHNpZ25hdHVyZS4K
ICAgICAgICAgaWYgKHRoaXMuZXZlbnRMaXN0ZW5lci5sb2NhdGlvbikgewogICAgICAgICAgICAg
dGhpcy5zdWJ0aXRsZUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgICAgIHRoaXMu
c3VidGl0bGVFbGVtZW50LmFwcGVuZENoaWxkKFdlYkluc3BlY3Rvci5saW5raWZ5UmVzb3VyY2VB
c05vZGUodGhpcy5ldmVudExpc3RlbmVyLmxvY2F0aW9uLnNvdXJjZUlkLCAic2NyaXB0cyIsIHRo
aXMuZXZlbnRMaXN0ZW5lci5sb2NhdGlvbi5saW5lTnVtYmVyKSk7CisgICAgICAgICAgICB0aGlz
LnN1YnRpdGxlRWxlbWVudC5hcHBlbmRDaGlsZChXZWJJbnNwZWN0b3IubGlua2lmeVJlc291cmNl
QXNOb2RlKHRoaXMuZXZlbnRMaXN0ZW5lci5sb2NhdGlvbi5zY3JpcHRJZCwgInNjcmlwdHMiLCB0
aGlzLmV2ZW50TGlzdGVuZXIubG9jYXRpb24ubGluZU51bWJlcikpOwogICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgdmFyIG1hdGNoID0gdGhpcy5ldmVudExpc3RlbmVyLmhhbmRsZXJCb2R5
Lm1hdGNoKC9mdW5jdGlvbiAoW15cKF0rPylcKC8pOwogICAgICAgICAgICAgaWYgKG1hdGNoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qcwppbmRleCBmOGY4
NTZlMzk5OWJiY2Q3YzhhYWQxZmM4MDQ5NDFlNTdmOGExZTk1Li45ZDNlYjRjNWY2ZTI5YzUzZDJm
ZDc1M2U2Yzg0MGI4ZDdhNTQzNDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NjcmlwdC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NjcmlwdC5qcwpAQCAtMjMsOSArMjMsOSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwog
Ci1XZWJJbnNwZWN0b3IuU2NyaXB0ID0gZnVuY3Rpb24oc291cmNlSWQsIHNvdXJjZVVSTCwgc3Rh
cnRMaW5lLCBzdGFydENvbHVtbiwgZW5kTGluZSwgZW5kQ29sdW1uLCBlcnJvckxpbmUsIGVycm9y
TWVzc2FnZSwgaXNDb250ZW50U2NyaXB0KQorV2ViSW5zcGVjdG9yLlNjcmlwdCA9IGZ1bmN0aW9u
KHNjcmlwdElkLCBzb3VyY2VVUkwsIHN0YXJ0TGluZSwgc3RhcnRDb2x1bW4sIGVuZExpbmUsIGVu
ZENvbHVtbiwgZXJyb3JMaW5lLCBlcnJvck1lc3NhZ2UsIGlzQ29udGVudFNjcmlwdCkKIHsKLSAg
ICB0aGlzLnNvdXJjZUlkID0gc291cmNlSWQ7CisgICAgdGhpcy5zY3JpcHRJZCA9IHNjcmlwdElk
OwogICAgIHRoaXMuc291cmNlVVJMID0gc291cmNlVVJMOwogICAgIHRoaXMubGluZU9mZnNldCA9
IHN0YXJ0TGluZTsKICAgICB0aGlzLmNvbHVtbk9mZnNldCA9IHN0YXJ0Q29sdW1uOwpAQCAtNDks
NyArNDksNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
IHRoaXMuX3NvdXJjZSA9IHNvdXJjZTsKICAgICAgICAgICAgIGNhbGxiYWNrKHRoaXMuX3NvdXJj
ZSk7CiAgICAgICAgIH0KLSAgICAgICAgRGVidWdnZXJBZ2VudC5nZXRTY3JpcHRTb3VyY2UodGhp
cy5zb3VyY2VJZCwgZGlkR2V0U2NyaXB0U291cmNlLmJpbmQodGhpcykpOworICAgICAgICBEZWJ1
Z2dlckFnZW50LmdldFNjcmlwdFNvdXJjZSh0aGlzLnNjcmlwdElkLCBkaWRHZXRTY3JpcHRTb3Vy
Y2UuYmluZCh0aGlzKSk7CiAgICAgfSwKIAogICAgIGVkaXRTb3VyY2U6IGZ1bmN0aW9uKG5ld1Nv
dXJjZSwgY2FsbGJhY2spCkBAIC02MCw2ICs2MCw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHQucHJv
dG90eXBlID0gewogICAgICAgICAgICAgICAgIHRoaXMuX3NvdXJjZSA9IG5ld1NvdXJjZTsKICAg
ICAgICAgICAgIGNhbGxiYWNrKGVycm9yLCBjYWxsRnJhbWVzKTsKICAgICAgICAgfQotICAgICAg
ICBEZWJ1Z2dlckFnZW50LnNldFNjcmlwdFNvdXJjZSh0aGlzLnNvdXJjZUlkLCBuZXdTb3VyY2Us
IGRpZEVkaXRTY3JpcHRTb3VyY2UuYmluZCh0aGlzKSk7CisgICAgICAgIERlYnVnZ2VyQWdlbnQu
c2V0U2NyaXB0U291cmNlKHRoaXMuc2NyaXB0SWQsIG5ld1NvdXJjZSwgZGlkRWRpdFNjcmlwdFNv
dXJjZS5iaW5kKHRoaXMpKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZpbGUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NvdXJjZUZpbGUuanMKaW5kZXggMTlmOWE0Mzg0MjA1MzM3YWUxNmQ1MDY4
MTg2Zjc0ZWJkMDc4NzhhZi4uMGZmMzlmNWQ2OTYyNDNkMjcyYTA5NDgyNWUyNTY1NTc1NTc2YzQz
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VG
aWxlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRmls
ZS5qcwpAQCAtNjgsNyArNjgsNyBAQCBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5wcm90b3R5
cGUgPSB7CiAgICAgICAgIHZhciByYXdMb2NhdGlvbiA9IHsgbGluZU51bWJlcjogbGluZU51bWJl
ciwgY29sdW1uTnVtYmVyOiBjb2x1bW5OdW1iZXIgfTsKICAgICAgICAgaWYgKHRoaXMuX21hcHBp
bmcpCiAgICAgICAgICAgICByYXdMb2NhdGlvbiA9IHRoaXMuX21hcHBpbmcuZm9ybWF0dGVkVG9P
cmlnaW5hbChyYXdMb2NhdGlvbik7Ci0gICAgICAgIHJhd0xvY2F0aW9uLnNvdXJjZUlkID0gdGhp
cy5fc2NyaXB0Rm9yUmF3TG9jYXRpb24ocmF3TG9jYXRpb24ubGluZU51bWJlciwgcmF3TG9jYXRp
b24uY29sdW1uTnVtYmVyKS5zb3VyY2VJZDsKKyAgICAgICAgcmF3TG9jYXRpb24uc2NyaXB0SWQg
PSB0aGlzLl9zY3JpcHRGb3JSYXdMb2NhdGlvbihyYXdMb2NhdGlvbi5saW5lTnVtYmVyLCByYXdM
b2NhdGlvbi5jb2x1bW5OdW1iZXIpLnNjcmlwdElkOwogICAgICAgICByZXR1cm4gcmF3TG9jYXRp
b247CiAgICAgfSwKIApAQCAtMTM2LDEwICsxMzYsMTAgQEAgV2ViSW5zcGVjdG9yLlJhd1NvdXJj
ZUNvZGUucHJvdG90eXBlID0gewogCiAgICAgICAgIGlmICghdGhpcy5fY29uY2F0ZW5hdGVkU2Ny
aXB0cykKICAgICAgICAgICAgIHRoaXMuX2NvbmNhdGVuYXRlZFNjcmlwdHMgPSB7fTsKLSAgICAg
ICAgaWYgKHRoaXMuX2NvbmNhdGVuYXRlZFNjcmlwdHNbc2NyaXB0LnNvdXJjZUlkXSkKKyAgICAg
ICAgaWYgKHRoaXMuX2NvbmNhdGVuYXRlZFNjcmlwdHNbc2NyaXB0LnNjcmlwdElkXSkKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9zY3JpcHRz
Lmxlbmd0aDsgKytpKQotICAgICAgICAgICAgdGhpcy5fY29uY2F0ZW5hdGVkU2NyaXB0c1t0aGlz
Ll9zY3JpcHRzW2ldLnNvdXJjZUlkXSA9IHRydWU7CisgICAgICAgICAgICB0aGlzLl9jb25jYXRl
bmF0ZWRTY3JpcHRzW3RoaXMuX3NjcmlwdHNbaV0uc2NyaXB0SWRdID0gdHJ1ZTsKIAogICAgICAg
ICB0aGlzLnJlbG9hZCgpOwogCkBAIC0yMzUsNyArMjM1LDcgQEAgV2ViSW5zcGVjdG9yLlJhd1Nv
dXJjZUNvZGUucHJvdG90eXBlID0gewogICAgICAgICAgICAgfQogICAgICAgICAgICAgdmFyIGVu
ZCA9IHsgbGluZU51bWJlcjogbGluZU51bWJlciwgY29sdW1uTnVtYmVyOiBjb2x1bW5OdW1iZXIg
fTsKICAgICAgICAgICAgIGlmIChzY3JpcHQpCi0gICAgICAgICAgICAgICAgc2NyaXB0UmFuZ2Vz
LnB1c2goeyBzdGFydDogc3RhcnQsIGVuZDogZW5kLCBzb3VyY2VJZDogc2NyaXB0LnNvdXJjZUlk
IH0pOworICAgICAgICAgICAgICAgIHNjcmlwdFJhbmdlcy5wdXNoKHsgc3RhcnQ6IHN0YXJ0LCBl
bmQ6IGVuZCwgc2NyaXB0SWQ6IHNjcmlwdC5zY3JpcHRJZCB9KTsKICAgICAgICAgfQogCiAgICAg
ICAgIHZhciBzY3JpcHRPcGVuVGFnID0gIjxzY3JpcHQ+IjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102899</attachid>
            <date>2011-08-04 05:29:25 -0700</date>
            <delta_ts>2011-08-04 06:00:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65682-20110804162923.patch</filename>
            <type>text/plain</type>
            <size>57646</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIzNjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmOTA5ODY1ZGE3OWRlNGQ2ZjM5NDE4
MjMzZmNmMDE4YjAyZTg0ZTY3Li41ODE3NzE5NjFlOWU5NGIyNDUyODMwMjhmNmI3OTQwOGY0NDNm
ZDBiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDgtMDQgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFub3RoZXIgcm91
bmQgb2YgRGVidWdnZXIgZG9tYWluIHJldmlldzogc291cmNlSWQgLT4gc2NyaXB0SWQsIGlzUmVn
ZXggLT4gdXJsUmVnZXguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02NTY4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qczoKKyAgICAgICAg
KGluaXRpYWxpemVfRGVidWdnZXJUZXN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIv
ZGVidWdnZXItc2V0LWJyZWFrcG9pbnQtcmVnZXgtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGlu
c3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1zZXQtYnJlYWtwb2ludC1yZWdleC5odG1sOgorICAg
ICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2UtZmlsZS5odG1sOgorCiAyMDExLTA4LTA0
ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVGVzdCBwcm9ncmVz
c2lvbiBhZnRlciA8aHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvOTIzNDE+LgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5q
cyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMKaW5k
ZXggZmQwODI0ZjZjYTc0ZDRmYzM0N2Y2MDRjZjA1MTY0ODAxMzUwMTkzNC4uYjMzNzcyMjMzZTI4
YjA0ZTYxZDZiNzM1MzQ4Y2M3NjA2ZDBiODJmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzCkBAIC0xMDcsNyArMTA3LDcgQEAgSW5z
cGVjdG9yVGVzdC5jYXB0dXJlU3RhY2tUcmFjZSA9IGZ1bmN0aW9uKGNhbGxGcmFtZXMpCiAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkNhbGwgc3RhY2s6Iik7CiAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBjYWxsRnJhbWVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgIHZhciBmcmFtZSA9IGNh
bGxGcmFtZXNbaV07Ci0gICAgICAgIHZhciBzY3JpcHQgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJN
b2RlbC5zY3JpcHRGb3JTb3VyY2VJRChmcmFtZS5sb2NhdGlvbi5zb3VyY2VJZCk7CisgICAgICAg
IHZhciBzY3JpcHQgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JTb3VyY2VJ
RChmcmFtZS5sb2NhdGlvbi5zY3JpcHRJZCk7CiAgICAgICAgIHZhciB1cmw7CiAgICAgICAgIHZh
ciBsaW5lTnVtYmVyOwogICAgICAgICBpZiAoc2NyaXB0KSB7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc2V0LWJyZWFrcG9pbnQtcmVnZXgtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXNldC1i
cmVha3BvaW50LXJlZ2V4LWV4cGVjdGVkLnR4dAppbmRleCAzMzc4YWEwOWM4OTkzMTBiMjg5MDYz
ZTdhZWQzZTM5MmJkZGRiMjAwLi4zMzJjYWIwN2ZiNjliY2YxZTBhODQ0YjVlMTdmZWRkMmQwODlj
NGJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXIt
c2V0LWJyZWFrcG9pbnQtcmVnZXgtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1zZXQtYnJlYWtwb2ludC1yZWdleC1leHBlY3RlZC50eHQK
QEAgLTEsNiArMSwyMCBAQAogVGVzdHMgRGVidWdnZXIuc2V0QnJlYWtwb2ludEJ5VXJsIHdpdGgg
aXNSZWdleCBzZXQgdG8gdHJ1ZS4KIAogRGVidWdnZXIgd2FzIGVuYWJsZWQuCisKK1J1bm5pbmc6
IHRlc3RTZXROb25lT2ZVUkxBbmRSZWdleAoreworICAgIGNvZGUgOiAtMzIwMDAKKyAgICBtZXNz
YWdlIDogIkVpdGhlciB1cmwgb3IgdXJsUmVnZXggbXVzdCBiZSBzcGVjaWZpZWQuIgorfQorCitS
dW5uaW5nOiB0ZXN0U2V0Qm90aFVSTEFuZFJlZ2V4Cit7CisgICAgY29kZSA6IC0zMjAwMAorICAg
IG1lc3NhZ2UgOiAiRWl0aGVyIHVybCBvciB1cmxSZWdleCBtdXN0IGJlIHNwZWNpZmllZC4iCit9
CisKK1J1bm5pbmc6IHRlc3RTZXRCeVJlZ2V4CiBTZXQgdGltZXIgZm9yIHRlc3QgZnVuY3Rpb24u
CiBTY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KIENhbGwgc3RhY2s6CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc2V0LWJyZWFrcG9pbnQtcmVnZXgu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1zZXQtYnJlYWtw
b2ludC1yZWdleC5odG1sCmluZGV4IDU1NjVmYzU3ZTk0MTUzM2VlMjUyYjViNmYxYjhlYzAxMzQ5
MjRkMDcuLjYwZTA3MzhmMzA3ZTc5NTBiZTI4ODEyMjIyZWMzNzY1NDk1OWNiZmMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1zZXQtYnJlYWtwb2lu
dC1yZWdleC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dl
ci1zZXQtYnJlYWtwb2ludC1yZWdleC5odG1sCkBAIC0xNSwyNiArMTUsNTMgQEAgZnVuY3Rpb24g
Zm9vKCkKIAogZnVuY3Rpb24gdGVzdCgpCiB7Ci0gICAgSW5zcGVjdG9yVGVzdC5zdGFydERlYnVn
Z2VyVGVzdChzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICB2
YXIgY29sdW1uTnVtYmVyID0gdW5kZWZpbmVkOwotICAgICAgICB2YXIgY29uZGl0aW9uID0gdW5k
ZWZpbmVkOwotICAgICAgICB2YXIgaXNSZWdleCA9IHRydWU7Ci0gICAgICAgIERlYnVnZ2VyQWdl
bnQuc2V0QnJlYWtwb2ludEJ5VXJsKCJkZWJ1Z2dlci1zZXQtYnJlYWtwb2ludC4qIiwgOCwgY29s
dW1uTnVtYmVyLCBjb25kaXRpb24sIGlzUmVnZXgsIHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RGdW5jdGlv
bkFuZFdhaXRVbnRpbFBhdXNlZChzdGVwMyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMo
Y2FsbEZyYW1lcykKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY2FwdHVyZVN0YWNrVHJh
Y2UoY2FsbEZyYW1lcyk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVEZWJ1Z2dlclRl
c3QoKTsKLSAgICB9CisgICAgSW5zcGVjdG9yVGVzdC5ydW5EZWJ1Z2dlclRlc3RTdWl0ZShbCisg
ICAgICAgIGZ1bmN0aW9uIHRlc3RTZXROb25lT2ZVUkxBbmRSZWdleChuZXh0KQorICAgICAgICB7
CisgICAgICAgICAgICB2YXIgdXJsID0gImRlYnVnZ2VyLXNldC1icmVha3BvaW50LmpzIjsKKyAg
ICAgICAgICAgIHZhciB1cmxSZWdleCA9ICJkZWJ1Z2dlci1zZXQtYnJlYWtwb2ludC4qIjsKKyAg
ICAgICAgICAgIERlYnVnZ2VyQWdlbnQuc2V0QnJlYWtwb2ludEJ5VXJsKHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCAxLCBzdGVwMik7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKHJlc3VsdCkK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXAocmVzdWx0
KTsKKyAgICAgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisK
KyAgICAgICAgZnVuY3Rpb24gdGVzdFNldEJvdGhVUkxBbmRSZWdleChuZXh0KQorICAgICAgICB7
CisgICAgICAgICAgICB2YXIgdXJsID0gImRlYnVnZ2VyLXNldC1icmVha3BvaW50LmpzIjsKKyAg
ICAgICAgICAgIHZhciB1cmxSZWdleCA9ICJkZWJ1Z2dlci1zZXQtYnJlYWtwb2ludC4qIjsKKyAg
ICAgICAgICAgIERlYnVnZ2VyQWdlbnQuc2V0QnJlYWtwb2ludEJ5VXJsKHVybCwgdXJsUmVnZXgs
IDEsIHN0ZXAyKTsKKworICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIocmVzdWx0KQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcChyZXN1bHQpOworICAg
ICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKworICAgICAg
ICBmdW5jdGlvbiB0ZXN0U2V0QnlSZWdleChuZXh0KQorICAgICAgICB7CisgICAgICAgICAgICB2
YXIgdXJsID0gdW5kZWZpbmVkOworICAgICAgICAgICAgdmFyIHVybFJlZ2V4ID0gImRlYnVnZ2Vy
LXNldC1icmVha3BvaW50LioiOworICAgICAgICAgICAgdmFyIGNvbHVtbk51bWJlciA9IHVuZGVm
aW5lZDsKKyAgICAgICAgICAgIHZhciBjb25kaXRpb24gPSB1bmRlZmluZWQ7CisgICAgICAgICAg
ICBEZWJ1Z2dlckFnZW50LnNldEJyZWFrcG9pbnRCeVVybCh1cmwsIHVybFJlZ2V4LCA4LCBjb2x1
bW5OdW1iZXIsIGNvbmRpdGlvbiwgc3RlcDIpOworCisgICAgICAgICAgICBmdW5jdGlvbiBzdGVw
MihyZXN1bHQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5y
dW5UZXN0RnVuY3Rpb25BbmRXYWl0VW50aWxQYXVzZWQoc3RlcDMpOworICAgICAgICAgICAgfQor
ICAgICAgICAKKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKGNhbGxGcmFtZXMpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jYXB0dXJlU3RhY2tUcmFjZShj
YWxsRnJhbWVzKTsKKyAgICAgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICBdKTsKIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvc291cmNlLWZpbGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9zb3VyY2UtZmlsZS5odG1sCmluZGV4IDg0MmE5ZjM4MWU1MTM4MDU3OGM0Yzc2
MzA1ZjlhMmQ0ZjZiM2NhMTEuLjI4YWQ2MjFiY2FmODBhYWI4YTBlNjVlOTE1NGUwZjg5ZmI0ZWM2
NzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2UtZmls
ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2UtZmlsZS5o
dG1sCkBAIC0zOCw3ICszOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgZnVuY3Rpb24gY2hl
Y2tSYXdMb2NhdGlvbihzY3JpcHQsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgbG9jYXRpb24p
CiAgICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhzY3JpcHQuc291cmNl
SWQsIGxvY2F0aW9uLnNvdXJjZUlkKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVh
bHMoc2NyaXB0LnNjcmlwdElkLCBsb2NhdGlvbi5zY3JpcHRJZCk7CiAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0RXF1YWxzKGxpbmVOdW1iZXIsIGxvY2F0aW9uLmxpbmVOdW1iZXIpOwogICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhjb2x1bW5OdW1iZXIsIGxvY2F0aW9uLmNv
bHVtbk51bWJlcik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDljMzgyMTI5MTA1MGVjMDIwYTM2MDE4
MzQ1OGRiMjRmYTNlYmRiZjMuLjY1NjJmZDYxMzM0ZTUzMGNiZmMxYTQzNmYyNDUzMjExZDg5YjQz
MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2OSBAQAorMjAxMS0wOC0wNCAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYW5vdGhl
ciByb3VuZCBvZiBEZWJ1Z2dlciBkb21haW4gcmV2aWV3OiBzb3VyY2VJZCAtPiBzY3JpcHRJZCwg
aXNSZWdleCAtPiB1cmxSZWdleC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY1NjgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanM6CisgICAgICAg
ICgpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckNvbnNvbGVBZ2VudDo6YWRkTWVzc2FnZVRvQ29uc29sZSk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01B
Z2VudDo6YnVpbGRPYmplY3RGb3JFdmVudExpc3RlbmVyKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50OjpzZXRCcmVha3BvaW50QnlVcmwpOgorICAgICAgICAoV2ViQ29yZTo6cGFy
c2VMb2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojpz
ZXRCcmVha3BvaW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6
OmNvbnRpbnVlVG9Mb2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50OjpyZXNvbHZlQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50OjpzZXRTY3JpcHRTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6Z2V0U2NyaXB0U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRpZFBhcnNlU291cmNlKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlSW1wbCk6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAqIGluc3BlY3Rvci9TY3JpcHRE
ZWJ1Z0xpc3RlbmVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1v
ZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlLnNl
dEJyZWFrcG9pbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90
eXBlLnNjcmlwdEZvclNvdXJjZUlEKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1v
ZGVsLnByb3RvdHlwZS5xdWVyeVNjcmlwdHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyTW9kZWwucHJvdG90eXBlLnNldFNjcmlwdFNvdXJjZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUuX2RpZEVkaXRTY3JpcHRTb3VyY2UpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlLl9wYXJzZWRTY3JpcHRTb3Vy
Y2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyRGlzcGF0Y2hlci5wcm90b3R5cGUu
c2NyaXB0UGFyc2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlckRpc3BhdGNoZXIu
cHJvdG90eXBlLmJyZWFrcG9pbnRSZXNvbHZlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLnJlZ2lzdGVyQW5jaG9yKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5f
dXBkYXRlQW5jaG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLnByb3RvdHlwZS5zZXRTY3JpcHRTb3VyY2UuZGlkUmVjZWl2ZVNvdXJjZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuc2V0
U2NyaXB0U291cmNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLnByb3RvdHlwZS5fc2V0QnJlYWtwb2ludEluRGVidWdnZXIuZGlkR2V0U2NyaXB0TG9j
YXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwu
cHJvdG90eXBlLl9zZXRCcmVha3BvaW50SW5EZWJ1Z2dlcik6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX2JyZWFrcG9pbnRBZGRlZCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5
cGUuc2V0IF9kZWJ1Z2dlclBhdXNlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX3NvdXJjZUZpbGVGb3JTY3JpcHQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl9zY3Jp
cHRGb3JTb3VyY2VGaWxlSWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwucHJvdG90eXBlLl9jcmVhdGVTb3VyY2VGaWxlSWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlByZXNlbmF0aW9uQ2FsbEZyYW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Q
cmVzZW5hdGlvbkNhbGxGcmFtZS5wcm90b3R5cGUuc291cmNlTGluZSk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9FdmVudExpc3RlbmVyc1NpZGViYXJQYW5lLmpzOgorICAgICAgICAo
Lik6CisgICAgICAgICgpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Lmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
U2NyaXB0LnByb3RvdHlwZS5yZXF1ZXN0U291cmNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
Y3JpcHQucHJvdG90eXBlLmVkaXRTb3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvU291cmNlRmlsZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLnBy
b3RvdHlwZS51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UmF3U291cmNlQ29kZS5wcm90b3R5cGUuZm9yY2VMb2FkQ29udGVudCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUmF3U291cmNlQ29kZS5wcm90b3R5cGUuX2NvbmNhdGVuYXRlU2NyaXB0c0NvbnRl
bnQpOgorCiAyMDExLTA4LTAzICBBbGljZSBCb3hoYWxsICA8YWJveGhhbGxAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIEFuIGVsZW1lbnQgd2l0aCByb2xlPXRleHRib3ggc2hvdWxkIGhhdmUgc2V0
dGFibGUgQVhWYWx1ZSB1bmxlc3MgcmVhZC1vbmx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKaW5kZXggYWMzM2ExMjgwY2IyMDc1MTEzMTcz
NDdmMjA2NzIyZWY4MjViMDFjNi4uYTQxYmQ3ZWY3ZTVkYmMyOWRlZjJmMmE5Y2Y1ZjQ2YWVlMjAw
MzIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
U291cmNlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNv
dXJjZS5qcwpAQCAtNDgxLDcgKzQ4MSw3IEBAIEluamVjdGVkU2NyaXB0LkNhbGxGcmFtZVByb3h5
ID0gZnVuY3Rpb24ob3JkaW5hbCwgY2FsbEZyYW1lKQogewogICAgIHRoaXMuaWQgPSAie1wib3Jk
aW5hbFwiOiIgKyBvcmRpbmFsICsgIixcImluamVjdGVkU2NyaXB0SWRcIjoiICsgaW5qZWN0ZWRT
Y3JpcHRJZCArICJ9IjsKICAgICB0aGlzLmZ1bmN0aW9uTmFtZSA9IChjYWxsRnJhbWUudHlwZSA9
PT0gImZ1bmN0aW9uIiA/IGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUgOiAiIik7Ci0gICAgdGhpcy5s
b2NhdGlvbiA9IHsgc291cmNlSWQ6IFN0cmluZyhjYWxsRnJhbWUuc291cmNlSUQpLCBsaW5lTnVt
YmVyOiBjYWxsRnJhbWUubGluZSwgY29sdW1uTnVtYmVyOiBjYWxsRnJhbWUuY29sdW1uIH07Cisg
ICAgdGhpcy5sb2NhdGlvbiA9IHsgc2NyaXB0SWQ6IFN0cmluZyhjYWxsRnJhbWUuc291cmNlSUQp
LCBsaW5lTnVtYmVyOiBjYWxsRnJhbWUubGluZSwgY29sdW1uTnVtYmVyOiBjYWxsRnJhbWUuY29s
dW1uIH07CiAgICAgdGhpcy5zY29wZUNoYWluID0gdGhpcy5fd3JhcFNjb3BlQ2hhaW4oY2FsbEZy
YW1lKTsKICAgICB0aGlzLnRoaXMgPSBpbmplY3RlZFNjcmlwdC5fd3JhcE9iamVjdChjYWxsRnJh
bWUudGhpc09iamVjdCwgImJhY2t0cmFjZSIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvci5qc29uCmluZGV4IDg5ZDVlZGU0YWEyYTAyYjhlNGZhYTRjMTRkNGUyOGVjMGFkZmM0
NzQuLjljNThmYWI2ZDA4OTBjODljMzkwYTUzMTEwM2YyM2JhNTkxMWM3ZDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTMzMSw3ICszMzEsNyBAQAogICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInRleHQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3Jp
cHRpb24iOiAiTWVzc2FnZSB0ZXh0LiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJuZXR3b3JrSWRlbnRpZmllciIsICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwiOiB0cnVl
LCAiZGVzY3JpcHRpb24iOiAiSWRlbnRpZmllciBvZiB0aGUgbmV0d29yayByZXF1ZXN0IGFzc29j
aWF0ZWQgd2l0aCB0aGUgY29uc29sZSBtZXNzYWdlLiIgfSwKICAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJwYXJhbWV0ZXJzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVm
IjogIlJ1bnRpbWUuUmVtb3RlT2JqZWN0IiB9LCAiZGVzY3JpcHRpb24iOiAiTWVzc2FnZSBwYXJh
bWV0ZXJzIGluIGNhc2Ugb2YgdGhlIGZvcm1hdHRlZCBtZXNzYWdlLiIgfSwKLSAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJzdGFja1RyYWNlIiwgIiRyZWYiOiAiU3RhY2tUcmFjZSIsICJk
ZXNjcmlwdGlvbiI6ICJTdGFjayB0cmFjZSBmb3IgYXNzZXJ0IGFuZCBlcnJvciBtZXNzYWdlcy4i
IH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3RhY2tUcmFjZSIsICIkcmVmIjog
IlN0YWNrVHJhY2UiLCAiZGVzY3JpcHRpb24iOiAiU3RhY2sgdHJhY2UgZm9yIGFzc2VydCBhbmQg
ZXJyb3IgbWVzc2FnZXMuIiB9CiAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgfSwKICAg
ICAgICAgICAgIHsKQEAgLTE0NTksMTAgKzE0NTksMTUgQEAKICAgICAgICAgImRlc2NyaXB0aW9u
IjogIkRlYnVnZ2VyIGRvbWFpbiBleHBvc2VzIEphdmFTY3JpcHQgZGVidWdnaW5nIGZ1bmN0aW9u
cy4gSXQgYWxsb3dzIHNldHRpbmcgYW5kIHJlbW92aW5nIGJyZWFrcG9pbnRzLCBzdGVwcGluZyB0
aHJvdWdoIGV4ZWN1dGlvbiwgZXhwbG9yaW5nIHN0YWNrIHRyYWNlcywgZXRjLiIsCiAgICAgICAg
ICJ0eXBlcyI6IFsKICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAiaWQiOiAiU2NyaXB0
SWQiLAorICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCisgICAgICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogIlVuaXF1ZSBzY3JpcHQgaWRlbnRpZmllci4iCisgICAgICAgICAgICB9
LAorICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJpZCI6ICJMb2NhdGlvbiIsCiAgICAg
ICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgICAgICAicHJvcGVydGll
cyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzb3VyY2VJZCIsICJ0eXBlIjog
InN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJTY3JpcHQgaWRlbnRpZmllciBhcyByZXBvcnRlZCBi
eSB0aGUgPGNvZGU+c2NyaXB0UGFyc2VkPC9jb2RlPiIgfSwKKyAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJzY3JpcHRJZCIsICIkcmVmIjogIlNjcmlwdElkIiwgImRlc2NyaXB0aW9uIjog
IlNjcmlwdCBpZGVudGlmaWVyIGFzIHJlcG9ydGVkIGluIHRoZSA8Y29kZT5EZWJ1Z2dlci5zY3Jp
cHRQYXJzZWQ8L2NvZGU+LiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJsaW5l
TnVtYmVyIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJMaW5lIG51bWJlciBp
biB0aGUgc2NyaXB0LiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb2x1bW5O
dW1iZXIiLCAidHlwZSI6ICJpbnRlZ2VyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIkNvbHVtbiBudW1iZXIgaW4gdGhlIHNjcmlwdC4iIH0KICAgICAgICAgICAgICAgICBdLApA
QCAtMTQ3MiwyMiArMTQ3NywyMiBAQAogICAgICAgICAgICAgICAgICJpZCI6ICJDYWxsRnJhbWUi
LAogICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAgICAgInBy
b3BlcnRpZXMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaWQiLCAidHlwZSI6
ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiQ2FsbCBmcmFtZSBpZGVudGlmaWVyLiIgfSwKLSAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmdW5jdGlvbk5hbWUiLCAidHlwZSI6ICJzdHJp
bmciLCAiZGVzY3JpcHRpb24iOiAiTmFtZSBvZiB0aGUgZnVuY3Rpb24gY2FsbGVkIG9uIHRoaXMg
ZnJhbWUuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlkIiwgInR5cGUiOiAi
c3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIkNhbGwgZnJhbWUgaWRlbnRpZmllci4gVGhpcyBpZGVu
dGlmaWVyIGlzIG9ubHkgdmFsaWQgd2hpbGUgdGhlIHZpcnR1YWwgbWFjaGluZSBpcyBwYXVzZWQu
IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZ1bmN0aW9uTmFtZSIsICJ0eXBl
IjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJOYW1lIG9mIHRoZSBKYXZhU2NyaXB0IGZ1bmN0
aW9uIGNhbGxlZCBvbiB0aGlzIGNhbGwgZnJhbWUuIiB9LAogICAgICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImxvY2F0aW9uIiwgIiRyZWYiOiAiTG9jYXRpb24iLCAiZGVzY3JpcHRpb24iOiAi
TG9jYXRpb24gaW4gdGhlIHNvdXJjZSBjb2RlLiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJzY29wZUNoYWluIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjog
IlNjb3BlIiB9LCAiZGVzY3JpcHRpb24iOiAiU2NvcGUgY2hhaW4gZm9yIGdpdmVuIGNhbGwgZnJh
bWUuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNjb3BlQ2hhaW4iLCAidHlw
ZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiU2NvcGUiIH0sICJkZXNjcmlwdGlvbiI6
ICJTY29wZSBjaGFpbiBmb3IgdGhpcyBjYWxsIGZyYW1lLiIgfSwKICAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJ0aGlzIiwgIiRyZWYiOiAiUnVudGltZS5SZW1vdGVPYmplY3QiLCAiZGVz
Y3JpcHRpb24iOiAiPGNvZGU+dGhpczwvY29kZT4gb2JqZWN0IGZvciB0aGlzIGNhbGwgZnJhbWUu
IiB9CiAgICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
RGVidWdnZXIgY2FsbCBmcmFtZS4gQXJyYXkgb2YgY2FsbCBmcmFtZXMgZm9ybSBjYWxsIHN0YWNr
LiIKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiSmF2YVNjcmlwdCBjYWxsIGZyYW1l
LiBBcnJheSBvZiBjYWxsIGZyYW1lcyBmb3JtIHRoZSBjYWxsIHN0YWNrLiIKICAgICAgICAgICAg
IH0sCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgImlkIjogIlNjb3BlIiwKICAgICAg
ICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVz
IjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInR5cGUiLCAidHlwZSI6ICJzdHJp
bmciLCAiZW51bSI6IFsiZ2xvYmFsIiwgImxvY2FsIiwgIndpdGgiLCAiY2xvc3VyZSIsICJjYXRj
aCJdLCAiZGVzY3JpcHRpb24iOiAiU2NvcGUgdHlwZS4iIH0sCi0gICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAib2JqZWN0IiwgIiRyZWYiOiAiUnVudGltZS5SZW1vdGVPYmplY3QiLCAiZGVz
Y3JpcHRpb24iOiAiT2JqZWN0IHJlcHJlc2VudGluZyB0aGUgc2NvcGUuIiB9CisgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAib2JqZWN0IiwgIiRyZWYiOiAiUnVudGltZS5SZW1vdGVPYmpl
Y3QiLCAiZGVzY3JpcHRpb24iOiAiT2JqZWN0IHJlcHJlc2VudGluZyB0aGUgc2NvcGUuIEZvciA8
Y29kZT5nbG9iYWw8L2NvZGU+IGFuZCA8Y29kZT53aXRoPC9jb2RlPiBzY29wZXMgaXQgcmVwcmVz
ZW50cyB0aGUgYWN0dWFsIG9iamVjdDsgZm9yIHRoZSByZXN0IG9mIHRoZSBzY29wZXMsIGl0IGlz
IGFydGlmaWNpYWwgdHJhbnNpZW50IG9iamVjdCBlbnVtZXJhdGluZyBzY29wZSB2YXJpYWJsZXMg
YXMgaXRzIHByb3BlcnRpZXMuIiB9CiAgICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAiRGVidWdnZXIgY2FsbCBmcmFtZS4gQXJyYXkgb2YgY2FsbCBmcmFt
ZXMgZm9ybSBjYWxsIHN0YWNrLiIKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiU2Nv
cGUgZGVzY3JpcHRpb24uIgogICAgICAgICAgICAgfQogICAgICAgICBdLAogICAgICAgICAiY29t
bWFuZHMiOiBbCkBAIC0xNTA5LDE3ICsxNTE0LDE3IEBACiAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgIm5hbWUiOiAic2V0QnJlYWtwb2ludEJ5VXJsIiwKICAgICAgICAgICAgICAgICAi
cGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlw
ZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiVVJMIG9mIHRoZSByZXNvdXJjZSB0byBzZXQg
YnJlYWtwb2ludCBvbi4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwg
InR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlVSTCBv
ZiB0aGUgcmVzb3VyY2VzIHRvIHNldCBicmVha3BvaW50IG9uLiIgfSwKKyAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJ1cmxSZWdleCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6
IHRydWUsICJkZXNjcmlwdGlvbiI6ICJSZWdleCBwYXR0ZXJuIGZvciB0aGUgVVJMcyBvZiB0aGUg
cmVzb3VyY2VzIHRvIHNldCBicmVha3BvaW50cyBvbi4gRWl0aGVyIDxjb2RlPnVybDwvY29kZT4g
b3IgPGNvZGU+dXJsUmVnZXg8L2NvZGU+IG11c3QgYmUgc3BlY2lmaWVkLiIgfSwKICAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJsaW5lTnVtYmVyIiwgInR5cGUiOiAiaW50ZWdlciIsICJk
ZXNjcmlwdGlvbiI6ICJMaW5lIG51bWJlciB0byBzZXQgYnJlYWtwb2ludCBhdC4iIH0sCiAgICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29sdW1uTnVtYmVyIiwgInR5cGUiOiAiaW50ZWdl
ciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJPZmZzZXQgaW4gdGhlIGxpbmUg
dG8gc2V0IGJyZWFrcG9pbnQgYXQuIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImNvbmRpdGlvbiIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICJFeHByZXNzaW9uIHRvIHVzZSBhcyBhIGJyZWFrcG9pbnQgY29uZGl0aW9uLiBXaGVu
IHNwZWNpZmllZCwgZGVidWdnZXIgd2lsbCBvbmx5IHN0b3Agb24gdGhlIGJyZWFrcG9pbnQgaWYg
dGhpcyBleHByZXNzaW9uIGV2YWx1YXRlcyB0byB0cnVlLiIgfSwKLSAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJpc1JlZ2V4IiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRy
dWUsICJkZXNjcmlwdGlvbiI6ICJJZiB0cnVlLCBnaXZlbiA8Y29kZT51cmw8L2NvZGU+IGlzIGNv
bnNpZGVyZWQgdG8gYmUgYSByZWd1bGFyIGV4cHJlc3Npb24uIiB9CisgICAgICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAiY29uZGl0aW9uIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjog
dHJ1ZSwgImRlc2NyaXB0aW9uIjogIkV4cHJlc3Npb24gdG8gdXNlIGFzIGEgYnJlYWtwb2ludCBj
b25kaXRpb24uIFdoZW4gc3BlY2lmaWVkLCBkZWJ1Z2dlciB3aWxsIG9ubHkgc3RvcCBvbiB0aGUg
YnJlYWtwb2ludCBpZiB0aGlzIGV4cHJlc3Npb24gZXZhbHVhdGVzIHRvIHRydWUuIiB9CiAgICAg
ICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKLSAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJicmVha3BvaW50SWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVz
Y3JpcHRpb24iOiAiSWQgb2YgdGhlIGNyZWF0ZWQgYnJlYWtwb2ludCBmb3IgZnVydGhlciBtYW5p
cHVsYXRpb25zLiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJsb2NhdGlvbnMi
LCAib3B0aW9uYWwiOiB0cnVlLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAi
TG9jYXRpb24ifSwgImRlc2NyaXB0aW9uIjogIkxpc3Qgb2YgdGhlIGxvY2F0aW9ucyB0aGlzIGJy
ZWFrcG9pbnQgcmVzb2x2ZWQgaW50by4iIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJicmVha3BvaW50SWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiSWQgb2Yg
dGhlIGNyZWF0ZWQgYnJlYWtwb2ludCBmb3IgZnVydGhlciByZWZlcmVuY2UuIiB9LAorICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImxvY2F0aW9ucyIsICJvcHRpb25hbCI6IHRydWUsICJ0
eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJMb2NhdGlvbiJ9LCAiZGVzY3JpcHRp
b24iOiAiTGlzdCBvZiB0aGUgbG9jYXRpb25zIHRoaXMgYnJlYWtwb2ludCByZXNvbHZlZCBpbnRv
IHVwb24gYWRkaXRpb24uIiB9CiAgICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiU2V0cyBKYXZhU2NyaXB0IGJyZWFrcG9pbnQgYXQgYSBnaXZlbiBsb2Nh
dGlvbiBzcGVjaWZpZWQgYnkgVVJMLiBUaGlzIGJyZWFrcG9pbnQgd2lsbCBzdXJ2aXZlIHBhZ2Ug
cmVsb2FkLiIKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiU2V0cyBKYXZhU2NyaXB0
IGJyZWFrcG9pbnQgYXQgZ2l2ZW4gbG9jYXRpb24gc3BlY2lmaWVkIGVpdGhlciBieSBVUkwgb3Ig
VVJMIHJlZ2V4LiBPbmNlIHRoaXMgY29tbWFuZCBpcyBpc3N1ZWQsIGFsbCBleGlzdGluZyBwYXJz
ZWQgc2NyaXB0cyB3aWxsIGhhdmUgYnJlYWtwb2ludHMgcmVzb2x2ZWQgYW5kIHJldHVybmVkIGlu
IDxjb2RlPmxvY2F0aW9uczwvY29kZT4gcHJvcGVydHkuIEZ1cnRoZXIgbWF0Y2hpbmcgc2NyaXB0
IHBhcnNpbmcgd2lsbCByZXN1bHQgaW4gc3Vic2VxdWVudCA8Y29kZT5EZWJ1Z2dlci5icmVha3Bv
aW50UmVzb2x2ZWQ8L2NvZGU+IGV2ZW50cyBpc3N1ZWQuIFRoaXMgbG9naWNhbCBicmVha3BvaW50
IHdpbGwgc3Vydml2ZSBwYWdlIHJlbG9hZHMuIgogICAgICAgICAgICAgfSwKICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJzZXRCcmVha3BvaW50IiwKQEAgLTE1NzAsNyAr
MTU3NSw3IEBACiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIm5hbWUiOiAic2V0U2Ny
aXB0U291cmNlIiwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJzb3VyY2VJZCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlw
dGlvbiI6ICJJZCBvZiB0aGUgc2NyaXB0IHRvIGVkaXQuIiB9LAorICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogInNjcmlwdElkIiwgIiRyZWYiOiAiU2NyaXB0SWQiLCAiZGVzY3JpcHRpb24i
OiAiSWQgb2YgdGhlIHNjcmlwdCB0byBlZGl0LiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJzY3JpcHRTb3VyY2UiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAi
TmV3IGNvbnRlbnQgb2YgdGhlIHNjcmlwdC4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAicHJldmlldyIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVz
Y3JpcHRpb24iOiAiIElmIHRydWUgdGhlIGNoYW5nZSB3aWxsIG5vdCBhY3R1YWxseSBiZSBhcHBs
aWVkLiBQcmV2aWV3IG1vZGUgbWF5IGJlIHVzZWQgdG8gZ2V0IHJlc3VsdCBkZXNjcmlwdGlvbiB3
aXRob3V0IGFjdHVhbGx5IG1vZGlmeWluZyB0aGUgY29kZS4iIH0KICAgICAgICAgICAgICAgICBd
LApAQCAtMTU4Myw3ICsxNTg4LDcgQEAKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAi
bmFtZSI6ICJnZXRTY3JpcHRTb3VyY2UiLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjog
WwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNvdXJjZUlkIiwgInR5cGUiOiAic3Ry
aW5nIiwgImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBzY3JpcHQgdG8gZ2V0IHNvdXJjZSBmb3Iu
IiB9CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2NyaXB0SWQiLCAiJHJlZiI6ICJT
Y3JpcHRJZCIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgc2NyaXB0IHRvIGdldCBzb3VyY2Ug
Zm9yLiIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgInJldHVybnMiOiBb
CiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2NyaXB0U291cmNlIiwgInR5cGUiOiAi
c3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlNjcmlwdCBzb3VyY2UuIiB9CkBAIC0xNjI0LDcgKzE2
MjksNyBAQAogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogInNjcmlwdFBh
cnNlZCIsCiAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAic291cmNlSWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24i
OiAiSWRlbnRpZmllciBvZiB0aGUgc2NyaXB0IHBhcnNlZC4iIH0sCisgICAgICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAic2NyaXB0SWQiLCAiJHJlZiI6ICJTY3JpcHRJZCIsICJkZXNjcmlwdGlv
biI6ICJJZGVudGlmaWVyIG9mIHRoZSBzY3JpcHQgcGFyc2VkLiIgfSwKICAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAi
VVJMIG9mIHRoZSBzY3JpcHQgcGFyc2VkIChpZiBhbnkpLiIgfSwKICAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJzdGFydExpbmUiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9u
IjogIkxpbmUgb2Zmc2V0IG9mIHRoZSBzY3JpcHQgd2l0aGluIHRoZSByZXNvdXJjZSB3aXRoIGdp
dmVuIFVSTCAoZm9yIHNjcmlwdCB0YWdzKS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAic3RhcnRDb2x1bW4iLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIkNv
bHVtbiBvZmZzZXQgb2YgdGhlIHNjcmlwdCB3aXRoaW4gdGhlIHJlc291cmNlIHdpdGggZ2l2ZW4g
VVJMLiIgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b25zb2xlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNv
bGVBZ2VudC5jcHAKaW5kZXggMDg2N2M5NmRjZWEwOGYwNjMyZTVkN2Q3Mjg1NDQ0MGNkMDRlYTQ4
Ny4uZTk0YmNhOTY5MjJjNTgyMmIwZjFjM2YzOWQ4YzU4ZDgyNjE1Y2Y1YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKQEAgLTE0
MiwxMSArMTQyLDExIEBAIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjphZGRNZXNzYWdlVG9D
b25zb2xlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwCiAgICAgYWRkQ29uc29sZU1l
c3NhZ2UoYWRvcHRQdHIobmV3IENvbnNvbGVNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1l
c3NhZ2UsIGFyZ3VtZW50cywgY2FsbFN0YWNrKSkpOwogfQogCi12b2lkIEluc3BlY3RvckNvbnNv
bGVBZ2VudDo6YWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2Fn
ZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVu
c2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlSWQpCit2b2lkIEluc3BlY3Rv
ckNvbnNvbGVBZ2VudDo6YWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlIHNvdXJjZSwg
TWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc2NyaXB0SWQpCiB7CiAgICAg
aWYgKCFtX2luc3BlY3RvckFnZW50LT5lbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBh
ZGRDb25zb2xlTWVzc2FnZShhZG9wdFB0cihuZXcgQ29uc29sZU1lc3NhZ2Uoc291cmNlLCB0eXBl
LCBsZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlSWQpKSk7CisgICAgYWRkQ29uc29s
ZU1lc3NhZ2UoYWRvcHRQdHIobmV3IENvbnNvbGVNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWws
IG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNjcmlwdElkKSkpOwogfQogCiB2b2lkIEluc3BlY3RvckNv
bnNvbGVBZ2VudDo6c3RhcnRUaW1pbmcoY29uc3QgU3RyaW5nJiB0aXRsZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAppbmRleCBjZDk2NWIx
YWNjNDk2ZmJiOWUxMjZjOWJlZjRkM2Q5Yzg1M2EzMjQzLi44MzlmOTUwMDVkM2QxYWZlOGE1MTQ3
Njc2Mjk4ZjIyYzgxYzNlOGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ29uc29sZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnNvbGVBZ2VudC5oCkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGNsZWFyRnJvbnRlbmQoKTsKIAogICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdl
U291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+
KTsKLSAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5
cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVt
YmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlkKTsKKyAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNv
bGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNjcmlwdElkKTsK
IAogICAgIHZvaWQgc3RhcnRUaW1pbmcoY29uc3QgU3RyaW5nJiB0aXRsZSk7CiAgICAgdm9pZCBz
dG9wVGltaW5nKGNvbnN0IFN0cmluZyYgdGl0bGUsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNr
Pik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29s
ZUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnNvbGVJbnN0cnVtZW50YXRpb24uaAppbmRleCBkZTQzMTdkMzI3OGUwZWY2MTNkNWEzNzU4MjE1
Y2M2NjFiY2RhZDUwLi44YTQwODU5ZmUxZDNhZmQzNjc4NzczOGJjOWExZGVmOTBkY2VmNDQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3Ry
dW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25z
b2xlSW5zdHJ1bWVudGF0aW9uLmgKQEAgLTQ2LDExICs0NiwxMSBAQCBpbmxpbmUgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUoUGFnZSogcGFnZSwgTWVz
c2FnZVNvdQogI2VuZGlmCiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6YWRkTWVzc2FnZVRvQ29uc29sZShQYWdlKiBwYWdlLCBNZXNzYWdlU291cmNlIHNvdXJjZSwg
TWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlSWQpCitpbmxpbmUg
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUoUGFnZSog
cGFnZSwgTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZl
bCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25z
dCBTdHJpbmcmIHNjcmlwdElkKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgaWYgKElu
c3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdl
bnRzRm9yUGFnZShwYWdlKSkKLSAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZUltcGwoaW5zdHJ1
bWVudGluZ0FnZW50cywgc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwg
c291cmNlSWQpOworICAgICAgICBhZGRNZXNzYWdlVG9Db25zb2xlSW1wbChpbnN0cnVtZW50aW5n
QWdlbnRzLCBzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzY3JpcHRJ
ZCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5jcHAKaW5kZXggYzAwMzQ3MTA0NDhmYzVkN2YyYmZmZGVlNmExMzEwYWI5MzA4OTkx
Yy4uYzkwNmUxZjIyZDU5OTFjZDNhYjczYTIwNzUwMmRkYTliMmRiYWRiMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC0xMjMyLDcgKzEy
MzIsNyBAQCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gSW5zcGVjdG9yRE9NQWdlbnQ6OmJ1
aWxkT2JqZWN0Rm9yRXZlbnRMaXN0ZW5lcihjb25zdAogICAgIGludCBsaW5lTnVtYmVyOwogICAg
IGlmIChldmVudExpc3RlbmVySGFuZGxlckxvY2F0aW9uKG5vZGUtPmRvY3VtZW50KCksIGV2ZW50
TGlzdGVuZXIuZ2V0KCksIHNvdXJjZU5hbWUsIGxpbmVOdW1iZXIpKSB7CiAgICAgICAgIFJlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+IGxvY2F0aW9uID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsK
LSAgICAgICAgbG9jYXRpb24tPnNldFN0cmluZygic291cmNlSWQiLCBzb3VyY2VOYW1lKTsKKyAg
ICAgICAgbG9jYXRpb24tPnNldFN0cmluZygic2NyaXB0SWQiLCBzb3VyY2VOYW1lKTsKICAgICAg
ICAgbG9jYXRpb24tPnNldE51bWJlcigibGluZU51bWJlciIsIGxpbmVOdW1iZXIpOwogICAgICAg
ICB2YWx1ZS0+c2V0T2JqZWN0KCJsb2NhdGlvbiIsIGxvY2F0aW9uKTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKaW5k
ZXggZjI4ZWE1NDUxNWMxOWE0NzU3YWI0YjFkOTE0YjZjNmQ1NWJkNDZkNC4uYjYyNTVjOWE3MDVj
NTNmYmE0NTkxN2IyMTFlZjg4OTdmMTA2ODZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcApAQCAtMTgxLDExICsxODEsMTcg
QEAgc3RhdGljIGJvb2wgbWF0Y2hlcyhjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBw
YXR0ZXJuLCBib29sIGlzUmVnZXgpCiAgICAgcmV0dXJuIHVybCA9PSBwYXR0ZXJuOwogfQogCi12
b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNldEJyZWFrcG9pbnRCeVVybChFcnJvclN0cmlu
ZyosIGNvbnN0IFN0cmluZyYgdXJsLCBpbnQgbGluZU51bWJlciwgY29uc3QgaW50KiBjb25zdCBv
cHRpb25hbENvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nKiBjb25zdCBvcHRpb25hbENvbmRpdGlv
biwgY29uc3QgYm9vbCogY29uc3Qgb3B0aW9uYWxJc1JlZ2V4LCBTdHJpbmcqIG91dEJyZWFrcG9p
bnRJZCwgUmVmUHRyPEluc3BlY3RvckFycmF5PiogbG9jYXRpb25zKQordm9pZCBJbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50OjpzZXRCcmVha3BvaW50QnlVcmwoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5n
LCBjb25zdCBTdHJpbmcqIGNvbnN0IG9wdGlvbmFsVVJMLCBjb25zdCBTdHJpbmcqIGNvbnN0IG9w
dGlvbmFsVVJMUmVnZXgsIGludCBsaW5lTnVtYmVyLCBjb25zdCBpbnQqIGNvbnN0IG9wdGlvbmFs
Q29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcqIGNvbnN0IG9wdGlvbmFsQ29uZGl0aW9uLCBTdHJp
bmcqIG91dEJyZWFrcG9pbnRJZCwgUmVmUHRyPEluc3BlY3RvckFycmF5PiogbG9jYXRpb25zKQog
eworICAgIGlmICghb3B0aW9uYWxVUkwgPT0gIW9wdGlvbmFsVVJMUmVnZXgpIHsKKyAgICAgICAg
KmVycm9yU3RyaW5nID0gIkVpdGhlciB1cmwgb3IgdXJsUmVnZXggbXVzdCBiZSBzcGVjaWZpZWQu
IjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFN0cmluZyB1cmwgPSBvcHRpb25hbFVS
TCA/ICpvcHRpb25hbFVSTCA6ICpvcHRpb25hbFVSTFJlZ2V4OwogICAgIGludCBjb2x1bW5OdW1i
ZXIgPSBvcHRpb25hbENvbHVtbk51bWJlciA/ICpvcHRpb25hbENvbHVtbk51bWJlciA6IDA7CiAg
ICAgU3RyaW5nIGNvbmRpdGlvbiA9IG9wdGlvbmFsQ29uZGl0aW9uID8gKm9wdGlvbmFsQ29uZGl0
aW9uIDogIiI7Ci0gICAgYm9vbCBpc1JlZ2V4ID0gb3B0aW9uYWxJc1JlZ2V4ID8gKm9wdGlvbmFs
SXNSZWdleCA6IGZhbHNlOworICAgIGJvb2wgaXNSZWdleCA9IG9wdGlvbmFsVVJMUmVnZXg7CiAK
ICAgICBTdHJpbmcgYnJlYWtwb2ludElkID0gKGlzUmVnZXggPyAiLyIgKyB1cmwgKyAiLyIgOiB1
cmwpICsgJzonICsgU3RyaW5nOjpudW1iZXIobGluZU51bWJlcikgKyAnOicgKyBTdHJpbmc6Om51
bWJlcihjb2x1bW5OdW1iZXIpOwogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJyZWFrcG9p
bnRzQ29va2llID0gbV9pbnNwZWN0b3JTdGF0ZS0+Z2V0T2JqZWN0KERlYnVnZ2VyQWdlbnRTdGF0
ZTo6amF2YVNjcmlwdEJyZWFrcG9pbnRzKTsKQEAgLTIwNSwxMSArMjExLDExIEBAIHZvaWQgSW5z
cGVjdG9yRGVidWdnZXJBZ2VudDo6c2V0QnJlYWtwb2ludEJ5VXJsKEVycm9yU3RyaW5nKiwgY29u
c3QgU3RyaW5nJiB1cmwsCiAgICAgKm91dEJyZWFrcG9pbnRJZCA9IGJyZWFrcG9pbnRJZDsKIH0K
IAotc3RhdGljIGJvb2wgcGFyc2VMb2NhdGlvbihFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIFJl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGxvY2F0aW9uLCBTdHJpbmcqIHNvdXJjZUlkLCBpbnQqIGxp
bmVOdW1iZXIsIGludCogY29sdW1uTnVtYmVyKQorc3RhdGljIGJvb2wgcGFyc2VMb2NhdGlvbihF
cnJvclN0cmluZyogZXJyb3JTdHJpbmcsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGxvY2F0aW9u
LCBTdHJpbmcqIHNjcmlwdElkLCBpbnQqIGxpbmVOdW1iZXIsIGludCogY29sdW1uTnVtYmVyKQog
ewotICAgIGlmICghbG9jYXRpb24tPmdldFN0cmluZygic291cmNlSWQiLCBzb3VyY2VJZCkgfHwg
IWxvY2F0aW9uLT5nZXROdW1iZXIoImxpbmVOdW1iZXIiLCBsaW5lTnVtYmVyKSkgeworICAgIGlm
ICghbG9jYXRpb24tPmdldFN0cmluZygic2NyaXB0SWQiLCBzY3JpcHRJZCkgfHwgIWxvY2F0aW9u
LT5nZXROdW1iZXIoImxpbmVOdW1iZXIiLCBsaW5lTnVtYmVyKSkgewogICAgICAgICAvLyBGSVhN
RTogcmVwbGFjZSB3aXRoIGlucHV0IHZhbGlkYXRpb24uCi0gICAgICAgICplcnJvclN0cmluZyA9
ICJzb3VyY2VJZCBhbmQgbGluZU51bWJlciBhcmUgcmVxdWlyZWQuIjsKKyAgICAgICAgKmVycm9y
U3RyaW5nID0gInNjcmlwdElkIGFuZCBsaW5lTnVtYmVyIGFyZSByZXF1aXJlZC4iOwogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgICpjb2x1bW5OdW1iZXIgPSAwOwpAQCAtMjE5LDIw
ICsyMjUsMjAgQEAgc3RhdGljIGJvb2wgcGFyc2VMb2NhdGlvbihFcnJvclN0cmluZyogZXJyb3JT
dHJpbmcsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGxvY2EKIAogdm9pZCBJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50OjpzZXRCcmVha3BvaW50KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgUGFzc1Jl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGxvY2F0aW9uLCBjb25zdCBTdHJpbmcqIGNvbnN0IG9wdGlv
bmFsQ29uZGl0aW9uLCBTdHJpbmcqIG91dEJyZWFrcG9pbnRJZCwgUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4qIGFjdHVhbExvY2F0aW9uKQogewotICAgIFN0cmluZyBzb3VyY2VJZDsKKyAgICBTdHJp
bmcgc2NyaXB0SWQ7CiAgICAgaW50IGxpbmVOdW1iZXI7CiAgICAgaW50IGNvbHVtbk51bWJlcjsK
IAotICAgIGlmICghcGFyc2VMb2NhdGlvbihlcnJvclN0cmluZywgbG9jYXRpb24sICZzb3VyY2VJ
ZCwgJmxpbmVOdW1iZXIsICZjb2x1bW5OdW1iZXIpKQorICAgIGlmICghcGFyc2VMb2NhdGlvbihl
cnJvclN0cmluZywgbG9jYXRpb24sICZzY3JpcHRJZCwgJmxpbmVOdW1iZXIsICZjb2x1bW5OdW1i
ZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBTdHJpbmcgY29uZGl0aW9uID0gb3B0aW9uYWxD
b25kaXRpb24gPyAqb3B0aW9uYWxDb25kaXRpb24gOiBlbXB0eVN0cmluZygpOwogCi0gICAgU3Ry
aW5nIGJyZWFrcG9pbnRJZCA9IHNvdXJjZUlkICsgJzonICsgU3RyaW5nOjpudW1iZXIobGluZU51
bWJlcikgKyAnOicgKyBTdHJpbmc6Om51bWJlcihjb2x1bW5OdW1iZXIpOworICAgIFN0cmluZyBi
cmVha3BvaW50SWQgPSBzY3JpcHRJZCArICc6JyArIFN0cmluZzo6bnVtYmVyKGxpbmVOdW1iZXIp
ICsgJzonICsgU3RyaW5nOjpudW1iZXIoY29sdW1uTnVtYmVyKTsKICAgICBpZiAobV9icmVha3Bv
aW50SWRUb0RlYnVnU2VydmVyQnJlYWtwb2ludElkcy5maW5kKGJyZWFrcG9pbnRJZCkgIT0gbV9i
cmVha3BvaW50SWRUb0RlYnVnU2VydmVyQnJlYWtwb2ludElkcy5lbmQoKSkKICAgICAgICAgcmV0
dXJuOwogICAgIFNjcmlwdEJyZWFrcG9pbnQgYnJlYWtwb2ludChsaW5lTnVtYmVyLCBjb2x1bW5O
dW1iZXIsIGNvbmRpdGlvbik7Ci0gICAgKmFjdHVhbExvY2F0aW9uID0gcmVzb2x2ZUJyZWFrcG9p
bnQoYnJlYWtwb2ludElkLCBzb3VyY2VJZCwgYnJlYWtwb2ludCk7CisgICAgKmFjdHVhbExvY2F0
aW9uID0gcmVzb2x2ZUJyZWFrcG9pbnQoYnJlYWtwb2ludElkLCBzY3JpcHRJZCwgYnJlYWtwb2lu
dCk7CiAgICAgaWYgKCphY3R1YWxMb2NhdGlvbikKICAgICAgICAgKm91dEJyZWFrcG9pbnRJZCA9
IGJyZWFrcG9pbnRJZDsKICAgICBlbHNlCkBAIC0yNjAsMjEgKzI2NiwyMSBAQCB2b2lkIEluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQ6OmNvbnRpbnVlVG9Mb2NhdGlvbihFcnJvclN0cmluZyogZXJyb3JT
dHJpbmcsIFBhc3NSZQogICAgICAgICBtX2NvbnRpbnVlVG9Mb2NhdGlvbkJyZWFrcG9pbnRJZCA9
ICIiOwogICAgIH0KIAotICAgIFN0cmluZyBzb3VyY2VJZDsKKyAgICBTdHJpbmcgc2NyaXB0SWQ7
CiAgICAgaW50IGxpbmVOdW1iZXI7CiAgICAgaW50IGNvbHVtbk51bWJlcjsKIAotICAgIGlmICgh
cGFyc2VMb2NhdGlvbihlcnJvclN0cmluZywgbG9jYXRpb24sICZzb3VyY2VJZCwgJmxpbmVOdW1i
ZXIsICZjb2x1bW5OdW1iZXIpKQorICAgIGlmICghcGFyc2VMb2NhdGlvbihlcnJvclN0cmluZywg
bG9jYXRpb24sICZzY3JpcHRJZCwgJmxpbmVOdW1iZXIsICZjb2x1bW5OdW1iZXIpKQogICAgICAg
ICByZXR1cm47CiAKICAgICBTY3JpcHRCcmVha3BvaW50IGJyZWFrcG9pbnQobGluZU51bWJlciwg
Y29sdW1uTnVtYmVyLCAiIik7Ci0gICAgbV9jb250aW51ZVRvTG9jYXRpb25CcmVha3BvaW50SWQg
PSBzY3JpcHREZWJ1Z1NlcnZlcigpLnNldEJyZWFrcG9pbnQoc291cmNlSWQsIGJyZWFrcG9pbnQs
ICZsaW5lTnVtYmVyLCAmY29sdW1uTnVtYmVyKTsKKyAgICBtX2NvbnRpbnVlVG9Mb2NhdGlvbkJy
ZWFrcG9pbnRJZCA9IHNjcmlwdERlYnVnU2VydmVyKCkuc2V0QnJlYWtwb2ludChzY3JpcHRJZCwg
YnJlYWtwb2ludCwgJmxpbmVOdW1iZXIsICZjb2x1bW5OdW1iZXIpOwogICAgIHJlc3VtZShlcnJv
clN0cmluZyk7CiB9CiAKLVBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50OjpyZXNvbHZlQnJlYWtwb2ludChjb25zdCBTdHJpbmcmIGJyZWFrcG9pbnRJZCwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VJZCwgY29uc3QgU2NyaXB0QnJlYWtwb2ludCYgYnJlYWtwb2lu
dCkKK1Bhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojpy
ZXNvbHZlQnJlYWtwb2ludChjb25zdCBTdHJpbmcmIGJyZWFrcG9pbnRJZCwgY29uc3QgU3RyaW5n
JiBzY3JpcHRJZCwgY29uc3QgU2NyaXB0QnJlYWtwb2ludCYgYnJlYWtwb2ludCkKIHsKLSAgICBT
Y3JpcHRzTWFwOjppdGVyYXRvciBzY3JpcHRJdGVyYXRvciA9IG1fc2NyaXB0cy5maW5kKHNvdXJj
ZUlkKTsKKyAgICBTY3JpcHRzTWFwOjppdGVyYXRvciBzY3JpcHRJdGVyYXRvciA9IG1fc2NyaXB0
cy5maW5kKHNjcmlwdElkKTsKICAgICBpZiAoc2NyaXB0SXRlcmF0b3IgPT0gbV9zY3JpcHRzLmVu
ZCgpKQogICAgICAgICByZXR1cm4gMDsKICAgICBTY3JpcHQmIHNjcmlwdCA9IHNjcmlwdEl0ZXJh
dG9yLT5zZWNvbmQ7CkBAIC0yODMsNyArMjg5LDcgQEAgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnJlc29sdmVCcmVha3BvaW50KGNvbnN0IFN0cmkK
IAogICAgIGludCBhY3R1YWxMaW5lTnVtYmVyOwogICAgIGludCBhY3R1YWxDb2x1bW5OdW1iZXI7
Ci0gICAgU3RyaW5nIGRlYnVnU2VydmVyQnJlYWtwb2ludElkID0gc2NyaXB0RGVidWdTZXJ2ZXIo
KS5zZXRCcmVha3BvaW50KHNvdXJjZUlkLCBicmVha3BvaW50LCAmYWN0dWFsTGluZU51bWJlciwg
JmFjdHVhbENvbHVtbk51bWJlcik7CisgICAgU3RyaW5nIGRlYnVnU2VydmVyQnJlYWtwb2ludElk
ID0gc2NyaXB0RGVidWdTZXJ2ZXIoKS5zZXRCcmVha3BvaW50KHNjcmlwdElkLCBicmVha3BvaW50
LCAmYWN0dWFsTGluZU51bWJlciwgJmFjdHVhbENvbHVtbk51bWJlcik7CiAgICAgaWYgKGRlYnVn
U2VydmVyQnJlYWtwb2ludElkLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTI5
Myw3ICsyOTksNyBAQCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudDo6cmVzb2x2ZUJyZWFrcG9pbnQoY29uc3QgU3RyaQogICAgIGRlYnVnU2VydmVyQnJl
YWtwb2ludElkc0l0ZXJhdG9yLT5zZWNvbmQuYXBwZW5kKGRlYnVnU2VydmVyQnJlYWtwb2ludElk
KTsKIAogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGxvY2F0aW9uID0gSW5zcGVjdG9yT2Jq
ZWN0OjpjcmVhdGUoKTsKLSAgICBsb2NhdGlvbi0+c2V0U3RyaW5nKCJzb3VyY2VJZCIsIHNvdXJj
ZUlkKTsKKyAgICBsb2NhdGlvbi0+c2V0U3RyaW5nKCJzY3JpcHRJZCIsIHNjcmlwdElkKTsKICAg
ICBsb2NhdGlvbi0+c2V0TnVtYmVyKCJsaW5lTnVtYmVyIiwgYWN0dWFsTGluZU51bWJlcik7CiAg
ICAgbG9jYXRpb24tPnNldE51bWJlcigiY29sdW1uTnVtYmVyIiwgYWN0dWFsQ29sdW1uTnVtYmVy
KTsKICAgICByZXR1cm4gbG9jYXRpb247CkBAIC0zMDksMTEgKzMxNSwxMSBAQCBzdGF0aWMgUGFz
c1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHNjcmlwdFRvSW5zcGVjdG9yT2JqZWN0KFNjcmlwdE9i
amVjdCBzY3JpcHRPYgogICAgIHJldHVybiB2YWx1ZS0+YXNPYmplY3QoKTsKIH0KIAotdm9pZCBJ
bnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzZXRTY3JpcHRTb3VyY2UoRXJyb3JTdHJpbmcqIGVycm9y
LCBjb25zdCBTdHJpbmcmIHNvdXJjZUlkLCBjb25zdCBTdHJpbmcmIG5ld0NvbnRlbnQsIGNvbnN0
IGJvb2wqIGNvbnN0IHByZXZpZXcsIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIG5ld0NhbGxGcmFt
ZXMsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQpCit2b2lkIEluc3BlY3RvckRlYnVn
Z2VyQWdlbnQ6OnNldFNjcmlwdFNvdXJjZShFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmlu
ZyYgc2NyaXB0SWQsIGNvbnN0IFN0cmluZyYgbmV3Q29udGVudCwgY29uc3QgYm9vbCogY29uc3Qg
cHJldmlldywgUmVmUHRyPEluc3BlY3RvckFycmF5PiogbmV3Q2FsbEZyYW1lcywgUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4qIHJlc3VsdCkKIHsKICAgICBib29sIHByZXZpZXdPbmx5ID0gcHJldmll
dyAmJiAqcHJldmlldzsKICAgICBTY3JpcHRPYmplY3QgcmVzdWx0T2JqZWN0OwotICAgIGlmICgh
c2NyaXB0RGVidWdTZXJ2ZXIoKS5zZXRTY3JpcHRTb3VyY2Uoc291cmNlSWQsIG5ld0NvbnRlbnQs
IHByZXZpZXdPbmx5LCBlcnJvciwgJm1fY3VycmVudENhbGxTdGFjaywgJnJlc3VsdE9iamVjdCkp
CisgICAgaWYgKCFzY3JpcHREZWJ1Z1NlcnZlcigpLnNldFNjcmlwdFNvdXJjZShzY3JpcHRJZCwg
bmV3Q29udGVudCwgcHJldmlld09ubHksIGVycm9yLCAmbV9jdXJyZW50Q2FsbFN0YWNrLCAmcmVz
dWx0T2JqZWN0KSkKICAgICAgICAgcmV0dXJuOwogICAgICpuZXdDYWxsRnJhbWVzID0gY3VycmVu
dENhbGxGcmFtZXMoKTsKICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBvYmplY3QgPSBzY3Jp
cHRUb0luc3BlY3Rvck9iamVjdChyZXN1bHRPYmplY3QpOwpAQCAtMzIxLDkgKzMyNyw5IEBAIHZv
aWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2V0U2NyaXB0U291cmNlKEVycm9yU3RyaW5nKiBl
cnJvciwgY29uc3QgU3RyaW5nJiBzCiAgICAgICAgICpyZXN1bHQgPSBvYmplY3Q7CiB9CiAKLXZv
aWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6Z2V0U2NyaXB0U291cmNlKEVycm9yU3RyaW5nKiwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VJZCwgU3RyaW5nKiBzY3JpcHRTb3VyY2UpCit2b2lkIEluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQ6OmdldFNjcmlwdFNvdXJjZShFcnJvclN0cmluZyosIGNvbnN0IFN0
cmluZyYgc2NyaXB0SWQsIFN0cmluZyogc2NyaXB0U291cmNlKQogewotICAgICpzY3JpcHRTb3Vy
Y2UgPSBtX3NjcmlwdHMuZ2V0KHNvdXJjZUlkKS5zb3VyY2U7CisgICAgKnNjcmlwdFNvdXJjZSA9
IG1fc2NyaXB0cy5nZXQoc2NyaXB0SWQpLnNvdXJjZTsKIH0KIAogdm9pZCBJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50OjpzY2hlZHVsZVBhdXNlT25OZXh0U3RhdGVtZW50KERlYnVnZ2VyRXZlbnRUeXBl
IHR5cGUsIFBhc3NSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IGRhdGEpCkBAIC00MTMsMTIgKzQxOSwx
MiBAQCBQYXNzUmVmUHRyPEluc3BlY3RvckFycmF5PiBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojpj
dXJyZW50Q2FsbEZyYW1lcygpCiAKIC8vIEphdmFTY3JpcHREZWJ1Z0xpc3RlbmVyIGZ1bmN0aW9u
cwogCi12b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRpZFBhcnNlU291cmNlKGNvbnN0IFN0
cmluZyYgc291cmNlSWQsIGNvbnN0IFNjcmlwdCYgc2NyaXB0KQordm9pZCBJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50OjpkaWRQYXJzZVNvdXJjZShjb25zdCBTdHJpbmcmIHNjcmlwdElkLCBjb25zdCBT
Y3JpcHQmIHNjcmlwdCkKIHsKICAgICAvLyBEb24ndCBzZW5kIHNjcmlwdCBjb250ZW50IHRvIHRo
ZSBmcm9udCBlbmQgdW50aWwgaXQncyByZWFsbHkgbmVlZGVkLgotICAgIG1fZnJvbnRlbmQtPnNj
cmlwdFBhcnNlZChzb3VyY2VJZCwgc2NyaXB0LnVybCwgc2NyaXB0LnN0YXJ0TGluZSwgc2NyaXB0
LnN0YXJ0Q29sdW1uLCBzY3JpcHQuZW5kTGluZSwgc2NyaXB0LmVuZENvbHVtbiwgc2NyaXB0Lmlz
Q29udGVudFNjcmlwdCk7CisgICAgbV9mcm9udGVuZC0+c2NyaXB0UGFyc2VkKHNjcmlwdElkLCBz
Y3JpcHQudXJsLCBzY3JpcHQuc3RhcnRMaW5lLCBzY3JpcHQuc3RhcnRDb2x1bW4sIHNjcmlwdC5l
bmRMaW5lLCBzY3JpcHQuZW5kQ29sdW1uLCBzY3JpcHQuaXNDb250ZW50U2NyaXB0KTsKIAotICAg
IG1fc2NyaXB0cy5zZXQoc291cmNlSWQsIHNjcmlwdCk7CisgICAgbV9zY3JpcHRzLnNldChzY3Jp
cHRJZCwgc2NyaXB0KTsKIAogICAgIGlmIChzY3JpcHQudXJsLmlzRW1wdHkoKSkKICAgICAgICAg
cmV0dXJuOwpAQCAtNDM2LDcgKzQ0Miw3IEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6
ZGlkUGFyc2VTb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2VJZCwgY29uc3QgU2NyaXB0CiAgICAg
ICAgIGJyZWFrcG9pbnRPYmplY3QtPmdldE51bWJlcigibGluZU51bWJlciIsICZicmVha3BvaW50
LmxpbmVOdW1iZXIpOwogICAgICAgICBicmVha3BvaW50T2JqZWN0LT5nZXROdW1iZXIoImNvbHVt
bk51bWJlciIsICZicmVha3BvaW50LmNvbHVtbk51bWJlcik7CiAgICAgICAgIGJyZWFrcG9pbnRP
YmplY3QtPmdldFN0cmluZygiY29uZGl0aW9uIiwgJmJyZWFrcG9pbnQuY29uZGl0aW9uKTsKLSAg
ICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gbG9jYXRpb24gPSByZXNvbHZlQnJlYWtwb2lu
dChpdC0+Zmlyc3QsIHNvdXJjZUlkLCBicmVha3BvaW50KTsKKyAgICAgICAgUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gbG9jYXRpb24gPSByZXNvbHZlQnJlYWtwb2ludChpdC0+Zmlyc3QsIHNjcmlw
dElkLCBicmVha3BvaW50KTsKICAgICAgICAgaWYgKGxvY2F0aW9uKQogICAgICAgICAgICAgbV9m
cm9udGVuZC0+YnJlYWtwb2ludFJlc29sdmVkKGl0LT5maXJzdCwgbG9jYXRpb24pOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5o
CmluZGV4IDE4NjA2YjY3NjdjNjM2YTc0MmU1MGExZjFiZWNmNTE3OTcxOTAzMWUuLjUxZWEyNTkw
M2Q4MDg4YTAxNWU3NzEwMWE4ZjMzMGJiOTMzZTdhOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaApAQCAtODIsMTMgKzgyLDEzIEBA
IHB1YmxpYzoKICAgICAvLyBQYXJ0IG9mIHRoZSBwcm90b2NvbC4KICAgICB2b2lkIHNldEJyZWFr
cG9pbnRzQWN0aXZlKEVycm9yU3RyaW5nKiwgYm9vbCBhY3RpdmUpOwogCi0gICAgdm9pZCBzZXRC
cmVha3BvaW50QnlVcmwoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHVybCwgaW50IGxpbmVO
dW1iZXIsIGNvbnN0IGludCogY29uc3Qgb3B0aW9uYWxDb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmlu
ZyogY29uc3Qgb3B0aW9uYWxDb25kaXRpb24sIGNvbnN0IGJvb2wqIGNvbnN0IG9wdGlvbmFsSXNS
ZWdleCwgU3RyaW5nKiBicmVha3BvaW50SWQsIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIGxvY2F0
aW9ucyk7CisgICAgdm9pZCBzZXRCcmVha3BvaW50QnlVcmwoRXJyb3JTdHJpbmcqLCBjb25zdCBT
dHJpbmcqIGNvbnN0IG9wdGlvbmFsVVJMLCBjb25zdCBTdHJpbmcqIGNvbnN0IG9wdGlvbmFsVVJM
UmVnZXgsIGludCBsaW5lTnVtYmVyLCBjb25zdCBpbnQqIGNvbnN0IG9wdGlvbmFsQ29sdW1uTnVt
YmVyLCBjb25zdCBTdHJpbmcqIGNvbnN0IG9wdGlvbmFsQ29uZGl0aW9uLCBTdHJpbmcqIGJyZWFr
cG9pbnRJZCwgUmVmUHRyPEluc3BlY3RvckFycmF5PiogbG9jYXRpb25zKTsKICAgICB2b2lkIHNl
dEJyZWFrcG9pbnQoRXJyb3JTdHJpbmcqLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gbG9j
YXRpb24sIGNvbnN0IFN0cmluZyogY29uc3Qgb3B0aW9uYWxDb25kaXRpb24sIFN0cmluZyogYnJl
YWtwb2ludElkLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogYWN0dWFsTG9jYXRpb24pOwogICAg
IHZvaWQgcmVtb3ZlQnJlYWtwb2ludChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgYnJlYWtw
b2ludElkKTsKICAgICB2b2lkIGNvbnRpbnVlVG9Mb2NhdGlvbihFcnJvclN0cmluZyosIFBhc3NS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBsb2NhdGlvbik7CiAKLSAgICB2b2lkIHNldFNjcmlwdFNv
dXJjZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc291cmNlSWQsIGNvbnN0IFN0cmluZyYg
bmV3Q29udGVudCwgY29uc3QgYm9vbCogY29uc3QgcHJldmlldywgUmVmUHRyPEluc3BlY3RvckFy
cmF5PiogbmV3Q2FsbEZyYW1lcywgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCk7Ci0g
ICAgdm9pZCBnZXRTY3JpcHRTb3VyY2UoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZUlkLCBTdHJpbmcqIHNjcmlwdFNvdXJjZSk7CisgICAgdm9pZCBzZXRTY3JpcHRTb3VyY2UoRXJy
b3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHNjcmlwdElkLCBjb25zdCBTdHJpbmcmIG5ld0NvbnRl
bnQsIGNvbnN0IGJvb2wqIGNvbnN0IHByZXZpZXcsIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIG5l
d0NhbGxGcmFtZXMsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQpOworICAgIHZvaWQg
Z2V0U2NyaXB0U291cmNlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzY3JpcHRJZCwgU3Ry
aW5nKiBzY3JpcHRTb3VyY2UpOwogICAgIHZvaWQgc2NoZWR1bGVQYXVzZU9uTmV4dFN0YXRlbWVu
dChEZWJ1Z2dlckV2ZW50VHlwZSB0eXBlLCBQYXNzUmVmUHRyPEluc3BlY3RvclZhbHVlPiBkYXRh
KTsKICAgICB2b2lkIGNhbmNlbFBhdXNlT25OZXh0U3RhdGVtZW50KCk7CiAgICAgdm9pZCBicmVh
a1Byb2dyYW0oRGVidWdnZXJFdmVudFR5cGUgdHlwZSwgUGFzc1JlZlB0cjxJbnNwZWN0b3JWYWx1
ZT4gZGF0YSk7CkBAIC0xMjIsMTIgKzEyMiwxMiBAQCBwcml2YXRlOgogCiAgICAgUGFzc1JlZlB0
cjxJbnNwZWN0b3JBcnJheT4gY3VycmVudENhbGxGcmFtZXMoKTsKIAotICAgIHZpcnR1YWwgdm9p
ZCBkaWRQYXJzZVNvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJjZUlkLCBjb25zdCBTY3JpcHQmKTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkUGFyc2VTb3VyY2UoY29uc3QgU3RyaW5nJiBzY3JpcHRJZCwg
Y29uc3QgU2NyaXB0Jik7CiAgICAgdmlydHVhbCB2b2lkIGZhaWxlZFRvUGFyc2VTb3VyY2UoY29u
c3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgZGF0YSwgaW50IGZpcnN0TGluZSwgaW50IGVy
cm9yTGluZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRQYXVzZShTY3JpcHRTdGF0ZSosIGNvbnN0IFNjcmlwdFZhbHVlJiBjYWxsRnJhbWVzLCBjb25z
dCBTY3JpcHRWYWx1ZSYgZXhjZXB0aW9uKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29udGludWUo
KTsKIAotICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZXNvbHZlQnJlYWtwb2ludChj
b25zdCBTdHJpbmcmIGJyZWFrcG9pbnRJZCwgY29uc3QgU3RyaW5nJiBzb3VyY2VJZCwgY29uc3Qg
U2NyaXB0QnJlYWtwb2ludCYpOworICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZXNv
bHZlQnJlYWtwb2ludChjb25zdCBTdHJpbmcmIGJyZWFrcG9pbnRJZCwgY29uc3QgU3RyaW5nJiBz
Y3JpcHRJZCwgY29uc3QgU2NyaXB0QnJlYWtwb2ludCYpOwogICAgIHZvaWQgY2xlYXIoKTsKIAog
ICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFNjcmlwdD4gU2NyaXB0c01hcDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAK
aW5kZXggYzBkYTMxMWNlODIzZWE1NWI1OGE2ZDNjYzhmNjZlYjE2YjkyMjRlNi4uNGE5OTczMmQ1
YWU5Yjg3YjU1Yzg4N2VlNzI0ZmI0OGI5MzU5M2RmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTY4NywxMCAr
Njg3LDEwIEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25z
b2xlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0CiAgICAgICAgIGNvbnNvbGVBZ2VudC0+
YWRkTWVzc2FnZVRvQ29uc29sZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBhcmd1bWVu
dHMsIGNhbGxTdGFjayk7CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRN
ZXNzYWdlVG9Db25zb2xlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVs
IGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0
IFN0cmluZyYgc291cmNlSWQpCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVz
c2FnZVRvQ29uc29sZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50
cywgTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBs
ZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBT
dHJpbmcmIHNjcmlwdElkKQogewogICAgIGlmIChJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNvbnNv
bGVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckNvbnNvbGVBZ2VudCgpKQot
ICAgICAgICBjb25zb2xlQWdlbnQtPmFkZE1lc3NhZ2VUb0NvbnNvbGUoc291cmNlLCB0eXBlLCBs
ZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlSWQpOworICAgICAgICBjb25zb2xlQWdl
bnQtPmFkZE1lc3NhZ2VUb0NvbnNvbGUoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgbGlu
ZU51bWJlciwgc2NyaXB0SWQpOwogfQogCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
Y29uc29sZUNvdW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
LCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQYXNzUmVmUHRyPFNjcmlw
dENhbGxTdGFjaz4gc3RhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggNGEyYjYwZTRhYjNmNDhjODkwMzI1YmYxYzA1
YjRiZTViMWQ3ZTgzZi4uNTk2NjQ4NWEyNmNjZTZkMGQ1M2ZkZmQ3MjMxY2RjMjc0YzM2NThiNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaApAQCAtMjc2LDcgKzI3Niw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGlk
V3JpdGVIVE1MSW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmLCB1bnNp
Z25lZCBpbnQgZW5kTGluZSk7CiAKICAgICBzdGF0aWMgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xl
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1l
c3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3Vt
ZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7Ci0gICAgc3RhdGljIHZvaWQgYWRk
TWVzc2FnZVRvQ29uc29sZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIE1lc3NhZ2VTb3VyY2Us
IE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWdu
ZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJZCk7CisgICAgc3RhdGljIHZvaWQg
YWRkTWVzc2FnZVRvQ29uc29sZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIE1lc3NhZ2VTb3Vy
Y2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5z
aWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzY3JpcHRJZCk7CiAgICAgc3RhdGljIHZv
aWQgY29uc29sZUNvdW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgUGFzc1JlZlB0cjxTY3Jp
cHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwogICAgIHN0YXRpYyB2
b2lkIHN0YXJ0Q29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGNvbnN0IFN0
cmluZyYgdGl0bGUpOwogICAgIHN0YXRpYyB2b2lkIHN0b3BDb25zb2xlVGltaW5nSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgUGFzc1JlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRE
ZWJ1Z0xpc3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0RGVidWdMaXN0
ZW5lci5oCmluZGV4IGMyNzQ0MTI1ZmM4ODE1Zjg1ZWVhNDQ5ZjZiZWQ2YmJlZmFmMzJlNDYuLjcy
ODEzZGVkY2Y3ODU5NDYyOTUxZGZlYzkwMTdlNDU3ZWVkM2VjMTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1Z0xpc3RlbmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1NjcmlwdERlYnVnTGlzdGVuZXIuaApAQCAtNjQsNyArNjQsNyBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIH5TY3JpcHREZWJ1Z0xpc3RlbmVyKCkgeyB9CiAKLSAgICB2
aXJ0dWFsIHZvaWQgZGlkUGFyc2VTb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2VJZCwgY29uc3Qg
U2NyaXB0JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRQYXJzZVNvdXJjZShjb25zdCBTdHJp
bmcmIHNjcmlwdElkLCBjb25zdCBTY3JpcHQmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGZhaWxl
ZFRvUGFyc2VTb3VyY2UoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgZGF0YSwgaW50
IGZpcnN0TGluZSwgaW50IGVycm9yTGluZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUGF1c2UoU2NyaXB0U3RhdGUqLCBjb25zdCBTY3JpcHRW
YWx1ZSYgY2FsbEZyYW1lcywgY29uc3QgU2NyaXB0VmFsdWUmIGV4Y2VwdGlvbikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRDb250aW51ZSgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcwppbmRleCBjZjM0MGM4ZTM4OTg5
YmJhZmYwZDU4OWVkODE3MzE4ZDg4MmVkOWRjLi43YTUyYjkxZDQ4MWNkODZmODM4ZWIxZmRhMDMz
NDVjMDNkYTZlMjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0RlYnVnZ2VyTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCkBAIC04OSw3ICs4OSw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1
Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGlmIChjYWxsYmFjaykKICAgICAg
ICAgICAgICAgICBjYWxsYmFjayhlcnJvciA/IG51bGwgOiBicmVha3BvaW50SWQsIGxvY2F0aW9u
cyk7CiAgICAgICAgIH0KLSAgICAgICAgRGVidWdnZXJBZ2VudC5zZXRCcmVha3BvaW50QnlVcmwo
dXJsLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGNvbmRpdGlvbiwgZGlkU2V0QnJlYWtwb2lu
dC5iaW5kKHRoaXMpKTsKKyAgICAgICAgRGVidWdnZXJBZ2VudC5zZXRCcmVha3BvaW50QnlVcmwo
dXJsLCB1bmRlZmluZWQsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgY29uZGl0aW9uLCBkaWRT
ZXRCcmVha3BvaW50LmJpbmQodGhpcykpOwogICAgICAgICBXZWJJbnNwZWN0b3IudXNlck1ldHJp
Y3MuU2NyaXB0c0JyZWFrcG9pbnRTZXQucmVjb3JkKCk7CiAgICAgfSwKIApAQCAtMTI2LDkgKzEy
Niw5IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAg
cmV0dXJuIHRoaXMuX3NjcmlwdHM7CiAgICAgfSwKIAotICAgIHNjcmlwdEZvclNvdXJjZUlEOiBm
dW5jdGlvbihzb3VyY2VJZCkKKyAgICBzY3JpcHRGb3JTb3VyY2VJRDogZnVuY3Rpb24oc2NyaXB0
SWQpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fc2NyaXB0c1tzb3VyY2VJZF07CisgICAg
ICAgIHJldHVybiB0aGlzLl9zY3JpcHRzW3NjcmlwdElkXTsKICAgICB9LAogCiAgICAgc2NyaXB0
c0ZvclVSTDogZnVuY3Rpb24odXJsKQpAQCAtMTM5LDIwICsxMzksMjAgQEAgV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlID0gewogICAgIHF1ZXJ5U2NyaXB0czogZnVuY3Rpb24o
ZmlsdGVyKQogICAgIHsKICAgICAgICAgdmFyIHNjcmlwdHMgPSBbXTsKLSAgICAgICAgZm9yICh2
YXIgc291cmNlSWQgaW4gdGhpcy5fc2NyaXB0cykgewotICAgICAgICAgICAgdmFyIHNjcmlwdCA9
IHRoaXMuX3NjcmlwdHNbc291cmNlSWRdOworICAgICAgICBmb3IgKHZhciBzY3JpcHRJZCBpbiB0
aGlzLl9zY3JpcHRzKSB7CisgICAgICAgICAgICB2YXIgc2NyaXB0ID0gdGhpcy5fc2NyaXB0c1tz
Y3JpcHRJZF07CiAgICAgICAgICAgICBpZiAoZmlsdGVyKHNjcmlwdCkpCiAgICAgICAgICAgICAg
ICAgc2NyaXB0cy5wdXNoKHNjcmlwdCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHNjcmlw
dHM7CiAgICAgfSwKIAotICAgIHNldFNjcmlwdFNvdXJjZTogZnVuY3Rpb24oc291cmNlSWQsIG5l
d1NvdXJjZSwgY2FsbGJhY2spCisgICAgc2V0U2NyaXB0U291cmNlOiBmdW5jdGlvbihzY3JpcHRJ
ZCwgbmV3U291cmNlLCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIHRoaXMuX3NjcmlwdHNbc291
cmNlSWRdLmVkaXRTb3VyY2UobmV3U291cmNlLCB0aGlzLl9kaWRFZGl0U2NyaXB0U291cmNlLmJp
bmQodGhpcywgc291cmNlSWQsIG5ld1NvdXJjZSwgY2FsbGJhY2spKTsKKyAgICAgICAgdGhpcy5f
c2NyaXB0c1tzY3JpcHRJZF0uZWRpdFNvdXJjZShuZXdTb3VyY2UsIHRoaXMuX2RpZEVkaXRTY3Jp
cHRTb3VyY2UuYmluZCh0aGlzLCBzY3JpcHRJZCwgbmV3U291cmNlLCBjYWxsYmFjaykpOwogICAg
IH0sCiAKLSAgICBfZGlkRWRpdFNjcmlwdFNvdXJjZTogZnVuY3Rpb24oc291cmNlSWQsIG5ld1Nv
dXJjZSwgY2FsbGJhY2ssIGVycm9yLCBjYWxsRnJhbWVzKQorICAgIF9kaWRFZGl0U2NyaXB0U291
cmNlOiBmdW5jdGlvbihzY3JpcHRJZCwgbmV3U291cmNlLCBjYWxsYmFjaywgZXJyb3IsIGNhbGxG
cmFtZXMpCiAgICAgewogICAgICAgICBpZiAoIWVycm9yICYmIGNhbGxGcmFtZXMgJiYgY2FsbEZy
YW1lcy5sZW5ndGgpCiAgICAgICAgICAgICB0aGlzLl9kZWJ1Z2dlclBhdXNlZERldGFpbHMuY2Fs
bEZyYW1lcyA9IGNhbGxGcmFtZXM7CkBAIC0xODEsMTAgKzE4MSwxMCBAQCBXZWJJbnNwZWN0b3Iu
RGVidWdnZXJNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRv
TGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5EZWJ1Z2dlclJlc3Vt
ZWQpOwogICAgIH0sCiAKLSAgICBfcGFyc2VkU2NyaXB0U291cmNlOiBmdW5jdGlvbihzb3VyY2VJ
ZCwgc291cmNlVVJMLCBzdGFydExpbmUsIHN0YXJ0Q29sdW1uLCBlbmRMaW5lLCBlbmRDb2x1bW4s
IGlzQ29udGVudFNjcmlwdCkKKyAgICBfcGFyc2VkU2NyaXB0U291cmNlOiBmdW5jdGlvbihzY3Jp
cHRJZCwgc291cmNlVVJMLCBzdGFydExpbmUsIHN0YXJ0Q29sdW1uLCBlbmRMaW5lLCBlbmRDb2x1
bW4sIGlzQ29udGVudFNjcmlwdCkKICAgICB7Ci0gICAgICAgIHZhciBzY3JpcHQgPSBuZXcgV2Vi
SW5zcGVjdG9yLlNjcmlwdChzb3VyY2VJZCwgc291cmNlVVJMLCBzdGFydExpbmUsIHN0YXJ0Q29s
dW1uLCBlbmRMaW5lLCBlbmRDb2x1bW4sIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBpc0NvbnRlbnRT
Y3JpcHQpOwotICAgICAgICB0aGlzLl9zY3JpcHRzW3NvdXJjZUlkXSA9IHNjcmlwdDsKKyAgICAg
ICAgdmFyIHNjcmlwdCA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0KHNjcmlwdElkLCBzb3VyY2VV
UkwsIHN0YXJ0TGluZSwgc3RhcnRDb2x1bW4sIGVuZExpbmUsIGVuZENvbHVtbiwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIGlzQ29udGVudFNjcmlwdCk7CisgICAgICAgIHRoaXMuX3NjcmlwdHNbc2Ny
aXB0SWRdID0gc2NyaXB0OwogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhX
ZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuUGFyc2VkU2NyaXB0U291cmNlLCBzY3Jp
cHQpOwogICAgIH0sCiAKQEAgLTIyOSw5ICsyMjksOSBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJE
aXNwYXRjaGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fZGVidWdnZXJNb2RlbC5fZGVi
dWdnZXJXYXNEaXNhYmxlZCgpOwogICAgIH0sCiAKLSAgICBzY3JpcHRQYXJzZWQ6IGZ1bmN0aW9u
KHNvdXJjZUlkLCBzb3VyY2VVUkwsIHN0YXJ0TGluZSwgc3RhcnRDb2x1bW4sIGVuZExpbmUsIGVu
ZENvbHVtbiwgaXNDb250ZW50U2NyaXB0KQorICAgIHNjcmlwdFBhcnNlZDogZnVuY3Rpb24oc2Ny
aXB0SWQsIHNvdXJjZVVSTCwgc3RhcnRMaW5lLCBzdGFydENvbHVtbiwgZW5kTGluZSwgZW5kQ29s
dW1uLCBpc0NvbnRlbnRTY3JpcHQpCiAgICAgewotICAgICAgICB0aGlzLl9kZWJ1Z2dlck1vZGVs
Ll9wYXJzZWRTY3JpcHRTb3VyY2Uoc291cmNlSWQsIHNvdXJjZVVSTCwgc3RhcnRMaW5lLCBzdGFy
dENvbHVtbiwgZW5kTGluZSwgZW5kQ29sdW1uLCBpc0NvbnRlbnRTY3JpcHQpOworICAgICAgICB0
aGlzLl9kZWJ1Z2dlck1vZGVsLl9wYXJzZWRTY3JpcHRTb3VyY2Uoc2NyaXB0SWQsIHNvdXJjZVVS
TCwgc3RhcnRMaW5lLCBzdGFydENvbHVtbiwgZW5kTGluZSwgZW5kQ29sdW1uLCBpc0NvbnRlbnRT
Y3JpcHQpOwogICAgIH0sCiAKICAgICBzY3JpcHRGYWlsZWRUb1BhcnNlOiBmdW5jdGlvbihzb3Vy
Y2VVUkwsIHNvdXJjZSwgc3RhcnRpbmdMaW5lLCBlcnJvckxpbmUsIGVycm9yTWVzc2FnZSkKQEAg
LTIzOSw4ICsyMzksOCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJEaXNwYXRjaGVyLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgdGhpcy5fZGVidWdnZXJNb2RlbC5fZmFpbGVkVG9QYXJzZVNjcmlwdFNv
dXJjZShzb3VyY2VVUkwsIHNvdXJjZSwgc3RhcnRpbmdMaW5lLCBlcnJvckxpbmUsIGVycm9yTWVz
c2FnZSk7CiAgICAgfSwKIAotICAgIGJyZWFrcG9pbnRSZXNvbHZlZDogZnVuY3Rpb24oYnJlYWtw
b2ludElkLCBzb3VyY2VJZCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyKQorICAgIGJyZWFrcG9p
bnRSZXNvbHZlZDogZnVuY3Rpb24oYnJlYWtwb2ludElkLCBzY3JpcHRJZCwgbGluZU51bWJlciwg
Y29sdW1uTnVtYmVyKQogICAgIHsKLSAgICAgICAgdGhpcy5fZGVidWdnZXJNb2RlbC5fYnJlYWtw
b2ludFJlc29sdmVkKGJyZWFrcG9pbnRJZCwgc291cmNlSWQsIGxpbmVOdW1iZXIsIGNvbHVtbk51
bWJlcik7CisgICAgICAgIHRoaXMuX2RlYnVnZ2VyTW9kZWwuX2JyZWFrcG9pbnRSZXNvbHZlZChi
cmVha3BvaW50SWQsIHNjcmlwdElkLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpOwogICAgIH0K
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdn
ZXJQcmVzZW50YXRpb25Nb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcwppbmRleCAzMzBhNDU0NmYwMDQ4YTg4N2Q4
NDZkYjA3MjA0NzAyNWQ5MjgwNGE1Li5hOGI1NjU0NGZlYWRhMGJkMzNhMGIyM2MzNDlmZDI0NTBm
MzFkNWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Rl
YnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCkBAIC04Niw5ICs4Niw5IEBA
IFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZUZpbGVzW3RoaXMuX2NyZWF0ZVNvdXJjZUZpbGVJZChz
Y3JpcHRVUkwpXTsKICAgICB9LAogCi0gICAgX3NjcmlwdExvY2F0aW9uVG9VSUxvY2F0aW9uOiBm
dW5jdGlvbihzb3VyY2VVUkwsIHNvdXJjZUlkLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGNh
bGxiYWNrKQorICAgIF9zY3JpcHRMb2NhdGlvblRvVUlMb2NhdGlvbjogZnVuY3Rpb24oc291cmNl
VVJMLCBzY3JpcHRJZCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBjYWxsYmFjaykKICAgICB7
Ci0gICAgICAgIHZhciBzb3VyY2VGaWxlID0gdGhpcy5fc291cmNlRmlsZUZvclNjcmlwdChzb3Vy
Y2VVUkwsIHNvdXJjZUlkKTsKKyAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSB0aGlzLl9zb3VyY2VG
aWxlRm9yU2NyaXB0KHNvdXJjZVVSTCwgc2NyaXB0SWQpOwogCiAgICAgICAgIGZ1bmN0aW9uIGRp
ZENyZWF0ZVNvdXJjZU1hcHBpbmcoKQogICAgICAgICB7CkBAIC0xMTksMjAgKzExOSwyMCBAQCBX
ZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIHRoaXMuX3NvdXJjZUZpbGVzW3NvdXJjZUZpbGVJZF0ucmVxdWVzdENvbnRlbnQoY2FsbGJh
Y2spOwogICAgIH0sCiAKLSAgICByZWdpc3RlckFuY2hvcjogZnVuY3Rpb24oc291cmNlVVJMLCBz
b3VyY2VJZCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCB1cGRhdGVIYW5kbGVyKQorICAgIHJl
Z2lzdGVyQW5jaG9yOiBmdW5jdGlvbihzb3VyY2VVUkwsIHNjcmlwdElkLCBsaW5lTnVtYmVyLCBj
b2x1bW5OdW1iZXIsIHVwZGF0ZUhhbmRsZXIpCiAgICAgewotICAgICAgICB2YXIgYW5jaG9yID0g
eyBzb3VyY2VVUkw6IHNvdXJjZVVSTCwgc291cmNlSWQ6IHNvdXJjZUlkLCBsaW5lTnVtYmVyOiBs
aW5lTnVtYmVyLCBjb2x1bW5OdW1iZXI6IGNvbHVtbk51bWJlciwgdXBkYXRlSGFuZGxlcjogdXBk
YXRlSGFuZGxlciB9OworICAgICAgICB2YXIgYW5jaG9yID0geyBzb3VyY2VVUkw6IHNvdXJjZVVS
TCwgc2NyaXB0SWQ6IHNjcmlwdElkLCBsaW5lTnVtYmVyOiBsaW5lTnVtYmVyLCBjb2x1bW5OdW1i
ZXI6IGNvbHVtbk51bWJlciwgdXBkYXRlSGFuZGxlcjogdXBkYXRlSGFuZGxlciB9OwogICAgICAg
ICB0aGlzLl9hbmNob3JzLnB1c2goYW5jaG9yKTsKICAgICAgICAgdGhpcy5fdXBkYXRlQW5jaG9y
KGFuY2hvcik7CiAgICAgfSwKIAogICAgIF91cGRhdGVBbmNob3I6IGZ1bmN0aW9uKGFuY2hvcikK
ICAgICB7Ci0gICAgICAgIHZhciBzb3VyY2VGaWxlID0gdGhpcy5fc291cmNlRmlsZUZvclNjcmlw
dChhbmNob3Iuc291cmNlVVJMLCBhbmNob3Iuc291cmNlSWQpOworICAgICAgICB2YXIgc291cmNl
RmlsZSA9IHRoaXMuX3NvdXJjZUZpbGVGb3JTY3JpcHQoYW5jaG9yLnNvdXJjZVVSTCwgYW5jaG9y
LnNjcmlwdElkKTsKICAgICAgICAgaWYgKCFzb3VyY2VGaWxlKQogICAgICAgICAgICAgcmV0dXJu
OwogCi0gICAgICAgIHRoaXMuX3NjcmlwdExvY2F0aW9uVG9VSUxvY2F0aW9uKGFuY2hvci5zb3Vy
Y2VVUkwsIGFuY2hvci5zb3VyY2VJZCwgYW5jaG9yLmxpbmVOdW1iZXIsIGFuY2hvci5jb2x1bW5O
dW1iZXIsIGFuY2hvci51cGRhdGVIYW5kbGVyKTsKKyAgICAgICAgdGhpcy5fc2NyaXB0TG9jYXRp
b25Ub1VJTG9jYXRpb24oYW5jaG9yLnNvdXJjZVVSTCwgYW5jaG9yLnNjcmlwdElkLCBhbmNob3Iu
bGluZU51bWJlciwgYW5jaG9yLmNvbHVtbk51bWJlciwgYW5jaG9yLnVwZGF0ZUhhbmRsZXIpOwog
ICAgIH0sCiAKICAgICBfcGFyc2VkU2NyaXB0U291cmNlOiBmdW5jdGlvbihldmVudCkKQEAgLTE0
Nyw3ICsxNDcsNyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90
b3R5cGUgPSB7CiAKICAgICBfYWRkU2NyaXB0OiBmdW5jdGlvbihzY3JpcHQpCiAgICAgewotICAg
ICAgICB2YXIgc291cmNlRmlsZUlkID0gdGhpcy5fY3JlYXRlU291cmNlRmlsZUlkKHNjcmlwdC5z
b3VyY2VVUkwsIHNjcmlwdC5zb3VyY2VJZCk7CisgICAgICAgIHZhciBzb3VyY2VGaWxlSWQgPSB0
aGlzLl9jcmVhdGVTb3VyY2VGaWxlSWQoc2NyaXB0LnNvdXJjZVVSTCwgc2NyaXB0LnNjcmlwdElk
KTsKICAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSB0aGlzLl9zb3VyY2VGaWxlc1tzb3VyY2VGaWxl
SWRdOwogICAgICAgICBpZiAoc291cmNlRmlsZSkgewogICAgICAgICAgICAgc291cmNlRmlsZS5h
ZGRTY3JpcHQoc2NyaXB0KTsKQEAgLTIxNyw3ICsyMTcsNyBAQCBXZWJJbnNwZWN0b3IuRGVidWdn
ZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBvbGRTb3VyY2Ug
PSBzb3VyY2VGaWxlLnJlcXVlc3RDb250ZW50KGRpZFJlY2VpdmVTb3VyY2UuYmluZCh0aGlzKSk7
CiAgICAgICAgIGZ1bmN0aW9uIGRpZFJlY2VpdmVTb3VyY2Uob2xkU291cmNlKQogICAgICAgICB7
Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zZXRTY3JpcHRTb3VyY2Uo
c2NyaXB0LnNvdXJjZUlkLCBuZXdTb3VyY2UsIGRpZEVkaXRTY3JpcHRTb3VyY2UuYmluZCh0aGlz
LCBvbGRTb3VyY2UpKTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNl
dFNjcmlwdFNvdXJjZShzY3JpcHQuc2NyaXB0SWQsIG5ld1NvdXJjZSwgZGlkRWRpdFNjcmlwdFNv
dXJjZS5iaW5kKHRoaXMsIG9sZFNvdXJjZSkpOwogICAgICAgICB9CiAgICAgfSwKIApAQCAtMzgz
LDExICszODMsMTEgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJv
dG90eXBlID0gewogCiAgICAgICAgIGZ1bmN0aW9uIGRpZEdldFNjcmlwdExvY2F0aW9uKGxvY2F0
aW9uKQogICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgc2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRl
YnVnZ2VyTW9kZWwuc2NyaXB0Rm9yU291cmNlSUQobG9jYXRpb24uc291cmNlSWQpOworICAgICAg
ICAgICAgdmFyIHNjcmlwdCA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdEZvclNv
dXJjZUlEKGxvY2F0aW9uLnNjcmlwdElkKTsKICAgICAgICAgICAgIGlmIChzY3JpcHQuc291cmNl
VVJMKQogICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNldEJyZWFr
cG9pbnQoc2NyaXB0LnNvdXJjZVVSTCwgbG9jYXRpb24ubGluZU51bWJlciwgbG9jYXRpb24uY29s
dW1uTnVtYmVyLCBicmVha3BvaW50LmNvbmRpdGlvbiwgZGlkU2V0QnJlYWtwb2ludC5iaW5kKHRo
aXMpKTsKICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGxvY2F0aW9uLnNvdXJj
ZUlkID0gc2NyaXB0LnNvdXJjZUlkOworICAgICAgICAgICAgICAgIGxvY2F0aW9uLnNjcmlwdElk
ID0gc2NyaXB0LnNjcmlwdElkOwogICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dl
ck1vZGVsLnNldEJyZWFrcG9pbnRCeVNvdXJjZUlkKGxvY2F0aW9uLCBicmVha3BvaW50LmNvbmRp
dGlvbiwgZGlkU2V0QnJlYWtwb2ludC5iaW5kKHRoaXMpKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQpAQCAtNDkxLDcgKzQ5MSw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgICAgICAvLyBSZWZpbmUgbGluZSBu
dW1iZXIgYmFzZWQgb24gcmVzb2x2ZWQgbG9jYXRpb24uCiAgICAgICAgIGlmIChicmVha3BvaW50
LmxvY2F0aW9uKQotICAgICAgICAgICAgdGhpcy5fc2NyaXB0TG9jYXRpb25Ub1VJTG9jYXRpb24o
bnVsbCwgYnJlYWtwb2ludC5sb2NhdGlvbi5zb3VyY2VJZCwgYnJlYWtwb2ludC5sb2NhdGlvbi5s
aW5lTnVtYmVyLCBicmVha3BvaW50LmxvY2F0aW9uLmNvbHVtbk51bWJlciwgZGlkR2V0VUlMb2Nh
dGlvbi5iaW5kKHRoaXMpKTsKKyAgICAgICAgICAgIHRoaXMuX3NjcmlwdExvY2F0aW9uVG9VSUxv
Y2F0aW9uKG51bGwsIGJyZWFrcG9pbnQubG9jYXRpb24uc2NyaXB0SWQsIGJyZWFrcG9pbnQubG9j
YXRpb24ubGluZU51bWJlciwgYnJlYWtwb2ludC5sb2NhdGlvbi5jb2x1bW5OdW1iZXIsIGRpZEdl
dFVJTG9jYXRpb24uYmluZCh0aGlzKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHVwZGF0
ZVNvdXJjZUZpbGVCcmVha3BvaW50c0FuZERpc3BhdGNoRXZlbnQuY2FsbCh0aGlzKTsKICAgICB9
LApAQCAtNTg0LDkgKzU4NCw5IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1v
ZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYWxsRnJhbWVz
Lmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIgY2FsbEZyYW1lID0gY2FsbEZyYW1lc1tp
XTsKICAgICAgICAgICAgIHZhciBzb3VyY2VGaWxlOwotICAgICAgICAgICAgdmFyIHNjcmlwdCA9
IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdEZvclNvdXJjZUlEKGNhbGxGcmFtZS5s
b2NhdGlvbi5zb3VyY2VJZCk7CisgICAgICAgICAgICB2YXIgc2NyaXB0ID0gV2ViSW5zcGVjdG9y
LmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9yU291cmNlSUQoY2FsbEZyYW1lLmxvY2F0aW9uLnNjcmlw
dElkKTsKICAgICAgICAgICAgIGlmIChzY3JpcHQpCi0gICAgICAgICAgICAgICAgc291cmNlRmls
ZSA9IHRoaXMuX3NvdXJjZUZpbGVGb3JTY3JpcHQoc2NyaXB0LnNvdXJjZVVSTCwgc2NyaXB0LnNv
dXJjZUlkKTsKKyAgICAgICAgICAgICAgICBzb3VyY2VGaWxlID0gdGhpcy5fc291cmNlRmlsZUZv
clNjcmlwdChzY3JpcHQuc291cmNlVVJMLCBzY3JpcHQuc2NyaXB0SWQpOwogICAgICAgICAgICAg
dGhpcy5fcHJlc2VudGF0aW9uQ2FsbEZyYW1lcy5wdXNoKG5ldyBXZWJJbnNwZWN0b3IuUHJlc2Vu
YXRpb25DYWxsRnJhbWUoY2FsbEZyYW1lLCBpLCB0aGlzLCBzb3VyY2VGaWxlKSk7CiAgICAgICAg
IH0KICAgICAgICAgdmFyIGRldGFpbHMgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5kZWJ1
Z2dlclBhdXNlZERldGFpbHM7CkBAIC02MTQsMjYgKzYxNCwyNiBAQCBXZWJJbnNwZWN0b3IuRGVi
dWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlz
Ll9wcmVzZW50YXRpb25DYWxsRnJhbWVzW3RoaXMuX3NlbGVjdGVkQ2FsbEZyYW1lSW5kZXhdOwog
ICAgIH0sCiAKLSAgICBfc291cmNlRmlsZUZvclNjcmlwdDogZnVuY3Rpb24oc291cmNlVVJMLCBz
b3VyY2VJZCkKKyAgICBfc291cmNlRmlsZUZvclNjcmlwdDogZnVuY3Rpb24oc291cmNlVVJMLCBz
Y3JpcHRJZCkKICAgICB7CiAgICAgICAgIGlmICghc291cmNlVVJMKQotICAgICAgICAgICAgc291
cmNlVVJMID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9yU291cmNlSUQoc291
cmNlSWQpLnNvdXJjZVVSTDsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZUZpbGVzW3RoaXMu
X2NyZWF0ZVNvdXJjZUZpbGVJZChzb3VyY2VVUkwsIHNvdXJjZUlkKV07CisgICAgICAgICAgICBz
b3VyY2VVUkwgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JTb3VyY2VJRChz
Y3JpcHRJZCkuc291cmNlVVJMOworICAgICAgICByZXR1cm4gdGhpcy5fc291cmNlRmlsZXNbdGhp
cy5fY3JlYXRlU291cmNlRmlsZUlkKHNvdXJjZVVSTCwgc2NyaXB0SWQpXTsKICAgICB9LAogCiAg
ICAgX3NjcmlwdEZvclNvdXJjZUZpbGVJZDogZnVuY3Rpb24oc291cmNlRmlsZUlkKQogICAgIHsK
ICAgICAgICAgZnVuY3Rpb24gZmlsdGVyKHNjcmlwdCkKICAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIHRoaXMuX2NyZWF0ZVNvdXJjZUZpbGVJZChzY3JpcHQuc291cmNlVVJMLCBzY3JpcHQu
c291cmNlSWQpID09PSBzb3VyY2VGaWxlSWQ7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fY3Jl
YXRlU291cmNlRmlsZUlkKHNjcmlwdC5zb3VyY2VVUkwsIHNjcmlwdC5zY3JpcHRJZCkgPT09IHNv
dXJjZUZpbGVJZDsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTW9kZWwucXVlcnlTY3JpcHRzKGZpbHRlci5iaW5kKHRoaXMpKVswXTsKICAgICB9LAogCi0g
ICAgX2NyZWF0ZVNvdXJjZUZpbGVJZDogZnVuY3Rpb24oc291cmNlVVJMLCBzb3VyY2VJZCkKKyAg
ICBfY3JlYXRlU291cmNlRmlsZUlkOiBmdW5jdGlvbihzb3VyY2VVUkwsIHNjcmlwdElkKQogICAg
IHsKICAgICAgICAgdmFyIHByZWZpeCA9IHRoaXMuX2Zvcm1hdFNvdXJjZUZpbGVzID8gImRlb2Jm
dXNjYXRlZDoiIDogIiI7Ci0gICAgICAgIHJldHVybiBwcmVmaXggKyAoc291cmNlVVJMIHx8IHNv
dXJjZUlkKTsKKyAgICAgICAgcmV0dXJuIHByZWZpeCArIChzb3VyY2VVUkwgfHwgc2NyaXB0SWQp
OwogICAgIH0sCiAKICAgICBfcmVzZXQ6IGZ1bmN0aW9uKCkKQEAgLTcyMiw3ICs3MjIsNyBAQCBX
ZWJJbnNwZWN0b3IuUHJlc2VuYXRpb25DYWxsRnJhbWUgPSBmdW5jdGlvbihjYWxsRnJhbWUsIGlu
ZGV4LCBtb2RlbCwgc291cmNlRmlsZQogICAgIHRoaXMuX2luZGV4ID0gaW5kZXg7CiAgICAgdGhp
cy5fbW9kZWwgPSBtb2RlbDsKICAgICB0aGlzLl9zb3VyY2VGaWxlID0gc291cmNlRmlsZTsKLSAg
ICB0aGlzLl9zY3JpcHQgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JTb3Vy
Y2VJRChjYWxsRnJhbWUubG9jYXRpb24uc291cmNlSWQpOworICAgIHRoaXMuX3NjcmlwdCA9IFdl
Ykluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdEZvclNvdXJjZUlEKGNhbGxGcmFtZS5sb2Nh
dGlvbi5zY3JpcHRJZCk7CiB9CiAKIFdlYkluc3BlY3Rvci5QcmVzZW5hdGlvbkNhbGxGcmFtZS5w
cm90b3R5cGUgPSB7CkBAIC03ODEsNyArNzgxLDcgQEAgV2ViSW5zcGVjdG9yLlByZXNlbmF0aW9u
Q2FsbEZyYW1lLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHZhciBsb2NhdGlvbiA9IHRo
aXMuX2NhbGxGcmFtZS5sb2NhdGlvbjsKICAgICAgICAgaWYgKCF0aGlzLmlzSW50ZXJuYWxTY3Jp
cHQpCi0gICAgICAgICAgICB0aGlzLl9tb2RlbC5fc2NyaXB0TG9jYXRpb25Ub1VJTG9jYXRpb24o
bnVsbCwgbG9jYXRpb24uc291cmNlSWQsIGxvY2F0aW9uLmxpbmVOdW1iZXIsIGxvY2F0aW9uLmNv
bHVtbk51bWJlciwgY2FsbGJhY2spOworICAgICAgICAgICAgdGhpcy5fbW9kZWwuX3NjcmlwdExv
Y2F0aW9uVG9VSUxvY2F0aW9uKG51bGwsIGxvY2F0aW9uLnNjcmlwdElkLCBsb2NhdGlvbi5saW5l
TnVtYmVyLCBsb2NhdGlvbi5jb2x1bW5OdW1iZXIsIGNhbGxiYWNrKTsKICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgY2FsbGJhY2sodW5kZWZpbmVkLCBsb2NhdGlvbi5saW5lTnVtYmVyKTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V2ZW50
TGlzdGVuZXJzU2lkZWJhclBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0V2ZW50TGlzdGVuZXJzU2lkZWJhclBhbmUuanMKaW5kZXggMzMzMjNiMGQ5NDI1NGIwZjU4
ZWRjZmYzMmI5MGI0MWU1ZTgyMjA1NS4uZWRhYzAzM2RkNjE1ZGRmMDNiODFiZDI2YTA2NWU5Yjhl
MTEzMTEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9F
dmVudExpc3RlbmVyc1NpZGViYXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFuZS5qcwpAQCAtMjAyLDcgKzIwMiw3
IEBAIFdlYkluc3BlY3Rvci5FdmVudExpc3RlbmVyQmFyLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgIGlmICh0eXBlb2YgdGhpcy5ldmVudExpc3RlbmVyLmhhbmRsZXJCb2R5ICE9PSAidW5kZWZp
bmVkIikKICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzLnB1c2goV2ViSW5zcGVjdG9yLlJlbW90
ZU9iamVjdFByb3BlcnR5LmZyb21QcmltaXRpdmVWYWx1ZSgibGlzdGVuZXJCb2R5IiwgdGhpcy5l
dmVudExpc3RlbmVyLmhhbmRsZXJCb2R5KSk7CiAgICAgICAgICAgICBpZiAodGhpcy5ldmVudExp
c3RlbmVyLmxvY2F0aW9uKSB7Ci0gICAgICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKFdlYklu
c3BlY3Rvci5SZW1vdGVPYmplY3RQcm9wZXJ0eS5mcm9tUHJpbWl0aXZlVmFsdWUoInNvdXJjZU5h
bWUiLCB0aGlzLmV2ZW50TGlzdGVuZXIubG9jYXRpb24uc291cmNlSWQpKTsKKyAgICAgICAgICAg
ICAgICBwcm9wZXJ0aWVzLnB1c2goV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5LmZy
b21QcmltaXRpdmVWYWx1ZSgic291cmNlTmFtZSIsIHRoaXMuZXZlbnRMaXN0ZW5lci5sb2NhdGlv
bi5zY3JpcHRJZCkpOwogICAgICAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaChXZWJJbnNwZWN0
b3IuUmVtb3RlT2JqZWN0UHJvcGVydHkuZnJvbVByaW1pdGl2ZVZhbHVlKCJsaW5lTnVtYmVyIiwg
dGhpcy5ldmVudExpc3RlbmVyLmxvY2F0aW9uLmxpbmVOdW1iZXIpKTsKICAgICAgICAgICAgIH0K
IApAQCAtMjM2LDcgKzIzNiw3IEBAIFdlYkluc3BlY3Rvci5FdmVudExpc3RlbmVyQmFyLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgLy8gUmVxdWlyZXMgdGhhdCBGdW5jdGlvbi50b1N0cmluZygpIHJl
dHVybiBhdCBsZWFzdCB0aGUgZnVuY3Rpb24ncyBzaWduYXR1cmUuCiAgICAgICAgIGlmICh0aGlz
LmV2ZW50TGlzdGVuZXIubG9jYXRpb24pIHsKICAgICAgICAgICAgIHRoaXMuc3VidGl0bGVFbGVt
ZW50LnJlbW92ZUNoaWxkcmVuKCk7Ci0gICAgICAgICAgICB0aGlzLnN1YnRpdGxlRWxlbWVudC5h
cHBlbmRDaGlsZChXZWJJbnNwZWN0b3IubGlua2lmeVJlc291cmNlQXNOb2RlKHRoaXMuZXZlbnRM
aXN0ZW5lci5sb2NhdGlvbi5zb3VyY2VJZCwgInNjcmlwdHMiLCB0aGlzLmV2ZW50TGlzdGVuZXIu
bG9jYXRpb24ubGluZU51bWJlcikpOworICAgICAgICAgICAgdGhpcy5zdWJ0aXRsZUVsZW1lbnQu
YXBwZW5kQ2hpbGQoV2ViSW5zcGVjdG9yLmxpbmtpZnlSZXNvdXJjZUFzTm9kZSh0aGlzLmV2ZW50
TGlzdGVuZXIubG9jYXRpb24uc2NyaXB0SWQsICJzY3JpcHRzIiwgdGhpcy5ldmVudExpc3RlbmVy
LmxvY2F0aW9uLmxpbmVOdW1iZXIpKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHZh
ciBtYXRjaCA9IHRoaXMuZXZlbnRMaXN0ZW5lci5oYW5kbGVyQm9keS5tYXRjaCgvZnVuY3Rpb24g
KFteXChdKz8pXCgvKTsKICAgICAgICAgICAgIGlmIChtYXRjaCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0LmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMKaW5kZXggZjhmODU2ZTM5OTliYmNkN2M4YWFk
MWZjODA0OTQxZTU3ZjhhMWU5NS4uOWQzZWI0YzVmNmUyOWM1M2QyZmQ3NTNlNmM4NDBiOGQ3YTU0
MzQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3Jp
cHQuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMK
QEAgLTIzLDkgKzIzLDkgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLlNj
cmlwdCA9IGZ1bmN0aW9uKHNvdXJjZUlkLCBzb3VyY2VVUkwsIHN0YXJ0TGluZSwgc3RhcnRDb2x1
bW4sIGVuZExpbmUsIGVuZENvbHVtbiwgZXJyb3JMaW5lLCBlcnJvck1lc3NhZ2UsIGlzQ29udGVu
dFNjcmlwdCkKK1dlYkluc3BlY3Rvci5TY3JpcHQgPSBmdW5jdGlvbihzY3JpcHRJZCwgc291cmNl
VVJMLCBzdGFydExpbmUsIHN0YXJ0Q29sdW1uLCBlbmRMaW5lLCBlbmRDb2x1bW4sIGVycm9yTGlu
ZSwgZXJyb3JNZXNzYWdlLCBpc0NvbnRlbnRTY3JpcHQpCiB7Ci0gICAgdGhpcy5zb3VyY2VJZCA9
IHNvdXJjZUlkOworICAgIHRoaXMuc2NyaXB0SWQgPSBzY3JpcHRJZDsKICAgICB0aGlzLnNvdXJj
ZVVSTCA9IHNvdXJjZVVSTDsKICAgICB0aGlzLmxpbmVPZmZzZXQgPSBzdGFydExpbmU7CiAgICAg
dGhpcy5jb2x1bW5PZmZzZXQgPSBzdGFydENvbHVtbjsKQEAgLTQ5LDcgKzQ5LDcgQEAgV2ViSW5z
cGVjdG9yLlNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLl9zb3VyY2UgPSBz
b3VyY2U7CiAgICAgICAgICAgICBjYWxsYmFjayh0aGlzLl9zb3VyY2UpOwogICAgICAgICB9Ci0g
ICAgICAgIERlYnVnZ2VyQWdlbnQuZ2V0U2NyaXB0U291cmNlKHRoaXMuc291cmNlSWQsIGRpZEdl
dFNjcmlwdFNvdXJjZS5iaW5kKHRoaXMpKTsKKyAgICAgICAgRGVidWdnZXJBZ2VudC5nZXRTY3Jp
cHRTb3VyY2UodGhpcy5zY3JpcHRJZCwgZGlkR2V0U2NyaXB0U291cmNlLmJpbmQodGhpcykpOwog
ICAgIH0sCiAKICAgICBlZGl0U291cmNlOiBmdW5jdGlvbihuZXdTb3VyY2UsIGNhbGxiYWNrKQpA
QCAtNjAsNiArNjAsNiBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgICAgICB0aGlzLl9zb3VyY2UgPSBuZXdTb3VyY2U7CiAgICAgICAgICAgICBjYWxsYmFj
ayhlcnJvciwgY2FsbEZyYW1lcyk7CiAgICAgICAgIH0KLSAgICAgICAgRGVidWdnZXJBZ2VudC5z
ZXRTY3JpcHRTb3VyY2UodGhpcy5zb3VyY2VJZCwgbmV3U291cmNlLCBkaWRFZGl0U2NyaXB0U291
cmNlLmJpbmQodGhpcykpOworICAgICAgICBEZWJ1Z2dlckFnZW50LnNldFNjcmlwdFNvdXJjZSh0
aGlzLnNjcmlwdElkLCBuZXdTb3VyY2UsIGRpZEVkaXRTY3JpcHRTb3VyY2UuYmluZCh0aGlzKSk7
CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Tb3VyY2VGaWxlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3Vy
Y2VGaWxlLmpzCmluZGV4IDE5ZjlhNDM4NDIwNTMzN2FlMTZkNTA2ODE4NmY3NGViZDA3ODc4YWYu
LjBmZjM5ZjVkNjk2MjQzZDI3MmEwOTQ4MjVlMjU2NTU3NTU3NmM0MzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRmlsZS5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZpbGUuanMKQEAgLTY4LDcgKzY4
LDcgQEAgV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUucHJvdG90eXBlID0gewogICAgICAgICB2
YXIgcmF3TG9jYXRpb24gPSB7IGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcjog
Y29sdW1uTnVtYmVyIH07CiAgICAgICAgIGlmICh0aGlzLl9tYXBwaW5nKQogICAgICAgICAgICAg
cmF3TG9jYXRpb24gPSB0aGlzLl9tYXBwaW5nLmZvcm1hdHRlZFRvT3JpZ2luYWwocmF3TG9jYXRp
b24pOwotICAgICAgICByYXdMb2NhdGlvbi5zb3VyY2VJZCA9IHRoaXMuX3NjcmlwdEZvclJhd0xv
Y2F0aW9uKHJhd0xvY2F0aW9uLmxpbmVOdW1iZXIsIHJhd0xvY2F0aW9uLmNvbHVtbk51bWJlciku
c291cmNlSWQ7CisgICAgICAgIHJhd0xvY2F0aW9uLnNjcmlwdElkID0gdGhpcy5fc2NyaXB0Rm9y
UmF3TG9jYXRpb24ocmF3TG9jYXRpb24ubGluZU51bWJlciwgcmF3TG9jYXRpb24uY29sdW1uTnVt
YmVyKS5zY3JpcHRJZDsKICAgICAgICAgcmV0dXJuIHJhd0xvY2F0aW9uOwogICAgIH0sCiAKQEAg
LTEzNiwxMCArMTM2LDEwIEBAIFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLnByb3RvdHlwZSA9
IHsKIAogICAgICAgICBpZiAoIXRoaXMuX2NvbmNhdGVuYXRlZFNjcmlwdHMpCiAgICAgICAgICAg
ICB0aGlzLl9jb25jYXRlbmF0ZWRTY3JpcHRzID0ge307Ci0gICAgICAgIGlmICh0aGlzLl9jb25j
YXRlbmF0ZWRTY3JpcHRzW3NjcmlwdC5zb3VyY2VJZF0pCisgICAgICAgIGlmICh0aGlzLl9jb25j
YXRlbmF0ZWRTY3JpcHRzW3NjcmlwdC5zY3JpcHRJZF0pCiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fc2NyaXB0cy5sZW5ndGg7ICsraSkKLSAg
ICAgICAgICAgIHRoaXMuX2NvbmNhdGVuYXRlZFNjcmlwdHNbdGhpcy5fc2NyaXB0c1tpXS5zb3Vy
Y2VJZF0gPSB0cnVlOworICAgICAgICAgICAgdGhpcy5fY29uY2F0ZW5hdGVkU2NyaXB0c1t0aGlz
Ll9zY3JpcHRzW2ldLnNjcmlwdElkXSA9IHRydWU7CiAKICAgICAgICAgdGhpcy5yZWxvYWQoKTsK
IApAQCAtMjM1LDcgKzIzNSw3IEBAIFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHZhciBlbmQgPSB7IGxpbmVOdW1iZXI6
IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcjogY29sdW1uTnVtYmVyIH07CiAgICAgICAgICAgICBp
ZiAoc2NyaXB0KQotICAgICAgICAgICAgICAgIHNjcmlwdFJhbmdlcy5wdXNoKHsgc3RhcnQ6IHN0
YXJ0LCBlbmQ6IGVuZCwgc291cmNlSWQ6IHNjcmlwdC5zb3VyY2VJZCB9KTsKKyAgICAgICAgICAg
ICAgICBzY3JpcHRSYW5nZXMucHVzaCh7IHN0YXJ0OiBzdGFydCwgZW5kOiBlbmQsIHNjcmlwdElk
OiBzY3JpcHQuc2NyaXB0SWQgfSk7CiAgICAgICAgIH0KIAogICAgICAgICB2YXIgc2NyaXB0T3Bl
blRhZyA9ICI8c2NyaXB0PiI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102901</attachid>
            <date>2011-08-04 06:01:06 -0700</date>
            <delta_ts>2011-08-04 06:03:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65682-20110804170104.patch</filename>
            <type>text/plain</type>
            <size>48420</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIzNjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmOTA5ODY1ZGE3OWRlNGQ2ZjM5NDE4
MjMzZmNmMDE4YjAyZTg0ZTY3Li45MGY0ZTVmMjE0ZmRmMzYyZDU2YWRiZTA3N2YzMDU5MTdmZDU0
YTM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDgtMDQgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbmFtZSBzb3Vy
Y2VJZCAtPiBzY3JpcHRJZCBpbiB0aGUgcHJvdG9jb2wgYW5kIHRoZSBzb3VyY2UgY29kZS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjgyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzOgorICAgICAgICAoaW5pdGlhbGl6ZV9EZWJ1Z2dl
clRlc3QpOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2UtZmlsZS5odG1sOgor
CiAyMDExLTA4LTA0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VGVzdCBwcm9ncmVzc2lvbiBhZnRlciA8aHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQv
OTIzNDE+LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXItdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
LXRlc3QuanMKaW5kZXggZmQwODI0ZjZjYTc0ZDRmYzM0N2Y2MDRjZjA1MTY0ODAxMzUwMTkzNC4u
YjMzNzcyMjMzZTI4YjA0ZTYxZDZiNzM1MzQ4Y2M3NjA2ZDBiODJmNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcworKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzCkBAIC0xMDcsNyAr
MTA3LDcgQEAgSW5zcGVjdG9yVGVzdC5jYXB0dXJlU3RhY2tUcmFjZSA9IGZ1bmN0aW9uKGNhbGxG
cmFtZXMpCiAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkNhbGwgc3RhY2s6Iik7CiAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBjYWxsRnJhbWVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgIHZh
ciBmcmFtZSA9IGNhbGxGcmFtZXNbaV07Ci0gICAgICAgIHZhciBzY3JpcHQgPSBXZWJJbnNwZWN0
b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JTb3VyY2VJRChmcmFtZS5sb2NhdGlvbi5zb3VyY2VJ
ZCk7CisgICAgICAgIHZhciBzY3JpcHQgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3Jp
cHRGb3JTb3VyY2VJRChmcmFtZS5sb2NhdGlvbi5zY3JpcHRJZCk7CiAgICAgICAgIHZhciB1cmw7
CiAgICAgICAgIHZhciBsaW5lTnVtYmVyOwogICAgICAgICBpZiAoc2NyaXB0KSB7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc291cmNlLWZpbGUuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2UtZmlsZS5odG1sCmluZGV4IDg0MmE5
ZjM4MWU1MTM4MDU3OGM0Yzc2MzA1ZjlhMmQ0ZjZiM2NhMTEuLjI4YWQ2MjFiY2FmODBhYWI4YTBl
NjVlOTE1NGUwZjg5ZmI0ZWM2NzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9zb3VyY2UtZmlsZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9zb3VyY2UtZmlsZS5odG1sCkBAIC0zOCw3ICszOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQog
CiAgICAgZnVuY3Rpb24gY2hlY2tSYXdMb2NhdGlvbihzY3JpcHQsIGxpbmVOdW1iZXIsIGNvbHVt
bk51bWJlciwgbG9jYXRpb24pCiAgICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVx
dWFscyhzY3JpcHQuc291cmNlSWQsIGxvY2F0aW9uLnNvdXJjZUlkKTsKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnRFcXVhbHMoc2NyaXB0LnNjcmlwdElkLCBsb2NhdGlvbi5zY3JpcHRJZCk7
CiAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKGxpbmVOdW1iZXIsIGxvY2F0aW9u
LmxpbmVOdW1iZXIpOwogICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhjb2x1bW5O
dW1iZXIsIGxvY2F0aW9uLmNvbHVtbk51bWJlcik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDljMzgy
MTI5MTA1MGVjMDIwYTM2MDE4MzQ1OGRiMjRmYTNlYmRiZjMuLjU1Yjg2YzA0YjViZjYxMmIxYjUw
MmVjNWZjNTE5M2QyYjY4MWJhZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAxMS0w
OC0wNCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogUmVuYW1lIHNvdXJjZUlkIC0+IHNjcmlwdElkIGluIHRoZSBwcm90b2NvbCBh
bmQgdGhlIHNvdXJjZSBjb2RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjU2ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qczoKKyAgICAgICAg
KCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ29uc29sZUFnZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZSk6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFn
ZW50OjpidWlsZE9iamVjdEZvckV2ZW50TGlzdGVuZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlTG9jYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2V0QnJlYWtw
b2ludCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojpjb250aW51
ZVRvTG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6
cmVzb2x2ZUJyZWFrcG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGVidWdnZXJB
Z2VudDo6c2V0U2NyaXB0U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRlYnVn
Z2VyQWdlbnQ6OmdldFNjcmlwdFNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50OjpkaWRQYXJzZVNvdXJjZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6YWRkTWVzc2FnZVRvQ29uc29sZUltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0RGVidWdMaXN0
ZW5lci5oOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5zY3JpcHRGb3JT
b3VyY2VJRCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUu
cXVlcnlTY3JpcHRzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3Rv
dHlwZS5zZXRTY3JpcHRTb3VyY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9k
ZWwucHJvdG90eXBlLl9kaWRFZGl0U2NyaXB0U291cmNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5fcGFyc2VkU2NyaXB0U291cmNlKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5EZWJ1Z2dlckRpc3BhdGNoZXIucHJvdG90eXBlLnNjcmlwdFBhcnNlZCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJEaXNwYXRjaGVyLnByb3RvdHlwZS5icmVh
a3BvaW50UmVzb2x2ZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNl
bnRhdGlvbk1vZGVsLnByb3RvdHlwZS5yZWdpc3RlckFuY2hvcik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX3VwZGF0ZUFuY2hvcik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5
cGUuc2V0U2NyaXB0U291cmNlLmRpZFJlY2VpdmVTb3VyY2UpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLnNldFNjcmlwdFNvdXJjZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5
cGUuX3NldEJyZWFrcG9pbnRJbkRlYnVnZ2VyLmRpZEdldFNjcmlwdExvY2F0aW9uKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fc2V0
QnJlYWtwb2ludEluRGVidWdnZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJl
c2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl9icmVha3BvaW50QWRkZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLnNldCBfZGVidWdn
ZXJQYXVzZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9k
ZWwucHJvdG90eXBlLl9zb3VyY2VGaWxlRm9yU2NyaXB0KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fc2NyaXB0Rm9yU291cmNlRmls
ZUlkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnBy
b3RvdHlwZS5fY3JlYXRlU291cmNlRmlsZUlkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QcmVz
ZW5hdGlvbkNhbGxGcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJlc2VuYXRpb25DYWxs
RnJhbWUucHJvdG90eXBlLnNvdXJjZUxpbmUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvRXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFuZS5qczoKKyAgICAgICAgKC4pOgorICAgICAgICAo
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TY3JpcHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdC5wcm90b3R5
cGUucmVxdWVzdFNvdXJjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0LnByb3RvdHlw
ZS5lZGl0U291cmNlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZpbGUu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5wcm90b3R5cGUudWlMb2Nh
dGlvblRvUmF3TG9jYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUu
cHJvdG90eXBlLmZvcmNlTG9hZENvbnRlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJhd1Nv
dXJjZUNvZGUucHJvdG90eXBlLl9jb25jYXRlbmF0ZVNjcmlwdHNDb250ZW50KToKKwogMjAxMS0w
OC0wMyAgQWxpY2UgQm94aGFsbCAgPGFib3hoYWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBB
biBlbGVtZW50IHdpdGggcm9sZT10ZXh0Ym94IHNob3VsZCBoYXZlIHNldHRhYmxlIEFYVmFsdWUg
dW5sZXNzIHJlYWQtb25seQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
amVjdGVkU2NyaXB0U291cmNlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVk
U2NyaXB0U291cmNlLmpzCmluZGV4IGFjMzNhMTI4MGNiMjA3NTExMzE3MzQ3ZjIwNjcyMmVmODI1
YjAxYzYuLmE0MWJkN2VmN2U1ZGJjMjlkZWYyZjJhOWNmNWY0NmFlZTIwMDMyMjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKQEAgLTQ4
MSw3ICs0ODEsNyBAQCBJbmplY3RlZFNjcmlwdC5DYWxsRnJhbWVQcm94eSA9IGZ1bmN0aW9uKG9y
ZGluYWwsIGNhbGxGcmFtZSkKIHsKICAgICB0aGlzLmlkID0gIntcIm9yZGluYWxcIjoiICsgb3Jk
aW5hbCArICIsXCJpbmplY3RlZFNjcmlwdElkXCI6IiArIGluamVjdGVkU2NyaXB0SWQgKyAifSI7
CiAgICAgdGhpcy5mdW5jdGlvbk5hbWUgPSAoY2FsbEZyYW1lLnR5cGUgPT09ICJmdW5jdGlvbiIg
PyBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lIDogIiIpOwotICAgIHRoaXMubG9jYXRpb24gPSB7IHNv
dXJjZUlkOiBTdHJpbmcoY2FsbEZyYW1lLnNvdXJjZUlEKSwgbGluZU51bWJlcjogY2FsbEZyYW1l
LmxpbmUsIGNvbHVtbk51bWJlcjogY2FsbEZyYW1lLmNvbHVtbiB9OworICAgIHRoaXMubG9jYXRp
b24gPSB7IHNjcmlwdElkOiBTdHJpbmcoY2FsbEZyYW1lLnNvdXJjZUlEKSwgbGluZU51bWJlcjog
Y2FsbEZyYW1lLmxpbmUsIGNvbHVtbk51bWJlcjogY2FsbEZyYW1lLmNvbHVtbiB9OwogICAgIHRo
aXMuc2NvcGVDaGFpbiA9IHRoaXMuX3dyYXBTY29wZUNoYWluKGNhbGxGcmFtZSk7CiAgICAgdGhp
cy50aGlzID0gaW5qZWN0ZWRTY3JpcHQuX3dyYXBPYmplY3QoY2FsbEZyYW1lLnRoaXNPYmplY3Qs
ICJiYWNrdHJhY2UiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpp
bmRleCA4OWQ1ZWRlNGFhMmEwMmI4ZTRmYWE0YzE0ZDRlMjhlYzBhZGZjNDc0Li44MTYzNGVjZjVl
MmRjOGY1YzdhNDNhYjYwY2QwNjJjNDkzN2Q5Njg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvci5qc29uCkBAIC0zMzEsNyArMzMxLDcgQEAKICAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJ0ZXh0IiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIk1lc3Nh
Z2UgdGV4dC4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibmV0d29ya0lkZW50
aWZpZXIiLCAidHlwZSI6ICJpbnRlZ2VyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIklkZW50aWZpZXIgb2YgdGhlIG5ldHdvcmsgcmVxdWVzdCBhc3NvY2lhdGVkIHdpdGggdGhl
IGNvbnNvbGUgbWVzc2FnZS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicGFy
YW1ldGVycyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJSdW50aW1lLlJl
bW90ZU9iamVjdCIgfSwgImRlc2NyaXB0aW9uIjogIk1lc3NhZ2UgcGFyYW1ldGVycyBpbiBjYXNl
IG9mIHRoZSBmb3JtYXR0ZWQgbWVzc2FnZS4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAic3RhY2tUcmFjZSIsICIkcmVmIjogIlN0YWNrVHJhY2UiLCAiZGVzY3JpcHRpb24iOiAi
U3RhY2sgdHJhY2UgZm9yIGFzc2VydCBhbmQgZXJyb3IgbWVzc2FnZXMuIiB9LAorICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInN0YWNrVHJhY2UiLCAiJHJlZiI6ICJTdGFja1RyYWNlIiwg
ImRlc2NyaXB0aW9uIjogIlN0YWNrIHRyYWNlIGZvciBhc3NlcnQgYW5kIGVycm9yIG1lc3NhZ2Vz
LiIgfQogICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CkBA
IC0xNDU5LDEwICsxNDU5LDE1IEBACiAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEZWJ1Z2dlciBk
b21haW4gZXhwb3NlcyBKYXZhU2NyaXB0IGRlYnVnZ2luZyBmdW5jdGlvbnMuIEl0IGFsbG93cyBz
ZXR0aW5nIGFuZCByZW1vdmluZyBicmVha3BvaW50cywgc3RlcHBpbmcgdGhyb3VnaCBleGVjdXRp
b24sIGV4cGxvcmluZyBzdGFjayB0cmFjZXMsIGV0Yy4iLAogICAgICAgICAidHlwZXMiOiBbCiAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgImlkIjogIlNjcmlwdElkIiwKKyAgICAgICAg
ICAgICAgICAidHlwZSI6ICJzdHJpbmciLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
ICJVbmlxdWUgc2NyaXB0IGlkZW50aWZpZXIuIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAiaWQiOiAiTG9jYXRpb24iLAogICAgICAgICAgICAgICAgICJ0
eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCi0gICAgICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAic291cmNlSWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVz
Y3JpcHRpb24iOiAiU2NyaXB0IGlkZW50aWZpZXIgYXMgcmVwb3J0ZWQgYnkgdGhlIDxjb2RlPnNj
cmlwdFBhcnNlZDwvY29kZT4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2Ny
aXB0SWQiLCAiJHJlZiI6ICJTY3JpcHRJZCIsICJkZXNjcmlwdGlvbiI6ICJTY3JpcHQgaWRlbnRp
ZmllciBhcyByZXBvcnRlZCBpbiB0aGUgPGNvZGU+RGVidWdnZXIuc2NyaXB0UGFyc2VkPC9jb2Rl
Pi4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibGluZU51bWJlciIsICJ0eXBl
IjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiTGluZSBudW1iZXIgaW4gdGhlIHNjcmlwdC4i
IH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29sdW1uTnVtYmVyIiwgInR5cGUi
OiAiaW50ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJDb2x1bW4gbnVt
YmVyIGluIHRoZSBzY3JpcHQuIiB9CiAgICAgICAgICAgICAgICAgXSwKQEAgLTE0NzIsMjIgKzE0
NzcsMjIgQEAKICAgICAgICAgICAgICAgICAiaWQiOiAiQ2FsbEZyYW1lIiwKICAgICAgICAgICAg
ICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwot
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlkIiwgInR5cGUiOiAic3RyaW5nIiwgImRl
c2NyaXB0aW9uIjogIkNhbGwgZnJhbWUgaWRlbnRpZmllci4iIH0sCi0gICAgICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAiZnVuY3Rpb25OYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0
aW9uIjogIk5hbWUgb2YgdGhlIGZ1bmN0aW9uIGNhbGxlZCBvbiB0aGlzIGZyYW1lLiIgfSwKKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpZCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNj
cmlwdGlvbiI6ICJDYWxsIGZyYW1lIGlkZW50aWZpZXIuIFRoaXMgaWRlbnRpZmllciBpcyBvbmx5
IHZhbGlkIHdoaWxlIHRoZSB2aXJ0dWFsIG1hY2hpbmUgaXMgcGF1c2VkLiIgfSwKKyAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJmdW5jdGlvbk5hbWUiLCAidHlwZSI6ICJzdHJpbmciLCAi
ZGVzY3JpcHRpb24iOiAiTmFtZSBvZiB0aGUgSmF2YVNjcmlwdCBmdW5jdGlvbiBjYWxsZWQgb24g
dGhpcyBjYWxsIGZyYW1lLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJsb2Nh
dGlvbiIsICIkcmVmIjogIkxvY2F0aW9uIiwgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGluIHRo
ZSBzb3VyY2UgY29kZS4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2NvcGVD
aGFpbiIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJTY29wZSIgfSwgImRl
c2NyaXB0aW9uIjogIlNjb3BlIGNoYWluIGZvciBnaXZlbiBjYWxsIGZyYW1lLiIgfSwKKyAgICAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzY29wZUNoYWluIiwgInR5cGUiOiAiYXJyYXkiLCAi
aXRlbXMiOiB7ICIkcmVmIjogIlNjb3BlIiB9LCAiZGVzY3JpcHRpb24iOiAiU2NvcGUgY2hhaW4g
Zm9yIHRoaXMgY2FsbCBmcmFtZS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
dGhpcyIsICIkcmVmIjogIlJ1bnRpbWUuUmVtb3RlT2JqZWN0IiwgImRlc2NyaXB0aW9uIjogIjxj
b2RlPnRoaXM8L2NvZGU+IG9iamVjdCBmb3IgdGhpcyBjYWxsIGZyYW1lLiIgfQogICAgICAgICAg
ICAgICAgIF0sCi0gICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRlYnVnZ2VyIGNhbGwg
ZnJhbWUuIEFycmF5IG9mIGNhbGwgZnJhbWVzIGZvcm0gY2FsbCBzdGFjay4iCisgICAgICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIkphdmFTY3JpcHQgY2FsbCBmcmFtZS4gQXJyYXkgb2YgY2Fs
bCBmcmFtZXMgZm9ybSB0aGUgY2FsbCBzdGFjay4iCiAgICAgICAgICAgICB9LAogICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICJpZCI6ICJTY29wZSIsCiAgICAgICAgICAgICAgICAgInR5
cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKICAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJ0eXBlIiwgInR5cGUiOiAic3RyaW5nIiwgImVudW0iOiBb
Imdsb2JhbCIsICJsb2NhbCIsICJ3aXRoIiwgImNsb3N1cmUiLCAiY2F0Y2giXSwgImRlc2NyaXB0
aW9uIjogIlNjb3BlIHR5cGUuIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9i
amVjdCIsICIkcmVmIjogIlJ1bnRpbWUuUmVtb3RlT2JqZWN0IiwgImRlc2NyaXB0aW9uIjogIk9i
amVjdCByZXByZXNlbnRpbmcgdGhlIHNjb3BlLiIgfQorICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogIm9iamVjdCIsICIkcmVmIjogIlJ1bnRpbWUuUmVtb3RlT2JqZWN0IiwgImRlc2NyaXB0
aW9uIjogIk9iamVjdCByZXByZXNlbnRpbmcgdGhlIHNjb3BlLiBGb3IgPGNvZGU+Z2xvYmFsPC9j
b2RlPiBhbmQgPGNvZGU+d2l0aDwvY29kZT4gc2NvcGVzIGl0IHJlcHJlc2VudHMgdGhlIGFjdHVh
bCBvYmplY3Q7IGZvciB0aGUgcmVzdCBvZiB0aGUgc2NvcGVzLCBpdCBpcyBhcnRpZmljaWFsIHRy
YW5zaWVudCBvYmplY3QgZW51bWVyYXRpbmcgc2NvcGUgdmFyaWFibGVzIGFzIGl0cyBwcm9wZXJ0
aWVzLiIgfQogICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIkRlYnVnZ2VyIGNhbGwgZnJhbWUuIEFycmF5IG9mIGNhbGwgZnJhbWVzIGZvcm0gY2FsbCBz
dGFjay4iCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlNjb3BlIGRlc2NyaXB0aW9u
LiIKICAgICAgICAgICAgIH0KICAgICAgICAgXSwKICAgICAgICAgImNvbW1hbmRzIjogWwpAQCAt
MTU3MCw3ICsxNTc1LDcgQEAKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6
ICJzZXRTY3JpcHRTb3VyY2UiLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNvdXJjZUlkIiwgInR5cGUiOiAic3RyaW5nIiwg
ImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBzY3JpcHQgdG8gZWRpdC4iIH0sCisgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAic2NyaXB0SWQiLCAiJHJlZiI6ICJTY3JpcHRJZCIsICJkZXNj
cmlwdGlvbiI6ICJJZCBvZiB0aGUgc2NyaXB0IHRvIGVkaXQuIiB9LAogICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInNjcmlwdFNvdXJjZSIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlw
dGlvbiI6ICJOZXcgY29udGVudCBvZiB0aGUgc2NyaXB0LiIgfSwKICAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJwcmV2aWV3IiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRy
dWUsICJkZXNjcmlwdGlvbiI6ICIgSWYgdHJ1ZSB0aGUgY2hhbmdlIHdpbGwgbm90IGFjdHVhbGx5
IGJlIGFwcGxpZWQuIFByZXZpZXcgbW9kZSBtYXkgYmUgdXNlZCB0byBnZXQgcmVzdWx0IGRlc2Ny
aXB0aW9uIHdpdGhvdXQgYWN0dWFsbHkgbW9kaWZ5aW5nIHRoZSBjb2RlLiIgfQogICAgICAgICAg
ICAgICAgIF0sCkBAIC0xNTgzLDcgKzE1ODgsNyBAQAogICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICJuYW1lIjogImdldFNjcmlwdFNvdXJjZSIsCiAgICAgICAgICAgICAgICAgInBhcmFt
ZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic291cmNlSWQiLCAidHlw
ZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiSWQgb2YgdGhlIHNjcmlwdCB0byBnZXQgc291
cmNlIGZvci4iIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzY3JpcHRJZCIsICIk
cmVmIjogIlNjcmlwdElkIiwgImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBzY3JpcHQgdG8gZ2V0
IHNvdXJjZSBmb3IuIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAicmV0
dXJucyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzY3JpcHRTb3VyY2UiLCAi
dHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiU2NyaXB0IHNvdXJjZS4iIH0KQEAgLTE2
MjQsNyArMTYyOSw3IEBACiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIm5hbWUiOiAi
c2NyaXB0UGFyc2VkIiwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJzb3VyY2VJZCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNj
cmlwdGlvbiI6ICJJZGVudGlmaWVyIG9mIHRoZSBzY3JpcHQgcGFyc2VkLiIgfSwKKyAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJzY3JpcHRJZCIsICIkcmVmIjogIlNjcmlwdElkIiwgImRl
c2NyaXB0aW9uIjogIklkZW50aWZpZXIgb2YgdGhlIHNjcmlwdCBwYXJzZWQuIiB9LAogICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInVybCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlw
dGlvbiI6ICJVUkwgb2YgdGhlIHNjcmlwdCBwYXJzZWQgKGlmIGFueSkuIiB9LAogICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInN0YXJ0TGluZSIsICJ0eXBlIjogImludGVnZXIiLCAiZGVz
Y3JpcHRpb24iOiAiTGluZSBvZmZzZXQgb2YgdGhlIHNjcmlwdCB3aXRoaW4gdGhlIHJlc291cmNl
IHdpdGggZ2l2ZW4gVVJMIChmb3Igc2NyaXB0IHRhZ3MpLiIgfSwKICAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJzdGFydENvbHVtbiIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRp
b24iOiAiQ29sdW1uIG9mZnNldCBvZiB0aGUgc2NyaXB0IHdpdGhpbiB0aGUgcmVzb3VyY2Ugd2l0
aCBnaXZlbiBVUkwuIiB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnNvbGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ29uc29sZUFnZW50LmNwcAppbmRleCAwODY3Yzk2ZGNlYTA4ZjA2MzJlNWQ3ZDcyODU0NDQw
Y2QwNGVhNDg3Li5lOTRiY2E5NjkyMmM1ODIyYjBmMWMzZjM5ZDhjNThkODI2MTVjZjViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNw
cApAQCAtMTQyLDExICsxNDIsMTEgQEAgdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmFkZE1l
c3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXAKICAgICBhZGRD
b25zb2xlTWVzc2FnZShhZG9wdFB0cihuZXcgQ29uc29sZU1lc3NhZ2Uoc291cmNlLCB0eXBlLCBs
ZXZlbCwgbWVzc2FnZSwgYXJndW1lbnRzLCBjYWxsU3RhY2spKSk7CiB9CiAKLXZvaWQgSW5zcGVj
dG9yQ29uc29sZUFnZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2Ugc291cmNl
LCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJZCkKK3ZvaWQg
SW5zcGVjdG9yQ29uc29sZUFnZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2Ug
c291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzY3JpcHRJZCkK
IHsKICAgICBpZiAoIW1faW5zcGVjdG9yQWdlbnQtPmVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJu
OwotICAgIGFkZENvbnNvbGVNZXNzYWdlKGFkb3B0UHRyKG5ldyBDb25zb2xlTWVzc2FnZShzb3Vy
Y2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VJZCkpKTsKKyAgICBh
ZGRDb25zb2xlTWVzc2FnZShhZG9wdFB0cihuZXcgQ29uc29sZU1lc3NhZ2Uoc291cmNlLCB0eXBl
LCBsZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgc2NyaXB0SWQpKSk7CiB9CiAKIHZvaWQgSW5z
cGVjdG9yQ29uc29sZUFnZW50OjpzdGFydFRpbWluZyhjb25zdCBTdHJpbmcmIHRpdGxlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCmluZGV4
IGNkOTY1YjFhY2M0OTZmYmI5ZTEyNmM5YmVmNGQzZDljODUzYTMyNDMuLjgzOWY5NTAwNWQzZDFh
ZmU4YTUxNDc2NzYyOThmMjJjODFjM2U4ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKQEAgLTY4LDcgKzY4LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgY2xlYXJGcm9udGVuZCgpOwogCiAgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xl
KE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENh
bGxTdGFjaz4pOwotICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBN
ZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVk
IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlSWQpOworICAgIHZvaWQgYWRkTWVzc2Fn
ZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc2Ny
aXB0SWQpOwogCiAgICAgdm9pZCBzdGFydFRpbWluZyhjb25zdCBTdHJpbmcmIHRpdGxlKTsKICAg
ICB2b2lkIHN0b3BUaW1pbmcoY29uc3QgU3RyaW5nJiB0aXRsZSwgUGFzc1JlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oCmluZGV4IGRlNDMxN2QzMjc4ZTBlZjYxM2Q1
YTM3NTgyMTVjYzY2MWJjZGFkNTAuLjhhNDA4NTlmZTFkM2FmZDM2Nzg3NzM4YmM5YTFkZWY5MGRj
ZWY0NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25z
b2xlSW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaApAQCAtNDYsMTEgKzQ2LDExIEBAIGlubGluZSB2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShQYWdlKiBw
YWdlLCBNZXNzYWdlU291CiAjZW5kaWYKIH0KIAotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKFBhZ2UqIHBhZ2UsIE1lc3NhZ2VTb3VyY2Ug
c291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJZCkK
K2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29s
ZShQYWdlKiBwYWdlLCBNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVz
c2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1i
ZXIsIGNvbnN0IFN0cmluZyYgc2NyaXB0SWQpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAg
ICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1l
bnRpbmdBZ2VudHNGb3JQYWdlKHBhZ2UpKQotICAgICAgICBhZGRNZXNzYWdlVG9Db25zb2xlSW1w
bChpbnN0cnVtZW50aW5nQWdlbnRzLCBzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBsaW5l
TnVtYmVyLCBzb3VyY2VJZCk7CisgICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBsKGluc3Ry
dW1lbnRpbmdBZ2VudHMsIHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIs
IHNjcmlwdElkKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50LmNwcAppbmRleCBjMDAzNDcxMDQ0OGZjNWQ3ZjJiZmZkZWU2YTEzMTBh
YjkzMDg5OTFjLi5jOTA2ZTFmMjJkNTk5MWNkM2FiNzNhMjA3NTAyZGRhOWIyZGJhZGIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAgLTEy
MzIsNyArMTIzMiw3IEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBJbnNwZWN0b3JET01B
Z2VudDo6YnVpbGRPYmplY3RGb3JFdmVudExpc3RlbmVyKGNvbnN0CiAgICAgaW50IGxpbmVOdW1i
ZXI7CiAgICAgaWYgKGV2ZW50TGlzdGVuZXJIYW5kbGVyTG9jYXRpb24obm9kZS0+ZG9jdW1lbnQo
KSwgZXZlbnRMaXN0ZW5lci5nZXQoKSwgc291cmNlTmFtZSwgbGluZU51bWJlcikpIHsKICAgICAg
ICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gbG9jYXRpb24gPSBJbnNwZWN0b3JPYmplY3Q6OmNy
ZWF0ZSgpOwotICAgICAgICBsb2NhdGlvbi0+c2V0U3RyaW5nKCJzb3VyY2VJZCIsIHNvdXJjZU5h
bWUpOworICAgICAgICBsb2NhdGlvbi0+c2V0U3RyaW5nKCJzY3JpcHRJZCIsIHNvdXJjZU5hbWUp
OwogICAgICAgICBsb2NhdGlvbi0+c2V0TnVtYmVyKCJsaW5lTnVtYmVyIiwgbGluZU51bWJlcik7
CiAgICAgICAgIHZhbHVlLT5zZXRPYmplY3QoImxvY2F0aW9uIiwgbG9jYXRpb24pOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50
LmNwcAppbmRleCBmMjhlYTU0NTE1YzE5YTQ3NTdhYjRiMWQ5MTRiNmM2ZDU1YmQ0NmQ0Li5iZThk
NWZjODdjNDdiODMwMDZjOTUwZWJmNzE3NmM0M2FiNTI1NmUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCkBAIC0yMDUsMTEg
KzIwNSwxMSBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNldEJyZWFrcG9pbnRCeVVy
bChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgdXJsLAogICAgICpvdXRCcmVha3BvaW50SWQg
PSBicmVha3BvaW50SWQ7CiB9CiAKLXN0YXRpYyBib29sIHBhcnNlTG9jYXRpb24oRXJyb3JTdHJp
bmcqIGVycm9yU3RyaW5nLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBsb2NhdGlvbiwgU3RyaW5n
KiBzb3VyY2VJZCwgaW50KiBsaW5lTnVtYmVyLCBpbnQqIGNvbHVtbk51bWJlcikKK3N0YXRpYyBi
b29sIHBhcnNlTG9jYXRpb24oRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiBsb2NhdGlvbiwgU3RyaW5nKiBzY3JpcHRJZCwgaW50KiBsaW5lTnVtYmVyLCBp
bnQqIGNvbHVtbk51bWJlcikKIHsKLSAgICBpZiAoIWxvY2F0aW9uLT5nZXRTdHJpbmcoInNvdXJj
ZUlkIiwgc291cmNlSWQpIHx8ICFsb2NhdGlvbi0+Z2V0TnVtYmVyKCJsaW5lTnVtYmVyIiwgbGlu
ZU51bWJlcikpIHsKKyAgICBpZiAoIWxvY2F0aW9uLT5nZXRTdHJpbmcoInNjcmlwdElkIiwgc2Ny
aXB0SWQpIHx8ICFsb2NhdGlvbi0+Z2V0TnVtYmVyKCJsaW5lTnVtYmVyIiwgbGluZU51bWJlcikp
IHsKICAgICAgICAgLy8gRklYTUU6IHJlcGxhY2Ugd2l0aCBpbnB1dCB2YWxpZGF0aW9uLgotICAg
ICAgICAqZXJyb3JTdHJpbmcgPSAic291cmNlSWQgYW5kIGxpbmVOdW1iZXIgYXJlIHJlcXVpcmVk
LiI7CisgICAgICAgICplcnJvclN0cmluZyA9ICJzY3JpcHRJZCBhbmQgbGluZU51bWJlciBhcmUg
cmVxdWlyZWQuIjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICAqY29sdW1uTnVt
YmVyID0gMDsKQEAgLTIxOSwyMCArMjE5LDIwIEBAIHN0YXRpYyBib29sIHBhcnNlTG9jYXRpb24o
RXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBsb2NhCiAK
IHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2V0QnJlYWtwb2ludChFcnJvclN0cmluZyog
ZXJyb3JTdHJpbmcsIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBsb2NhdGlvbiwgY29uc3Qg
U3RyaW5nKiBjb25zdCBvcHRpb25hbENvbmRpdGlvbiwgU3RyaW5nKiBvdXRCcmVha3BvaW50SWQs
IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBhY3R1YWxMb2NhdGlvbikKIHsKLSAgICBTdHJpbmcg
c291cmNlSWQ7CisgICAgU3RyaW5nIHNjcmlwdElkOwogICAgIGludCBsaW5lTnVtYmVyOwogICAg
IGludCBjb2x1bW5OdW1iZXI7CiAKLSAgICBpZiAoIXBhcnNlTG9jYXRpb24oZXJyb3JTdHJpbmcs
IGxvY2F0aW9uLCAmc291cmNlSWQsICZsaW5lTnVtYmVyLCAmY29sdW1uTnVtYmVyKSkKKyAgICBp
ZiAoIXBhcnNlTG9jYXRpb24oZXJyb3JTdHJpbmcsIGxvY2F0aW9uLCAmc2NyaXB0SWQsICZsaW5l
TnVtYmVyLCAmY29sdW1uTnVtYmVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgU3RyaW5nIGNv
bmRpdGlvbiA9IG9wdGlvbmFsQ29uZGl0aW9uID8gKm9wdGlvbmFsQ29uZGl0aW9uIDogZW1wdHlT
dHJpbmcoKTsKIAotICAgIFN0cmluZyBicmVha3BvaW50SWQgPSBzb3VyY2VJZCArICc6JyArIFN0
cmluZzo6bnVtYmVyKGxpbmVOdW1iZXIpICsgJzonICsgU3RyaW5nOjpudW1iZXIoY29sdW1uTnVt
YmVyKTsKKyAgICBTdHJpbmcgYnJlYWtwb2ludElkID0gc2NyaXB0SWQgKyAnOicgKyBTdHJpbmc6
Om51bWJlcihsaW5lTnVtYmVyKSArICc6JyArIFN0cmluZzo6bnVtYmVyKGNvbHVtbk51bWJlcik7
CiAgICAgaWYgKG1fYnJlYWtwb2ludElkVG9EZWJ1Z1NlcnZlckJyZWFrcG9pbnRJZHMuZmluZChi
cmVha3BvaW50SWQpICE9IG1fYnJlYWtwb2ludElkVG9EZWJ1Z1NlcnZlckJyZWFrcG9pbnRJZHMu
ZW5kKCkpCiAgICAgICAgIHJldHVybjsKICAgICBTY3JpcHRCcmVha3BvaW50IGJyZWFrcG9pbnQo
bGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBjb25kaXRpb24pOwotICAgICphY3R1YWxMb2NhdGlv
biA9IHJlc29sdmVCcmVha3BvaW50KGJyZWFrcG9pbnRJZCwgc291cmNlSWQsIGJyZWFrcG9pbnQp
OworICAgICphY3R1YWxMb2NhdGlvbiA9IHJlc29sdmVCcmVha3BvaW50KGJyZWFrcG9pbnRJZCwg
c2NyaXB0SWQsIGJyZWFrcG9pbnQpOwogICAgIGlmICgqYWN0dWFsTG9jYXRpb24pCiAgICAgICAg
ICpvdXRCcmVha3BvaW50SWQgPSBicmVha3BvaW50SWQ7CiAgICAgZWxzZQpAQCAtMjYwLDIxICsy
NjAsMjEgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojpjb250aW51ZVRvTG9jYXRpb24o
RXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBQYXNzUmUKICAgICAgICAgbV9jb250aW51ZVRvTG9j
YXRpb25CcmVha3BvaW50SWQgPSAiIjsKICAgICB9CiAKLSAgICBTdHJpbmcgc291cmNlSWQ7Cisg
ICAgU3RyaW5nIHNjcmlwdElkOwogICAgIGludCBsaW5lTnVtYmVyOwogICAgIGludCBjb2x1bW5O
dW1iZXI7CiAKLSAgICBpZiAoIXBhcnNlTG9jYXRpb24oZXJyb3JTdHJpbmcsIGxvY2F0aW9uLCAm
c291cmNlSWQsICZsaW5lTnVtYmVyLCAmY29sdW1uTnVtYmVyKSkKKyAgICBpZiAoIXBhcnNlTG9j
YXRpb24oZXJyb3JTdHJpbmcsIGxvY2F0aW9uLCAmc2NyaXB0SWQsICZsaW5lTnVtYmVyLCAmY29s
dW1uTnVtYmVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgU2NyaXB0QnJlYWtwb2ludCBicmVh
a3BvaW50KGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgIiIpOwotICAgIG1fY29udGludWVUb0xv
Y2F0aW9uQnJlYWtwb2ludElkID0gc2NyaXB0RGVidWdTZXJ2ZXIoKS5zZXRCcmVha3BvaW50KHNv
dXJjZUlkLCBicmVha3BvaW50LCAmbGluZU51bWJlciwgJmNvbHVtbk51bWJlcik7CisgICAgbV9j
b250aW51ZVRvTG9jYXRpb25CcmVha3BvaW50SWQgPSBzY3JpcHREZWJ1Z1NlcnZlcigpLnNldEJy
ZWFrcG9pbnQoc2NyaXB0SWQsIGJyZWFrcG9pbnQsICZsaW5lTnVtYmVyLCAmY29sdW1uTnVtYmVy
KTsKICAgICByZXN1bWUoZXJyb3JTdHJpbmcpOwogfQogCi1QYXNzUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6cmVzb2x2ZUJyZWFrcG9pbnQoY29uc3QgU3Ry
aW5nJiBicmVha3BvaW50SWQsIGNvbnN0IFN0cmluZyYgc291cmNlSWQsIGNvbnN0IFNjcmlwdEJy
ZWFrcG9pbnQmIGJyZWFrcG9pbnQpCitQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6cmVzb2x2ZUJyZWFrcG9pbnQoY29uc3QgU3RyaW5nJiBicmVha3Bv
aW50SWQsIGNvbnN0IFN0cmluZyYgc2NyaXB0SWQsIGNvbnN0IFNjcmlwdEJyZWFrcG9pbnQmIGJy
ZWFrcG9pbnQpCiB7Ci0gICAgU2NyaXB0c01hcDo6aXRlcmF0b3Igc2NyaXB0SXRlcmF0b3IgPSBt
X3NjcmlwdHMuZmluZChzb3VyY2VJZCk7CisgICAgU2NyaXB0c01hcDo6aXRlcmF0b3Igc2NyaXB0
SXRlcmF0b3IgPSBtX3NjcmlwdHMuZmluZChzY3JpcHRJZCk7CiAgICAgaWYgKHNjcmlwdEl0ZXJh
dG9yID09IG1fc2NyaXB0cy5lbmQoKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgU2NyaXB0JiBz
Y3JpcHQgPSBzY3JpcHRJdGVyYXRvci0+c2Vjb25kOwpAQCAtMjgzLDcgKzI4Myw3IEBAIFBhc3NS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpyZXNvbHZlQnJl
YWtwb2ludChjb25zdCBTdHJpCiAKICAgICBpbnQgYWN0dWFsTGluZU51bWJlcjsKICAgICBpbnQg
YWN0dWFsQ29sdW1uTnVtYmVyOwotICAgIFN0cmluZyBkZWJ1Z1NlcnZlckJyZWFrcG9pbnRJZCA9
IHNjcmlwdERlYnVnU2VydmVyKCkuc2V0QnJlYWtwb2ludChzb3VyY2VJZCwgYnJlYWtwb2ludCwg
JmFjdHVhbExpbmVOdW1iZXIsICZhY3R1YWxDb2x1bW5OdW1iZXIpOworICAgIFN0cmluZyBkZWJ1
Z1NlcnZlckJyZWFrcG9pbnRJZCA9IHNjcmlwdERlYnVnU2VydmVyKCkuc2V0QnJlYWtwb2ludChz
Y3JpcHRJZCwgYnJlYWtwb2ludCwgJmFjdHVhbExpbmVOdW1iZXIsICZhY3R1YWxDb2x1bW5OdW1i
ZXIpOwogICAgIGlmIChkZWJ1Z1NlcnZlckJyZWFrcG9pbnRJZC5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybiAwOwogCkBAIC0yOTMsNyArMjkzLDcgQEAgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnJlc29sdmVCcmVha3BvaW50KGNvbnN0IFN0cmkK
ICAgICBkZWJ1Z1NlcnZlckJyZWFrcG9pbnRJZHNJdGVyYXRvci0+c2Vjb25kLmFwcGVuZChkZWJ1
Z1NlcnZlckJyZWFrcG9pbnRJZCk7CiAKICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBsb2Nh
dGlvbiA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgbG9jYXRpb24tPnNldFN0cmlu
Zygic291cmNlSWQiLCBzb3VyY2VJZCk7CisgICAgbG9jYXRpb24tPnNldFN0cmluZygic2NyaXB0
SWQiLCBzY3JpcHRJZCk7CiAgICAgbG9jYXRpb24tPnNldE51bWJlcigibGluZU51bWJlciIsIGFj
dHVhbExpbmVOdW1iZXIpOwogICAgIGxvY2F0aW9uLT5zZXROdW1iZXIoImNvbHVtbk51bWJlciIs
IGFjdHVhbENvbHVtbk51bWJlcik7CiAgICAgcmV0dXJuIGxvY2F0aW9uOwpAQCAtMzA5LDExICsz
MDksMTEgQEAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBzY3JpcHRUb0luc3Bl
Y3Rvck9iamVjdChTY3JpcHRPYmplY3Qgc2NyaXB0T2IKICAgICByZXR1cm4gdmFsdWUtPmFzT2Jq
ZWN0KCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2V0U2NyaXB0U291cmNl
KEVycm9yU3RyaW5nKiBlcnJvciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJZCwgY29uc3QgU3RyaW5n
JiBuZXdDb250ZW50LCBjb25zdCBib29sKiBjb25zdCBwcmV2aWV3LCBSZWZQdHI8SW5zcGVjdG9y
QXJyYXk+KiBuZXdDYWxsRnJhbWVzLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0KQor
dm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzZXRTY3JpcHRTb3VyY2UoRXJyb3JTdHJpbmcq
IGVycm9yLCBjb25zdCBTdHJpbmcmIHNjcmlwdElkLCBjb25zdCBTdHJpbmcmIG5ld0NvbnRlbnQs
IGNvbnN0IGJvb2wqIGNvbnN0IHByZXZpZXcsIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIG5ld0Nh
bGxGcmFtZXMsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQpCiB7CiAgICAgYm9vbCBw
cmV2aWV3T25seSA9IHByZXZpZXcgJiYgKnByZXZpZXc7CiAgICAgU2NyaXB0T2JqZWN0IHJlc3Vs
dE9iamVjdDsKLSAgICBpZiAoIXNjcmlwdERlYnVnU2VydmVyKCkuc2V0U2NyaXB0U291cmNlKHNv
dXJjZUlkLCBuZXdDb250ZW50LCBwcmV2aWV3T25seSwgZXJyb3IsICZtX2N1cnJlbnRDYWxsU3Rh
Y2ssICZyZXN1bHRPYmplY3QpKQorICAgIGlmICghc2NyaXB0RGVidWdTZXJ2ZXIoKS5zZXRTY3Jp
cHRTb3VyY2Uoc2NyaXB0SWQsIG5ld0NvbnRlbnQsIHByZXZpZXdPbmx5LCBlcnJvciwgJm1fY3Vy
cmVudENhbGxTdGFjaywgJnJlc3VsdE9iamVjdCkpCiAgICAgICAgIHJldHVybjsKICAgICAqbmV3
Q2FsbEZyYW1lcyA9IGN1cnJlbnRDYWxsRnJhbWVzKCk7CiAgICAgUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gb2JqZWN0ID0gc2NyaXB0VG9JbnNwZWN0b3JPYmplY3QocmVzdWx0T2JqZWN0KTsKQEAg
LTMyMSw5ICszMjEsOSBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNldFNjcmlwdFNv
dXJjZShFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmluZyYgcwogICAgICAgICAqcmVzdWx0
ID0gb2JqZWN0OwogfQogCi12b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmdldFNjcmlwdFNv
dXJjZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc291cmNlSWQsIFN0cmluZyogc2NyaXB0
U291cmNlKQordm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpnZXRTY3JpcHRTb3VyY2UoRXJy
b3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHNjcmlwdElkLCBTdHJpbmcqIHNjcmlwdFNvdXJjZSkK
IHsKLSAgICAqc2NyaXB0U291cmNlID0gbV9zY3JpcHRzLmdldChzb3VyY2VJZCkuc291cmNlOwor
ICAgICpzY3JpcHRTb3VyY2UgPSBtX3NjcmlwdHMuZ2V0KHNjcmlwdElkKS5zb3VyY2U7CiB9CiAK
IHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2NoZWR1bGVQYXVzZU9uTmV4dFN0YXRlbWVu
dChEZWJ1Z2dlckV2ZW50VHlwZSB0eXBlLCBQYXNzUmVmUHRyPEluc3BlY3RvclZhbHVlPiBkYXRh
KQpAQCAtNDEzLDEyICs0MTMsMTIgQEAgUGFzc1JlZlB0cjxJbnNwZWN0b3JBcnJheT4gSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6Y3VycmVudENhbGxGcmFtZXMoKQogCiAvLyBKYXZhU2NyaXB0RGVi
dWdMaXN0ZW5lciBmdW5jdGlvbnMKIAotdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaWRQ
YXJzZVNvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJjZUlkLCBjb25zdCBTY3JpcHQmIHNjcmlwdCkK
K3ZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlkUGFyc2VTb3VyY2UoY29uc3QgU3RyaW5n
JiBzY3JpcHRJZCwgY29uc3QgU2NyaXB0JiBzY3JpcHQpCiB7CiAgICAgLy8gRG9uJ3Qgc2VuZCBz
Y3JpcHQgY29udGVudCB0byB0aGUgZnJvbnQgZW5kIHVudGlsIGl0J3MgcmVhbGx5IG5lZWRlZC4K
LSAgICBtX2Zyb250ZW5kLT5zY3JpcHRQYXJzZWQoc291cmNlSWQsIHNjcmlwdC51cmwsIHNjcmlw
dC5zdGFydExpbmUsIHNjcmlwdC5zdGFydENvbHVtbiwgc2NyaXB0LmVuZExpbmUsIHNjcmlwdC5l
bmRDb2x1bW4sIHNjcmlwdC5pc0NvbnRlbnRTY3JpcHQpOworICAgIG1fZnJvbnRlbmQtPnNjcmlw
dFBhcnNlZChzY3JpcHRJZCwgc2NyaXB0LnVybCwgc2NyaXB0LnN0YXJ0TGluZSwgc2NyaXB0LnN0
YXJ0Q29sdW1uLCBzY3JpcHQuZW5kTGluZSwgc2NyaXB0LmVuZENvbHVtbiwgc2NyaXB0LmlzQ29u
dGVudFNjcmlwdCk7CiAKLSAgICBtX3NjcmlwdHMuc2V0KHNvdXJjZUlkLCBzY3JpcHQpOworICAg
IG1fc2NyaXB0cy5zZXQoc2NyaXB0SWQsIHNjcmlwdCk7CiAKICAgICBpZiAoc2NyaXB0LnVybC5p
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTQzNiw3ICs0MzYsNyBAQCB2b2lkIEluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQ6OmRpZFBhcnNlU291cmNlKGNvbnN0IFN0cmluZyYgc291cmNlSWQs
IGNvbnN0IFNjcmlwdAogICAgICAgICBicmVha3BvaW50T2JqZWN0LT5nZXROdW1iZXIoImxpbmVO
dW1iZXIiLCAmYnJlYWtwb2ludC5saW5lTnVtYmVyKTsKICAgICAgICAgYnJlYWtwb2ludE9iamVj
dC0+Z2V0TnVtYmVyKCJjb2x1bW5OdW1iZXIiLCAmYnJlYWtwb2ludC5jb2x1bW5OdW1iZXIpOwog
ICAgICAgICBicmVha3BvaW50T2JqZWN0LT5nZXRTdHJpbmcoImNvbmRpdGlvbiIsICZicmVha3Bv
aW50LmNvbmRpdGlvbik7Ci0gICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGxvY2F0aW9u
ID0gcmVzb2x2ZUJyZWFrcG9pbnQoaXQtPmZpcnN0LCBzb3VyY2VJZCwgYnJlYWtwb2ludCk7Cisg
ICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGxvY2F0aW9uID0gcmVzb2x2ZUJyZWFrcG9p
bnQoaXQtPmZpcnN0LCBzY3JpcHRJZCwgYnJlYWtwb2ludCk7CiAgICAgICAgIGlmIChsb2NhdGlv
bikKICAgICAgICAgICAgIG1fZnJvbnRlbmQtPmJyZWFrcG9pbnRSZXNvbHZlZChpdC0+Zmlyc3Qs
IGxvY2F0aW9uKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQuaAppbmRleCAxODYwNmI2NzY3YzYzNmE3NDJlNTBhMWYxYmVjZjUx
Nzk3MTkwMzFlLi41M2Q4YjMzNDY5ZWRmYmEyODIyODU2MWRmYjkyMjY0MzE5NWEwODI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgK
QEAgLTg3LDggKzg3LDggQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlQnJlYWtwb2ludChFcnJv
clN0cmluZyosIGNvbnN0IFN0cmluZyYgYnJlYWtwb2ludElkKTsKICAgICB2b2lkIGNvbnRpbnVl
VG9Mb2NhdGlvbihFcnJvclN0cmluZyosIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBsb2Nh
dGlvbik7CiAKLSAgICB2b2lkIHNldFNjcmlwdFNvdXJjZShFcnJvclN0cmluZyosIGNvbnN0IFN0
cmluZyYgc291cmNlSWQsIGNvbnN0IFN0cmluZyYgbmV3Q29udGVudCwgY29uc3QgYm9vbCogY29u
c3QgcHJldmlldywgUmVmUHRyPEluc3BlY3RvckFycmF5PiogbmV3Q2FsbEZyYW1lcywgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCk7Ci0gICAgdm9pZCBnZXRTY3JpcHRTb3VyY2UoRXJy
b3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlkLCBTdHJpbmcqIHNjcmlwdFNvdXJjZSk7
CisgICAgdm9pZCBzZXRTY3JpcHRTb3VyY2UoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHNj
cmlwdElkLCBjb25zdCBTdHJpbmcmIG5ld0NvbnRlbnQsIGNvbnN0IGJvb2wqIGNvbnN0IHByZXZp
ZXcsIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIG5ld0NhbGxGcmFtZXMsIFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+KiByZXN1bHQpOworICAgIHZvaWQgZ2V0U2NyaXB0U291cmNlKEVycm9yU3RyaW5n
KiwgY29uc3QgU3RyaW5nJiBzY3JpcHRJZCwgU3RyaW5nKiBzY3JpcHRTb3VyY2UpOwogICAgIHZv
aWQgc2NoZWR1bGVQYXVzZU9uTmV4dFN0YXRlbWVudChEZWJ1Z2dlckV2ZW50VHlwZSB0eXBlLCBQ
YXNzUmVmUHRyPEluc3BlY3RvclZhbHVlPiBkYXRhKTsKICAgICB2b2lkIGNhbmNlbFBhdXNlT25O
ZXh0U3RhdGVtZW50KCk7CiAgICAgdm9pZCBicmVha1Byb2dyYW0oRGVidWdnZXJFdmVudFR5cGUg
dHlwZSwgUGFzc1JlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gZGF0YSk7CkBAIC0xMjIsMTIgKzEyMiwx
MiBAQCBwcml2YXRlOgogCiAgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JBcnJheT4gY3VycmVudENh
bGxGcmFtZXMoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaWRQYXJzZVNvdXJjZShjb25zdCBTdHJp
bmcmIHNvdXJjZUlkLCBjb25zdCBTY3JpcHQmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUGFyc2VT
b3VyY2UoY29uc3QgU3RyaW5nJiBzY3JpcHRJZCwgY29uc3QgU2NyaXB0Jik7CiAgICAgdmlydHVh
bCB2b2lkIGZhaWxlZFRvUGFyc2VTb3VyY2UoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgZGF0YSwgaW50IGZpcnN0TGluZSwgaW50IGVycm9yTGluZSwgY29uc3QgU3RyaW5nJiBlcnJv
ck1lc3NhZ2UpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRQYXVzZShTY3JpcHRTdGF0ZSosIGNvbnN0
IFNjcmlwdFZhbHVlJiBjYWxsRnJhbWVzLCBjb25zdCBTY3JpcHRWYWx1ZSYgZXhjZXB0aW9uKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29udGludWUoKTsKIAotICAgIFBhc3NSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiByZXNvbHZlQnJlYWtwb2ludChjb25zdCBTdHJpbmcmIGJyZWFrcG9pbnRJZCwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VJZCwgY29uc3QgU2NyaXB0QnJlYWtwb2ludCYpOworICAgIFBh
c3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZXNvbHZlQnJlYWtwb2ludChjb25zdCBTdHJpbmcm
IGJyZWFrcG9pbnRJZCwgY29uc3QgU3RyaW5nJiBzY3JpcHRJZCwgY29uc3QgU2NyaXB0QnJlYWtw
b2ludCYpOwogICAgIHZvaWQgY2xlYXIoKTsKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcs
IFNjcmlwdD4gU2NyaXB0c01hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggYzBkYTMxMWNlODIzZWE1NWI1OGE2
ZDNjYzhmNjZlYjE2YjkyMjRlNi4uNGE5OTczMmQ1YWU5Yjg3YjU1Yzg4N2VlNzI0ZmI0OGI5MzU5
M2RmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5jcHAKQEAgLTY4NywxMCArNjg3LDEwIEBAIHZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0CiAgICAgICAgIGNvbnNvbGVBZ2VudC0+YWRkTWVzc2FnZVRvQ29uc29sZShzb3VyY2Us
IHR5cGUsIGxldmVsLCBtZXNzYWdlLCBhcmd1bWVudHMsIGNhbGxTdGFjayk7CiB9CiAKLXZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBNZXNzYWdlU291cmNlIHNvdXJjZSwg
TWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlSWQpCit2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZUltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1l
c3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNjcmlwdElkKQogewogICAgIGlm
IChJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2Vu
dHMtPmluc3BlY3RvckNvbnNvbGVBZ2VudCgpKQotICAgICAgICBjb25zb2xlQWdlbnQtPmFkZE1l
c3NhZ2VUb0NvbnNvbGUoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwg
c291cmNlSWQpOworICAgICAgICBjb25zb2xlQWdlbnQtPmFkZE1lc3NhZ2VUb0NvbnNvbGUoc291
cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgc2NyaXB0SWQpOwogfQogCiB2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50SW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50
cz4gYXJndW1lbnRzLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gc3RhY2spCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5k
ZXggNGEyYjYwZTRhYjNmNDhjODkwMzI1YmYxYzA1YjRiZTViMWQ3ZTgzZi4uNTk2NjQ4NWEyNmNj
ZTZkMGQ1M2ZkZmQ3MjMxY2RjMjc0YzM2NThiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtMjc2LDcgKzI3Niw3IEBA
IHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGlkV3JpdGVIVE1MSW1wbChjb25zdCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb25Db29raWUmLCB1bnNpZ25lZCBpbnQgZW5kTGluZSk7CiAKICAgICBz
dGF0aWMgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwg
TWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2Fs
bFN0YWNrPik7Ci0gICAgc3RhdGljIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZUltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyosIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5n
JiBzb3VyY2VJZCk7CisgICAgc3RhdGljIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZUltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyosIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2
ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3Ry
aW5nJiBzY3JpcHRJZCk7CiAgICAgc3RhdGljIHZvaWQgY29uc29sZUNvdW50SW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzKiwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNj
cmlwdENhbGxTdGFjaz4pOwogICAgIHN0YXRpYyB2b2lkIHN0YXJ0Q29uc29sZVRpbWluZ0ltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyosIGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHN0YXRpYyB2
b2lkIHN0b3BDb25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgY29uc3QgU3Ry
aW5nJiB0aXRsZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1Z0xpc3RlbmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvU2NyaXB0RGVidWdMaXN0ZW5lci5oCmluZGV4IGMyNzQ0MTI1ZmM4ODE1
Zjg1ZWVhNDQ5ZjZiZWQ2YmJlZmFmMzJlNDYuLjcyODEzZGVkY2Y3ODU5NDYyOTUxZGZlYzkwMTdl
NDU3ZWVkM2VjMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRE
ZWJ1Z0xpc3RlbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1NjcmlwdERlYnVn
TGlzdGVuZXIuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5TY3Jp
cHREZWJ1Z0xpc3RlbmVyKCkgeyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUGFyc2VTb3VyY2Uo
Y29uc3QgU3RyaW5nJiBzb3VyY2VJZCwgY29uc3QgU2NyaXB0JikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBkaWRQYXJzZVNvdXJjZShjb25zdCBTdHJpbmcmIHNjcmlwdElkLCBjb25zdCBTY3JpcHQm
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGZhaWxlZFRvUGFyc2VTb3VyY2UoY29uc3QgU3RyaW5n
JiB1cmwsIGNvbnN0IFN0cmluZyYgZGF0YSwgaW50IGZpcnN0TGluZSwgaW50IGVycm9yTGluZSwg
Y29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUGF1
c2UoU2NyaXB0U3RhdGUqLCBjb25zdCBTY3JpcHRWYWx1ZSYgY2FsbEZyYW1lcywgY29uc3QgU2Ny
aXB0VmFsdWUmIGV4Y2VwdGlvbikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb250aW51ZSgp
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVi
dWdnZXJNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdn
ZXJNb2RlbC5qcwppbmRleCBjZjM0MGM4ZTM4OTg5YmJhZmYwZDU4OWVkODE3MzE4ZDg4MmVkOWRj
Li4zZmE3YmVkY2I2MmZlNDg0YjhkZWE2Yzk3YjY2NjM5ZmE5ZmQ5OTNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCkBAIC0x
MjYsOSArMTI2LDkgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlID0gewog
ICAgICAgICByZXR1cm4gdGhpcy5fc2NyaXB0czsKICAgICB9LAogCi0gICAgc2NyaXB0Rm9yU291
cmNlSUQ6IGZ1bmN0aW9uKHNvdXJjZUlkKQorICAgIHNjcmlwdEZvclNvdXJjZUlEOiBmdW5jdGlv
bihzY3JpcHRJZCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9zY3JpcHRzW3NvdXJjZUlk
XTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3NjcmlwdHNbc2NyaXB0SWRdOwogICAgIH0sCiAKICAg
ICBzY3JpcHRzRm9yVVJMOiBmdW5jdGlvbih1cmwpCkBAIC0xMzksMjAgKzEzOSwyMCBAQCBXZWJJ
bnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgcXVlcnlTY3JpcHRzOiBm
dW5jdGlvbihmaWx0ZXIpCiAgICAgewogICAgICAgICB2YXIgc2NyaXB0cyA9IFtdOwotICAgICAg
ICBmb3IgKHZhciBzb3VyY2VJZCBpbiB0aGlzLl9zY3JpcHRzKSB7Ci0gICAgICAgICAgICB2YXIg
c2NyaXB0ID0gdGhpcy5fc2NyaXB0c1tzb3VyY2VJZF07CisgICAgICAgIGZvciAodmFyIHNjcmlw
dElkIGluIHRoaXMuX3NjcmlwdHMpIHsKKyAgICAgICAgICAgIHZhciBzY3JpcHQgPSB0aGlzLl9z
Y3JpcHRzW3NjcmlwdElkXTsKICAgICAgICAgICAgIGlmIChmaWx0ZXIoc2NyaXB0KSkKICAgICAg
ICAgICAgICAgICBzY3JpcHRzLnB1c2goc2NyaXB0KTsKICAgICAgICAgfQogICAgICAgICByZXR1
cm4gc2NyaXB0czsKICAgICB9LAogCi0gICAgc2V0U2NyaXB0U291cmNlOiBmdW5jdGlvbihzb3Vy
Y2VJZCwgbmV3U291cmNlLCBjYWxsYmFjaykKKyAgICBzZXRTY3JpcHRTb3VyY2U6IGZ1bmN0aW9u
KHNjcmlwdElkLCBuZXdTb3VyY2UsIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgdGhpcy5fc2Ny
aXB0c1tzb3VyY2VJZF0uZWRpdFNvdXJjZShuZXdTb3VyY2UsIHRoaXMuX2RpZEVkaXRTY3JpcHRT
b3VyY2UuYmluZCh0aGlzLCBzb3VyY2VJZCwgbmV3U291cmNlLCBjYWxsYmFjaykpOworICAgICAg
ICB0aGlzLl9zY3JpcHRzW3NjcmlwdElkXS5lZGl0U291cmNlKG5ld1NvdXJjZSwgdGhpcy5fZGlk
RWRpdFNjcmlwdFNvdXJjZS5iaW5kKHRoaXMsIHNjcmlwdElkLCBuZXdTb3VyY2UsIGNhbGxiYWNr
KSk7CiAgICAgfSwKIAotICAgIF9kaWRFZGl0U2NyaXB0U291cmNlOiBmdW5jdGlvbihzb3VyY2VJ
ZCwgbmV3U291cmNlLCBjYWxsYmFjaywgZXJyb3IsIGNhbGxGcmFtZXMpCisgICAgX2RpZEVkaXRT
Y3JpcHRTb3VyY2U6IGZ1bmN0aW9uKHNjcmlwdElkLCBuZXdTb3VyY2UsIGNhbGxiYWNrLCBlcnJv
ciwgY2FsbEZyYW1lcykKICAgICB7CiAgICAgICAgIGlmICghZXJyb3IgJiYgY2FsbEZyYW1lcyAm
JiBjYWxsRnJhbWVzLmxlbmd0aCkKICAgICAgICAgICAgIHRoaXMuX2RlYnVnZ2VyUGF1c2VkRGV0
YWlscy5jYWxsRnJhbWVzID0gY2FsbEZyYW1lczsKQEAgLTE4MSwxMCArMTgxLDEwIEBAIFdlYklu
c3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5kaXNwYXRj
aEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkRlYnVn
Z2VyUmVzdW1lZCk7CiAgICAgfSwKIAotICAgIF9wYXJzZWRTY3JpcHRTb3VyY2U6IGZ1bmN0aW9u
KHNvdXJjZUlkLCBzb3VyY2VVUkwsIHN0YXJ0TGluZSwgc3RhcnRDb2x1bW4sIGVuZExpbmUsIGVu
ZENvbHVtbiwgaXNDb250ZW50U2NyaXB0KQorICAgIF9wYXJzZWRTY3JpcHRTb3VyY2U6IGZ1bmN0
aW9uKHNjcmlwdElkLCBzb3VyY2VVUkwsIHN0YXJ0TGluZSwgc3RhcnRDb2x1bW4sIGVuZExpbmUs
IGVuZENvbHVtbiwgaXNDb250ZW50U2NyaXB0KQogICAgIHsKLSAgICAgICAgdmFyIHNjcmlwdCA9
IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0KHNvdXJjZUlkLCBzb3VyY2VVUkwsIHN0YXJ0TGluZSwg
c3RhcnRDb2x1bW4sIGVuZExpbmUsIGVuZENvbHVtbiwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGlz
Q29udGVudFNjcmlwdCk7Ci0gICAgICAgIHRoaXMuX3NjcmlwdHNbc291cmNlSWRdID0gc2NyaXB0
OworICAgICAgICB2YXIgc2NyaXB0ID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHQoc2NyaXB0SWQs
IHNvdXJjZVVSTCwgc3RhcnRMaW5lLCBzdGFydENvbHVtbiwgZW5kTGluZSwgZW5kQ29sdW1uLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgaXNDb250ZW50U2NyaXB0KTsKKyAgICAgICAgdGhpcy5fc2Ny
aXB0c1tzY3JpcHRJZF0gPSBzY3JpcHQ7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5QYXJzZWRTY3JpcHRTb3Vy
Y2UsIHNjcmlwdCk7CiAgICAgfSwKIApAQCAtMjI5LDkgKzIyOSw5IEBAIFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlckRpc3BhdGNoZXIucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9kZWJ1Z2dlck1v
ZGVsLl9kZWJ1Z2dlcldhc0Rpc2FibGVkKCk7CiAgICAgfSwKIAotICAgIHNjcmlwdFBhcnNlZDog
ZnVuY3Rpb24oc291cmNlSWQsIHNvdXJjZVVSTCwgc3RhcnRMaW5lLCBzdGFydENvbHVtbiwgZW5k
TGluZSwgZW5kQ29sdW1uLCBpc0NvbnRlbnRTY3JpcHQpCisgICAgc2NyaXB0UGFyc2VkOiBmdW5j
dGlvbihzY3JpcHRJZCwgc291cmNlVVJMLCBzdGFydExpbmUsIHN0YXJ0Q29sdW1uLCBlbmRMaW5l
LCBlbmRDb2x1bW4sIGlzQ29udGVudFNjcmlwdCkKICAgICB7Ci0gICAgICAgIHRoaXMuX2RlYnVn
Z2VyTW9kZWwuX3BhcnNlZFNjcmlwdFNvdXJjZShzb3VyY2VJZCwgc291cmNlVVJMLCBzdGFydExp
bmUsIHN0YXJ0Q29sdW1uLCBlbmRMaW5lLCBlbmRDb2x1bW4sIGlzQ29udGVudFNjcmlwdCk7Cisg
ICAgICAgIHRoaXMuX2RlYnVnZ2VyTW9kZWwuX3BhcnNlZFNjcmlwdFNvdXJjZShzY3JpcHRJZCwg
c291cmNlVVJMLCBzdGFydExpbmUsIHN0YXJ0Q29sdW1uLCBlbmRMaW5lLCBlbmRDb2x1bW4sIGlz
Q29udGVudFNjcmlwdCk7CiAgICAgfSwKIAogICAgIHNjcmlwdEZhaWxlZFRvUGFyc2U6IGZ1bmN0
aW9uKHNvdXJjZVVSTCwgc291cmNlLCBzdGFydGluZ0xpbmUsIGVycm9yTGluZSwgZXJyb3JNZXNz
YWdlKQpAQCAtMjM5LDggKzIzOSw4IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlckRpc3BhdGNoZXIu
cHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9kZWJ1Z2dlck1vZGVsLl9mYWlsZWRUb1BhcnNl
U2NyaXB0U291cmNlKHNvdXJjZVVSTCwgc291cmNlLCBzdGFydGluZ0xpbmUsIGVycm9yTGluZSwg
ZXJyb3JNZXNzYWdlKTsKICAgICB9LAogCi0gICAgYnJlYWtwb2ludFJlc29sdmVkOiBmdW5jdGlv
bihicmVha3BvaW50SWQsIHNvdXJjZUlkLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpCisgICAg
YnJlYWtwb2ludFJlc29sdmVkOiBmdW5jdGlvbihicmVha3BvaW50SWQsIHNjcmlwdElkLCBsaW5l
TnVtYmVyLCBjb2x1bW5OdW1iZXIpCiAgICAgewotICAgICAgICB0aGlzLl9kZWJ1Z2dlck1vZGVs
Ll9icmVha3BvaW50UmVzb2x2ZWQoYnJlYWtwb2ludElkLCBzb3VyY2VJZCwgbGluZU51bWJlciwg
Y29sdW1uTnVtYmVyKTsKKyAgICAgICAgdGhpcy5fZGVidWdnZXJNb2RlbC5fYnJlYWtwb2ludFJl
c29sdmVkKGJyZWFrcG9pbnRJZCwgc2NyaXB0SWQsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcik7
CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCmluZGV4IDMzMGE0NTQ2ZjAw
NDhhODg3ZDg0NmRiMDcyMDQ3MDI1ZDkyODA0YTUuLmE4YjU2NTQ0ZmVhZGEwYmQzM2EwYjIzYzM0
OWZkMjQ1MGYzMWQ1ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMKQEAgLTg2LDkg
Kzg2LDkgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBl
ID0gewogICAgICAgICByZXR1cm4gdGhpcy5fc291cmNlRmlsZXNbdGhpcy5fY3JlYXRlU291cmNl
RmlsZUlkKHNjcmlwdFVSTCldOwogICAgIH0sCiAKLSAgICBfc2NyaXB0TG9jYXRpb25Ub1VJTG9j
YXRpb246IGZ1bmN0aW9uKHNvdXJjZVVSTCwgc291cmNlSWQsIGxpbmVOdW1iZXIsIGNvbHVtbk51
bWJlciwgY2FsbGJhY2spCisgICAgX3NjcmlwdExvY2F0aW9uVG9VSUxvY2F0aW9uOiBmdW5jdGlv
bihzb3VyY2VVUkwsIHNjcmlwdElkLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGNhbGxiYWNr
KQogICAgIHsKLSAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSB0aGlzLl9zb3VyY2VGaWxlRm9yU2Ny
aXB0KHNvdXJjZVVSTCwgc291cmNlSWQpOworICAgICAgICB2YXIgc291cmNlRmlsZSA9IHRoaXMu
X3NvdXJjZUZpbGVGb3JTY3JpcHQoc291cmNlVVJMLCBzY3JpcHRJZCk7CiAKICAgICAgICAgZnVu
Y3Rpb24gZGlkQ3JlYXRlU291cmNlTWFwcGluZygpCiAgICAgICAgIHsKQEAgLTExOSwyMCArMTE5
LDIwIEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9
IHsKICAgICAgICAgdGhpcy5fc291cmNlRmlsZXNbc291cmNlRmlsZUlkXS5yZXF1ZXN0Q29udGVu
dChjYWxsYmFjayk7CiAgICAgfSwKIAotICAgIHJlZ2lzdGVyQW5jaG9yOiBmdW5jdGlvbihzb3Vy
Y2VVUkwsIHNvdXJjZUlkLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHVwZGF0ZUhhbmRsZXIp
CisgICAgcmVnaXN0ZXJBbmNob3I6IGZ1bmN0aW9uKHNvdXJjZVVSTCwgc2NyaXB0SWQsIGxpbmVO
dW1iZXIsIGNvbHVtbk51bWJlciwgdXBkYXRlSGFuZGxlcikKICAgICB7Ci0gICAgICAgIHZhciBh
bmNob3IgPSB7IHNvdXJjZVVSTDogc291cmNlVVJMLCBzb3VyY2VJZDogc291cmNlSWQsIGxpbmVO
dW1iZXI6IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcjogY29sdW1uTnVtYmVyLCB1cGRhdGVIYW5k
bGVyOiB1cGRhdGVIYW5kbGVyIH07CisgICAgICAgIHZhciBhbmNob3IgPSB7IHNvdXJjZVVSTDog
c291cmNlVVJMLCBzY3JpcHRJZDogc2NyaXB0SWQsIGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsIGNv
bHVtbk51bWJlcjogY29sdW1uTnVtYmVyLCB1cGRhdGVIYW5kbGVyOiB1cGRhdGVIYW5kbGVyIH07
CiAgICAgICAgIHRoaXMuX2FuY2hvcnMucHVzaChhbmNob3IpOwogICAgICAgICB0aGlzLl91cGRh
dGVBbmNob3IoYW5jaG9yKTsKICAgICB9LAogCiAgICAgX3VwZGF0ZUFuY2hvcjogZnVuY3Rpb24o
YW5jaG9yKQogICAgIHsKLSAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSB0aGlzLl9zb3VyY2VGaWxl
Rm9yU2NyaXB0KGFuY2hvci5zb3VyY2VVUkwsIGFuY2hvci5zb3VyY2VJZCk7CisgICAgICAgIHZh
ciBzb3VyY2VGaWxlID0gdGhpcy5fc291cmNlRmlsZUZvclNjcmlwdChhbmNob3Iuc291cmNlVVJM
LCBhbmNob3Iuc2NyaXB0SWQpOwogICAgICAgICBpZiAoIXNvdXJjZUZpbGUpCiAgICAgICAgICAg
ICByZXR1cm47CiAKLSAgICAgICAgdGhpcy5fc2NyaXB0TG9jYXRpb25Ub1VJTG9jYXRpb24oYW5j
aG9yLnNvdXJjZVVSTCwgYW5jaG9yLnNvdXJjZUlkLCBhbmNob3IubGluZU51bWJlciwgYW5jaG9y
LmNvbHVtbk51bWJlciwgYW5jaG9yLnVwZGF0ZUhhbmRsZXIpOworICAgICAgICB0aGlzLl9zY3Jp
cHRMb2NhdGlvblRvVUlMb2NhdGlvbihhbmNob3Iuc291cmNlVVJMLCBhbmNob3Iuc2NyaXB0SWQs
IGFuY2hvci5saW5lTnVtYmVyLCBhbmNob3IuY29sdW1uTnVtYmVyLCBhbmNob3IudXBkYXRlSGFu
ZGxlcik7CiAgICAgfSwKIAogICAgIF9wYXJzZWRTY3JpcHRTb3VyY2U6IGZ1bmN0aW9uKGV2ZW50
KQpAQCAtMTQ3LDcgKzE0Nyw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1v
ZGVsLnByb3RvdHlwZSA9IHsKIAogICAgIF9hZGRTY3JpcHQ6IGZ1bmN0aW9uKHNjcmlwdCkKICAg
ICB7Ci0gICAgICAgIHZhciBzb3VyY2VGaWxlSWQgPSB0aGlzLl9jcmVhdGVTb3VyY2VGaWxlSWQo
c2NyaXB0LnNvdXJjZVVSTCwgc2NyaXB0LnNvdXJjZUlkKTsKKyAgICAgICAgdmFyIHNvdXJjZUZp
bGVJZCA9IHRoaXMuX2NyZWF0ZVNvdXJjZUZpbGVJZChzY3JpcHQuc291cmNlVVJMLCBzY3JpcHQu
c2NyaXB0SWQpOwogICAgICAgICB2YXIgc291cmNlRmlsZSA9IHRoaXMuX3NvdXJjZUZpbGVzW3Nv
dXJjZUZpbGVJZF07CiAgICAgICAgIGlmIChzb3VyY2VGaWxlKSB7CiAgICAgICAgICAgICBzb3Vy
Y2VGaWxlLmFkZFNjcmlwdChzY3JpcHQpOwpAQCAtMjE3LDcgKzIxNyw3IEBAIFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIG9s
ZFNvdXJjZSA9IHNvdXJjZUZpbGUucmVxdWVzdENvbnRlbnQoZGlkUmVjZWl2ZVNvdXJjZS5iaW5k
KHRoaXMpKTsKICAgICAgICAgZnVuY3Rpb24gZGlkUmVjZWl2ZVNvdXJjZShvbGRTb3VyY2UpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNldFNjcmlw
dFNvdXJjZShzY3JpcHQuc291cmNlSWQsIG5ld1NvdXJjZSwgZGlkRWRpdFNjcmlwdFNvdXJjZS5i
aW5kKHRoaXMsIG9sZFNvdXJjZSkpOworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2Vy
TW9kZWwuc2V0U2NyaXB0U291cmNlKHNjcmlwdC5zY3JpcHRJZCwgbmV3U291cmNlLCBkaWRFZGl0
U2NyaXB0U291cmNlLmJpbmQodGhpcywgb2xkU291cmNlKSk7CiAgICAgICAgIH0KICAgICB9LAog
CkBAIC0zODMsMTEgKzM4MywxMSBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25N
b2RlbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgZnVuY3Rpb24gZGlkR2V0U2NyaXB0TG9jYXRp
b24obG9jYXRpb24pCiAgICAgICAgIHsKLSAgICAgICAgICAgIHZhciBzY3JpcHQgPSBXZWJJbnNw
ZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JTb3VyY2VJRChsb2NhdGlvbi5zb3VyY2VJZCk7
CisgICAgICAgICAgICB2YXIgc2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2Ny
aXB0Rm9yU291cmNlSUQobG9jYXRpb24uc2NyaXB0SWQpOwogICAgICAgICAgICAgaWYgKHNjcmlw
dC5zb3VyY2VVUkwpCiAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwu
c2V0QnJlYWtwb2ludChzY3JpcHQuc291cmNlVVJMLCBsb2NhdGlvbi5saW5lTnVtYmVyLCBsb2Nh
dGlvbi5jb2x1bW5OdW1iZXIsIGJyZWFrcG9pbnQuY29uZGl0aW9uLCBkaWRTZXRCcmVha3BvaW50
LmJpbmQodGhpcykpOwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgbG9jYXRp
b24uc291cmNlSWQgPSBzY3JpcHQuc291cmNlSWQ7CisgICAgICAgICAgICAgICAgbG9jYXRpb24u
c2NyaXB0SWQgPSBzY3JpcHQuc2NyaXB0SWQ7CiAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9y
LmRlYnVnZ2VyTW9kZWwuc2V0QnJlYWtwb2ludEJ5U291cmNlSWQobG9jYXRpb24sIGJyZWFrcG9p
bnQuY29uZGl0aW9uLCBkaWRTZXRCcmVha3BvaW50LmJpbmQodGhpcykpOwogICAgICAgICAgICAg
fQogICAgICAgICB9CkBAIC00OTEsNyArNDkxLDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJl
c2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICB9CiAgICAgICAgIC8vIFJlZmlu
ZSBsaW5lIG51bWJlciBiYXNlZCBvbiByZXNvbHZlZCBsb2NhdGlvbi4KICAgICAgICAgaWYgKGJy
ZWFrcG9pbnQubG9jYXRpb24pCi0gICAgICAgICAgICB0aGlzLl9zY3JpcHRMb2NhdGlvblRvVUlM
b2NhdGlvbihudWxsLCBicmVha3BvaW50LmxvY2F0aW9uLnNvdXJjZUlkLCBicmVha3BvaW50Lmxv
Y2F0aW9uLmxpbmVOdW1iZXIsIGJyZWFrcG9pbnQubG9jYXRpb24uY29sdW1uTnVtYmVyLCBkaWRH
ZXRVSUxvY2F0aW9uLmJpbmQodGhpcykpOworICAgICAgICAgICAgdGhpcy5fc2NyaXB0TG9jYXRp
b25Ub1VJTG9jYXRpb24obnVsbCwgYnJlYWtwb2ludC5sb2NhdGlvbi5zY3JpcHRJZCwgYnJlYWtw
b2ludC5sb2NhdGlvbi5saW5lTnVtYmVyLCBicmVha3BvaW50LmxvY2F0aW9uLmNvbHVtbk51bWJl
ciwgZGlkR2V0VUlMb2NhdGlvbi5iaW5kKHRoaXMpKTsKICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgdXBkYXRlU291cmNlRmlsZUJyZWFrcG9pbnRzQW5kRGlzcGF0Y2hFdmVudC5jYWxsKHRoaXMp
OwogICAgIH0sCkBAIC01ODQsOSArNTg0LDkgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNh
bGxGcmFtZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIHZhciBjYWxsRnJhbWUgPSBjYWxs
RnJhbWVzW2ldOwogICAgICAgICAgICAgdmFyIHNvdXJjZUZpbGU7Ci0gICAgICAgICAgICB2YXIg
c2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9yU291cmNlSUQoY2Fs
bEZyYW1lLmxvY2F0aW9uLnNvdXJjZUlkKTsKKyAgICAgICAgICAgIHZhciBzY3JpcHQgPSBXZWJJ
bnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JTb3VyY2VJRChjYWxsRnJhbWUubG9jYXRp
b24uc2NyaXB0SWQpOwogICAgICAgICAgICAgaWYgKHNjcmlwdCkKLSAgICAgICAgICAgICAgICBz
b3VyY2VGaWxlID0gdGhpcy5fc291cmNlRmlsZUZvclNjcmlwdChzY3JpcHQuc291cmNlVVJMLCBz
Y3JpcHQuc291cmNlSWQpOworICAgICAgICAgICAgICAgIHNvdXJjZUZpbGUgPSB0aGlzLl9zb3Vy
Y2VGaWxlRm9yU2NyaXB0KHNjcmlwdC5zb3VyY2VVUkwsIHNjcmlwdC5zY3JpcHRJZCk7CiAgICAg
ICAgICAgICB0aGlzLl9wcmVzZW50YXRpb25DYWxsRnJhbWVzLnB1c2gobmV3IFdlYkluc3BlY3Rv
ci5QcmVzZW5hdGlvbkNhbGxGcmFtZShjYWxsRnJhbWUsIGksIHRoaXMsIHNvdXJjZUZpbGUpKTsK
ICAgICAgICAgfQogICAgICAgICB2YXIgZGV0YWlscyA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1v
ZGVsLmRlYnVnZ2VyUGF1c2VkRGV0YWlsczsKQEAgLTYxNCwyNiArNjE0LDI2IEBAIFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0
dXJuIHRoaXMuX3ByZXNlbnRhdGlvbkNhbGxGcmFtZXNbdGhpcy5fc2VsZWN0ZWRDYWxsRnJhbWVJ
bmRleF07CiAgICAgfSwKIAotICAgIF9zb3VyY2VGaWxlRm9yU2NyaXB0OiBmdW5jdGlvbihzb3Vy
Y2VVUkwsIHNvdXJjZUlkKQorICAgIF9zb3VyY2VGaWxlRm9yU2NyaXB0OiBmdW5jdGlvbihzb3Vy
Y2VVUkwsIHNjcmlwdElkKQogICAgIHsKICAgICAgICAgaWYgKCFzb3VyY2VVUkwpCi0gICAgICAg
ICAgICBzb3VyY2VVUkwgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JTb3Vy
Y2VJRChzb3VyY2VJZCkuc291cmNlVVJMOwotICAgICAgICByZXR1cm4gdGhpcy5fc291cmNlRmls
ZXNbdGhpcy5fY3JlYXRlU291cmNlRmlsZUlkKHNvdXJjZVVSTCwgc291cmNlSWQpXTsKKyAgICAg
ICAgICAgIHNvdXJjZVVSTCA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdEZvclNv
dXJjZUlEKHNjcmlwdElkKS5zb3VyY2VVUkw7CisgICAgICAgIHJldHVybiB0aGlzLl9zb3VyY2VG
aWxlc1t0aGlzLl9jcmVhdGVTb3VyY2VGaWxlSWQoc291cmNlVVJMLCBzY3JpcHRJZCldOwogICAg
IH0sCiAKICAgICBfc2NyaXB0Rm9yU291cmNlRmlsZUlkOiBmdW5jdGlvbihzb3VyY2VGaWxlSWQp
CiAgICAgewogICAgICAgICBmdW5jdGlvbiBmaWx0ZXIoc2NyaXB0KQogICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gdGhpcy5fY3JlYXRlU291cmNlRmlsZUlkKHNjcmlwdC5zb3VyY2VVUkws
IHNjcmlwdC5zb3VyY2VJZCkgPT09IHNvdXJjZUZpbGVJZDsKKyAgICAgICAgICAgIHJldHVybiB0
aGlzLl9jcmVhdGVTb3VyY2VGaWxlSWQoc2NyaXB0LnNvdXJjZVVSTCwgc2NyaXB0LnNjcmlwdElk
KSA9PT0gc291cmNlRmlsZUlkOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0
b3IuZGVidWdnZXJNb2RlbC5xdWVyeVNjcmlwdHMoZmlsdGVyLmJpbmQodGhpcykpWzBdOwogICAg
IH0sCiAKLSAgICBfY3JlYXRlU291cmNlRmlsZUlkOiBmdW5jdGlvbihzb3VyY2VVUkwsIHNvdXJj
ZUlkKQorICAgIF9jcmVhdGVTb3VyY2VGaWxlSWQ6IGZ1bmN0aW9uKHNvdXJjZVVSTCwgc2NyaXB0
SWQpCiAgICAgewogICAgICAgICB2YXIgcHJlZml4ID0gdGhpcy5fZm9ybWF0U291cmNlRmlsZXMg
PyAiZGVvYmZ1c2NhdGVkOiIgOiAiIjsKLSAgICAgICAgcmV0dXJuIHByZWZpeCArIChzb3VyY2VV
UkwgfHwgc291cmNlSWQpOworICAgICAgICByZXR1cm4gcHJlZml4ICsgKHNvdXJjZVVSTCB8fCBz
Y3JpcHRJZCk7CiAgICAgfSwKIAogICAgIF9yZXNldDogZnVuY3Rpb24oKQpAQCAtNzIyLDcgKzcy
Miw3IEBAIFdlYkluc3BlY3Rvci5QcmVzZW5hdGlvbkNhbGxGcmFtZSA9IGZ1bmN0aW9uKGNhbGxG
cmFtZSwgaW5kZXgsIG1vZGVsLCBzb3VyY2VGaWxlCiAgICAgdGhpcy5faW5kZXggPSBpbmRleDsK
ICAgICB0aGlzLl9tb2RlbCA9IG1vZGVsOwogICAgIHRoaXMuX3NvdXJjZUZpbGUgPSBzb3VyY2VG
aWxlOwotICAgIHRoaXMuX3NjcmlwdCA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlw
dEZvclNvdXJjZUlEKGNhbGxGcmFtZS5sb2NhdGlvbi5zb3VyY2VJZCk7CisgICAgdGhpcy5fc2Ny
aXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9yU291cmNlSUQoY2FsbEZy
YW1lLmxvY2F0aW9uLnNjcmlwdElkKTsKIH0KIAogV2ViSW5zcGVjdG9yLlByZXNlbmF0aW9uQ2Fs
bEZyYW1lLnByb3RvdHlwZSA9IHsKQEAgLTc4MSw3ICs3ODEsNyBAQCBXZWJJbnNwZWN0b3IuUHJl
c2VuYXRpb25DYWxsRnJhbWUucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgdmFyIGxvY2F0
aW9uID0gdGhpcy5fY2FsbEZyYW1lLmxvY2F0aW9uOwogICAgICAgICBpZiAoIXRoaXMuaXNJbnRl
cm5hbFNjcmlwdCkKLSAgICAgICAgICAgIHRoaXMuX21vZGVsLl9zY3JpcHRMb2NhdGlvblRvVUlM
b2NhdGlvbihudWxsLCBsb2NhdGlvbi5zb3VyY2VJZCwgbG9jYXRpb24ubGluZU51bWJlciwgbG9j
YXRpb24uY29sdW1uTnVtYmVyLCBjYWxsYmFjayk7CisgICAgICAgICAgICB0aGlzLl9tb2RlbC5f
c2NyaXB0TG9jYXRpb25Ub1VJTG9jYXRpb24obnVsbCwgbG9jYXRpb24uc2NyaXB0SWQsIGxvY2F0
aW9uLmxpbmVOdW1iZXIsIGxvY2F0aW9uLmNvbHVtbk51bWJlciwgY2FsbGJhY2spOwogICAgICAg
ICBlbHNlCiAgICAgICAgICAgICBjYWxsYmFjayh1bmRlZmluZWQsIGxvY2F0aW9uLmxpbmVOdW1i
ZXIpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFuZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFuZS5qcwppbmRleCAzMzMyM2IwZDk0
MjU0YjBmNThlZGNmZjMyYjkwYjQxZTVlODIyMDU1Li5lZGFjMDMzZGQ2MTVkZGYwM2I4MWJkMjZh
MDY1ZTliOGUxMTMxMTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0V2ZW50TGlzdGVuZXJzU2lkZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9FdmVudExpc3RlbmVyc1NpZGViYXJQYW5lLmpzCkBAIC0yMDIs
NyArMjAyLDcgQEAgV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXJCYXIucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmV2ZW50TGlzdGVuZXIuaGFuZGxlckJvZHkgIT09
ICJ1bmRlZmluZWQiKQogICAgICAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaChXZWJJbnNwZWN0
b3IuUmVtb3RlT2JqZWN0UHJvcGVydHkuZnJvbVByaW1pdGl2ZVZhbHVlKCJsaXN0ZW5lckJvZHki
LCB0aGlzLmV2ZW50TGlzdGVuZXIuaGFuZGxlckJvZHkpKTsKICAgICAgICAgICAgIGlmICh0aGlz
LmV2ZW50TGlzdGVuZXIubG9jYXRpb24pIHsKLSAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzLnB1
c2goV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5LmZyb21QcmltaXRpdmVWYWx1ZSgi
c291cmNlTmFtZSIsIHRoaXMuZXZlbnRMaXN0ZW5lci5sb2NhdGlvbi5zb3VyY2VJZCkpOworICAg
ICAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaChXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJv
cGVydHkuZnJvbVByaW1pdGl2ZVZhbHVlKCJzb3VyY2VOYW1lIiwgdGhpcy5ldmVudExpc3RlbmVy
LmxvY2F0aW9uLnNjcmlwdElkKSk7CiAgICAgICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKFdl
Ykluc3BlY3Rvci5SZW1vdGVPYmplY3RQcm9wZXJ0eS5mcm9tUHJpbWl0aXZlVmFsdWUoImxpbmVO
dW1iZXIiLCB0aGlzLmV2ZW50TGlzdGVuZXIubG9jYXRpb24ubGluZU51bWJlcikpOwogICAgICAg
ICAgICAgfQogCkBAIC0yMzYsNyArMjM2LDcgQEAgV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXJC
YXIucHJvdG90eXBlID0gewogICAgICAgICAvLyBSZXF1aXJlcyB0aGF0IEZ1bmN0aW9uLnRvU3Ry
aW5nKCkgcmV0dXJuIGF0IGxlYXN0IHRoZSBmdW5jdGlvbidzIHNpZ25hdHVyZS4KICAgICAgICAg
aWYgKHRoaXMuZXZlbnRMaXN0ZW5lci5sb2NhdGlvbikgewogICAgICAgICAgICAgdGhpcy5zdWJ0
aXRsZUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgICAgIHRoaXMuc3VidGl0bGVF
bGVtZW50LmFwcGVuZENoaWxkKFdlYkluc3BlY3Rvci5saW5raWZ5UmVzb3VyY2VBc05vZGUodGhp
cy5ldmVudExpc3RlbmVyLmxvY2F0aW9uLnNvdXJjZUlkLCAic2NyaXB0cyIsIHRoaXMuZXZlbnRM
aXN0ZW5lci5sb2NhdGlvbi5saW5lTnVtYmVyKSk7CisgICAgICAgICAgICB0aGlzLnN1YnRpdGxl
RWxlbWVudC5hcHBlbmRDaGlsZChXZWJJbnNwZWN0b3IubGlua2lmeVJlc291cmNlQXNOb2RlKHRo
aXMuZXZlbnRMaXN0ZW5lci5sb2NhdGlvbi5zY3JpcHRJZCwgInNjcmlwdHMiLCB0aGlzLmV2ZW50
TGlzdGVuZXIubG9jYXRpb24ubGluZU51bWJlcikpOwogICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgdmFyIG1hdGNoID0gdGhpcy5ldmVudExpc3RlbmVyLmhhbmRsZXJCb2R5Lm1hdGNoKC9m
dW5jdGlvbiAoW15cKF0rPylcKC8pOwogICAgICAgICAgICAgaWYgKG1hdGNoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qcwppbmRleCBmOGY4NTZlMzk5OWJi
Y2Q3YzhhYWQxZmM4MDQ5NDFlNTdmOGExZTk1Li45ZDNlYjRjNWY2ZTI5YzUzZDJmZDc1M2U2Yzg0
MGI4ZDdhNTQzNDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nj
cmlwdC5qcwpAQCAtMjMsOSArMjMsOSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1XZWJJbnNw
ZWN0b3IuU2NyaXB0ID0gZnVuY3Rpb24oc291cmNlSWQsIHNvdXJjZVVSTCwgc3RhcnRMaW5lLCBz
dGFydENvbHVtbiwgZW5kTGluZSwgZW5kQ29sdW1uLCBlcnJvckxpbmUsIGVycm9yTWVzc2FnZSwg
aXNDb250ZW50U2NyaXB0KQorV2ViSW5zcGVjdG9yLlNjcmlwdCA9IGZ1bmN0aW9uKHNjcmlwdElk
LCBzb3VyY2VVUkwsIHN0YXJ0TGluZSwgc3RhcnRDb2x1bW4sIGVuZExpbmUsIGVuZENvbHVtbiwg
ZXJyb3JMaW5lLCBlcnJvck1lc3NhZ2UsIGlzQ29udGVudFNjcmlwdCkKIHsKLSAgICB0aGlzLnNv
dXJjZUlkID0gc291cmNlSWQ7CisgICAgdGhpcy5zY3JpcHRJZCA9IHNjcmlwdElkOwogICAgIHRo
aXMuc291cmNlVVJMID0gc291cmNlVVJMOwogICAgIHRoaXMubGluZU9mZnNldCA9IHN0YXJ0TGlu
ZTsKICAgICB0aGlzLmNvbHVtbk9mZnNldCA9IHN0YXJ0Q29sdW1uOwpAQCAtNDksNyArNDksNyBA
QCBXZWJJbnNwZWN0b3IuU2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuX3Nv
dXJjZSA9IHNvdXJjZTsKICAgICAgICAgICAgIGNhbGxiYWNrKHRoaXMuX3NvdXJjZSk7CiAgICAg
ICAgIH0KLSAgICAgICAgRGVidWdnZXJBZ2VudC5nZXRTY3JpcHRTb3VyY2UodGhpcy5zb3VyY2VJ
ZCwgZGlkR2V0U2NyaXB0U291cmNlLmJpbmQodGhpcykpOworICAgICAgICBEZWJ1Z2dlckFnZW50
LmdldFNjcmlwdFNvdXJjZSh0aGlzLnNjcmlwdElkLCBkaWRHZXRTY3JpcHRTb3VyY2UuYmluZCh0
aGlzKSk7CiAgICAgfSwKIAogICAgIGVkaXRTb3VyY2U6IGZ1bmN0aW9uKG5ld1NvdXJjZSwgY2Fs
bGJhY2spCkBAIC02MCw2ICs2MCw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHQucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgICAgIHRoaXMuX3NvdXJjZSA9IG5ld1NvdXJjZTsKICAgICAgICAgICAg
IGNhbGxiYWNrKGVycm9yLCBjYWxsRnJhbWVzKTsKICAgICAgICAgfQotICAgICAgICBEZWJ1Z2dl
ckFnZW50LnNldFNjcmlwdFNvdXJjZSh0aGlzLnNvdXJjZUlkLCBuZXdTb3VyY2UsIGRpZEVkaXRT
Y3JpcHRTb3VyY2UuYmluZCh0aGlzKSk7CisgICAgICAgIERlYnVnZ2VyQWdlbnQuc2V0U2NyaXB0
U291cmNlKHRoaXMuc2NyaXB0SWQsIG5ld1NvdXJjZSwgZGlkRWRpdFNjcmlwdFNvdXJjZS5iaW5k
KHRoaXMpKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NvdXJjZUZpbGUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NvdXJjZUZpbGUuanMKaW5kZXggMTlmOWE0Mzg0MjA1MzM3YWUxNmQ1MDY4MTg2Zjc0ZWJk
MDc4NzhhZi4uMGZmMzlmNWQ2OTYyNDNkMjcyYTA5NDgyNWUyNTY1NTc1NTc2YzQzOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGaWxlLmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRmlsZS5qcwpAQCAt
NjgsNyArNjgsNyBAQCBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHZhciByYXdMb2NhdGlvbiA9IHsgbGluZU51bWJlcjogbGluZU51bWJlciwgY29sdW1u
TnVtYmVyOiBjb2x1bW5OdW1iZXIgfTsKICAgICAgICAgaWYgKHRoaXMuX21hcHBpbmcpCiAgICAg
ICAgICAgICByYXdMb2NhdGlvbiA9IHRoaXMuX21hcHBpbmcuZm9ybWF0dGVkVG9PcmlnaW5hbChy
YXdMb2NhdGlvbik7Ci0gICAgICAgIHJhd0xvY2F0aW9uLnNvdXJjZUlkID0gdGhpcy5fc2NyaXB0
Rm9yUmF3TG9jYXRpb24ocmF3TG9jYXRpb24ubGluZU51bWJlciwgcmF3TG9jYXRpb24uY29sdW1u
TnVtYmVyKS5zb3VyY2VJZDsKKyAgICAgICAgcmF3TG9jYXRpb24uc2NyaXB0SWQgPSB0aGlzLl9z
Y3JpcHRGb3JSYXdMb2NhdGlvbihyYXdMb2NhdGlvbi5saW5lTnVtYmVyLCByYXdMb2NhdGlvbi5j
b2x1bW5OdW1iZXIpLnNjcmlwdElkOwogICAgICAgICByZXR1cm4gcmF3TG9jYXRpb247CiAgICAg
fSwKIApAQCAtMTM2LDEwICsxMzYsMTAgQEAgV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUucHJv
dG90eXBlID0gewogCiAgICAgICAgIGlmICghdGhpcy5fY29uY2F0ZW5hdGVkU2NyaXB0cykKICAg
ICAgICAgICAgIHRoaXMuX2NvbmNhdGVuYXRlZFNjcmlwdHMgPSB7fTsKLSAgICAgICAgaWYgKHRo
aXMuX2NvbmNhdGVuYXRlZFNjcmlwdHNbc2NyaXB0LnNvdXJjZUlkXSkKKyAgICAgICAgaWYgKHRo
aXMuX2NvbmNhdGVuYXRlZFNjcmlwdHNbc2NyaXB0LnNjcmlwdElkXSkKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9zY3JpcHRzLmxlbmd0aDsg
KytpKQotICAgICAgICAgICAgdGhpcy5fY29uY2F0ZW5hdGVkU2NyaXB0c1t0aGlzLl9zY3JpcHRz
W2ldLnNvdXJjZUlkXSA9IHRydWU7CisgICAgICAgICAgICB0aGlzLl9jb25jYXRlbmF0ZWRTY3Jp
cHRzW3RoaXMuX3NjcmlwdHNbaV0uc2NyaXB0SWRdID0gdHJ1ZTsKIAogICAgICAgICB0aGlzLnJl
bG9hZCgpOwogCkBAIC0yMzUsNyArMjM1LDcgQEAgV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUu
cHJvdG90eXBlID0gewogICAgICAgICAgICAgfQogICAgICAgICAgICAgdmFyIGVuZCA9IHsgbGlu
ZU51bWJlcjogbGluZU51bWJlciwgY29sdW1uTnVtYmVyOiBjb2x1bW5OdW1iZXIgfTsKICAgICAg
ICAgICAgIGlmIChzY3JpcHQpCi0gICAgICAgICAgICAgICAgc2NyaXB0UmFuZ2VzLnB1c2goeyBz
dGFydDogc3RhcnQsIGVuZDogZW5kLCBzb3VyY2VJZDogc2NyaXB0LnNvdXJjZUlkIH0pOworICAg
ICAgICAgICAgICAgIHNjcmlwdFJhbmdlcy5wdXNoKHsgc3RhcnQ6IHN0YXJ0LCBlbmQ6IGVuZCwg
c2NyaXB0SWQ6IHNjcmlwdC5zY3JpcHRJZCB9KTsKICAgICAgICAgfQogCiAgICAgICAgIHZhciBz
Y3JpcHRPcGVuVGFnID0gIjxzY3JpcHQ+IjsK
</data>
<flag name="review"
          id="98309"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>