<?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>157822</bug_id>
          
          <creation_ts>2016-05-17 17:04:53 -0700</creation_ts>
          <short_desc>AX: [ATK] Use WebCore Accessibility&apos;s AccessibilityText for AtkObject name and description</short_desc>
          <delta_ts>2016-05-18 00:11:16 -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>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>157187</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joanmarie Diggs">jdiggs</reporter>
          <assigned_to name="Joanmarie Diggs">jdiggs</assigned_to>
          <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1194068</commentid>
    <comment_count>0</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2016-05-17 17:04:53 -0700</bug_when>
    <thetext>WebKitGtk never switched fully over to use AccessibilityText for AtkObject name and description. As a result, we have code we don&apos;t need and which is in some cases incorrect with respect to the HTML AAM and/or AccName spec.

In addition, there are a number of places where we&apos;re taking the AXDescription as the AtkObject description. This would seem logical on the surface, but as outlined in the OR of bug 157187, it&apos;s wrong.

I&apos;m making this bug a blocker to bug 157187 so we can fix the exposure and update the layout tests in a way that will hopefully be clear (enough) to verify the code change is not introducing any regressions. After that, we can (I will) come up with a proposal with respect to how we do cross-platform text alternative calculation layout tests.

Patch will be forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194084</commentid>
    <comment_count>1</comment_count>
      <attachid>279191</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2016-05-17 18:10:44 -0700</bug_when>
    <thetext>Created attachment 279191
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194086</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-05-17 18:12:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/26337017&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194087</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-05-17 18:12:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/26337023&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194088</commentid>
    <comment_count>4</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2016-05-17 18:14:57 -0700</bug_when>
    <thetext>Chris: This is mostly ripping out code from my port to defer to WebCore Accessibility -- and adding a bunch of if/else statements to our shared layout tests to ask for AXTitle+AXDescription on my port and AXDescription+AXHelp on yours. Can you live with the latter if I promise to clean it up in bug 157187? (Please.) :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194090</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-05-17 18:15:46 -0700</bug_when>
    <thetext>&lt;rdar://problem/26337077&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194104</commentid>
    <comment_count>6</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-05-17 18:46:15 -0700</bug_when>
    <thetext>So the idea is that we&apos;ll undo all the platform if else in the other patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194122</commentid>
    <comment_count>7</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2016-05-17 19:40:40 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; So the idea is that we&apos;ll undo all the platform if else in the other patch?

Not &quot;undo&quot; in the literal sense; but the if/else stuff is ugly. Some possibilities that spring to mind:

1. Adding something(s) to WKTR like: AccessibilityUIElement::textAlternative()

2. Adding something(s) to accessibility-helper.js to get the correct information from each platform.

3. Change ATK&apos;s AccessibilityUIElement so that it converts everything to the property names WebCore Accessibility and AXAPI use.

Of the three approaches, I&apos;m least jazzed by the third because when there is not a one-to-one correspondence between our platforms, you wind up adding hacks and workarounds to fake it. In the specific case of text alternatives, I don&apos;t think it would be too horrible:

* AccessibilityUIElement::helpText() would return the AtkObject description
* AccessibilityUIElement::description() would return the AtkObject name

But:

* AccessibilityUIElement::title() would return ???

Almost all of the time, the spec&apos;s accessible name is exposed via your AXDescription. But occasionally doing so is wrong; AXTitle should be used instead. But on my platform, that wrongness doesn&apos;t exist: The spec&apos;s accessible name is always exposed via the AtkObject name.

What I like about approaches 1 and/or 2 is that all platforms have text alternatives with associated specifications. You and I both need to expose the spec&apos;s accessible name and the spec&apos;s accessible description. What we don&apos;t have in common is the exact properties used. I think approaches 1 and/or 2 can solve that.

As an example there are the w3c-svg-*-calculation.html tests. But that was done in each test. Moving that functionality to accessibility-helper.js or AccessibilityUIElement::textAlternative() would make it possible to get all the if/else platformName junk out of all the tests.

Thoughts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194168</commentid>
    <comment_count>8</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-05-17 23:22:30 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; So the idea is that we&apos;ll undo all the platform if else in the other patch?
&gt; 
&gt; Not &quot;undo&quot; in the literal sense; but the if/else stuff is ugly. Some
&gt; possibilities that spring to mind:
&gt; 
&gt; 1. Adding something(s) to WKTR like:
&gt; AccessibilityUIElement::textAlternative()
&gt; 
&gt; 2. Adding something(s) to accessibility-helper.js to get the correct
&gt; information from each platform.
&gt; 
&gt; 3. Change ATK&apos;s AccessibilityUIElement so that it converts everything to the
&gt; property names WebCore Accessibility and AXAPI use.
&gt; 
&gt; Of the three approaches, I&apos;m least jazzed by the third because when there is
&gt; not a one-to-one correspondence between our platforms, you wind up adding
&gt; hacks and workarounds to fake it. In the specific case of text alternatives,
&gt; I don&apos;t think it would be too horrible:
&gt; 
&gt; * AccessibilityUIElement::helpText() would return the AtkObject description
&gt; * AccessibilityUIElement::description() would return the AtkObject name
&gt; 
&gt; But:
&gt; 
&gt; * AccessibilityUIElement::title() would return ???
&gt; 
&gt; Almost all of the time, the spec&apos;s accessible name is exposed via your
&gt; AXDescription. But occasionally doing so is wrong; AXTitle should be used
&gt; instead. But on my platform, that wrongness doesn&apos;t exist: The spec&apos;s
&gt; accessible name is always exposed via the AtkObject name.
&gt; 
&gt; What I like about approaches 1 and/or 2 is that all platforms have text
&gt; alternatives with associated specifications. You and I both need to expose
&gt; the spec&apos;s accessible name and the spec&apos;s accessible description. What we
&gt; don&apos;t have in common is the exact properties used. I think approaches 1
&gt; and/or 2 can solve that.
&gt; 
&gt; As an example there are the w3c-svg-*-calculation.html tests. But that was
&gt; done in each test. Moving that functionality to accessibility-helper.js or
&gt; AccessibilityUIElement::textAlternative() would make it possible to get all
&gt; the if/else platformName junk out of all the tests.
&gt; 
&gt; Thoughts?

Probably having some helper methods in ax-utilities.js would be the best approach to writing cross platform tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194172</commentid>
    <comment_count>9</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2016-05-17 23:36:57 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Probably having some helper methods in ax-utilities.js would be the best
&gt; approach to writing cross platform tests

Ok, I&apos;ll give that a shot. Thanks!

Do you want that done as part of the fix for this bug, or done in bug 157187?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194173</commentid>
    <comment_count>10</comment_count>
      <attachid>279191</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-05-17 23:37:26 -0700</bug_when>
    <thetext>Comment on attachment 279191
Patch

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

&gt; LayoutTests/accessibility/alt-tag-on-image-with-nonimage-role.html:29
&gt; +        if (accessibilityController.platformName == &quot;atk&quot;) {

We should probably have some helper method that can handle these platform differences seemlessly

like

accessibleNameShouldBe(group)

But we can probably live with this for now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194174</commentid>
    <comment_count>11</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-05-17 23:37:50 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; Probably having some helper methods in ax-utilities.js would be the best
&gt; &gt; approach to writing cross platform tests
&gt; 
&gt; Ok, I&apos;ll give that a shot. Thanks!
&gt; 
&gt; Do you want that done as part of the fix for this bug, or done in bug 157187?

Let&apos;s do that in another bug so this one gets in</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194179</commentid>
    <comment_count>12</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2016-05-17 23:50:22 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #9)
&gt; &gt; (In reply to comment #8)
&gt; &gt; &gt; Probably having some helper methods in ax-utilities.js would be the best
&gt; &gt; &gt; approach to writing cross platform tests
&gt; &gt; 
&gt; &gt; Ok, I&apos;ll give that a shot. Thanks!
&gt; &gt; 
&gt; &gt; Do you want that done as part of the fix for this bug, or done in bug 157187?
&gt; 
&gt; Let&apos;s do that in another bug so this one gets in

I appreciate it. I hadn&apos;t realized how many mappings were incorrect. :-/

I&apos;ll get started on the clean up tomorrow (assuming you&apos;re on the left coast).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194180</commentid>
    <comment_count>13</comment_count>
      <attachid>279191</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-18 00:11:12 -0700</bug_when>
    <thetext>Comment on attachment 279191
Patch

Clearing flags on attachment: 279191

Committed r201072: &lt;http://trac.webkit.org/changeset/201072&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194181</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-18 00:11:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279191</attachid>
            <date>2016-05-17 18:10:44 -0700</date>
            <delta_ts>2016-05-18 00:11:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157822-20160517211141.patch</filename>
            <type>text/plain</type>
            <size>80813</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxMDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzU2OGNlZWZmMTMwNGE4
ZTI1ZTQ3YTUwZmMyMTFiZGYxMDcyOTNhMS4uZjk5MGNlODRlMzVhMzFkYjhjZDI2OWIzZjY3ODli
NGU5NDViMGNkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE2LTA1LTE3ICBKb2Fu
bWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KKworICAgICAgICBBWDogW0FUS10gVXNl
IFdlYkNvcmUgQWNjZXNzaWJpbGl0eSdzIEFjY2Vzc2liaWxpdHlUZXh0IGZvciBBdGtPYmplY3Qg
bmFtZSBhbmQgZGVzY3JpcHRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1NzgyMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlbW92ZSB0aGUgb2xkIGNvZGUgd2hpY2ggd2FzIG92ZXJyaWRpbmcgV2Vi
Q29yZSBBY2Nlc3NpYmlsaXR5IGFuZCBhbHdheXMgdXNlCisgICAgICAgIEFjY2Vzc2liaWxpdHlU
ZXh0LgorCisgICAgICAgIElmIHRoZSBBY2Nlc3NpYmlsaXR5VGV4dCdzIHRleHRTb3VyY2UgaXMg
SGVscFRleHQgb3IgU3VtbWFyeVRleHQsIGl0IHNob3VsZCBiZSBleHBvc2VkCisgICAgICAgIGFz
IHRoZSBBdGtPYmplY3QgZGVzY3JpcHRpb24uIElmIHRoZSB0ZXh0U291cmNlIGlzIFRpdGxlVGFn
VGV4dCBhbmQgdGhlcmUgaXMgbm8gb3RoZXIKKyAgICAgICAgdGV4dCBhbHRlcm5hdGl2ZSwgdGhl
IHZhbHVlIHNob3VsZCBhbHNvIGJlIGV4cG9zZWQgaW4gdGhpcyBmYXNoaW9uLiBOb3RlIHRoYXQg
QXRrT2JqZWN0J3MKKyAgICAgICAgZGVzY3JpcHRpb24gcHJvcGVydHkgaXMgZXF1aXZhbGVudCB0
byBBWEFQSSdzIEFYSGVscCBwcm9wZXJ0eS4KKworICAgICAgICBJZiB0aGUgQWNjZXNzaWJpbGl0
eVRleHQncyB0ZXh0U291cmNlIGlzIGFueXRoaW5nIG90aGVyIHRoYW4gdGhlIGFib3ZlLCB0aGUg
Zmlyc3QKKyAgICAgICAgbm9uLWVtcHR5IHZhbHVlIHNob3VsZCBiZSBleHBvc2VkIGFzIHRoZSBB
dGtPYmplY3QgbmFtZS4gRGVwZW5kaW5nIG9uIHRoZSBzb3VyY2Ugb2YKKyAgICAgICAgdGhlIG5h
bWUgY29udGVudCwgQXRrT2JqZWN0J3MgbmFtZSBwcm9wZXJ0eSBjYW4gYmUgdGhlIGVxdWl2YWxl
bnQgb2YgQVhBUEkncyBBWFRpdGxlLgorICAgICAgICBIb3dldmVyLCBtb3N0IG9mIHRoZSB0aW1l
LCBBdGtPYmplY3QncyBuYW1lIHByb3BlcnR5IGlzIGVxdWl2YWxlbnQgdG8gQVhBUEkncworICAg
ICAgICBBWERlc2NyaXB0aW9uIHByb3BlcnR5LgorCisgICAgICAgIEJ5IG1ha2luZyB0aGVzZSBj
aGFuZ2VzLCB3aGF0IFdlYktpdCBleHBvc2VzIGZvciBBVEsgaXMgbm93IGV4dHJlbWVseSBzaW1p
bGFyIHRvIHdoYXQKKyAgICAgICAgV2ViS2l0IGV4cG9zZXMgb24gdGhlIE1hYyAobW9kdWxvIHRo
ZSBwcm9wZXJ0eSBuYW1lcykgYW5kIGFsc28gd2l0aCB3aGF0IGlzIGRlZmluZWQgaW4KKyAgICAg
ICAgdGhlIEhUTUwgQWNjZXNzaWJpbGl0eSBhbmQgQWNjZXNzaWJsZSBOYW1lIGFuZCBEZXNjcmlw
dGlvbiBDb21wdXRhdGlvbiBBUEkgbWFwcGluZ3Mgc3BlY3MuCisKKyAgICAgICAgTm93IHRoYXQg
dGhlIGV4cG9zdXJlIGlzIGNvcnJlY3QsIHRoZSBMYXlvdXQgVGVzdHMgbmVlZGVkIHRvIGJlIGFk
anVzdGVkIGFjY29yZGluZ2x5IGJlY2F1c2UKKyAgICAgICAgYXNraW5nIGZvciB0aGUgIkFYRGVz
Y3JpcHRpb24iIGdpdmVzIHlvdSB0aGUgQVhEZXNjcmlwdGlvbiBvbiB0aGUgTWFjIGFuZCB0aGUg
QXRrT2JqZWN0CisgICAgICAgIGRlc2NyaXB0aW9uIGluIEdOVS9MaW51eC4gQnV0IGFzIGluZGlj
YXRlZCBhYm92ZSwgd2hhdCBBVEsgY2FsbHMgYSAiZGVzY3JpcHRpb24iIGlzIHdoYXQKKyAgICAg
ICAgdGhlIE1hYyBjYWxscyAiaGVscC4iCisKKyAgICAgICAgVWx0aW1hdGVseSBvdXIgTGF5b3V0
IFRlc3RzIGFuZC9vciBvdXIgcGxhdGZvcm0gVGVzdFJ1bm5lciBBUEkgc2hvdWxkIGJlIG1vZGlm
aWVkIHRvIGRlYWwKKyAgICAgICAgd2l0aCB0aGVzZSBkaWZmZXJlbmNlcyBtb3JlIGdyYWNlZnVs
bHkuIChCdWcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NzE4Nwor
ICAgICAgICBoYXMgYmVlbiBvcGVuZWQgZm9yIHRoYXQgdGFzay4pIEluIHRoZSBtZWFudGltZSwg
dGhlIGV4aXN0aW5nIHRlc3RzIGhhdmUgYmVlbiBnaXZlbiBwbGF0Zm9ybQorICAgICAgICBjaGVj
a3MgdG8gYXNrIGZvciB0aGUgcmlnaHQgcHJvcGVydHkgb24gZWFjaCBwbGF0Zm9ybS4gVGhpcyB3
YXMgZG9uZSBpbiBzdWNoIGEgd2F5IGFzIHRvIG5vdAorICAgICAgICByZXF1aXJlIG90aGVyIChu
b24tQVRLKSBwbGF0Zm9ybXMgY2hhbmdlIHRoZWlyIGN1cnJlbnQgZXhwZWN0YXRpb25zIGZpbGVz
LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJB
dGsuY3BwOgorICAgICAgICAod2Via2l0QWNjZXNzaWJsZUdldE5hbWUpOgorICAgICAgICAod2Vi
a2l0QWNjZXNzaWJsZUdldERlc2NyaXB0aW9uKToKKwogMjAxNi0wNS0xNyAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgogCiAgICAgICAgIERPTVByb21pc2Ugc2hv
dWxkIG9ubHkgcmVzdHJpY3QgdGhlIHJlc29sdXRpb24gdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBw
ZXJBdGsuY3BwCmluZGV4IGY4YzFmZjI3NDYyNDdlOGM3MzJmOTNhZmYzNjZjMzY4ZWNkODBlMDku
LjlkYWZmNTY5NmNiZGQxODYwYzU3MTNhZjJmZTZiOWM3NWJjNjI0YmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRr
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3Np
YmxlV3JhcHBlckF0ay5jcHAKQEAgLTExMSw2NyArMTExLDI0IEBAIHN0YXRpYyBjb25zdCBnY2hh
ciogd2Via2l0QWNjZXNzaWJsZUdldE5hbWUoQXRrT2JqZWN0KiBvYmplY3QpCiAgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX0FDQ0VTU0lCTEUob2JqZWN0KSwgMCk7CiAgICAgcmV0
dXJuVmFsSWZXZWJLaXRBY2Nlc3NpYmxlSXNJbnZhbGlkKFdFQktJVF9BQ0NFU1NJQkxFKG9iamVj
dCksIDApOwogCi0gICAgQWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCA9IGNvcmUob2Jq
ZWN0KTsKLSAgICBpZiAoY29yZU9iamVjdC0+aXNGaWVsZHNldCgpKSB7Ci0gICAgICAgIEFjY2Vz
c2liaWxpdHlPYmplY3QqIGxhYmVsID0gY29yZU9iamVjdC0+dGl0bGVVSUVsZW1lbnQoKTsKLSAg
ICAgICAgaWYgKGxhYmVsKSB7Ci0gICAgICAgICAgICBBdGtPYmplY3QqIGF0a09iamVjdCA9IGxh
YmVsLT53cmFwcGVyKCk7Ci0gICAgICAgICAgICBpZiAoQVRLX0lTX1RFWFQoYXRrT2JqZWN0KSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gYXRrX3RleHRfZ2V0X3RleHQoQVRLX1RFWFQoYXRrT2Jq
ZWN0KSwgMCwgLTEpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKGNvcmVPYmplY3QtPmlz
Q29udHJvbCgpKSB7Ci0gICAgICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGxhYmVsID0gY29yZU9i
amVjdC0+Y29ycmVzcG9uZGluZ0xhYmVsRm9yQ29udHJvbEVsZW1lbnQoKTsKLSAgICAgICAgaWYg
KGxhYmVsKSB7Ci0gICAgICAgICAgICBBdGtPYmplY3QqIGF0a09iamVjdCA9IGxhYmVsLT53cmFw
cGVyKCk7Ci0gICAgICAgICAgICBpZiAoQVRLX0lTX1RFWFQoYXRrT2JqZWN0KSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gYXRrX3RleHRfZ2V0X3RleHQoQVRLX1RFWFQoYXRrT2JqZWN0KSwgMCwg
LTEpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gVHJ5IHRleHQgdW5kZXIgdGhlIG5vZGUuCi0g
ICAgICAgIFN0cmluZyB0ZXh0VW5kZXIgPSBjb3JlT2JqZWN0LT50ZXh0VW5kZXJFbGVtZW50KCk7
Ci0gICAgICAgIGlmICh0ZXh0VW5kZXIubGVuZ3RoKCkpCi0gICAgICAgICAgICByZXR1cm4gY2Fj
aGVBbmRSZXR1cm5BdGtQcm9wZXJ0eShvYmplY3QsIEF0a0NhY2hlZEFjY2Vzc2libGVOYW1lLCB0
ZXh0VW5kZXIpOwotICAgIH0KLQotICAgIGlmIChpczxTVkdFbGVtZW50Pihjb3JlT2JqZWN0LT5l
bGVtZW50KCkpKSB7Ci0gICAgICAgIFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4gdGV4dE9yZGVy
OwotICAgICAgICBjb3JlT2JqZWN0LT5hY2Nlc3NpYmlsaXR5VGV4dCh0ZXh0T3JkZXIpOwotCi0g
ICAgICAgIGZvciAoY29uc3QgYXV0byYgdGV4dCA6IHRleHRPcmRlcikgewotICAgICAgICAgICAg
aWYgKHRleHQudGV4dFNvdXJjZSAhPSBIZWxwVGV4dCAmJiB0ZXh0LnRleHRTb3VyY2UgIT0gU3Vt
bWFyeVRleHQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhY2hlQW5kUmV0dXJuQXRrUHJvcGVy
dHkob2JqZWN0LCBBdGtDYWNoZWRBY2Nlc3NpYmxlTmFtZSwgdGV4dC50ZXh0KTsKLSAgICAgICAg
fQotICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyB0byBrZWVwIHRoZSBuZXh0IGJsb2NrcyBmcm9t
IHJldHVybmluZyBkdXBsaWNhdGUgdGV4dC4KLSAgICAgICAgLy8gVGhpcyBiZWhhdmlvciBzaG91
bGQgYmUgZXh0ZW5kZWQgdG8gYWxsIGVsZW1lbnRzOyBub3QganVzdCBTVkcuCi0gICAgICAgIHJl
dHVybiBjYWNoZUFuZFJldHVybkF0a1Byb3BlcnR5KG9iamVjdCwgQXRrQ2FjaGVkQWNjZXNzaWJs
ZU5hbWUsICIiKTsKLSAgICB9Ci0KLSAgICBpZiAoY29yZU9iamVjdC0+aXNJbWFnZSgpIHx8IGNv
cmVPYmplY3QtPmlzSW5wdXRJbWFnZSgpIHx8IGNvcmVPYmplY3QtPmlzSW1hZ2VNYXAoKSB8fCBj
b3JlT2JqZWN0LT5pc0ltYWdlTWFwTGluaygpKSB7Ci0gICAgICAgIE5vZGUqIG5vZGUgPSBjb3Jl
T2JqZWN0LT5ub2RlKCk7Ci0gICAgICAgIGlmIChpczxIVE1MRWxlbWVudD4obm9kZSkpIHsKLSAg
ICAgICAgICAgIC8vIEdldCB0aGUgYXR0cmlidXRlIHJhdGhlciB0aGFuIGFsdFRleHQgU3RyaW5n
IHNvIGFzIG5vdCB0byBmYWxsIGJhY2sgb24gdGl0bGUuCi0gICAgICAgICAgICBjb25zdCBBdG9t
aWNTdHJpbmcmIGFsdCA9IGRvd25jYXN0PEhUTUxFbGVtZW50Pigqbm9kZSkuZ2V0QXR0cmlidXRl
KEhUTUxOYW1lczo6YWx0QXR0cik7Ci0gICAgICAgICAgICBpZiAoIWFsdC5pc0VtcHR5KCkpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIGNhY2hlQW5kUmV0dXJuQXRrUHJvcGVydHkob2JqZWN0LCBB
dGtDYWNoZWRBY2Nlc3NpYmxlTmFtZSwgYWx0KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8v
IEZhbGxiYWNrIGZvciB0aGUgd2ViQXJlYSBvYmplY3Q6IGp1c3QgcmV0dXJuIHRoZSBkb2N1bWVu
dCdzIHRpdGxlLgotICAgIGlmIChjb3JlT2JqZWN0LT5pc1dlYkFyZWEoKSkgewotICAgICAgICBE
b2N1bWVudCogZG9jdW1lbnQgPSBjb3JlT2JqZWN0LT5kb2N1bWVudCgpOwotICAgICAgICBpZiAo
ZG9jdW1lbnQpCi0gICAgICAgICAgICByZXR1cm4gY2FjaGVBbmRSZXR1cm5BdGtQcm9wZXJ0eShv
YmplY3QsIEF0a0NhY2hlZEFjY2Vzc2libGVOYW1lLCBkb2N1bWVudC0+dGl0bGUoKSk7CisgICAg
VmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiB0ZXh0T3JkZXI7CisgICAgY29yZShvYmplY3QpLT5h
Y2Nlc3NpYmlsaXR5VGV4dCh0ZXh0T3JkZXIpOworCisgICAgZm9yIChjb25zdCBhdXRvJiB0ZXh0
IDogdGV4dE9yZGVyKSB7CisgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNoZWNrIGlzIGhlcmUgYmVj
YXVzZSBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGl0bGVFbGVtZW50VGV4dCgpCisgICAgICAg
IC8vIGFwcGVuZHMgYW4gZW1wdHkgU3RyaW5nIGZvciB0aGUgTGFiZWxCeUVsZW1lbnRUZXh0IHNv
dXJjZSB3aGVuIHRoZXJlIGlzIGEKKyAgICAgICAgLy8gdGl0bGVVSUVsZW1lbnQoKS4gUmVtb3Zp
bmcgdGhpcyBjaGVjayBtYWtlcyBzb21lIGZpZWxkc2V0cyBsb3NlIHRoZWlyIG5hbWUuCisgICAg
ICAgIGlmICh0ZXh0LnRleHQuaXNFbXB0eSgpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAg
ICAgICAgLy8gV2ViQ29yZSBBY2Nlc3NpYmlsaXR5IHNob3VsZCBwcm92aWRlIHVzIHdpdGggdGhl
IHRleHQgYWx0ZXJuYXRpdmUgY29tcHV0YXRpb24KKyAgICAgICAgLy8gaW4gdGhlIG9yZGVyIGRl
ZmluZWQgYnkgdGhhdCBzcGVjLiBTbyB0YWtlIHRoZSBmaXJzdCB0aGluZyB0aGF0IG91ciBwbGF0
Zm9ybQorICAgICAgICAvLyBkb2VzIG5vdCBleHBvc2UgdmlhIHRoZSBBdGtPYmplY3QgZGVzY3Jp
cHRpb24uCisgICAgICAgIGlmICh0ZXh0LnRleHRTb3VyY2UgIT0gSGVscFRleHQgJiYgdGV4dC50
ZXh0U291cmNlICE9IFN1bW1hcnlUZXh0KQorICAgICAgICAgICAgcmV0dXJuIGNhY2hlQW5kUmV0
dXJuQXRrUHJvcGVydHkob2JqZWN0LCBBdGtDYWNoZWRBY2Nlc3NpYmxlTmFtZSwgdGV4dC50ZXh0
KTsKICAgICB9CiAKLSAgICAvLyBOb3RoaW5nIHdvcmtlZCBzbyBmYXIsIHRyeSB3aXRoIHRoZSBB
Y2Nlc3NpYmlsaXR5T2JqZWN0J3MKLSAgICAvLyB0aXRsZSgpIGJlZm9yZSBnb2luZyBhaGVhZCB3
aXRoIHN0cmluZ1ZhbHVlKCkuCi0gICAgU3RyaW5nIGF4VGl0bGUgPSBhY2Nlc3NpYmlsaXR5VGl0
bGUoY29yZU9iamVjdCk7Ci0gICAgaWYgKCFheFRpdGxlLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0
dXJuIGNhY2hlQW5kUmV0dXJuQXRrUHJvcGVydHkob2JqZWN0LCBBdGtDYWNoZWRBY2Nlc3NpYmxl
TmFtZSwgYXhUaXRsZSk7Ci0KLSAgICByZXR1cm4gY2FjaGVBbmRSZXR1cm5BdGtQcm9wZXJ0eShv
YmplY3QsIEF0a0NhY2hlZEFjY2Vzc2libGVOYW1lLCBjb3JlT2JqZWN0LT5zdHJpbmdWYWx1ZSgp
KTsKKyAgICByZXR1cm4gY2FjaGVBbmRSZXR1cm5BdGtQcm9wZXJ0eShvYmplY3QsIEF0a0NhY2hl
ZEFjY2Vzc2libGVOYW1lLCAiIik7CiB9CiAKIHN0YXRpYyBjb25zdCBnY2hhciogd2Via2l0QWNj
ZXNzaWJsZUdldERlc2NyaXB0aW9uKEF0a09iamVjdCogb2JqZWN0KQpAQCAtMTc5LDQxICsxMzYs
MjYgQEAgc3RhdGljIGNvbnN0IGdjaGFyKiB3ZWJraXRBY2Nlc3NpYmxlR2V0RGVzY3JpcHRpb24o
QXRrT2JqZWN0KiBvYmplY3QpCiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX0FD
Q0VTU0lCTEUob2JqZWN0KSwgMCk7CiAgICAgcmV0dXJuVmFsSWZXZWJLaXRBY2Nlc3NpYmxlSXNJ
bnZhbGlkKFdFQktJVF9BQ0NFU1NJQkxFKG9iamVjdCksIDApOwogCi0gICAgQWNjZXNzaWJpbGl0
eU9iamVjdCogY29yZU9iamVjdCA9IGNvcmUob2JqZWN0KTsKLSAgICBOb2RlKiBub2RlID0gbnVs
bHB0cjsKLSAgICBpZiAoY29yZU9iamVjdC0+aXNBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KCkp
Ci0gICAgICAgIG5vZGUgPSBjb3JlT2JqZWN0LT5ub2RlKCk7Ci0KLSAgICBpZiAoaXM8U1ZHRWxl
bWVudD4obm9kZSkpIHsKLSAgICAgICAgVmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiB0ZXh0T3Jk
ZXI7Ci0gICAgICAgIGNvcmVPYmplY3QtPmFjY2Vzc2liaWxpdHlUZXh0KHRleHRPcmRlcik7Cisg
ICAgVmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiB0ZXh0T3JkZXI7CisgICAgY29yZShvYmplY3Qp
LT5hY2Nlc3NpYmlsaXR5VGV4dCh0ZXh0T3JkZXIpOwogCi0gICAgICAgIGZvciAoY29uc3QgYXV0
byYgdGV4dCA6IHRleHRPcmRlcikgewotICAgICAgICAgICAgaWYgKHRleHQudGV4dFNvdXJjZSA9
PSBIZWxwVGV4dCB8fCB0ZXh0LnRleHRTb3VyY2UgPT0gU3VtbWFyeVRleHQgfHwgdGV4dC50ZXh0
U291cmNlID09IFRpdGxlVGFnVGV4dCkKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FjaGVBbmRS
ZXR1cm5BdGtQcm9wZXJ0eShvYmplY3QsIEF0a0NhY2hlZEFjY2Vzc2libGVEZXNjcmlwdGlvbiwg
dGV4dC50ZXh0KTsKLSAgICAgICAgfQotICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyB0byBrZWVw
IHRoZSBuZXh0IGJsb2NrcyBmcm9tIHJldHVybmluZyBkdXBsaWNhdGUgdGV4dC4KLSAgICAgICAg
Ly8gVGhpcyBiZWhhdmlvciBzaG91bGQgYmUgZXh0ZW5kZWQgdG8gYWxsIGVsZW1lbnRzOyBub3Qg
anVzdCBTVkcuCi0gICAgICAgIHJldHVybiBjYWNoZUFuZFJldHVybkF0a1Byb3BlcnR5KG9iamVj
dCwgQXRrQ2FjaGVkQWNjZXNzaWJsZURlc2NyaXB0aW9uLCAiIik7Ci0gICAgfQorICAgIGJvb2wg
bmFtZVRleHRBdmFpbGFibGUgPSBmYWxzZTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHRleHQgOiB0
ZXh0T3JkZXIpIHsKKyAgICAgICAgLy8gV2ViQ29yZSBBY2Nlc3NpYmlsaXR5IHNob3VsZCBwcm92
aWRlIHVzIHdpdGggdGhlIHRleHQgYWx0ZXJuYXRpdmUgY29tcHV0YXRpb24KKyAgICAgICAgLy8g
aW4gdGhlIG9yZGVyIGRlZmluZWQgYnkgdGhhdCBzcGVjLiBTbyB0YWtlIHRoZSBmaXJzdCB0aGlu
ZyB0aGF0IG91ciBwbGF0Zm9ybQorICAgICAgICAvLyBkb2VzIG5vdCBleHBvc2UgdmlhIHRoZSBB
dGtPYmplY3QgbmFtZS4KKyAgICAgICAgaWYgKHRleHQudGV4dFNvdXJjZSA9PSBIZWxwVGV4dCB8
fCB0ZXh0LnRleHRTb3VyY2UgPT0gU3VtbWFyeVRleHQpCisgICAgICAgICAgICByZXR1cm4gY2Fj
aGVBbmRSZXR1cm5BdGtQcm9wZXJ0eShvYmplY3QsIEF0a0NhY2hlZEFjY2Vzc2libGVEZXNjcmlw
dGlvbiwgdGV4dC50ZXh0KTsKIAotICAgIGlmICghaXM8SFRNTEVsZW1lbnQ+KG5vZGUpIHx8IGNv
cmVPYmplY3QtPmFyaWFSb2xlQXR0cmlidXRlKCkgIT0gVW5rbm93blJvbGUgfHwgY29yZU9iamVj
dC0+aXNJbWFnZSgpKQotICAgICAgICByZXR1cm4gY2FjaGVBbmRSZXR1cm5BdGtQcm9wZXJ0eShv
YmplY3QsIEF0a0NhY2hlZEFjY2Vzc2libGVEZXNjcmlwdGlvbiwgYWNjZXNzaWJpbGl0eURlc2Ny
aXB0aW9uKGNvcmVPYmplY3QpKTsKKyAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gb3RoZXIgdGV4
dCBhbHRlcm5hdGl2ZSwgdGhlIHRpdGxlIHRhZyBjb250ZW50cyB3aWxsIGhhdmUgYmVlbgorICAg
ICAgICAvLyB1c2VkIGZvciB0aGUgQXRrT2JqZWN0IG5hbWUuIFdlIGRvbid0IHdhbnQgdG8gZHVw
bGljYXRlIGl0IGhlcmUuCisgICAgICAgIGlmICh0ZXh0LnRleHRTb3VyY2UgPT0gVGl0bGVUYWdU
ZXh0ICYmIG5hbWVUZXh0QXZhaWxhYmxlKQorICAgICAgICAgICAgcmV0dXJuIGNhY2hlQW5kUmV0
dXJuQXRrUHJvcGVydHkob2JqZWN0LCBBdGtDYWNoZWRBY2Nlc3NpYmxlRGVzY3JpcHRpb24sIHRl
eHQudGV4dCk7CiAKLSAgICAvLyBhdGtfdGFibGVfZ2V0X3N1bW1hcnkgcmV0dXJucyBhbiBBdGtP
YmplY3QuIFdlIGhhdmUgbm8gc3VtbWFyeSBvYmplY3QsIHNvIGV4cG9zZSBzdW1tYXJ5IGhlcmUu
Ci0gICAgaWYgKGNvcmVPYmplY3QtPnJvbGVWYWx1ZSgpID09IFRhYmxlUm9sZSkgewotICAgICAg
ICBjb25zdCBBdG9taWNTdHJpbmcmIHN1bW1hcnkgPSBkb3duY2FzdDxIVE1MVGFibGVFbGVtZW50
Pigqbm9kZSkuc3VtbWFyeSgpOwotICAgICAgICBpZiAoIXN1bW1hcnkuaXNFbXB0eSgpKQotICAg
ICAgICAgICAgcmV0dXJuIGNhY2hlQW5kUmV0dXJuQXRrUHJvcGVydHkob2JqZWN0LCBBdGtDYWNo
ZWRBY2Nlc3NpYmxlRGVzY3JpcHRpb24sIHN1bW1hcnkpOworICAgICAgICBuYW1lVGV4dEF2YWls
YWJsZSA9IHRydWU7CiAgICAgfQogCi0gICAgLy8gVGhlIHRpdGxlIGF0dHJpYnV0ZSBzaG91bGQg
YmUgcmVsaWFibHkgYXZhaWxhYmxlIGFzIHRoZSBvYmplY3QncyBkZXNjcmlwdG9uLgotICAgIC8v
IFdlIGRvIG5vdCB3YW50IHRvIGZhbGwgYmFjayBvbiBvdGhlciBhdHRyaWJ1dGVzIGluIGl0cyBh
YnNlbmNlLiBTZWUgYnVnIDI1NTI0LgotICAgIFN0cmluZyB0aXRsZSA9IGRvd25jYXN0PEhUTUxF
bGVtZW50Pigqbm9kZSkudGl0bGUoKTsKLSAgICBpZiAoIXRpdGxlLmlzRW1wdHkoKSkKLSAgICAg
ICAgcmV0dXJuIGNhY2hlQW5kUmV0dXJuQXRrUHJvcGVydHkob2JqZWN0LCBBdGtDYWNoZWRBY2Nl
c3NpYmxlRGVzY3JpcHRpb24sIHRpdGxlKTsKLQotICAgIHJldHVybiBjYWNoZUFuZFJldHVybkF0
a1Byb3BlcnR5KG9iamVjdCwgQXRrQ2FjaGVkQWNjZXNzaWJsZURlc2NyaXB0aW9uLCBhY2Nlc3Np
YmlsaXR5RGVzY3JpcHRpb24oY29yZU9iamVjdCkpOworICAgIHJldHVybiBjYWNoZUFuZFJldHVy
bkF0a1Byb3BlcnR5KG9iamVjdCwgQXRrQ2FjaGVkQWNjZXNzaWJsZURlc2NyaXB0aW9uLCAiIik7
CiB9CiAKIHN0YXRpYyB2b2lkIHJlbW92ZUF0a1JlbGF0aW9uQnlUeXBlKEF0a1JlbGF0aW9uU2V0
KiByZWxhdGlvblNldCwgQXRrUmVsYXRpb25UeXBlIHJlbGF0aW9uVHlwZSkKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyNDQyMTc0NTQwMjRiODcw
NDFlNjQ4OTc0MjI3OTEyN2ZmNzBmMGU5Li45ZjU4YWIxODk1Y2Y0NzViZGIwMzgwZGUwNzQyNDdh
YWQ4MGI3Y2RhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTYtMDUtMTcgIEpvYW5tYXJpZSBEaWdncyAgPGpkaWdn
c0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFYOiBbQVRLXSBVc2UgV2ViQ29yZSBBY2Nlc3NpYmls
aXR5J3MgQWNjZXNzaWJpbGl0eVRleHQgZm9yIEF0a09iamVjdCBuYW1lIGFuZCBkZXNjcmlwdGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3ODIy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmhlbHBUZXh0KCkgc28gdGhhdCBpdCByZXR1cm5zIGFuIGVt
cHR5IHN0cmluZyByYXRoZXIgdGhhbgorICAgICAgICBudWxscHRyIHVwb24gZmFpbHVyZS4KKwor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnRBdGsuY3BwOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpoZWxwVGV4dCk6CisKIDIwMTYtMDUtMTYgIEVucmljYSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxl
LmNvbT4KIAogICAgICAgICBidWlsZCBmaXggYWZ0ZXIgcjIwMDk2OCBhbmQgcjIwMDk2OQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudEF0ay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcAppbmRleCA3ZDIxMWRmODM1
NDU0MTNjZDM0OGNmMTE1ZjExMDkxZmUzOTNjYTcwLi5lZGUwNDcwMzIyZGNjNGU1Mzc2ZWM3YzUx
ODA2MmMyNmYwZTE0OTk4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
QXRrLmNwcApAQCAtMTIyMiwxNSArMTIyMiwxNSBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVscFRleHQoKSBjb25zdAogCiAgICAgQXRrUmVsYXRp
b25TZXQqIHJlbGF0aW9uU2V0ID0gYXRrX29iamVjdF9yZWZfcmVsYXRpb25fc2V0KEFUS19PQkpF
Q1QobV9lbGVtZW50LmdldCgpKSk7CiAgICAgaWYgKCFyZWxhdGlvblNldCkKLSAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJz
KDAsIDApOwogCiAgICAgQXRrUmVsYXRpb24qIHJlbGF0aW9uID0gYXRrX3JlbGF0aW9uX3NldF9n
ZXRfcmVsYXRpb25fYnlfdHlwZShyZWxhdGlvblNldCwgQVRLX1JFTEFUSU9OX0RFU0NSSUJFRF9C
WSk7CiAgICAgaWYgKCFyZWxhdGlvbikKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAg
IHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOwogCiAgICAgR1B0ckFy
cmF5KiB0YXJnZXRMaXN0ID0gYXRrX3JlbGF0aW9uX2dldF90YXJnZXQocmVsYXRpb24pOwogICAg
IGlmICghdGFyZ2V0TGlzdCB8fCAhdGFyZ2V0TGlzdC0+bGVuKQotICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICAgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7
CiAKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIkFYSGVs
cDogIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggYzI2MDVjOTM3N2Q4MzI2MzhjMmQ2YzMwYTljNDhkMDhiZjUxMDBhOS4u
OTdmN2Q4YzliNDkxOTI0NzY0ODczMjBmNDFlZDY4OWExZjA0NWEyNCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDg0IEBACisyMDE2LTA1LTE3ICBKb2FubWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4K
KworICAgICAgICBBWDogW0FUS10gVXNlIFdlYkNvcmUgQWNjZXNzaWJpbGl0eSdzIEFjY2Vzc2li
aWxpdHlUZXh0IGZvciBBdGtPYmplY3QgbmFtZSBhbmQgZGVzY3JpcHRpb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NzgyMgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdyB0aGF0IHRoZSBleHBvc3Vy
ZSBpcyBjb3JyZWN0LCB0aGUgTGF5b3V0IFRlc3RzIG5lZWRlZCB0byBiZSBhZGp1c3RlZCBhY2Nv
cmRpbmdseSBiZWNhdXNlIGFza2luZworICAgICAgICBmb3IgdGhlICJBWERlc2NyaXB0aW9uIiBn
aXZlcyB5b3UgdGhlIEFYRGVzY3JpcHRpb24gb24gdGhlIE1hYyBhbmQgdGhlIEF0a09iamVjdCBk
ZXNjcmlwdGlvbiBpbgorICAgICAgICBHTlUvTGludXguIEJ1dCB3aGF0IHRoZSBNYWMgY2FsbHMg
YSAiZGVzY3JpcHRpb24iIGlzIHdoYXQgQVRLIGNhbGxzIGEgIm5hbWUuIiBXaGF0IEFUSyBjYWxs
cyBhCisgICAgICAgICJkZXNjcmlwdGlvbiIgaXMgd2hhdCB0aGUgTWFjIGNhbGxzICJoZWxwLiIK
KworICAgICAgICBVbHRpbWF0ZWx5IG91ciBMYXlvdXQgVGVzdHMgYW5kL29yIG91ciBwbGF0Zm9y
bSBUZXN0UnVubmVyIEFQSSBzaG91bGQgYmUgbW9kaWZpZWQgdG8gZGVhbCB3aXRoCisgICAgICAg
IHdpdGggdGhlc2UgZGlmZmVyZW5jZXMgbW9yZSBncmFjZWZ1bGx5LiAoQnVnIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcxODcgaGFzCisgICAgICAgIGJlZW4gb3Bl
bmVkIGZvciB0aGF0IHRhc2suKSBJbiB0aGUgbWVhbnRpbWUsIHRoZSBleGlzdGluZyB0ZXN0cyBo
YXZlIGJlZW4gZ2l2ZW4gcGxhdGZvcm0gY2hlY2tzCisgICAgICAgIHRvIGFzayBmb3IgdGhlIHJp
Z2h0IHByb3BlcnR5IG9uIGVhY2ggcGxhdGZvcm0uIFRoaXMgd2FzIGRvbmUgaW4gc3VjaCBhIHdh
eSBhcyB0byBub3QgcmVxdWlyZQorICAgICAgICBvdGhlciAobm9uLUFUSykgcGxhdGZvcm1zIGNo
YW5nZSB0aGVpciBjdXJyZW50IGV4cGVjdGF0aW9ucyBmaWxlcy4KKworICAgICAgICBJbiBhZGRp
dGlvbiB0byB0aGUgYWJvdmUsIHRocmVlIHByZXZpb3VzbHktZmFpbGluZyB0ZXN0cyB3ZXJlIGNv
cnJlY3RlZCBhbmQgYXJlIG5vdyBwYXNzaW5nLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9h
bHQtdGFnLW9uLWltYWdlLXdpdGgtbm9uaW1hZ2Utcm9sZS5odG1sOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvYXJpYS1oZWxwLmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hcmlhLWxh
YmVsLmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsZWQtd2l0aC1oaWRk
ZW4tbm9kZS5odG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW9u
LWlucHV0Lmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb3Zl
cnJpZGVzLWFyaWEtbGFiZWxlZGJ5Lmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hcmlh
LWxhYmVsbGVkYnktb3ZlcnJpZGVzLWxhYmVsLmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9hcmlhLWxhYmVsbGVkYnktc3RheS13aXRoaW4uaHRtbDoKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L2FyaWEtbGFiZWxsZWRieS13aXRoLWRlc2NlbmRhbnRzLmh0bWw6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9hcmlhLW5hbWVmcm9tLWF1dGhvci5odG1sOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvYXJpYS1vcHRpb24tcm9sZS5odG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvY2Fu
dmFzLWRlc2NyaXB0aW9uLWFuZC1yb2xlLmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9l
bXB0eS1pbWFnZS13aXRoLXRpdGxlLmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9maWVs
ZHNldC1lbGVtZW50Lmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9mb2N1c2FibGUtZGl2
Lmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvbm8tbm90aWZpY2F0aW9uLWZvci11
bnJlbmRlcmVkLWlmcmFtZS1jaGlsZHJlbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9ndGsvbm8tbm90aWZpY2F0aW9uLWZvci11bnJlbmRlcmVkLWlmcmFtZS1jaGlsZHJl
bi5odG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL3RpdGxlLWFuZC1hbHQtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL3RpdGxlLWFuZC1hbHQuaHRtbDoK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2hlbHAtdGV4dC5odG1sOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvaW1nLWFsdC10YWctb25seS13aGl0ZXNwYWNlLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L2ltZy1hbHQtdGFnLW9ubHktd2hpdGVzcGFjZS5odG1sOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvaW1nLWFyaWEtYnV0dG9uLWFsdC10YWcuaHRtbDoKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L2ltZy1mYWxsc2JhY2stdG8tdGl0bGUuaHRtbDoKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L2lucHV0LWltYWdlLWFsdC5odG1sOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvbG9hZGluZy1pZnJhbWUtc2VuZHMtbm90aWZpY2F0aW9uLmh0bWw6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9tZWRpYS1lbGVtZW50Lmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9yYWRpby1idXR0b24tdGl0bGUtbGFiZWwuaHRtbDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L3NlbGYtcmVmZXJlbmNpbmctYXJpYS1sYWJlbGxlZGJ5Lmh0bWw6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9zdmctYm91bmRzLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYWx0LXRhZy1v
bi1pbWFnZS13aXRoLW5vbmltYWdlLXJvbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLWhlbHAtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLW5lZ2F0ZXMtbm8t
dmlzaWJpbGl0eS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9h
Y2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxlZC13aXRoLWhpZGRlbi1ub2RlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxl
ZGJ5LW9uLWlucHV0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Rr
L2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW92ZXJyaWRlcy1hcmlhLWxhYmVsLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJp
YS1sYWJlbGxlZGJ5LW92ZXJyaWRlcy1hcmlhLWxhYmVsZWRieS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1v
dmVycmlkZXMtbGFiZWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
dGsvYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktd2l0aC1kZXNjZW5kYW50cy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEt
bmFtZWZyb20tYXV0aG9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1vcHRpb24tcm9sZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtc3dpdGNoLXRleHQtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2NhbnZhcy1k
ZXNjcmlwdGlvbi1hbmQtcm9sZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2VtcHR5LWltYWdlLXdpdGgtdGl0bGUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9maWVsZHNldC1l
bGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vz
c2liaWxpdHkvZm9jdXNhYmxlLWRpdi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2hlbHAtdGV4dC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2ltYWdlLWxpbmstZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2ltYWdlLW1hcDEtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2ltYWdlLW1h
cDItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2lt
YWdlLXdpdGgtYWx0LWFuZC1tYXAtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2d0
ay9hY2Nlc3NpYmlsaXR5L2ltZy1hbHQtdGFnLW9ubHktd2hpdGVzcGFjZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2ltZy1hcmlhLWJ1
dHRvbi1hbHQtdGFnLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Rr
L2FjY2Vzc2liaWxpdHkvaW1nLWZhbGxzYmFjay10by10aXRsZS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvaW5wdXQtaW1hZ2UtYWx0LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvbWVkaWEt
ZWxlbWVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxp
dHkvcmFkaW8tYnV0dG9uLXRpdGxlLWxhYmVsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9zZWxmLXJlZmVyZW5jaW5nLWFyaWEtbGFiZWxsZWRieS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5
L3N2Zy1ib3VuZHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxNi0wNS0xNiAgU2FhbSBiYXJh
dGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBTaGFkb3dDaGlja2VuIGNyYXNoZXMg
d2hlbiByZWFkaW5nIGEgc2NvcGUgZnJvbSB0aGUgZnJhbWUgZHVyaW5nIGEgc3RhY2sgb3ZlcmZs
b3cgZXhjZXB0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FsdC10
YWctb24taW1hZ2Utd2l0aC1ub25pbWFnZS1yb2xlLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L2FsdC10YWctb24taW1hZ2Utd2l0aC1ub25pbWFnZS1yb2xlLmh0bWwKaW5kZXggM2Yw
NjE4OGVmMzBmOWYzYmRkZmI2NjRjNTc5MTkzMzYxNmEyYTFkNy4uMWFlNDRjM2E4MzgzYzQ0YzBh
ZjRhNDUzODE2NGE3NmQ0Njc2NGNkYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9hbHQtdGFnLW9uLWltYWdlLXdpdGgtbm9uaW1hZ2Utcm9sZS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvYWx0LXRhZy1vbi1pbWFnZS13aXRoLW5vbmltYWdlLXJvbGUu
aHRtbApAQCAtMjQsMTAgKzI0LDE1IEBACiAgICAgICAgIHNob3VsZEJlKCJ0ZXh0LnN0cmluZ1Zh
bHVlIiwgIidBWFZhbHVlOiBURVNUMSciKTsKIAogICAgICAgICB2YXIgZ3JvdXAgPSBhY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImdyb3VwIik7Ci0gICAgICAg
IHNob3VsZEJlKCJncm91cC5kZXNjcmlwdGlvbiIsICInQVhEZXNjcmlwdGlvbjogVEVTVDInIik7
Ci0KICAgICAgICAgdmFyIGJ1dHRvbiA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2li
bGVFbGVtZW50QnlJZCgiYnV0dG9uIik7Ci0gICAgICAgIHNob3VsZEJlKCJidXR0b24uZGVzY3Jp
cHRpb24iLCAiJ0FYRGVzY3JpcHRpb246IFRFU1QzJyIpOworCisgICAgICAgIGlmIChhY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5wbGF0Zm9ybU5hbWUgPT0gImF0ayIpIHsKKyAgICAgICAgICAgIHNo
b3VsZEJlKCJncm91cC50aXRsZSIsICInQVhUaXRsZTogVEVTVDInIik7CisgICAgICAgICAgICBz
aG91bGRCZSgiYnV0dG9uLnRpdGxlIiwgIidBWFRpdGxlOiBURVNUMyciKTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIHNob3VsZEJlKCJncm91cC5kZXNjcmlwdGlvbiIsICInQVhEZXNj
cmlwdGlvbjogVEVTVDInIik7CisgICAgICAgICAgICBzaG91bGRCZSgiYnV0dG9uLmRlc2NyaXB0
aW9uIiwgIidBWERlc2NyaXB0aW9uOiBURVNUMyciKTsKKyAgICAgICAgfQogICAgIH0KIAogPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtaGVscC5o
dG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWhlbHAuaHRtbAppbmRleCA5YWYx
NGFiZTNiMDlkMGVkMmFhMzZlMWI5N2ZhNTdmMDY5ZGQ3YTMwLi45OTI0NTMyZTk0YTczNzNjMDk5
ZDZmODIxYTNjNGZiMDU0ZmFlNjM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L2FyaWEtaGVscC5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1o
ZWxwLmh0bWwKQEAgLTIwLDcgKzIwLDEwIEBAIGJ1dHRvbgogCiAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJidXR0b24iKS5mb2N1cygpOwogICAgICAgICB2YXIgYnV0dG9uID0gYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7Ci0gICAgICAgIHNob3VsZEJlKCJi
dXR0b24uaGVscFRleHQiLCAiJ0FYSGVscDogY2xpY2sgaGVyZSciKTsKKyAgICAgICAgaWYgKGFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLnBsYXRmb3JtTmFtZSA9PSAiYXRrIikKKyAgICAgICAgICAg
IHNob3VsZEJlKCJidXR0b24uZGVzY3JpcHRpb24iLCAiJ0FYRGVzY3JpcHRpb246IGNsaWNrIGhl
cmUnIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNob3VsZEJlKCJidXR0b24uaGVscFRl
eHQiLCAiJ0FYSGVscDogY2xpY2sgaGVyZSciKTsKICAgICB9CiAKIDwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsLmh0bWwgYi9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWwuaHRtbAppbmRleCAxMDFkNDJjZjYyZmYzNjE0
YTM4NzBiNjg2YzY5ZjQwNDNlNmU0YjBlLi41Y2Y2NWJjMTNhNGQ3YmNjNDE3NmYwOTY5Mjg4N2Jm
MmQwNGI3YzNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFi
ZWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWwuaHRtbApA
QCAtMTgsMTEgKzE4LDE4IEBACiAgICAgICAgICAgdmFyIGJvZHkgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiYm9keSIpOwogICAgICAgICAgIGJvZHkuZm9jdXMoKTsKICAgICAgICAgICB2YXIg
b2JqID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQuY2hpbGRBdEluZGV4
KDApLmNoaWxkQXRJbmRleCgwKTsKLSAgICAgICAgICB2YXIgc3VjY2VlZGVkID0gb2JqLmRlc2Ny
aXB0aW9uID09ICJBWERlc2NyaXB0aW9uOiBhcmlhIGxhYmVsIjsKKyAgICAgICAgICB2YXIgc3Vj
Y2VlZGVkOworICAgICAgICAgIGlmIChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5wbGF0Zm9ybU5h
bWUgPT0gImF0ayIpCisgICAgICAgICAgICAgIHN1Y2NlZWRlZCA9IG9iai50aXRsZSA9PSAiQVhU
aXRsZTogYXJpYSBsYWJlbCI7CisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICBzdWNjZWVk
ZWQgPSBvYmouZGVzY3JpcHRpb24gPT0gIkFYRGVzY3JpcHRpb246IGFyaWEgbGFiZWwiOwogICAg
ICAgICAgIHNob3VsZEJlKCJzdWNjZWVkZWQiLCAidHJ1ZSIpOwogCiAgICAgICAgICAgb2JqID0g
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQuY2hpbGRBdEluZGV4KDApLmNo
aWxkQXRJbmRleCgxKTsKLSAgICAgICAgICBzdWNjZWVkZWQgPSBvYmouZGVzY3JpcHRpb24gPT0g
IkFYRGVzY3JpcHRpb246IGFyaWEgbGluayI7CisgICAgICAgICAgaWYgKGFjY2Vzc2liaWxpdHlD
b250cm9sbGVyLnBsYXRmb3JtTmFtZSA9PSAiYXRrIikKKyAgICAgICAgICAgICAgc3VjY2VlZGVk
ID0gb2JqLnRpdGxlID09ICJBWFRpdGxlOiBhcmlhIGxpbmsiOworICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgc3VjY2VlZGVkID0gb2JqLmRlc2NyaXB0aW9uID09ICJBWERlc2NyaXB0aW9u
OiBhcmlhIGxpbmsiOwogICAgICAgICAgIHNob3VsZEJlKCJzdWNjZWVkZWQiLCAidHJ1ZSIpOwog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVs
ZWQtd2l0aC1oaWRkZW4tbm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlh
LWxhYmVsZWQtd2l0aC1oaWRkZW4tbm9kZS5odG1sCmluZGV4IGIwMGRmNDFlNzIzMDY0YzQ2Yzdj
NWMyYWI4ZTI0NDE0NjRjZDk3MDkuLjQzYThjNTFhZTk0MzEzMjJhYTY4MDUwOTBhNWE5NzQ0YzZi
MDQwNTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGVk
LXdpdGgtaGlkZGVuLW5vZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Fy
aWEtbGFiZWxlZC13aXRoLWhpZGRlbi1ub2RlLmh0bWwKQEAgLTE3LDcgKzE3LDEwIEBACiAgICAg
CiAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgewogICAgICAgIHZhciBi
dXR0b24gPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImJ1
dHRvbiIpOwotICAgICAgIHNob3VsZEJlKCJidXR0b24uZGVzY3JpcHRpb24iLCAiJ0FYRGVzY3Jp
cHRpb246IFRJVExFJyIpOworICAgICAgIGlmIChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5wbGF0
Zm9ybU5hbWUgPT0gImF0ayIpCisgICAgICAgICAgIHNob3VsZEJlKCJidXR0b24udGl0bGUiLCAi
J0FYVGl0bGU6IFRJVExFJyIpOworICAgICAgIGVsc2UKKyAgICAgICAgICAgc2hvdWxkQmUoImJ1
dHRvbi5kZXNjcmlwdGlvbiIsICInQVhEZXNjcmlwdGlvbjogVElUTEUnIik7CiAgICAgfQogPC9z
Y3JpcHQ+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJl
bGxlZGJ5LW9uLWlucHV0Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFi
ZWxsZWRieS1vbi1pbnB1dC5odG1sCmluZGV4IDcyYjdlMGVlYjJiYTQxYzg3OTllMDUxMDFiMGJh
ZTgyMjdhMzE2MWEuLmE4ODgwMTA5ODM1OTc1MWE4OWUxYjNjOTgzYTg4YzIxZTYyOTkwZDIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW9uLWlu
cHV0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnkt
b24taW5wdXQuaHRtbApAQCAtMTQsNyArMTQsMTAgQEAKICAgICAgICAgICAgIHZhciBsYWJlbGVk
SXRlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0aW1lIik7CiAgICAgICAgICAgICBsYWJl
bGVkSXRlbS5mb2N1cygpOwogICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJyZXN1bHQiKTsKLSAgICAgICAgICAgIHJlc3VsdC5pbm5lclRleHQgPSAiXG5U
aGUgYWNjZXNzaWJpbGl0eSBkZXNjcmlwdGlvbiBpcyBcIiIgKyBhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5mb2N1c2VkRWxlbWVudC5kZXNjcmlwdGlvbiArICJcIiI7CisgICAgICAgICAgICBpZiAo
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucGxhdGZvcm1OYW1lID09ICJhdGsiKQorICAgICAgICAg
ICAgICAgIHJlc3VsdC5pbm5lclRleHQgPSAiXG5UaGUgYWNjZXNzaWJpbGl0eSB0aXRsZSBpcyBc
IiIgKyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudC50aXRsZSArICJcIiI7
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmVzdWx0LmlubmVyVGV4dCA9ICJc
blRoZSBhY2Nlc3NpYmlsaXR5IGRlc2NyaXB0aW9uIGlzIFwiIiArIGFjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmZvY3VzZWRFbGVtZW50LmRlc2NyaXB0aW9uICsgIlwiIjsKICAgICAgICAgfQogICAg
IDwvc2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVzLWFyaWEtbGFiZWxlZGJ5Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vdmVycmlkZXMtYXJpYS1sYWJlbGVk
YnkuaHRtbAppbmRleCBhZDQ3YjczYTc0NDg1NjRiNDJmODI0YTJlMjkyMzZiMmNhMmVhMjg3Li4x
NjBiNzZmOGE4N2ZlY2IzOTY3Y2FlY2RkNDA4NjlkN2RhNGU1NjYzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vdmVycmlkZXMtYXJpYS1sYWJl
bGVkYnkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRi
eS1vdmVycmlkZXMtYXJpYS1sYWJlbGVkYnkuaHRtbApAQCAtMjMsMTAgKzIzLDEzIEBACiAgICAg
ZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBhcmlhLWxhYmVsbGVkYnkgb3ZlcnJpZGVzIGFy
aWEtbGFiZWxlZGJ5IGNvcnJlY3RseS4iKTsKICAgICAKICAgICBpZiAod2luZG93LmFjY2Vzc2li
aWxpdHlDb250cm9sbGVyKSB7Ci0gICAgICAgIHZhciBsaW5rRGVzY3JpcHRpb24gPSBhY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImxpbmsiKS5kZXNjcmlwdGlv
bjsKLSAgICAgICAgCi0gICAgICAgIHNob3VsZEJlKCJsaW5rRGVzY3JpcHRpb24iLCAiJ0FYRGVz
Y3JpcHRpb246IFkgWiciKTsKLSAgICAgICAgCisgICAgICAgIGlmIChhY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5wbGF0Zm9ybU5hbWUgPT0gImF0ayIpIHsKKyAgICAgICAgICAgIHZhciBsaW5rVGl0
bGUgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImxpbmsi
KS50aXRsZTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJsaW5rVGl0bGUiLCAiJ0FYVGl0bGU6IFkg
WiciKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHZhciBsaW5rRGVzY3JpcHRpb24g
PSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImxpbmsiKS5k
ZXNjcmlwdGlvbjsKKyAgICAgICAgICAgIHNob3VsZEJlKCJsaW5rRGVzY3JpcHRpb24iLCAiJ0FY
RGVzY3JpcHRpb246IFkgWiciKTsKKyAgICAgICAgfQogICAgICAgICAvLyBIaWRlIHN1cGVyZmx1
b3VzIHRleHQuCiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iikuc3R5bGUu
ZGlzcGxheSA9ICJub25lIjsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vdmVycmlkZXMtbGFiZWwuaHRtbCBiL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW92ZXJyaWRlcy1sYWJlbC5odG1sCmluZGV4
IGQ2ZjgzZjQwMWYwOTQyNTg3NDJmNmI3OTY0ZGJlNzc4NzRhYTZjYmQuLjRhMGRhZjI2Nzg3YTRk
ODYwYjE3MWRhMDQ1OTVmOTYzNDZjM2U2NzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW92ZXJyaWRlcy1sYWJlbC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW92ZXJyaWRlcy1sYWJlbC5odG1s
CkBAIC0yMiw3ICsyMiwxMCBAQAogICAgICAgICAgIHRleHQuZm9jdXMoKTsKICAgICAgICAgICB0
ZXh0ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7CiAKLSAgICAgICAg
ICBkZWJ1ZygidGV4dC5kZXNjcmlwdGlvbiBpcyAiICsgdGV4dC5kZXNjcmlwdGlvbik7CisgICAg
ICAgICAgaWYgKGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnBsYXRmb3JtTmFtZSA9PSAiYXRrIikK
KyAgICAgICAgICAgICAgZGVidWcoInRleHQudGl0bGUgaXMgIiArIHRleHQudGl0bGUpOworICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgZGVidWcoInRleHQuZGVzY3JpcHRpb24gaXMgIiAr
IHRleHQuZGVzY3JpcHRpb24pOwogCiAgICAgICAgICAgLy8gVGhlcmUgc2hvdWxkIGJlIG5vIHRp
dGxlIFVJIGVsZW1lbnQuCiAgICAgICAgICAgc2hvdWxkQmUoInRleHQudGl0bGVVSUVsZW1lbnQo
KSAhPSBudWxsICYmIHRleHQudGl0bGVVSUVsZW1lbnQoKS5pc1ZhbGlkIiwgImZhbHNlIik7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1zdGF5
LXdpdGhpbi5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnkt
c3RheS13aXRoaW4uaHRtbAppbmRleCA3MWM3NGM3NzUyZTVmNzIwYzU5ZWVhNDgwNDRjNzczOWE0
YmYxZmQ4Li5iOTMxYmEyZWEyNzRlMGU3MDIwODg5YmYyZmRlZGU0MDljZTZiZWZkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1zdGF5LXdpdGhp
bi5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LXN0
YXktd2l0aGluLmh0bWwKQEAgLTMyLDExICszMiwxNiBAQAogICAgICAgICAgICAgdmFyIGxhYmVs
ZWRJdGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlcCIpOwogICAgICAgICAgICAgbGFi
ZWxlZEl0ZW0uZm9jdXMoKTsKICAgICAgICAgICAgIHZhciByZXN1bHQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicmVzdWx0Iik7Ci0gICAgICAgICAgICBpZiAoIGFjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmZvY3VzZWRFbGVtZW50LmRlc2NyaXB0aW9uID09ICJBWERlc2NyaXB0aW9uOiBSZXBs
eSBJdGVtIEZpdmUiICkgeworICAgICAgICAgICAgdmFyIHJlc3VsdFZhbHVlOworICAgICAgICAg
ICAgaWYgKGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnBsYXRmb3JtTmFtZSA9PSAiYXRrIikKKyAg
ICAgICAgICAgICAgICByZXN1bHRWYWx1ZSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3Vz
ZWRFbGVtZW50LnRpdGxlOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJlc3Vs
dFZhbHVlID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQuZGVzY3JpcHRp
b247CisgICAgICAgICAgICBpZiAocmVzdWx0VmFsdWUuZW5kc1dpdGgoIlJlcGx5IEl0ZW0gRml2
ZSIpKSB7CiAgICAgICAgICAgICAgICByZXN1bHQuaW5uZXJUZXh0ID0gIlBhc3NlZCI7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBlbHNlIHsgCi0gICAgICAgICAgICAgICByZXN1bHQuaW5u
ZXJUZXh0ID0gIkZhaWxlZC4gUmVzdWx0ID09IiArIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZv
Y3VzZWRFbGVtZW50LmRlc2NyaXB0aW9uICsgIj09IjsKKyAgICAgICAgICAgICAgIHJlc3VsdC5p
bm5lclRleHQgPSAiRmFpbGVkLiBSZXN1bHQgPT0iICsgcmVzdWx0VmFsdWUgKyAiPT0iOwogICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS13aXRoLWRlc2NlbmRhbnRzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS13aXRoLWRlc2NlbmRh
bnRzLmh0bWwKaW5kZXggMDA5MTcyMWEzMzQwNTlmNGU1OWNjNzU3NGZkMjZkYzEwYzRmYzFiYy4u
ZWVlY2QzMDEyMDI5ZTM3ZmNjYmJkNGQ3NmFkOTY3N2YyMmI2YjFiOSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktd2l0aC1kZXNjZW5kYW50cy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LXdpdGgt
ZGVzY2VuZGFudHMuaHRtbApAQCAtNDksNyArNDksMTAgQEAKICAgICBpZiAod2luZG93LmFjY2Vz
c2liaWxpdHlDb250cm9sbGVyKSB7CiAgICAgICAgICAgZm9yICh2YXIgayA9IDE7IGsgPCA4OyBr
KyspIHsKICAgICAgICAgICAgICAgdmFyIHRlc3QgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5h
Y2Nlc3NpYmxlRWxlbWVudEJ5SWQoInRlc3QiICsgayk7Ci0gICAgICAgICAgICAgIGRlYnVnKCJ0
ZXN0ICIgKyBrICsgIjogYXJpYS1sYWJlbGxlZGJ5IGRlc2NyaXB0aW9uOiAiICsgdGVzdC5kZXNj
cmlwdGlvbik7CisgICAgICAgICAgICAgIGlmIChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5wbGF0
Zm9ybU5hbWUgPT0gImF0ayIpCisgICAgICAgICAgICAgICAgICBkZWJ1ZygidGVzdCAiICsgayAr
ICI6IGFyaWEtbGFiZWxsZWRieSBkZXNjcmlwdGlvbjogIiArIHRlc3QudGl0bGUpOworICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICBkZWJ1ZygidGVzdCAiICsgayArICI6IGFy
aWEtbGFiZWxsZWRieSBkZXNjcmlwdGlvbjogIiArIHRlc3QuZGVzY3JpcHRpb24pOwogICAgICAg
ICAgICAgICBkZWJ1ZygidGVzdCAiICsgayArICI6IGV4cGVjdGVkIGRlc2NyaXB0aW9uOiAiICsg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiICsgaykuZ2V0QXR0cmlidXRlKCJkYXRhLWxh
YmVsIikgKyAiXG4iKTsKICAgICAgICAgICB9CiAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnRlbnQiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbmFtZWZyb20tYXV0aG9yLmh0bWwgYi9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbmFtZWZyb20tYXV0aG9yLmh0bWwKaW5kZXgg
MGUyOTUzOTRmYzM4YTk4MzI1ODdiZWRmYTRiMDAyNjgzZDdkMmYxOC4uNmMyOTY2OWE1MzExMGNh
ZmIxOTRjNDc0YjI0OWIxNGNkNDY4ZTY0YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9hcmlhLW5hbWVmcm9tLWF1dGhvci5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvYXJpYS1uYW1lZnJvbS1hdXRob3IuaHRtbApAQCAtNjcsNyArNjcsMTAgQEAKICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYnV0dG9uIikuc2V0QXR0cmlidXRlKCJhcmlhLWxh
YmVsbGVkYnkiLCBsYWJlbGxlZGJ5KTsKIAogICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIpIHsKLSAgICAgICAgZGVidWcoIkJ1dHRvbiBkZXNjcmlwdGlvbjogIiArIGFjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiYnV0dG9uIikuZGVzY3Jp
cHRpb24pOworICAgICAgICBpZiAoYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucGxhdGZvcm1OYW1l
ID09ICJhdGsiKQorICAgICAgICAgICAgZGVidWcoIkJ1dHRvbiB0aXRsZTogIiArIGFjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiYnV0dG9uIikudGl0bGUpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBkZWJ1ZygiQnV0dG9uIGRlc2NyaXB0aW9uOiAiICsg
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJidXR0b24iKS5k
ZXNjcmlwdGlvbik7CiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iiku
c3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLW9wdGlvbi1yb2xlLmh0bWwgYi9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2FyaWEtb3B0aW9uLXJvbGUuaHRtbAppbmRleCA5ZDU0NmQ4NmRiMWI5NGIw
YTU5NTcyNDJhZDBiZjU0MjM1M2JkYzVhLi41YmE4ZTZiN2M5MjJjZDk2ZWM4NGQwNTRjNDg2OWYw
OTg2YmE4YTM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtb3B0
aW9uLXJvbGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtb3B0aW9u
LXJvbGUuaHRtbApAQCAtMjksNyArMjksMTAgQEAKICAgICAgICAgICBkZWJ1ZygiZmlyc3RDaGls
ZC50aXRsZSBpcyAiICsgZmlyc3RDaGlsZC50aXRsZSk7CiAKICAgICAgICAgICBkZWJ1Zygic2Vj
b25kQ2hpbGQucm9sZSBpcyAiICsgc2Vjb25kQ2hpbGQucm9sZSk7Ci0gICAgICAgICAgZGVidWco
InNlY29uZENoaWxkLmRlc2NyaXB0aW9uIGlzICIgKyBzZWNvbmRDaGlsZC5kZXNjcmlwdGlvbik7
CisgICAgICAgICAgaWYgKGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnBsYXRmb3JtTmFtZSA9PSAi
YXRrIikKKyAgICAgICAgICAgICAgZGVidWcoInNlY29uZENoaWxkLnRpdGxlIGlzICIgKyBzZWNv
bmRDaGlsZC50aXRsZSk7CisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICBkZWJ1Zygic2Vj
b25kQ2hpbGQuZGVzY3JpcHRpb24gaXMgIiArIHNlY29uZENoaWxkLmRlc2NyaXB0aW9uKTsKIAog
ICAgICAgICAgIHNob3VsZEJlKCJmaXJzdENoaWxkLmNoaWxkcmVuQ291bnQiLCAiMCIpOwogICAg
ICAgICAgIHNob3VsZEJlKCJzZWNvbmRDaGlsZC5jaGlsZHJlbkNvdW50IiwgIjAiKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvY2FudmFzLWRlc2NyaXB0aW9uLWFuZC1y
b2xlLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2NhbnZhcy1kZXNjcmlwdGlvbi1h
bmQtcm9sZS5odG1sCmluZGV4IDViOGVjZDkwM2JkZmE3YjVlZTNkMjNlYzBlMmM4M2ZjYjZjN2Nl
NWEuLjJjOGU0ZmZmNGYwN2IwNjUzY2Q3ZjVjODhmMzlkOTJhNjQyM2NlY2QgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvY2FudmFzLWRlc2NyaXB0aW9uLWFuZC1yb2xlLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9jYW52YXMtZGVzY3JpcHRpb24tYW5k
LXJvbGUuaHRtbApAQCAtMjEsMTEgKzIxLDE3IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3
aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKICAgICBzaG91bGRCZSgiYXhDb250YWlu
ZXIuY2hpbGRyZW5Db3VudCIsICIyIik7CiAKICAgICB2YXIgYXhDYW52YXMxID0gYXhDb250YWlu
ZXIuY2hpbGRBdEluZGV4KDApOwotICAgIGRlYnVnKCdDYW52YXMgMSBkZXNjcmlwdGlvbjogJyAr
IGF4Q2FudmFzMS5kZXNjcmlwdGlvbik7CisgICAgaWYgKGFjY2Vzc2liaWxpdHlDb250cm9sbGVy
LnBsYXRmb3JtTmFtZSA9PSAiYXRrIikKKyAgICAgICAgZGVidWcoJ0NhbnZhcyAxIHRpdGxlOiAn
ICsgYXhDYW52YXMxLnRpdGxlKTsKKyAgICBlbHNlCisgICAgICAgIGRlYnVnKCdDYW52YXMgMSBk
ZXNjcmlwdGlvbjogJyArIGF4Q2FudmFzMS5kZXNjcmlwdGlvbik7CiAgICAgZGVidWcoJ0NhbnZh
cyAxIHJvbGU6ICcgKyBheENhbnZhczEucm9sZSk7CiAKICAgICB2YXIgYXhDYW52YXMyID0gYXhD
b250YWluZXIuY2hpbGRBdEluZGV4KDEpOwotICAgIGRlYnVnKCdDYW52YXMgMiBkZXNjcmlwdGlv
bjogJyArIGF4Q2FudmFzMi5kZXNjcmlwdGlvbik7CisgICAgaWYgKGFjY2Vzc2liaWxpdHlDb250
cm9sbGVyLnBsYXRmb3JtTmFtZSA9PSAiYXRrIikKKyAgICAgICAgZGVidWcoJ0NhbnZhcyAyIHRp
dGxlOiAnICsgYXhDYW52YXMyLnRpdGxlKTsKKyAgICBlbHNlCisgICAgICAgIGRlYnVnKCdDYW52
YXMgMiBkZXNjcmlwdGlvbjogJyArIGF4Q2FudmFzMi5kZXNjcmlwdGlvbik7CiAgICAgZGVidWco
J0NhbnZhcyAyIHJvbGU6ICcgKyBheENhbnZhczIucm9sZSk7CiB9CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZW1wdHktaW1hZ2Utd2l0aC10aXRsZS5odG1sIGIvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9lbXB0eS1pbWFnZS13aXRoLXRpdGxlLmh0bWwKaW5kZXgg
NTMxNTRhNmEyZjIxNzM2NjNlZjExYmFlOTEwYTI5NWY0NmQ4MWIyNi4uNDMxMDgxMGE1MmFkZGJj
OWFjYjRkMDhhMDdiYjlhNGI4MjQ5ZTgwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9lbXB0eS1pbWFnZS13aXRoLXRpdGxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9lbXB0eS1pbWFnZS13aXRoLXRpdGxlLmh0bWwKQEAgLTE3LDcgKzE3LDEwIEBA
CiAKICAgICAgICAgICB2YXIgaW1hZ2UxID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCJpbWFnZTEiKTsKICAgICAgICAgICBkZWJ1ZygiaW1hZ2UxLnJvbGUg
aXMgIiArIGltYWdlMS5yb2xlKTsKLSAgICAgICAgICBkZWJ1ZygiaW1hZ2UxLmRlc2NyaXB0aW9u
IGlzICIgKyBpbWFnZTEuZGVzY3JpcHRpb24pOworICAgICAgICAgIGlmIChhY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5wbGF0Zm9ybU5hbWUgPT0gImF0ayIpCisgICAgICAgICAgICAgIGRlYnVnKCJp
bWFnZTEudGl0bGUgaXMgIiArIGltYWdlMS50aXRsZSk7CisgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICBkZWJ1ZygiaW1hZ2UxLmRlc2NyaXB0aW9uIGlzICIgKyBpbWFnZTEuZGVzY3JpcHRp
b24pOwogICAgIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L2ZpZWxkc2V0LWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
ZmllbGRzZXQtZWxlbWVudC5odG1sCmluZGV4IDdkNzU0NDQ1MmVhMTFlNjI3Yjg4ODcyOTJhNjRm
ODA1ZjRiMjMxYWMuLjM3ZTcxYjQ5OWYwYmJjMmQzMWFjYjQxNDNhMmNiNDRhNjhmZTFhMGEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZmllbGRzZXQtZWxlbWVudC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZmllbGRzZXQtZWxlbWVudC5odG1sCkBA
IC03OCw3ICs3OCwxMCBAQCBOYW1lOiA8aW5wdXQgdHlwZT0idGV4dCI+CiAgICAgICAgIC8vIGZp
ZWxkc2V0IHRlc3RzLgogICAgICAgICBmaWVsZHNldFRlc3RDb3VudCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlDbGFzc05hbWUoImZpZWxkc2V0VGVzdCIpLmxlbmd0aDsKICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBmaWVsZHNldFRlc3RDb3VudDsgKytpKSB7Ci0gICAgICAgICAgICBmaWVs
ZHNldERlc2NyaXB0aW9uID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1l
bnRCeUlkKCJmIiArIGkpLmRlc2NyaXB0aW9uOworICAgICAgICAgICAgaWYgKGFjY2Vzc2liaWxp
dHlDb250cm9sbGVyLnBsYXRmb3JtTmFtZSA9PSAiYXRrIikKKyAgICAgICAgICAgICAgICBmaWVs
ZHNldERlc2NyaXB0aW9uID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1l
bnRCeUlkKCJmIiArIGkpLnRpdGxlOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IGZpZWxkc2V0RGVzY3JpcHRpb24gPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxl
RWxlbWVudEJ5SWQoImYiICsgaSkuZGVzY3JpcHRpb247CiAgICAgICAgICAgICBkZWJ1ZyhmaWVs
ZHNldERlc2NyaXB0aW9uKTsKICAgICAgICAgfQogICAgICAgICAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvZm9jdXNhYmxlLWRpdi5odG1sIGIvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9mb2N1c2FibGUtZGl2Lmh0bWwKaW5kZXggYjE5NjgyYjY2NjUxYWZmMzgyNTE4
Njc5Y2E0ZGVhNmI5ZmQwOGYwOC4uNWIzZGQ4YTMwMTUzMzk1NmU0YjUwZjFkMDE0N2YyYTY2MDcw
MDM2NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9mb2N1c2FibGUtZGl2
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9mb2N1c2FibGUtZGl2Lmh0bWwK
QEAgLTUwLDcgKzUwLDEwIEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIpIHsKICAgICBkaXYzLmZvY3VzKCk7CiAgICAgc2hvdWxkQmUoImRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQgPT0gZGl2MyIsICJ0cnVlIik7CiAgICAgd2luZG93LmF4RGl2
MyA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50OwotICAgIHNob3VsZEJl
KCJsYXN0Q2hhcihheERpdjMuZGVzY3JpcHRpb24pIiwgIlwiRFwiIik7CisgICAgaWYgKGFjY2Vz
c2liaWxpdHlDb250cm9sbGVyLnBsYXRmb3JtTmFtZSA9PSAiYXRrIikKKyAgICAgICAgc2hvdWxk
QmUoImxhc3RDaGFyKGF4RGl2My50aXRsZSkiLCAiXCJEXCIiKTsKKyAgICBlbHNlCisgICAgICAg
IHNob3VsZEJlKCJsYXN0Q2hhcihheERpdjMuZGVzY3JpcHRpb24pIiwgIlwiRFwiIik7CiAKICAg
ICB2YXIgZGl2NCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXY0Jyk7CiAgICAgZGl2NC5m
b2N1cygpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9ndGsvbm8tbm90
aWZpY2F0aW9uLWZvci11bnJlbmRlcmVkLWlmcmFtZS1jaGlsZHJlbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2d0ay9uby1ub3RpZmljYXRpb24tZm9yLXVucmVuZGVy
ZWQtaWZyYW1lLWNoaWxkcmVuLWV4cGVjdGVkLnR4dAppbmRleCA5MWZjNjY5ZWViOGJmMjBhNjZj
N2I1YTQ0ZWRmMTY2NzQ1OTk2OTg2Li5mNDcwNzM0NjY3YTU0NTI2MDU2Y2JlMGNiOTA2NmU2MTg3
NGFkN2I0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2d0ay9uby1ub3Rp
ZmljYXRpb24tZm9yLXVucmVuZGVyZWQtaWZyYW1lLWNoaWxkcmVuLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2d0ay9uby1ub3RpZmljYXRpb24tZm9yLXVucmVu
ZGVyZWQtaWZyYW1lLWNoaWxkcmVuLWV4cGVjdGVkLnR4dApAQCAtNCw4ICs0LDggQEAgT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUKIAogCiAKLUFYQ2hpbGRyZW5BZGRlZCBvbiBBWERlc2NyaXB0aW9u
OiBpbm5lciBib2R5Ci1BWENoaWxkcmVuQWRkZWQgb24gQVhEZXNjcmlwdGlvbjogaW5uZXIgYm9k
eQorQVhDaGlsZHJlbkFkZGVkIG9uIEFYVGl0bGU6IGlubmVyIGJvZHkKK0FYQ2hpbGRyZW5BZGRl
ZCBvbiBBWFRpdGxlOiBpbm5lciBib2R5CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
Z3RrL25vLW5vdGlmaWNhdGlvbi1mb3ItdW5yZW5kZXJlZC1pZnJhbWUtY2hpbGRyZW4uaHRtbCBi
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZ3RrL25vLW5vdGlmaWNhdGlvbi1mb3ItdW5yZW5k
ZXJlZC1pZnJhbWUtY2hpbGRyZW4uaHRtbAppbmRleCA4NmJiZDBlZTAwZGZlNjk3ZmJiOTVkZWZm
YWIxMmNhODc0MjM5YjllLi4xMTdlZDI3Y2Q0YzQ5YzVhMjk2Mjk5NWM2MzlmNTYwZWY4MTJhMDkx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2d0ay9uby1ub3RpZmljYXRp
b24tZm9yLXVucmVuZGVyZWQtaWZyYW1lLWNoaWxkcmVuLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9ndGsvbm8tbm90aWZpY2F0aW9uLWZvci11bnJlbmRlcmVkLWlmcmFtZS1j
aGlsZHJlbi5odG1sCkBAIC0yMSw3ICsyMSw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAKICAg
ICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIoZnVu
Y3Rpb24oZWxlbWVudCwgbm90aWZpY2F0aW9uKSB7CiAgICAgICAgICAgICBpZiAobm90aWZpY2F0
aW9uID09ICJBWENoaWxkcmVuQWRkZWQiICYmIGVsZW1lbnQucm9sZSA9PSAiQVhSb2xlOiBBWEdy
b3VwIikKLSAgICAgICAgICAgICAgICBkZWJ1Zyhub3RpZmljYXRpb24gKyAiIG9uICIgKyBlbGVt
ZW50LmRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgICAgICBkZWJ1Zyhub3RpZmljYXRpb24gKyAi
IG9uICIgKyBlbGVtZW50LnRpdGxlKTsKICAgICAgICAgfSk7CiAgICAgfQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2d0ay90aXRsZS1hbmQtYWx0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZ3RrL3RpdGxlLWFuZC1hbHQtZXhwZWN0ZWQu
dHh0CmluZGV4IDFkYzUzMDI3YTFiMGE3OTg0ZjU3ZjJkMzVmNzYzMTU3MDY0NmU4MzMuLjU1M2E4
MTUyYzFmMDA4MDMzY2E3NzBiMWVkZDcwNDE2MDI5MTliNGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvZ3RrL3RpdGxlLWFuZC1hbHQtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZ3RrL3RpdGxlLWFuZC1hbHQtZXhwZWN0ZWQudHh0CkBA
IC0xLDUgKzEsNSBAQAogCi1GdW5jdGlvbmFsIGxhYmVsOgorRnVuY3Rpb25hbCBsYWJlbDogICAK
IFRoaXMgdGVzdHMgdGhlIGV4cG9zdXJlIG9mIGFsdCBhbmQgdGl0bGUgaW5mb3JtYXRpb24uCiAK
IE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTcsMTAgKzcsMTAgQEAgT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUKIAogUEFTUyBpbWFnZS50aXRsZSBpcyAnQVhUaXRsZTogSW1hZ2UgYWx0IGF0
dHInCiBQQVNTIGltYWdlLmRlc2NyaXB0aW9uIGlzICdBWERlc2NyaXB0aW9uOiBJbWFnZSB0aXRs
ZSBhdHRyJwotUEFTUyBsaW5rLnRpdGxlIGlzICdBWFRpdGxlOiAnCitQQVNTIGxpbmsudGl0bGUg
aXMgJ0FYVGl0bGU6IEZ1bmN0aW9uYWwgbGFiZWwnCiBQQVNTIGxpbmsuZGVzY3JpcHRpb24gaXMg
J0FYRGVzY3JpcHRpb246IExpbmsgdGl0bGUgYXR0cicKLVBBU1MgZW50cnkudGl0bGUgaXMgJ0FY
VGl0bGU6ICcKLVBBU1MgZW50cnkuZGVzY3JpcHRpb24gaXMgJ0FYRGVzY3JpcHRpb246IEVudHJ5
IHRpdGxlIGF0dHInCitQQVNTIGVudHJ5LnRpdGxlIGlzICdBWFRpdGxlOiBFbnRyeSB0aXRsZSBh
dHRyJworUEFTUyBlbnRyeS5kZXNjcmlwdGlvbiBpcyAnQVhEZXNjcmlwdGlvbjogJwogUEFTUyBi
dXR0b24udGl0bGUgaXMgJ0FYVGl0bGU6IFN1Ym1pdCcKIFBBU1MgYnV0dG9uLmRlc2NyaXB0aW9u
IGlzICdBWERlc2NyaXB0aW9uOiBTdWJtaXQgYnV0dG9uIHRpdGxlIGF0dHInCiBQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L2d0ay90aXRsZS1hbmQtYWx0Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2d0
ay90aXRsZS1hbmQtYWx0Lmh0bWwKaW5kZXggZDAwYTUxZDJhMjdiNTE4Y2YzNmZmYjRjZmRkOGUx
ZjIwNTY2NzRlYy4uYjIxM2QyOTczMWQwODJmN2RjOTZkNjRjYTQ4NTZhNmI5ZTFhNDU3YyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9ndGsvdGl0bGUtYW5kLWFsdC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZ3RrL3RpdGxlLWFuZC1hbHQuaHRtbApA
QCAtMjMsMTIgKzIzLDEyIEBACiAgICAgICAgIHNob3VsZEJlKCJpbWFnZS5kZXNjcmlwdGlvbiIs
ICInQVhEZXNjcmlwdGlvbjogSW1hZ2UgdGl0bGUgYXR0ciciKTsKIAogICAgICAgICB2YXIgbGlu
ayA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgibGluayIp
OwotICAgICAgICBzaG91bGRCZSgibGluay50aXRsZSIsICInQVhUaXRsZTogRnVuY3Rpb25hbCBs
YWJlbC4nIik7CisgICAgICAgIHNob3VsZEJlKCJsaW5rLnRpdGxlIiwgIidBWFRpdGxlOiBGdW5j
dGlvbmFsIGxhYmVsJyIpOwogICAgICAgICBzaG91bGRCZSgibGluay5kZXNjcmlwdGlvbiIsICIn
QVhEZXNjcmlwdGlvbjogTGluayB0aXRsZSBhdHRyJyIpOwogCiAgICAgICAgIHZhciBlbnRyeSA9
IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiZW50cnkiKTsK
LSAgICAgICAgc2hvdWxkQmUoImVudHJ5LnRpdGxlIiwgIidBWFRpdGxlOiAnIik7Ci0gICAgICAg
IHNob3VsZEJlKCJlbnRyeS5kZXNjcmlwdGlvbiIsICInQVhEZXNjcmlwdGlvbjogRW50cnkgdGl0
bGUgYXR0ciciKTsKKyAgICAgICAgc2hvdWxkQmUoImVudHJ5LnRpdGxlIiwgIidBWFRpdGxlOiBF
bnRyeSB0aXRsZSBhdHRyJyIpOworICAgICAgICBzaG91bGRCZSgiZW50cnkuZGVzY3JpcHRpb24i
LCAiJ0FYRGVzY3JpcHRpb246ICciKTsKIAogICAgICAgICB2YXIgYnV0dG9uID0gYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJidXR0b24iKTsKICAgICAgICAg
c2hvdWxkQmUoImJ1dHRvbi50aXRsZSIsICInQVhUaXRsZTogU3VibWl0JyIpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9oZWxwLXRleHQuaHRtbCBiL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvaGVscC10ZXh0Lmh0bWwKaW5kZXggNDQ2ZWU2ZGRjNTU5YjE4YTBmOGRh
ZDYxMzliNjlmNzA2NzM4OWE0Yi4uOTIwNjhhN2Y4MDc1Mzc2MTg4YWY4Y2NmODIxZGQ0MWQ0NTU2
ZDI4NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9oZWxwLXRleHQuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2hlbHAtdGV4dC5odG1sCkBAIC02NSw3
ICs2NSwxMSBAQAogICAgICAgICAgICAgdmFyIGF4ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
YWNjZXNzaWJsZUVsZW1lbnRCeUlkKGlkKTsKICAgICAgICAgICAgIGlmICghYXgpCiAgICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB2YXIgb3V0cHV0ID0gYXguaGVscFRleHQu
cmVwbGFjZSgiQVhIZWxwOiAiLCAiIik7CisgICAgICAgICAgICB2YXIgb3V0cHV0OworICAgICAg
ICAgICAgaWYgKGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnBsYXRmb3JtTmFtZSA9PSAiYXRrIikK
KyAgICAgICAgICAgICAgICBvdXRwdXQgPSBheC5kZXNjcmlwdGlvbi5yZXBsYWNlKCJBWERlc2Ny
aXB0aW9uOiAiLCAiIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgb3V0cHV0
ID0gYXguaGVscFRleHQucmVwbGFjZSgiQVhIZWxwOiAiLCAiIik7CiAgICAgICAgICAgICB2YXIg
cmVzdWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKICAgICAgICAgICAg
IGlmIChleHBlY3RhdGlvbiA9PT0gb3V0cHV0KQogICAgICAgICAgICAgICAgIHJlc3VsdC50ZXh0
Q29udGVudCArPSAiUEFTUzogSGVscCB0ZXh0IGZvciA8IiArIHRhZyArIj4gaXMgXCIiICsgb3V0
cHV0ICsgIlwiXG4iOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pbWct
YWx0LXRhZy1vbmx5LXdoaXRlc3BhY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9pbWctYWx0LXRhZy1vbmx5LXdoaXRlc3BhY2UtZXhwZWN0ZWQudHh0CmluZGV4IDU2
MDhkMzhjZjk3MDY4MWM4ZWVhMzcxZGE1NjcyODZkZWFmYTlkNjguLjNjYWFkMmMwYWM2YmM4YmNk
ZGQxYTA5MGVkMjA5NjUzYmJkYTQwZjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvaW1nLWFsdC10YWctb25seS13aGl0ZXNwYWNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2ltZy1hbHQtdGFnLW9ubHktd2hpdGVzcGFjZS1leHBlY3Rl
ZC50eHQKQEAgLTEsNCArMSw0IEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjY6IEltYWdlIGRl
c2NyaXB0aW9uOiBBWERlc2NyaXB0aW9uOiAgICBJbWFnZSAKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSAyNzogSW1hZ2UgZGVzY3JpcHRpb246IEFYRGVzY3JpcHRpb246ICAgIEltYWdlIAogCiAKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pbWctYWx0LXRhZy1vbmx5LXdo
aXRlc3BhY2UuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW1nLWFsdC10YWctb25s
eS13aGl0ZXNwYWNlLmh0bWwKaW5kZXggMTRmZmJhNDYyYThhZGE4OGQ2YmM3ZGUzYWVhN2YwZDZm
M2U0OTlhZS4uYTQ1NzFiZTYwYzczZTFkZmJhNzA0YjMwODJhY2U4NTVhMTg5Y2ZmOCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pbWctYWx0LXRhZy1vbmx5LXdoaXRlc3Bh
Y2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2ltZy1hbHQtdGFnLW9ubHkt
d2hpdGVzcGFjZS5odG1sCkBAIC0yMyw3ICsyMywxMCBAQAogICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiaW1hZ2VzIikuZm9jdXMoKTsKICAgICAgICAgdmFyIGltYWdlc0dyb3VwID0g
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7CiAgICAgICAgIHNob3VsZEJl
KCJpbWFnZXNHcm91cC5jaGlsZHJlbkNvdW50IiwgIjEiKTsKLSAgICAgICAgY29uc29sZS5sb2co
IkltYWdlIGRlc2NyaXB0aW9uOiAiICsgaW1hZ2VzR3JvdXAuY2hpbGRBdEluZGV4KDApLmRlc2Ny
aXB0aW9uKTsKKyAgICAgICAgaWYgKGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnBsYXRmb3JtTmFt
ZSAhPSAiYXRrIikKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKCJJbWFnZSBkZXNjcmlwdGlvbjog
IiArIGltYWdlc0dyb3VwLmNoaWxkQXRJbmRleCgwKS5kZXNjcmlwdGlvbik7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKCJJbWFnZSB0aXRsZTogIiArIGltYWdlc0dyb3Vw
LmNoaWxkQXRJbmRleCgwKS50aXRsZSk7CiAgICAgfQogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW1nLWFyaWEtYnV0dG9uLWFsdC10YWcuaHRtbCBi
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW1nLWFyaWEtYnV0dG9uLWFsdC10YWcuaHRtbApp
bmRleCA5Yjk5ZTZjODg0M2IyZTA0OWM2ZTA3NGNjZDBhMzUwZjM5ODQwOWU3Li5kYzNlYjNhYzg4
MGRkNGUwNGM4M2Q3YjU5YzhlYTkyZjc4YTBmNWY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2ltZy1hcmlhLWJ1dHRvbi1hbHQtdGFnLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9pbWctYXJpYS1idXR0b24tYWx0LXRhZy5odG1sCkBAIC0yMSw3ICsy
MSwxMCBAQAogCiAgICAgICAgICAgICB2YXIgYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJib2R5IikuZm9jdXMoKTsKICAgICAgICAgICAgIHZhciBpbWdVSUVsZW1lbnQgPSBhY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudC5jaGlsZEF0SW5kZXgoMCkuY2hpbGRBdElu
ZGV4KDApOwotICAgICAgICAgICAgZGVidWcoImltZ1VJRWxlbWVudC5kZXNjcmlwdGlvbiBpcyAi
ICsgaW1nVUlFbGVtZW50LmRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIGlmIChhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5wbGF0Zm9ybU5hbWUgPT0gImF0ayIpCisgICAgICAgICAgICAgICAgZGVi
dWcoImltZ1VJRWxlbWVudC50aXRsZSBpcyAiICsgaW1nVUlFbGVtZW50LnRpdGxlKTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBkZWJ1ZygiaW1nVUlFbGVtZW50LmRlc2NyaXB0
aW9uIGlzICIgKyBpbWdVSUVsZW1lbnQuZGVzY3JpcHRpb24pOwogICAgICAgICB9CiAgICAgPC9z
Y3JpcHQ+CiAgICAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2ltZy1m
YWxsc2JhY2stdG8tdGl0bGUuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW1nLWZh
bGxzYmFjay10by10aXRsZS5odG1sCmluZGV4IGQ2NTVhMGUxMmJmZmU0M2VjZTZhYmQ3OGI3OTZj
NTU0Mjc1NjkzNWEuLmZmYTExZDhhZmJlNGJkNWE1YTEwZGRlZDliZWVhMzc2MWZjMzRiMGYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW1nLWZhbGxzYmFjay10by10aXRs
ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW1nLWZhbGxzYmFjay10by10
aXRsZS5odG1sCkBAIC0yOCwyNCArMjgsNDQgQEAKICAgICAgICAgLy8gRmlyc3QgaW1hZ2Ugc2hv
dWxkIGhhdmUgYSBkZXNjcmlwdGlvbiBvZiAidGVzdDEiIGJlY2F1c2UgdGhlcmUgaXMgbm8gYWx0
IHRhZyAoaXQgc2hvdWxkIHVzZSB0aGUgdGl0bGUpLgogICAgICAgICAvLyBUaGUgdGl0bGUgc2hv
dWxkIE5PVCBiZSBpbiB0aGUgaGVscCB0ZXh0LgogICAgICAgICB2YXIgaW1hZ2UxID0gaW1hZ2Vz
R3JvdXAuY2hpbGRBdEluZGV4KDApLmNoaWxkQXRJbmRleCgwKTsKLSAgICAgICAgZGVidWcoIklt
YWdlMSBkZXNjcmlwdGlvbjogIiArIGltYWdlMS5kZXNjcmlwdGlvbik7Ci0gICAgICAgIGRlYnVn
KCJJbWFnZTEgaGVscDogIiArIGltYWdlMS5oZWxwVGV4dCArICI8YnI+Iik7CisgICAgICAgIGlm
IChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5wbGF0Zm9ybU5hbWUgPT0gImF0ayIpIHsKKyAgICAg
ICAgICAgIGRlYnVnKCJJbWFnZTEgdGl0bGU6ICIgKyBpbWFnZTEudGl0bGUpOworICAgICAgICAg
ICAgZGVidWcoIkltYWdlMSBkZXNjcmlwdGlvbjogIiArIGltYWdlMS5kZXNjcmlwdGlvbiArICI8
YnI+Iik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkZWJ1ZygiSW1hZ2UxIGRlc2Ny
aXB0aW9uOiAiICsgaW1hZ2UxLmRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIGRlYnVnKCJJbWFn
ZTEgaGVscDogIiArIGltYWdlMS5oZWxwVGV4dCArICI8YnI+Iik7CisgICAgICAgIH0KIAogICAg
ICAgICAvLyBTZWNvbmQgaW1hZ2Ugc2hvdWxkIHVzZSB0aGUgZGVzY3JpcHRpb24gZnJvbSB0aGUg
YWx0IHRhZyBpbnN0ZWFkIG9mIHRoZSB0aXRsZS4KICAgICAgICAgLy8gVGhlIGhlbHAgdGV4dCBz
aG91bGQgcmVmbGVjdCB3aGF0J3MgaW4gdGhlIHRpdGxlLgogICAgICAgICB2YXIgaW1hZ2UyID0g
aW1hZ2VzR3JvdXAuY2hpbGRBdEluZGV4KDApLmNoaWxkQXRJbmRleCgxKTsKLSAgICAgICAgZGVi
dWcoIkltYWdlMiBkZXNjcmlwdGlvbjogIiArIGltYWdlMi5kZXNjcmlwdGlvbik7Ci0gICAgICAg
IGRlYnVnKCJJbWFnZTIgaGVscDogIiArIGltYWdlMi5oZWxwVGV4dCArICI8YnI+Iik7CisgICAg
ICAgIGlmIChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5wbGF0Zm9ybU5hbWUgPT0gImF0ayIpIHsK
KyAgICAgICAgICAgIGRlYnVnKCJJbWFnZTIgdGl0bGU6ICIgKyBpbWFnZTIudGl0bGUpOworICAg
ICAgICAgICAgZGVidWcoIkltYWdlMiBkZXNjcmlwdGlvbjogIiArIGltYWdlMi5kZXNjcmlwdGlv
biArICI8YnI+Iik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkZWJ1ZygiSW1hZ2Uy
IGRlc2NyaXB0aW9uOiAiICsgaW1hZ2UyLmRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIGRlYnVn
KCJJbWFnZTIgaGVscDogIiArIGltYWdlMi5oZWxwVGV4dCArICI8YnI+Iik7CisgICAgICAgIH0K
IAogICAgICAgICAvLyBOb3cgZG8gdGhlIHNhbWUgY2hlY2tzIGZvciBBUklBIHR5cGUgaW1hZ2Vz
LgogICAgICAgICB2YXIgaW1hZ2UzID0gaW1hZ2VzR3JvdXAuY2hpbGRBdEluZGV4KDEpOwotICAg
ICAgICBkZWJ1ZygiSW1hZ2UzIGRlc2NyaXB0aW9uOiAiICsgaW1hZ2UzLmRlc2NyaXB0aW9uKTsK
LSAgICAgICAgZGVidWcoIkltYWdlMyBoZWxwOiAiICsgaW1hZ2UzLmhlbHBUZXh0ICsgIjxicj4i
KTsKKyAgICAgICAgaWYgKGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnBsYXRmb3JtTmFtZSA9PSAi
YXRrIikgeworICAgICAgICAgICAgZGVidWcoIkltYWdlMyB0aXRsZTogIiArIGltYWdlMy50aXRs
ZSk7CisgICAgICAgICAgICBkZWJ1ZygiSW1hZ2UzIGRlc2NyaXB0aW9uOiAiICsgaW1hZ2UzLmRl
c2NyaXB0aW9uICsgIjxicj4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRlYnVn
KCJJbWFnZTMgZGVzY3JpcHRpb246ICIgKyBpbWFnZTMuZGVzY3JpcHRpb24pOworICAgICAgICAg
ICAgZGVidWcoIkltYWdlMyBoZWxwOiAiICsgaW1hZ2UzLmhlbHBUZXh0ICsgIjxicj4iKTsKKyAg
ICAgICAgfQogCiAgICAgICAgIC8vIE5vdyBkbyB0aGUgc2FtZSBjaGVja3MgZm9yIEFSSUEgdHlw
ZSBpbWFnZXMuCiAgICAgICAgIHZhciBpbWFnZTQgPSBpbWFnZXNHcm91cC5jaGlsZEF0SW5kZXgo
Mik7Ci0gICAgICAgIGRlYnVnKCJJbWFnZTQgZGVzY3JpcHRpb246ICIgKyBpbWFnZTQuZGVzY3Jp
cHRpb24pOwotICAgICAgICBkZWJ1ZygiSW1hZ2U0IGhlbHA6ICIgKyBpbWFnZTQuaGVscFRleHQg
KyAiPGJyPiIpOworICAgICAgICBpZiAoYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucGxhdGZvcm1O
YW1lID09ICJhdGsiKSB7CisgICAgICAgICAgICBkZWJ1ZygiSW1hZ2U0IHRpdGxlOiAiICsgaW1h
Z2U0LnRpdGxlKTsKKyAgICAgICAgICAgIGRlYnVnKCJJbWFnZTQgZGVzY3JpcHRpb246ICIgKyBp
bWFnZTQuZGVzY3JpcHRpb24gKyAiPGJyPiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgZGVidWcoIkltYWdlNCBkZXNjcmlwdGlvbjogIiArIGltYWdlNC5kZXNjcmlwdGlvbik7Cisg
ICAgICAgICAgICBkZWJ1ZygiSW1hZ2U0IGhlbHA6ICIgKyBpbWFnZTQuaGVscFRleHQgKyAiPGJy
PiIpOworICAgICAgICB9CiAKICAgICAgICAgLy8gVmVyaWZ5IHRoYXQgdGhlIGZpcnN0IGltYWdl
ICh3aXRoIGFuIGVtcHR5IGFsdCB0YWcpIGlzIGlnbm9yZWQKICAgICAgICAgLy8gYnkgY2hlY2tp
bmcgdGhlIGNoaWxkcmVuIGNvdW50IG9mIHRoZSBncm91cCBjb250YWluaW5nIHRoZSBuYXRpdmUg
aW1hZ2VzID09IDIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lucHV0
LWltYWdlLWFsdC5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pbnB1dC1pbWFnZS1h
bHQuaHRtbAppbmRleCBkYjliYjlhOGU3OTcyNzQ5MDY4YTZkNGQ1YjlkZjM1NzM2OGMxZDFjLi5k
ODI4MmZjYzJiZDE1NjIxMDFjZDhiY2YwZGViMDVkNjg1NTU4YzkxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lucHV0LWltYWdlLWFsdC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvaW5wdXQtaW1hZ2UtYWx0Lmh0bWwKQEAgLTE3LDcgKzE3LDEwIEBA
CiAgICAgICAgICAgICB2YXIgaW1hZ2UxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltYWdl
MSIpLmZvY3VzKCk7CiAgICAgICAgICAgICB2YXIgaW1nID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuZm9jdXNlZEVsZW1lbnQ7CiAKLSAgICAgICAgICAgIGRlYnVnKCJpbWcuZGVzY3JpcHRpb24g
aXMgIiArIGltZy5kZXNjcmlwdGlvbik7CisgICAgICAgICAgICBpZiAoYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIucGxhdGZvcm1OYW1lID09ICJhdGsiKQorICAgICAgICAgICAgICAgIGRlYnVnKCJp
bWcudGl0bGUgaXMgIiArIGltZy50aXRsZSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgZGVidWcoImltZy5kZXNjcmlwdGlvbiBpcyAiICsgaW1nLmRlc2NyaXB0aW9uKTsKICAg
ICAgICAgfQogICAgIDwvc2NyaXB0PgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L2xvYWRpbmctaWZyYW1lLXNlbmRzLW5vdGlmaWNhdGlvbi5odG1sIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9sb2FkaW5nLWlmcmFtZS1zZW5kcy1ub3RpZmljYXRpb24uaHRtbApp
bmRleCA2ZjgwOTA2MzY1MjJiNjU3YzAwN2NjNjg4ZWIyZjk0NmQ3Mzg2OTIyLi5hYmNkNjAwMjk1
OWQyZDg1Njg4YWE5N2RmYTlmMjNmOGYwNmJlYmM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2xvYWRpbmctaWZyYW1lLXNlbmRzLW5vdGlmaWNhdGlvbi5odG1sCisrKyBi
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbG9hZGluZy1pZnJhbWUtc2VuZHMtbm90aWZpY2F0
aW9uLmh0bWwKQEAgLTU0LDcgKzU0LDE0IEBACiAKICAgICAgICAgICAgIHdpbmRvdy5hY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihmdW5jdGlvbiAodGFyZ2V0
LCBub3RpZmljYXRpb24pIHsKICAgICAgICAgICAgICAgICAvLyBJZ25vcmUgdGhpcyBub3RpZmlj
YXRpb24gaWYgaXQncyBub3Qgb24gdGhlIGlmcmFtZSBvciBub3QgYWJvdXQgdGhlIGlmcmFtZSBi
ZWluZyBsb2FkZWQuCi0gICAgICAgICAgICAgICAgaWYgKHRhcmdldC5kZXNjcmlwdGlvbi5pbmRl
eE9mKCJJbm5lckZyYW1lIikgPT0gLTEKKworICAgICAgICAgICAgICAgIHZhciB0YXJnZXRTdHJp
bmc7CisgICAgICAgICAgICAgICAgaWYgKGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnBsYXRmb3Jt
TmFtZSA9PSAiYXRrIikKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0U3RyaW5nID0gdGFyZ2V0
LnRpdGxlOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0
U3RyaW5nID0gdGFyZ2V0LmRlc2NyaXB0aW9uOworCisgICAgICAgICAgICAgICAgaWYgKHRhcmdl
dFN0cmluZy5pbmRleE9mKCJJbm5lckZyYW1lIikgPT0gLTEKICAgICAgICAgICAgICAgICAgICAg
fHwgKG5vdGlmaWNhdGlvbiAhPSAiQVhMb2FkQ29tcGxldGUiICYmIG5vdGlmaWNhdGlvbiAhPSAi
QVhMYXlvdXRDb21wbGV0ZSIpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWVkaWEtZWxlbWVudC5odG1sIGIvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tZWRpYS1lbGVtZW50Lmh0bWwKaW5kZXggNGU4NjZkZDBj
OGQ1ODgzNTBjNzU1NjhkYmQzMjE1YjhhZDBjZTA1Yy4uZmU3NjIyOTUyZTgxN2NkNGNhMzY4NzMy
MjIxYjdiZTJiYmYzMWQwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9t
ZWRpYS1lbGVtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tZWRpYS1l
bGVtZW50Lmh0bWwKQEAgLTE4LDcgKzE4LDEwIEBACiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGR1
bXBPYmplY3QoYXhPYmplY3QpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZGVidWco
aW5kZW50KGluZGVudExldmVsKSArICJkZXNjcmlwdGlvbjogIiArIGF4T2JqZWN0LmRlc2NyaXB0
aW9uKTsgCisgICAgICAgICAgICBpZiAoYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucGxhdGZvcm1O
YW1lID09ICJhdGsiKQorICAgICAgICAgICAgICAgIGRlYnVnKGluZGVudChpbmRlbnRMZXZlbCkg
KyAidGl0bGU6ICIgKyBheE9iamVjdC50aXRsZSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgZGVidWcoaW5kZW50KGluZGVudExldmVsKSArICJkZXNjcmlwdGlvbjogIiArIGF4
T2JqZWN0LmRlc2NyaXB0aW9uKTsKICAgICAgICAgICAgICAgICBkZWJ1ZyhpbmRlbnQoaW5kZW50
TGV2ZWwpICsgInJvbGU6ICIgKyBheE9iamVjdC5yb2xlKTsgCiAgICAgICAgICAgICAgICAgaWYg
KGF4T2JqZWN0LnN1YnJvbGUgJiYgYXhPYmplY3Quc3Vicm9sZSAhPSAnQVhTdWJyb2xlOiAnKSBk
ZWJ1ZyhpbmRlbnQoaW5kZW50TGV2ZWwpICsgInN1YnJvbGU6ICIgKyBheE9iamVjdC5zdWJyb2xl
KTsKICAgICAgICAgICAgICAgICBkZWJ1ZygiPGJyPiIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9yYWRpby1idXR0b24tdGl0bGUtbGFiZWwuaHRtbCBiL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvcmFkaW8tYnV0dG9uLXRpdGxlLWxhYmVsLmh0bWwKaW5kZXggZGIw
YjJmM2RmOWY2MWUzZWJkMjFiOGZlYjQ5N2QwNTk0NDM2ZTRiMi4uYzliZTAxNzg0Y2Q4OTM1YTQw
ODc5NjU5OGM1M2M5OTZmYzBlYWVlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9yYWRpby1idXR0b24tdGl0bGUtbGFiZWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L3JhZGlvLWJ1dHRvbi10aXRsZS1sYWJlbC5odG1sCkBAIC0zOSwxNSArMzksMjUg
QEAKICAgICAgICAgICAgIC8vIDIpIGFyaWEtbGFiZWxlZGJ5IHNob3VsZCBvdmVycmlkZSB0aGUg
bmF0aXZlIGxhYmVsIHNlbWFudGljcyBhbmQgcmV0dXJuIGEgdGl0bGUgZm9yIHRoZSByYWRpbyBi
dXR0b24sIGluc3RlYWQgb2YgYSB0aXRsZSB1aSBlbGVtZW50LgogICAgICAgICAgICAgdmFyIHJh
ZGlvMiA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgicjIi
KTsKICAgICAgICAgICAgIHRpdGxlVUlFbGVtZW50ID0gcmFkaW8yLnRpdGxlVUlFbGVtZW50KCk7
Ci0gICAgICAgICAgICBzaG91bGRCZSgicmFkaW8yLmRlc2NyaXB0aW9uIiwgIidBWERlc2NyaXB0
aW9uOiBMQUJFTDJhJyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoInJhZGlvMi50aXRsZSIsICIn
QVhUaXRsZTogJyIpOworICAgICAgICAgICAgaWYgKGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnBs
YXRmb3JtTmFtZSA9PSAiYXRrIikgeworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyYWRpbzIu
dGl0bGUiLCAiJ0FYVGl0bGU6IExBQkVMMmEnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJhZGlvMi5kZXNjcmlwdGlvbiIsICInQVhEZXNjcmlwdGlvbjogJyIpOworICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmFkaW8yLmRlc2NyaXB0aW9uIiwg
IidBWERlc2NyaXB0aW9uOiBMQUJFTDJhJyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
YWRpbzIudGl0bGUiLCAiJ0FYVGl0bGU6ICciKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAg
IHNob3VsZEJlVHJ1ZSgiIXRpdGxlVUlFbGVtZW50IHx8IHRpdGxlVUlFbGVtZW50LnRpdGxlID09
ICdBWFRpdGxlOiAnIik7CiAKICAgICAgICAgICAgIC8vIDMpIElmIGEgcmFkaW8gYnV0dG9uIGhh
cyBhbiBhcmlhLWxhYmVsIGFuZCBhIDxsYWJlbD4sIHRoZSBhcmlhLWxhYmVsIHNob3VsZCBiZSB0
aGUgdGl0bGUuCiAgICAgICAgICAgICB2YXIgcmFkaW8zID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJyMyIpOwogICAgICAgICAgICAgdGl0bGVVSUVsZW1l
bnQgPSByYWRpbzMudGl0bGVVSUVsZW1lbnQoKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJyYWRp
bzMuZGVzY3JpcHRpb24iLCAiJ0FYRGVzY3JpcHRpb246IHJhZGlvMyciKTsKLSAgICAgICAgICAg
IHNob3VsZEJlKCJyYWRpbzMudGl0bGUiLCAiJ0FYVGl0bGU6ICciKTsKKyAgICAgICAgICAgIGlm
IChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5wbGF0Zm9ybU5hbWUgPT0gImF0ayIpIHsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmFkaW8zLnRpdGxlIiwgIidBWFRpdGxlOiByYWRpbzMnIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJhZGlvMi5kZXNjcmlwdGlvbiIsICInQVhEZXNj
cmlwdGlvbjogJyIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmFkaW8zLmRlc2NyaXB0aW9uIiwgIidBWERlc2NyaXB0aW9uOiByYWRpbzMnIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJhZGlvMy50aXRsZSIsICInQVhUaXRsZTogJyIpOwor
ICAgICAgICAgICAgfQogICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCIhdGl0bGVVSUVsZW1lbnQg
fHwgdGl0bGVVSUVsZW1lbnQudGl0bGUgPT0gJ0FYVGl0bGU6ICciKTsKIAogICAgICAgICB9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3NlbGYtcmVmZXJlbmNpbmctYXJp
YS1sYWJlbGxlZGJ5Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3NlbGYtcmVmZXJl
bmNpbmctYXJpYS1sYWJlbGxlZGJ5Lmh0bWwKaW5kZXggM2EzZDEwNTU5ZjI3ZGMyNzdjODJhZDQy
NDQ3YTY5MWRlNmNhYjgzOS4uNDk3MWEzYWFlMzcwOWQ5ZmNlNzYzNWNhZTYxYWU0MDhmZDBjZDlh
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWxmLXJlZmVyZW5jaW5n
LWFyaWEtbGFiZWxsZWRieS5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2Vs
Zi1yZWZlcmVuY2luZy1hcmlhLWxhYmVsbGVkYnkuaHRtbApAQCAtNDAsNyArNDAsMTAgQEAKICAg
ICAgICAgdGVzdENvdW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgidGVzdCIp
Lmxlbmd0aDsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0Q291bnQ7ICsraSkgewog
ICAgICAgICAgICAgdmFyIHRlc3QgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxl
RWxlbWVudEJ5SWQoInQiICsgaSk7Ci0gICAgICAgICAgICBzaG91bGRCZSgidGVzdC5kZXNjcmlw
dGlvbiIsICInQVhEZXNjcmlwdGlvbjogWCBZIFonIik7CisgICAgICAgICAgICBpZiAoYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIucGxhdGZvcm1OYW1lID09ICJhdGsiKQorICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJ0ZXN0LnRpdGxlIiwgIidBWFRpdGxlOiBYIFkgWiciKTsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgidGVzdC5kZXNjcmlwdGlvbiIsICInQVhE
ZXNjcmlwdGlvbjogWCBZIFonIik7CiAgICAgICAgIH0KICAgICB9CiA8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc3ZnLWJvdW5kcy5odG1sIGIvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9zdmctYm91bmRzLmh0bWwKaW5kZXggN2IwYzdiOWE1YWZiYjNl
NGIyZDRjNWQyNzlmMDA2Njc5ZDQwY2FhNy4uMDAyYWY4YWJlNWM4YmJhZWJkNWU1NDc2YjJjNzM1
YzYyOGMyOTNhNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zdmctYm91
bmRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zdmctYm91bmRzLmh0bWwK
QEAgLTM0LDYgKzM0LDEwIEBAIGZ1bmN0aW9uIHBhZ2VZKGVsZW1lbnQpIHsKICAgICByZXR1cm4g
ZWxlbWVudC5jbGlja1BvaW50WSAtIGVsZW1lbnQuaGVpZ2h0LzI7CiB9CiAKK2Z1bmN0aW9uIGxh
YmVsKGVsZW1lbnQpIHsKKyAgICByZXR1cm4gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucGxhdGZv
cm1OYW1lID09ICJhdGsiID8gZWxlbWVudC50aXRsZTogZWxlbWVudC5kZXNjcmlwdGlvbjsKK30K
KwogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cikgewogICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAKQEAgLTQ2LDM1ICs1
MCwzNyBAQCBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmFjY2Vzc2liaWxpdHlDb250
cm9sbGVyKSB7CiAKICAgICB2YXIgZmFjZSA9IGNvbnRhaW5lci5jaGlsZEF0SW5kZXgoMCk7CiAg
ICAgZGVidWcoJ0ZhY2Ugcm9sZTogJyArIGZhY2Uucm9sZSk7Ci0gICAgZGVidWcoJ0ZhY2UgbGFi
ZWw6ICcgKyBmYWNlLmRlc2NyaXB0aW9uKTsKKyAgICBkZWJ1ZygnRmFjZSBsYWJlbDogJyArIGxh
YmVsKGZhY2UpKTsKICAgICBkZWJ1ZygnRmFjZVg6ICcgKyAocGFnZVgoZmFjZSkgLSB4KSk7CiAg
ICAgZGVidWcoJ0ZhY2VZOiAnICsgTWF0aC5hYnMocGFnZVkoZmFjZSkgLSB5KSk7CiAgICAgZGVi
dWcoJzxicj4nKTsKIAogICAgIHZhciBleWUgPSBjb250YWluZXIuY2hpbGRBdEluZGV4KDEpOwog
ICAgIGRlYnVnKCdFeWUgcm9sZTogJyArIGV5ZS5yb2xlKTsKLSAgICBkZWJ1ZygnRXllIGxhYmVs
OiAnICsgZXllLmRlc2NyaXB0aW9uKTsKKyAgICBkZWJ1ZygnRXllIGxhYmVsOiAnICsgbGFiZWwo
ZXllKSk7CiAgICAgZGVidWcoJ0V5ZVg6ICcgKyAocGFnZVgoZXllKSAtIHgpKTsKICAgICBkZWJ1
ZygnRXllWTogJyArIE1hdGguYWJzKHBhZ2VZKGV5ZSkgLSB5KSk7CiAgICAgZGVidWcoJzxicj4n
KTsKIAogICAgIHZhciBub3NlID0gY29udGFpbmVyLmNoaWxkQXRJbmRleCgzKTsKICAgICBkZWJ1
ZygnTm9zZSByb2xlOiAnICsgbm9zZS5yb2xlKTsKLSAgICBkZWJ1ZygnTm9zZSBsYWJlbDogJyAr
IG5vc2UuZGVzY3JpcHRpb24pOworICAgIGRlYnVnKCdOb3NlIGxhYmVsOiAnICsgbGFiZWwobm9z
ZSkpOwogICAgIGRlYnVnKCdOb3NlWDogJyArIChwYWdlWChub3NlKSAtIHgpKTsKICAgICBkZWJ1
ZygnTm9zZVk6ICcgKyBNYXRoLmFicyhwYWdlWShub3NlKSAtIHkpKTsKICAgICBkZWJ1ZygnPGJy
PicpOwogCiAgICAgdmFyIG1vdXRoID0gY29udGFpbmVyLmNoaWxkQXRJbmRleCg0KTsKICAgICBk
ZWJ1ZygnTW91dGggcm9sZTogJyArIG1vdXRoLnJvbGUpOwotICAgIGRlYnVnKCdNb3V0aCBsYWJl
bDogJyArIG1vdXRoLmRlc2NyaXB0aW9uKTsKKyAgICBkZWJ1ZygnTW91dGggbGFiZWw6ICcgKyBs
YWJlbChtb3V0aCkpOwogICAgIGRlYnVnKCdNb3V0aFg6ICcgKyAocGFnZVgobW91dGgpIC0geCkp
OwogICAgIGRlYnVnKCdNb3V0aFk6ICcgKyBNYXRoLmZsb29yKE1hdGguYWJzKHBhZ2VZKG1vdXRo
KSAtIHkpKSk7CiAgICAgZGVidWcoJzxicj4nKTsKIAogICAgIC8vIFRleHQgdmFyaWVzIGJ5IGFi
b3V0IDEgLSAyIHBpeGVscyBkZXBlbmRpbmcgb24gdGhlIHBsYXRmb3JtLAogICAgIC8vIHNvIGp1
c3QgcHJpbnQgdGhlIHRleHQgY29vcmRpbmF0ZXMgZGl2aWRlZCBieSAxMC4KLSAgICB2YXIgdGV4
dCA9IGNvbnRhaW5lci5jaGlsZEF0SW5kZXgoNSkuY2hpbGRBdEluZGV4KDApOworICAgIHZhciB0
ZXh0ID0gY29udGFpbmVyLmNoaWxkQXRJbmRleCg1KTsKKyAgICBpZiAoYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIucGxhdGZvcm1OYW1lICE9ICJhdGsiKQorICAgICAgICB0ZXh0ID0gdGV4dC5jaGls
ZEF0SW5kZXgoMCk7CiAgICAgZGVidWcoJ1RleHQgcm9sZTogJyArIHRleHQucm9sZSk7CiAgICAg
ZGVidWcoJ1RleHRYLzEwOiAnICsgTWF0aC5mbG9vcigocGFnZVgodGV4dCkgLSB4KSAvIDEwKSk7
CiAgICAgZGVidWcoJ1RleHRZLzEwOiAnICsgTWF0aC5mbG9vcihNYXRoLmFicyhwYWdlWSh0ZXh0
KSAtIHkpIC8gMTApKTsKQEAgLTgyLDcgKzg4LDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYm
IHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgewogCiAgICAgdmFyIGltYWdlID0gY29u
dGFpbmVyLmNoaWxkQXRJbmRleCg2KTsKICAgICBkZWJ1ZygnSW1hZ2Ugcm9sZTogJyArIGltYWdl
LnJvbGUpOwotICAgIGRlYnVnKCdJbWFnZSBsYWJlbDogJyArIGltYWdlLmRlc2NyaXB0aW9uKTsK
KyAgICBkZWJ1ZygnSW1hZ2UgbGFiZWw6ICcgKyBsYWJlbChpbWFnZSkpOwogICAgIGRlYnVnKCdJ
bWFnZVg6ICcgKyAocGFnZVgoaW1hZ2UpIC0geCkpOwogICAgIGRlYnVnKCdJbWFnZVk6ICcgKyBN
YXRoLmFicyhwYWdlWShpbWFnZSkgLSB5KSk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDdiNGIxOTk3MWVhOGViZjVmNzdjMDEyOTYwYmVhMTk0MWEw
NTk3OGUuLjUxYmQ5NDY4ZjMyMzZjOWJmMGJlOWFlNjI2NTIxZmZhODM3YTE4ODQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNzQwLDggKzE3NDAsNiBA
QCB3ZWJraXQub3JnL2IvOTM5ODAgaHR0cC90ZXN0cy9hcHBjYWNoZS9sb2FkLWZyb20tYXBwY2Fj
aGUtZGVmZXItcmVzdW1lLWNyYXNoLmh0bQogd2Via2l0Lm9yZy9iLzQyMTk0IGZhc3QvZXZlbnRz
LzUwNTY2MTkuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzQyMTk0IGh0dHAvdGVzdHMv
c2VjdXJpdHkvZHJhZy1kcm9wLXNhbWUtdW5pcXVlLW9yaWdpbi5odG1sIFsgRmFpbHVyZSBdCiAK
LXdlYmtpdC5vcmcvYi8xMDYzNDAgYWNjZXNzaWJpbGl0eS9pbWctZmFsbHNiYWNrLXRvLXRpdGxl
Lmh0bWwgWyBGYWlsdXJlIF0KLQogIyBzdmcvIGZhaWx1cmVzCiB3ZWJraXQub3JnL2IvNDI0NTcg
c3ZnL2N1c3RvbS9lbWJlZGRlZC1zdmctYWxsb3dlZC1pbi1kYXNoYm9hcmQueG1sIFsgRmFpbHVy
ZSBdCiB3ZWJraXQub3JnL2IvNDI0NTcgc3ZnL2N1c3RvbS9tYW51YWxseS1wYXJzZWQtZW1iZWRk
ZWQtc3ZnLWFsbG93ZWQtaW4tZGFzaGJvYXJkLmh0bWwgWyBGYWlsdXJlIF0KQEAgLTE5NTksOCAr
MTk1Nyw2IEBAIEJ1ZyhHVEspIHNwdXRuaWsvQ29uZm9ybWFuY2UvMTVfTmF0aXZlX09iamVjdHMv
MTUuOV9EYXRlLzE1LjkuMy9TMTUuOS4zLjFfQTVfVDQuCiBCdWcoR1RLKSBzcHV0bmlrL0NvbmZv
cm1hbmNlLzE1X05hdGl2ZV9PYmplY3RzLzE1LjlfRGF0ZS8xNS45LjMvUzE1LjkuMy4xX0E1X1Q1
Lmh0bWwgWyBGYWlsdXJlIF0KIEJ1ZyhHVEspIHNwdXRuaWsvQ29uZm9ybWFuY2UvMTVfTmF0aXZl
X09iamVjdHMvMTUuOV9EYXRlLzE1LjkuMy9TMTUuOS4zLjFfQTVfVDYuaHRtbCBbIEZhaWx1cmUg
XQogCi13ZWJraXQub3JnL2IvMTU3MTg3IGFjY2Vzc2liaWxpdHkvZ3RrL3RpdGxlLWFuZC1hbHQu
aHRtbCBbIEZhaWx1cmUgXQotCiAjIEV4cG9zZSB0aXRsZSBkaXJlY3Rpb24gaW4gV2ViS2l0IEFQ
SQogd2Via2l0Lm9yZy9iLzU4ODQ1IGZhc3QvZG9tL3RpdGxlLWRpcmVjdGlvbmFsaXR5Lmh0bWwg
WyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi81ODg0NSBmYXN0L2RvbS90aXRsZS1kaXJlY3Rpb25h
bGl0eS1yZW1vdmVDaGlsZC5odG1sIFsgRmFpbHVyZSBdCkBAIC0yMjM0LDggKzIyMzAsNiBAQCB3
ZWJraXQub3JnL2IvMTI5MTEzIGZhc3QvbXVsdGljb2wvbmV3bXVsdGljb2wvY2xpcHBpbmcuaHRt
bCBbIFBhc3MgXQogIyBUZXN0IGdsb2JhbGx5IHNraXBwZWQsIHBhc3Npbmcgb24gR1RLIHBvcnQK
IHdlYmtpdC5vcmcvYi8xMjQzNDkgZmFzdC9oaWRwaS9pbWFnZS1zcmNzZXQtcmVsYXRpdmUtc3Zn
LWNhbnZhcy5odG1sIFsgUGFzcyBdCiAKLXdlYmtpdC5vcmcvYi8xMzE0OTYgYWNjZXNzaWJpbGl0
eS9oZWxwLXRleHQuaHRtbCBbIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvMTMxNDk4IGZhc3Qv
Y3NzL2Nhc2NhZGUvYm94LXNoYWRvdy1hbmQtd2Via2l0LWJveC1zaGFkb3ctY2FzY2FkZS1vcmRl
ci5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xMzE1MDEgZmFzdC9j
c3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvZ2x5cGgt
aW5zaWRlLXVuZGVybGluZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hbHQtdGFnLW9uLWltYWdlLXdp
dGgtbm9uaW1hZ2Utcm9sZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
YWNjZXNzaWJpbGl0eS9hbHQtdGFnLW9uLWltYWdlLXdpdGgtbm9uaW1hZ2Utcm9sZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzdhYjk3MmYyMmRhNjNmZjBhMmQ0ZjRmZTRmNGFiZTI5OGY2OWVm
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmls
aXR5L2FsdC10YWctb24taW1hZ2Utd2l0aC1ub25pbWFnZS1yb2xlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEzIEBACisgICAKK1RoaXMgdGVzdHMgdGhhdCBzZXR0aW5nIGEgcm9sZSBvbiBhbiBp
bWcgc3RpbGwgYWxsb3dzIHRoZSBhbHQgYXR0cmlidXRlIHRvIGJlIHVzZWQgZm9yIHRoZSBkZXNj
cmlwdGlvbi4uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRleHQuc3Ry
aW5nVmFsdWUgaXMgJ0FYVmFsdWU6IFRFU1QxJworUEFTUyBncm91cC50aXRsZSBpcyAnQVhUaXRs
ZTogVEVTVDInCitQQVNTIGJ1dHRvbi50aXRsZSBpcyAnQVhUaXRsZTogVEVTVDMnCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1oZWxwLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtaGVscC1l
eHBlY3RlZC50eHQKaW5kZXggMGM5YmFjZDZhZWE2ZmYzNTNkZmE2ZTYzNzMxYjdiYWM3MmY0Yjll
ZS4uM2VhMGY0MDg4M2VjOTRiNWYwMWVmMGRhZDAwNzcwZDEzZWM5YWE3NSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1oZWxwLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLWhl
bHAtZXhwZWN0ZWQudHh0CkBAIC00LDcgKzQsNyBAQCBUaGlzIHRlc3RzIHRoYXQgYXJpYS1oZWxw
IGF0dHJpYnV0ZSB3b3JrcyBhcyBleHBlY3RlZC4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
IAogCi1GQUlMIGJ1dHRvbi5oZWxwVGV4dCBzaG91bGQgYmUgQVhIZWxwOiBjbGljayBoZXJlIChv
ZiB0eXBlIHN0cmluZykuIFdhcyBudWxsIChvZiB0eXBlIG9iamVjdCkuCitQQVNTIGJ1dHRvbi5k
ZXNjcmlwdGlvbiBpcyAnQVhEZXNjcmlwdGlvbjogY2xpY2sgaGVyZScKIFBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tbmVnYXRlcy1uby12aXNp
YmlsaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmls
aXR5L2FyaWEtaGlkZGVuLW5lZ2F0ZXMtbm8tdmlzaWJpbGl0eS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTJjZThiY2Q4ZGY4OGEzMWZjYmIzODBiZDQ3MjkxYjY5MmMwZmQyZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlk
ZGVuLW5lZ2F0ZXMtbm8tdmlzaWJpbGl0eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNSBAQAor
aGVhZGluZzEuMgorCisKKworCitUaGlzIHRlc3RzIGVuc3VyZXMgdGhhdCBhcmlhLWhpZGRlbj1m
YWxzZSB3aWxsIGFsbG93IGEgbm9kZSB0byBiZSBpbiB0aGUgQVggaGllcmFyY2h5IGV2ZW4gaWYg
aXQncyBub3QgcmVuZGVyZWQgb3IgdmlzaWJsZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyAhaGVhZGluZzFfMSB8fCAhaGVhZGluZzFfMS5pc1ZhbGlkIGlzIHRydWUKK1BB
U1MgIWhlYWRpbmcxXzIgfHwgIWhlYWRpbmcxXzMuaXNWYWxpZCBpcyB0cnVlCitQQVNTICFoZWFk
aW5nMV8zIHx8ICFoZWFkaW5nMV8zLmlzVmFsaWQgaXMgdHJ1ZQorUEFTUyBoZWFkaW5nMi5yb2xl
IGlzICdBWFJvbGU6IEFYSGVhZGluZycKK1BBU1MgcGFyZW50LmNoaWxkQXRJbmRleCgwKS5pc0Vx
dWFsKGhlYWRpbmcyKSBpcyB0cnVlCitQQVNTIGhlYWRpbmczLnJvbGUgaXMgJ0FYUm9sZTogQVhI
ZWFkaW5nJworUEFTUyBwYXJlbnQuY2hpbGRBdEluZGV4KDEpLmlzRXF1YWwoaGVhZGluZzMpIGlz
IHRydWUKK1BBU1MgaGVhZGluZzQucm9sZSBpcyAnQVhSb2xlOiBBWEhlYWRpbmcnCitQQVNTIHBh
cmVudC5jaGlsZEF0SW5kZXgoMikuaXNFcXVhbChoZWFkaW5nNCkgaXMgdHJ1ZQorVGV4dGZpZWxk
IFRpdGxlOiBBWFRpdGxlOiBIaWRkZW5UZXh0MQorUEFTUyB2aWRlby5jaGlsZHJlbkNvdW50IGlz
IDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLWxh
YmVsZWQtd2l0aC1oaWRkZW4tbm9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsZWQtd2l0aC1oaWRkZW4tbm9kZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjcwN2I2MWNmODg2YTFmOTAxNjFmNWJhNzBmNzdjMDk2YjQwZmQ0
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmls
aXR5L2FyaWEtbGFiZWxlZC13aXRoLWhpZGRlbi1ub2RlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDExIEBACitHbworVGhpcyB0ZXN0cyB0aGF0IGlmIHRyeSB0byB1c2UgYSBub24tcmVuZGVyZWQg
bm9kZSBhcyB5b3VyIGxhYmVsbGVkYnkgZWxlbWVudCwgaXQgd29uJ3QgY3Jhc2ggYW5kIGl0IHdp
bGwgd29yay4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYnV0dG9uLnRp
dGxlIGlzICdBWFRpdGxlOiBUSVRMRScKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
YWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb24taW5wdXQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW9uLWlu
cHV0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDEzNjk1MzliYTQyYmQ1MzBhN2JiMTRhNGVm
N2UwNWM3M2VlNTUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW9uLWlucHV0LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKK1RoaXMgY29tcHV0ZXIgd2lsbCBzZWxmLWRlc3RydWN0IGluICAgbWludXRl
cy4KKworVGhlIGFjY2Vzc2liaWxpdHkgdGl0bGUgaXMgIkFYVGl0bGU6IFRoaXMgY29tcHV0ZXIg
d2lsbCBzZWxmLWRlc3RydWN0IGluIDEwIG1pbnV0ZXMuIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW92ZXJyaWRlcy1h
cmlhLWxhYmVsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3Np
YmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vdmVycmlkZXMtYXJpYS1sYWJlbC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjE3NTMzNmRhMjY0Yzg0ZjAxYmYxZjE3YzVhMGRlMjJkMDI0NWYyMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2Fy
aWEtbGFiZWxsZWRieS1vdmVycmlkZXMtYXJpYS1sYWJlbC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMiBAQAorVGhpcyB0ZXN0cyB0aGF0IGlmIGFyaWEtbGFiZWxsZWRieSBpcyB1c2VkLCB0aGVu
IGFyaWEtbGFiZWwgYXR0cmlidXRlcyBhcmUgbm90IHVzZWQuCisKK0FscGhhIEJldGEgRGVsdGEg
RXRhIEVwc2lsb24gVGhldGEKK3VzaW5nTm9uZS50aXRsZTogW0FYVGl0bGU6IEFscGhhXQordXNp
bmdOb25lLmRlc2NyaXB0aW9uOiBbQVhEZXNjcmlwdGlvbjogXQordXNpbmdMYWJlbC50aXRsZTog
W0FYVGl0bGU6IEdhbW1hXQordXNpbmdMYWJlbC5kZXNjcmlwdGlvbjogW0FYRGVzY3JpcHRpb246
IF0KK3VzaW5nTGFiZWxsZWRieS50aXRsZTogW0FYVGl0bGU6IEVwc2lsb25dCit1c2luZ0xhYmVs
bGVkYnkuZGVzY3JpcHRpb246IFtBWERlc2NyaXB0aW9uOiBdCit1c2luZ0xhYmVsZWRieS50aXRs
ZTogW0FYVGl0bGU6IFRoZXRhXQordXNpbmdMYWJlbGVkYnkuZGVzY3JpcHRpb246IFtBWERlc2Ny
aXB0aW9uOiBdCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3Np
YmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vdmVycmlkZXMtYXJpYS1sYWJlbGVkYnktZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxl
ZGJ5LW92ZXJyaWRlcy1hcmlhLWxhYmVsZWRieS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODdi
OTVlY2NiZjk4OGRmOTFkZTExOWY4Y2RkMDUzODc4NWQ0NDZiMwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1v
dmVycmlkZXMtYXJpYS1sYWJlbGVkYnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Ro
aXMgdGVzdHMgdGhhdCBhcmlhLWxhYmVsbGVkYnkgb3ZlcnJpZGVzIGFyaWEtbGFiZWxlZGJ5IGNv
cnJlY3RseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgbGlua1RpdGxl
IGlzICdBWFRpdGxlOiBZIFonCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vz
c2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW92ZXJyaWRlcy1sYWJlbC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb3Zl
cnJpZGVzLWxhYmVsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Nzg4NjM4YjZhMTA2Yzg4MzJh
OGI0ZTY2ODgyM2MyYjY3NGJjOGVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW92ZXJyaWRlcy1sYWJlbC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorU2h1dCBkb3duIGNvbXB1dGVyIGFmdGVyICBt
aW51dGVzCitUaGlzIHRlc3RzIHRoYXQgaWYgYXJpYS1sYWJlbGxlZGJ5IGlzIHVzZWQsIHRoZW4g
bGFiZWwgZWxlbWVudHMgYXJlIG5vdCB1c2VkCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCit0ZXh0LnRpdGxlIGlzIEFYVGl0bGU6IFNodXQgZG93biBjb21wdXRlciBhZnRlciAxMCBt
aW51dGVzCitQQVNTIHRleHQudGl0bGVVSUVsZW1lbnQoKSAhPSBudWxsICYmIHRleHQudGl0bGVV
SUVsZW1lbnQoKS5pc1ZhbGlkIGlzIGZhbHNlCitMYWJlbCBlbGVtZW50IHJvbGUgaXM6IEFYUm9s
ZTogQVhMYWJlbAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5
L2FyaWEtbGFiZWxsZWRieS13aXRoLWRlc2NlbmRhbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS13aXRoLWRlc2Nl
bmRhbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMmJhZjYwYTRjOGNkOTQ1MzY5NmE4Yzgy
ZTFmNDk1MDRhOTNmZjE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LXdpdGgtZGVzY2VuZGFudHMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMzIgQEAKKworCitUaGlzIHRlc3RzIHRoYXQgaWYgYXJpYS1sYWJl
bGxlZGJ5IGlzIHBvaW50aW5nIHRvIG5vZGVzIHdpdGggZGVzY2VuZGFudHMsIGl0IHJldHVybnMg
YWxsIHRleHQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCit0ZXN0IDE6IGFyaWEt
bGFiZWxsZWRieSBkZXNjcmlwdGlvbjogQVhUaXRsZTogaGVsbG8gbGluayB1c2Ugd29ybGQgdGVz
dDEgdGVzdDIgdGVzdDMKK3Rlc3QgMTogZXhwZWN0ZWQgZGVzY3JpcHRpb246IGhlbGxvIGxpbmsg
dXNlIHdvcmxkIHRlc3QxIHRlc3QyIHRlc3QzCisKK3Rlc3QgMjogYXJpYS1sYWJlbGxlZGJ5IGRl
c2NyaXB0aW9uOiBBWFRpdGxlOiBmb28gYmFyCit0ZXN0IDI6IGV4cGVjdGVkIGRlc2NyaXB0aW9u
OiBmb28gYmFyCisKK3Rlc3QgMzogYXJpYS1sYWJlbGxlZGJ5IGRlc2NyaXB0aW9uOiBBWFRpdGxl
OiBmb28gYmFyCit0ZXN0IDM6IGV4cGVjdGVkIGRlc2NyaXB0aW9uOiBmb28gYmFyCisKK3Rlc3Qg
NDogYXJpYS1sYWJlbGxlZGJ5IGRlc2NyaXB0aW9uOiBBWFRpdGxlOiBmb28KK3Rlc3QgNDogZXhw
ZWN0ZWQgZGVzY3JpcHRpb246IGZvbworCit0ZXN0IDU6IGFyaWEtbGFiZWxsZWRieSBkZXNjcmlw
dGlvbjogQVhUaXRsZTogRGVsZXRlCit0ZXN0IDU6IGV4cGVjdGVkIGRlc2NyaXB0aW9uOiBEZWxl
dGUKKwordGVzdCA2OiBhcmlhLWxhYmVsbGVkYnkgZGVzY3JpcHRpb246IEFYVGl0bGU6IERlbGV0
ZSBwcm9kdWN0IG5hbWUKK3Rlc3QgNjogZXhwZWN0ZWQgZGVzY3JpcHRpb246IERlbGV0ZSBwcm9k
dWN0IG5hbWUKKwordGVzdCA3OiBhcmlhLWxhYmVsbGVkYnkgZGVzY3JpcHRpb246IEFYVGl0bGU6
IGZvbyBiYXIgYmF6IGJvcCBiYXAgYm9vbQordGVzdCA3OiBleHBlY3RlZCBkZXNjcmlwdGlvbjog
Zm9vIGJhciBiYXogYm9wIGJhcCBib29tCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvYWNjZXNzaWJpbGl0eS9hcmlhLW5hbWVmcm9tLWF1dGhvci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLW5hbWVmcm9tLWF1dGhvci1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDExYTcxZGZiNzIyMzA4N2Y0NmY5Nzc2OWRhZWRmYzZj
Yzk0MGFjOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nl
c3NpYmlsaXR5L2FyaWEtbmFtZWZyb20tYXV0aG9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEw
IEBACitUaGlzIHRlc3RzIGFsbCB0aGUgY2FzZXMgd2hlcmUgbmFtZUZyb206IGF1dGhvciBpcyB1
c2VkIGluc3RlYWQgb2YgbmFtZUZyb206IGNvbnRlbnRzLiBUaGlzIG1lYW5zIHRoYXQgaWYgdGhl
c2UgZWxlbWVudHMgYXJlIHVzZWQgaW4gYXJpYS1sYWJlbGxlZGJ5IHRoZXkgc2hvdWxkIG5vdCBy
ZXR1cm4gdGhlaXIgaW5uZXIgdGV4dC4gVGhlIGJ1dHRvbiBzaG91bGQgcmV0YWluIGl0cyBhcmlh
LWxhYmVsIGFzIHRoZSBkZXNjcmlwdGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK0J1dHRvbiB0aXRsZTogQVhUaXRsZTogdGV4dAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtb3B0aW9uLXJvbGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1vcHRpb24tcm9sZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMTFlMDYyMjE0NGIwNzUwNmFhYzBmZWNlMjUzZmRkMjRkNjA2
Yjg2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3Np
YmlsaXR5L2FyaWEtb3B0aW9uLXJvbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK29w
dGlvbiAxCitvcHRpb24gMgorVGhpcyB0ZXN0cyB0aGF0IHRoZSBhcmlhICdvcHRpb24nIHJvbGUg
d29ya3MgYXMgZXhwZWN0ZWQuIFRoYXQgaXMsIGl0IGJlY29tZXMgYSBzdGF0aWMgdGV4dCBlbGVt
ZW50IHdpdGggbm8gY2hpbGRyZW4uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitm
aXJzdENoaWxkLnJvbGUgaXMgQVhSb2xlOiBBWExpc3RJdGVtCitmaXJzdENoaWxkLnRpdGxlIGlz
IEFYVGl0bGU6IG9wdGlvbiAxCitzZWNvbmRDaGlsZC5yb2xlIGlzIEFYUm9sZTogQVhMaXN0SXRl
bQorc2Vjb25kQ2hpbGQudGl0bGUgaXMgQVhUaXRsZTogbGFiZWwgMgorUEFTUyBmaXJzdENoaWxk
LmNoaWxkcmVuQ291bnQgaXMgMAorUEFTUyBzZWNvbmRDaGlsZC5jaGlsZHJlbkNvdW50IGlzIDAK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXN3aXRj
aC10ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmls
aXR5L2FyaWEtc3dpdGNoLXRleHQtZXhwZWN0ZWQudHh0CmluZGV4IDI3YmY1MzA4ZmFhNTE5ZDY5
MTA3ZWQ4OTEzOTljNTliMWIwMTY2MGMuLmY1Yjc1M2VlYTI3MzMzYWQyZmEzNThhYjQ3NDA0NTQ0
MDY0OTRjZjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmls
aXR5L2FyaWEtc3dpdGNoLXRleHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtc3dpdGNoLXRleHQtZXhwZWN0ZWQudHh0CkBAIC0x
Miw4ICsxMiw4IEBAIHdpZGdldC5jaGlsZHJlbkNvdW50IGlzIDAKIHdpZGdldC50aXRsZSBpcyBB
WFRpdGxlOiBUd28KIHdpZGdldC5kZXNjcmlwdGlvbiBpcyBBWERlc2NyaXB0aW9uOiAKIHdpZGdl
dC5jaGlsZHJlbkNvdW50IGlzIDAKLXdpZGdldC50aXRsZSBpcyBBWFRpdGxlOiBUaHJlZQotd2lk
Z2V0LmRlc2NyaXB0aW9uIGlzIEFYRGVzY3JpcHRpb246IGZvbword2lkZ2V0LnRpdGxlIGlzIEFY
VGl0bGU6IGZvbword2lkZ2V0LmRlc2NyaXB0aW9uIGlzIEFYRGVzY3JpcHRpb246IAogd2lkZ2V0
LmNoaWxkcmVuQ291bnQgaXMgMAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9jYW52YXMt
ZGVzY3JpcHRpb24tYW5kLXJvbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL2FjY2Vzc2liaWxpdHkvY2FudmFzLWRlc2NyaXB0aW9uLWFuZC1yb2xlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zYmYyMjYzMjg0NDNiN2Q0ZThiM2IxMTgxZGUwNTlhZWI1NDEyNzdhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkv
Y2FudmFzLWRlc2NyaXB0aW9uLWFuZC1yb2xlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBA
CitUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IGEgY2FudmFzIHdpdGggYW5kIHdpdGhvdXQgZmFs
bGJhY2sgY29udGVudCBlYWNoIGhhcyB0aGUgcmlnaHQgcm9sZSBhbmQgZGVzY3JpcHRpb24uCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGF4Q29udGFpbmVyLmNoaWxkcmVu
Q291bnQgaXMgMgorQ2FudmFzIDEgdGl0bGU6IEFYVGl0bGU6IENhbnZhcyBsYWJlbAorQ2FudmFz
IDEgcm9sZTogQVhSb2xlOiBBWENhbnZhcworQ2FudmFzIDIgdGl0bGU6IEFYVGl0bGU6IAorQ2Fu
dmFzIDIgcm9sZTogQVhSb2xlOiBBWENhbnZhcworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9hY2Nlc3NpYmlsaXR5L2VtcHR5LWltYWdlLXdpdGgtdGl0bGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvZW1wdHktaW1hZ2Utd2l0aC10
aXRsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWYzYTE1ZGJjZjYwMzAyNGFiMjk5YTA1ZTBh
NjNmMjFhMjM2YzRhYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9hY2Nlc3NpYmlsaXR5L2VtcHR5LWltYWdlLXdpdGgtdGl0bGUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTIgQEAKKworVGhpcyB0ZXN0cyB0aGF0IGlmIGEgbWlzc2luZyBpbWFnZSBoYXMgYSB0
aXRsZSBhdHRyaWJ1dGUsIGl0IHN0aWxsIGFwcGVhcnMgaW4gdGhlIEFYIGhpZXJhcmNoeS4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2ltYWdlMS5yb2xlIGlzIEFYUm9sZTogQVhJ
bWFnZQoraW1hZ2UxLnRpdGxlIGlzIEFYVGl0bGU6IGJhegorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2ZpZWxkc2V0LWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvZmllbGRzZXQtZWxlbWVudC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzIzZWY4YzRkOWZjNTExMTdhMWM2ZGMxNDViNWE3MmNm
ZTRmY2ZkNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nl
c3NpYmlsaXR5L2ZpZWxkc2V0LWVsZW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjkgQEAK
K05hbWU6IAorSGlnaCBTY29yZToKK05hbWU6IAorSGlnaCBTY29yZToKK05hbWU6IAorSGlnaCBT
Y29yZToKK05hbWU6IAorSGlnaCBTY29yZToKK05hbWU6IAorSGlnaCBTY29yZTogTmFtZTogCitO
YW1lOiAKK090aGVyOgorVGhpcyB0ZXN0cyB0aGF0IGZpZWxkc2V0IGFuZCBsZWdlbmQgZWxlbWVu
dHMgYXJlIGV4cG9zZWQgY29ycmVjdGx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworQVhUaXRsZTogSGlnaCBTY29yZToKK0FYVGl0bGU6IEhpZ2ggU2NvcmU6CitBWFRpdGxlOiBO
ZXcgSGlnaCBTY29yZToKK0FYVGl0bGU6IE5ldyBIaWdoIFNjb3JlOgorQVhUaXRsZTogCitBWFRp
dGxlOiBIaWdoIFNjb3JlOgorQVhUaXRsZTogCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvYWNjZXNzaWJpbGl0eS9mb2N1c2FibGUtZGl2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2ZvY3VzYWJsZS1kaXYtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQxY2ViYzQ5ZTc3ODFlZDJmZjNhNWRjNGZjNDVhYWYyMzBkZTllYzEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9m
b2N1c2FibGUtZGl2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM1IEBACitBCitCCitDCitMaW5r
CitJbml0aWFsIHRleHQgYmVmb3JlIGxpbmtMaW5rCitMaXN0IGl0ZW0KK0luaXRpYWwgdGV4dCBi
ZWZvcmUgbGlzdAorTGlzdCBpdGVtCitUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IGEgZ2VuZXJp
YyBmb2N1c2FibGUgZGl2IGNhbiBnZXQgYWNjZXNzaWJpbGl0eSBmb2N1cy4gSXQgc2hvdWxkIG5v
dCBnZXQgYWNjZXNzaWJsZSB0ZXh0IGZyb20gaXRzIGNoaWxkcmVuIGF1dG9tYXRpY2FsbHkgdGhv
dWdoLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC5hY3Rp
dmVFbGVtZW50ID09IGxpbmsgaXMgdHJ1ZQorUEFTUyBsYXN0Q2hhcihheExpbmsudGl0bGUpIGlz
ICJBIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09IGRpdiBpcyB0cnVlCitQQVNTIGxh
c3RDaGFyKGF4RGl2LnRpdGxlKSBpcyAnICcKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9
PSBkaXYyIGlzIHRydWUKK1BBU1MgbGFzdENoYXIoYXhEaXYyLnRpdGxlKSBpcyAnICcKK1BBU1Mg
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PSBkaXYzIGlzIHRydWUKK1BBU1MgbGFzdENoYXIoYXhE
aXYzLnRpdGxlKSBpcyAiRCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PSBkaXY0IGlz
IHRydWUKK1BBU1MgYXhEaXY0LnRpdGxlLmluZGV4T2YoJ0xpbmsnKSBpcyAtMQorUEFTUyBkb2N1
bWVudC5hY3RpdmVFbGVtZW50ID09IGRpdjUgaXMgdHJ1ZQorUEFTUyBheERpdjUudGl0bGUuaW5k
ZXhPZignTGluaycpIGlzIC0xCitQQVNTIGF4RGl2NS50aXRsZS5pbmRleE9mKCdJbml0aWFsIHRl
eHQgYmVmb3JlIGxpbmsnKSA+PSAwIGlzIGZhbHNlCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQgPT0gZGl2NiBpcyB0cnVlCitQQVNTIGF4RGl2Ni50aXRsZS5pbmRleE9mKCdMaXN0IGl0ZW0n
KSBpcyAtMQorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09IGRpdjcgaXMgdHJ1ZQorUEFT
UyBheERpdjcudGl0bGUuaW5kZXhPZignTGlzdCBpdGVtJykgaXMgLTEKK1BBU1MgYXhEaXY3LnRp
dGxlLmluZGV4T2YoJ0luaXRpYWwgdGV4dCBiZWZvcmUgbGlzdCcpID49IDAgaXMgZmFsc2UKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9oZWxwLXRleHQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvaGVscC10
ZXh0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTYxNGJiZDVhMmNkZjNhOTAxNGI4MmExYzlk
ZDE2NTY5NjgzYjljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L2FjY2Vzc2liaWxpdHkvaGVscC10ZXh0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACitU
ZXN0cyBhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBpbiBhIHZhcmlldHkgb2YgZXhhbXBsZXMuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTOiBIZWxwIHRleHQgZm9yIDxhPiBp
cyAiIgorUEFTUzogSGVscCB0ZXh0IGZvciA8YT4gaXMgImJhciIKK1BBU1M6IEhlbHAgdGV4dCBm
b3IgPGE+IGlzICJiYXoiCitQQVNTOiBIZWxwIHRleHQgZm9yIDxhPiBpcyAiIgorUEFTUzogSGVs
cCB0ZXh0IGZvciA8aDE+IGlzICJiYXIiCitQQVNTOiBIZWxwIHRleHQgZm9yIDxhPiBpcyAiIgor
UEFTUzogSGVscCB0ZXh0IGZvciA8YnV0dG9uPiBpcyAiIgorUEFTUzogSGVscCB0ZXh0IGZvciA8
YnV0dG9uPiBpcyAiYmFyIgorUEFTUzogSGVscCB0ZXh0IGZvciA8YnV0dG9uPiBpcyAiYmF6Igor
UEFTUzogSGVscCB0ZXh0IGZvciA8YnV0dG9uPiBpcyAiIgorUEFTUzogSGVscCB0ZXh0IGZvciA8
dGFibGU+IGlzICJ0YWJsZSBzdW1tYXJ5IgorUEFTUzogSGVscCB0ZXh0IGZvciA8Y2FwdGlvbj4g
aXMgIiIKK1BBU1M6IEhlbHAgdGV4dCBmb3IgPGlucHV0PiBpcyAiIgorUEFTUzogSGVscCB0ZXh0
IGZvciA8ZGl2PiBpcyAiIgorUEFTUzogSGVscCB0ZXh0IGZvciA8bWFpbj4gaXMgImJhciIKK1BB
U1M6IEhlbHAgdGV4dCBmb3IgPGJ1dHRvbj4gaXMgIiIKK1BBU1M6IEhlbHAgdGV4dCBmb3IgPG1h
aW4+IGlzICIiCitQQVNTOiBIZWxwIHRleHQgZm9yIDxkaXY+IGlzICIiCitQQVNTOiBIZWxwIHRl
eHQgZm9yIDxhPiBpcyAiYmFyIgorUEFTUzogSGVscCB0ZXh0IGZvciA8ZGl2PiBpcyAiIgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2ltYWdlLWxpbmstZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvaW1hZ2Ut
bGluay1leHBlY3RlZC50eHQKaW5kZXggOWEwYzE5NzRhZWRkMzRiNDQ2MjgxN2VlNWNiYjliMjc4
MWJiZTk3OC4uZDk1MDBiOTU4YTk2MjJiODk1MDM1MzYwZGI2ZGVjNGRhNjYzODJmZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvaW1hZ2UtbGluay1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkv
aW1hZ2UtbGluay1leHBlY3RlZC50eHQKQEAgLTMwLDcgKzMwLDcgQEAgQVhDaGlsZHJlbjogMAog
QVhQb3NpdGlvbjogeyA4LjAwMDAwMCwgOTguMDAwMDAwIH0KIEFYU2l6ZTogeyAyODAuMDAwMDAw
LCAyMTAuMDAwMDAwIH0KIEFYVGl0bGU6IERlbGljaW91cyBjYWtlCi1BWERlc2NyaXB0aW9uOiBE
ZWxpY2lvdXMgY2FrZQorQVhEZXNjcmlwdGlvbjogCiBBWEZvY3VzYWJsZTogMAogQVhGb2N1c2Vk
OiAwCiBBWFNlbGVjdGFibGU6IDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9hY2Nlc3NpYmlsaXR5L2ltYWdlLW1hcDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvaW1hZ2UtbWFwMS1leHBlY3RlZC50eHQKaW5kZXggMDYw
YWJkMjg0NWM2YTZhNjM0YjUzZjMyY2MzNThjMGRiMTUyOWNjNi4uNjM1Nzk3ZWRlNTk0ZWE3MDI5
YjAxZWQ2OTJhMzU3OGYyMGEzOWRlNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL2FjY2Vzc2liaWxpdHkvaW1hZ2UtbWFwMS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvaW1hZ2UtbWFwMS1leHBlY3RlZC50eHQKQEAg
LTYsMTUgKzYsMTUgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogTGluazEgcm9sZTogQVhS
b2xlOiBBWExpbmsKIExpbmsxIHRpdGxlOiBBWFRpdGxlOiBMaW5rMQotTGluazEgZGVzY3JpcHRp
b246IEFYRGVzY3JpcHRpb246IExpbmsxCitMaW5rMSBkZXNjcmlwdGlvbjogQVhEZXNjcmlwdGlv
bjogCiAKIExpbmsyIHJvbGU6IEFYUm9sZTogQVhMaW5rCiBMaW5rMiB0aXRsZTogQVhUaXRsZTog
TGluazIKLUxpbmsyIGRlc2NyaXB0aW9uOiBBWERlc2NyaXB0aW9uOiBMaW5rMgorTGluazIgZGVz
Y3JpcHRpb246IEFYRGVzY3JpcHRpb246IAogCiBMaW5rMyByb2xlOiBBWFJvbGU6IEFYTGluawog
TGluazMgdGl0bGU6IEFYVGl0bGU6IExpbmszCi1MaW5rMyBkZXNjcmlwdGlvbjogQVhEZXNjcmlw
dGlvbjogTGluazMKK0xpbmszIGRlc2NyaXB0aW9uOiBBWERlc2NyaXB0aW9uOiAKIAogUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9pbWFnZS1tYXAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2ltYWdlLW1hcDItZXhwZWN0ZWQudHh0Cmlu
ZGV4IDAyMDkwMzk0OTc5NDg0MzMzYzIyNmIyOWYzZWI4NzEyNmZiZDhlNzUuLjhlMDRjYjBkZmVj
MDEyZmVmMjlhNGNjNTRmMDYzNWQ0OWFiMjEzMWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2ltYWdlLW1hcDItZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2ltYWdlLW1hcDItZXhwZWN0ZWQu
dHh0CkBAIC0yNSw3ICsyNSw3IEBAIEFYQ2hpbGRyZW46IDAKIEFYUG9zaXRpb246IHsgMTguMDAw
MDAwLCA1My4wMDAwMDAgfQogQVhTaXplOiB7IDEyMy4wMDAwMDAsIDYyLjAwMDAwMCB9CiBBWFRp
dGxlOiBMaW5rMQotQVhEZXNjcmlwdGlvbjogTGluazEKK0FYRGVzY3JpcHRpb246IAogQVhWYWx1
ZTogCiBBWEZvY3VzYWJsZTogMAogQVhGb2N1c2VkOiAwCkBAIC00NSw3ICs0NSw3IEBAIEFYQ2hp
bGRyZW46IDAKIEFYUG9zaXRpb246IHsgMjAuMDAwMDAwLCAxMTcuMDAwMDAwIH0KIEFYU2l6ZTog
eyAxMjIuMDAwMDAwLCAxNC4wMDAwMDAgfQogQVhUaXRsZTogTGluazIKLUFYRGVzY3JpcHRpb246
IExpbmsyCitBWERlc2NyaXB0aW9uOiAKIEFYVmFsdWU6IAogQVhGb2N1c2FibGU6IDAKIEFYRm9j
dXNlZDogMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxp
dHkvaW1hZ2Utd2l0aC1hbHQtYW5kLW1hcC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9pbWFnZS13aXRoLWFsdC1hbmQtbWFwLWV4cGVjdGVkLnR4
dAppbmRleCAxZTc2MzgwM2VkMjI5NDE0YjRiMDdjMjNiMzc0NDM1YjA2MWRkMDE3Li4zM2M5OGZj
YmExZDNhNDY1OTc5MTc0ODA0MTU2MDlkOWNlY2MyNzhlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9pbWFnZS13aXRoLWFsdC1hbmQtbWFwLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9pbWFn
ZS13aXRoLWFsdC1hbmQtbWFwLWV4cGVjdGVkLnR4dApAQCAtNywxMCArNywxMCBAQCBPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURQogCiBBWFJvbGU6IEFYV2ViQXJlYSBBWFRpdGxlOiAgQVhEZXNjcmlw
dGlvbjogCiAgIEFYUm9sZTogQVhTZWN0aW9uIEFYVGl0bGU6ICBBWERlc2NyaXB0aW9uOiAKLSAg
ICBBWFJvbGU6IEFYSW1hZ2VNYXAgQVhUaXRsZTogZm9vIGJhciBiYXogQVhEZXNjcmlwdGlvbjog
Zm9vIGJhciBiYXoKLSAgICAgIEFYUm9sZTogQVhMaW5rIEFYVGl0bGU6IGZvbyBBWERlc2NyaXB0
aW9uOiBmb28KLSAgICAgIEFYUm9sZTogQVhMaW5rIEFYVGl0bGU6IGJhciBBWERlc2NyaXB0aW9u
OiBiYXIKLSAgICAgIEFYUm9sZTogQVhMaW5rIEFYVGl0bGU6IGJheiBBWERlc2NyaXB0aW9uOiBi
YXoKKyAgICBBWFJvbGU6IEFYSW1hZ2VNYXAgQVhUaXRsZTogZm9vIGJhciBiYXogQVhEZXNjcmlw
dGlvbjogCisgICAgICBBWFJvbGU6IEFYTGluayBBWFRpdGxlOiBmb28gQVhEZXNjcmlwdGlvbjog
CisgICAgICBBWFJvbGU6IEFYTGluayBBWFRpdGxlOiBiYXIgQVhEZXNjcmlwdGlvbjogCisgICAg
ICBBWFJvbGU6IEFYTGluayBBWFRpdGxlOiBiYXogQVhEZXNjcmlwdGlvbjogCiBQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2ltZy1hbHQtdGFnLW9ubHktd2hpdGVz
cGFjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0
eS9pbWctYWx0LXRhZy1vbmx5LXdoaXRlc3BhY2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcw
YTY2MTU4MmQwNjRhMDA3NzM2YzQzNDk0YzUxNTQ4MzBjOGE0NjIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9pbWctYWx0LXRhZy1vbmx5
LXdoaXRlc3BhY2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSAyOTogSW1hZ2UgdGl0bGU6IEFYVGl0bGU6ICAgIEltYWdlIAorCisKKworVGhpcyB0
ZXN0cyB0aGF0IGltYWdlcyB3aXRoIGFsdCB0YWdzIHRoYXQgb25seSBoYXZlIHdoaXRlIHNwYWNl
IGFyZSBpZ25vcmVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBpbWFn
ZXNHcm91cC5jaGlsZHJlbkNvdW50IGlzIDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvYWNjZXNzaWJpbGl0eS9pbWctYXJpYS1idXR0b24tYWx0LXRhZy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9pbWctYXJpYS1idXR0b24tYWx0
LXRhZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjYzYzJkZjY4YzMxYjdlOTU1MDUyM2FjNDdk
ZmNjMzBlODJiNGM1YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9hY2Nlc3NpYmlsaXR5L2ltZy1hcmlhLWJ1dHRvbi1hbHQtdGFnLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDExIEBACisKK1RoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgYSBpbWcgYWN0aW5nIGFz
IGFuIGFyaWEgYnV0dG9uIHN0aWxsIHJldHVybnMgaXRzIGFsdCB0YWcgYXMgdGhlIGRlc2NyaXB0
aW9uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbWdVSUVsZW1lbnQudGl0bGUg
aXMgQVhUaXRsZTogYWx0ZXJuYXRlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Fj
Y2Vzc2liaWxpdHkvaW1nLWZhbGxzYmFjay10by10aXRsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9pbWctZmFsbHNiYWNrLXRvLXRpdGxlLWV4
cGVjdGVkLnR4dAppbmRleCBjNTUyZjhkMWQ3MTQxYzUwMmE4ZTI5ZWU0NTRjZWM2M2Y5MzhlMTE2
Li40MTRmOWExZDgwYmQ5NGZiYjVhZjliYzI2NzExYTU4NGViYmU3YzdlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9pbWctZmFsbHNiYWNrLXRvLXRp
dGxlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJp
bGl0eS9pbWctZmFsbHNiYWNrLXRvLXRpdGxlLWV4cGVjdGVkLnR4dApAQCAtMSwyMiArMSwyMSBA
QAotICAgIAotdGVzdAorICAgICB0ZXN0CiB0ZXN0CiBUaGlzIHRlc3RzIHRoYXQgaW1hZ2VzIHdp
bGwgZmFsbGJhY2sgdG8gdXNpbmcgdGhlIHRpdGxlIGF0dHJpYnV0ZSBpZiBubyBvdGhlciBkZXNj
cmlwdGl2ZSB0ZXh0IGlzIHByZXNlbnQuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAog
Ci1JbWFnZTEgZGVzY3JpcHRpb246IEFYRGVzY3JpcHRpb246IHRlc3QxCi1JbWFnZTEgaGVscDog
QVhIZWxwOiAKK0ltYWdlMSB0aXRsZTogQVhUaXRsZTogdGVzdDEKK0ltYWdlMSBkZXNjcmlwdGlv
bjogQVhEZXNjcmlwdGlvbjogCiAKK0ltYWdlMiB0aXRsZTogQVhUaXRsZTogYWx0CiBJbWFnZTIg
ZGVzY3JpcHRpb246IEFYRGVzY3JpcHRpb246IHRlc3QyCi1JbWFnZTIgaGVscDogQVhIZWxwOiB0
ZXN0MgogCi1JbWFnZTMgZGVzY3JpcHRpb246IEFYRGVzY3JpcHRpb246IHRlc3QzCi1JbWFnZTMg
aGVscDogQVhIZWxwOiAKK0ltYWdlMyB0aXRsZTogQVhUaXRsZTogdGVzdDMKK0ltYWdlMyBkZXNj
cmlwdGlvbjogQVhEZXNjcmlwdGlvbjogCiAKLUltYWdlNCBkZXNjcmlwdGlvbjogQVhEZXNjcmlw
dGlvbjogYWx0Ci1JbWFnZTQgaGVscDogQVhIZWxwOiB0ZXN0NAorSW1hZ2U0IHRpdGxlOiBBWFRp
dGxlOiBhbHQKK0ltYWdlNCBkZXNjcmlwdGlvbjogQVhEZXNjcmlwdGlvbjogdGVzdDQKIAogUEFT
UyBpbWFnZXNHcm91cC5jaGlsZEF0SW5kZXgoMCkuY2hpbGRyZW5Db3VudCBpcyAyCiBQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvYWNjZXNzaWJpbGl0eS9pbnB1dC1pbWFnZS1hbHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvaW5wdXQtaW1hZ2UtYWx0LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hYmYyOTdkODgyNmI5NDJlMTZjYmQ2Mjc1YWE2MDczNzMxYjMwYTJk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxp
dHkvaW5wdXQtaW1hZ2UtYWx0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACisKK1RoaXMg
dGVzdCBtYWtlcyBzdXJlIHRoYXQgYW4gaW5wdXQgaW1hZ2UgcmV0dXJucyBpdHMgYWx0IHRhZyBh
cyB0aGUgZGVzY3JpcHRpb24KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2ltZy50
aXRsZSBpcyBBWFRpdGxlOiBTdWJtaXQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
YWNjZXNzaWJpbGl0eS9tZWRpYS1lbGVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L21lZGlhLWVsZW1lbnQtZXhwZWN0ZWQudHh0CmluZGV4
IDFmODg3NzkyNTRhY2I1MDAwZTJhOTY5MjJkZmMyMTUzYmFlZTc5M2YuLjhjNzFjMWI0M2MzMWU4
YTFjOTg0ZDQ4ZDk2OGQyNjMyMjBmOTU2YTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9hY2Nlc3NpYmlsaXR5L21lZGlhLWVsZW1lbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L21lZGlhLWVsZW1lbnQtZXhwZWN0
ZWQudHh0CkBAIC01LDM1ICs1LDM1IEBAIER1bXAgPHZpZGVvPiBlbGVtZW50IGNvbnRyb2xsZXIg
YWNjZXNzaWJpbGl0eSBvYmplY3QgdHJlZSBhdCAnY2FucGxheXRocm91Z2gnIGV2CiAKIFN0YXRl
IGF0ICdjYW5wbGF5dGhyb3VnaCcgZXZlbnQ6CiAKLSAgICBkZXNjcmlwdGlvbjogQVhEZXNjcmlw
dGlvbjogCisgICAgdGl0bGU6IEFYVGl0bGU6IAogICAgIHJvbGU6IEFYUm9sZTogQVhWaWRlbwog
CiAKLSAgICAgICAgZGVzY3JpcHRpb246IEFYRGVzY3JpcHRpb246IFZpZGVvIFBsYXliYWNrCisg
ICAgICAgIHRpdGxlOiBBWFRpdGxlOiBWaWRlbyBQbGF5YmFjawogICAgICAgICByb2xlOiBBWFJv
bGU6IEFYVG9vbGJhcgogCiAKLSAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBBWERlc2NyaXB0aW9u
OiBQbGF5CisgICAgICAgICAgICB0aXRsZTogQVhUaXRsZTogUGxheQogICAgICAgICAgICAgcm9s
ZTogQVhSb2xlOiBBWEJ1dHRvbgogCiAKLSAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBBWERlc2Ny
aXB0aW9uOiBEdXJhdGlvbgorICAgICAgICAgICAgdGl0bGU6IEFYVGl0bGU6IER1cmF0aW9uCiAg
ICAgICAgICAgICByb2xlOiBBWFJvbGU6IEFYU2xpZGVyCiAKIAotICAgICAgICAgICAgZGVzY3Jp
cHRpb246IEFYRGVzY3JpcHRpb246IFJlbWFpbmluZworICAgICAgICAgICAgdGl0bGU6IEFYVGl0
bGU6IFJlbWFpbmluZwogICAgICAgICAgICAgcm9sZTogQVhSb2xlOiBBWFRpbWVyCiAKIAotICAg
ICAgICAgICAgZGVzY3JpcHRpb246IEFYRGVzY3JpcHRpb246IERpc3BsYXkgRnVsbCBTY3JlZW4K
KyAgICAgICAgICAgIHRpdGxlOiBBWFRpdGxlOiBEaXNwbGF5IEZ1bGwgU2NyZWVuCiAgICAgICAg
ICAgICByb2xlOiBBWFJvbGU6IEFYQnV0dG9uCiAKIAotICAgICAgICAgICAgZGVzY3JpcHRpb246
IEFYRGVzY3JpcHRpb246IE11dGUKKyAgICAgICAgICAgIHRpdGxlOiBBWFRpdGxlOiBNdXRlCiAg
ICAgICAgICAgICByb2xlOiBBWFJvbGU6IEFYQnV0dG9uCiAKIAotICAgICAgICAgICAgZGVzY3Jp
cHRpb246IEFYRGVzY3JpcHRpb246IFZvbHVtZQorICAgICAgICAgICAgdGl0bGU6IEFYVGl0bGU6
IFZvbHVtZQogICAgICAgICAgICAgcm9sZTogQVhSb2xlOiBBWFNsaWRlcgogCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L3JhZGlvLWJ1dHRvbi10
aXRsZS1sYWJlbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNz
aWJpbGl0eS9yYWRpby1idXR0b24tdGl0bGUtbGFiZWwtZXhwZWN0ZWQudHh0CmluZGV4IGJkM2Fk
MDNhMDEyNjFiYzZhM2YzODdlOTY3YWM5YTFmMDQxMDJlZDQuLmQxNzYwMWExZWM3ZTIxZjU3ZjZl
MzAzNzE4MGY1ZjI4ZjU4YjA0ODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9hY2Nlc3NpYmlsaXR5L3JhZGlvLWJ1dHRvbi10aXRsZS1sYWJlbC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvcmFkaW8tYnV0dG9uLXRp
dGxlLWxhYmVsLWV4cGVjdGVkLnR4dApAQCAtNSwxMSArNSwxMSBAQCBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURQogCiBQQVNTIHJhZGlvMS50aXRsZSBpcyAnQVhUaXRsZTogTEFCRUwnCiBQQVNTIHRp
dGxlVUlFbGVtZW50LmlzRXF1YWwoYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVs
ZW1lbnRCeUlkKCdsYWJlbDEnKSkgaXMgdHJ1ZQotUEFTUyByYWRpbzIuZGVzY3JpcHRpb24gaXMg
J0FYRGVzY3JpcHRpb246IExBQkVMMmEnCi1QQVNTIHJhZGlvMi50aXRsZSBpcyAnQVhUaXRsZTog
JworUEFTUyByYWRpbzIudGl0bGUgaXMgJ0FYVGl0bGU6IExBQkVMMmEnCitQQVNTIHJhZGlvMi5k
ZXNjcmlwdGlvbiBpcyAnQVhEZXNjcmlwdGlvbjogJwogUEFTUyAhdGl0bGVVSUVsZW1lbnQgfHwg
dGl0bGVVSUVsZW1lbnQudGl0bGUgPT0gJ0FYVGl0bGU6ICcgaXMgdHJ1ZQotUEFTUyByYWRpbzMu
ZGVzY3JpcHRpb24gaXMgJ0FYRGVzY3JpcHRpb246IHJhZGlvMycKLVBBU1MgcmFkaW8zLnRpdGxl
IGlzICdBWFRpdGxlOiAnCitQQVNTIHJhZGlvMy50aXRsZSBpcyAnQVhUaXRsZTogcmFkaW8zJwor
UEFTUyByYWRpbzIuZGVzY3JpcHRpb24gaXMgJ0FYRGVzY3JpcHRpb246ICcKIFBBU1MgIXRpdGxl
VUlFbGVtZW50IHx8IHRpdGxlVUlFbGVtZW50LnRpdGxlID09ICdBWFRpdGxlOiAnIGlzIHRydWUK
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvc2VsZi1yZWZlcmVuY2luZy1hcmlhLWxhYmVs
bGVkYnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxp
dHkvc2VsZi1yZWZlcmVuY2luZy1hcmlhLWxhYmVsbGVkYnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU4OWFjYmY4NjE5MTMwY2I0NzkyNzg1YTRlNDc2NjA1M2IzMDRjNDQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9zZWxmLXJlZmVy
ZW5jaW5nLWFyaWEtbGFiZWxsZWRieS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorWCA/
ICAgICAgICAgIFkgWgorVGhpcyB0ZXN0cyB0aGF0IHNlbGYtcmVmZXJlbmNpbmcgYXJpYS1sYWJl
bGxlZGJ5IGlzIGV4cG9zZWQgY29ycmVjdGx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyB0ZXN0LnRpdGxlIGlzICdBWFRpdGxlOiBYIFkgWicKK1BBU1MgdGVzdC50aXRs
ZSBpcyAnQVhUaXRsZTogWCBZIFonCitQQVNTIHRlc3QudGl0bGUgaXMgJ0FYVGl0bGU6IFggWSBa
JworUEFTUyB0ZXN0LnRpdGxlIGlzICdBWFRpdGxlOiBYIFkgWicKK1BBU1MgdGVzdC50aXRsZSBp
cyAnQVhUaXRsZTogWCBZIFonCitQQVNTIHRlc3QudGl0bGUgaXMgJ0FYVGl0bGU6IFggWSBaJwor
UEFTUyB0ZXN0LnRpdGxlIGlzICdBWFRpdGxlOiBYIFkgWicKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9zdmctYm91bmRzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L3N2Zy1ib3VuZHMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmUzODBmZmQ4ODhlMzE1OTQ1Yjc5NTNjNTQwMTIwMWY3ODgzOWFiNmYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9z
dmctYm91bmRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQzIEBACitUZXN0CitUaGlzIHRlc3Qg
ZW5zdXJlcyB0aGUgYWNjZXNzaWJpbGl0eSBib3VuZHMgb2YgZW1iZWRkZWQgU1ZHIG9iamVjdHMg
YXJlIGNvcnJlY3QuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitjb250YWluZXIg
bG9jYXRpb246ICg2MDcsIDEwNykKK0ZhY2Ugcm9sZTogQVhSb2xlOiBBWEJ1dHRvbgorRmFjZSBs
YWJlbDogQVhUaXRsZTogZmFjZQorRmFjZVg6IDAKK0ZhY2VZOiAwCisKKworRXllIHJvbGU6IEFY
Um9sZTogQVhCdXR0b24KK0V5ZSBsYWJlbDogQVhUaXRsZTogbGVmdC1leWUKK0V5ZVg6IDEwMwor
RXllWTogMTQ4CisKKworTm9zZSByb2xlOiBBWFJvbGU6IEFYQnV0dG9uCitOb3NlIGxhYmVsOiBB
WFRpdGxlOiBub3NlCitOb3NlWDogMTkzCitOb3NlWTogMjA2CisKKworTW91dGggcm9sZTogQVhS
b2xlOiBBWEJ1dHRvbgorTW91dGggbGFiZWw6IEFYVGl0bGU6IHNtaWxlCitNb3V0aFg6IDExNgor
TW91dGhZOiAyNzYKKworCitUZXh0IHJvbGU6IEFYUm9sZTogQVhTZWN0aW9uCitUZXh0WC8xMDog
MTUKK1RleHRZLzEwOiAxMQorCitJbWFnZSByb2xlOiBBWFJvbGU6IEFYSW1hZ2UKK0ltYWdlIGxh
YmVsOiBBWFRpdGxlOiBUZXN0IEltYWdlCitJbWFnZVg6IDIxCitJbWFnZVk6IDIxCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>