<?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>59000</bug_id>
          
          <creation_ts>2011-04-20 09:15:19 -0700</creation_ts>
          <short_desc>Web Inspector: [protocol] Evaluate should expose thrown exception value</short_desc>
          <delta_ts>2019-05-02 16:18:27 -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>
          <dependson>59611</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Peter Rybin">peter.rybin</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>apavlov</cc>
    
    <cc>banti17997</cc>
    
    <cc>buildbot</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>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>389274</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Rybin">peter.rybin</who>
    <bug_when>2011-04-20 09:15:19 -0700</bug_when>
    <thetext>In the protocol &quot;evaluateOnCallFrame&quot; command returns result value.

However if expression throw exception, you only get string representation of exception (or get the process crashed if value is &apos;undefined&apos;).

The protocol should return value that has been thrown from expression. E.g. it may keep &quot;result&quot; property in result and add additional property &quot;wasThrown&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394514</commentid>
    <comment_count>1</comment_count>
      <attachid>91511</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-04-28 10:16:00 -0700</bug_when>
    <thetext>Created attachment 91511
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394528</commentid>
    <comment_count>2</comment_count>
      <attachid>91511</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-28 10:26:47 -0700</bug_when>
    <thetext>Comment on attachment 91511
Patch

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

&gt; LayoutTests/inspector/protocol/runtime-agent-expected.txt:26
&gt; +        wasThrown : false

Could you make this optional?

&gt; Source/WebCore/inspector/InjectedScript.cpp:214
&gt; +        *errorString = &quot;Internal error&quot;;

Could you add more details to this message?

&gt; Source/WebCore/inspector/InjectedScript.cpp:223
&gt; +        *errorString = &quot;Internal error&quot;;

ditto

&gt; Source/WebCore/inspector/Inspector.json:214
&gt; +                    { &quot;name&quot;: &quot;valueWasThrown&quot;, &quot;type&quot;: &quot;boolean&quot;, &quot;optional&quot;: true, &quot;description&quot;: &quot;True if exception was thrown on attempt to get the property value, in that case the value propery will contain thrown value.&quot; },

wasThrown

&gt; Source/WebCore/inspector/front-end/ConsoleView.js:363
&gt; +            if (!result || wasThrown)

is this check needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394557</commentid>
    <comment_count>3</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-04-28 10:56:54 -0700</bug_when>
    <thetext>Attachment 91511 did not build on win:
Build output: http://queues.webkit.org/results/8520423</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395225</commentid>
    <comment_count>4</comment_count>
      <attachid>91668</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-04-29 05:26:01 -0700</bug_when>
    <thetext>Created attachment 91668
Patch for landing

All comments addressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395230</commentid>
    <comment_count>5</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-04-29 05:37:49 -0700</bug_when>
    <thetext>Committed r85319: &lt;http://trac.webkit.org/changeset/85319&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403230</commentid>
    <comment_count>6</comment_count>
    <who name="Peter Rybin">peter.rybin</who>
    <bug_when>2011-05-12 16:20:09 -0700</bug_when>
    <thetext>Could you please consider refinement here:
compilation failure and thrown exception should be reported differently.

Compilation failure could be returned as exception (annotated for example as thrown=&quot;compile&quot;) or as rpc failure.

I makes sense to display these problems differently.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91511</attachid>
            <date>2011-04-28 10:16:00 -0700</date>
            <delta_ts>2011-04-28 10:26:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59000-20110428211557.patch</filename>
            <type>text/plain</type>
            <size>43503</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODUxODcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzNjgyMjlmYzFlNjNmYjEyMDIwNzQ0
ZDUxOTIxMmYxMjdhZDRjN2EyLi4zMjI5M2MxMWZmZDAzNGNiYzllMzA0NjdiNGQzYmZlODVhNDQ2
ODcyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDQtMjggIFl1cnkgU2VtaWtoYXRza3kg
IDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogW3Byb3RvY29sXSBFdmFsdWF0ZSBzaG91bGQg
ZXhwb3NlIHRocm93biBleGNlcHRpb24gdmFsdWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MDAwCisKKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29s
ZS9jb25zb2xlLWRpci1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUv
Y29uc29sZS1ldmFsLWdsb2JhbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2Nv
bnNvbGUvY29uc29sZS1mb3JtYXQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9l
eHRlbnNpb25zL2V4dGVuc2lvbnMtZXZhbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVj
dG9yL3Byb3RvY29sL2NvbnNvbGUtYWdlbnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3Bl
Y3Rvci9wcm90b2NvbC9ydW50aW1lLWFnZW50LWV4cGVjdGVkLnR4dDoKKwogMjAxMS0wNC0yOCAg
Q2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIE5vdCByZXZp
ZXdlZC4gQWRkIG5ldyBleHBlY3RlZCByZXN1bHRzIGZvciBHVEsgcGxhdGZvcm0uCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWRpci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWRpci1leHBlY3RlZC50
eHQKaW5kZXggZWEwMGVmMzlkMDgxNjg1YTgzZjJlN2YzZWZjOGMzZjdlMGM4OWVlNC4uMjU0OTY4
MzNiZjk0MzA2Y2IzNzkzYzY2MWY4NjFiMjNmZjQyZGMzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1kaXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZGlyLWV4cGVjdGVkLnR4dApAQCAtMTgs
MTMgKzE4LDEzIEBAIGNvbnNvbGUtZGlyLmh0bWw6MTBOb2RlTGlzdFsxXQogICAgIF9fcHJvdG9f
XzogTm9kZUxpc3RQcm90b3R5cGUKIAogY29uc29sZS1kaXIuaHRtbDoxMVhQYXRoUmVzdWx0Ci0g
ICAgYm9vbGVhblZhbHVlOiBYUGF0aEV4Y2VwdGlvbgorICAgIGJvb2xlYW5WYWx1ZTogWyBFeGNl
cHRpb246IFhQYXRoRXhjZXB0aW9uIF0KICAgICBjb25zdHJ1Y3RvcjogWFBhdGhSZXN1bHRDb25z
dHJ1Y3RvcgogICAgIGludmFsaWRJdGVyYXRvclN0YXRlOiBmYWxzZQotICAgIG51bWJlclZhbHVl
OiBYUGF0aEV4Y2VwdGlvbgorICAgIG51bWJlclZhbHVlOiBbIEV4Y2VwdGlvbjogWFBhdGhFeGNl
cHRpb24gXQogICAgIHJlc3VsdFR5cGU6IDQKLSAgICBzaW5nbGVOb2RlVmFsdWU6IFhQYXRoRXhj
ZXB0aW9uCi0gICAgc25hcHNob3RMZW5ndGg6IFhQYXRoRXhjZXB0aW9uCi0gICAgc3RyaW5nVmFs
dWU6IFhQYXRoRXhjZXB0aW9uCisgICAgc2luZ2xlTm9kZVZhbHVlOiBbIEV4Y2VwdGlvbjogWFBh
dGhFeGNlcHRpb24gXQorICAgIHNuYXBzaG90TGVuZ3RoOiBbIEV4Y2VwdGlvbjogWFBhdGhFeGNl
cHRpb24gXQorICAgIHN0cmluZ1ZhbHVlOiBbIEV4Y2VwdGlvbjogWFBhdGhFeGNlcHRpb24gXQog
ICAgIF9fcHJvdG9fXzogWFBhdGhSZXN1bHRQcm90b3R5cGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1ldmFsLWdsb2JhbC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWV2YWwtZ2xvYmFsLWV4cGVj
dGVkLnR4dAppbmRleCBiMTE1MDZiYjEwMTFiNzM5MmQyNTE5MTQzN2RmODdhNDZjMzZhMWU5Li40
ZmQ3ODE5MDhiYmM5NzY0ZTU1NWMyZDhiYmIzZmM5NjExMTBmZjIwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWV2YWwtZ2xvYmFsLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWV2YWwtZ2xvYmFs
LWV4cGVjdGVkLnR4dApAQCAtMyw1ICszLDUgQEAgVGVzdHMgdGhhdCBzaW1wbGUgZXZhbHVhdGlv
bnMgbWF5IGJlIHBlcmZvcm1lZCBpbiB0aGUgY29uc29sZSBvbiBnbG9iYWwgb2JqZWN0LgogZm9v
CiAiZm9vVmFsdWUiCiBiYXIxCi1SZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTog
YmFyMQorRXJyb3IKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUv
Y29uc29sZS1mb3JtYXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNv
bGUvY29uc29sZS1mb3JtYXQtZXhwZWN0ZWQudHh0CmluZGV4IGMyMTA0ODYxOGRiZTliZDljNDE3
NzljYTNlYWNiZGZmZWVhM2ZmZmQuLjU3MGFiZjBmMzRhM2M4MGE5NzY4YjA4OWEyM2U5ODc0ZTYw
NWU1ODYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUt
Zm9ybWF0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9j
b25zb2xlLWZvcm1hdC1leHBlY3RlZC50eHQKQEAgLTY0LDEwICs2NCwxMCBAQCBjb25zb2xlLWZv
cm1hdC5odG1sOjUzdGVzdCBuYW1lZCAidGVzdCIKIGNvbnNvbGUtZm9ybWF0Lmh0bWw6NTRbInRl
c3QgbmFtZWQgInRlc3QiIl0KIGdsb2JhbHNbM10KICJ0ZXN0IG5hbWVkICJ0ZXN0IiIKLWNvbnNv
bGUtZm9ybWF0Lmh0bWw6NTNFcnJvcjogCi1jb25zb2xlLWZvcm1hdC5odG1sOjU0W0Vycm9yOiBd
Citjb25zb2xlLWZvcm1hdC5odG1sOjUzRXJyb3IKK2NvbnNvbGUtZm9ybWF0Lmh0bWw6NTRbRXJy
b3JdCiBnbG9iYWxzWzRdCi1FcnJvcjogCitFcnJvcgogY29uc29sZS1mb3JtYXQuaHRtbDo1Mzxi
b2R5IG9ubG9hZD0ib25sb2FkKCkiPuKApjwvYm9keT4KIGNvbnNvbGUtZm9ybWF0Lmh0bWw6NTRb
PGJvZHkgb25sb2FkPSJvbmxvYWQoKSI+4oCmPC9ib2R5Pl0KIGdsb2JhbHNbNV0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtZXZhbC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWV2
YWwtZXhwZWN0ZWQudHh0CmluZGV4IDNkMzlmMmY0MjcwYmVkNGRhMDQwZDQ5ZmZkY2RkMGU1YzFm
MjZiYzQuLmJhOTU0ODA0NTNjZDJlZTgwNTE1ZDU1ZWIzNzg0YzI5ZmZmMjM2YmIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtZXZhbC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9u
cy1ldmFsLWV4cGVjdGVkLnR4dApAQCAtNyw3ICs3LDcgQEAgRXZhbHVhdGU6ICJmdW5jdGlvbiIg
KGV4Y2VwdGlvbjogdW5kZWZpbmVkKQogUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdEV2YWxE
ZWZpbmVzR2xvYmFsU3ltYm9scwogRXZhbHVhdGU6IHsiZnVuYyI6ImZ1bmN0aW9uIiwidmFyaWFi
bGUiOjQyfSAoZXhjZXB0aW9uOiB1bmRlZmluZWQpCiBSVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90
ZXN0RXZhbEZhaWxlZAotRXZhbHVhdGU6ICJUeXBlRXJyb3I6IEpTT04uc3RyaW5naWZ5IGNhbm5v
dCBzZXJpYWxpemUgY3ljbGljIHN0cnVjdHVyZXMuIiAoZXhjZXB0aW9uOiB0cnVlKQorRXZhbHVh
dGU6ICJFcnJvciIgKGV4Y2VwdGlvbjogdHJ1ZSkKIFJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rl
c3RFdmFsT2sKIEV2YWx1YXRlOiB7InN0ciI6ImZvbyIsIm51bSI6NDJ9IChleGNlcHRpb246IHVu
ZGVmaW5lZCkKIFJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RFdmFsU3RhdGVtZW50CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvdG9jb2wvY29uc29sZS1hZ2VudC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvdG9jb2wvY29uc29sZS1hZ2VudC1l
eHBlY3RlZC50eHQKaW5kZXggODZmYzg4ZGI5MmYxNGI3NDBmY2Y5ODk2MDcxZTliZDVkZDc1ZDBi
MS4uODg1ZWQwN2U3NDBjNjhkM2VhYjYzOTI3NDk0ODU4ZDE3MGQ5YzYzNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb3RvY29sL2NvbnNvbGUtYWdlbnQtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm90b2NvbC9jb25zb2xlLWFnZW50LWV4cGVj
dGVkLnR4dApAQCAtODcsNiArODcsNyBAQCByZXNwb25zZToKICAgICAgICAgICAgIHR5cGUgOiAi
dW5kZWZpbmVkIgogICAgICAgICAgICAgZGVzY3JpcHRpb24gOiAidW5kZWZpbmVkIgogICAgICAg
ICB9CisgICAgICAgIHdhc1Rocm93biA6IGZhbHNlCiAgICAgfQogICAgIGlkIDogPG51bWJlcj4K
IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm90b2NvbC9ydW50aW1lLWFn
ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm90b2NvbC9ydW50aW1l
LWFnZW50LWV4cGVjdGVkLnR4dAppbmRleCBjMDU5MTkwZmRiZWIzYWU0ODM4OGRlMjU0YjVhZWVh
YTJhYjk3YzliLi42ZmRhNTIxNmE1MDIzYWJiMDBjZTdkMWM3NTQwNzRiYjUwYWZjYjkwIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvdG9jb2wvcnVudGltZS1hZ2VudC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb3RvY29sL3J1bnRpbWUtYWdl
bnQtZXhwZWN0ZWQudHh0CkBAIC0yMyw2ICsyMyw3IEBAIHJlc3BvbnNlOgogICAgICAgICAgICAg
dHlwZSA6ICJvYmplY3QiCiAgICAgICAgICAgICBkZXNjcmlwdGlvbiA6ICJUZXN0T2JqZWN0Igog
ICAgICAgICB9CisgICAgICAgIHdhc1Rocm93biA6IGZhbHNlCiAgICAgfQogICAgIGlkIDogPG51
bWJlcj4KIH0KQEAgLTQ5LDYgKzUwLDcgQEAgcmVzcG9uc2U6CiAgICAgICAgICAgICB0eXBlIDog
Im9iamVjdCIKICAgICAgICAgICAgIGRlc2NyaXB0aW9uIDogIlRlc3RPYmplY3QiCiAgICAgICAg
IH0KKyAgICAgICAgd2FzVGhyb3duIDogZmFsc2UKICAgICB9CiAgICAgaWQgOiA8bnVtYmVyPgog
fQpAQCAtNzMsNiArNzUsNyBAQCByZXNwb25zZToKICAgICAgICAgICAgIHR5cGUgOiAidW5kZWZp
bmVkIgogICAgICAgICAgICAgZGVzY3JpcHRpb24gOiAidW5kZWZpbmVkIgogICAgICAgICB9Cisg
ICAgICAgIHdhc1Rocm93biA6IGZhbHNlCiAgICAgfQogICAgIGlkIDogPG51bWJlcj4KIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBmZDY2YWYwMTlhZjkxM2ExZmEyYjBiZmE5Yzg5YzEzNDY1MTg4MTRkLi5mZDdh
YjNlOWNlYTdmZDA1ZGJjYTA2OWVjZmEyYWFhNjYzMjVkMTcwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTMgQEAKKzIwMTEtMDQtMjggIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogW3Byb3RvY29sXSBFdmFsdWF0ZSBzaG91bGQgZXhwb3NlIHRocm93biBleGNl
cHRpb24gdmFsdWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU5MDAwCisKKyAgICAgICAgRWFjaCBldmFsdWF0aW9uIGNvbW1hbmQgbWF5IGhhdmUgZWl0
aGVyIHRocm93biBvciByZXR1cm5lZCByZXN1bHQuIFRoaXMgaXMgaW5kaWNhdGVkCisgICAgICAg
IGJ5IHdhc1Rocm93biBwcm9wZXJ0eSBpbiB0aGUgcHJvdG9jb2wuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5qZWN0ZWRTY3Jp
cHQ6OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkluamVjdGVkU2NyaXB0OjpldmFsdWF0
ZU9uKToKKyAgICAgICAgKFdlYkNvcmU6OkluamVjdGVkU2NyaXB0OjpldmFsdWF0ZU9uQ2FsbEZy
YW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkluamVjdGVkU2NyaXB0OjpnZXRQcm9wZXJ0aWVzKToK
KyAgICAgICAgKFdlYkNvcmU6OkluamVjdGVkU2NyaXB0OjptYWtlRXZhbENhbGwpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oOgorICAgICAgICAqIGluc3BlY3Rvci9Jbmpl
Y3RlZFNjcmlwdFNvdXJjZS5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246
IFJlbW92ZWQgImVycm9yIiByZW1vdGUgb2JqZWN0IHR5cGUsIGFkZGVkICJ3YXNUaHJvd24iIHBy
b3BlcnR5IHRvCisgICAgICAgIHRoZSBldmFsdWF0aW9uIHJlc3VsdHMuCisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yRGVidWdnZXJBZ2VudDo6ZXZhbHVhdGVPbkNhbGxGcmFtZSk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJ1bnRp
bWVBZ2VudDo6ZXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUnVudGltZUFn
ZW50OjpldmFsdWF0ZU9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJ1bnRpbWVBZ2Vu
dDo6Z2V0UHJvcGVydGllcyk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVB
Z2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLmNvbXBsZXRpb25zLmV2
YWx1YXRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLmV2
YWxJbkluc3BlY3RlZFdpbmRvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcu
cHJvdG90eXBlLl9lbnRlcktleVByZXNzZWQucHJpbnRSZXN1bHQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fZW50ZXJLZXlQcmVzc2VkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Db25zb2xlQ29tbWFuZFJlc3VsdCk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlByZXNlbmF0aW9uQ2FsbEZyYW1lLnByb3RvdHlwZS5ldmFsdWF0ZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLl9jcmVhdGVUb29sdGlw
Rm9yTm9kZS5zZXRUb29sdGlwKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVu
c2lvblBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNpZGViYXJQYW5l
LnByb3RvdHlwZS5fb25FdmFsdWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9F
eHRlbnNpb25TZXJ2ZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVy
LnByb3RvdHlwZS5fb25FdmFsdWF0ZU9uSW5zcGVjdGVkUGFnZSk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5PYmplY3RQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZS51cGRhdGUpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUHJvcGVydGllc1NpZGViYXJQYW5lLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlByb3BlcnRpZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUudXBkYXRl
Lm5vZGVQcm90b3R5cGVzUmVhZHkpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291
cmNlRnJhbWUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBl
Ll9zaG93UG9wdXAuc2hvd09iamVjdFBvcHVwKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3Vy
Y2VGcmFtZS5wcm90b3R5cGUuX3Nob3dQb3B1cCk6CisKIDIwMTEtMDQtMjggIFBhdmVsIEZlbGRt
YW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2Vt
aWtoYXRza3kuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRT
Y3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcApp
bmRleCBhZWI2ZjM5MDY2ZTg5YTM3ZTA1MTEzZjFiODgyMWQzZGVhMTgzOTFiLi4zOTJhZmMxOGZl
OTUxODM5ZGY5ZjZmYzAyNzEwNjQzZTEyMGNjYjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbmplY3RlZFNjcmlwdC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAsIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTU0LDI0ICs1NCwyNCBAQCBJbmplY3RlZFNj
cmlwdDo6SW5qZWN0ZWRTY3JpcHQoU2NyaXB0T2JqZWN0IGluamVjdGVkU2NyaXB0T2JqZWN0LCBJ
bnNwZWN0ZWRTdGF0ZQogewogfQogCi12b2lkIEluamVjdGVkU2NyaXB0OjpldmFsdWF0ZShFcnJv
clN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3Ry
aW5nJiBvYmplY3RHcm91cCwgYm9vbCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIFJlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+KiByZXN1bHQpCit2b2lkIEluamVjdGVkU2NyaXB0OjpldmFsdWF0ZShFcnJv
clN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3Ry
aW5nJiBvYmplY3RHcm91cCwgYm9vbCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIFJlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+KiByZXN1bHQsIGJvb2wqIHdhc1Rocm93bikKIHsKICAgICBTY3JpcHRGdW5j
dGlvbkNhbGwgZnVuY3Rpb24obV9pbmplY3RlZFNjcmlwdE9iamVjdCwgImV2YWx1YXRlIik7CiAg
ICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoZXhwcmVzc2lvbik7CiAgICAgZnVuY3Rpb24uYXBw
ZW5kQXJndW1lbnQob2JqZWN0R3JvdXApOwogICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGlu
Y2x1ZGVDb21tYW5kTGluZUFQSSk7Ci0gICAgbWFrZU9iamVjdENhbGwoZXJyb3JTdHJpbmcsIGZ1
bmN0aW9uLCByZXN1bHQpOworICAgIG1ha2VFdmFsQ2FsbChlcnJvclN0cmluZywgZnVuY3Rpb24s
IHJlc3VsdCwgd2FzVGhyb3duKTsKIH0KIAotdm9pZCBJbmplY3RlZFNjcmlwdDo6ZXZhbHVhdGVP
bihFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGNvbnN0
IFN0cmluZyYgZXhwcmVzc2lvbiwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCkKK3Zv
aWQgSW5qZWN0ZWRTY3JpcHQ6OmV2YWx1YXRlT24oRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBj
b25zdCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIFJlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+KiByZXN1bHQsIGJvb2wqIHdhc1Rocm93bikKIHsKICAgICBTY3JpcHRG
dW5jdGlvbkNhbGwgZnVuY3Rpb24obV9pbmplY3RlZFNjcmlwdE9iamVjdCwgImV2YWx1YXRlT24i
KTsKICAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChvYmplY3RJZCk7CiAgICAgZnVuY3Rpb24u
YXBwZW5kQXJndW1lbnQoZXhwcmVzc2lvbik7Ci0gICAgbWFrZU9iamVjdENhbGwoZXJyb3JTdHJp
bmcsIGZ1bmN0aW9uLCByZXN1bHQpOworICAgIG1ha2VFdmFsQ2FsbChlcnJvclN0cmluZywgZnVu
Y3Rpb24sIHJlc3VsdCwgd2FzVGhyb3duKTsKIH0KIAotdm9pZCBJbmplY3RlZFNjcmlwdDo6ZXZh
bHVhdGVPbkNhbGxGcmFtZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFNjcmlwdFZh
bHVlJiBjYWxsRnJhbWVzLCBjb25zdCBTdHJpbmcmIGNhbGxGcmFtZUlkLCBjb25zdCBTdHJpbmcm
IGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyYgb2JqZWN0R3JvdXAsIGJvb2wgaW5jbHVkZUNvbW1h
bmRMaW5lQVBJLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0KQordm9pZCBJbmplY3Rl
ZFNjcmlwdDo6ZXZhbHVhdGVPbkNhbGxGcmFtZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNv
bnN0IFNjcmlwdFZhbHVlJiBjYWxsRnJhbWVzLCBjb25zdCBTdHJpbmcmIGNhbGxGcmFtZUlkLCBj
b25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyYgb2JqZWN0R3JvdXAsIGJvb2wg
aW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0LCBi
b29sKiB3YXNUaHJvd24pCiB7CiAgICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKG1faW5q
ZWN0ZWRTY3JpcHRPYmplY3QsICJldmFsdWF0ZU9uQ2FsbEZyYW1lIik7CiAgICAgZnVuY3Rpb24u
YXBwZW5kQXJndW1lbnQoY2FsbEZyYW1lcyk7CkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgSW5qZWN0
ZWRTY3JpcHQ6OmV2YWx1YXRlT25DYWxsRnJhbWUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBj
b25zdCBTY3JpcHRWCiAgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoZXhwcmVzc2lvbik7CiAg
ICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQob2JqZWN0R3JvdXApOwogICAgIGZ1bmN0aW9uLmFw
cGVuZEFyZ3VtZW50KGluY2x1ZGVDb21tYW5kTGluZUFQSSk7Ci0gICAgbWFrZU9iamVjdENhbGwo
ZXJyb3JTdHJpbmcsIGZ1bmN0aW9uLCByZXN1bHQpOworICAgIG1ha2VFdmFsQ2FsbChlcnJvclN0
cmluZywgZnVuY3Rpb24sIHJlc3VsdCwgd2FzVGhyb3duKTsKIH0KIAogdm9pZCBJbmplY3RlZFNj
cmlwdDo6Z2V0UHJvcGVydGllcyhFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgb2JqZWN0SWQsIGJvb2wgaWdub3JlSGFzT3duUHJvcGVydHksIFJlZlB0cjxJbnNwZWN0b3JB
cnJheT4qIHByb3BlcnRpZXMpCkBAIC04OCw3ICs4OCw3IEBAIHZvaWQgSW5qZWN0ZWRTY3JpcHQ6
OmdldFByb3BlcnRpZXMoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIG9i
amVjCiAgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQob2JqZWN0SWQpOwogICAgIGZ1bmN0aW9u
LmFwcGVuZEFyZ3VtZW50KGlnbm9yZUhhc093blByb3BlcnR5KTsKIAotICAgIFJlZlB0cjxJbnNw
ZWN0b3JWYWx1ZT4gcmVzdWx0OyAKKyAgICBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IHJlc3VsdDsK
ICAgICBtYWtlQ2FsbChmdW5jdGlvbiwgJnJlc3VsdCk7CiAgICAgaWYgKCFyZXN1bHQgfHwgcmVz
dWx0LT50eXBlKCkgIT0gSW5zcGVjdG9yVmFsdWU6OlR5cGVBcnJheSkgewogICAgICAgICAqZXJy
b3JTdHJpbmcgPSAiSW50ZXJuYWwgZXJyb3IiOwpAQCAtMjA2LDIwICsyMDYsMzEgQEAgdm9pZCBJ
bmplY3RlZFNjcmlwdDo6bWFrZUNhbGwoU2NyaXB0RnVuY3Rpb25DYWxsJiBmdW5jdGlvbiwgUmVm
UHRyPEluc3BlY3RvclZhbHUKICAgICAgICAgKnJlc3VsdCA9IEluc3BlY3RvclN0cmluZzo6Y3Jl
YXRlKCJFeGNlcHRpb24gd2hpbGUgbWFraW5nIGEgY2FsbC4iKTsKIH0KIAotdm9pZCBJbmplY3Rl
ZFNjcmlwdDo6bWFrZU9iamVjdENhbGwoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBTY3JpcHRG
dW5jdGlvbkNhbGwmIGZ1bmN0aW9uLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0Piogb2JqZWN0UmVz
dWx0KQordm9pZCBJbmplY3RlZFNjcmlwdDo6bWFrZUV2YWxDYWxsKEVycm9yU3RyaW5nKiBlcnJv
clN0cmluZywgU2NyaXB0RnVuY3Rpb25DYWxsJiBmdW5jdGlvbiwgUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4qIG9iamVjdFJlc3VsdCwgYm9vbCogd2FzVGhyb3duKQogewogICAgIFJlZlB0cjxJbnNw
ZWN0b3JWYWx1ZT4gcmVzdWx0OwogICAgIG1ha2VDYWxsKGZ1bmN0aW9uLCAmcmVzdWx0KTsKLSAg
ICBpZiAocmVzdWx0ICYmIHJlc3VsdC0+dHlwZSgpID09IEluc3BlY3RvclZhbHVlOjpUeXBlU3Ry
aW5nKSB7CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgKmVycm9yU3RyaW5nID0gIkludGVy
bmFsIGVycm9yIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAocmVzdWx0LT50eXBl
KCkgPT0gSW5zcGVjdG9yVmFsdWU6OlR5cGVTdHJpbmcpIHsKICAgICAgICAgcmVzdWx0LT5hc1N0
cmluZyhlcnJvclN0cmluZyk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0KLSAgICBpZiAoIXJl
c3VsdCB8fCByZXN1bHQtPnR5cGUoKSAhPSBJbnNwZWN0b3JWYWx1ZTo6VHlwZU9iamVjdCkgewor
ICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlc3VsdFBhaXIgPSByZXN1bHQtPmFzT2JqZWN0
KCk7CisgICAgaWYgKCFyZXN1bHRQYWlyKSB7CisgICAgICAgICplcnJvclN0cmluZyA9ICJJbnRl
cm5hbCBlcnJvciI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gcmVzdWx0T2JqID0gcmVzdWx0UGFpci0+Z2V0T2JqZWN0KCJyZXN1bHQiKTsKKyAg
ICBib29sIHdhc1Rocm93blZhbDsKKyAgICBpZiAoIXJlc3VsdE9iaiB8fCAhcmVzdWx0UGFpci0+
Z2V0Qm9vbGVhbigid2FzVGhyb3duIiwgJndhc1Rocm93blZhbCkpIHsKICAgICAgICAgKmVycm9y
U3RyaW5nID0gIkludGVybmFsIGVycm9yIjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICAq
b2JqZWN0UmVzdWx0ID0gcmVzdWx0LT5hc09iamVjdCgpOworICAgICpvYmplY3RSZXN1bHQgPSBy
ZXN1bHRPYmo7CisgICAgKndhc1Rocm93biA9IHdhc1Rocm93blZhbDsKIH0KIAogU2NyaXB0VmFs
dWUgSW5qZWN0ZWRTY3JpcHQ6Om5vZGVBc1NjcmlwdFZhbHVlKE5vZGUqIG5vZGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oCmluZGV4IDRkODcwMzVlZDkxYjY3OGYy
NzY5YTY4ZWVhNWI4ODNhMzFkYTBlMWEuLmE5NjcwNTM1ZTRiYTgwZWEzMGM3NzU0ZjUwYWI5ZTYz
ZjY4ODM3NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNj
cmlwdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CkBAIC01NSw5ICs1NSw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzTm9WYWx1ZSgpIGNvbnN0
IHsgcmV0dXJuIG1faW5qZWN0ZWRTY3JpcHRPYmplY3QuaGFzTm9WYWx1ZSgpOyB9CiAKLSAgICB2
b2lkIGV2YWx1YXRlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25z
dCBTdHJpbmcmIG9iamVjdEdyb3VwLCBib29sIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCk7Ci0gICAgdm9pZCBldmFsdWF0ZU9uKEVycm9yU3Ry
aW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0KTsKLSAgICB2b2lkIGV2YWx1YXRlT25DYWxs
RnJhbWUoRXJyb3JTdHJpbmcqLCBjb25zdCBTY3JpcHRWYWx1ZSYgY2FsbEZyYW1lcywgY29uc3Qg
U3RyaW5nJiBjYWxsRnJhbWVJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJp
bmcmIG9iamVjdEdyb3VwLCBib29sIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4qIHJlc3VsdCk7CisgICAgdm9pZCBldmFsdWF0ZShFcnJvclN0cmluZyosIGNv
bnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCwgYm9vbCBp
bmNsdWRlQ29tbWFuZExpbmVBUEksIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQsIGJv
b2wqIHdhc1Rocm93bik7CisgICAgdm9pZCBldmFsdWF0ZU9uKEVycm9yU3RyaW5nKiwgY29uc3Qg
U3RyaW5nJiBvYmplY3RJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiogcmVzdWx0LCBib29sKiB3YXNUaHJvd24pOworICAgIHZvaWQgZXZhbHVhdGVP
bkNhbGxGcmFtZShFcnJvclN0cmluZyosIGNvbnN0IFNjcmlwdFZhbHVlJiBjYWxsRnJhbWVzLCBj
b25zdCBTdHJpbmcmIGNhbGxGcmFtZUlkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0
IFN0cmluZyYgb2JqZWN0R3JvdXAsIGJvb2wgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0LCBib29sKiB3YXNUaHJvd24pOwogICAgIHZvaWQgZ2V0
UHJvcGVydGllcyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGJvb2wgaWdu
b3JlSGFzT3duUHJvcGVydHksIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIHJlc3VsdCk7CiAgICAg
Tm9kZSogbm9kZUZvck9iamVjdElkKGNvbnN0IFN0cmluZyYgb2JqZWN0SWQpOwogICAgIHZvaWQg
c2V0UHJvcGVydHlWYWx1ZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGNv
bnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24pOwpAQCAt
ODAsNyArODAsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBjYW5BY2Nlc3NJbnNwZWN0ZWRXaW5k
b3coKTsKICAgICB2b2lkIG1ha2VDYWxsKFNjcmlwdEZ1bmN0aW9uQ2FsbCYsIFJlZlB0cjxJbnNw
ZWN0b3JWYWx1ZT4qIHJlc3VsdCk7Ci0gICAgdm9pZCBtYWtlT2JqZWN0Q2FsbChFcnJvclN0cmlu
ZyosIFNjcmlwdEZ1bmN0aW9uQ2FsbCYsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQp
OworICAgIHZvaWQgbWFrZUV2YWxDYWxsKEVycm9yU3RyaW5nKiwgU2NyaXB0RnVuY3Rpb25DYWxs
JiwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCwgYm9vbCogd2FzVGhyb3duKTsKICAg
ICBTY3JpcHRWYWx1ZSBub2RlQXNTY3JpcHRWYWx1ZShOb2RlKik7CiAKICAgICBTY3JpcHRPYmpl
Y3QgbV9pbmplY3RlZFNjcmlwdE9iamVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwppbmRleCBmNmZlMWJhNzQxZTQ0OTE0YjMzMjMxMTQw
MDA2ZWJiN2UxZjZmNzU5Li43N2I1ZDk3NTZkNzQ1ZDZmMjkxMmIwYjMxODE5MGUwMDcxMWZjNWEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3Vy
Y2UuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNl
LmpzCkBAIC05MCwxMyArOTAsMTQgQEAgSW5qZWN0ZWRTY3JpcHQucHJvdG90eXBlID0gewogICAg
ICAgICByZXR1cm4gb2JqZWN0OwogICAgIH0sCiAKKyAgICAvLyBUaGlzIG1ldGhvZCBjYW5ub3Qg
dGhyb3cuCiAgICAgX3dyYXBPYmplY3Q6IGZ1bmN0aW9uKG9iamVjdCwgb2JqZWN0R3JvdXBOYW1l
KQogICAgIHsKICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgIGlmICh0eXBlb2Ygb2JqZWN0ID09
PSAib2JqZWN0IiB8fCB0eXBlb2Ygb2JqZWN0ID09PSAiZnVuY3Rpb24iIHx8IHRoaXMuX2lzSFRN
TEFsbENvbGxlY3Rpb24ob2JqZWN0KSkgewogICAgICAgICAgICAgICAgIHZhciBpZCA9IHRoaXMu
X2xhc3RCb3VuZE9iamVjdElkKys7CiAgICAgICAgICAgICAgICAgdGhpcy5faWRUb1dyYXBwZWRP
YmplY3RbaWRdID0gb2JqZWN0OwotICAgICAgICAgICAgICAgIHZhciBvYmplY3RJZCA9ICJ7XCJp
bmplY3RlZFNjcmlwdElkXCI6IiArIGluamVjdGVkU2NyaXB0SWQgKyAiLFwiaWRcIjoiICsgaWQg
KyAifSI7ICAgIAorICAgICAgICAgICAgICAgIHZhciBvYmplY3RJZCA9ICJ7XCJpbmplY3RlZFNj
cmlwdElkXCI6IiArIGluamVjdGVkU2NyaXB0SWQgKyAiLFwiaWRcIjoiICsgaWQgKyAifSI7CiAg
ICAgICAgICAgICAgICAgaWYgKG9iamVjdEdyb3VwTmFtZSkgewogICAgICAgICAgICAgICAgICAg
ICB2YXIgZ3JvdXAgPSB0aGlzLl9vYmplY3RHcm91cHNbb2JqZWN0R3JvdXBOYW1lXTsKICAgICAg
ICAgICAgICAgICAgICAgaWYgKCFncm91cCkgewpAQCAtMTA5LDcgKzExMCw3IEBAIEluamVjdGVk
U2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybiBJ
bmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3QuZnJvbU9iamVjdChvYmplY3QsIG9iamVjdElkKTsK
ICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgcmV0dXJuIEluamVjdGVkU2NyaXB0
LlJlbW90ZU9iamVjdC5mcm9tT2JqZWN0KCJbIEV4Y2VwdGlvbjogIiArIGUudG9TdHJpbmcoKSAr
ICIgXSIpOworICAgICAgICAgICAgcmV0dXJuIEluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdC5m
cm9tRXhjZXB0aW9uKGUpOwogICAgICAgICB9CiAgICAgfSwKIApAQCAtMTUyLDIzICsxNTMsMjUg
QEAgSW5qZWN0ZWRTY3JpcHQucHJvdG90eXBlID0gewogICAgICAgICB2YXIgcHJvcGVydHlOYW1l
cyA9IGlnbm9yZUhhc093blByb3BlcnR5ID8gdGhpcy5fZ2V0UHJvcGVydHlOYW1lcyhvYmplY3Qp
IDogT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KTsKICAgICAgICAgaWYgKCFpZ25v
cmVIYXNPd25Qcm9wZXJ0eSAmJiBvYmplY3QuX19wcm90b19fKQogICAgICAgICAgICAgcHJvcGVy
dHlOYW1lcy5wdXNoKCJfX3Byb3RvX18iKTsKLSAgICAKKwogICAgICAgICAvLyBHbyBvdmVyIHBy
b3BlcnRpZXMsIHByZXBhcmUgcmVzdWx0cy4KICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBw
cm9wZXJ0eU5hbWVzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIgcHJvcGVydHlOYW1l
ID0gcHJvcGVydHlOYW1lc1tpXTsKLSAgICAKKwogICAgICAgICAgICAgdmFyIHByb3BlcnR5ID0g
e307CiAgICAgICAgICAgICBwcm9wZXJ0eS5uYW1lID0gcHJvcGVydHlOYW1lICsgIiI7CiAgICAg
ICAgICAgICB2YXIgaXNHZXR0ZXIgPSBvYmplY3RbIl9fbG9va3VwR2V0dGVyX18iXSAmJiBvYmpl
Y3QuX19sb29rdXBHZXR0ZXJfXyhwcm9wZXJ0eU5hbWUpOwogICAgICAgICAgICAgaWYgKCFpc0dl
dHRlcikgewogICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgIHByb3Bl
cnR5LnZhbHVlID0gdGhpcy5fd3JhcE9iamVjdChvYmplY3RbcHJvcGVydHlOYW1lXSwgb2JqZWN0
R3JvdXBOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gb2JqZWN0W3Byb3Bl
cnR5TmFtZV07CisgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5LnZhbHVlID0gdGhpcy5fd3Jh
cE9iamVjdCh2YWx1ZSwgb2JqZWN0R3JvdXBOYW1lKTsKICAgICAgICAgICAgICAgICB9IGNhdGNo
KGUpIHsKLSAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkudmFsdWUgPSBuZXcgSW5qZWN0ZWRT
Y3JpcHQuUmVtb3RlT2JqZWN0LmZyb21FeGNlcHRpb24oZSk7CisgICAgICAgICAgICAgICAgICAg
IHByb3BlcnR5LnZhbHVlID0gSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0LmZyb21FeGNlcHRp
b24oZSk7CisgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5LnZhbHVlV2FzVGhyb3duID0gdHJ1
ZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
ICAgIC8vIEZJWE1FOiB0aGlzIHNob3VsZCBzaG93IHNvbWV0aGluZyBsaWtlICJnZXR0ZXIiIChi
dWcgMTY3MzQpLgotICAgICAgICAgICAgICAgIHByb3BlcnR5LnZhbHVlID0gbmV3IEluamVjdGVk
U2NyaXB0LlJlbW90ZU9iamVjdC5mcm9tT2JqZWN0KCJcdTIwMTQiKTsgLy8gZW0gZGFzaAorICAg
ICAgICAgICAgICAgIHByb3BlcnR5LnZhbHVlID0gSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0
LmZyb21PYmplY3QoIlx1MjAxNCIpOyAvLyBlbSBkYXNoCiAgICAgICAgICAgICAgICAgcHJvcGVy
dHkuaXNHZXR0ZXIgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcHJvcGVydGll
cy5wdXNoKHByb3BlcnR5KTsKQEAgLTE4MiwxNyArMTg1LDE3IEBAIEluamVjdGVkU2NyaXB0LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgdmFyIG9iamVjdCA9IHRoaXMuX29iamVjdEZvcklkKHBhcnNl
ZE9iamVjdElkKTsKICAgICAgICAgaWYgKCF0aGlzLl9pc0RlZmluZWQob2JqZWN0KSkKICAgICAg
ICAgICAgIHJldHVybiAiT2JqZWN0IHdpdGggZ2l2ZW4gaWQgbm90IGZvdW5kIjsKLSAgICAKKwog
ICAgICAgICB2YXIgZXhwcmVzc2lvbkxlbmd0aCA9IGV4cHJlc3Npb24ubGVuZ3RoOwogICAgICAg
ICBpZiAoIWV4cHJlc3Npb25MZW5ndGgpIHsKICAgICAgICAgICAgIGRlbGV0ZSBvYmplY3RbcHJv
cGVydHlOYW1lXTsKICAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0eU5hbWUgaW4gb2JqZWN0ID8g
IkNvdW5kIG5vdCBkZWxldGUgcHJvcGVydHkuIiA6IHVuZGVmaW5lZDsKICAgICAgICAgfQotICAg
IAorCiAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAvLyBTdXJyb3VuZCB0aGUgZXhwcmVzc2lv
biBpbiBwYXJlbnRoZXNpcyBzbyB0aGUgcmVzdWx0IG9mIHRoZSBldmFsIGlzIHRoZSByZXN1bHQK
ICAgICAgICAgICAgIC8vIG9mIHRoZSB3aG9sZSBleHByZXNzaW9uIG5vdCB0aGUgbGFzdCBwb3Rl
bnRpYWwgc3ViLWV4cHJlc3Npb24uCi0gICAgCisKICAgICAgICAgICAgIC8vIFRoZXJlIGlzIGEg
cmVncmVzc2lvbiBpbnRyb2R1Y2VkIGhlcmU6IGV2YWwgaXMgbm93IGhhcHBlbmluZyBhZ2FpbnN0
IGdsb2JhbCBvYmplY3QsCiAgICAgICAgICAgICAvLyBub3QgY2FsbCBmcmFtZSB3aGlsZSBvbiBh
IGJyZWFrcG9pbnQuCiAgICAgICAgICAgICAvLyBUT0RPOiBicmluZyBldmFsdWF0aW9uIGFnYWlu
c3QgY2FsbCBmcmFtZSBiYWNrLgpAQCAtMjYyLDkgKzI2NSwxMSBAQCBJbmplY3RlZFNjcmlwdC5w
cm90b3R5cGUgPSB7CiAgICAgX2V2YWx1YXRlQW5kV3JhcDogZnVuY3Rpb24oZXZhbEZ1bmN0aW9u
LCBvYmplY3QsIGV4cHJlc3Npb24sIG9iamVjdEdyb3VwLCBpc0V2YWxPbkNhbGxGcmFtZSwgaW5q
ZWN0Q29tbWFuZExpbmVBUEkpCiAgICAgewogICAgICAgICB0cnkgewotICAgICAgICAgICAgcmV0
dXJuIHRoaXMuX3dyYXBPYmplY3QodGhpcy5fZXZhbHVhdGVPbihldmFsRnVuY3Rpb24sIG9iamVj
dCwgZXhwcmVzc2lvbiwgaXNFdmFsT25DYWxsRnJhbWUsIGluamVjdENvbW1hbmRMaW5lQVBJKSwg
b2JqZWN0R3JvdXApOworICAgICAgICAgICAgcmV0dXJuIHsgd2FzVGhyb3duOiBmYWxzZSwKKyAg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdDogdGhpcy5fd3JhcE9iamVjdCh0aGlzLl9ldmFsdWF0
ZU9uKGV2YWxGdW5jdGlvbiwgb2JqZWN0LCBleHByZXNzaW9uLCBpc0V2YWxPbkNhbGxGcmFtZSwg
aW5qZWN0Q29tbWFuZExpbmVBUEkpLCBvYmplY3RHcm91cCkgfTsKICAgICAgICAgfSBjYXRjaCAo
ZSkgewotICAgICAgICAgICAgcmV0dXJuIEluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdC5mcm9t
RXhjZXB0aW9uKGUpOworICAgICAgICAgICAgcmV0dXJuIHsgd2FzVGhyb3duOiB0cnVlLAorICAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0OiB0aGlzLl93cmFwT2JqZWN0KGUsIG9iamVjdEdyb3Vw
KSB9OwogICAgICAgICB9CiAgICAgfSwKIApAQCAtMjc5LDE0ICsyODQsNyBAQCBJbmplY3RlZFNj
cmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgaW5zcGVjdGVkV2luZG93LmNvbnNv
bGUuX2NvbW1hbmRMaW5lQVBJID0gbmV3IENvbW1hbmRMaW5lQVBJKHRoaXMuX2NvbW1hbmRMaW5l
QVBJSW1wbCwgaXNFdmFsT25DYWxsRnJhbWUgPyBvYmplY3QgOiBudWxsKTsKICAgICAgICAgICAg
ICAgICBleHByZXNzaW9uID0gIndpdGggKCh3aW5kb3cgJiYgd2luZG93LmNvbnNvbGUgJiYgd2lu
ZG93LmNvbnNvbGUuX2NvbW1hbmRMaW5lQVBJKSB8fCB7fSkge1xuIiArIGV4cHJlc3Npb24gKyAi
XG59IjsKICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmFyIHZhbHVlID0gZXZhbEZ1bmN0
aW9uLmNhbGwob2JqZWN0LCBleHByZXNzaW9uKTsKLQotICAgICAgICAgICAgLy8gV2hlbiBldmFs
dWF0aW5nIG9uIGNhbGwgZnJhbWUgZXJyb3IgaXMgbm90IHRocm93biwgYnV0IHJldHVybmVkIGFz
IGEgdmFsdWUuCi0gICAgICAgICAgICBpZiAodGhpcy5fdHlwZSh2YWx1ZSkgPT09ICJlcnJvciIp
Ci0gICAgICAgICAgICAgICAgdGhyb3cgdmFsdWUudG9TdHJpbmcoKTsKLQotICAgICAgICAgICAg
cmV0dXJuIHZhbHVlOworICAgICAgICAgICAgcmV0dXJuIGV2YWxGdW5jdGlvbi5jYWxsKG9iamVj
dCwgZXhwcmVzc2lvbik7CiAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICBpZiAoaW5q
ZWN0Q29tbWFuZExpbmVBUEkgJiYgaW5zcGVjdGVkV2luZG93LmNvbnNvbGUpCiAgICAgICAgICAg
ICAgICAgZGVsZXRlIGluc3BlY3RlZFdpbmRvdy5jb25zb2xlLl9jb21tYW5kTGluZUFQSTsKQEAg
LTI5Nyw3ICsyOTUsNyBAQCBJbmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgewogICAg
ICAgICBpZiAoIWNhbGxGcmFtZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKKwog
ICAgICAgICB2YXIgcmVzdWx0ID0gW107CiAgICAgICAgIHZhciBkZXB0aCA9IDA7CiAgICAgICAg
IGRvIHsKQEAgLTM5NSw4ICszOTMsNiBAQCBJbmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICByZXR1cm4gImFycmF5IjsKICAgICAgICAgaWYgKG9iaiBpbnN0YW5jZW9mIGlu
c3BlY3RlZFdpbmRvdy5IVE1MQ29sbGVjdGlvbikKICAgICAgICAgICAgIHJldHVybiAiYXJyYXki
OwotICAgICAgICBpZiAob2JqIGluc3RhbmNlb2YgaW5zcGVjdGVkV2luZG93LkVycm9yKQotICAg
ICAgICAgICAgcmV0dXJuICJlcnJvciI7CiAgICAgICAgIHJldHVybiB0eXBlOwogICAgIH0sCiAK
QEAgLTQ1NywyMSArNDUzLDE4IEBAIEluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdC5mcm9tRXhj
ZXB0aW9uID0gZnVuY3Rpb24oZSkKICAgICB9IGNhdGNoIChleCkgewogICAgICAgICB2YXIgZGVz
Y3JpcHRpb24gPSAiPGZhaWxlZCB0byBjb252ZXJ0IGV4Y2VwdGlvbiB0byBzdHJpbmc+IjsKICAg
ICB9Ci0gICAgcmV0dXJuIG5ldyBJbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3QobnVsbCwgImVy
cm9yIiwgZGVzY3JpcHRpb24pOworICAgIHJldHVybiBuZXcgSW5qZWN0ZWRTY3JpcHQuUmVtb3Rl
T2JqZWN0KG51bGwsICJzdHJpbmciLCAiWyBFeGNlcHRpb246ICIgKyBkZXNjcmlwdGlvbiArICIg
XSIpOwogfQogCisvLyBUaGlzIG1ldGhvZCBtYXkgdGhyb3cKIEluamVjdGVkU2NyaXB0LlJlbW90
ZU9iamVjdC5mcm9tT2JqZWN0ID0gZnVuY3Rpb24ob2JqZWN0LCBvYmplY3RJZCkKIHsKICAgICB2
YXIgdHlwZSA9IGluamVjdGVkU2NyaXB0Ll90eXBlKG9iamVjdCk7CiAgICAgdmFyIHJhd1R5cGUg
PSB0eXBlb2Ygb2JqZWN0OwogICAgIHZhciBoYXNDaGlsZHJlbiA9IChyYXdUeXBlID09PSAib2Jq
ZWN0IiAmJiBvYmplY3QgIT09IG51bGwgJiYgKCEhT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMo
b2JqZWN0KS5sZW5ndGggfHwgISFvYmplY3QuX19wcm90b19fKSkgfHwgcmF3VHlwZSA9PT0gImZ1
bmN0aW9uIjsKICAgICB2YXIgZGVzY3JpcHRpb24gPSAiIjsKLSAgICB0cnkgewotICAgICAgICB2
YXIgZGVzY3JpcHRpb24gPSBpbmplY3RlZFNjcmlwdC5fZGVzY3JpYmUob2JqZWN0KTsKLSAgICAg
ICAgcmV0dXJuIG5ldyBJbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3Qob2JqZWN0SWQsIHR5cGUs
IGRlc2NyaXB0aW9uLCBoYXNDaGlsZHJlbik7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgICBy
ZXR1cm4gSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0LmZyb21FeGNlcHRpb24oZSk7Ci0gICAg
fQorICAgIHZhciBkZXNjcmlwdGlvbiA9IGluamVjdGVkU2NyaXB0Ll9kZXNjcmliZShvYmplY3Qp
OworICAgIHJldHVybiBuZXcgSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0KG9iamVjdElkLCB0
eXBlLCBkZXNjcmlwdGlvbiwgaGFzQ2hpbGRyZW4pOwogfQogCiBJbmplY3RlZFNjcmlwdC5DYWxs
RnJhbWVQcm94eSA9IGZ1bmN0aW9uKG9yZGluYWwsIGNhbGxGcmFtZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCBjNjBiMmE2MWY2NDdiY2RhNjEzYjg3ZDQ0ZDFm
MTc1MmQyMjZiZWY1Li4xNDBhZDdlZTRhN2Q0M2Q5OGU1NmE4MGE0OWZhNDRjYjg2MzFjYWMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0yMDEsNyArMjAxLDcg
QEAKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkZXNjcmlwdGlvbiIsICJ0eXBlIjog
InN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9i
amVjdC4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFzQ2hpbGRyZW4iLCAi
dHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRydWUg
d2hlbiB0aGlzIG9iamVjdCBjYW4gYmUgcXVlcmllZCBmb3IgY2hpbGRyZW4uIiB9LAogICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogIm9iamVjdElkIiwgInR5cGUiOiAic3RyaW5nIiwgIm9w
dGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlVuaXF1ZSBvYmplY3QgaWRlbnRpZmllciAo
Zm9yIG5vbi1wcmltaXRpdmUgdmFsdWVzKS4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAidHlwZSIsICJ0eXBlIjogInN0cmluZyIsICJlbnVtIjogWyJvYmplY3QiLCAiYXJyYXki
LCAiZnVuY3Rpb24iLCAibnVsbCIsICJub2RlIiwgInVuZGVmaW5lZCIsICJzdHJpbmciLCAibnVt
YmVyIiwgImJvb2xlYW4iLCAiZXJyb3IiLCAicmVnZXhwIiwgImRhdGUiXSwgImRlc2NyaXB0aW9u
IjogIk9iamVjdCB0eXBlLiIgfQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInR5cGUi
LCAidHlwZSI6ICJzdHJpbmciLCAiZW51bSI6IFsib2JqZWN0IiwgImFycmF5IiwgImZ1bmN0aW9u
IiwgIm51bGwiLCAibm9kZSIsICJ1bmRlZmluZWQiLCAic3RyaW5nIiwgIm51bWJlciIsICJib29s
ZWFuIiwgInJlZ2V4cCIsICJkYXRlIl0sICJkZXNjcmlwdGlvbiI6ICJPYmplY3QgdHlwZS4iIH0K
ICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgewpAQCAtMjEx
LDYgKzIxMSw3IEBACiAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAibmFtZSIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlv
biI6ICJQcm9wZXJ0eSBuYW1lLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ2
YWx1ZSIsICIkcmVmIjogIlJlbW90ZU9iamVjdCIsICJkZXNjcmlwdGlvbiI6ICJQcm9wZXJ0eSB2
YWx1ZS4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidmFsdWVXYXNUaHJvd24i
LCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRy
dWUgaWYgZXhjZXB0aW9uIHdhcyB0aHJvd24gb24gYXR0ZW1wdCB0byBnZXQgdGhlIHByb3BlcnR5
IHZhbHVlLCBpbiB0aGF0IGNhc2UgdGhlIHZhbHVlIHByb3Blcnkgd2lsbCBjb250YWluIHRocm93
biB2YWx1ZS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXNHZXR0ZXIiLCAi
dHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRydWUg
aWYgdGhpcyBwcm9wZXJ0eSBpcyBnZXR0ZXIuIiB9CiAgICAgICAgICAgICAgICAgXQogICAgICAg
ICAgICAgfQpAQCAtMjI0LDcgKzIyNSw4IEBACiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiaW5jbHVkZUNvbW1hbmRMaW5lQVBJIiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6
IHRydWUsICJkZXNjcmlwdGlvbiI6ICJEZXRlcm1pbmVzIHdoZXRoZXIgQ29tbWFuZCBMaW5lIEFQ
SSBzaG91bGQgYmUgYXZhaWxhYmxlIGR1cmluZyB0aGUgZXZhbHVhdGlvbi4iIH0KICAgICAgICAg
ICAgICAgICBdLAogICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInJlc3VsdCIsICIkcmVmIjogIlJlbW90ZU9iamVjdCIsICJkZXNjcmlw
dGlvbiI6ICJFdmFsdWF0aW9uIHJlc3VsdC4iIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJyZXN1bHQiLCAiJHJlZiI6ICJSZW1vdGVPYmplY3QiLCAiZGVzY3JpcHRpb24iOiAiRXZh
bHVhdGlvbiByZXN1bHQuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIndhc1Ro
cm93biIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiVHJ1ZSBpZmYgdGhlIHJl
c3VsdCB3YXMgdGhyb3duIGR1cmluZyB0aGUgZXZhbHVhdGlvbi4iIH0KICAgICAgICAgICAgICAg
ICBdLAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJFdmFsdWF0ZSBleHByZXNzaW9u
IG9uIGdsb2JhbCBvYmplY3QuIgogICAgICAgICAgICAgfSwKQEAgLTIzNSw3ICsyMzcsOCBAQAog
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImV4cHJlc3Npb24iLCAidHlwZSI6ICJzdHJp
bmciLCAiZGVzY3JpcHRpb24iOiAiRXhwcmVzc2lvbiB0byBldmFsdWF0ZS4iIH0KICAgICAgICAg
ICAgICAgICBdLAogICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInJlc3VsdCIsICIkcmVmIjogIlJlbW90ZU9iamVjdCIsICJkZXNjcmlw
dGlvbiI6ICJFdmFsdWF0aW9uIHJlc3VsdC4iIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJyZXN1bHQiLCAiJHJlZiI6ICJSZW1vdGVPYmplY3QiLCAiZGVzY3JpcHRpb24iOiAiRXZh
bHVhdGlvbiByZXN1bHQuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIndhc1Ro
cm93biIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiVHJ1ZSBpZmYgdGhlIHJl
c3VsdCB3YXMgdGhyb3duIGR1cmluZyB0aGUgZXZhbHVhdGlvbi4iIH0KICAgICAgICAgICAgICAg
ICBdLAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJFdmFsdWF0ZSBleHByZXNzaW9u
IG9uIGdpdmVuIG9iamVjdCB1c2luZyBpdCBhcyA8Y29kZT50aGlzPC9jb2RlPi4iCiAgICAgICAg
ICAgICB9LApAQCAtMTQ0OSw3ICsxNDUyLDggQEAKICAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJpbmNsdWRlQ29tbWFuZExpbmVBUEkiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFs
IjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlNwZWNpZmllcyB3aGV0aGVyIGNvbW1hbmQgbGluZSBB
UEkgc2hvdWxkIGJlIGF2YWlsYWJsZSB0byB0aGUgZXZhbHVhdGVkIGV4cHJlc3Npb24sIGRlZmF1
bHRzIHRvIGZhbHNlLiIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgInJl
dHVybnMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzdWx0IiwgIiRyZWYi
OiAiUnVudGltZS5SZW1vdGVPYmplY3QiLCAiZGVzY3JpcHRpb24iOiAiT2JqZWN0IHdyYXBwZXIg
Zm9yIHRoZSBldmFsdWF0aW9uIHJlc3VsdC4iIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJyZXN1bHQiLCAiJHJlZiI6ICJSdW50aW1lLlJlbW90ZU9iamVjdCIsICJkZXNjcmlwdGlv
biI6ICJPYmplY3Qgd3JhcHBlciBmb3IgdGhlIGV2YWx1YXRpb24gcmVzdWx0LiIgfSwKKyAgICAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ3YXNUaHJvd24iLCAidHlwZSI6ICJib29sZWFuIiwg
ImRlc2NyaXB0aW9uIjogIlRydWUgaWZmIHRoZSByZXN1bHQgd2FzIHRocm93biBkdXJpbmcgdGhl
IGV2YWx1YXRpb24uIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiRXZhbHVhdGVzIGV4cHJlc3Npb24gb24gYSBnaXZlbiBjYWxsIGZyYW1lLiIK
ICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JEZWJ1Z2dlckFnZW50LmNwcAppbmRleCBhOGMyYWU2MjI1ZWJlZWNmZjZmNDI5ODdmNWViNzQ3
ZGEyMzQ5YjgwLi4yZGRjMTYyNjgwMThmYTU1ODc1Yzg5NjBlZjQyYjMwMGFhMzI1ZGEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQu
Y3BwCkBAIC0zNTIsMTEgKzM1MiwxNCBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNl
dFBhdXNlT25FeGNlcHRpb25zKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29ucwogICAgICAg
ICAqZXJyb3JTdHJpbmcgPSAiSW50ZXJuYWwgZXJyb3IuIENvdWxkIG5vdCBjaGFuZ2UgcGF1c2Ug
b24gZXhjZXB0aW9ucyBzdGF0ZSI7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6
ZXZhbHVhdGVPbkNhbGxGcmFtZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgY2FsbEZyYW1lSWQsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nKiBj
b25zdCBvYmplY3RHcm91cCwgY29uc3QgYm9vbCogY29uc3QgaW5jbHVkZUNvbW1hbmRMaW5lQVBJ
LCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0KQordm9pZCBJbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50OjpldmFsdWF0ZU9uQ2FsbEZyYW1lKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29u
c3QgU3RyaW5nJiBjYWxsRnJhbWVJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBT
dHJpbmcqIGNvbnN0IG9iamVjdEdyb3VwLCBjb25zdCBib29sKiBjb25zdCBpbmNsdWRlQ29tbWFu
ZExpbmVBUEksIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQsIGJvb2wqIHdhc1Rocm93
bikKIHsKICAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlwdEZvck9iamVjdElkKGNhbGxGcmFtZUlkKTsKLSAgICBp
ZiAoIWluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSkKLSAgICAgICAgaW5qZWN0ZWRTY3JpcHQu
ZXZhbHVhdGVPbkNhbGxGcmFtZShlcnJvclN0cmluZywgbV9jdXJyZW50Q2FsbFN0YWNrLCBjYWxs
RnJhbWVJZCwgZXhwcmVzc2lvbiwgb2JqZWN0R3JvdXAgPyAqb2JqZWN0R3JvdXAgOiAiIiwgaW5j
bHVkZUNvbW1hbmRMaW5lQVBJID8gKmluY2x1ZGVDb21tYW5kTGluZUFQSSA6IGZhbHNlLCByZXN1
bHQpOworICAgIGlmIChpbmplY3RlZFNjcmlwdC5oYXNOb1ZhbHVlKCkpIHsKKyAgICAgICAgKmVy
cm9yU3RyaW5nID0gIkluc3BlY3RlZCBmcmFtZSBoYXMgZ29uZSI7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisgICAgaW5qZWN0ZWRTY3JpcHQuZXZhbHVhdGVPbkNhbGxGcmFtZShlcnJvclN0cmlu
ZywgbV9jdXJyZW50Q2FsbFN0YWNrLCBjYWxsRnJhbWVJZCwgZXhwcmVzc2lvbiwgb2JqZWN0R3Jv
dXAgPyAqb2JqZWN0R3JvdXAgOiAiIiwgaW5jbHVkZUNvbW1hbmRMaW5lQVBJID8gKmluY2x1ZGVD
b21tYW5kTGluZUFQSSA6IGZhbHNlLCByZXN1bHQsIHdhc1Rocm93bik7CiB9CiAKIFBhc3NSZWZQ
dHI8SW5zcGVjdG9yQXJyYXk+IEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmN1cnJlbnRDYWxsRnJh
bWVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1
Z2dlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJB
Z2VudC5oCmluZGV4IGIzNzlkZGE5ZGM0ODVlY2UzMGM4YmIzYmQ2Zjg4ODIyNjdiMDQyNDYuLmI1
NGFkZWY3N2UzYzY0MzcxZjI0MGE0NzIyYzQzMDY4ZDZmZGQxNzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaApAQCAtOTcsNyArOTcs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGVwSW50byhFcnJvclN0cmluZyopOwogICAgIHZvaWQg
c3RlcE91dChFcnJvclN0cmluZyopOwogICAgIHZvaWQgc2V0UGF1c2VPbkV4Y2VwdGlvbnMoRXJy
b3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHBhdXNlU3RhdGUpOwotICAgIHZvaWQgZXZhbHVhdGVP
bkNhbGxGcmFtZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgY2FsbEZyYW1lSWQsIGNvbnN0
IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nKiBjb25zdCBvYmplY3RHcm91cCwgY29u
c3QgYm9vbCogY29uc3QgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiogcmVzdWx0KTsKKyAgICB2b2lkIGV2YWx1YXRlT25DYWxsRnJhbWUoRXJyb3JTdHJpbmcq
LCBjb25zdCBTdHJpbmcmIGNhbGxGcmFtZUlkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNv
bnN0IFN0cmluZyogY29uc3Qgb2JqZWN0R3JvdXAsIGNvbnN0IGJvb2wqIGNvbnN0IGluY2x1ZGVD
b21tYW5kTGluZUFQSSwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCwgYm9vbCogd2Fz
VGhyb3duKTsKIAogICAgIGNsYXNzIExpc3RlbmVyIHsKICAgICBwdWJsaWM6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCmluZGV4IGYx
MzkwNzFjNGMwNTg2Y2Y4MWU5YjY1YjliMGZkZTNhNzcyNmY1ZDYuLmVmNzIzZjYzOTk4MTE1ZGZh
YmRjNGVjMTJlYzNjY2NhOWVlOTE1NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCkBAIC00OSwyNSArNDksMzQgQEAgSW5zcGVj
dG9yUnVudGltZUFnZW50Ojp+SW5zcGVjdG9yUnVudGltZUFnZW50KCkKIHsKIH0KIAotdm9pZCBJ
bnNwZWN0b3JSdW50aW1lQWdlbnQ6OmV2YWx1YXRlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywg
Y29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcqIGNvbnN0IG9iamVjdEdyb3Vw
LCBjb25zdCBib29sKiBjb25zdCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+KiByZXN1bHQpCit2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6ZXZhbHVhdGUo
RXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0
IFN0cmluZyogY29uc3Qgb2JqZWN0R3JvdXAsIGNvbnN0IGJvb2wqIGNvbnN0IGluY2x1ZGVDb21t
YW5kTGluZUFQSSwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCwgYm9vbCogd2FzVGhy
b3duKQogewogICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNj
cmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0Rm9yKGdldERlZmF1bHRJbnNwZWN0ZWRTdGF0ZSgp
KTsKLSAgICBpZiAoIWluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSkKLSAgICAgICAgaW5qZWN0
ZWRTY3JpcHQuZXZhbHVhdGUoZXJyb3JTdHJpbmcsIGV4cHJlc3Npb24sIG9iamVjdEdyb3VwID8g
Km9iamVjdEdyb3VwIDogIiIsIGluY2x1ZGVDb21tYW5kTGluZUFQSSA/ICppbmNsdWRlQ29tbWFu
ZExpbmVBUEkgOiBmYWxzZSwgcmVzdWx0KTsKKyAgICBpZiAoaW5qZWN0ZWRTY3JpcHQuaGFzTm9W
YWx1ZSgpKSB7CisgICAgICAgICplcnJvclN0cmluZyA9ICJJbnNwZWN0ZWQgZnJhbWUgaGFzIGdv
bmUiOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGluamVjdGVkU2NyaXB0LmV2YWx1YXRl
KGVycm9yU3RyaW5nLCBleHByZXNzaW9uLCBvYmplY3RHcm91cCA/ICpvYmplY3RHcm91cCA6ICIi
LCBpbmNsdWRlQ29tbWFuZExpbmVBUEkgPyAqaW5jbHVkZUNvbW1hbmRMaW5lQVBJIDogZmFsc2Us
IHJlc3VsdCwgd2FzVGhyb3duKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmV2
YWx1YXRlT24oRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIG9iamVjdElk
LCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1
bHQpCit2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6ZXZhbHVhdGVPbihFcnJvclN0cmluZyog
ZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGNvbnN0IFN0cmluZyYgZXhwcmVz
c2lvbiwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCwgYm9vbCogd2FzVGhyb3duKQog
ewogICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1h
bmFnZXItPmluamVjdGVkU2NyaXB0Rm9yT2JqZWN0SWQob2JqZWN0SWQpOwotICAgIGlmICghaW5q
ZWN0ZWRTY3JpcHQuaGFzTm9WYWx1ZSgpKQotICAgICAgICBpbmplY3RlZFNjcmlwdC5ldmFsdWF0
ZU9uKGVycm9yU3RyaW5nLCBvYmplY3RJZCwgZXhwcmVzc2lvbiwgcmVzdWx0KTsKKyAgICBpZiAo
aW5qZWN0ZWRTY3JpcHQuaGFzTm9WYWx1ZSgpKSB7CisgICAgICAgICplcnJvclN0cmluZyA9ICJJ
bnNwZWN0ZWQgZnJhbWUgaGFzIGdvbmUiOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlu
amVjdGVkU2NyaXB0LmV2YWx1YXRlT24oZXJyb3JTdHJpbmcsIG9iamVjdElkLCBleHByZXNzaW9u
LCByZXN1bHQsIHdhc1Rocm93bik7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50Ojpn
ZXRQcm9wZXJ0aWVzKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBvYmpl
Y3RJZCwgYm9vbCBpZ25vcmVIYXNPd25Qcm9wZXJ0eSwgUmVmUHRyPEluc3BlY3RvckFycmF5Piog
cmVzdWx0KQogewogICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3Rl
ZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0Rm9yT2JqZWN0SWQob2JqZWN0SWQpOwotICAg
IGlmICghaW5qZWN0ZWRTY3JpcHQuaGFzTm9WYWx1ZSgpKQotICAgICAgICBpbmplY3RlZFNjcmlw
dC5nZXRQcm9wZXJ0aWVzKGVycm9yU3RyaW5nLCBvYmplY3RJZCwgaWdub3JlSGFzT3duUHJvcGVy
dHksIHJlc3VsdCk7CisgICAgaWYgKGluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSkgeworICAg
ICAgICAqZXJyb3JTdHJpbmcgPSAiSW5zcGVjdGVkIGZyYW1lIGhhcyBnb25lIjsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBpbmplY3RlZFNjcmlwdC5nZXRQcm9wZXJ0aWVzKGVycm9yU3Ry
aW5nLCBvYmplY3RJZCwgaWdub3JlSGFzT3duUHJvcGVydHksIHJlc3VsdCk7CiB9CiAKIHZvaWQg
SW5zcGVjdG9yUnVudGltZUFnZW50OjpzZXRQcm9wZXJ0eVZhbHVlKEVycm9yU3RyaW5nKiBlcnJv
clN0cmluZywgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5h
bWUsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaAppbmRleCA0MDY3MDdmYjRhMTU0NDEyYTBlMDBi
OGRhZTUzMGFiYjBjZGFkZDk0Li5kNTgwZTFkMWI3NDAyN2FiYTM3YjJjOTBkYThmMDE2N2NmNDEw
YzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGlt
ZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVB
Z2VudC5oCkBAIC01Miw4ICs1Miw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JS
dW50aW1lQWdlbnQoKTsKIAogICAgIC8vIFBhcnQgb2YgdGhlIHByb3RvY29sLgotICAgIHZvaWQg
ZXZhbHVhdGUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0
cmluZyogY29uc3Qgb2JqZWN0R3JvdXAsIGNvbnN0IGJvb2wqIGNvbnN0IGluY2x1ZGVDb21tYW5k
TGluZUFQSSwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCk7Ci0gICAgdm9pZCBldmFs
dWF0ZU9uKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgY29uc3QgU3RyaW5n
JiBleHByZXNzaW9uLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0KTsKKyAgICB2b2lk
IGV2YWx1YXRlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBT
dHJpbmcqIGNvbnN0IG9iamVjdEdyb3VwLCBjb25zdCBib29sKiBjb25zdCBpbmNsdWRlQ29tbWFu
ZExpbmVBUEksIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQsIGJvb2wqIHdhc1Rocm93
bik7CisgICAgdm9pZCBldmFsdWF0ZU9uKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmpl
Y3RJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0Piog
cmVzdWx0LCBib29sKiB3YXNUaHJvd24pOwogICAgIHZvaWQgcmVsZWFzZU9iamVjdChFcnJvclN0
cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQpOwogICAgIHZvaWQgZ2V0UHJvcGVydGllcyhF
cnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGJvb2wgaWdub3JlSGFzT3duUHJv
cGVydHksIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIHJlc3VsdCk7CiAgICAgdm9pZCBzZXRQcm9w
ZXJ0eVZhbHVlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgY29uc3QgU3Ry
aW5nJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwppbmRleCAxY2Ex
MDY3MmY3MmY1ZWM3ZGU2MjhiNmFhN2YxZjE2NDhjMDUxMGI3Li40YzAwNjVjMTg5MTk1MzY4MDlk
NDUwMDFmMjA0Yjg3ZmViOTAzN2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKQEAgLTM1OCw5ICszNTgsOSBAQCBXZWJJbnNwZWN0
b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewogCiAgICAgICAgIHRoaXMuZXZhbEluSW5zcGVj
dGVkV2luZG93KGV4cHJlc3Npb25TdHJpbmcsICJjb21wbGV0aW9uIiwgdHJ1ZSwgZXZhbHVhdGVk
LmJpbmQodGhpcykpOwogCi0gICAgICAgIGZ1bmN0aW9uIGV2YWx1YXRlZChyZXN1bHQpCisgICAg
ICAgIGZ1bmN0aW9uIGV2YWx1YXRlZChyZXN1bHQsIHdhc1Rocm93bikKICAgICAgICAgewotICAg
ICAgICAgICAgaWYgKCFyZXN1bHQpCisgICAgICAgICAgICBpZiAoIXJlc3VsdCB8fCB3YXNUaHJv
d24pCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgcmVzdWx0LmdldEFsbFBy
b3BlcnRpZXMoZXZhbHVhdGVkUHJvcGVydGllcy5iaW5kKHRoaXMpKTsKICAgICAgICAgfQpAQCAt
NTM0LDEwICs1MzQsMTAgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgIGV4cHJlc3Npb24gPSAidGhpcyI7CiAgICAgICAgIH0KIAotICAgICAgICBm
dW5jdGlvbiBldmFsQ2FsbGJhY2soZXJyb3IsIHJlc3VsdCkKKyAgICAgICAgZnVuY3Rpb24gZXZh
bENhbGxiYWNrKGVycm9yLCByZXN1bHQsIHdhc1Rocm93bikKICAgICAgICAgewogICAgICAgICAg
ICAgaWYgKCFlcnJvcikKLSAgICAgICAgICAgICAgICBjYWxsYmFjayhXZWJJbnNwZWN0b3IuUmVt
b3RlT2JqZWN0LmZyb21QYXlsb2FkKHJlc3VsdCkpOworICAgICAgICAgICAgICAgIGNhbGxiYWNr
KFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQocmVzdWx0KSwgd2FzVGhyb3du
KTsKICAgICAgICAgfQogICAgICAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGUoZXhwcmVzc2lvbiwg
b2JqZWN0R3JvdXAsIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgZXZhbENhbGxiYWNrKTsKICAgICB9
LApAQCAtNTYwLDcgKzU2MCw3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHRoaXMuYWRkTWVzc2FnZShjb21tYW5kTWVzc2FnZSk7CiAKICAgICAgICAg
dmFyIHNlbGYgPSB0aGlzOwotICAgICAgICBmdW5jdGlvbiBwcmludFJlc3VsdChyZXN1bHQpCisg
ICAgICAgIGZ1bmN0aW9uIHByaW50UmVzdWx0KHJlc3VsdCwgd2FzVGhyb3duKQogICAgICAgICB7
CiAgICAgICAgICAgICBzZWxmLnByb21wdC5oaXN0b3J5LnB1c2goc3RyKTsKICAgICAgICAgICAg
IHNlbGYucHJvbXB0Lmhpc3RvcnlPZmZzZXQgPSAwOwpAQCAtNTY4LDcgKzU2OCw3IEBAIFdlYklu
c3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgICAgIFdlYkluc3Bl
Y3Rvci5zZXR0aW5ncy5jb25zb2xlSGlzdG9yeSA9IHNlbGYucHJvbXB0Lmhpc3Rvcnkuc2xpY2Uo
LTMwKTsKIAotICAgICAgICAgICAgc2VsZi5hZGRNZXNzYWdlKG5ldyBXZWJJbnNwZWN0b3IuQ29u
c29sZUNvbW1hbmRSZXN1bHQocmVzdWx0LCBjb21tYW5kTWVzc2FnZSkpOworICAgICAgICAgICAg
c2VsZi5hZGRNZXNzYWdlKG5ldyBXZWJJbnNwZWN0b3IuQ29uc29sZUNvbW1hbmRSZXN1bHQocmVz
dWx0LCB3YXNUaHJvd24sIGNvbW1hbmRNZXNzYWdlKSk7CiAgICAgICAgIH0KICAgICAgICAgdGhp
cy5ldmFsSW5JbnNwZWN0ZWRXaW5kb3coc3RyLCAiY29uc29sZSIsIHRydWUsIHByaW50UmVzdWx0
KTsKICAgICB9LApAQCAtMTA5Nyw5ICsxMDk3LDkgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVDb21t
YW5kLnByb3RvdHlwZSA9IHsKICAgICB9CiB9CiAKLVdlYkluc3BlY3Rvci5Db25zb2xlQ29tbWFu
ZFJlc3VsdCA9IGZ1bmN0aW9uKHJlc3VsdCwgb3JpZ2luYXRpbmdDb21tYW5kKQorV2ViSW5zcGVj
dG9yLkNvbnNvbGVDb21tYW5kUmVzdWx0ID0gZnVuY3Rpb24ocmVzdWx0LCB3YXNUaHJvd24sIG9y
aWdpbmF0aW5nQ29tbWFuZCkKIHsKLSAgICB2YXIgbGV2ZWwgPSAocmVzdWx0LmlzRXJyb3IoKSA/
IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuRXJyb3IgOiBXZWJJbnNw
ZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLkxvZyk7CisgICAgdmFyIGxldmVsID0g
KHdhc1Rocm93biA/IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuRXJy
b3IgOiBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLkxvZyk7CiAgICAg
dGhpcy5vcmlnaW5hdGluZ0NvbW1hbmQgPSBvcmlnaW5hdGluZ0NvbW1hbmQ7CiAgICAgV2ViSW5z
cGVjdG9yLkNvbnNvbGVNZXNzYWdlLmNhbGwodGhpcywgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNz
YWdlLk1lc3NhZ2VTb3VyY2UuSlMsIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdl
VHlwZS5SZXN1bHQsIGxldmVsLCAtMSwgbnVsbCwgMSwgbnVsbCwgW3Jlc3VsdF0pOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNl
bnRhdGlvbk1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1
Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCmluZGV4IDEwNmQ2MmY2OTdiYWIyY2FiNDNhNzE2YTRh
MzJkZDRkNTBhNWVkMjAuLmE3ZTRjNmZjYzRkOTU4YmI4ODc0ODUyMmZjY2I4MWFiODU0ZjY0MWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMKQEAgLTY4Niw5ICs2ODYsOSBAQCBXZWJJ
bnNwZWN0b3IuUHJlc2VuYXRpb25DYWxsRnJhbWUucHJvdG90eXBlID0gewogCiAgICAgZXZhbHVh
dGU6IGZ1bmN0aW9uKGNvZGUsIG9iamVjdEdyb3VwLCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGNh
bGxiYWNrKQogICAgIHsKLSAgICAgICAgZnVuY3Rpb24gZGlkRXZhbHVhdGVPbkNhbGxGcmFtZShl
cnJvciwgcmVzdWx0KQorICAgICAgICBmdW5jdGlvbiBkaWRFdmFsdWF0ZU9uQ2FsbEZyYW1lKGVy
cm9yLCByZXN1bHQsIHdhc1Rocm93bikKICAgICAgICAgewotICAgICAgICAgICAgY2FsbGJhY2so
V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChyZXN1bHQpKTsKKyAgICAgICAg
ICAgIGNhbGxiYWNrKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQocmVzdWx0
KSwgd2FzVGhyb3duKTsKICAgICAgICAgfQogICAgICAgICBEZWJ1Z2dlckFnZW50LmV2YWx1YXRl
T25DYWxsRnJhbWUodGhpcy5fY2FsbEZyYW1lLmlkLCBjb2RlLCBvYmplY3RHcm91cCwgaW5jbHVk
ZUNvbW1hbmRMaW5lQVBJLCBkaWRFdmFsdWF0ZU9uQ2FsbEZyYW1lLmJpbmQodGhpcykpOwogICAg
IH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1l
bnRzVHJlZU91dGxpbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Vs
ZW1lbnRzVHJlZU91dGxpbmUuanMKaW5kZXggMmVjYzNmOWExNDY1MmNkZjg5YzVhMmEzNjllYjY3
M2VjOTlhNzkwZS4uMzAxMWM0Yjk0ZGU3OWE2YjBhNGE4NTI1ZTkxZTcyZjgzNGE2MTAwZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVP
dXRsaW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVu
dHNUcmVlT3V0bGluZS5qcwpAQCAtNDA2LDkgKzQwNiw5IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50
c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKCFub2RlLm5vZGVOYW1lKCkg
fHwgbm9kZS5ub2RlTmFtZSgpLnRvTG93ZXJDYXNlKCkgIT09ICJpbWciKQogICAgICAgICAgICAg
cmV0dXJuOwogCi0gICAgICAgIGZ1bmN0aW9uIHNldFRvb2x0aXAoZXJyb3IsIHJlc3VsdCkKKyAg
ICAgICAgZnVuY3Rpb24gc2V0VG9vbHRpcChlcnJvciwgcmVzdWx0LCB3YXNUaHJvd24pCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIGlmIChlcnJvciB8fCAhcmVzdWx0IHx8IHJlc3VsdC50eXBlICE9
PSAic3RyaW5nIikKKyAgICAgICAgICAgIGlmIChlcnJvciB8fCAhcmVzdWx0IHx8IHdhc1Rocm93
biB8fCByZXN1bHQudHlwZSAhPT0gInN0cmluZyIpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
CiAgICAgICAgICAgICB0cnkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9FeHRlbnNpb25QYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRXh0ZW5zaW9uUGFuZWwuanMKaW5kZXggNjkwNGQwNTUzN2M2MTk2YzRhMWI4OTM3
MTEyMGI3ZmYzNmUxODcwZi4uZDNjMjVjM2I0ZjM4MDVjNjc5ZDYwZWExNTMzNWRkYmI5ZGJlOGM1
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNp
b25QYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVu
c2lvblBhbmVsLmpzCkBAIC0xMDYsNyArMTA2LDcgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNp
ZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgV2ViSW5zcGVjdG9yLmV4dGVuc2lvblNl
cnZlci5ub3RpZnlFeHRlbnNpb25TaWRlYmFyVXBkYXRlZCh0aGlzLl9pZCk7CiAgICAgfSwKIAot
ICAgIF9vbkV2YWx1YXRlOiBmdW5jdGlvbih0aXRsZSwgZXJyb3IsIHJlc3VsdCkKKyAgICBfb25F
dmFsdWF0ZTogZnVuY3Rpb24odGl0bGUsIGVycm9yLCByZXN1bHQsIHdhc1Rocm93bikKICAgICB7
CiAgICAgICAgIGlmICghZXJyb3IpCiAgICAgICAgICAgICB0aGlzLl9zZXRPYmplY3QoV2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChyZXN1bHQpLCB0aXRsZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpz
CmluZGV4IGZlNzE5MzA1OTBmNzY3YTA4NGI5MDJiNGE1NGE4ZWZlYjc2NzJmZmEuLjFjODExZWMw
MWQ2ODVlYWM5MjUyYjc1OGE0NTNhZTUxYTE4ZDYyYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzCkBAIC0yNjQsMTMg
KzI2NCwxMyBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKIAog
ICAgIF9vbkV2YWx1YXRlT25JbnNwZWN0ZWRQYWdlOiBmdW5jdGlvbihtZXNzYWdlLCBwb3J0KQog
ICAgIHsKLSAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soZXJyb3IsIHJlc3VsdFBheWxvYWQpCisg
ICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKGVycm9yLCByZXN1bHRQYXlsb2FkLCB3YXNUaHJvd24p
CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChlcnJvcikKICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICB2YXIgcmVzdWx0T2JqZWN0ID0gV2ViSW5zcGVjdG9yLlJlbW90ZU9i
amVjdC5mcm9tUGF5bG9hZChyZXN1bHRQYXlsb2FkKTsKICAgICAgICAgICAgIHZhciByZXN1bHQg
PSB7fTsKLSAgICAgICAgICAgIGlmIChyZXN1bHRPYmplY3QuaXNFcnJvcigpKQorICAgICAgICAg
ICAgaWYgKHdhc1Rocm93bikKICAgICAgICAgICAgICAgICByZXN1bHQuaXNFeGNlcHRpb24gPSB0
cnVlOwogICAgICAgICAgICAgcmVzdWx0LnZhbHVlID0gcmVzdWx0T2JqZWN0LmRlc2NyaXB0aW9u
OwogICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hDYWxsYmFjayhtZXNzYWdlLnJlcXVlc3RJZCwg
cG9ydCwgcmVzdWx0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzCmluZGV4IGI0MmJlYTM5ODYy
N2ViMzIyODRiODMyNGVjZTQ0ZWI5OWVmM2VjYmIuLmE0ODYwODcwMjYyMTc1NzEzZjc3OWUyOWY3
YzExZmFiZDM5YTY5NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcwpAQCAtMTg4LDcgKzE4
OCwxMSBAQCBXZWJJbnNwZWN0b3IuT2JqZWN0UHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IHRoaXMucHJvcGVydHkudmFsdWUuZGVzY3Jp
cHRpb247CiAgICAgICAgIC8vIFJlbmRlciBcbiBhcyBhIG5pY2UgdW5pY29kZSBjciBzeW1ib2wu
CiAgICAgICAgIGlmICh0aGlzLnByb3BlcnR5LnZhbHVlLnR5cGUgPT09ICJzdHJpbmciICYmIHR5
cGVvZiBkZXNjcmlwdGlvbiA9PT0gInN0cmluZyIpIHsKLSAgICAgICAgICAgIHRoaXMudmFsdWVF
bGVtZW50LnRleHRDb250ZW50ID0gIlwiIiArIGRlc2NyaXB0aW9uLnJlcGxhY2UoL1xuL2csICJc
dTIxQjUiKSArICJcIiI7CisgICAgICAgICAgICB2YXIgdGV4dCA9IGRlc2NyaXB0aW9uLnJlcGxh
Y2UoL1xuL2csICJcdTIxQjUiKTsKKyAgICAgICAgICAgIC8vIERvbid0IGFkZCBxdW90ZXMgdG8g
dGhlIGV4Y2VwdGlvbnMgdGhyb3duIG9uIGF0dGVtcHQgdG8gZ2V0IHRoZSBwcm9wZXJ0eSB2YWx1
ZQorICAgICAgICAgICAgaWYgKCF0aGlzLnByb3BlcnR5LnZhbHVlV2FzVGhyb3duKQorICAgICAg
ICAgICAgICAgIHRleHQgPSAiXCIiICsgdGV4dCArICJcIiI7CisgICAgICAgICAgICB0aGlzLnZh
bHVlRWxlbWVudC50ZXh0Q29udGVudCA9IHRleHQ7CiAgICAgICAgICAgICB0aGlzLnZhbHVlRWxl
bWVudC5fb3JpZ2luYWxUZXh0Q29udGVudCA9ICJcIiIgKyBkZXNjcmlwdGlvbiArICJcIiI7CiAg
ICAgICAgIH0gZWxzZSBpZiAodGhpcy5wcm9wZXJ0eS52YWx1ZS50eXBlID09PSAiZnVuY3Rpb24i
ICYmIHR5cGVvZiBkZXNjcmlwdGlvbiA9PT0gInN0cmluZyIpIHsKICAgICAgICAgICAgIHRoaXMu
dmFsdWVFbGVtZW50LnRleHRDb250ZW50ID0gLy4qLy5leGVjKGRlc2NyaXB0aW9uKVswXS5yZXBs
YWNlKC8gKyQvZywgIiIpOwpAQCAtMTk4LDcgKzIwMiw3IEBAIFdlYkluc3BlY3Rvci5PYmplY3RQ
cm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKIAogICAgICAgICBpZiAodGhpcy5wcm9w
ZXJ0eS5pc0dldHRlcikKICAgICAgICAgICAgIHRoaXMudmFsdWVFbGVtZW50LmFkZFN0eWxlQ2xh
c3MoImRpbW1lZCIpOwotICAgICAgICBpZiAodGhpcy5wcm9wZXJ0eS52YWx1ZS5pc0Vycm9yKCkp
CisgICAgICAgIGlmICh0aGlzLnByb3BlcnR5LnZhbHVlV2FzVGhyb3duKQogICAgICAgICAgICAg
dGhpcy52YWx1ZUVsZW1lbnQuYWRkU3R5bGVDbGFzcygiZXJyb3IiKTsKICAgICAgICAgaWYgKHRo
aXMucHJvcGVydHkudmFsdWUudHlwZSkKICAgICAgICAgICAgIHRoaXMudmFsdWVFbGVtZW50LmFk
ZFN0eWxlQ2xhc3MoImNvbnNvbGUtZm9ybWF0dGVkLSIgKyB0aGlzLnByb3BlcnR5LnZhbHVlLnR5
cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9w
ZXJ0aWVzU2lkZWJhclBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Byb3BlcnRpZXNTaWRlYmFyUGFuZS5qcwppbmRleCBlNmNlMGIyNmZlMTU3ZGVhZjE1MzQ4Y2Nk
NzQ1YzM0ODVlNjZlYjkxLi5mODgwODliMzRlZTM4ZDg2NTdlOWJjZTA5NWJjOWE3ODNmMzJlMjVl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb3BlcnRp
ZXNTaWRlYmFyUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Byb3BlcnRpZXNTaWRlYmFyUGFuZS5qcwpAQCAtNTIsOSArNTIsOSBAQCBXZWJJbnNwZWN0b3Iu
UHJvcGVydGllc1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIG9iamVjdC5y
ZWxlYXNlKCk7CiAgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlvbiBub2RlUHJvdG90eXBlc1Jl
YWR5KGVycm9yLCBvYmplY3RQYXlsb2FkKQorICAgICAgICBmdW5jdGlvbiBub2RlUHJvdG90eXBl
c1JlYWR5KGVycm9yLCBvYmplY3RQYXlsb2FkLCB3YXNUaHJvd24pCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIGlmIChlcnJvciB8fCAhb2JqZWN0UGF5bG9hZCkKKyAgICAgICAgICAgIGlmIChlcnJv
ciB8fCAhb2JqZWN0UGF5bG9hZCB8fCB3YXNUaHJvd24pCiAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgdmFyIG9iamVjdCA9IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJv
bVBheWxvYWQob2JqZWN0UGF5bG9hZCk7CiAgICAgICAgICAgICBvYmplY3QuZ2V0T3duUHJvcGVy
dGllcyhmaWxsU2VjdGlvbi5iaW5kKHRoaXMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCmluZGV4IGEyZDYyMzYxYzZhNmFlYzlmNzYx
MDI5NTczODhlYzVlMTdlNTE4MzUuLmZjOTljODQyMWJjN2MzMjQ3ZTQyZjkwMGQ1MzA3N2NmZDI1
M2NiZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291
cmNlRnJhbWUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3Vy
Y2VGcmFtZS5qcwpAQCAtNzk1LDkgKzc5NSw5IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlv
biBzaG93T2JqZWN0UG9wdXAocmVzdWx0KQorICAgICAgICBmdW5jdGlvbiBzaG93T2JqZWN0UG9w
dXAocmVzdWx0LCB3YXNUaHJvd24pCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChyZXN1bHQu
aXNFcnJvcigpIHx8ICF0aGlzLl9kZWxlZ2F0ZS5kZWJ1Z2dlclBhdXNlZCgpKQorICAgICAgICAg
ICAgaWYgKHdhc1Rocm93biB8fCAhdGhpcy5fZGVsZWdhdGUuZGVidWdnZXJQYXVzZWQoKSkKICAg
ICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgICAgIHZhciBwb3B1cENvbnRlbnRFbGVt
ZW50ID0gbnVsbDsK
</data>
<flag name="review"
          id="84355"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91668</attachid>
            <date>2011-04-29 05:26:01 -0700</date>
            <delta_ts>2011-04-29 05:26:01 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>exception-in-eval</filename>
            <type>text/plain</type>
            <size>45807</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkN2E1NDA1Li5lMzdlNjVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDQt
MjggIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogW3Byb3Rv
Y29sXSBFdmFsdWF0ZSBzaG91bGQgZXhwb3NlIHRocm93biBleGNlcHRpb24gdmFsdWUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MDAwCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWRpci1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1ldmFsLWdsb2JhbC1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtZXZhbC1leHBlY3RlZC50
eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL2NvbnNvbGUtYWdlbnQtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGluc3BlY3Rvci9wcm90b2NvbC9ydW50aW1lLWFnZW50LWV4cGVjdGVk
LnR4dDoKKwogMjAxMS0wNC0yOCAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgVW5za2lwIHNvbWUgdGVzdHMgdGhhdCB3ZXJlIGZhaWxpbmcgZHVlIHRvIGxvY2FsIGlz
c3VlcyBvbiB0aGUgYm90cyB0aGF0IGhhdmUgYmVlbiByZXNvbHZlZApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcwppbmRleCA5ZDAxNmYz
Li43MGNkNTFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bnNwZWN0b3ItdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bnNwZWN0b3ItdGVzdC5qcwpAQCAtNDgsMTAgKzQ4LDEwIEBAIEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2UgPSBmdW5jdGlvbihjb2RlLCBjYWxsYmFjaykKIHsKICAgICBjYWxsYmFjayA9IElu
c3BlY3RvclRlc3Quc2FmZVdyYXAoY2FsbGJhY2spOwogCi0gICAgZnVuY3Rpb24gbXljYWxsYmFj
ayhlcnJvciwgcmVzdWx0KQorICAgIGZ1bmN0aW9uIG15Y2FsbGJhY2soZXJyb3IsIHJlc3VsdCwg
d2FzVGhyb3duKQogICAgIHsKICAgICAgICAgaWYgKCFlcnJvcikKLSAgICAgICAgICAgIGNhbGxi
YWNrKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQocmVzdWx0KSk7CisgICAg
ICAgICAgICBjYWxsYmFjayhXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkKHJl
c3VsdCksIHdhc1Rocm93bik7CiAgICAgfQogICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZShjb2Rl
LCAiY29uc29sZSIsIGZhbHNlLCBteWNhbGxiYWNrKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZGlyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZGlyLWV4cGVjdGVkLnR4dAppbmRleCBlYTAw
ZWYzLi4wMjYwYjMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9j
b25zb2xlLWRpci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNv
bGUvY29uc29sZS1kaXItZXhwZWN0ZWQudHh0CkBAIC0xOCwxMyArMTgsMTMgQEAgY29uc29sZS1k
aXIuaHRtbDoxME5vZGVMaXN0WzFdCiAgICAgX19wcm90b19fOiBOb2RlTGlzdFByb3RvdHlwZQog
CiBjb25zb2xlLWRpci5odG1sOjExWFBhdGhSZXN1bHQKLSAgICBib29sZWFuVmFsdWU6IFhQYXRo
RXhjZXB0aW9uCisgICAgYm9vbGVhblZhbHVlOiBbRXhjZXB0aW9uOiBYUGF0aEV4Y2VwdGlvbl0K
ICAgICBjb25zdHJ1Y3RvcjogWFBhdGhSZXN1bHRDb25zdHJ1Y3RvcgogICAgIGludmFsaWRJdGVy
YXRvclN0YXRlOiBmYWxzZQotICAgIG51bWJlclZhbHVlOiBYUGF0aEV4Y2VwdGlvbgorICAgIG51
bWJlclZhbHVlOiBbRXhjZXB0aW9uOiBYUGF0aEV4Y2VwdGlvbl0KICAgICByZXN1bHRUeXBlOiA0
Ci0gICAgc2luZ2xlTm9kZVZhbHVlOiBYUGF0aEV4Y2VwdGlvbgotICAgIHNuYXBzaG90TGVuZ3Ro
OiBYUGF0aEV4Y2VwdGlvbgotICAgIHN0cmluZ1ZhbHVlOiBYUGF0aEV4Y2VwdGlvbgorICAgIHNp
bmdsZU5vZGVWYWx1ZTogW0V4Y2VwdGlvbjogWFBhdGhFeGNlcHRpb25dCisgICAgc25hcHNob3RM
ZW5ndGg6IFtFeGNlcHRpb246IFhQYXRoRXhjZXB0aW9uXQorICAgIHN0cmluZ1ZhbHVlOiBbRXhj
ZXB0aW9uOiBYUGF0aEV4Y2VwdGlvbl0KICAgICBfX3Byb3RvX186IFhQYXRoUmVzdWx0UHJvdG90
eXBlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUt
ZXZhbC1nbG9iYWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUv
Y29uc29sZS1ldmFsLWdsb2JhbC1leHBlY3RlZC50eHQKaW5kZXggYjExNTA2Yi4uNGZkNzgxOSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1ldmFsLWds
b2JhbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29u
c29sZS1ldmFsLWdsb2JhbC1leHBlY3RlZC50eHQKQEAgLTMsNSArMyw1IEBAIFRlc3RzIHRoYXQg
c2ltcGxlIGV2YWx1YXRpb25zIG1heSBiZSBwZXJmb3JtZWQgaW4gdGhlIGNvbnNvbGUgb24gZ2xv
YmFsIG9iamVjdC4KIGZvbwogImZvb1ZhbHVlIgogYmFyMQotUmVmZXJlbmNlRXJyb3I6IENhbid0
IGZpbmQgdmFyaWFibGU6IGJhcjEKK0Vycm9yCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LWV4cGVjdGVkLnR4dAppbmRleCBjMjEw
NDg2Li41NzBhYmYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9j
b25zb2xlLWZvcm1hdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUvY29uc29sZS1mb3JtYXQtZXhwZWN0ZWQudHh0CkBAIC02NCwxMCArNjQsMTAgQEAgY29u
c29sZS1mb3JtYXQuaHRtbDo1M3Rlc3QgbmFtZWQgInRlc3QiCiBjb25zb2xlLWZvcm1hdC5odG1s
OjU0WyJ0ZXN0IG5hbWVkICJ0ZXN0IiJdCiBnbG9iYWxzWzNdCiAidGVzdCBuYW1lZCAidGVzdCIi
Ci1jb25zb2xlLWZvcm1hdC5odG1sOjUzRXJyb3I6IAotY29uc29sZS1mb3JtYXQuaHRtbDo1NFtF
cnJvcjogXQorY29uc29sZS1mb3JtYXQuaHRtbDo1M0Vycm9yCitjb25zb2xlLWZvcm1hdC5odG1s
OjU0W0Vycm9yXQogZ2xvYmFsc1s0XQotRXJyb3I6IAorRXJyb3IKIGNvbnNvbGUtZm9ybWF0Lmh0
bWw6NTM8Ym9keSBvbmxvYWQ9Im9ubG9hZCgpIj7igKY8L2JvZHk+CiBjb25zb2xlLWZvcm1hdC5o
dG1sOjU0Wzxib2R5IG9ubG9hZD0ib25sb2FkKCkiPuKApjwvYm9keT5dCiBnbG9iYWxzWzVdCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWV2
YWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5z
aW9ucy1ldmFsLWV4cGVjdGVkLnR4dAppbmRleCAzZDM5ZjJmLi5iYTk1NDgwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWV2YWwtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMt
ZXZhbC1leHBlY3RlZC50eHQKQEAgLTcsNyArNyw3IEBAIEV2YWx1YXRlOiAiZnVuY3Rpb24iIChl
eGNlcHRpb246IHVuZGVmaW5lZCkKIFJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RFdmFsRGVm
aW5lc0dsb2JhbFN5bWJvbHMKIEV2YWx1YXRlOiB7ImZ1bmMiOiJmdW5jdGlvbiIsInZhcmlhYmxl
Ijo0Mn0gKGV4Y2VwdGlvbjogdW5kZWZpbmVkKQogUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVz
dEV2YWxGYWlsZWQKLUV2YWx1YXRlOiAiVHlwZUVycm9yOiBKU09OLnN0cmluZ2lmeSBjYW5ub3Qg
c2VyaWFsaXplIGN5Y2xpYyBzdHJ1Y3R1cmVzLiIgKGV4Y2VwdGlvbjogdHJ1ZSkKK0V2YWx1YXRl
OiAiRXJyb3IiIChleGNlcHRpb246IHRydWUpCiBSVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0
RXZhbE9rCiBFdmFsdWF0ZTogeyJzdHIiOiJmb28iLCJudW0iOjQyfSAoZXhjZXB0aW9uOiB1bmRl
ZmluZWQpCiBSVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0RXZhbFN0YXRlbWVudApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL2NvbnNvbGUvY29u
c29sZS1kaXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaW5z
cGVjdG9yL2NvbnNvbGUvY29uc29sZS1kaXItZXhwZWN0ZWQudHh0CmluZGV4IDhjMjdjN2MuLmVi
NzkwYTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rv
ci9jb25zb2xlL2NvbnNvbGUtZGlyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWRpci1leHBlY3RlZC50eHQK
QEAgLTE3LDEyICsxNywxMiBAQCBjb25zb2xlLWRpci5odG1sOjEwTm9kZUxpc3RbMV0KICAgICBf
X3Byb3RvX186IE5vZGVMaXN0CiAKIGNvbnNvbGUtZGlyLmh0bWw6MTFYUGF0aFJlc3VsdAotICAg
IGJvb2xlYW5WYWx1ZTogWFBhdGhFeGNlcHRpb24KKyAgICBib29sZWFuVmFsdWU6IFtFeGNlcHRp
b246IFhQYXRoRXhjZXB0aW9uXQogICAgIGludmFsaWRJdGVyYXRvclN0YXRlOiBmYWxzZQotICAg
IG51bWJlclZhbHVlOiBYUGF0aEV4Y2VwdGlvbgorICAgIG51bWJlclZhbHVlOiBbRXhjZXB0aW9u
OiBYUGF0aEV4Y2VwdGlvbl0KICAgICByZXN1bHRUeXBlOiA0Ci0gICAgc2luZ2xlTm9kZVZhbHVl
OiBYUGF0aEV4Y2VwdGlvbgotICAgIHNuYXBzaG90TGVuZ3RoOiBYUGF0aEV4Y2VwdGlvbgotICAg
IHN0cmluZ1ZhbHVlOiBYUGF0aEV4Y2VwdGlvbgorICAgIHNpbmdsZU5vZGVWYWx1ZTogW0V4Y2Vw
dGlvbjogWFBhdGhFeGNlcHRpb25dCisgICAgc25hcHNob3RMZW5ndGg6IFtFeGNlcHRpb246IFhQ
YXRoRXhjZXB0aW9uXQorICAgIHN0cmluZ1ZhbHVlOiBbRXhjZXB0aW9uOiBYUGF0aEV4Y2VwdGlv
bl0KICAgICBfX3Byb3RvX186IFhQYXRoUmVzdWx0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZXZhbC1nbG9iYWwt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL2Nv
bnNvbGUvY29uc29sZS1ldmFsLWdsb2JhbC1leHBlY3RlZC50eHQKaW5kZXggMzEyZWFmMC4uZmQy
NTQzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9y
L2NvbnNvbGUvY29uc29sZS1ldmFsLWdsb2JhbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1ldmFsLWdsb2Jh
bC1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACi1UZXN0cyB0aGF0IHNpbXBsZSBldmFsdWF0
aW9ucyBtYXkgYmUgcGVyZm9ybWVkIGluIHRoZSBjb25zb2xlIG9uIGdsb2JhbCBvYmplY3QuDQot
DQotZm9vDQotImZvb1ZhbHVlIg0KLWJhcjENCi1SZWZlcmVuY2VFcnJvcjogYmFyMSBpcyBub3Qg
ZGVmaW5lZA0KLQ0KK1Rlc3RzIHRoYXQgc2ltcGxlIGV2YWx1YXRpb25zIG1heSBiZSBwZXJmb3Jt
ZWQgaW4gdGhlIGNvbnNvbGUgb24gZ2xvYmFsIG9iamVjdC4KKworZm9vCisiZm9vVmFsdWUiCiti
YXIxCitSZWZlcmVuY2VFcnJvcgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjQzMTA4OC4uNjE1Y2I2MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDExLTA0LTI4ICBZdXJ5IFNlbWlraGF0c2t5ICA8
eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtwcm90b2NvbF0gRXZhbHVhdGUgc2hvdWxkIGV4
cG9zZSB0aHJvd24gZXhjZXB0aW9uIHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01OTAwMAorCisgICAgICAgIEVhY2ggZXZhbHVhdGlvbiBjb21t
YW5kIG1heSBoYXZlIGVpdGhlciB0aHJvd24gb3IgcmV0dXJuZWQgcmVzdWx0LiBUaGlzIGlzIGlu
ZGljYXRlZAorICAgICAgICBieSB3YXNUaHJvd24gcHJvcGVydHkgaW4gdGhlIHByb3RvY29sLgor
CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkluamVjdGVkU2NyaXB0OjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmplY3Rl
ZFNjcmlwdDo6ZXZhbHVhdGVPbik6CisgICAgICAgIChXZWJDb3JlOjpJbmplY3RlZFNjcmlwdDo6
ZXZhbHVhdGVPbkNhbGxGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmplY3RlZFNjcmlwdDo6
Z2V0UHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlOjpJbmplY3RlZFNjcmlwdDo6bWFrZUV2
YWxDYWxsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanM6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3Rvci5qc29uOiBSZW1vdmVkICJlcnJvciIgcmVtb3RlIG9iamVjdCB0eXBlLCBhZGRl
ZCAid2FzVGhyb3duIiBwcm9wZXJ0eSB0bworICAgICAgICB0aGUgZXZhbHVhdGlvbiByZXN1bHRz
LgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmV2YWx1YXRlT25DYWxsRnJhbWUp
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclJ1bnRpbWVBZ2VudDo6ZXZhbHVhdGVPbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JSdW50aW1lQWdlbnQ6OmdldFByb3BlcnRpZXMpOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JSdW50aW1lQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0Nv
bnNvbGVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlw
ZS5jb21wbGV0aW9ucy5ldmFsdWF0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVW
aWV3LnByb3RvdHlwZS5ldmFsSW5JbnNwZWN0ZWRXaW5kb3cpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fZW50ZXJLZXlQcmVzc2VkLnByaW50UmVzdWx0KToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUuX2VudGVyS2V5UHJl
c3NlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZUNvbW1hbmRSZXN1bHQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5QcmVzZW5hdGlvbkNhbGxGcmFtZS5wcm90b3R5cGUuZXZh
bHVhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGlu
ZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlw
ZS5fY3JlYXRlVG9vbHRpcEZvck5vZGUuc2V0VG9vbHRpcCk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9FeHRlbnNpb25QYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRl
bnNpb25TaWRlYmFyUGFuZS5wcm90b3R5cGUuX29uRXZhbHVhdGUpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUuX29uRXZhbHVhdGVPbkluc3BlY3RlZFBhZ2UpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuT2JqZWN0UHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5
cGUudXBkYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Byb3BlcnRpZXNTaWRl
YmFyUGFuZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9wZXJ0aWVzU2lkZWJhclBhbmUu
cHJvdG90eXBlLnVwZGF0ZS5ub2RlUHJvdG90eXBlc1JlYWR5KToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJj
ZUZyYW1lLnByb3RvdHlwZS5fc2hvd1BvcHVwLnNob3dPYmplY3RQb3B1cCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9zaG93UG9wdXApOgorCiAyMDExLTA0
LTI4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbSBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtCmluZGV4IDNhNTJmYWEuLjk4NDNkZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBt
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBt
CkBAIC00OTAsNyArNDkwLDE1IEBAIHN1YiBnZW5lcmF0ZUJhY2tlbmRGdW5jdGlvbgogICAgIHB1
c2goQGZ1bmN0aW9uLCAiIik7CiAgICAgcHVzaChAZnVuY3Rpb24sICIgICAgUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gcmVzcG9uc2VNZXNzYWdlID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsi
KTsKICAgICBwdXNoKEBmdW5jdGlvbiwgIiAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZXN1
bHQgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOyIpOwotICAgIHB1c2goQGZ1bmN0aW9uLCBt
YXAoIiAgICAgICAgcmVzdWx0LT5zZXQiIC4gdHlwZVRyYWl0cygkXy0+dHlwZSwgIkpTT05UeXBl
IikgLiAiKFwiIiAuICRfLT5uYW1lIC4gIlwiLCBvdXRfIiAuICRfLT5uYW1lIC4gIik7IiwgQG91
dEFyZ3MpKTsKKyAgICBmb3JlYWNoIG15ICRwYXJhbWV0ZXIgKEBvdXRBcmdzKSB7CisgICAgICAg
IG15ICRvZmZzZXQgPSAiICAgICAgICAiOworICAgICAgICAjIERvbid0IGFkZCBvcHRpb25hbCBi
b29sZWFuIHBhcmFtZXRlciB0byB0aGUgcmVzdWx0IHVubGVzcyBpdCBpcyAidHJ1ZSIKKyAgICAg
ICAgaWYgKCRwYXJhbWV0ZXItPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJvcHRpb25hbCJ9ICYmICRw
YXJhbWV0ZXItPnR5cGUgZXEgImJvb2xlYW4iKSB7CisgICAgICAgICAgICBwdXNoKEBmdW5jdGlv
biwgJG9mZnNldCAuICJpZiAob3V0XyIgLiAkcGFyYW1ldGVyLT5uYW1lIC4gIikiKTsKKyAgICAg
ICAgICAgICRvZmZzZXQgLj0gIiAgICAiOworICAgICAgICB9CisgICAgICAgIHB1c2goQGZ1bmN0
aW9uLCAkb2Zmc2V0IC4gInJlc3VsdC0+c2V0IiAuIHR5cGVUcmFpdHMoJHBhcmFtZXRlci0+dHlw
ZSwgIkpTT05UeXBlIikgLiAiKFwiIiAuICRwYXJhbWV0ZXItPm5hbWUgLiAiXCIsIG91dF8iIC4g
JHBhcmFtZXRlci0+bmFtZSAuICIpOyIpOworICAgIH0KICAgICBwdXNoKEBmdW5jdGlvbiwgIiAg
ICByZXNwb25zZU1lc3NhZ2UtPnNldE9iamVjdChcInJlc3VsdFwiLCByZXN1bHQpOyIpOwogICAg
IHB1c2goQGZ1bmN0aW9uLCAiIik7CiAgICAgcHVzaChAZnVuY3Rpb24sICIgICAgcmVzcG9uc2VN
ZXNzYWdlLT5zZXROdW1iZXIoXCJpZFwiLCBjYWxsSWQpOyIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAKaW5kZXggYWViNmYzOS4uODVmNGJlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC01NCwyNCAr
NTQsMjQgQEAgSW5qZWN0ZWRTY3JpcHQ6OkluamVjdGVkU2NyaXB0KFNjcmlwdE9iamVjdCBpbmpl
Y3RlZFNjcmlwdE9iamVjdCwgSW5zcGVjdGVkU3RhdGUKIHsKIH0KIAotdm9pZCBJbmplY3RlZFNj
cmlwdDo6ZXZhbHVhdGUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGV4
cHJlc3Npb24sIGNvbnN0IFN0cmluZyYgb2JqZWN0R3JvdXAsIGJvb2wgaW5jbHVkZUNvbW1hbmRM
aW5lQVBJLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0KQordm9pZCBJbmplY3RlZFNj
cmlwdDo6ZXZhbHVhdGUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGV4
cHJlc3Npb24sIGNvbnN0IFN0cmluZyYgb2JqZWN0R3JvdXAsIGJvb2wgaW5jbHVkZUNvbW1hbmRM
aW5lQVBJLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0LCBib29sKiB3YXNUaHJvd24p
CiB7CiAgICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKG1faW5qZWN0ZWRTY3JpcHRPYmpl
Y3QsICJldmFsdWF0ZSIpOwogICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGV4cHJlc3Npb24p
OwogICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KG9iamVjdEdyb3VwKTsKICAgICBmdW5jdGlv
bi5hcHBlbmRBcmd1bWVudChpbmNsdWRlQ29tbWFuZExpbmVBUEkpOwotICAgIG1ha2VPYmplY3RD
YWxsKGVycm9yU3RyaW5nLCBmdW5jdGlvbiwgcmVzdWx0KTsKKyAgICBtYWtlRXZhbENhbGwoZXJy
b3JTdHJpbmcsIGZ1bmN0aW9uLCByZXN1bHQsIHdhc1Rocm93bik7CiB9CiAKLXZvaWQgSW5qZWN0
ZWRTY3JpcHQ6OmV2YWx1YXRlT24oRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJp
bmcmIG9iamVjdElkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIFJlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+KiByZXN1bHQpCit2b2lkIEluamVjdGVkU2NyaXB0OjpldmFsdWF0ZU9uKEVycm9yU3Ry
aW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgY29uc3QgU3RyaW5nJiBl
eHByZXNzaW9uLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0LCBib29sKiB3YXNUaHJv
d24pCiB7CiAgICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKG1faW5qZWN0ZWRTY3JpcHRP
YmplY3QsICJldmFsdWF0ZU9uIik7CiAgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQob2JqZWN0
SWQpOwogICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGV4cHJlc3Npb24pOwotICAgIG1ha2VP
YmplY3RDYWxsKGVycm9yU3RyaW5nLCBmdW5jdGlvbiwgcmVzdWx0KTsKKyAgICBtYWtlRXZhbENh
bGwoZXJyb3JTdHJpbmcsIGZ1bmN0aW9uLCByZXN1bHQsIHdhc1Rocm93bik7CiB9CiAKLXZvaWQg
SW5qZWN0ZWRTY3JpcHQ6OmV2YWx1YXRlT25DYWxsRnJhbWUoRXJyb3JTdHJpbmcqIGVycm9yU3Ry
aW5nLCBjb25zdCBTY3JpcHRWYWx1ZSYgY2FsbEZyYW1lcywgY29uc3QgU3RyaW5nJiBjYWxsRnJh
bWVJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcmIG9iamVjdEdyb3Vw
LCBib29sIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJl
c3VsdCkKK3ZvaWQgSW5qZWN0ZWRTY3JpcHQ6OmV2YWx1YXRlT25DYWxsRnJhbWUoRXJyb3JTdHJp
bmcqIGVycm9yU3RyaW5nLCBjb25zdCBTY3JpcHRWYWx1ZSYgY2FsbEZyYW1lcywgY29uc3QgU3Ry
aW5nJiBjYWxsRnJhbWVJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcm
IG9iamVjdEdyb3VwLCBib29sIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4qIHJlc3VsdCwgYm9vbCogd2FzVGhyb3duKQogewogICAgIFNjcmlwdEZ1bmN0aW9u
Q2FsbCBmdW5jdGlvbihtX2luamVjdGVkU2NyaXB0T2JqZWN0LCAiZXZhbHVhdGVPbkNhbGxGcmFt
ZSIpOwogICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGNhbGxGcmFtZXMpOwpAQCAtNzksNyAr
NzksNyBAQCB2b2lkIEluamVjdGVkU2NyaXB0OjpldmFsdWF0ZU9uQ2FsbEZyYW1lKEVycm9yU3Ry
aW5nKiBlcnJvclN0cmluZywgY29uc3QgU2NyaXB0VgogICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3Vt
ZW50KGV4cHJlc3Npb24pOwogICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KG9iamVjdEdyb3Vw
KTsKICAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChpbmNsdWRlQ29tbWFuZExpbmVBUEkpOwot
ICAgIG1ha2VPYmplY3RDYWxsKGVycm9yU3RyaW5nLCBmdW5jdGlvbiwgcmVzdWx0KTsKKyAgICBt
YWtlRXZhbENhbGwoZXJyb3JTdHJpbmcsIGZ1bmN0aW9uLCByZXN1bHQsIHdhc1Rocm93bik7CiB9
CiAKIHZvaWQgSW5qZWN0ZWRTY3JpcHQ6OmdldFByb3BlcnRpZXMoRXJyb3JTdHJpbmcqIGVycm9y
U3RyaW5nLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBib29sIGlnbm9yZUhhc093blByb3BlcnR5
LCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBwcm9wZXJ0aWVzKQpAQCAtODgsNyArODgsNyBAQCB2
b2lkIEluamVjdGVkU2NyaXB0OjpnZXRQcm9wZXJ0aWVzKEVycm9yU3RyaW5nKiBlcnJvclN0cmlu
ZywgY29uc3QgU3RyaW5nJiBvYmplYwogICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KG9iamVj
dElkKTsKICAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChpZ25vcmVIYXNPd25Qcm9wZXJ0eSk7
CiAKLSAgICBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IHJlc3VsdDsgCisgICAgUmVmUHRyPEluc3Bl
Y3RvclZhbHVlPiByZXN1bHQ7CiAgICAgbWFrZUNhbGwoZnVuY3Rpb24sICZyZXN1bHQpOwogICAg
IGlmICghcmVzdWx0IHx8IHJlc3VsdC0+dHlwZSgpICE9IEluc3BlY3RvclZhbHVlOjpUeXBlQXJy
YXkpIHsKICAgICAgICAgKmVycm9yU3RyaW5nID0gIkludGVybmFsIGVycm9yIjsKQEAgLTIwNiwy
MCArMjA2LDMxIEBAIHZvaWQgSW5qZWN0ZWRTY3JpcHQ6Om1ha2VDYWxsKFNjcmlwdEZ1bmN0aW9u
Q2FsbCYgZnVuY3Rpb24sIFJlZlB0cjxJbnNwZWN0b3JWYWx1CiAgICAgICAgICpyZXN1bHQgPSBJ
bnNwZWN0b3JTdHJpbmc6OmNyZWF0ZSgiRXhjZXB0aW9uIHdoaWxlIG1ha2luZyBhIGNhbGwuIik7
CiB9CiAKLXZvaWQgSW5qZWN0ZWRTY3JpcHQ6Om1ha2VPYmplY3RDYWxsKEVycm9yU3RyaW5nKiBl
cnJvclN0cmluZywgU2NyaXB0RnVuY3Rpb25DYWxsJiBmdW5jdGlvbiwgUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4qIG9iamVjdFJlc3VsdCkKK3ZvaWQgSW5qZWN0ZWRTY3JpcHQ6Om1ha2VFdmFsQ2Fs
bChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIFNjcmlwdEZ1bmN0aW9uQ2FsbCYgZnVuY3Rpb24s
IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBvYmplY3RSZXN1bHQsIGJvb2wqIHdhc1Rocm93bikK
IHsKICAgICBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IHJlc3VsdDsKICAgICBtYWtlQ2FsbChmdW5j
dGlvbiwgJnJlc3VsdCk7Ci0gICAgaWYgKHJlc3VsdCAmJiByZXN1bHQtPnR5cGUoKSA9PSBJbnNw
ZWN0b3JWYWx1ZTo6VHlwZVN0cmluZykgeworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgICpl
cnJvclN0cmluZyA9ICJJbnRlcm5hbCBlcnJvcjogcmVzdWx0IHZhbHVlIGlzIGVtcHR5IjsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAocmVzdWx0LT50eXBlKCkgPT0gSW5zcGVjdG9y
VmFsdWU6OlR5cGVTdHJpbmcpIHsKICAgICAgICAgcmVzdWx0LT5hc1N0cmluZyhlcnJvclN0cmlu
Zyk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0KLSAgICBpZiAoIXJlc3VsdCB8fCByZXN1bHQt
PnR5cGUoKSAhPSBJbnNwZWN0b3JWYWx1ZTo6VHlwZU9iamVjdCkgewotICAgICAgICAqZXJyb3JT
dHJpbmcgPSAiSW50ZXJuYWwgZXJyb3IiOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJl
c3VsdFBhaXIgPSByZXN1bHQtPmFzT2JqZWN0KCk7CisgICAgaWYgKCFyZXN1bHRQYWlyKSB7Cisg
ICAgICAgICplcnJvclN0cmluZyA9ICJJbnRlcm5hbCBlcnJvcjogcmVzdWx0IGlzIG5vdCBhbiBP
YmplY3QiOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFJlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IHJlc3VsdE9iaiA9IHJlc3VsdFBhaXItPmdldE9iamVjdCgicmVzdWx0Iik7CisgICAgYm9v
bCB3YXNUaHJvd25WYWwgPSBmYWxzZTsKKyAgICBpZiAoIXJlc3VsdE9iaiB8fCAhcmVzdWx0UGFp
ci0+Z2V0Qm9vbGVhbigid2FzVGhyb3duIiwgJndhc1Rocm93blZhbCkpIHsKKyAgICAgICAgKmVy
cm9yU3RyaW5nID0gIkludGVybmFsIGVycm9yOiByZXN1bHQgaXMgbm90IGEgcGFpciBvZiB2YWx1
ZSBhbmQgd2FzVGhyb3duIGZsYWciOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgICpvYmpl
Y3RSZXN1bHQgPSByZXN1bHQtPmFzT2JqZWN0KCk7CisgICAgKm9iamVjdFJlc3VsdCA9IHJlc3Vs
dE9iajsKKyAgICAqd2FzVGhyb3duID0gd2FzVGhyb3duVmFsOwogfQogCiBTY3JpcHRWYWx1ZSBJ
bmplY3RlZFNjcmlwdDo6bm9kZUFzU2NyaXB0VmFsdWUoTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgKaW5kZXggNGQ4NzAzNS4uYTk2NzA1MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTU1LDkgKzU1
LDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNOb1ZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9p
bmplY3RlZFNjcmlwdE9iamVjdC5oYXNOb1ZhbHVlKCk7IH0KIAotICAgIHZvaWQgZXZhbHVhdGUo
RXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyYgb2Jq
ZWN0R3JvdXAsIGJvb2wgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiogcmVzdWx0KTsKLSAgICB2b2lkIGV2YWx1YXRlT24oRXJyb3JTdHJpbmcqLCBjb25zdCBT
dHJpbmcmIG9iamVjdElkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+KiByZXN1bHQpOwotICAgIHZvaWQgZXZhbHVhdGVPbkNhbGxGcmFtZShFcnJvclN0
cmluZyosIGNvbnN0IFNjcmlwdFZhbHVlJiBjYWxsRnJhbWVzLCBjb25zdCBTdHJpbmcmIGNhbGxG
cmFtZUlkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyYgb2JqZWN0R3Jv
dXAsIGJvb2wgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0Piog
cmVzdWx0KTsKKyAgICB2b2lkIGV2YWx1YXRlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBl
eHByZXNzaW9uLCBjb25zdCBTdHJpbmcmIG9iamVjdEdyb3VwLCBib29sIGluY2x1ZGVDb21tYW5k
TGluZUFQSSwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCwgYm9vbCogd2FzVGhyb3du
KTsKKyAgICB2b2lkIGV2YWx1YXRlT24oRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIG9iamVj
dElkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBy
ZXN1bHQsIGJvb2wqIHdhc1Rocm93bik7CisgICAgdm9pZCBldmFsdWF0ZU9uQ2FsbEZyYW1lKEVy
cm9yU3RyaW5nKiwgY29uc3QgU2NyaXB0VmFsdWUmIGNhbGxGcmFtZXMsIGNvbnN0IFN0cmluZyYg
Y2FsbEZyYW1lSWQsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nJiBvYmpl
Y3RHcm91cCwgYm9vbCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIFJlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+KiByZXN1bHQsIGJvb2wqIHdhc1Rocm93bik7CiAgICAgdm9pZCBnZXRQcm9wZXJ0aWVzKEVy
cm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgYm9vbCBpZ25vcmVIYXNPd25Qcm9w
ZXJ0eSwgUmVmUHRyPEluc3BlY3RvckFycmF5PiogcmVzdWx0KTsKICAgICBOb2RlKiBub2RlRm9y
T2JqZWN0SWQoY29uc3QgU3RyaW5nJiBvYmplY3RJZCk7CiAgICAgdm9pZCBzZXRQcm9wZXJ0eVZh
bHVlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgY29uc3QgU3RyaW5nJiBw
cm9wZXJ0eU5hbWUsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbik7CkBAIC04MCw3ICs4MCw3IEBA
IHByaXZhdGU6CiAKICAgICBib29sIGNhbkFjY2Vzc0luc3BlY3RlZFdpbmRvdygpOwogICAgIHZv
aWQgbWFrZUNhbGwoU2NyaXB0RnVuY3Rpb25DYWxsJiwgUmVmUHRyPEluc3BlY3RvclZhbHVlPiog
cmVzdWx0KTsKLSAgICB2b2lkIG1ha2VPYmplY3RDYWxsKEVycm9yU3RyaW5nKiwgU2NyaXB0RnVu
Y3Rpb25DYWxsJiwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCk7CisgICAgdm9pZCBt
YWtlRXZhbENhbGwoRXJyb3JTdHJpbmcqLCBTY3JpcHRGdW5jdGlvbkNhbGwmLCBSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiogcmVzdWx0LCBib29sKiB3YXNUaHJvd24pOwogICAgIFNjcmlwdFZhbHVl
IG5vZGVBc1NjcmlwdFZhbHVlKE5vZGUqKTsKIAogICAgIFNjcmlwdE9iamVjdCBtX2luamVjdGVk
U2NyaXB0T2JqZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVj
dGVkU2NyaXB0U291cmNlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2Ny
aXB0U291cmNlLmpzCmluZGV4IGY2ZmUxYmEuLjg0NWM0YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKQEAgLTkwLDEzICs5MCwxNCBA
QCBJbmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBvYmplY3Q7CiAg
ICAgfSwKIAorICAgIC8vIFRoaXMgbWV0aG9kIGNhbm5vdCB0aHJvdy4KICAgICBfd3JhcE9iamVj
dDogZnVuY3Rpb24ob2JqZWN0LCBvYmplY3RHcm91cE5hbWUpCiAgICAgewogICAgICAgICB0cnkg
ewogICAgICAgICAgICAgaWYgKHR5cGVvZiBvYmplY3QgPT09ICJvYmplY3QiIHx8IHR5cGVvZiBv
YmplY3QgPT09ICJmdW5jdGlvbiIgfHwgdGhpcy5faXNIVE1MQWxsQ29sbGVjdGlvbihvYmplY3Qp
KSB7CiAgICAgICAgICAgICAgICAgdmFyIGlkID0gdGhpcy5fbGFzdEJvdW5kT2JqZWN0SWQrKzsK
ICAgICAgICAgICAgICAgICB0aGlzLl9pZFRvV3JhcHBlZE9iamVjdFtpZF0gPSBvYmplY3Q7Ci0g
ICAgICAgICAgICAgICAgdmFyIG9iamVjdElkID0gIntcImluamVjdGVkU2NyaXB0SWRcIjoiICsg
aW5qZWN0ZWRTY3JpcHRJZCArICIsXCJpZFwiOiIgKyBpZCArICJ9IjsgICAgCisgICAgICAgICAg
ICAgICAgdmFyIG9iamVjdElkID0gIntcImluamVjdGVkU2NyaXB0SWRcIjoiICsgaW5qZWN0ZWRT
Y3JpcHRJZCArICIsXCJpZFwiOiIgKyBpZCArICJ9IjsKICAgICAgICAgICAgICAgICBpZiAob2Jq
ZWN0R3JvdXBOYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgIHZhciBncm91cCA9IHRoaXMuX29i
amVjdEdyb3Vwc1tvYmplY3RHcm91cE5hbWVdOwogICAgICAgICAgICAgICAgICAgICBpZiAoIWdy
b3VwKSB7CkBAIC0xMDksNyArMTEwLDcgQEAgSW5qZWN0ZWRTY3JpcHQucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIEluamVjdGVkU2NyaXB0LlJlbW90ZU9i
amVjdC5mcm9tT2JqZWN0KG9iamVjdCwgb2JqZWN0SWQpOwogICAgICAgICB9IGNhdGNoIChlKSB7
Ci0gICAgICAgICAgICByZXR1cm4gSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0LmZyb21PYmpl
Y3QoIlsgRXhjZXB0aW9uOiAiICsgZS50b1N0cmluZygpICsgIiBdIik7CisgICAgICAgICAgICBy
ZXR1cm4gSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0LmZyb21FeGNlcHRpb24oZSk7CiAgICAg
ICAgIH0KICAgICB9LAogCkBAIC0xNTIsMjMgKzE1MywyNSBAQCBJbmplY3RlZFNjcmlwdC5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHZhciBwcm9wZXJ0eU5hbWVzID0gaWdub3JlSGFzT3duUHJvcGVy
dHkgPyB0aGlzLl9nZXRQcm9wZXJ0eU5hbWVzKG9iamVjdCkgOiBPYmplY3QuZ2V0T3duUHJvcGVy
dHlOYW1lcyhvYmplY3QpOwogICAgICAgICBpZiAoIWlnbm9yZUhhc093blByb3BlcnR5ICYmIG9i
amVjdC5fX3Byb3RvX18pCiAgICAgICAgICAgICBwcm9wZXJ0eU5hbWVzLnB1c2goIl9fcHJvdG9f
XyIpOwotICAgIAorCiAgICAgICAgIC8vIEdvIG92ZXIgcHJvcGVydGllcywgcHJlcGFyZSByZXN1
bHRzLgogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BlcnR5TmFtZXMubGVuZ3RoOyAr
K2kpIHsKICAgICAgICAgICAgIHZhciBwcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWVzW2ldOwot
ICAgIAorCiAgICAgICAgICAgICB2YXIgcHJvcGVydHkgPSB7fTsKICAgICAgICAgICAgIHByb3Bl
cnR5Lm5hbWUgPSBwcm9wZXJ0eU5hbWUgKyAiIjsKICAgICAgICAgICAgIHZhciBpc0dldHRlciA9
IG9iamVjdFsiX19sb29rdXBHZXR0ZXJfXyJdICYmIG9iamVjdC5fX2xvb2t1cEdldHRlcl9fKHBy
b3BlcnR5TmFtZSk7CiAgICAgICAgICAgICBpZiAoIWlzR2V0dGVyKSB7CiAgICAgICAgICAgICAg
ICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkudmFsdWUgPSB0aGlzLl93cmFw
T2JqZWN0KG9iamVjdFtwcm9wZXJ0eU5hbWVdLCBvYmplY3RHcm91cE5hbWUpOworICAgICAgICAg
ICAgICAgICAgICB2YXIgdmFsdWUgPSBvYmplY3RbcHJvcGVydHlOYW1lXTsKICAgICAgICAgICAg
ICAgICB9IGNhdGNoKGUpIHsKLSAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkudmFsdWUgPSBu
ZXcgSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0LmZyb21FeGNlcHRpb24oZSk7CisgICAgICAg
ICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGU7CisgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5
Lndhc1Rocm93biA9IHRydWU7CiAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHBy
b3BlcnR5LnZhbHVlID0gdGhpcy5fd3JhcE9iamVjdCh2YWx1ZSwgb2JqZWN0R3JvdXBOYW1lKTsK
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHRoaXMgc2hv
dWxkIHNob3cgc29tZXRoaW5nIGxpa2UgImdldHRlciIgKGJ1ZyAxNjczNCkuCi0gICAgICAgICAg
ICAgICAgcHJvcGVydHkudmFsdWUgPSBuZXcgSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0LmZy
b21PYmplY3QoIlx1MjAxNCIpOyAvLyBlbSBkYXNoCisgICAgICAgICAgICAgICAgcHJvcGVydHku
dmFsdWUgPSBJbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3QuZnJvbU9iamVjdCgiXHUyMDE0Iik7
IC8vIGVtIGRhc2gKICAgICAgICAgICAgICAgICBwcm9wZXJ0eS5pc0dldHRlciA9IHRydWU7CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICBwcm9wZXJ0aWVzLnB1c2gocHJvcGVydHkpOwpAQCAt
MTgyLDE3ICsxODUsMTcgQEAgSW5qZWN0ZWRTY3JpcHQucHJvdG90eXBlID0gewogICAgICAgICB2
YXIgb2JqZWN0ID0gdGhpcy5fb2JqZWN0Rm9ySWQocGFyc2VkT2JqZWN0SWQpOwogICAgICAgICBp
ZiAoIXRoaXMuX2lzRGVmaW5lZChvYmplY3QpKQogICAgICAgICAgICAgcmV0dXJuICJPYmplY3Qg
d2l0aCBnaXZlbiBpZCBub3QgZm91bmQiOwotICAgIAorCiAgICAgICAgIHZhciBleHByZXNzaW9u
TGVuZ3RoID0gZXhwcmVzc2lvbi5sZW5ndGg7CiAgICAgICAgIGlmICghZXhwcmVzc2lvbkxlbmd0
aCkgewogICAgICAgICAgICAgZGVsZXRlIG9iamVjdFtwcm9wZXJ0eU5hbWVdOwogICAgICAgICAg
ICAgcmV0dXJuIHByb3BlcnR5TmFtZSBpbiBvYmplY3QgPyAiQ291bmQgbm90IGRlbGV0ZSBwcm9w
ZXJ0eS4iIDogdW5kZWZpbmVkOwogICAgICAgICB9Ci0gICAgCisKICAgICAgICAgdHJ5IHsKICAg
ICAgICAgICAgIC8vIFN1cnJvdW5kIHRoZSBleHByZXNzaW9uIGluIHBhcmVudGhlc2lzIHNvIHRo
ZSByZXN1bHQgb2YgdGhlIGV2YWwgaXMgdGhlIHJlc3VsdAogICAgICAgICAgICAgLy8gb2YgdGhl
IHdob2xlIGV4cHJlc3Npb24gbm90IHRoZSBsYXN0IHBvdGVudGlhbCBzdWItZXhwcmVzc2lvbi4K
LSAgICAKKwogICAgICAgICAgICAgLy8gVGhlcmUgaXMgYSByZWdyZXNzaW9uIGludHJvZHVjZWQg
aGVyZTogZXZhbCBpcyBub3cgaGFwcGVuaW5nIGFnYWluc3QgZ2xvYmFsIG9iamVjdCwKICAgICAg
ICAgICAgIC8vIG5vdCBjYWxsIGZyYW1lIHdoaWxlIG9uIGEgYnJlYWtwb2ludC4KICAgICAgICAg
ICAgIC8vIFRPRE86IGJyaW5nIGV2YWx1YXRpb24gYWdhaW5zdCBjYWxsIGZyYW1lIGJhY2suCkBA
IC0yNjIsOSArMjY1LDExIEBAIEluamVjdGVkU2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICBfZXZh
bHVhdGVBbmRXcmFwOiBmdW5jdGlvbihldmFsRnVuY3Rpb24sIG9iamVjdCwgZXhwcmVzc2lvbiwg
b2JqZWN0R3JvdXAsIGlzRXZhbE9uQ2FsbEZyYW1lLCBpbmplY3RDb21tYW5kTGluZUFQSSkKICAg
ICB7CiAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICByZXR1cm4gdGhpcy5fd3JhcE9iamVjdCh0
aGlzLl9ldmFsdWF0ZU9uKGV2YWxGdW5jdGlvbiwgb2JqZWN0LCBleHByZXNzaW9uLCBpc0V2YWxP
bkNhbGxGcmFtZSwgaW5qZWN0Q29tbWFuZExpbmVBUEkpLCBvYmplY3RHcm91cCk7CisgICAgICAg
ICAgICByZXR1cm4geyB3YXNUaHJvd246IGZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgcmVz
dWx0OiB0aGlzLl93cmFwT2JqZWN0KHRoaXMuX2V2YWx1YXRlT24oZXZhbEZ1bmN0aW9uLCBvYmpl
Y3QsIGV4cHJlc3Npb24sIGlzRXZhbE9uQ2FsbEZyYW1lLCBpbmplY3RDb21tYW5kTGluZUFQSSks
IG9iamVjdEdyb3VwKSB9OwogICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICByZXR1
cm4gSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0LmZyb21FeGNlcHRpb24oZSk7CisgICAgICAg
ICAgICByZXR1cm4geyB3YXNUaHJvd246IHRydWUsCisgICAgICAgICAgICAgICAgICAgICByZXN1
bHQ6IHRoaXMuX3dyYXBPYmplY3QoZSwgb2JqZWN0R3JvdXApIH07CiAgICAgICAgIH0KICAgICB9
LAogCkBAIC0yNzksMTQgKzI4NCw3IEBAIEluamVjdGVkU2NyaXB0LnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgICAgICBpbnNwZWN0ZWRXaW5kb3cuY29uc29sZS5fY29tbWFuZExpbmVBUEkgPSBu
ZXcgQ29tbWFuZExpbmVBUEkodGhpcy5fY29tbWFuZExpbmVBUElJbXBsLCBpc0V2YWxPbkNhbGxG
cmFtZSA/IG9iamVjdCA6IG51bGwpOwogICAgICAgICAgICAgICAgIGV4cHJlc3Npb24gPSAid2l0
aCAoKHdpbmRvdyAmJiB3aW5kb3cuY29uc29sZSAmJiB3aW5kb3cuY29uc29sZS5fY29tbWFuZExp
bmVBUEkpIHx8IHt9KSB7XG4iICsgZXhwcmVzc2lvbiArICJcbn0iOwogICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICB2YXIgdmFsdWUgPSBldmFsRnVuY3Rpb24uY2FsbChvYmplY3QsIGV4cHJl
c3Npb24pOwotCi0gICAgICAgICAgICAvLyBXaGVuIGV2YWx1YXRpbmcgb24gY2FsbCBmcmFtZSBl
cnJvciBpcyBub3QgdGhyb3duLCBidXQgcmV0dXJuZWQgYXMgYSB2YWx1ZS4KLSAgICAgICAgICAg
IGlmICh0aGlzLl90eXBlKHZhbHVlKSA9PT0gImVycm9yIikKLSAgICAgICAgICAgICAgICB0aHJv
dyB2YWx1ZS50b1N0cmluZygpOwotCi0gICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAg
ICAgICByZXR1cm4gZXZhbEZ1bmN0aW9uLmNhbGwob2JqZWN0LCBleHByZXNzaW9uKTsKICAgICAg
ICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgIGlmIChpbmplY3RDb21tYW5kTGluZUFQSSAmJiBp
bnNwZWN0ZWRXaW5kb3cuY29uc29sZSkKICAgICAgICAgICAgICAgICBkZWxldGUgaW5zcGVjdGVk
V2luZG93LmNvbnNvbGUuX2NvbW1hbmRMaW5lQVBJOwpAQCAtMjk3LDcgKzI5NSw3IEBAIEluamVj
dGVkU2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIGlmICghY2FsbEZyYW1lKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAorCiAgICAgICAgIHZhciByZXN1bHQgPSBb
XTsKICAgICAgICAgdmFyIGRlcHRoID0gMDsKICAgICAgICAgZG8gewpAQCAtMzk1LDggKzM5Myw2
IEBAIEluamVjdGVkU2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybiAiYXJy
YXkiOwogICAgICAgICBpZiAob2JqIGluc3RhbmNlb2YgaW5zcGVjdGVkV2luZG93LkhUTUxDb2xs
ZWN0aW9uKQogICAgICAgICAgICAgcmV0dXJuICJhcnJheSI7Ci0gICAgICAgIGlmIChvYmogaW5z
dGFuY2VvZiBpbnNwZWN0ZWRXaW5kb3cuRXJyb3IpCi0gICAgICAgICAgICByZXR1cm4gImVycm9y
IjsKICAgICAgICAgcmV0dXJuIHR5cGU7CiAgICAgfSwKIApAQCAtNDU3LDIxICs0NTMsMTggQEAg
SW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0LmZyb21FeGNlcHRpb24gPSBmdW5jdGlvbihlKQog
ICAgIH0gY2F0Y2ggKGV4KSB7CiAgICAgICAgIHZhciBkZXNjcmlwdGlvbiA9ICI8ZmFpbGVkIHRv
IGNvbnZlcnQgZXhjZXB0aW9uIHRvIHN0cmluZz4iOwogICAgIH0KLSAgICByZXR1cm4gbmV3IElu
amVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdChudWxsLCAiZXJyb3IiLCBkZXNjcmlwdGlvbik7Cisg
ICAgcmV0dXJuIG5ldyBJbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3QobnVsbCwgInN0cmluZyIs
ICJbIEV4Y2VwdGlvbjogIiArIGRlc2NyaXB0aW9uICsgIiBdIik7CiB9CiAKKy8vIFRoaXMgbWV0
aG9kIG1heSB0aHJvdwogSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0LmZyb21PYmplY3QgPSBm
dW5jdGlvbihvYmplY3QsIG9iamVjdElkKQogewogICAgIHZhciB0eXBlID0gaW5qZWN0ZWRTY3Jp
cHQuX3R5cGUob2JqZWN0KTsKICAgICB2YXIgcmF3VHlwZSA9IHR5cGVvZiBvYmplY3Q7CiAgICAg
dmFyIGhhc0NoaWxkcmVuID0gKHJhd1R5cGUgPT09ICJvYmplY3QiICYmIG9iamVjdCAhPT0gbnVs
bCAmJiAoISFPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QpLmxlbmd0aCB8fCAhIW9i
amVjdC5fX3Byb3RvX18pKSB8fCByYXdUeXBlID09PSAiZnVuY3Rpb24iOwogICAgIHZhciBkZXNj
cmlwdGlvbiA9ICIiOwotICAgIHRyeSB7Ci0gICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IGluamVj
dGVkU2NyaXB0Ll9kZXNjcmliZShvYmplY3QpOwotICAgICAgICByZXR1cm4gbmV3IEluamVjdGVk
U2NyaXB0LlJlbW90ZU9iamVjdChvYmplY3RJZCwgdHlwZSwgZGVzY3JpcHRpb24sIGhhc0NoaWxk
cmVuKTsKLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHJldHVybiBJbmplY3RlZFNjcmlwdC5S
ZW1vdGVPYmplY3QuZnJvbUV4Y2VwdGlvbihlKTsKLSAgICB9CisgICAgdmFyIGRlc2NyaXB0aW9u
ID0gaW5qZWN0ZWRTY3JpcHQuX2Rlc2NyaWJlKG9iamVjdCk7CisgICAgcmV0dXJuIG5ldyBJbmpl
Y3RlZFNjcmlwdC5SZW1vdGVPYmplY3Qob2JqZWN0SWQsIHR5cGUsIGRlc2NyaXB0aW9uLCBoYXND
aGlsZHJlbik7CiB9CiAKIEluamVjdGVkU2NyaXB0LkNhbGxGcmFtZVByb3h5ID0gZnVuY3Rpb24o
b3JkaW5hbCwgY2FsbEZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29u
CmluZGV4IGM2MGIyYTYuLmM4NWY4M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yLmpzb24KQEAgLTIwMSw3ICsyMDEsNyBAQAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImRlc2NyaXB0aW9uIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlN0cmlu
ZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0LiIgfSwKICAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJoYXNDaGlsZHJlbiIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0
cnVlLCAiZGVzY3JpcHRpb24iOiAiVHJ1ZSB3aGVuIHRoaXMgb2JqZWN0IGNhbiBiZSBxdWVyaWVk
IGZvciBjaGlsZHJlbi4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib2JqZWN0
SWQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAi
VW5pcXVlIG9iamVjdCBpZGVudGlmaWVyIChmb3Igbm9uLXByaW1pdGl2ZSB2YWx1ZXMpLiIgfSwK
LSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0eXBlIiwgInR5cGUiOiAic3RyaW5nIiwg
ImVudW0iOiBbIm9iamVjdCIsICJhcnJheSIsICJmdW5jdGlvbiIsICJudWxsIiwgIm5vZGUiLCAi
dW5kZWZpbmVkIiwgInN0cmluZyIsICJudW1iZXIiLCAiYm9vbGVhbiIsICJlcnJvciIsICJyZWdl
eHAiLCAiZGF0ZSJdLCAiZGVzY3JpcHRpb24iOiAiT2JqZWN0IHR5cGUuIiB9CisgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAidHlwZSIsICJ0eXBlIjogInN0cmluZyIsICJlbnVtIjogWyJv
YmplY3QiLCAiYXJyYXkiLCAiZnVuY3Rpb24iLCAibnVsbCIsICJub2RlIiwgInVuZGVmaW5lZCIs
ICJzdHJpbmciLCAibnVtYmVyIiwgImJvb2xlYW4iLCAicmVnZXhwIiwgImRhdGUiXSwgImRlc2Ny
aXB0aW9uIjogIk9iamVjdCB0eXBlLiIgfQogICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAg
IH0sCiAgICAgICAgICAgICB7CkBAIC0yMTEsNiArMjExLDcgQEAKICAgICAgICAgICAgICAgICAi
cHJvcGVydGllcyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJuYW1lIiwgInR5
cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlByb3BlcnR5IG5hbWUuIiB9LAogICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInZhbHVlIiwgIiRyZWYiOiAiUmVtb3RlT2JqZWN0Iiwg
ImRlc2NyaXB0aW9uIjogIlByb3BlcnR5IHZhbHVlLiIgfSwKKyAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJ3YXNUaHJvd24iLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1
ZSwgImRlc2NyaXB0aW9uIjogIlRydWUgaWYgZXhjZXB0aW9uIHdhcyB0aHJvd24gb24gYXR0ZW1w
dCB0byBnZXQgdGhlIHByb3BlcnR5IHZhbHVlLCBpbiB0aGF0IGNhc2UgdGhlIHZhbHVlIHByb3Bl
cnkgd2lsbCBjb250YWluIHRocm93biB2YWx1ZS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiaXNHZXR0ZXIiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwg
ImRlc2NyaXB0aW9uIjogIlRydWUgaWYgdGhpcyBwcm9wZXJ0eSBpcyBnZXR0ZXIuIiB9CiAgICAg
ICAgICAgICAgICAgXQogICAgICAgICAgICAgfQpAQCAtMjI0LDcgKzIyNSw4IEBACiAgICAgICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiaW5jbHVkZUNvbW1hbmRMaW5lQVBJIiwgInR5cGUiOiAi
Ym9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJEZXRlcm1pbmVzIHdo
ZXRoZXIgQ29tbWFuZCBMaW5lIEFQSSBzaG91bGQgYmUgYXZhaWxhYmxlIGR1cmluZyB0aGUgZXZh
bHVhdGlvbi4iIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJyZXR1cm5z
IjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlc3VsdCIsICIkcmVmIjogIlJl
bW90ZU9iamVjdCIsICJkZXNjcmlwdGlvbiI6ICJFdmFsdWF0aW9uIHJlc3VsdC4iIH0KKyAgICAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXN1bHQiLCAiJHJlZiI6ICJSZW1vdGVPYmplY3Qi
LCAiZGVzY3JpcHRpb24iOiAiRXZhbHVhdGlvbiByZXN1bHQuIiB9LAorICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogIndhc1Rocm93biIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwi
OiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVHJ1ZSBpZmYgdGhlIHJlc3VsdCB3YXMgdGhyb3duIGR1
cmluZyB0aGUgZXZhbHVhdGlvbi4iIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJFdmFsdWF0ZSBleHByZXNzaW9uIG9uIGdsb2JhbCBvYmplY3Qu
IgogICAgICAgICAgICAgfSwKQEAgLTIzNSw3ICsyMzcsOCBAQAogICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImV4cHJlc3Npb24iLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24i
OiAiRXhwcmVzc2lvbiB0byBldmFsdWF0ZS4iIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAg
ICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJl
c3VsdCIsICIkcmVmIjogIlJlbW90ZU9iamVjdCIsICJkZXNjcmlwdGlvbiI6ICJFdmFsdWF0aW9u
IHJlc3VsdC4iIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXN1bHQiLCAiJHJl
ZiI6ICJSZW1vdGVPYmplY3QiLCAiZGVzY3JpcHRpb24iOiAiRXZhbHVhdGlvbiByZXN1bHQuIiB9
LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIndhc1Rocm93biIsICJ0eXBlIjogImJv
b2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVHJ1ZSBpZmYgdGhlIHJl
c3VsdCB3YXMgdGhyb3duIGR1cmluZyB0aGUgZXZhbHVhdGlvbi4iIH0KICAgICAgICAgICAgICAg
ICBdLAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJFdmFsdWF0ZSBleHByZXNzaW9u
IG9uIGdpdmVuIG9iamVjdCB1c2luZyBpdCBhcyA8Y29kZT50aGlzPC9jb2RlPi4iCiAgICAgICAg
ICAgICB9LApAQCAtMTQ0OSw3ICsxNDUyLDggQEAKICAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJpbmNsdWRlQ29tbWFuZExpbmVBUEkiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFs
IjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlNwZWNpZmllcyB3aGV0aGVyIGNvbW1hbmQgbGluZSBB
UEkgc2hvdWxkIGJlIGF2YWlsYWJsZSB0byB0aGUgZXZhbHVhdGVkIGV4cHJlc3Npb24sIGRlZmF1
bHRzIHRvIGZhbHNlLiIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgInJl
dHVybnMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzdWx0IiwgIiRyZWYi
OiAiUnVudGltZS5SZW1vdGVPYmplY3QiLCAiZGVzY3JpcHRpb24iOiAiT2JqZWN0IHdyYXBwZXIg
Zm9yIHRoZSBldmFsdWF0aW9uIHJlc3VsdC4iIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJyZXN1bHQiLCAiJHJlZiI6ICJSdW50aW1lLlJlbW90ZU9iamVjdCIsICJkZXNjcmlwdGlv
biI6ICJPYmplY3Qgd3JhcHBlciBmb3IgdGhlIGV2YWx1YXRpb24gcmVzdWx0LiIgfSwKKyAgICAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ3YXNUaHJvd24iLCAidHlwZSI6ICJib29sZWFuIiwg
Im9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRydWUgaWZmIHRoZSByZXN1bHQgd2Fz
IHRocm93biBkdXJpbmcgdGhlIGV2YWx1YXRpb24uIiB9CiAgICAgICAgICAgICAgICAgXSwKICAg
ICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRXZhbHVhdGVzIGV4cHJlc3Npb24gb24gYSBn
aXZlbiBjYWxsIGZyYW1lLiIKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAppbmRleCBhOGMyYWU2Li4yZGRj
MTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVn
Z2VyQWdlbnQuY3BwCkBAIC0zNTIsMTEgKzM1MiwxNCBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2Vy
QWdlbnQ6OnNldFBhdXNlT25FeGNlcHRpb25zKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29u
cwogICAgICAgICAqZXJyb3JTdHJpbmcgPSAiSW50ZXJuYWwgZXJyb3IuIENvdWxkIG5vdCBjaGFu
Z2UgcGF1c2Ugb24gZXhjZXB0aW9ucyBzdGF0ZSI7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudDo6ZXZhbHVhdGVPbkNhbGxGcmFtZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNv
bnN0IFN0cmluZyYgY2FsbEZyYW1lSWQsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3Qg
U3RyaW5nKiBjb25zdCBvYmplY3RHcm91cCwgY29uc3QgYm9vbCogY29uc3QgaW5jbHVkZUNvbW1h
bmRMaW5lQVBJLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0KQordm9pZCBJbnNwZWN0
b3JEZWJ1Z2dlckFnZW50OjpldmFsdWF0ZU9uQ2FsbEZyYW1lKEVycm9yU3RyaW5nKiBlcnJvclN0
cmluZywgY29uc3QgU3RyaW5nJiBjYWxsRnJhbWVJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9u
LCBjb25zdCBTdHJpbmcqIGNvbnN0IG9iamVjdEdyb3VwLCBjb25zdCBib29sKiBjb25zdCBpbmNs
dWRlQ29tbWFuZExpbmVBUEksIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQsIGJvb2wq
IHdhc1Rocm93bikKIHsKICAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdCA9IG1faW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlwdEZvck9iamVjdElkKGNhbGxGcmFtZUlk
KTsKLSAgICBpZiAoIWluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSkKLSAgICAgICAgaW5qZWN0
ZWRTY3JpcHQuZXZhbHVhdGVPbkNhbGxGcmFtZShlcnJvclN0cmluZywgbV9jdXJyZW50Q2FsbFN0
YWNrLCBjYWxsRnJhbWVJZCwgZXhwcmVzc2lvbiwgb2JqZWN0R3JvdXAgPyAqb2JqZWN0R3JvdXAg
OiAiIiwgaW5jbHVkZUNvbW1hbmRMaW5lQVBJID8gKmluY2x1ZGVDb21tYW5kTGluZUFQSSA6IGZh
bHNlLCByZXN1bHQpOworICAgIGlmIChpbmplY3RlZFNjcmlwdC5oYXNOb1ZhbHVlKCkpIHsKKyAg
ICAgICAgKmVycm9yU3RyaW5nID0gIkluc3BlY3RlZCBmcmFtZSBoYXMgZ29uZSI7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgaW5qZWN0ZWRTY3JpcHQuZXZhbHVhdGVPbkNhbGxGcmFtZShl
cnJvclN0cmluZywgbV9jdXJyZW50Q2FsbFN0YWNrLCBjYWxsRnJhbWVJZCwgZXhwcmVzc2lvbiwg
b2JqZWN0R3JvdXAgPyAqb2JqZWN0R3JvdXAgOiAiIiwgaW5jbHVkZUNvbW1hbmRMaW5lQVBJID8g
KmluY2x1ZGVDb21tYW5kTGluZUFQSSA6IGZhbHNlLCByZXN1bHQsIHdhc1Rocm93bik7CiB9CiAK
IFBhc3NSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmN1cnJl
bnRDYWxsRnJhbWVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RGVidWdnZXJBZ2VudC5oCmluZGV4IGIzNzlkZGEuLmI1NGFkZWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaApAQCAtOTcsNyArOTcs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGVwSW50byhFcnJvclN0cmluZyopOwogICAgIHZvaWQg
c3RlcE91dChFcnJvclN0cmluZyopOwogICAgIHZvaWQgc2V0UGF1c2VPbkV4Y2VwdGlvbnMoRXJy
b3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHBhdXNlU3RhdGUpOwotICAgIHZvaWQgZXZhbHVhdGVP
bkNhbGxGcmFtZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgY2FsbEZyYW1lSWQsIGNvbnN0
IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nKiBjb25zdCBvYmplY3RHcm91cCwgY29u
c3QgYm9vbCogY29uc3QgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiogcmVzdWx0KTsKKyAgICB2b2lkIGV2YWx1YXRlT25DYWxsRnJhbWUoRXJyb3JTdHJpbmcq
LCBjb25zdCBTdHJpbmcmIGNhbGxGcmFtZUlkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNv
bnN0IFN0cmluZyogY29uc3Qgb2JqZWN0R3JvdXAsIGNvbnN0IGJvb2wqIGNvbnN0IGluY2x1ZGVD
b21tYW5kTGluZUFQSSwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCwgYm9vbCogd2Fz
VGhyb3duKTsKIAogICAgIGNsYXNzIExpc3RlbmVyIHsKICAgICBwdWJsaWM6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCmluZGV4IGYx
MzkwNzEuLmVmNzIzZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSdW50aW1lQWdlbnQuY3BwCkBAIC00OSwyNSArNDksMzQgQEAgSW5zcGVjdG9yUnVudGlt
ZUFnZW50Ojp+SW5zcGVjdG9yUnVudGltZUFnZW50KCkKIHsKIH0KIAotdm9pZCBJbnNwZWN0b3JS
dW50aW1lQWdlbnQ6OmV2YWx1YXRlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3Ry
aW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcqIGNvbnN0IG9iamVjdEdyb3VwLCBjb25zdCBi
b29sKiBjb25zdCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
KiByZXN1bHQpCit2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6ZXZhbHVhdGUoRXJyb3JTdHJp
bmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyog
Y29uc3Qgb2JqZWN0R3JvdXAsIGNvbnN0IGJvb2wqIGNvbnN0IGluY2x1ZGVDb21tYW5kTGluZUFQ
SSwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCwgYm9vbCogd2FzVGhyb3duKQogewog
ICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFn
ZXItPmluamVjdGVkU2NyaXB0Rm9yKGdldERlZmF1bHRJbnNwZWN0ZWRTdGF0ZSgpKTsKLSAgICBp
ZiAoIWluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSkKLSAgICAgICAgaW5qZWN0ZWRTY3JpcHQu
ZXZhbHVhdGUoZXJyb3JTdHJpbmcsIGV4cHJlc3Npb24sIG9iamVjdEdyb3VwID8gKm9iamVjdEdy
b3VwIDogIiIsIGluY2x1ZGVDb21tYW5kTGluZUFQSSA/ICppbmNsdWRlQ29tbWFuZExpbmVBUEkg
OiBmYWxzZSwgcmVzdWx0KTsKKyAgICBpZiAoaW5qZWN0ZWRTY3JpcHQuaGFzTm9WYWx1ZSgpKSB7
CisgICAgICAgICplcnJvclN0cmluZyA9ICJJbnNwZWN0ZWQgZnJhbWUgaGFzIGdvbmUiOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIGluamVjdGVkU2NyaXB0LmV2YWx1YXRlKGVycm9yU3Ry
aW5nLCBleHByZXNzaW9uLCBvYmplY3RHcm91cCA/ICpvYmplY3RHcm91cCA6ICIiLCBpbmNsdWRl
Q29tbWFuZExpbmVBUEkgPyAqaW5jbHVkZUNvbW1hbmRMaW5lQVBJIDogZmFsc2UsIHJlc3VsdCwg
d2FzVGhyb3duKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmV2YWx1YXRlT24o
RXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBT
dHJpbmcmIGV4cHJlc3Npb24sIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQpCit2b2lk
IEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6ZXZhbHVhdGVPbihFcnJvclN0cmluZyogZXJyb3JTdHJp
bmcsIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCwgYm9vbCogd2FzVGhyb3duKQogewogICAgIElu
amVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmlu
amVjdGVkU2NyaXB0Rm9yT2JqZWN0SWQob2JqZWN0SWQpOwotICAgIGlmICghaW5qZWN0ZWRTY3Jp
cHQuaGFzTm9WYWx1ZSgpKQotICAgICAgICBpbmplY3RlZFNjcmlwdC5ldmFsdWF0ZU9uKGVycm9y
U3RyaW5nLCBvYmplY3RJZCwgZXhwcmVzc2lvbiwgcmVzdWx0KTsKKyAgICBpZiAoaW5qZWN0ZWRT
Y3JpcHQuaGFzTm9WYWx1ZSgpKSB7CisgICAgICAgICplcnJvclN0cmluZyA9ICJJbnNwZWN0ZWQg
ZnJhbWUgaGFzIGdvbmUiOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGluamVjdGVkU2Ny
aXB0LmV2YWx1YXRlT24oZXJyb3JTdHJpbmcsIG9iamVjdElkLCBleHByZXNzaW9uLCByZXN1bHQs
IHdhc1Rocm93bik7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpnZXRQcm9wZXJ0
aWVzKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgYm9v
bCBpZ25vcmVIYXNPd25Qcm9wZXJ0eSwgUmVmUHRyPEluc3BlY3RvckFycmF5PiogcmVzdWx0KQog
ewogICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1h
bmFnZXItPmluamVjdGVkU2NyaXB0Rm9yT2JqZWN0SWQob2JqZWN0SWQpOwotICAgIGlmICghaW5q
ZWN0ZWRTY3JpcHQuaGFzTm9WYWx1ZSgpKQotICAgICAgICBpbmplY3RlZFNjcmlwdC5nZXRQcm9w
ZXJ0aWVzKGVycm9yU3RyaW5nLCBvYmplY3RJZCwgaWdub3JlSGFzT3duUHJvcGVydHksIHJlc3Vs
dCk7CisgICAgaWYgKGluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSkgeworICAgICAgICAqZXJy
b3JTdHJpbmcgPSAiSW5zcGVjdGVkIGZyYW1lIGhhcyBnb25lIjsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICBpbmplY3RlZFNjcmlwdC5nZXRQcm9wZXJ0aWVzKGVycm9yU3RyaW5nLCBvYmpl
Y3RJZCwgaWdub3JlSGFzT3duUHJvcGVydHksIHJlc3VsdCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9y
UnVudGltZUFnZW50OjpzZXRQcm9wZXJ0eVZhbHVlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywg
Y29uc3QgU3RyaW5nJiBvYmplY3RJZCwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGNvbnN0
IFN0cmluZyYgZXhwcmVzc2lvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSdW50aW1lQWdlbnQuaAppbmRleCA0MDY3MDdmLi5kNTgwZTFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oCkBAIC01Miw4ICs1
Miw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JSdW50aW1lQWdlbnQoKTsKIAog
ICAgIC8vIFBhcnQgb2YgdGhlIHByb3RvY29sLgotICAgIHZvaWQgZXZhbHVhdGUoRXJyb3JTdHJp
bmcqLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyogY29uc3Qgb2JqZWN0
R3JvdXAsIGNvbnN0IGJvb2wqIGNvbnN0IGluY2x1ZGVDb21tYW5kTGluZUFQSSwgUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4qIHJlc3VsdCk7Ci0gICAgdm9pZCBldmFsdWF0ZU9uKEVycm9yU3RyaW5n
KiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0KTsKKyAgICB2b2lkIGV2YWx1YXRlKEVycm9yU3Ry
aW5nKiwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcqIGNvbnN0IG9iamVj
dEdyb3VwLCBjb25zdCBib29sKiBjb25zdCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIFJlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+KiByZXN1bHQsIGJvb2wqIHdhc1Rocm93bik7CisgICAgdm9pZCBldmFs
dWF0ZU9uKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgY29uc3QgU3RyaW5n
JiBleHByZXNzaW9uLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0LCBib29sKiB3YXNU
aHJvd24pOwogICAgIHZvaWQgcmVsZWFzZU9iamVjdChFcnJvclN0cmluZyosIGNvbnN0IFN0cmlu
ZyYgb2JqZWN0SWQpOwogICAgIHZvaWQgZ2V0UHJvcGVydGllcyhFcnJvclN0cmluZyosIGNvbnN0
IFN0cmluZyYgb2JqZWN0SWQsIGJvb2wgaWdub3JlSGFzT3duUHJvcGVydHksIFJlZlB0cjxJbnNw
ZWN0b3JBcnJheT4qIHJlc3VsdCk7CiAgICAgdm9pZCBzZXRQcm9wZXJ0eVZhbHVlKEVycm9yU3Ry
aW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUs
IGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwppbmRleCA2MjQ4YTNjLi5hYjljOTY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3Lmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMK
QEAgLTM1OCw5ICszNTgsOSBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0g
ewogCiAgICAgICAgIHRoaXMuZXZhbEluSW5zcGVjdGVkV2luZG93KGV4cHJlc3Npb25TdHJpbmcs
ICJjb21wbGV0aW9uIiwgdHJ1ZSwgZXZhbHVhdGVkLmJpbmQodGhpcykpOwogCi0gICAgICAgIGZ1
bmN0aW9uIGV2YWx1YXRlZChyZXN1bHQpCisgICAgICAgIGZ1bmN0aW9uIGV2YWx1YXRlZChyZXN1
bHQsIHdhc1Rocm93bikKICAgICAgICAgewotICAgICAgICAgICAgaWYgKCFyZXN1bHQpCisgICAg
ICAgICAgICBpZiAod2FzVGhyb3duKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
ICAgIHJlc3VsdC5nZXRBbGxQcm9wZXJ0aWVzKGV2YWx1YXRlZFByb3BlcnRpZXMuYmluZCh0aGlz
KSk7CiAgICAgICAgIH0KQEAgLTUzNCwxMCArNTM0LDEwIEBAIFdlYkluc3BlY3Rvci5Db25zb2xl
Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBleHByZXNzaW9uID0gInRoaXMiOwogICAg
ICAgICB9CiAKLSAgICAgICAgZnVuY3Rpb24gZXZhbENhbGxiYWNrKGVycm9yLCByZXN1bHQpCisg
ICAgICAgIGZ1bmN0aW9uIGV2YWxDYWxsYmFjayhlcnJvciwgcmVzdWx0LCB3YXNUaHJvd24pCiAg
ICAgICAgIHsKICAgICAgICAgICAgIGlmICghZXJyb3IpCi0gICAgICAgICAgICAgICAgY2FsbGJh
Y2soV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChyZXN1bHQpKTsKKyAgICAg
ICAgICAgICAgICBjYWxsYmFjayhXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2Fk
KHJlc3VsdCksIHdhc1Rocm93bik7CiAgICAgICAgIH0KICAgICAgICAgUnVudGltZUFnZW50LmV2
YWx1YXRlKGV4cHJlc3Npb24sIG9iamVjdEdyb3VwLCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGV2
YWxDYWxsYmFjayk7CiAgICAgfSwKQEAgLTU2MCw3ICs1NjAsNyBAQCBXZWJJbnNwZWN0b3IuQ29u
c29sZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLmFkZE1lc3NhZ2UoY29tbWFuZE1l
c3NhZ2UpOwogCiAgICAgICAgIHZhciBzZWxmID0gdGhpczsKLSAgICAgICAgZnVuY3Rpb24gcHJp
bnRSZXN1bHQocmVzdWx0KQorICAgICAgICBmdW5jdGlvbiBwcmludFJlc3VsdChyZXN1bHQsIHdh
c1Rocm93bikKICAgICAgICAgewogICAgICAgICAgICAgc2VsZi5wcm9tcHQuaGlzdG9yeS5wdXNo
KHN0cik7CiAgICAgICAgICAgICBzZWxmLnByb21wdC5oaXN0b3J5T2Zmc2V0ID0gMDsKQEAgLTU2
OCw3ICs1NjgsNyBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewogCiAg
ICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuY29uc29sZUhpc3RvcnkgPSBzZWxmLnBy
b21wdC5oaXN0b3J5LnNsaWNlKC0zMCk7CiAKLSAgICAgICAgICAgIHNlbGYuYWRkTWVzc2FnZShu
ZXcgV2ViSW5zcGVjdG9yLkNvbnNvbGVDb21tYW5kUmVzdWx0KHJlc3VsdCwgY29tbWFuZE1lc3Nh
Z2UpKTsKKyAgICAgICAgICAgIHNlbGYuYWRkTWVzc2FnZShuZXcgV2ViSW5zcGVjdG9yLkNvbnNv
bGVDb21tYW5kUmVzdWx0KHJlc3VsdCwgd2FzVGhyb3duLCBjb21tYW5kTWVzc2FnZSkpOwogICAg
ICAgICB9CiAgICAgICAgIHRoaXMuZXZhbEluSW5zcGVjdGVkV2luZG93KHN0ciwgImNvbnNvbGUi
LCB0cnVlLCBwcmludFJlc3VsdCk7CiAgICAgfSwKQEAgLTEwOTMsOSArMTA5Myw5IEBAIFdlYklu
c3BlY3Rvci5Db25zb2xlQ29tbWFuZC5wcm90b3R5cGUgPSB7CiAgICAgfQogfQogCi1XZWJJbnNw
ZWN0b3IuQ29uc29sZUNvbW1hbmRSZXN1bHQgPSBmdW5jdGlvbihyZXN1bHQsIG9yaWdpbmF0aW5n
Q29tbWFuZCkKK1dlYkluc3BlY3Rvci5Db25zb2xlQ29tbWFuZFJlc3VsdCA9IGZ1bmN0aW9uKHJl
c3VsdCwgd2FzVGhyb3duLCBvcmlnaW5hdGluZ0NvbW1hbmQpCiB7Ci0gICAgdmFyIGxldmVsID0g
KHJlc3VsdC5pc0Vycm9yKCkgPyBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxl
dmVsLkVycm9yIDogV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5Mb2cp
OworICAgIHZhciBsZXZlbCA9ICh3YXNUaHJvd24gPyBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3Nh
Z2UuTWVzc2FnZUxldmVsLkVycm9yIDogV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3Nh
Z2VMZXZlbC5Mb2cpOwogICAgIHRoaXMub3JpZ2luYXRpbmdDb21tYW5kID0gb3JpZ2luYXRpbmdD
b21tYW5kOwogICAgIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5jYWxsKHRoaXMsIFdlYklu
c3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNlLkpTLCBXZWJJbnNwZWN0b3IuQ29u
c29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuUmVzdWx0LCBsZXZlbCwgLTEsIG51bGwsIDEsIG51bGws
IFtyZXN1bHRdKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcwppbmRleCAyY2VmMjNk
Li4wMzA2NGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCkBAIC02ODQsOSArNjg0
LDkgQEAgV2ViSW5zcGVjdG9yLlByZXNlbmF0aW9uQ2FsbEZyYW1lLnByb3RvdHlwZSA9IHsKIAog
ICAgIGV2YWx1YXRlOiBmdW5jdGlvbihjb2RlLCBvYmplY3RHcm91cCwgaW5jbHVkZUNvbW1hbmRM
aW5lQVBJLCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGRpZEV2YWx1YXRlT25D
YWxsRnJhbWUoZXJyb3IsIHJlc3VsdCkKKyAgICAgICAgZnVuY3Rpb24gZGlkRXZhbHVhdGVPbkNh
bGxGcmFtZShlcnJvciwgcmVzdWx0LCB3YXNUaHJvd24pCiAgICAgICAgIHsKLSAgICAgICAgICAg
IGNhbGxiYWNrKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQocmVzdWx0KSk7
CisgICAgICAgICAgICBjYWxsYmFjayhXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QYXls
b2FkKHJlc3VsdCksIHdhc1Rocm93bik7CiAgICAgICAgIH0KICAgICAgICAgRGVidWdnZXJBZ2Vu
dC5ldmFsdWF0ZU9uQ2FsbEZyYW1lKHRoaXMuX2NhbGxGcmFtZS5pZCwgY29kZSwgb2JqZWN0R3Jv
dXAsIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgZGlkRXZhbHVhdGVPbkNhbGxGcmFtZS5iaW5kKHRo
aXMpKTsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCmluZGV4IDJlY2MzZjkuLjdjMWIzMmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVl
T3V0bGluZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1l
bnRzVHJlZU91dGxpbmUuanMKQEAgLTQwNiw5ICs0MDYsOSBAQCBXZWJJbnNwZWN0b3IuRWxlbWVu
dHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICghbm9kZS5ub2RlTmFtZSgp
IHx8IG5vZGUubm9kZU5hbWUoKS50b0xvd2VyQ2FzZSgpICE9PSAiaW1nIikKICAgICAgICAgICAg
IHJldHVybjsKIAotICAgICAgICBmdW5jdGlvbiBzZXRUb29sdGlwKGVycm9yLCByZXN1bHQpCisg
ICAgICAgIGZ1bmN0aW9uIHNldFRvb2x0aXAoZXJyb3IsIHJlc3VsdCwgd2FzVGhyb3duKQogICAg
ICAgICB7Ci0gICAgICAgICAgICBpZiAoZXJyb3IgfHwgIXJlc3VsdCB8fCByZXN1bHQudHlwZSAh
PT0gInN0cmluZyIpCisgICAgICAgICAgICBpZiAoZXJyb3IgfHwgd2FzVGhyb3duIHx8IHJlc3Vs
dC50eXBlICE9PSAic3RyaW5nIikKICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAg
ICAgIHRyeSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0V4dGVuc2lvblBhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9F
eHRlbnNpb25QYW5lbC5qcwppbmRleCA2OTA0ZDA1Li5kM2MyNWMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblBhbmVsLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uUGFuZWwuanMKQEAgLTEw
Niw3ICsxMDYsNyBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2lkZWJhclBhbmUucHJvdG90eXBl
ID0gewogICAgICAgICBXZWJJbnNwZWN0b3IuZXh0ZW5zaW9uU2VydmVyLm5vdGlmeUV4dGVuc2lv
blNpZGViYXJVcGRhdGVkKHRoaXMuX2lkKTsKICAgICB9LAogCi0gICAgX29uRXZhbHVhdGU6IGZ1
bmN0aW9uKHRpdGxlLCBlcnJvciwgcmVzdWx0KQorICAgIF9vbkV2YWx1YXRlOiBmdW5jdGlvbih0
aXRsZSwgZXJyb3IsIHJlc3VsdCwgd2FzVGhyb3duKQogICAgIHsKICAgICAgICAgaWYgKCFlcnJv
cikKICAgICAgICAgICAgIHRoaXMuX3NldE9iamVjdChXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0
LmZyb21QYXlsb2FkKHJlc3VsdCksIHRpdGxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKaW5kZXggZmU3MTkzMC4uMWM4
MTFlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRl
bnNpb25TZXJ2ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9F
eHRlbnNpb25TZXJ2ZXIuanMKQEAgLTI2NCwxMyArMjY0LDEzIEBAIFdlYkluc3BlY3Rvci5FeHRl
bnNpb25TZXJ2ZXIucHJvdG90eXBlID0gewogCiAgICAgX29uRXZhbHVhdGVPbkluc3BlY3RlZFBh
Z2U6IGZ1bmN0aW9uKG1lc3NhZ2UsIHBvcnQpCiAgICAgewotICAgICAgICBmdW5jdGlvbiBjYWxs
YmFjayhlcnJvciwgcmVzdWx0UGF5bG9hZCkKKyAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soZXJy
b3IsIHJlc3VsdFBheWxvYWQsIHdhc1Rocm93bikKICAgICAgICAgewogICAgICAgICAgICAgaWYg
KGVycm9yKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIHZhciByZXN1bHRP
YmplY3QgPSBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkKHJlc3VsdFBheWxv
YWQpOwogICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHt9OwotICAgICAgICAgICAgaWYgKHJlc3Vs
dE9iamVjdC5pc0Vycm9yKCkpCisgICAgICAgICAgICBpZiAod2FzVGhyb3duKQogICAgICAgICAg
ICAgICAgIHJlc3VsdC5pc0V4Y2VwdGlvbiA9IHRydWU7CiAgICAgICAgICAgICByZXN1bHQudmFs
dWUgPSByZXN1bHRPYmplY3QuZGVzY3JpcHRpb247CiAgICAgICAgICAgICB0aGlzLl9kaXNwYXRj
aENhbGxiYWNrKG1lc3NhZ2UucmVxdWVzdElkLCBwb3J0LCByZXN1bHQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlv
bi5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGll
c1NlY3Rpb24uanMKaW5kZXggYjQyYmVhMy4uOTY4NzgwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0
aW9uLmpzCkBAIC0xODcsNyArMTg3LDkgQEAgV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnR5VHJl
ZUVsZW1lbnQucHJvdG90eXBlID0gewogCiAgICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IHRoaXMu
cHJvcGVydHkudmFsdWUuZGVzY3JpcHRpb247CiAgICAgICAgIC8vIFJlbmRlciBcbiBhcyBhIG5p
Y2UgdW5pY29kZSBjciBzeW1ib2wuCi0gICAgICAgIGlmICh0aGlzLnByb3BlcnR5LnZhbHVlLnR5
cGUgPT09ICJzdHJpbmciICYmIHR5cGVvZiBkZXNjcmlwdGlvbiA9PT0gInN0cmluZyIpIHsKKyAg
ICAgICAgaWYgKHRoaXMucHJvcGVydHkud2FzVGhyb3duKQorICAgICAgICAgICAgdGhpcy52YWx1
ZUVsZW1lbnQudGV4dENvbnRlbnQgPSAiW0V4Y2VwdGlvbjogIiArIGRlc2NyaXB0aW9uICsgIl0i
OworICAgICAgICBlbHNlIGlmICh0aGlzLnByb3BlcnR5LnZhbHVlLnR5cGUgPT09ICJzdHJpbmci
ICYmIHR5cGVvZiBkZXNjcmlwdGlvbiA9PT0gInN0cmluZyIpIHsKICAgICAgICAgICAgIHRoaXMu
dmFsdWVFbGVtZW50LnRleHRDb250ZW50ID0gIlwiIiArIGRlc2NyaXB0aW9uLnJlcGxhY2UoL1xu
L2csICJcdTIxQjUiKSArICJcIiI7CiAgICAgICAgICAgICB0aGlzLnZhbHVlRWxlbWVudC5fb3Jp
Z2luYWxUZXh0Q29udGVudCA9ICJcIiIgKyBkZXNjcmlwdGlvbiArICJcIiI7CiAgICAgICAgIH0g
ZWxzZSBpZiAodGhpcy5wcm9wZXJ0eS52YWx1ZS50eXBlID09PSAiZnVuY3Rpb24iICYmIHR5cGVv
ZiBkZXNjcmlwdGlvbiA9PT0gInN0cmluZyIpIHsKQEAgLTE5OCw3ICsyMDAsNyBAQCBXZWJJbnNw
ZWN0b3IuT2JqZWN0UHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAg
aWYgKHRoaXMucHJvcGVydHkuaXNHZXR0ZXIpCiAgICAgICAgICAgICB0aGlzLnZhbHVlRWxlbWVu
dC5hZGRTdHlsZUNsYXNzKCJkaW1tZWQiKTsKLSAgICAgICAgaWYgKHRoaXMucHJvcGVydHkudmFs
dWUuaXNFcnJvcigpKQorICAgICAgICBpZiAodGhpcy5wcm9wZXJ0eS53YXNUaHJvd24pCiAgICAg
ICAgICAgICB0aGlzLnZhbHVlRWxlbWVudC5hZGRTdHlsZUNsYXNzKCJlcnJvciIpOwogICAgICAg
ICBpZiAodGhpcy5wcm9wZXJ0eS52YWx1ZS50eXBlKQogICAgICAgICAgICAgdGhpcy52YWx1ZUVs
ZW1lbnQuYWRkU3R5bGVDbGFzcygiY29uc29sZS1mb3JtYXR0ZWQtIiArIHRoaXMucHJvcGVydHku
dmFsdWUudHlwZSk7CkBAIC0yMTAsNyArMjEyLDcgQEAgV2ViSW5zcGVjdG9yLk9iamVjdFByb3Bl
cnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLmxpc3RJdGVtRWxlbWVu
dC5hcHBlbmRDaGlsZCh0aGlzLm5hbWVFbGVtZW50KTsKICAgICAgICAgdGhpcy5saXN0SXRlbUVs
ZW1lbnQuYXBwZW5kQ2hpbGQoc2VwYXJhdG9yRWxlbWVudCk7CiAgICAgICAgIHRoaXMubGlzdEl0
ZW1FbGVtZW50LmFwcGVuZENoaWxkKHRoaXMudmFsdWVFbGVtZW50KTsKLSAgICAgICAgdGhpcy5o
YXNDaGlsZHJlbiA9IHRoaXMucHJvcGVydHkudmFsdWUuaGFzQ2hpbGRyZW47CisgICAgICAgIHRo
aXMuaGFzQ2hpbGRyZW4gPSB0aGlzLnByb3BlcnR5LnZhbHVlLmhhc0NoaWxkcmVuICYmICF0aGlz
LnByb3BlcnR5Lndhc1Rocm93bjsKICAgICB9LAogCiAgICAgX2NvbnRleHRNZW51RXZlbnRGaXJl
ZDogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Qcm9wZXJ0aWVzU2lkZWJhclBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1Byb3BlcnRpZXNTaWRlYmFyUGFuZS5qcwppbmRleCBlNmNlMGIyLi5kNjc0MjBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb3BlcnRp
ZXNTaWRlYmFyUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Byb3BlcnRpZXNTaWRlYmFyUGFuZS5qcwpAQCAtNTIsOSArNTIsOSBAQCBXZWJJbnNwZWN0b3Iu
UHJvcGVydGllc1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIG9iamVjdC5y
ZWxlYXNlKCk7CiAgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlvbiBub2RlUHJvdG90eXBlc1Jl
YWR5KGVycm9yLCBvYmplY3RQYXlsb2FkKQorICAgICAgICBmdW5jdGlvbiBub2RlUHJvdG90eXBl
c1JlYWR5KGVycm9yLCBvYmplY3RQYXlsb2FkLCB3YXNUaHJvd24pCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIGlmIChlcnJvciB8fCAhb2JqZWN0UGF5bG9hZCkKKyAgICAgICAgICAgIGlmIChlcnJv
ciB8fCB3YXNUaHJvd24pCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgdmFy
IG9iamVjdCA9IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQob2JqZWN0UGF5
bG9hZCk7CiAgICAgICAgICAgICBvYmplY3QuZ2V0T3duUHJvcGVydGllcyhmaWxsU2VjdGlvbi5i
aW5kKHRoaXMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU291cmNlRnJhbWUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nv
dXJjZUZyYW1lLmpzCmluZGV4IGUwODgzNzQuLmQ5MDQyNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcwpAQCAtNzkzLDkgKzc5Myw5
IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlvbiBzaG93T2JqZWN0UG9wdXAocmVzdWx0KQor
ICAgICAgICBmdW5jdGlvbiBzaG93T2JqZWN0UG9wdXAocmVzdWx0LCB3YXNUaHJvd24pCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIGlmIChyZXN1bHQuaXNFcnJvcigpIHx8ICF0aGlzLl9kZWxlZ2F0
ZS5kZWJ1Z2dlclBhdXNlZCgpKQorICAgICAgICAgICAgaWYgKHdhc1Rocm93biB8fCAhdGhpcy5f
ZGVsZWdhdGUuZGVidWdnZXJQYXVzZWQoKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAg
ICAgICAgICAgIHZhciBwb3B1cENvbnRlbnRFbGVtZW50ID0gbnVsbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9nZW5lcmF0ZS1pbnNwZWN0b3ItaWRsIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2dlbmVyYXRlLWluc3BlY3Rvci1pZGwKaW5kZXggNDZlYzYxZi4uZGU2
OWJiNSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2dlbmVyYXRlLWluc3Bl
Y3Rvci1pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2dlbmVyYXRlLWluc3BlY3Rv
ci1pZGwKQEAgLTEzMyw3ICsxMzMsMTEgQEAgZm9yIGRvbWFpbiBpbiBqc29uX2FwaToKICAgICAg
ICAgICAgICAgICAgICAgcGFyYW1zLmFwcGVuZCgiaW4lcyAlcyAlcyIgJSAob3B0aW9uYWwsIHBh
cmFtX3R5cGUoZG9tYWluX25hbWUsIGluX3BhcmFtKSwgaW5fcGFyYW1bIm5hbWUiXSkpCiAgICAg
ICAgICAgICBpZiAoInJldHVybnMiIGluIGNvbW1hbmQpOgogICAgICAgICAgICAgICAgIGZvciBv
dXRfcGFyYW0gaW4gY29tbWFuZFsicmV0dXJucyJdOgotICAgICAgICAgICAgICAgICAgICBwYXJh
bXMuYXBwZW5kKCJvdXQgJXMgJXMiICUgKHBhcmFtX3R5cGUoZG9tYWluX25hbWUsIG91dF9wYXJh
bSksIG91dF9wYXJhbVsibmFtZSJdKSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKCJvcHRpb25h
bCIgaW4gb3V0X3BhcmFtKToKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsID0gIiBb
b3B0aW9uYWxdIgorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAg
ICAgICAgb3B0aW9uYWwgPSAiIgorICAgICAgICAgICAgICAgICAgICBwYXJhbXMuYXBwZW5kKCJv
dXQlcyAlcyAlcyIgJSAob3B0aW9uYWwsIHBhcmFtX3R5cGUoZG9tYWluX25hbWUsIG91dF9wYXJh
bSksIG91dF9wYXJhbVsibmFtZSJdKSkKICAgICAgICAgICAgIG91dHB1dF9maWxlLndyaXRlKCJc
biAgICAgICAgdm9pZCAlcyglcyk7IiAlIChjb21tYW5kWyJuYW1lIl0sICIsICIuam9pbihwYXJh
bXMpKSkKIAogICAgIGlmICJldmVudHMiIGluIGRvbWFpbjoK
</data>

          </attachment>
      

    </bug>

</bugzilla>